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