Thread: [dhcp-agent-commits] dhcp-agent/src dhcp-lease.c,1.8,1.9 dhcp-lease.h,1.7,1.8
Status: Alpha
Brought to you by:
actmodern
From: <act...@us...> - 2003-08-17 00:57:39
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv26666/src Modified Files: dhcp-lease.c dhcp-lease.h Log Message: added lease datum copying code Index: dhcp-lease.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-lease.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** dhcp-lease.c 5 Aug 2003 04:59:12 -0000 1.8 --- dhcp-lease.c 17 Aug 2003 00:57:33 -0000 1.9 *************** *** 84,87 **** --- 84,119 ---- } + lease_constraint_t *lease_constraint_copy(lease_constraint_t *lease_constraint) + { + lease_constraint_t *new_lease_constraint; + eth_addr_t eth_addr; + char *hostname = NULL; /* ugh. need to xstrdup because of const. */ + void *data; + + switch(lease_constraint->constraint_type) { + + case LEASE_CONSTRAINT_HOSTNAME: + hostname = xstrdup(lease_constraint_get_hostname(lease_constraint)); + data = hostname; + break; + + case LEASE_CONSTRAINT_HARDWARE_ADDRESS: + eth_addr = lease_constraint_get_hw_address(lease_constraint); + data = ð_addr; + break; + + default: + data = NULL; + + } + + new_lease_constraint = lease_constraint_create(lease_constraint->constraint_type, data); + + if(hostname) + xfree(hostname); + + return new_lease_constraint; + } + lease_definition_t *lease_definition_create(lease_constraint_t *constraint, ip_addr_t subnet_address, *************** *** 138,141 **** --- 170,191 ---- } + lease_definition_t *lease_definition_copy(lease_definition_t *lease_def) + { + list_t *options; + lease_constraint_t *lease_constraint; + lease_definition_t *new_lease_def; + + lease_constraint = lease_constraint_copy(lease_definition_get_constraint(lease_def)); + options = dhcp_option_copy_list(lease_definition_get_options(lease_def)); + + /* from here on in we can just copy out and reassign the pointers. */ + new_lease_def = xcalloc(sizeof(lease_definition_t)); + *new_lease_def = *lease_def; + new_lease_def-> options = options; + new_lease_def->constraint = lease_constraint; + + return new_lease_def; + } + void lease_definition_destroy(lease_definition_t *lease_def) { *************** *** 224,228 **** /* lease definition. */ ! const char *lease_type_to_string(lease_definition_t *lease) { int lease_type = lease->lease_type; --- 274,278 ---- /* lease definition. */ ! const char *lease_definition_type_to_string(lease_definition_t *lease) { int lease_type = lease->lease_type; *************** *** 377,381 **** char *subnet_addr, *subnet_mask; ! INFO_MESSAGE("Lease type: %s", lease_type_to_string(lease_def)); switch(lease_definition_get_type(lease_def)) { --- 427,431 ---- char *subnet_addr, *subnet_mask; ! INFO_MESSAGE("Lease type: %s", lease_definition_type_to_string(lease_def)); switch(lease_definition_get_type(lease_def)) { Index: dhcp-lease.h =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-lease.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** dhcp-lease.h 5 Aug 2003 04:59:12 -0000 1.7 --- dhcp-lease.h 17 Aug 2003 00:57:33 -0000 1.8 *************** *** 92,95 **** --- 92,97 ---- extern lease_constraint_t *lease_constraint_create(int constraint_type, void *data); extern void lease_constraint_destroy(lease_constraint_t *lease_constraint); + extern lease_constraint_t *lease_constraint_copy(lease_constraint_t *lease_constraint); + extern lease_definition_t *lease_definition_create(lease_constraint_t *constraint, ip_addr_t subnet, *************** *** 108,118 **** extern const char *lease_constraint_get_hostname(lease_constraint_t *constraint); extern eth_addr_t lease_constraint_get_hw_address(lease_constraint_t *constraint); ! extern const char *lease_constraint_get_hostname(lease_constraint_t *constraint); ! extern eth_addr_t lease_constraint_get_hw_address(lease_constraint_t *constraint); ! extern const char *lease_type_to_string(lease_definition_t *lease); extern int lease_definition_get_type(lease_definition_t *lease); extern lease_constraint_t *lease_definition_get_constraint(lease_definition_t *lease); - extern const char *lease_constraint_get_hostname(lease_constraint_t *constraint); extern ip_addr_t lease_definition_get_bottom_addr(lease_definition_t *lease); extern ip_addr_t lease_definition_get_top_addr(lease_definition_t *lease); --- 110,118 ---- extern const char *lease_constraint_get_hostname(lease_constraint_t *constraint); extern eth_addr_t lease_constraint_get_hw_address(lease_constraint_t *constraint); ! extern lease_constraint_t *lease_constraint_copy(lease_constraint_t *lease_constraint); ! extern const char *lease_definition_type_to_string(lease_definition_t *lease); extern int lease_definition_get_type(lease_definition_t *lease); extern lease_constraint_t *lease_definition_get_constraint(lease_definition_t *lease); extern ip_addr_t lease_definition_get_bottom_addr(lease_definition_t *lease); extern ip_addr_t lease_definition_get_top_addr(lease_definition_t *lease); *************** *** 124,127 **** --- 124,128 ---- extern uint32_t lease_definition_get_rebind(lease_definition_t *lease); extern uint32_t lease_definition_get_expiry(lease_definition_t *lease); + extern lease_definition_t *lease_definition_copy(lease_definition_t *lease_def); extern list_t *lease_get_options(lease_t *lease_data); |