Lines Matching refs:entry

366 				    struct radius_msg_list *entry,  in radius_client_retransmit()  argument
377 if (entry->msg_type == RADIUS_ACCT || in radius_client_retransmit()
378 entry->msg_type == RADIUS_ACCT_INTERIM) { in radius_client_retransmit()
389 if (entry->attempts == 0) in radius_client_retransmit()
406 if (entry->attempts == 0) in radius_client_retransmit()
414 if (entry->msg_type == RADIUS_ACCT_INTERIM) { in radius_client_retransmit()
418 MAC2STR(entry->addr)); in radius_client_retransmit()
420 radius->interim_error_cb(entry->addr, in radius_client_retransmit()
431 if (entry->msg_type == RADIUS_ACCT && in radius_client_retransmit()
432 radius_msg_get_attr_ptr(entry->msg, RADIUS_ATTR_ACCT_DELAY_TIME, in radius_client_retransmit()
443 hdr = radius_msg_get_hdr(entry->msg); in radius_client_retransmit()
447 delay_time = now - entry->first_try; in radius_client_retransmit()
453 radius_msg_finish_acct(entry->msg, entry->shared_secret, in radius_client_retransmit()
454 entry->shared_secret_len); in radius_client_retransmit()
456 radius_msg_dump(entry->msg); in radius_client_retransmit()
460 if (entry->accu_attempts > RADIUS_CLIENT_MAX_FAILOVER * in radius_client_retransmit()
467 entry->attempts++; in radius_client_retransmit()
468 entry->accu_attempts++; in radius_client_retransmit()
469 hostapd_logger(radius->ctx, entry->addr, HOSTAPD_MODULE_RADIUS, in radius_client_retransmit()
471 radius_msg_get_hdr(entry->msg)->identifier); in radius_client_retransmit()
473 os_get_reltime(&entry->last_attempt); in radius_client_retransmit()
474 buf = radius_msg_get_buf(entry->msg); in radius_client_retransmit()
476 if (radius_client_handle_send_error(radius, s, entry->msg_type) in radius_client_retransmit()
481 entry->next_try = now + entry->next_wait; in radius_client_retransmit()
482 entry->next_wait *= 2; in radius_client_retransmit()
483 if (entry->next_wait > RADIUS_CLIENT_MAX_WAIT) in radius_client_retransmit()
484 entry->next_wait = RADIUS_CLIENT_MAX_WAIT; in radius_client_retransmit()
495 struct radius_msg_list *entry, *prev, *tmp; in radius_client_timer() local
500 entry = radius->msgs; in radius_client_timer()
501 if (!entry) in radius_client_timer()
506 while (entry) { in radius_client_timer()
507 if (now.sec >= entry->next_try) { in radius_client_timer()
508 s = entry->msg_type == RADIUS_AUTH ? radius->auth_sock : in radius_client_timer()
510 if (entry->attempts > RADIUS_CLIENT_NUM_FAILOVER || in radius_client_timer()
511 (s < 0 && entry->attempts > 0)) { in radius_client_timer()
512 if (entry->msg_type == RADIUS_ACCT || in radius_client_timer()
513 entry->msg_type == RADIUS_ACCT_INTERIM) in radius_client_timer()
519 entry = entry->next; in radius_client_timer()
528 entry = radius->msgs; in radius_client_timer()
532 while (entry) { in radius_client_timer()
534 if (now.sec >= entry->next_try && in radius_client_timer()
535 radius_client_retransmit(radius, entry, now.sec)) { in radius_client_timer()
537 prev->next = entry->next; in radius_client_timer()
539 radius->msgs = entry->next; in radius_client_timer()
541 tmp = entry; in radius_client_timer()
542 entry = entry->next; in radius_client_timer()
551 entry = radius->msgs; in radius_client_timer()
556 if (first == 0 || entry->next_try < first) in radius_client_timer()
557 first = entry->next_try; in radius_client_timer()
559 prev = entry; in radius_client_timer()
560 entry = entry->next; in radius_client_timer()
581 struct radius_msg_list *entry; in radius_client_auth_failover() local
591 for (entry = radius->msgs; entry; entry = entry->next) { in radius_client_auth_failover()
592 if (entry->msg_type == RADIUS_AUTH) in radius_client_auth_failover()
610 struct radius_msg_list *entry; in radius_client_acct_failover() local
620 for (entry = radius->msgs; entry; entry = entry->next) { in radius_client_acct_failover()
621 if (entry->msg_type == RADIUS_ACCT || in radius_client_acct_failover()
622 entry->msg_type == RADIUS_ACCT_INTERIM) in radius_client_acct_failover()
640 struct radius_msg_list *entry; in radius_client_update_timeout() local
649 for (entry = radius->msgs; entry; entry = entry->next) { in radius_client_update_timeout()
650 if (first == 0 || entry->next_try < first) in radius_client_update_timeout()
651 first = entry->next_try; in radius_client_update_timeout()
671 struct radius_msg_list *entry, *prev; in radius_client_list_add() local
680 entry = os_zalloc(sizeof(*entry)); in radius_client_list_add()
681 if (entry == NULL) { in radius_client_list_add()
688 os_memcpy(entry->addr, addr, ETH_ALEN); in radius_client_list_add()
689 entry->msg = msg; in radius_client_list_add()
690 entry->msg_type = msg_type; in radius_client_list_add()
691 entry->shared_secret = shared_secret; in radius_client_list_add()
692 entry->shared_secret_len = shared_secret_len; in radius_client_list_add()
693 os_get_reltime(&entry->last_attempt); in radius_client_list_add()
694 entry->first_try = entry->last_attempt.sec; in radius_client_list_add()
695 entry->next_try = entry->first_try + RADIUS_CLIENT_FIRST_WAIT; in radius_client_list_add()
696 entry->attempts = 1; in radius_client_list_add()
697 entry->accu_attempts = 1; in radius_client_list_add()
698 entry->next_wait = RADIUS_CLIENT_FIRST_WAIT * 2; in radius_client_list_add()
699 if (entry->next_wait > RADIUS_CLIENT_MAX_WAIT) in radius_client_list_add()
700 entry->next_wait = RADIUS_CLIENT_MAX_WAIT; in radius_client_list_add()
701 entry->next = radius->msgs; in radius_client_list_add()
702 radius->msgs = entry; in radius_client_list_add()
708 while (entry->next) { in radius_client_list_add()
709 prev = entry; in radius_client_list_add()
710 entry = entry->next; in radius_client_list_add()
714 radius_client_msg_free(entry); in radius_client_list_add()
970 struct radius_msg_list *entry, *prev, *_remove; in radius_client_get_id() local
975 entry = radius->msgs; in radius_client_get_id()
977 while (entry) { in radius_client_get_id()
978 if (radius_msg_get_hdr(entry->msg)->identifier == id) { in radius_client_get_id()
979 hostapd_logger(radius->ctx, entry->addr, in radius_client_get_id()
985 prev->next = entry->next; in radius_client_get_id()
987 radius->msgs = entry->next; in radius_client_get_id()
988 _remove = entry; in radius_client_get_id()
991 prev = entry; in radius_client_get_id()
993 entry = entry->next; in radius_client_get_id()
1010 struct radius_msg_list *entry, *prev, *tmp; in radius_client_flush() local
1016 entry = radius->msgs; in radius_client_flush()
1018 while (entry) { in radius_client_flush()
1019 if (!only_auth || entry->msg_type == RADIUS_AUTH) { in radius_client_flush()
1021 prev->next = entry->next; in radius_client_flush()
1023 radius->msgs = entry->next; in radius_client_flush()
1025 tmp = entry; in radius_client_flush()
1026 entry = entry->next; in radius_client_flush()
1030 prev = entry; in radius_client_flush()
1031 entry = entry->next; in radius_client_flush()
1044 struct radius_msg_list *entry; in radius_client_update_acct_msgs() local
1049 for (entry = radius->msgs; entry; entry = entry->next) { in radius_client_update_acct_msgs()
1050 if (entry->msg_type == RADIUS_ACCT) { in radius_client_update_acct_msgs()
1051 entry->shared_secret = shared_secret; in radius_client_update_acct_msgs()
1052 entry->shared_secret_len = shared_secret_len; in radius_client_update_acct_msgs()
1053 radius_msg_finish_acct(entry->msg, shared_secret, in radius_client_update_acct_msgs()
1074 struct radius_msg_list *entry; in radius_change_server() local
1114 for (entry = radius->msgs; oserv && entry; entry = entry->next) { in radius_change_server()
1115 if ((auth && entry->msg_type != RADIUS_AUTH) || in radius_change_server()
1116 (!auth && entry->msg_type != RADIUS_ACCT)) in radius_change_server()
1118 entry->next_try = entry->first_try + RADIUS_CLIENT_FIRST_WAIT; in radius_change_server()
1119 entry->attempts = 1; in radius_change_server()
1120 entry->next_wait = RADIUS_CLIENT_FIRST_WAIT * 2; in radius_change_server()
1525 struct radius_msg_list *entry, *prev, *tmp; in radius_client_flush_auth() local
1528 entry = radius->msgs; in radius_client_flush_auth()
1529 while (entry) { in radius_client_flush_auth()
1530 if (entry->msg_type == RADIUS_AUTH && in radius_client_flush_auth()
1531 os_memcmp(entry->addr, addr, ETH_ALEN) == 0) { in radius_client_flush_auth()
1539 prev->next = entry->next; in radius_client_flush_auth()
1541 radius->msgs = entry->next; in radius_client_flush_auth()
1543 tmp = entry; in radius_client_flush_auth()
1544 entry = entry->next; in radius_client_flush_auth()
1550 prev = entry; in radius_client_flush_auth()
1551 entry = entry->next; in radius_client_flush_auth()