#define COMPILE_TIME_LOGLEVEL 0
#if DEBUG > COMPILE_TIME_LOGLEVEL
-#define PARA_DEBUG_LOG(f,...) para_log(DEBUG, "%s: " f, __FUNCTION__, __VA_ARGS__)
+#define PARA_DEBUG_LOG(f,...) para_log(DEBUG, "%s: " f, __FUNCTION__, ## __VA_ARGS__)
#else
#define PARA_DEBUG_LOG(...) do {;} while (0)
#endif
#if INFO > COMPILE_TIME_LOGLEVEL
-#define PARA_INFO_LOG(f,...) para_log(INFO, "%s: " f, __FUNCTION__, __VA_ARGS__)
+#define PARA_INFO_LOG(f,...) para_log(INFO, "%s: " f, __FUNCTION__, ## __VA_ARGS__)
#else
#define PARA_INFO_LOG(...) do {;} while (0)
#endif
#if NOTICE > COMPILE_TIME_LOGLEVEL
-#define PARA_NOTICE_LOG(f,...) para_log(NOTICE, "%s: " f, __FUNCTION__, __VA_ARGS__)
+#define PARA_NOTICE_LOG(f,...) para_log(NOTICE, "%s: " f, __FUNCTION__, ## __VA_ARGS__)
#else
#define PARA_NOTICE_LOG(...) do {;} while (0)
#endif
#if WARNING > COMPILE_TIME_LOGLEVEL
-#define PARA_WARNING_LOG(f,...) para_log(WARNING, "%s: " f, __FUNCTION__, __VA_ARGS__)
+#define PARA_WARNING_LOG(f,...) para_log(WARNING, "%s: " f, __FUNCTION__, ## __VA_ARGS__)
#else
#define PARA_WARNING_LOG(...) do {;} while (0)
#endif
#if ERROR > COMPILE_TIME_LOGLEVEL
-#define PARA_ERROR_LOG(f,...) para_log(ERROR, "%s: " f, __FUNCTION__, __VA_ARGS__)
+#define PARA_ERROR_LOG(f,...) para_log(ERROR, "%s: " f, __FUNCTION__, ## __VA_ARGS__)
#else
#define PARA_ERROR_LOG(...) do {;} while (0)
#endif
#if CRIT > COMPILE_TIME_LOGLEVEL
-#define PARA_CRIT_LOG(f,...) para_log(CRIT, "%s: " f, __FUNCTION__, __VA_ARGS__)
+#define PARA_CRIT_LOG(f,...) para_log(CRIT, "%s: " f, __FUNCTION__, ## __VA_ARGS__)
#else
#define PARA_CRIT_LOG(...) do {;} while (0)
#endif
#if EMERG > COMPILE_TIME_LOGLEVEL
-#define PARA_EMERG_LOG(f,...) para_log(EMERG, "%s: " f, __FUNCTION__, __VA_ARGS__)
+#define PARA_EMERG_LOG(f,...) para_log(EMERG, "%s: " f, __FUNCTION__, ## __VA_ARGS__)
#else
#define PARA_EMERG_LOG(...)
#endif
int stat_item_valid(const char *item);
int stat_line_valid(const char *);
-void stat_client_write(char *msg, int itemnum);
+void stat_client_write(const char *msg, int itemnum);
int stat_client_add(int fd, long unsigned mask);
-unsigned for_each_line(char *, int, void (*)(char *));
+size_t for_each_line(char *buf, size_t n, void (*line_handler)(char *));
#define FOR_EACH_STAT_ITEM(i) for (i = 0; i < NUM_STAT_ITEMS; i++)
__printf_2_3 void para_log(int, const char*, ...);
/* taken from printf man page */
#define PARA_VSPRINTF(fmt, p) \
{ \
- int n, size = 100; \
+ int n; \
+ size_t size = 100; \
p = para_malloc(size); \
while (1) { \
va_list ap; \