diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-01-30 13:52:13 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-01-30 16:23:04 +0100 |
commit | 9449f151d0ccf3ac755d5f2bd9b4057ae2b03157 (patch) | |
tree | ada21dc6aa0b146c62a7561a08fb51fe4a8922ee /mDNSResponder/mDNSShared/mDNSDebug.c | |
parent | DHCPCD(8): Add MASTER_ONLY option (diff) | |
download | rtems-libbsd-9449f151d0ccf3ac755d5f2bd9b4057ae2b03157.tar.bz2 |
mDNS: Import
The sources can be obtained via:
http://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-544.tar.gz
Diffstat (limited to 'mDNSResponder/mDNSShared/mDNSDebug.c')
-rw-r--r-- | mDNSResponder/mDNSShared/mDNSDebug.c | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/mDNSResponder/mDNSShared/mDNSDebug.c b/mDNSResponder/mDNSShared/mDNSDebug.c new file mode 100644 index 00000000..cb4da6ec --- /dev/null +++ b/mDNSResponder/mDNSShared/mDNSDebug.c @@ -0,0 +1,95 @@ +/* -*- Mode: C; tab-width: 4 -*- + * + * Copyright (c) 2003 Apple Computer, Inc. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + + File: mDNSDebug.c + + Contains: Implementation of debugging utilities. Requires a POSIX environment. + + Version: 1.0 + + */ + +#include "mDNSDebug.h" + +#include <stdio.h> + +#if defined(WIN32) || defined(EFI32) || defined(EFI64) || defined(EFIX64) +// Need to add Windows/EFI syslog support here +#define LOG_PID 0x01 +#define LOG_CONS 0x02 +#define LOG_PERROR 0x20 +#else +#include <syslog.h> +#endif + +#include "mDNSEmbeddedAPI.h" + +mDNSexport int mDNS_LoggingEnabled = 0; +mDNSexport int mDNS_PacketLoggingEnabled = 0; +mDNSexport int mDNS_McastLoggingEnabled = 0; +mDNSexport int mDNS_McastTracingEnabled = 0; + +#if MDNS_DEBUGMSGS +mDNSexport int mDNS_DebugMode = mDNStrue; +#else +mDNSexport int mDNS_DebugMode = mDNSfalse; +#endif + +// Note, this uses mDNS_vsnprintf instead of standard "vsnprintf", because mDNS_vsnprintf knows +// how to print special data types like IP addresses and length-prefixed domain names +#if MDNS_DEBUGMSGS > 1 +mDNSexport void verbosedebugf_(const char *format, ...) +{ + char buffer[512]; + va_list ptr; + va_start(ptr,format); + buffer[mDNS_vsnprintf(buffer, sizeof(buffer), format, ptr)] = 0; + va_end(ptr); + mDNSPlatformWriteDebugMsg(buffer); +} +#endif + +// Log message with default "mDNSResponder" ident string at the start +mDNSlocal void LogMsgWithLevelv(mDNSLogLevel_t logLevel, const char *format, va_list ptr) +{ + char buffer[512]; + buffer[mDNS_vsnprintf((char *)buffer, sizeof(buffer), format, ptr)] = 0; + mDNSPlatformWriteLogMsg(ProgramName, buffer, logLevel); +} + +#define LOG_HELPER_BODY(L) \ + { \ + va_list ptr; \ + va_start(ptr,format); \ + LogMsgWithLevelv(L, format, ptr); \ + va_end(ptr); \ + } + +// see mDNSDebug.h +#if !MDNS_HAS_VA_ARG_MACROS +void LogMsg_(const char *format, ...) LOG_HELPER_BODY(MDNS_LOG_MSG) +void LogOperation_(const char *format, ...) LOG_HELPER_BODY(MDNS_LOG_OPERATION) +void LogSPS_(const char *format, ...) LOG_HELPER_BODY(MDNS_LOG_SPS) +void LogInfo_(const char *format, ...) LOG_HELPER_BODY(MDNS_LOG_INFO) +#endif + +#if MDNS_DEBUGMSGS +void debugf_(const char *format, ...) LOG_HELPER_BODY(MDNS_LOG_DEBUG) +#endif + +// Log message with default "mDNSResponder" ident string at the start +mDNSexport void LogMsgWithLevel(mDNSLogLevel_t logLevel, const char *format, ...) +LOG_HELPER_BODY(logLevel) |