Lines Matching defs:radiusd
1 /* $OpenBSD: radiusd.c,v 1.62 2025/01/29 10:12:22 yasuoka Exp $ */
47 #include "radiusd.h"
55 static int radiusd_start(struct radiusd *);
56 static void radiusd_stop(struct radiusd *);
57 static void radiusd_free(struct radiusd *);
107 struct radiusd *radiusd_s = NULL;
124 struct radiusd *radiusd;
153 if ((radiusd = calloc(1, sizeof(*radiusd))) == NULL)
155 radiusd_s = radiusd;
156 TAILQ_INIT(&radiusd->listen);
157 TAILQ_INIT(&radiusd->query);
162 if (parse_config(conffile, radiusd) != 0)
195 signal_set(&radiusd->ev_sigterm, SIGTERM, radiusd_on_sigterm, radiusd);
196 signal_set(&radiusd->ev_sigint, SIGINT, radiusd_on_sigint, radiusd);
197 signal_set(&radiusd->ev_sighup, SIGHUP, radiusd_on_sighup, radiusd);
198 signal_set(&radiusd->ev_sigchld, SIGCHLD, radiusd_on_sigchld, radiusd);
200 if (radiusd_start(radiusd) != 0)
210 if (radiusd->error != 0)
213 radiusd_stop(radiusd);
218 error = radiusd->error;
219 radiusd_free(radiusd);
229 radiusd_start(struct radiusd *radiusd)
236 TAILQ_FOREACH(l, &radiusd->listen, next) {
276 l->radiusd = radiusd;
279 signal_add(&radiusd->ev_sigterm, NULL);
280 signal_add(&radiusd->ev_sigint, NULL);
281 signal_add(&radiusd->ev_sighup, NULL);
282 signal_add(&radiusd->ev_sigchld, NULL);
284 TAILQ_FOREACH(module, &radiusd->module, next) {
292 radiusd->error++;
299 radiusd_stop(struct radiusd *radiusd)
305 TAILQ_FOREACH_REVERSE(l, &radiusd->listen, radiusd_listen_head, next) {
322 TAILQ_FOREACH(module, &radiusd->module, next) {
326 if (signal_pending(&radiusd->ev_sigterm, NULL))
327 signal_del(&radiusd->ev_sigterm);
328 if (signal_pending(&radiusd->ev_sigint, NULL))
329 signal_del(&radiusd->ev_sigint);
330 if (signal_pending(&radiusd->ev_sighup, NULL))
331 signal_del(&radiusd->ev_sighup);
332 if (signal_pending(&radiusd->ev_sigchld, NULL))
333 signal_del(&radiusd->ev_sigchld);
337 radiusd_free(struct radiusd *radiusd)
347 TAILQ_FOREACH_SAFE(authen, &radiusd->authen, next, authent) {
348 TAILQ_REMOVE(&radiusd->authen, authen, next);
359 TAILQ_FOREACH_SAFE(acct, &radiusd->account, next, acctt) {
360 TAILQ_REMOVE(&radiusd->account, acct, next);
372 TAILQ_FOREACH_SAFE(module, &radiusd->module, next, modulet) {
373 TAILQ_REMOVE(&radiusd->module, module, next);
376 TAILQ_FOREACH_SAFE(client, &radiusd->client, next, clientt) {
377 TAILQ_REMOVE(&radiusd->client, client, next);
381 TAILQ_FOREACH_SAFE(listn, &radiusd->listen, next, listnt) {
382 TAILQ_REMOVE(&radiusd->listen, listn, next);
385 free(radiusd);
462 TAILQ_FOREACH(client, &listn->radiusd->client, next) {
510 TAILQ_FOREACH(q, &listn->radiusd->query, next) {
541 q->radiusd = listn->radiusd;
550 TAILQ_INSERT_TAIL(&listn->radiusd->query, q, next);
564 TAILQ_FOREACH(authen, &listn->radiusd->authen, next) {
611 TAILQ_FOREACH(accounting, &listn->radiusd->account, next) {
863 q_next->radiusd = q->radiusd;
871 TAILQ_INSERT_TAIL(&q->radiusd->query, q_next, next);
894 TAILQ_REMOVE(&q->radiusd->query, q, next);
924 struct radiusd *radiusd = ctx;
933 TAILQ_FOREACH(module, &radiusd->module, next) {
959 radiusd->error++;
1014 radiusd_conf_init(struct radiusd *conf)
1111 radiusd_find_query(struct radiusd *radiusd, u_int q_id)
1115 TAILQ_FOREACH(q, &radiusd->query, next) {
1123 radiusd_imsg_compose_module(struct radiusd *radiusd, const char *module_name,
1146 * radiusd module handling
1149 radiusd_module_load(struct radiusd *radiusd, const char *path, const char *name)
1161 module->radiusd = radiusd;
1440 q = radiusd_find_query(module->radiusd, q_id);
1493 q = radiusd_find_query(module->radiusd, q_id);
1576 q = radiusd_find_query(module->radiusd, q_id);