Lines Matching defs:dsmp

72 bound_event_cb(dhcp_smach_t *dsmp, void *arg)
74 if (dsmp->dsm_ia.ia_fd != -1)
75 ipc_action_finish(dsmp, DHCP_IPC_SUCCESS);
77 async_finish(dsmp);
88 * PKT_LIST *: the ACK/Reply packet, or NULL to use dsmp->dsm_ack
93 dhcp_bound(dhcp_smach_t *dsmp, PKT_LIST *ack)
103 if (dsmp->dsm_ack != dsmp->dsm_orig_ack)
104 free_pkt_entry(dsmp->dsm_ack);
105 dsmp->dsm_ack = ack;
107 if (dsmp->dsm_orig_ack == NULL)
108 dsmp->dsm_orig_ack = ack;
111 oldstate = dsmp->dsm_state;
140 dsmp->dsm_newstart_monosec = monosec();
142 if (dsmp->dsm_isv6) {
143 if ((v6b = configure_v6_leases(dsmp)) != v6Done)
146 if (!configure_v4_lease(dsmp))
149 if (!configure_v4_timers(dsmp))
153 dsmp->dsm_curstart_monosec = dsmp->dsm_newstart_monosec;
154 write_lease_to_hostconf(dsmp);
161 if (dsmp->dsm_isv6) {
162 if ((v6b = configure_v6_leases(dsmp)) != v6Done)
165 if (!configure_v4_lease(dsmp))
168 if (!configure_v4_timers(dsmp))
171 if (!clear_lif_deprecated(dsmp->dsm_lif))
176 stop_pkt_retransmission(dsmp);
182 if (dsmp->dsm_leases == NULL) {
195 dsmp->dsm_isv6 && !save_server_id(dsmp, ack)) {
198 dsmp->dsm_name);
208 if (!set_smach_state(dsmp, PRE_BOUND))
210 if (dsmp->dsm_lif_wait == 0)
211 dhcp_bound_complete(dsmp);
223 if (dsmp->dsm_isv6) {
224 if ((v6b = configure_v6_leases(dsmp)) != v6Done)
227 if (!configure_v4_timers(dsmp))
229 if (!clear_lif_deprecated(dsmp->dsm_lif))
238 if ((lif = find_expired_lif(dsmp)) != NULL) {
241 while ((lif = find_expired_lif(dsmp)) != NULL) {
247 if (dsmp->dsm_leases == NULL)
251 if (oldstate == REBINDING && dsmp->dsm_isv6 &&
252 !save_server_id(dsmp, ack)) {
261 for (dlp = dsmp->dsm_leases; dlp != NULL; dlp = dlp->dl_next) {
271 if (!set_smach_state(dsmp, BOUND))
274 (void) script_start(dsmp, dsmp->dsm_isv6 ? EVENT_EXTEND6 :
277 dsmp->dsm_curstart_monosec = dsmp->dsm_newstart_monosec;
278 write_lease_to_hostconf(dsmp);
281 stop_pkt_retransmission(dsmp);
286 if (dsmp->dsm_isv6 && !save_server_id(dsmp, ack)) {
290 (void) bound_event_cb(dsmp, NULL);
291 if (!set_smach_state(dsmp, INFORMATION))
295 stop_pkt_retransmission(dsmp);
302 dhcp_state_to_string(dsmp->dsm_state));
317 dhcp_bound_complete(dhcp_smach_t *dsmp)
330 if (dsmp->dsm_isv6) {
331 (void) set_smach_state(dsmp, BOUND);
333 dsmp->dsm_name);
334 (void) script_start(dsmp, EVENT_BOUND6, bound_event_cb, NULL,
336 dsmp->dsm_curstart_monosec = dsmp->dsm_newstart_monosec;
337 write_lease_to_hostconf(dsmp);
349 ack = dsmp->dsm_ack;
351 for (i = 0; i < dsmp->dsm_pillen; i++) {
352 if (dsmp->dsm_pil[i] == CD_ROUTER)
355 lif = dsmp->dsm_lif;
361 dsmp->dsm_nrouters = router_list->len / sizeof (ipaddr_t);
362 dsmp->dsm_routers = malloc(router_list->len);
363 if (dsmp->dsm_routers == NULL) {
366 dsmp->dsm_nrouters = 0;
369 for (i = 0; i < dsmp->dsm_nrouters; i++) {
371 (void) memcpy(&dsmp->dsm_routers[i].s_addr,
376 &dsmp->dsm_routers[i])) {
379 dsmp->dsm_routers[i]), dsmp->dsm_name);
380 dsmp->dsm_routers[i].s_addr = htonl(INADDR_ANY);
385 inet_ntoa(dsmp->dsm_routers[i]), dsmp->dsm_name);
389 oldstate = dsmp->dsm_state;
390 if (!set_smach_state(dsmp, BOUND)) {
393 dsmp->dsm_name);
397 dhcpmsg(MSG_DEBUG, "dhcp_bound_complete: bound %s", dsmp->dsm_name);
405 dsmp->dsm_dflags |= DHCP_IF_BOOTP;
412 (void) script_start(dsmp, EVENT_BOUND, bound_event_cb, NULL,
416 dsmp->dsm_curstart_monosec = dsmp->dsm_newstart_monosec;
417 write_lease_to_hostconf(dsmp);
510 configure_v4_timers(dhcp_smach_t *dsmp)
512 PKT_LIST *ack = dsmp->dsm_ack;
518 dlp = dsmp->dsm_leases;
529 send_declines(dsmp);
532 "corrupt", dsmp->dsm_name);
558 abs((dsmp->dsm_newstart_monosec + lease) -
559 (dsmp->dsm_curstart_monosec + lif->lif_expire.dt_start)) <
594 dsmp->dsm_name);
599 dsmp->dsm_name,
600 monosec_to_string(dsmp->dsm_newstart_monosec + lease));
603 dsmp->dsm_name, monosec_to_string(dsmp->dsm_newstart_monosec +
607 dsmp->dsm_name, monosec_to_string(dsmp->dsm_newstart_monosec +
620 "less than %d seconds!", dsmp->dsm_name, DHCP_REBIND_MIN);
651 configure_v6_leases(dhcp_smach_t *dsmp)
665 for (dlp = dsmp->dsm_leases; dlp != NULL; dlp = dlp->dl_next)
669 while ((d6o = dhcpv6_pkt_option(dsmp->dsm_ack, d6o, DHCPV6_OPT_IA_NA,
684 if (d6in.d6in_iaid != dsmp->dsm_lif->lif_iaid) {
687 dsmp->dsm_lif->lif_iaid);
695 if ((dlp = dsmp->dsm_leases) != NULL)
733 print_server_msg(dsmp, msg, msglen);
753 send_v6_request(dsmp);
764 if ((dlp = dsmp->dsm_leases) == NULL &&
765 (dlp = insert_lease(dsmp)) == NULL) {
809 print_server_msg(dsmp, msg, msglen);
816 send_v6_request(dsmp);
854 lif = plumb_lif(dsmp->dsm_lif->lif_pif,
866 dsmp->dsm_lif_wait++;
954 configure_v4_lease(dhcp_smach_t *dsmp)
958 PKT_LIST *ack = dsmp->dsm_ack;
967 * dsmp->dsm_server is valid in case we need to send_decline().
976 IN6_INADDR_TO_V4MAPPED(&inaddr, &dsmp->dsm_server);
984 if ((dlp = dsmp->dsm_leases) == NULL &&
985 (dlp = insert_lease(dsmp)) == NULL) {
991 dlp->dl_lifs = dsmp->dsm_lif;
1097 dsmp->dsm_lif_wait++;
1167 save_server_id(dhcp_smach_t *dsmp, PKT_LIST *msg)
1176 free(dsmp->dsm_serverid);
1177 if ((dsmp->dsm_serverid = malloc(olen)) == NULL) {
1180 dsmp->dsm_serveridlen = olen;
1181 (void) memcpy(dsmp->dsm_serverid, d6o + 1, olen);