1#ifndef fooverifyhbar 2#define fooverifyhbar 3 4typedef struct AvahiLLMNREntryVerify AvahiLLMNREntryVerify; 5typedef struct AvahiVerifierData AvahiVerifierData; 6 7#include <avahi-common/address.h> 8 9#include "internal.h" 10#include "publish.h" 11 12/* State of the verifier */ 13typedef enum { 14 AVAHI_VERIFYING, 15 AVAHI_CONFLICT, 16 AVAHI_VERIFIED, 17 AVAHI_LLMNR_ESTABLISHED 18} AvahiLLMNREntryVerifyState; 19 20/* AvahiLLMNREntryVerify */ 21struct AvahiLLMNREntryVerify { 22 AvahiServer *s; 23 AvahiInterface *interface; 24 AvahiEntry *e; 25 26 AvahiLLMNRQuery *lq; 27 AvahiLLMNREntryVerifyState state; 28 29 AVAHI_LLIST_FIELDS(AvahiLLMNREntryVerify, by_interface); 30 AVAHI_LLIST_FIELDS(AvahiLLMNREntryVerify, by_entry); 31}; 32 33/* This structure is passed as userdata in AvahiLLMNRQuery */ 34struct AvahiVerifierData { 35 AvahiLLMNREntryVerify *ev; 36 const AvahiAddress *address; 37 int t_bit; 38}; 39 40void avahi_verify_interface(AvahiServer *s, AvahiInterface *i); 41void avahi_verify_entry(AvahiServer *s, AvahiEntry *e); 42void avahi_verify_group(AvahiServer *s, AvahiSEntryGroup *g); 43 44void avahi_llmnr_entry_return_to_initial_state(AvahiServer *s, AvahiEntry *e, AvahiInterface *i); 45 46/* returns -1 if there is no verifier or state is AVAHI_CONFLICT for this entry */ 47/* returns 1 if state is AVAHI_VERFYING */ 48/* return 0 if state is AVHAI_VERIFIED */ 49int avahi_llmnr_entry_is_verifying(AvahiServer *s, AvahiEntry *e, AvahiInterface *i); 50/* AvahiLLMNREntryVerify* get_verifier(AvahiSLLMNR *sl, AvahiInterface *i, AvahiEntry *e)*/ 51 52void avahi_reverify_entry(AvahiServer *s, AvahiEntry *e); 53AvahiLLMNREntryVerifyState avahi_llmnr_entry_verify_state(AvahiLLMNREntryVerify *ev); 54void avahi_remove_verifiers(AvahiServer *s, AvahiEntry *e); 55void avahi_remove_interface_verifiers(AvahiServer *s, AvahiInterface *i); 56 57#endif /* fooverifyhbar */ 58