util.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. #ifndef _UTIL_H__
  14. #define _UTIL_H__
  15. #include <stdint.h>
  16. #include <time.h>
  17. #define DBG(level, fmt, ...) do { \
  18. umdns_udebug_printf("[%d] [%s:%d] " fmt, level, __func__, __LINE__, ## __VA_ARGS__); \
  19. if (debug >= level) \
  20. fprintf(stderr, "mdnsd: %s (%d): " fmt, __func__, __LINE__, ## __VA_ARGS__); \
  21. } while (0)
  22. #define MDNS_BUF_LEN (8 * 1024)
  23. #define HOSTNAME_LEN 256
  24. extern int debug;
  25. extern uint8_t mdns_buf[MDNS_BUF_LEN];
  26. /**
  27. * The first label of a host's fully qualified domain name
  28. *
  29. * E.g. just "example" for the domain name example.local.
  30. */
  31. extern char umdns_host_label[HOSTNAME_LEN];
  32. extern char mdns_hostname_local[HOSTNAME_LEN + 6];
  33. extern void get_hostname(void);
  34. extern uint32_t rand_time_delta(uint32_t t);
  35. extern time_t monotonic_time(void);
  36. void umdns_udebug_set_enabled(bool val);
  37. void umdns_udebug_printf(const char *format, ...);
  38. #endif