Lines Matching defs:assign

354 	struct assigned_ipv4		*assign, *assignt;
360 RB_FOREACH_SAFE(assign, assigned_ipv4_tree, &self->ipv4s, assignt)
361 ipcp_ipv4_release(self, assign);
568 struct assigned_ipv4 *assign;
611 RB_FOREACH(assign, assigned_ipv4_tree, &self->ipv4s) {
612 if (!timespecisset(&assign->start))
615 ipcp_db_dump_fill_record(dump, i++, assign);
616 if (RB_NEXT(assigned_ipv4_tree, &self->ipv4s, assign)
647 RB_FOREACH(assign, assigned_ipv4_tree, &self->ipv4s) {
648 if (!timespecisset(&assign->start))
651 if (assign->seq == seq)
654 if (assign == NULL) {
664 log_info("Delete seq=%u by request", assign->seq);
665 ipcp_ipv4_delete(self, assign, "By control");
669 if (assign->dae == NULL)
671 "DAE is not configured", assign->seq);
674 assign->seq);
682 if (assign->dae_ntry == 0)
684 assign);
685 TAILQ_INSERT_TAIL(&assign->dae_clients,
697 ipcp_notice_startstop(struct module_ipcp *self, struct assigned_ipv4 *assign,
712 ipcp_db_dump_fill_record(dump, 0, assign);
743 struct assigned_ipv4 *assigned = NULL, *assign;
791 TAILQ_FOREACH(assign, &user->ipv4s, next)
1044 struct assigned_ipv4 *assign, *assignt;
1092 RB_FOREACH_SAFE(assign, assigned_ipv4_tree, &self->ipv4s,
1094 if (assign->nas_ipv4.s_addr != nas_ipv4.s_addr ||
1095 !IN6_ARE_ADDR_EQUAL(&assign->nas_ipv6, &nas_ipv6) ||
1096 strcmp(assign->nas_id, nas_id) != 0)
1099 inet_ntop(AF_INET, &assign->ipv4, buf,
1101 ipcp_ipv4_delete(self, assign,
1118 if ((assign = ipcp_ipv4_find(self, addr4)) == NULL) {
1130 assign->start = self->uptime;
1131 assign->start.tv_sec -= delay;
1134 assign->session_timeout > 0)) {
1135 assign->timeout = assign->start;
1137 assign->timeout.tv_sec += self->session_timeout;
1139 assign->timeout.tv_sec +=
1140 assign->session_timeout;
1142 assign->nas_ipv4 = nas_ipv4;
1143 assign->nas_ipv6 = nas_ipv6;
1144 strlcpy(assign->nas_id, nas_id, sizeof(assign->nas_id));
1147 assign->session_id, sizeof(assign->session_id)) != 0)
1148 assign->session_id[0] = '\0';
1151 assign->tun_type = radius_tunnel_type_string(uval,
1153 if (assign->tun_type == NULL)
1154 assign->tun_type = "";
1172 &assign->tun_client, sizeof(assign->tun_client));
1174 if (assign->tun_client.sin4.sin_family == 0 &&
1178 &assign->tun_client, sizeof(assign->tun_client));
1182 strcmp(dae->nas_id, assign->nas_id) == 0)
1185 assign->dae = dae;
1187 ipcp_put_db(self, assign);
1190 if (ipcp_notice_startstop(self, assign, 1, NULL) != 0)
1194 assign->seq, assign->user->name, delay, assign->session_id,
1195 assign->tun_type, print_addr((struct sockaddr *)
1196 &assign->tun_client, buf1, sizeof(buf1)),
1197 assign->auth_method, inet_ntop(AF_INET, &addr4, buf,
1204 timespecsub(&dur, &assign->start, &dur);
1232 assign->seq, assign->user->name, dur.tv_sec,
1233 assign->session_id, assign->tun_type, print_addr(
1234 (struct sockaddr *)&assign->tun_client, buf1, sizeof(buf1)),
1235 assign->auth_method, inet_ntop(AF_INET, &addr4, buf,
1239 ipcp_del_db(self, assign);
1240 if (ipcp_notice_startstop(self, assign, 0, &stat) != 0)
1303 ipcp_ipv4_delete(struct module_ipcp *self, struct assigned_ipv4 *assign,
1311 ipcp_del_db(self, assign);
1312 ipcp_notice_startstop(self, assign, 0, &stat);
1313 ipcp_ipv4_release(self, assign);
1317 ipcp_ipv4_release(struct module_ipcp *self, struct assigned_ipv4 *assign)
1319 if (assign != NULL) {
1320 TAILQ_REMOVE(&assign->user->ipv4s, assign, next);
1321 RB_REMOVE(assigned_ipv4_tree, &self->ipv4s, assign);
1323 ipcp_dae_reset_request(assign);
1324 free(assign);
1516 struct assigned_ipv4 *assign)
1519 dump->records[idx].addr.ipv4 = assign->ipv4;
1520 dump->records[idx].rec.seq = assign->seq;
1521 strlcpy(dump->records[idx].rec.session_id, assign->session_id,
1523 strlcpy(dump->records[idx].rec.auth_method, assign->auth_method,
1525 strlcpy(dump->records[idx].rec.username, assign->user->name,
1527 dump->records[idx].rec.start = assign->start;
1528 dump->records[idx].rec.timeout = assign->timeout;
1529 dump->records[idx].rec.nas_ipv4 = assign->nas_ipv4;
1530 dump->records[idx].rec.nas_ipv6 = assign->nas_ipv6;
1531 strlcpy(dump->records[idx].rec.nas_id, assign->nas_id,
1533 if (assign->tun_type != NULL)
1534 strlcpy(dump->records[idx].rec.tun_type, assign->tun_type,
1536 memcpy(&dump->records[idx].rec.tun_client, &assign->tun_client,
1561 struct assigned_ipv4 *assign, *min_assign = NULL;
1566 RB_FOREACH(assign, assigned_ipv4_tree, &self->ipv4s) {
1567 if (assign->timeout.tv_sec == 0)
1569 if (timespeccmp(&assign->timeout, &self->uptime, <=)) {
1570 log_info("Reached session timeout seq=%u", assign->seq);
1571 ipcp_dae_send_disconnect_request(assign);
1572 memset(&assign->timeout, 0, sizeof(assign->timeout));
1573 ipcp_put_db(self, assign);
1576 timespeccmp(&min_assign->timeout, &assign->timeout, >))
1577 min_assign = assign;
1596 ipcp_dae_send_disconnect_request(struct assigned_ipv4 *assign)
1602 if (assign->dae == NULL)
1605 if (assign->dae_reqpkt == NULL) {
1613 assign->session_id);
1620 assign->user->name);
1621 if (assign->nas_id[0] != '\0')
1623 RADIUS_TYPE_NAS_IDENTIFIER, assign->nas_id);
1624 if (ntohl(assign->nas_ipv4.s_addr) != 0)
1626 RADIUS_TYPE_NAS_IP_ADDRESS, assign->nas_ipv4);
1627 if (!IN6_IS_ADDR_UNSPECIFIED(&assign->nas_ipv6))
1629 RADIUS_TYPE_NAS_IPV6_ADDRESS, &assign->nas_ipv6);
1631 assign->dae->secret);
1632 assign->dae_reqpkt = reqpkt;
1633 TAILQ_INSERT_TAIL(&assign->dae->reqs, assign, dae_next);
1636 if (assign->dae_ntry == 0) {
1637 if (assign->dae->ninflight >= RADIUSD_IPCP_DAE_MAX_INFLIGHT)
1640 assign->seq, print_addr((struct sockaddr *)
1641 &assign->dae->nas_addr, buf, sizeof(buf)));
1644 if (radius_send(assign->dae->sock, assign->dae_reqpkt, 0) < 0)
1647 tv.tv_sec = dae_request_timeouts[assign->dae_ntry];
1649 evtimer_set(&assign->dae_evtimer, ipcp_dae_request_on_timeout, assign);
1650 evtimer_add(&assign->dae_evtimer, &tv);
1651 if (assign->dae_ntry == 0)
1652 assign->dae->ninflight++;
1653 assign->dae_ntry++;
1659 struct assigned_ipv4 *assign = ctx;
1663 if (assign->dae_ntry >= (int)nitems(dae_request_timeouts)) {
1665 assign->seq, print_addr((struct sockaddr *)
1666 &assign->dae->nas_addr, buf, sizeof(buf)));
1667 TAILQ_FOREACH(client, &assign->dae_clients, entry)
1668 module_imsg_compose(assign->dae->ipcp->base, IMSG_NG,
1670 ipcp_dae_reset_request(assign);
1672 ipcp_dae_send_disconnect_request(assign);
1683 struct assigned_ipv4 *assign;
1700 TAILQ_FOREACH(assign, &dae->reqs, dae_next) {
1701 if (radius_get_id(assign->dae_reqpkt) == radius_get_id(radres))
1704 if (assign == NULL) {
1711 radius_set_request_packet(radres, assign->dae_reqpkt);
1714 "a bad authenticator", __func__, assign->seq, print_addr(
1734 assign->seq, print_addr((struct sockaddr *)
1739 assign->seq, print_addr((struct sockaddr *)
1744 __func__, code, assign->seq, print_addr((struct sockaddr *)
1749 TAILQ_FOREACH(client, &assign->dae_clients, entry) {
1761 ipcp_dae_reset_request(assign);
1768 ipcp_dae_reset_request(struct assigned_ipv4 *assign)
1773 if (assign->dae != NULL) {
1774 if (assign->dae_reqpkt != NULL)
1775 TAILQ_REMOVE(&assign->dae->reqs, assign, dae_next);
1776 if (assign->dae_ntry > 0) {
1777 assign->dae->ninflight--;
1778 if (!evtimer_pending(&assign->dae->ev_reqs, NULL))
1779 evtimer_add(&assign->dae->ev_reqs, &zero);
1782 if (assign->dae_reqpkt != NULL)
1783 radius_delete_packet(assign->dae_reqpkt);
1784 assign->dae_reqpkt = NULL;
1785 if (evtimer_pending(&assign->dae_evtimer, NULL))
1786 evtimer_del(&assign->dae_evtimer);
1787 TAILQ_FOREACH_SAFE(client, &assign->dae_clients, entry, clientt) {
1788 TAILQ_REMOVE(&assign->dae_clients, client, entry);
1791 assign->dae_ntry = 0;
1799 struct assigned_ipv4 *assign, *assignt;
1803 TAILQ_FOREACH_SAFE(assign, &dae->reqs, dae_next, assignt) {
1806 if (assign->dae_ntry == 0) /* pending */
1807 ipcp_dae_send_disconnect_request(assign);