1 #include <stdio.h>
2 #include <sys/types.h>
3 #include <string.h>
4 #include <stdlib.h>
5 #include <time.h>
6 #include <curl/curl.h>
7 #include <stdint.h>
8 
9 #define XFREE(x) xfree((void **)&x);
10 #define MUL_NO_OVERFLOW	((size_t)1 << (sizeof(size_t)*4))
11 // set DEBUG ON
12 #define BUGVIEW 1
13 #define DEBUG(x, s...) do { \
14  if (!BUGVIEW) { break; } \
15  time_t t = time(NULL); \
16  char *d = ctime(&t); \
17  fprintf(stderr, "\n--- DEBUG-START ---\n\n %.*s %s[%d] %s(): \n", \
18  (int)strlen(d) - 1, d, __FILE__, \
19  __LINE__, __FUNCTION__); \
20  fprintf(stderr, x, ## s); \
21  fprintf(stderr,"\n\n--- DEBUG-END ---\n"); \
22 } while (0);
23 
24 struct MemoryStruct {
25   char *memory;
26   size_t size;
27 };
28 
29 typedef struct MemoryStruct MemoryStruct;
30 
31 void *xmalloc (size_t size);
32 void *xcalloc (size_t mem, size_t size);
33 void *xrealloc (void *ptr, size_t size);
34 void xfree(void **ptr);
35 size_t WriteMemoryCallback(void *ptr, size_t size, size_t nmemb, void *data);
36 int wait_on_socket(curl_socket_t sockfd, int for_recv, long timeout_ms);
37 void *xmallocarray (size_t nmemb, size_t size);
38 void *xreallocarray (void *ptr, size_t nmemb, size_t size);
39