interface.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /*
  2. * Copyright (C) 2014 John Crispin <blogic@openwrt.org>
  3. * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org>
  4. *
  5. * This program is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU Lesser General Public License version 2.1
  7. * as published by the Free Software Foundation
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. */
  14. #ifndef __MDNS_INTERFACE_H
  15. #define __MDNS_INTERFACE_H
  16. #include <sys/types.h>
  17. #include <sys/uio.h>
  18. #include <arpa/inet.h>
  19. #include <libubox/uloop.h>
  20. #include <libubox/vlist.h>
  21. extern struct vlist_tree interfaces;
  22. struct interface {
  23. struct vlist_node node;
  24. const char *name;
  25. struct uloop_fd fd;
  26. struct uloop_timeout reconnect;
  27. int ifindex;
  28. struct in_addr v4_addr;
  29. struct uloop_timeout announce_timer;
  30. int announce_state;
  31. };
  32. int interface_add(const char *name);
  33. int interface_send_packet(struct interface *iface, struct iovec *iov, int iov_len);
  34. #endif