Lines Matching refs:das

34 static struct radius_msg * radius_das_disconnect(struct radius_das_data *das,  in radius_das_disconnect()  argument
147 res = das->disconnect(das->ctx, &attrs); in radius_das_disconnect()
197 static struct radius_msg * radius_das_coa(struct radius_das_data *das, in radius_das_coa() argument
232 if (!das->coa) { in radius_das_coa()
341 res = das->coa(das->ctx, &attrs); in radius_das_coa()
393 struct radius_das_data *das = eloop_ctx; in radius_das_receive() local
426 if (das->client_addr.u.v4.s_addr && in radius_das_receive()
427 das->client_addr.u.v4.s_addr != from.sin.sin_addr.s_addr) { in radius_das_receive()
442 if (radius_msg_verify_das_req(msg, das->shared_secret, in radius_das_receive()
443 das->shared_secret_len, in radius_das_receive()
444 das->require_message_authenticator)) { in radius_das_receive()
457 das->time_window) { in radius_das_receive()
465 } else if (das->require_event_timestamp) { in radius_das_receive()
475 reply = radius_das_disconnect(das, msg, abuf, from_port); in radius_das_receive()
478 reply = radius_das_coa(das, msg, abuf, from_port); in radius_das_receive()
496 if (radius_msg_finish_das_resp(reply, das->shared_secret, in radius_das_receive()
497 das->shared_secret_len, hdr) < in radius_das_receive()
507 res = sendto(das->sock, wpabuf_head(rbuf), in radius_das_receive()
549 struct radius_das_data *das; in radius_das_init() local
555 das = os_zalloc(sizeof(*das)); in radius_das_init()
556 if (das == NULL) in radius_das_init()
559 das->time_window = conf->time_window; in radius_das_init()
560 das->require_event_timestamp = conf->require_event_timestamp; in radius_das_init()
561 das->require_message_authenticator = in radius_das_init()
563 das->ctx = conf->ctx; in radius_das_init()
564 das->disconnect = conf->disconnect; in radius_das_init()
565 das->coa = conf->coa; in radius_das_init()
567 os_memcpy(&das->client_addr, conf->client_addr, in radius_das_init()
568 sizeof(das->client_addr)); in radius_das_init()
570 das->shared_secret = os_memdup(conf->shared_secret, in radius_das_init()
572 if (das->shared_secret == NULL) { in radius_das_init()
573 radius_das_deinit(das); in radius_das_init()
576 das->shared_secret_len = conf->shared_secret_len; in radius_das_init()
578 das->sock = radius_das_open_socket(conf->port); in radius_das_init()
579 if (das->sock < 0) { in radius_das_init()
582 radius_das_deinit(das); in radius_das_init()
586 if (eloop_register_read_sock(das->sock, radius_das_receive, das, NULL)) in radius_das_init()
588 radius_das_deinit(das); in radius_das_init()
592 return das; in radius_das_init()
596 void radius_das_deinit(struct radius_das_data *das) in radius_das_deinit() argument
598 if (das == NULL) in radius_das_deinit()
601 if (das->sock >= 0) { in radius_das_deinit()
602 eloop_unregister_read_sock(das->sock); in radius_das_deinit()
603 close(das->sock); in radius_das_deinit()
606 os_free(das->shared_secret); in radius_das_deinit()
607 os_free(das); in radius_das_deinit()