Lines Matching defs:mgr

60 purge_old_interfaces(ns_interfacemgr_t *mgr);
63 clearlistenon(ns_interfacemgr_t *mgr);
72 ns_interfacemgr_t *mgr;
78 mgr = isc_mem_get(mctx, sizeof(*mgr));
79 if (mgr == NULL)
82 mgr->mctx = NULL;
83 isc_mem_attach(mctx, &mgr->mctx);
85 result = isc_mutex_init(&mgr->lock);
89 mgr->taskmgr = taskmgr;
90 mgr->socketmgr = socketmgr;
91 mgr->dispatchmgr = dispatchmgr;
92 mgr->generation = 1;
93 mgr->listenon4 = NULL;
94 mgr->listenon6 = NULL;
96 ISC_LIST_INIT(mgr->interfaces);
97 ISC_LIST_INIT(mgr->listenon);
102 result = ns_listenlist_create(mctx, &mgr->listenon4);
105 ns_listenlist_attach(mgr->listenon4, &mgr->listenon6);
107 result = dns_aclenv_init(mctx, &mgr->aclenv);
111 mgr->references = 1;
112 mgr->magic = IFMGR_MAGIC;
113 *mgrp = mgr;
117 ns_listenlist_detach(&mgr->listenon4);
118 ns_listenlist_detach(&mgr->listenon6);
120 isc_mem_putanddetach(&mgr->mctx, mgr, sizeof(*mgr));
125 ns_interfacemgr_destroy(ns_interfacemgr_t *mgr) {
126 REQUIRE(NS_INTERFACEMGR_VALID(mgr));
127 dns_aclenv_destroy(&mgr->aclenv);
128 ns_listenlist_detach(&mgr->listenon4);
129 ns_listenlist_detach(&mgr->listenon6);
130 clearlistenon(mgr);
131 DESTROYLOCK(&mgr->lock);
132 mgr->magic = 0;
133 isc_mem_putanddetach(&mgr->mctx, mgr, sizeof(*mgr));
137 ns_interfacemgr_getaclenv(ns_interfacemgr_t *mgr) {
138 return (&mgr->aclenv);
169 ns_interfacemgr_shutdown(ns_interfacemgr_t *mgr) {
170 REQUIRE(NS_INTERFACEMGR_VALID(mgr));
177 mgr->generation++;
178 purge_old_interfaces(mgr);
183 ns_interface_create(ns_interfacemgr_t *mgr, isc_sockaddr_t *addr,
189 REQUIRE(NS_INTERFACEMGR_VALID(mgr));
190 ifp = isc_mem_get(mgr->mctx, sizeof(*ifp));
193 ifp->mgr = NULL;
194 ifp->generation = mgr->generation;
205 result = ns_clientmgr_create(mgr->mctx, mgr->taskmgr,
229 ns_interfacemgr_attach(mgr, &ifp->mgr);
230 ISC_LIST_APPEND(mgr->interfaces, ifp, link);
242 isc_mem_put(mgr->mctx, ifp, sizeof(*ifp));
263 result = dns_dispatch_getudp(ifp->mgr->dispatchmgr, ns_g_socketmgr,
299 result = isc_socket_create(ifp->mgr->socketmgr,
355 ns_interface_setup(ns_interfacemgr_t *mgr, isc_sockaddr_t *addr,
363 result = ns_interface_create(mgr, addr, name, &ifp);
387 ISC_LIST_UNLINK(ifp->mgr->interfaces, ifp, link);
400 isc_mem_t *mctx = ifp->mgr->mctx;
415 ns_interfacemgr_detach(&ifp->mgr);
453 find_matching_interface(ns_interfacemgr_t *mgr, isc_sockaddr_t *addr) {
455 for (ifp = ISC_LIST_HEAD(mgr->interfaces); ifp != NULL;
467 purge_old_interfaces(ns_interfacemgr_t *mgr) {
469 for (ifp = ISC_LIST_HEAD(mgr->interfaces); ifp != NULL; ifp = next) {
472 if (ifp->generation != mgr->generation) {
474 ISC_LIST_UNLINK(ifp->mgr->interfaces, ifp, link);
505 setup_locals(ns_interfacemgr_t *mgr, isc_interface_t *interface) {
514 result = dns_iptable_addprefix(mgr->aclenv.localhost->iptable,
544 result = dns_iptable_addprefix(mgr->aclenv.localnets->iptable,
553 setup_listenon(ns_interfacemgr_t *mgr, isc_interface_t *interface,
559 addr = isc_mem_get(mgr->mctx, sizeof(*addr));
565 for (old = ISC_LIST_HEAD(mgr->listenon);
572 isc_mem_put(mgr->mctx, addr, sizeof(*addr));
574 ISC_LIST_APPEND(mgr->listenon, addr, link);
578 clearlistenon(ns_interfacemgr_t *mgr) {
581 old = ISC_LIST_HEAD(mgr->listenon);
583 ISC_LIST_UNLINK(mgr->listenon, old, link);
584 isc_mem_put(mgr->mctx, old, sizeof(*old));
585 old = ISC_LIST_HEAD(mgr->listenon);
590 do_scan(ns_interfacemgr_t *mgr, ns_listenlist_t *ext_listen,
647 for (le = ISC_LIST_HEAD(mgr->listenon6->elts);
658 ifp = find_matching_interface(mgr, &listen_addr);
660 ifp->generation = mgr->generation;
667 result = ns_interface_setup(mgr, &listen_addr,
685 result = isc_interfaceiter_create(mgr->mctx, &iter);
690 result = clearacl(mgr->mctx, &mgr->aclenv.localhost);
693 result = clearacl(mgr->mctx, &mgr->aclenv.localnets);
696 clearlistenon(mgr);
736 result = setup_locals(mgr, &interface);
741 ll = (family == AF_INET) ? mgr->listenon4 : mgr->listenon6;
774 &mgr->aclenv, &match, NULL);
779 setup_listenon(mgr, &interface, le->port);
819 ifp = find_matching_interface(mgr, &listen_sockaddr);
821 ifp->generation = mgr->generation;
853 result = ns_interface_setup(mgr,
897 ns_interfacemgr_scan0(ns_interfacemgr_t *mgr, ns_listenlist_t *ext_listen,
902 REQUIRE(NS_INTERFACEMGR_VALID(mgr));
904 mgr->generation++; /* Increment the generation count. */
906 if (do_scan(mgr, ext_listen, verbose) != ISC_R_SUCCESS)
916 purge_old_interfaces(mgr);
924 ISC_LIST_EMPTY(mgr->interfaces) && ! ns_g_lwresdonly) {
931 ns_interfacemgr_scan(ns_interfacemgr_t *mgr, isc_boolean_t verbose) {
932 ns_interfacemgr_scan0(mgr, NULL, verbose);
936 ns_interfacemgr_adjust(ns_interfacemgr_t *mgr, ns_listenlist_t *list,
939 ns_interfacemgr_scan0(mgr, list, verbose);
943 ns_interfacemgr_setlistenon4(ns_interfacemgr_t *mgr, ns_listenlist_t *value) {
944 LOCK(&mgr->lock);
945 ns_listenlist_detach(&mgr->listenon4);
946 ns_listenlist_attach(value, &mgr->listenon4);
947 UNLOCK(&mgr->lock);
951 ns_interfacemgr_setlistenon6(ns_interfacemgr_t *mgr, ns_listenlist_t *value) {
952 LOCK(&mgr->lock);
953 ns_listenlist_detach(&mgr->listenon6);
954 ns_listenlist_attach(value, &mgr->listenon6);
955 UNLOCK(&mgr->lock);
959 ns_interfacemgr_dumprecursing(FILE *f, ns_interfacemgr_t *mgr) {
962 LOCK(&mgr->lock);
963 interface = ISC_LIST_HEAD(mgr->interfaces);
969 UNLOCK(&mgr->lock);
973 ns_interfacemgr_listeningon(ns_interfacemgr_t *mgr, isc_sockaddr_t *addr) {
976 for (old = ISC_LIST_HEAD(mgr->listenon);