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