Lines Matching defs:sctx
43 ns_server_t *sctx = NULL;
47 sctx = isc_mem_get(mctx, sizeof(*sctx));
48 *sctx = (ns_server_t){
58 isc_mem_attach(mctx, &sctx->mctx);
65 isc_refcount_init(&sctx->references, 1);
67 isc_quota_init(&sctx->xfroutquota, 10);
68 isc_quota_init(&sctx->tcpquota, 10);
69 isc_quota_init(&sctx->recursionquota, 100);
70 isc_quota_init(&sctx->updquota, 100);
71 isc_quota_init(&sctx->sig0checksquota, 1);
72 ISC_LIST_INIT(sctx->http_quotas);
73 isc_mutex_init(&sctx->http_quotas_lock);
75 ns_stats_create(mctx, ns_statscounter_max, &sctx->nsstats);
77 dns_rdatatypestats_create(mctx, &sctx->rcvquerystats);
79 dns_opcodestats_create(mctx, &sctx->opcodestats);
81 dns_rcodestats_create(mctx, &sctx->rcodestats);
84 &sctx->udpinstats4);
87 &sctx->udpoutstats4);
90 &sctx->udpinstats6);
93 &sctx->udpoutstats6);
96 &sctx->tcpinstats4);
99 &sctx->tcpoutstats4);
102 &sctx->tcpinstats6);
105 &sctx->tcpoutstats6);
107 ISC_LIST_INIT(sctx->altsecrets);
109 sctx->magic = SCTX_MAGIC;
110 *sctxp = sctx;
125 ns_server_t *sctx;
128 sctx = *sctxp;
131 if (isc_refcount_decrement(&sctx->references) == 1) {
135 while ((altsecret = ISC_LIST_HEAD(sctx->altsecrets)) != NULL) {
136 ISC_LIST_UNLINK(sctx->altsecrets, altsecret, link);
137 isc_mem_put(sctx->mctx, altsecret, sizeof(*altsecret));
140 if (sctx->sig0checksquota_exempt != NULL) {
141 dns_acl_detach(&sctx->sig0checksquota_exempt);
144 isc_quota_destroy(&sctx->sig0checksquota);
145 isc_quota_destroy(&sctx->updquota);
146 isc_quota_destroy(&sctx->recursionquota);
147 isc_quota_destroy(&sctx->tcpquota);
148 isc_quota_destroy(&sctx->xfroutquota);
150 http_quota = ISC_LIST_HEAD(sctx->http_quotas);
155 ISC_LIST_DEQUEUE(sctx->http_quotas, http_quota, link);
157 isc_mem_put(sctx->mctx, http_quota,
161 isc_mutex_destroy(&sctx->http_quotas_lock);
163 if (sctx->server_id != NULL) {
164 isc_mem_free(sctx->mctx, sctx->server_id);
167 if (sctx->blackholeacl != NULL) {
168 dns_acl_detach(&sctx->blackholeacl);
170 if (sctx->tkeyctx != NULL) {
171 dns_tkeyctx_destroy(&sctx->tkeyctx);
174 if (sctx->nsstats != NULL) {
175 ns_stats_detach(&sctx->nsstats);
178 if (sctx->rcvquerystats != NULL) {
179 dns_stats_detach(&sctx->rcvquerystats);
181 if (sctx->opcodestats != NULL) {
182 dns_stats_detach(&sctx->opcodestats);
184 if (sctx->rcodestats != NULL) {
185 dns_stats_detach(&sctx->rcodestats);
188 if (sctx->udpinstats4 != NULL) {
189 isc_histomulti_destroy(&sctx->udpinstats4);
191 if (sctx->tcpinstats4 != NULL) {
192 isc_histomulti_destroy(&sctx->tcpinstats4);
194 if (sctx->udpoutstats4 != NULL) {
195 isc_histomulti_destroy(&sctx->udpoutstats4);
197 if (sctx->tcpoutstats4 != NULL) {
198 isc_histomulti_destroy(&sctx->tcpoutstats4);
201 if (sctx->udpinstats6 != NULL) {
202 isc_histomulti_destroy(&sctx->udpinstats6);
204 if (sctx->tcpinstats6 != NULL) {
205 isc_histomulti_destroy(&sctx->tcpinstats6);
207 if (sctx->udpoutstats6 != NULL) {
208 isc_histomulti_destroy(&sctx->udpoutstats6);
210 if (sctx->tcpoutstats6 != NULL) {
211 isc_histomulti_destroy(&sctx->tcpoutstats6);
214 sctx->magic = 0;
216 isc_mem_putanddetach(&sctx->mctx, sctx, sizeof(*sctx));
221 ns_server_setserverid(ns_server_t *sctx, const char *serverid) {
222 REQUIRE(SCTX_VALID(sctx));
224 if (sctx->server_id != NULL) {
225 isc_mem_free(sctx->mctx, sctx->server_id);
226 sctx->server_id = NULL;
230 sctx->server_id = isc_mem_strdup(sctx->mctx, serverid);
237 ns_server_setoption(ns_server_t *sctx, unsigned int option, bool value) {
238 REQUIRE(SCTX_VALID(sctx));
240 sctx->options |= option;
242 sctx->options &= ~option;
247 ns_server_getoption(ns_server_t *sctx, unsigned int option) {
248 REQUIRE(SCTX_VALID(sctx));
250 return (sctx->options & option) != 0;
254 ns_server_append_http_quota(ns_server_t *sctx, isc_quota_t *http_quota) {
255 REQUIRE(SCTX_VALID(sctx));
258 LOCK(&sctx->http_quotas_lock);
260 ISC_LIST_APPEND(sctx->http_quotas, http_quota, link);
261 UNLOCK(&sctx->http_quotas_lock);