00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef NAMED_LISTENLIST_H
00021 #define NAMED_LISTENLIST_H 1
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #include <isc/net.h>
00036
00037 #include <dns/types.h>
00038
00039
00040
00041
00042
00043 typedef struct ns_listenelt ns_listenelt_t;
00044 typedef struct ns_listenlist ns_listenlist_t;
00045
00046 struct ns_listenelt {
00047 isc_mem_t * mctx;
00048 in_port_t port;
00049 isc_dscp_t dscp;
00050 dns_acl_t * acl;
00051 ISC_LINK(ns_listenelt_t) link;
00052 };
00053
00054 struct ns_listenlist {
00055 isc_mem_t * mctx;
00056 int refcount;
00057 ISC_LIST(ns_listenelt_t) elts;
00058 };
00059
00060
00061
00062
00063
00064 isc_result_t
00065 ns_listenelt_create(isc_mem_t *mctx, in_port_t port, isc_dscp_t dscp,
00066 dns_acl_t *acl, ns_listenelt_t **target);
00067
00068
00069
00070
00071 void
00072 ns_listenelt_destroy(ns_listenelt_t *elt);
00073
00074
00075
00076
00077 isc_result_t
00078 ns_listenlist_create(isc_mem_t *mctx, ns_listenlist_t **target);
00079
00080
00081
00082
00083 void
00084 ns_listenlist_attach(ns_listenlist_t *source, ns_listenlist_t **target);
00085
00086
00087
00088
00089 void
00090 ns_listenlist_detach(ns_listenlist_t **listp);
00091
00092
00093
00094
00095 isc_result_t
00096 ns_listenlist_default(isc_mem_t *mctx, in_port_t port, isc_dscp_t dscp,
00097 isc_boolean_t enabled, ns_listenlist_t **target);
00098
00099
00100
00101
00102
00103
00104 #endif
00105
00106