ubus: assume that the service iface can be NULL
[project/mdnsd.git] / util.h
1 /*
2 * Copyright (C) 2014 John Crispin <blogic@openwrt.org>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License version 2.1
6 * as published by the Free Software Foundation
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 */
13
14 #ifndef _UTIL_H__
15 #define _UTIL_H__
16
17 #include <stdint.h>
18 #include <time.h>
19
20 #define DBG(level, fmt, ...) do { \
21 umdns_udebug_printf("[%d] [%s:%d] " fmt, level, __func__, __LINE__, ## __VA_ARGS__); \
22 if (debug >= level) \
23 fprintf(stderr, "mdnsd: %s (%d): " fmt, __func__, __LINE__, ## __VA_ARGS__); \
24 } while (0)
25
26 #define MDNS_BUF_LEN (8 * 1024)
27 #define HOSTNAME_LEN 256
28
29 extern int debug;
30 extern uint8_t mdns_buf[MDNS_BUF_LEN];
31
32 /**
33 * The first label of a host's fully qualified domain name
34 *
35 * E.g. just "example" for the domain name example.local.
36 */
37 extern char umdns_host_label[HOSTNAME_LEN];
38
39 extern char mdns_hostname_local[HOSTNAME_LEN + 6];
40
41 extern void get_hostname(void);
42 extern uint32_t rand_time_delta(uint32_t t);
43 extern time_t monotonic_time(void);
44
45 void umdns_udebug_set_enabled(bool val);
46 void umdns_udebug_printf(const char *format, ...);
47
48 #endif