Lines Matching defs:server

59 	struct radius_server		 server[4];
72 struct radius_server *server;
161 if (strcmp(paramname, "server") == 0) {
163 "`server' must have just one argument");
164 SYNTAX_ASSERT(module->nserver < (int)nitems(module->server),
165 "number of server reached limit");
169 memcpy(&module->server[module->nserver].addr, res->ai_addr,
172 if (ntohs(module->server[module->nserver].addr.sin4.sin_port)
174 module->server[module->nserver].addr.sin4.sin_port
177 module->server[module->nserver].sock = -1;
245 "needs one `server' at least");
256 module->server[i].module = module;
257 if (radius_server_start(&module->server[i]) != 0) {
280 radius_server_stop(&module->server[i]);
323 /* select current server */
339 radius_server_start(struct radius_server *server)
345 if ((server->sock = socket(AF_INET, SOCK_DGRAM | SOCK_NONBLOCK, 0))
347 module_radius_log(server->module, LOG_WARNING,
351 if (connect(server->sock, (struct sockaddr *)&server->addr,
352 server->addr.sin4.sin_len) != 0) {
353 module_radius_log(server->module, LOG_WARNING,
355 addrport_tostring((struct sockaddr *)&server->addr,
356 server->addr.sin4.sin_len, buf1, sizeof(buf1)));
359 locallen = sizeof(server->local);
360 if (getsockname(server->sock, (struct sockaddr *)&server->local,
362 module_radius_log(server->module, LOG_WARNING,
366 module_radius_log(server->module, LOG_INFO,
368 addrport_tostring((struct sockaddr *)&server->local,
370 addrport_tostring((struct sockaddr *)&server->addr,
371 server->addr.sin4.sin_len, buf1, sizeof(buf1)));
373 event_set(&server->ev, server->sock, EV_READ | EV_PERSIST,
374 radius_server_on_event, server);
375 if (event_add(&server->ev, NULL)) {
376 module_radius_log(server->module, LOG_WARNING,
383 if (server->sock >= 0)
384 close(server->sock);
385 server->sock = -1;
390 radius_server_stop(struct radius_server *server)
392 event_del(&server->ev);
393 if (server->sock >= 0)
394 close(server->sock);
395 server->sock = -1;
404 struct radius_server *server = ctx;
409 peer = (struct sockaddr *)&server->addr;
410 if ((sz = recv(server->sock, pkt, sizeof(pkt), 0)) == -1) {
413 module_radius_log(server->module, LOG_WARNING,
414 "server=%s recv() failed: %m",
419 module_radius_log(server->module, LOG_WARNING,
420 "server=%s could not convert the received message to a "
426 TAILQ_FOREACH(req, &server->module->req, next) {
427 if (req->server == server && req->req_id == res_id)
431 module_radius_log(server->module, LOG_WARNING,
432 "server=%s Received radius message has unknown id=%d",
440 server->module->secret) != 0) {
441 module_radius_log(server->module, LOG_WARNING,
442 "server=%s Received radius message(id=%d) has bad "
451 server->module->secret) != 0) {
452 module_radius_log(server->module, LOG_WARNING,
453 "server=%s Received radius message(id=%d) has bad "
460 module_radius_log(server->module, LOG_INFO,
461 "q=%u received a response from server %s", req->q_id,
472 radius_server_on_fail(struct radius_server *server, const char *failmsg)
478 caddr = (struct sockaddr *)&server->addr;
479 if (server->module->nserver <= 1) {
480 module_radius_log(server->module, LOG_WARNING,
486 server->module->curr_server++;
487 server->module->curr_server %= server->module->nserver;
489 &server->module->server[server->module->curr_server].addr;
491 module_radius_log(server->module, LOG_WARNING,
507 peer = (struct sockaddr *)&req->server->addr;
508 if ((sz = send(req->server->sock, radius_get_data(req->q_pkt),
560 radius_server_on_fail(req->server, msg);
568 /* select the next server */
603 req->server = &req->module->server[req->module->curr_server];
605 req->req_id = req->server->req_id_seq++;