1294491Sdelphij/*
2294491Sdelphij *  ntp_keyacc.h - key access stuff
3294491Sdelphij */
4294491Sdelphij#ifndef NTP_KEYACC_H
5294491Sdelphij#define NTP_KEYACC_H
6294491Sdelphij
7294491Sdelphijtypedef struct keyaccess KeyAccT;
8294491Sdelphijstruct keyaccess {
9294491Sdelphij	KeyAccT *	next;
10294491Sdelphij	sockaddr_u	addr;
11330106Sdelphij	unsigned int	subnetbits;
12294491Sdelphij};
13294491Sdelphij
14330106Sdelphijextern KeyAccT* keyacc_new_push(KeyAccT *head, const sockaddr_u *addr,
15330106Sdelphij				unsigned int subnetbits);
16298695Sdelphijextern KeyAccT* keyacc_pop_free(KeyAccT *head);
17298695Sdelphijextern KeyAccT* keyacc_all_free(KeyAccT *head);
18298695Sdelphijextern int      keyacc_contains(const KeyAccT *head, const sockaddr_u *addr,
19298695Sdelphij				int res_on_empty_list);
20330106Sdelphij/* public for testability: */
21330106Sdelphijextern int	keyacc_amatch(const sockaddr_u *,const sockaddr_u *,
22330106Sdelphij			      unsigned int mbits);
23298695Sdelphij
24330106Sdelphij
25294491Sdelphij#endif	/* NTP_KEYACC_H */
26