1#ifndef foollmnrresponsehbar 2#define foollmnrresponsehbar 3 4typedef struct AvahiLLMNRResponseJob AvahiLLMNRResponseJob; 5typedef struct AvahiLLMNRResponseScheduler AvahiLLMNRResponseScheduler; 6 7#include <avahi-common/llist.h> 8#include <avahi-common/timeval.h> 9 10#include "iface.h" 11#include "dns.h" 12 13struct AvahiLLMNRResponseJob { 14 AvahiLLMNRResponseScheduler *s; 15 16 AvahiTimeEvent *time_event; 17 AvahiDnsPacket *reply; 18 19 AvahiAddress address; 20 uint16_t port; 21 22 AVAHI_LLIST_FIELDS(AvahiLLMNRResponseJob, jobs); 23}; 24 25struct AvahiLLMNRResponseScheduler { 26 AvahiInterface *interface; 27 AvahiTimeEventQueue *time_event_queue; 28 29 AVAHI_LLIST_HEAD(AvahiLLMNRResponseJob, jobs); 30}; 31 32AvahiLLMNRResponseScheduler *avahi_llmnr_response_scheduler_new(AvahiInterface *i); 33void avahi_llmnr_response_scheduler_free(AvahiLLMNRResponseScheduler *s); 34void avahi_llmnr_response_scheduler_clear(AvahiLLMNRResponseScheduler *s); 35 36int avahi_post_llmnr_response(AvahiLLMNRResponseScheduler *s, AvahiDnsPacket *p, const AvahiAddress *a, uint16_t port); 37void avahi_llmnr_response_job_free(AvahiLLMNRResponseScheduler *s, AvahiLLMNRResponseJob *rj); 38 39#endif 40 41