blob: c58b61cff09d1edef14e66c7f6fb04d883ced225 [file] [log] [blame]
/*
* Copyright (c) 2022 Apple 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
*
* https://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.
*/
#ifndef DNS_OBJ_LOG_H
#define DNS_OBJ_LOG_H
// Overrides the default assert print.
#ifndef DEBUG_ASSERT_MESSAGE
#define DEBUG_ASSERT_MESSAGE(name, assertion, label, message, file, line, value) \
log_fault("AssertMacros: " PUB_S ", " PUB_S " file: " PUB_S ", line: %d, value: %ld", assertion, (message != 0) ? message : "", file, line, (long) (value))
#endif
//======================================================================================================================
// MARK: - Headers
#include "mDNSDebug.h"
#include "domain_name_labels.h"
#include "dns_obj_domain_name.h"
//======================================================================================================================
// MARK: - Macros
// Short version logging for DNS object.
#ifndef log_debug
#define log_debug(FORMAT, ...) LogRedact(MDNS_LOG_CATEGORY_DEFAULT, MDNS_LOG_DEBUG, FORMAT, ## __VA_ARGS__)
#endif
#ifndef log_info
#define log_info(FORMAT, ...) LogRedact(MDNS_LOG_CATEGORY_DEFAULT, MDNS_LOG_INFO, FORMAT, ## __VA_ARGS__)
#endif
#ifndef log_default
#define log_default(FORMAT, ...) LogRedact(MDNS_LOG_CATEGORY_DEFAULT, MDNS_LOG_DEFAULT, FORMAT, ## __VA_ARGS__)
#endif
#ifndef log_error
#define log_error(FORMAT, ...) LogRedact(MDNS_LOG_CATEGORY_DEFAULT, MDNS_LOG_ERROR, FORMAT, ## __VA_ARGS__)
#endif
#ifndef log_fault
#define log_fault(FORMAT, ...) LogRedact(MDNS_LOG_CATEGORY_DEFAULT, MDNS_LOG_FAULT, FORMAT, ## __VA_ARGS__)
#endif
// Log specifier for domain name labels in bytes.
#if MDNSRESPONDER_SUPPORTS(APPLE, OS_LOG)
#define PUB_NAME_LABELS PUB_DM_NAME
#define PRI_NAME_LABELS PRI_DM_NAME
#define NAME_LABELS_PARAM(labels) ((labels != NULL) ? (int)domain_name_labels_length(labels) : 0), (labels)
#else
#define PUB_NAME_LABELS PUB_DM_NAME
#define PRI_NAME_LABELS PUB_NAME_LABELS
#define NAME_LABELS_PARAM(labels) (labels)
#endif
// Log specifier for domain name object.
#if MDNSRESPONDER_SUPPORTS(APPLE, OS_LOG)
#define PUB_DNS_DM_NAME PUB_DM_NAME
#define PRI_DNS_DM_NAME PRI_DM_NAME
#define DNS_DM_NAME_PARAM(NAME) (((NAME) != NULL) ? (int)dns_obj_domain_name_get_length(NAME) : 0), (((NAME) != NULL) ? dns_obj_domain_name_get_labels(NAME) : NULL)
#else
#define PUB_DNS_DM_NAME PUB_DM_NAME
#define PRI_DNS_DM_NAME PUB_DNS_DM_NAME
#define DNS_DM_NAME_PARAM(NAME) (((NAME) != NULL) ? dns_obj_domain_name_get_labels(NAME) : NULL)
#endif
#endif // DNS_OBJ_LOG_H