37 #define MDNS_CHECK_PRINTF_STYLE_FUNCTIONS 0
49 #define ANSWER_REMOTE_HOSTNAME_QUERIES 0
60 #if MDNS_CHECK_PRINTF_STYLE_FUNCTIONS
61 #define IS_A_PRINTF_STYLE_FUNCTION(F,A) __attribute__ ((format(printf,F,A)))
63 #define IS_A_PRINTF_STYLE_FUNCTION(F,A)
72 #if (defined(__GNUC__))
73 #if ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 2)))
74 #define MDNS_C99_VA_ARGS 1
75 #define MDNS_GNU_VA_ARGS 0
77 #define MDNS_C99_VA_ARGS 0
78 #define MDNS_GNU_VA_ARGS 1
80 #define MDNS_HAS_VA_ARG_MACROS 1
81 #elif (_MSC_VER >= 1400) // Visual Studio 2005 and later
82 #define MDNS_C99_VA_ARGS 1
83 #define MDNS_GNU_VA_ARGS 0
84 #define MDNS_HAS_VA_ARG_MACROS 1
85 #elif (defined(__MWERKS__))
86 #define MDNS_C99_VA_ARGS 1
87 #define MDNS_GNU_VA_ARGS 0
88 #define MDNS_HAS_VA_ARG_MACROS 1
90 #define MDNS_C99_VA_ARGS 0
91 #define MDNS_GNU_VA_ARGS 0
92 #define MDNS_HAS_VA_ARG_MACROS 0
95 #if (MDNS_HAS_VA_ARG_MACROS)
96 #if (MDNS_C99_VA_ARGS)
97 #define debug_noop( ... ) ((void)0)
98 #define LogMsg( ... ) LogMsgWithLevel(MDNS_LOG_MSG, __VA_ARGS__)
99 #define LogOperation( ... ) do { if (mDNS_LoggingEnabled) LogMsgWithLevel(MDNS_LOG_OPERATION, __VA_ARGS__); } while (0)
100 #define LogSPS( ... ) do { if (mDNS_LoggingEnabled) LogMsgWithLevel(MDNS_LOG_SPS, __VA_ARGS__); } while (0)
101 #define LogInfo( ... ) do { if (mDNS_LoggingEnabled) LogMsgWithLevel(MDNS_LOG_INFO, __VA_ARGS__); } while (0)
102 #elif (MDNS_GNU_VA_ARGS)
103 #define debug_noop( ARGS... ) ((void)0)
104 #define LogMsg( ARGS... ) LogMsgWithLevel(MDNS_LOG_MSG, ARGS)
105 #define LogOperation( ARGS... ) do { if (mDNS_LoggingEnabled) LogMsgWithLevel(MDNS_LOG_OPERATION, ARGS); } while (0)
106 #define LogSPS( ARGS... ) do { if (mDNS_LoggingEnabled) LogMsgWithLevel(MDNS_LOG_SPS, ARGS); } while (0)
107 #define LogInfo( ARGS... ) do { if (mDNS_LoggingEnabled) LogMsgWithLevel(MDNS_LOG_INFO, ARGS); } while (0)
109 #error Unknown variadic macros
114 #define debug_noop 1 ? (void)0 : (void)
115 #define LogMsg LogMsg_
116 #define LogOperation (mDNS_LoggingEnabled == 0) ? ((void)0) : LogOperation_
117 #define LogSPS (mDNS_LoggingEnabled == 0) ? ((void)0) : LogSPS_
118 #define LogInfo (mDNS_LoggingEnabled == 0) ? ((void)0) : LogInfo_
119 extern void LogMsg_(
const char *format, ...) IS_A_PRINTF_STYLE_FUNCTION(1,2);
120 extern
void LogOperation_(const
char *format, ...) IS_A_PRINTF_STYLE_FUNCTION(1,2);
121 extern
void LogSPS_(const
char *format, ...);
122 extern
void LogInfo_(const
char *format, ...);
126 #define debugf debugf_
127 extern void debugf_(
const char *format, ...) IS_A_PRINTF_STYLE_FUNCTION(1,2);
129 #define debugf debug_noop
132 #if MDNS_DEBUGMSGS > 1
133 #define verbosedebugf verbosedebugf_
134 extern void verbosedebugf_(
const char *format, ...) IS_A_PRINTF_STYLE_FUNCTION(1,2);
136 #define verbosedebugf debug_noop
139 extern int mDNS_LoggingEnabled;
140 extern int mDNS_PacketLoggingEnabled;
141 extern int mDNS_DebugMode;
142 extern const char ProgramName[];
144 extern void LogMsgWithLevel(mDNSLogLevel_t logLevel,
const char *format, ...) IS_A_PRINTF_STYLE_FUNCTION(2,3);
147 #define LogMsgNoIdent LogMsg
149 #if APPLE_OSX_mDNSResponder && MACOSX_MDNS_MALLOC_DEBUGGING >= 1
150 extern void *mallocL(
char *msg,
unsigned int size);
151 extern void freeL(
char *msg,
void *x);
152 extern void LogMemCorruption(
const char *format, ...);
153 extern void uds_validatelists(
void);
154 extern void udns_validatelists(
void *
const v);
156 #define mallocL(X,Y) malloc(Y)
157 #define freeL(X,Y) free(Y)