#ifndef _AUXLIB_H_ #define _AUXLIB_H_ #include #include #include "compat.h" #include #define THREAD_BUF_SIZE 64 #define NUM_THREAD_BUFS 8 struct rtpengine_common_config { char *config_file; char *config_section; char *log_facility; volatile int log_level; int log_stderr; char *pidfile; int foreground; }; extern struct rtpengine_common_config *rtpe_common_config_ptr; /*** PROTOTYPES ***/ void daemonize(void); void wpidfile(void); void service_notify(const char *message); void config_load(int *argc, char ***argv, GOptionEntry *entries, const char *description, char *default_config, char *default_section, struct rtpengine_common_config *); char *get_thread_buf(void); unsigned int in6_addr_hash(const void *p); int in6_addr_eq(const void *a, const void *b); unsigned int uint32_hash(const void *p); int uint32_eq(const void *a, const void *b); /*** HELPER MACROS ***/ #define ZERO(x) memset(&(x), 0, sizeof(x)) #define UINT64F "%" G_GUINT64_FORMAT #define AUTO_CLEANUP(decl, func) decl __attribute__ ((__cleanup__(func))) #define AUTO_CLEANUP_INIT(decl, func, val) AUTO_CLEANUP(decl, func) = val #define AUTO_CLEANUP_NULL(decl, func) AUTO_CLEANUP_INIT(decl, func, 0) #define AUTO_CLEANUP_BUF(var) AUTO_CLEANUP_NULL(char *var, free_buf) /*** STRING HELPERS ***/ INLINE void random_string(unsigned char *buf, int len) { int ret = RAND_bytes(buf, len); assert(ret == 1); } #endif