[dhcp-agent-commits] dhcp-agent/src dhcp-client-control.c,1.6,1.7 dhcp-client-states.c,1.8,1.9 dhcp-
Status: Alpha
Brought to you by:
actmodern
From: <act...@us...> - 2002-12-16 10:14:34
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv7500 Modified Files: dhcp-client-control.c dhcp-client-states.c dhcp-client.c dhcp-client.h Log Message: fixed client_control cache hack and did some renaming Index: dhcp-client-control.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-client-control.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** dhcp-client-control.c 16 Dec 2002 07:20:41 -0000 1.6 --- dhcp-client-control.c 16 Dec 2002 10:14:31 -0000 1.7 *************** *** 105,109 **** /* dummy routine. we use this to manipulate conf/cache. */ ! dhcp_client_control_t *create_dhcp_client_control_dummy(char *interface) { dhcp_client_control_t *dc; --- 105,109 ---- /* dummy routine. we use this to manipulate conf/cache. */ ! dhcp_client_control_t *dhcp_client_control_create_dummy(char *interface) { dhcp_client_control_t *dc; *************** *** 123,127 **** /* create client control object */ ! dhcp_client_control_t *create_dhcp_client_control(char *interface, int promiscuous) { dhcp_client_control_t *dc; --- 123,127 ---- /* create client control object */ ! dhcp_client_control_t *dhcp_client_control_create(char *interface, int promiscuous) { dhcp_client_control_t *dc; *************** *** 144,148 **** if(dc->conf == NULL) { ERROR_MESSAGE("could not read client conf."); ! destroy_dhcp_client_control(dc); return NULL; } --- 144,148 ---- if(dc->conf == NULL) { ERROR_MESSAGE("could not read client conf."); ! dhcp_client_control_destroy(dc); return NULL; } *************** *** 175,179 **** promiscuous)) == NULL) { ERROR_MESSAGE("could not acquire rawnet handler."); ! destroy_dhcp_client_control(dc); return NULL; } --- 175,179 ---- promiscuous)) == NULL) { ERROR_MESSAGE("could not acquire rawnet handler."); ! dhcp_client_control_destroy(dc); return NULL; } *************** *** 214,218 **** /* use fake address in 0x:0x:0x:0x:0x we need to notify rawnet about this. * achtung: all packets _except_ dhcp packets will still use the real hardware address. */ ! void dhcp_control_use_fake_hw_addr(dhcp_client_control_t *dc, char *fake_hw_addr) { char *new_client_id = create_fake_client_id(fake_hw_addr); --- 214,218 ---- /* use fake address in 0x:0x:0x:0x:0x we need to notify rawnet about this. * achtung: all packets _except_ dhcp packets will still use the real hardware address. */ ! void dhcp_client_control_use_fake_hw_addr(dhcp_client_control_t *dc, char *fake_hw_addr) { char *new_client_id = create_fake_client_id(fake_hw_addr); *************** *** 227,231 **** /* destructor. */ ! void destroy_dhcp_client_control(dhcp_client_control_t *dc) { if(dc->rawnet) --- 227,231 ---- /* destructor. */ ! void dhcp_client_control_destroy(dhcp_client_control_t *dc) { if(dc->rawnet) *************** *** 253,265 **** } ! /* Utility routine to bring down interface. ! * we need this because we have to be explicit ! * about it. We can't do this at the time we ! * destroy the control object -- for example ! * we destroy the control object through forks ! * to clean out our environment but we don't want ! * to down the interface (necessarily) then. ! * this routine just makes it explicit so we call ! * it when we mean it. */ void dhcp_client_interface_down(dhcp_client_control_t *dc) --- 253,263 ---- } ! /* Utility routine to bring down interface. we need this because ! * we have to be explicit about bringing down the interface. We ! * can't do this at the time we destroy the control object -- for ! * example we destroy the control object through forks to clean ! * out our environment but we don't want to down the interface ! * necessarily. This routine just makes it explicit so we call it ! * when we mean it. */ void dhcp_client_interface_down(dhcp_client_control_t *dc) *************** *** 269,274 **** } ! /* set and clear server address. ! * this is useful for unicasting and for RELEASE. */ void dhcp_client_set_server_ip_address(dhcp_client_control_t *dc, ip_addr_t ip_addr) --- 267,271 ---- } ! /* set the server address. */ void dhcp_client_set_server_ip_address(dhcp_client_control_t *dc, ip_addr_t ip_addr) Index: dhcp-client-states.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-client-states.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** dhcp-client-states.c 16 Dec 2002 07:20:41 -0000 1.8 --- dhcp-client-states.c 16 Dec 2002 10:14:31 -0000 1.9 *************** *** 602,606 **** client_release(dc); delete_pid_file(dc->interface); ! destroy_dhcp_client_control(dc); } --- 602,606 ---- client_release(dc); delete_pid_file(dc->interface); ! dhcp_client_control_destroy(dc); } Index: dhcp-client.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-client.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** dhcp-client.c 16 Dec 2002 07:20:42 -0000 1.9 --- dhcp-client.c 16 Dec 2002 10:14:31 -0000 1.10 *************** *** 306,310 **** { pid_t pid; - dhcp_client_control_t *dc; client_cache_t *cc; --- 306,309 ---- *************** *** 315,327 **** } ! /* As long as no client is running we can go ahead and delete ! * the cache. We need a client cache structure though, pass ! * it a dummy structure with the interface. That's all it ! * needs. (this a hack). ! */ ! ! /* begin hack. */ ! dc = create_dhcp_client_control_dummy(interface); ! cc = client_cache_create(dc->interface); /* now delete. */ --- 314,318 ---- } ! cc = client_cache_create(interface); /* now delete. */ *************** *** 329,337 **** client_cache_delete_tmp_cache(cc); - /* all done. */ - destroy_dhcp_client_control(dc); - client_cache_destroy(cc); - - /* end hack: XXX -- FIXME: get rid of this hack. */ return; } --- 320,323 ---- *************** *** 400,404 **** setup_interrupt_handlers(); /* setup signal handling */ ! if((dc = create_dhcp_client_control(interface, promiscuous)) == NULL) { ERROR_MESSAGE("encountered a fatal error. I'm exiting."); client_states[STATE_DO_SHUTDOWN] (dc); --- 386,390 ---- setup_interrupt_handlers(); /* setup signal handling */ ! if((dc = dhcp_client_control_create(interface, promiscuous)) == NULL) { ERROR_MESSAGE("encountered a fatal error. I'm exiting."); client_states[STATE_DO_SHUTDOWN] (dc); *************** *** 406,410 **** if(fake_hw_addr) /* Marla, you liar, you big tourist, I need this. Now get out! */ ! dhcp_control_use_fake_hw_addr(dc, fake_hw_addr); /* We're good to go. Look up state. */ --- 392,396 ---- if(fake_hw_addr) /* Marla, you liar, you big tourist, I need this. Now get out! */ ! dhcp_client_control_use_fake_hw_addr(dc, fake_hw_addr); /* We're good to go. Look up state. */ *************** *** 423,427 **** * ... otherwise ... */ ! destroy_dhcp_client_control(dc); interactive = 0; --- 409,413 ---- * ... otherwise ... */ ! dhcp_client_control_destroy(dc); interactive = 0; *************** *** 430,434 **** * we lose them after we fork in go_background. */ ! if((dc = create_dhcp_client_control(interface, promiscuous)) == NULL) { ERROR_MESSAGE("encountered a fatal error. I'm exiting.", interface); client_states[STATE_DO_SHUTDOWN] (NULL); --- 416,420 ---- * we lose them after we fork in go_background. */ ! if((dc = dhcp_client_control_create(interface, promiscuous)) == NULL) { ERROR_MESSAGE("encountered a fatal error. I'm exiting.", interface); client_states[STATE_DO_SHUTDOWN] (NULL); *************** *** 441,445 **** if(fake_hw_addr) /* Marla, you liar, you big tourist, I need this. Now get out! */ ! dhcp_control_use_fake_hw_addr(dc, fake_hw_addr); } --- 427,431 ---- if(fake_hw_addr) /* Marla, you liar, you big tourist, I need this. Now get out! */ ! dhcp_client_control_use_fake_hw_addr(dc, fake_hw_addr); } Index: dhcp-client.h =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-client.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** dhcp-client.h 24 Nov 2002 01:10:00 -0000 1.6 --- dhcp-client.h 16 Dec 2002 10:14:31 -0000 1.7 *************** *** 93,105 **** /* client control. */ extern void dhcp_client_update_secs(dhcp_client_control_t *dc); extern void dhcp_client_reset_secs(dhcp_client_control_t *dc); extern void dhcp_client_reset_discover_offer_retries(dhcp_client_control_t *dc); ! extern int dhcp_client_discover_offer_can_retry(dhcp_client_control_t *dc); ! extern dhcp_client_control_t *create_dhcp_client_control_dummy(char *interface); extern void dhcp_client_update_xid(dhcp_client_control_t *dc); ! extern dhcp_client_control_t *create_dhcp_client_control(char *interface, int promiscuous); ! extern void dhcp_control_use_fake_hw_addr(dhcp_client_control_t *dc, char *fake_hw_addr); ! extern void destroy_dhcp_client_control(dhcp_client_control_t *dc); extern void dhcp_client_interface_down(dhcp_client_control_t *dc); extern void dhcp_client_set_server_ip_address(dhcp_client_control_t *dc, ip_addr_t ip_addr); --- 93,107 ---- /* client control. */ + extern dhcp_client_control_t *dhcp_client_control_create(char *interface, int promiscuous); + extern dhcp_client_control_t *dhcp_client_control_create_dummy(char *interface); + extern void dhcp_client_control_destroy(dhcp_client_control_t *dc); + extern void dhcp_client_update_secs(dhcp_client_control_t *dc); extern void dhcp_client_reset_secs(dhcp_client_control_t *dc); extern void dhcp_client_reset_discover_offer_retries(dhcp_client_control_t *dc); ! extern int dhcp_client_discover_offer_can_retry(dhcp_client_control_t *dc); extern void dhcp_client_update_xid(dhcp_client_control_t *dc); ! extern void dhcp_client_control_use_fake_hw_addr(dhcp_client_control_t *dc, char *fake_hw_addr); ! extern void dhcp_client_interface_down(dhcp_client_control_t *dc); extern void dhcp_client_set_server_ip_address(dhcp_client_control_t *dc, ip_addr_t ip_addr); |