[Dhcp-agent-commits] CVS: dhcp-agent Makefile.am,1.16,1.17 Makefile.in,1.16,1.17 TODO,1.15,1.16 dhcp
Status: Alpha
Brought to you by:
actmodern
Update of /cvsroot/dhcp-agent/dhcp-agent In directory usw-pr-cvs1:/tmp/cvs-serv2292 Modified Files: Makefile.am Makefile.in TODO dhcp-agent.h dhcp-client.c dhcp-convert.c dhcp-files.c dhcp-net.c dhcp-util.c Log Message: added global config options; fixed up to const pointers in some places Index: Makefile.am =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/Makefile.am,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** Makefile.am 19 May 2002 17:53:28 -0000 1.16 --- Makefile.am 25 May 2002 14:02:29 -0000 1.17 *************** *** 21,25 **** dhcp-client-states.c dhcp-options-strings.c dhcp-convert.c \ dhcp-sysconf.c dhcp-rtt.c dhcp-packet-build.c dhcp-icmp-discovery.c \ ! dhcp-arp-discovery.c dhcp-route.c dhcpclient_LDADD = @PCAP_LIB@ @DNET_LIB@ --- 21,25 ---- dhcp-client-states.c dhcp-options-strings.c dhcp-convert.c \ dhcp-sysconf.c dhcp-rtt.c dhcp-packet-build.c dhcp-icmp-discovery.c \ ! dhcp-arp-discovery.c dhcp-route.c dhcp-globconf.c dhcpclient_LDADD = @PCAP_LIB@ @DNET_LIB@ Index: Makefile.in =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/Makefile.in,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** Makefile.in 19 May 2002 17:53:28 -0000 1.16 --- Makefile.in 25 May 2002 14:02:29 -0000 1.17 *************** *** 83,87 **** dhcpsniff_LDADD = @PCAP_LIB@ @DNET_LIB@ ! dhcpclient_SOURCES = dhcp-client.c dhcp-util.c dhcp-align.c dhcp-net.c dhcp-list.c dhcp-com.c dhcp-eth.c dhcp-ip.c dhcp-udp.c dhcp-arp.c dhcp-icmp.c dhcp-log.c dhcp-daemon.c dhcp-client-cache.c dhcp-cache-entry.c dhcp-client-control.c dhcp-interface.c dhcp-client-conf.c @DHCP_SNPRINTF@ dhcp-files.c dhcp-client-states.c dhcp-options-strings.c dhcp-convert.c dhcp-sysconf.c dhcp-rtt.c dhcp-packet-build.c dhcp-icmp-discovery.c dhcp-arp-discovery.c dhcp-route.c --- 83,87 ---- dhcpsniff_LDADD = @PCAP_LIB@ @DNET_LIB@ ! dhcpclient_SOURCES = dhcp-client.c dhcp-util.c dhcp-align.c dhcp-net.c dhcp-list.c dhcp-com.c dhcp-eth.c dhcp-ip.c dhcp-udp.c dhcp-arp.c dhcp-icmp.c dhcp-log.c dhcp-daemon.c dhcp-client-cache.c dhcp-cache-entry.c dhcp-client-control.c dhcp-interface.c dhcp-client-conf.c @DHCP_SNPRINTF@ dhcp-files.c dhcp-client-states.c dhcp-options-strings.c dhcp-convert.c dhcp-sysconf.c dhcp-rtt.c dhcp-packet-build.c dhcp-icmp-discovery.c dhcp-arp-discovery.c dhcp-route.c dhcp-globconf.c *************** *** 117,121 **** dhcp-options-strings.o dhcp-convert.o dhcp-sysconf.o dhcp-rtt.o \ dhcp-packet-build.o dhcp-icmp-discovery.o dhcp-arp-discovery.o \ ! dhcp-route.o dhcpclient_DEPENDENCIES = dhcpclient_LDFLAGS = --- 117,121 ---- dhcp-options-strings.o dhcp-convert.o dhcp-sysconf.o dhcp-rtt.o \ dhcp-packet-build.o dhcp-icmp-discovery.o dhcp-arp-discovery.o \ ! dhcp-route.o dhcp-globconf.o dhcpclient_DEPENDENCIES = dhcpclient_LDFLAGS = *************** *** 143,152 **** .deps/dhcp-client-states.P .deps/dhcp-client.P .deps/dhcp-com.P \ .deps/dhcp-convert.P .deps/dhcp-daemon.P .deps/dhcp-eth.P \ ! .deps/dhcp-files.P .deps/dhcp-icmp-discovery.P .deps/dhcp-icmp.P \ ! .deps/dhcp-interface.P .deps/dhcp-ip.P .deps/dhcp-list.P \ ! .deps/dhcp-log.P .deps/dhcp-net.P .deps/dhcp-options-strings.P \ ! .deps/dhcp-packet-build.P .deps/dhcp-print.P .deps/dhcp-route.P \ ! .deps/dhcp-rtt.P .deps/dhcp-sniff.P .deps/dhcp-sniffer-ohandlers.P \ ! .deps/dhcp-sysconf.P .deps/dhcp-udp.P .deps/dhcp-util.P SOURCES = $(dhcpsniff_SOURCES) $(dhcpclient_SOURCES) OBJECTS = $(dhcpsniff_OBJECTS) $(dhcpclient_OBJECTS) --- 143,153 ---- .deps/dhcp-client-states.P .deps/dhcp-client.P .deps/dhcp-com.P \ .deps/dhcp-convert.P .deps/dhcp-daemon.P .deps/dhcp-eth.P \ ! .deps/dhcp-files.P .deps/dhcp-globconf.P .deps/dhcp-icmp-discovery.P \ ! .deps/dhcp-icmp.P .deps/dhcp-interface.P .deps/dhcp-ip.P \ ! .deps/dhcp-list.P .deps/dhcp-log.P .deps/dhcp-net.P \ ! .deps/dhcp-options-strings.P .deps/dhcp-packet-build.P \ ! .deps/dhcp-print.P .deps/dhcp-route.P .deps/dhcp-rtt.P \ ! .deps/dhcp-sniff.P .deps/dhcp-sniffer-ohandlers.P .deps/dhcp-sysconf.P \ ! .deps/dhcp-udp.P .deps/dhcp-util.P SOURCES = $(dhcpsniff_SOURCES) $(dhcpclient_SOURCES) OBJECTS = $(dhcpsniff_OBJECTS) $(dhcpclient_OBJECTS) Index: TODO =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/TODO,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** TODO 19 May 2002 23:03:15 -0000 1.15 --- TODO 25 May 2002 14:02:29 -0000 1.16 *************** *** 15,19 **** --- 15,22 ---- other todo: + -- add parse errors with line numbers (dhcp-client-conf.c dhcp-globconf.c at least) -- make dhcp-agent use more goodies from libdnet + (1) use blob routines to convert data to different formats. + we ought to keep network data in a blob. -- add test for kill(0, pid) to see if it correctly identifies the running process. Index: dhcp-agent.h =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/dhcp-agent.h,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** dhcp-agent.h 19 May 2002 23:03:16 -0000 1.37 --- dhcp-agent.h 25 May 2002 14:02:30 -0000 1.38 *************** *** 165,168 **** --- 165,169 ---- #define DISCOVER_OFFER_RETRIES 3 + #define DHCP_CLIENT_RETRIES_S "3" /* * * * * * * * * * * *************** *** 386,391 **** typedef struct option_convert_handler { char* (*serialize)(const unsigned char *data, int len); ! void* (*serialize_to_internal)(char *string); ! void* (*serialize_to_network)(char *string, unsigned char *retlen); void (*free_internal)(void *ptr); } option_convert_handler; --- 387,392 ---- typedef struct option_convert_handler { char* (*serialize)(const unsigned char *data, int len); ! void* (*serialize_to_internal)(const char *string); ! void* (*serialize_to_network)(const char *string, unsigned char *retlen); void (*free_internal)(void *ptr); } option_convert_handler; *************** *** 586,593 **** extern void add_interrupt_handler(int sigtype, void (*sighandler)(int)); extern void info_message(char *fmt, ...); ! extern char *splice_string(char *s1, char *s2); extern char *splice_many_strings(int num, char *s, ...); extern void trim_string(char *s); ! extern int string_matches(char *s1, char *s2); extern int hex_string_to_value(char *string, unsigned char *dst); extern int is_string(const char *string, int len); --- 587,594 ---- extern void add_interrupt_handler(int sigtype, void (*sighandler)(int)); extern void info_message(char *fmt, ...); ! extern char *splice_string(const char *s1, const char *s2); extern char *splice_many_strings(int num, char *s, ...); extern void trim_string(char *s); ! extern int string_matches(const char *s1, const char *s2); extern int hex_string_to_value(char *string, unsigned char *dst); extern int is_string(const char *string, int len); *************** *** 889,894 **** extern int file_parse_string(int type); extern int file_get_var_string(FILE *fp); ! extern FILE *file_open_or_create_safe(char *filename, char *mode); ! extern FILE *file_create_and_truncate_safe(char *filename, char *mode); extern char *file_get_var_name(void); extern char *file_get_var_val(void); --- 890,895 ---- extern int file_parse_string(int type); extern int file_get_var_string(FILE *fp); ! extern FILE *file_open_or_create_safe(const char *filename, char *mode); ! extern FILE *file_create_and_truncate_safe(const char *filename, char *mode); extern char *file_get_var_name(void); extern char *file_get_var_val(void); *************** *** 916,922 **** extern void rtt_destroy(rtt_t *rtt); - /* global conversion routines. */ - extern char *network_address_to_string_static(uint32_t addr); - /* Global vars. */ --- 917,920 ---- *************** *** 930,932 **** extern char *dhcp_options_strings[]; ! #endif /* DHCP_TOOL_H */ --- 928,989 ---- extern char *dhcp_options_strings[]; ! /* conversion routines. */ ! ! /* serialization functions. */ ! ! /* byte routines. */ ! ! extern char *network_byte_to_string_byte(const unsigned char *data, int len); ! extern void *string_byte_to_byte(const char *s); ! extern void *string_byte_to_network(const char *s, unsigned char *ret_len); ! ! /* address routines. */ ! ! extern char *network_addr_to_string(const unsigned char *data, int len); ! extern char *network_addr_list_to_string(const unsigned char *data, int len); ! extern char *addr_list_to_string(const unsigned char *data, int len); ! extern void *string_to_addr_list(const char *string); ! extern void *string_to_addr(const char *string); ! extern void *string_addr_list_to_network(const char *string, unsigned char *len_ret); ! extern void *string_addr_to_network(const char *string, unsigned char *len_ret); ! extern char *network_addr_pair_list_to_string(const unsigned char *data, int len); ! extern void *string_to_addr_pair_list(const char *s); ! extern void *string_addr_pair_list_to_network(const char *s, unsigned char *retlen); ! ! /* integer routines. */ ! ! extern char *network_uint32_to_string(const unsigned char *data, int len); ! extern char *network_int32_to_string(const unsigned char *data, int len); ! extern char *network_uint16_to_string(const unsigned char *data, int len); ! extern char *network_int16_to_string(const unsigned char *data, int len); ! ! extern char *uint32_to_string(const unsigned char *data, int len); ! extern char *int32_to_string(const unsigned char *data, int len); ! extern char *uint16_to_string(const unsigned char *data, int len); ! extern char *int16_to_string(const unsigned char *data, int len); ! ! extern void *string_to_uint32(const char *s); ! extern void *string_to_int32(const char *s); ! extern void *string_to_uint16(const char *s); ! extern void *string_to_int16(const char *s); ! ! extern void *string_int32_to_network(const char *s, unsigned char *ret_len); ! extern void *string_uint32_to_network(const char *s, unsigned char *ret_len); ! extern void *string_int16_to_network(const char *s, unsigned char *ret_len); ! extern void *string_uint16_to_network(const char *s, unsigned char *ret_len); ! ! extern char *network_uint16_list_to_string(const unsigned char *data, int len); ! extern void *string_to_uint16_list(const char *s); ! extern void *string_uint16_list_to_network(const char *s, unsigned char *retlen); ! ! /* network to string */ ! ! extern char *validate_network_string_to_string(const unsigned char *data, int len); ! extern void *strdup_wrap(const char *s); ! extern void *strdup_wrap_net(const char *s, unsigned char *ret_len); ! ! /* static network address conversion routine */ ! ! extern char *network_address_to_string_static(uint32_t addr); ! ! #endif /* DHCP_AGENT_H */ Index: dhcp-client.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/dhcp-client.c,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** dhcp-client.c 19 May 2002 00:35:39 -0000 1.18 --- dhcp-client.c 25 May 2002 14:02:30 -0000 1.19 *************** *** 24,27 **** --- 24,28 ---- #include <dhcp-agent.h> + #include <dhcp-globconf.h> int interactive = 1; /* by default we begin interactive (messages on stdout/stderr). */ *************** *** 29,32 **** --- 30,45 ---- char *work_dir = CLIENT_WORK_DIR; /* our default working directory */ + /* read up on our global conf. */ + static void read_global_conf(const char *interface) + { + char *filename; + + filename = splice_string(interface, ".conf"); + if(init_glob_conf(filename)) + fatal_error("could not read nor create global configuration file: %s", filename); + + return; + } + /* do a graceful shutdown. */ static void do_shutdown(dhcp_client_control_t *dc) *************** *** 317,320 **** --- 330,336 ---- fatal_error("cannot enter work directory", work_dir); } + + /* We need to read our global configuration right after we change to work directory. */ + read_global_conf(interface); /* Now see if another client is running on the same interface. */ Index: dhcp-convert.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/dhcp-convert.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** dhcp-convert.c 18 May 2002 18:10:09 -0000 1.8 --- dhcp-convert.c 25 May 2002 14:02:30 -0000 1.9 *************** *** 54,105 **** */ - /* serialization functions. */ - - /* byte routines. */ - - char *network_byte_to_string_byte(const unsigned char *data, int len); - void *string_byte_to_byte(char *s); - void *string_byte_to_network(char *s, unsigned char *ret_len); - - /* address routines. */ - - char *network_addr_to_string(const unsigned char *data, int len); - char *network_addr_list_to_string(const unsigned char *data, int len); - char *addr_list_to_string(const unsigned char *data, int len); - void *string_to_addr_list(char *string); - void *string_to_addr(char *string); - void *string_addr_list_to_network(char *string, unsigned char *len_ret); - void *string_addr_to_network(char *string, unsigned char *len_ret); - char *network_addr_pair_list_to_string(const unsigned char *data, int len); - void *string_to_addr_pair_list(char *s); - void *string_addr_pair_list_to_network(char *s, unsigned char *retlen); - - /* integer routines. */ - - char *network_uint32_to_string(const unsigned char *data, int len); - char *network_int32_to_string(const unsigned char *data, int len); - char *network_uint16_to_string(const unsigned char *data, int len); - char *network_int16_to_string(const unsigned char *data, int len); - - void *string_to_uint32(char *s); - void *string_to_int32(char *s); - void *string_to_uint16(char *s); - void *string_to_int16(char *s); - - void *string_int32_to_network(char *s, unsigned char *ret_len); - void *string_uint32_to_network(char *s, unsigned char *ret_len); - void *string_int16_to_network(char *s, unsigned char *ret_len); - void *string_uint16_to_network(char *s, unsigned char *ret_len); - - char *network_uint16_list_to_string(const unsigned char *data, int len); - void *string_to_uint16_list(char *s); - void *string_uint16_list_to_network(char *s, unsigned char *retlen); - - /* network to string */ - - char *validate_network_string_to_string(const unsigned char *data, int len); - void *strdup_wrap(char *s); - void *strdup_wrap_net(char *s, unsigned char *ret_len); - option_convert_handler option_convert_handlers[] = { { NULL, NULL, NULL, NULL }, /* 0 */ /* pad */ --- 54,57 ---- *************** *** 239,243 **** /* string to internal byte value. */ ! void *string_byte_to_byte(char *s) { unsigned char *b; --- 191,195 ---- /* string to internal byte value. */ ! void *string_byte_to_byte(const char *s) { unsigned char *b; *************** *** 251,255 **** /* string to network byte value. */ ! void *string_byte_to_network(char *s, unsigned char *ret_len) { *ret_len = 1; --- 203,207 ---- /* string to network byte value. */ ! void *string_byte_to_network(const char *s, unsigned char *ret_len) { *ret_len = 1; *************** *** 323,327 **** /* convert string address to internal address datum. */ ! void *string_to_addr(char *string) { uint32_t addr, *new_addr; --- 275,279 ---- /* convert string address to internal address datum. */ ! void *string_to_addr(const char *string) { uint32_t addr, *new_addr; *************** *** 336,340 **** /* convert list of string addresses to internal address datum. */ ! void *string_to_addr_list(char *string) { uint32_t *addr; --- 288,292 ---- /* convert list of string addresses to internal address datum. */ ! void *string_to_addr_list(const char *string) { uint32_t *addr; *************** *** 364,368 **** /* convert serialized address to network datum. */ ! void *string_addr_to_network(char *string, unsigned char *len_ret) { uint32_t *addr = string_to_addr(string); --- 316,320 ---- /* convert serialized address to network datum. */ ! void *string_addr_to_network(const char *string, unsigned char *len_ret) { uint32_t *addr = string_to_addr(string); *************** *** 373,377 **** /* convert serialized address list to network datum. */ ! void *string_addr_list_to_network(char *string, unsigned char *len_ret) { list_t *ptr; --- 325,329 ---- /* convert serialized address list to network datum. */ ! void *string_addr_list_to_network(const char *string, unsigned char *len_ret) { list_t *ptr; *************** *** 409,413 **** /* string to internal address pair list (wrapper). */ ! void *string_to_addr_pair_list(char *s) { return(string_to_addr_list(s)); --- 361,365 ---- /* string to internal address pair list (wrapper). */ ! void *string_to_addr_pair_list(const char *s) { return(string_to_addr_list(s)); *************** *** 415,419 **** /* string to network address pair list (wrapper). */ ! void *string_addr_pair_list_to_network(char *s, unsigned char *retlen) { return(string_addr_list_to_network(s, retlen)); --- 367,371 ---- /* string to network address pair list (wrapper). */ ! void *string_addr_pair_list_to_network(const char *s, unsigned char *retlen) { return(string_addr_list_to_network(s, retlen)); *************** *** 443,447 **** /* just copy. wrapper needed to be nice to the compiler. */ ! void *strdup_wrap(char *s) { return(strdup(s)); --- 395,399 ---- /* just copy. wrapper needed to be nice to the compiler. */ ! void *strdup_wrap(const char *s) { return(strdup(s)); *************** *** 449,453 **** /* call strdup_wrap but set the ret_len appropriately. */ ! void *strdup_wrap_net(char *s, unsigned char *ret_len) { unsigned char *val; --- 401,405 ---- /* call strdup_wrap but set the ret_len appropriately. */ ! void *strdup_wrap_net(const char *s, unsigned char *ret_len) { unsigned char *val; *************** *** 462,468 **** * More work is done here to convert to network or internal format. */ ! /* workhorse network int to string routine. */ ! char *network_int_to_string(const unsigned char *data, int data_len, ! size_t size, int si) { char *string; --- 414,419 ---- * More work is done here to convert to network or internal format. */ ! char *int_to_string(const unsigned char *data, int data_len, ! size_t size, int si) { char *string; *************** *** 477,486 **** case sizeof(int32_t): string = xmalloc(INT32_T_STRING_SIZE); ! snprintf(string, INT32_T_STRING_SIZE, "%ld", ntohl(*(int32_t *)data)); break; case sizeof(int16_t): string = xmalloc(INT16_T_STRING_SIZE); ! snprintf(string, INT16_T_STRING_SIZE, "%hd", ntohs(*(int16_t *)data)); break; --- 428,437 ---- case sizeof(int32_t): string = xmalloc(INT32_T_STRING_SIZE); ! snprintf(string, INT32_T_STRING_SIZE, "%d", *(int32_t *)data); break; case sizeof(int16_t): string = xmalloc(INT16_T_STRING_SIZE); ! snprintf(string, INT16_T_STRING_SIZE, "%hd", *(int16_t *)data); break; *************** *** 497,506 **** case sizeof(uint32_t): string = xmalloc(UINT32_T_STRING_SIZE); ! snprintf(string, UINT32_T_STRING_SIZE, "%lu", ntohl(*(uint32_t *)data)); break; case sizeof(uint16_t): string = xmalloc(UINT16_T_STRING_SIZE); ! snprintf(string, UINT16_T_STRING_SIZE, "%hu", ntohs(*(uint16_t *)data)); break; --- 448,457 ---- case sizeof(uint32_t): string = xmalloc(UINT32_T_STRING_SIZE); ! snprintf(string, UINT32_T_STRING_SIZE, "%u", *(uint32_t *)data); break; case sizeof(uint16_t): string = xmalloc(UINT16_T_STRING_SIZE); ! snprintf(string, UINT16_T_STRING_SIZE, "%hu", *(uint16_t *)data); break; *************** *** 513,520 **** return string; } ! /* interface to *int*_to_string */ char *network_uint32_to_string(const unsigned char *data, int len) { --- 464,543 ---- return string; + } + + /* workhorse int to string routine. */ + char *network_int_to_string(const unsigned char *data, int data_len, + size_t size, int si) + { + char *string; + unsigned char *tmp; + + if(size > data_len) + return NULL; + + if(si) { /* signed. */ + + switch(size) { + + case sizeof(int32_t): + + tmp = malloc(sizeof(int32_t)); + *tmp = ntohl(* (int32_t *)data); + int_to_string(tmp, data_len, size, si); + string = int_to_string(tmp, data_len, size, si); + xfree(tmp); + + break; + + case sizeof(int16_t): + + tmp = malloc(sizeof(int16_t)); + *tmp = ntohl(* (int16_t *)data); + int_to_string(tmp, data_len, size, si); + string = int_to_string(tmp, data_len, size, si); + xfree(tmp); + + break; + + default: + /* we should never get here but we should force ourselves + * to b0rk if we do. */ + fatal_error("illegal size passed to int_to_string()!"); + } + + } else { /* unsigned. */ + + switch(size) { + + case sizeof(uint32_t): + + tmp = malloc(sizeof(uint32_t)); + *tmp = ntohl(* (uint32_t *)data); + int_to_string(tmp, data_len, size, si); + string = int_to_string(tmp, data_len, size, si); + xfree(tmp); + break; + + case sizeof(uint16_t): + + tmp = malloc(sizeof(uint16_t)); + *tmp = ntohl(* (uint16_t *)data); + int_to_string(tmp, data_len, size, si); + string = int_to_string(tmp, data_len, size, si); + xfree(tmp); + break; + + default: + /* ditto on forced b0rking. */ + fatal_error("illegal size passed to int_to_string()!"); + + } + } + + return string; } ! /* interface to network_*int*_to_string */ char *network_uint32_to_string(const unsigned char *data, int len) { *************** *** 527,535 **** char *network_uint16_to_string(const unsigned char *data, int len) { ! return(network_int_to_string(data, len, sizeof(int32_t), 0)); } char *network_int16_to_string(const unsigned char *data, int len) { ! return(network_int_to_string(data, len, sizeof(int32_t), 1)); } --- 550,576 ---- char *network_uint16_to_string(const unsigned char *data, int len) { ! return(network_int_to_string(data, len, sizeof(int16_t), 0)); } char *network_int16_to_string(const unsigned char *data, int len) { ! return(network_int_to_string(data, len, sizeof(int16_t), 1)); ! } ! ! /* interface to *int*_to_string */ ! char *uint32_to_string(const unsigned char *data, int len) ! { ! return(int_to_string(data, len, sizeof(uint32_t), 0)); ! } ! char *int32_to_string(const unsigned char *data, int len) ! { ! return(int_to_string(data, len, sizeof(int32_t), 1)); ! } ! char *uint16_to_string(const unsigned char *data, int len) ! { ! return(int_to_string(data, len, sizeof(int16_t), 0)); ! } ! char *int16_to_string(const unsigned char *data, int len) ! { ! return(network_int_to_string(data, len, sizeof(int16_t), 1)); } *************** *** 567,575 **** } ! void *string_to_uint16_list(char *s) { list_t *list_ptr = NULL; void *val; ! char *cp, *ptr; cp = s; --- 608,617 ---- } ! void *string_to_uint16_list(const char *s) { list_t *list_ptr = NULL; void *val; ! const char *cp; ! char *ptr; cp = s; *************** *** 591,595 **** } ! void *string_uint16_list_to_network(char *s, unsigned char *retlen) { unsigned char *data, *data_ptr; --- 633,637 ---- } ! void *string_uint16_list_to_network(const char *s, unsigned char *retlen) { unsigned char *data, *data_ptr; *************** *** 597,601 **** int len = 0; char *ptr; ! char *cp; for(cp = s;ptr != NULL;ptr = strchr(cp, ';')) { --- 639,643 ---- int len = 0; char *ptr; ! const char *cp; for(cp = s;ptr != NULL;ptr = strchr(cp, ';')) { *************** *** 627,631 **** /* i'm worried about some of the type issues here. */ ! static void *string_to_int(char *s, int si, size_t size) { void *val; --- 669,673 ---- /* i'm worried about some of the type issues here. */ ! static void *string_to_int(const char *s, int si, size_t size) { void *val; *************** *** 677,693 **** /* Interface for string_to_*int* */ ! void *string_to_uint32(char *s) { return(string_to_int(s, 0, sizeof(uint32_t))); } ! void *string_to_int32(char *s) { return(string_to_int(s, 1, sizeof(uint32_t))); } ! void *string_to_uint16(char *s) { return(string_to_int(s, 0, sizeof(int16_t))); } ! void *string_to_int16(char *s) { return(string_to_int(s, 1, sizeof(uint16_t))); --- 719,735 ---- /* Interface for string_to_*int* */ ! void *string_to_uint32(const char *s) { return(string_to_int(s, 0, sizeof(uint32_t))); } ! void *string_to_int32(const char *s) { return(string_to_int(s, 1, sizeof(uint32_t))); } ! void *string_to_uint16(const char *s) { return(string_to_int(s, 0, sizeof(int16_t))); } ! void *string_to_int16(const char *s) { return(string_to_int(s, 1, sizeof(uint16_t))); *************** *** 695,699 **** /* string int to network. */ ! static void *string_int_to_network(char *s, unsigned char *ret_len, int si, size_t size) { --- 737,741 ---- /* string int to network. */ ! static void *string_int_to_network(const char *s, unsigned char *ret_len, int si, size_t size) { *************** *** 755,775 **** /* interface to string_*int*_to_network */ ! void *string_int32_to_network(char *s, unsigned char *ret_len) { return(string_int_to_network(s, ret_len, 1, sizeof(int32_t))); } ! void *string_uint32_to_network(char *s, unsigned char *ret_len) { return(string_int_to_network(s, ret_len, 0, sizeof(uint32_t))); } ! void *string_int16_to_network(char *s, unsigned char *ret_len) { return(string_int_to_network(s, ret_len, 1, sizeof(int16_t))); } ! void *string_uint16_to_network(char *s, unsigned char *ret_len) { return(string_int_to_network(s, ret_len, 0, sizeof(uint16_t))); } ! /* variation on network_addr_to_string in dhcp-convert.c we use * this when we don't want to run around freeing results up, and --- 797,817 ---- /* interface to string_*int*_to_network */ ! void *string_int32_to_network(const char *s, unsigned char *ret_len) { return(string_int_to_network(s, ret_len, 1, sizeof(int32_t))); } ! void *string_uint32_to_network(const char *s, unsigned char *ret_len) { return(string_int_to_network(s, ret_len, 0, sizeof(uint32_t))); } ! void *string_int16_to_network(const char *s, unsigned char *ret_len) { return(string_int_to_network(s, ret_len, 1, sizeof(int16_t))); } ! void *string_uint16_to_network(const char *s, unsigned char *ret_len) { return(string_int_to_network(s, ret_len, 0, sizeof(uint16_t))); } ! /* variation on network_addr_to_string in dhcp-convert.c we use * this when we don't want to run around freeing results up, and Index: dhcp-files.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/dhcp-files.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** dhcp-files.c 19 May 2002 16:24:37 -0000 1.6 --- dhcp-files.c 25 May 2002 14:02:30 -0000 1.7 *************** *** 1,4 **** /* $Header$ ! * Copyright 2001 Thamer Alharbash <tm...@wh...> * * Redistribution and use in source and binary forms, with or without --- 1,4 ---- /* $Header$ ! * Copyright 2001 Thamer Alharbash <tm...@wh...> * * Redistribution and use in source and binary forms, with or without *************** *** 40,44 **** } ! static FILE *file_open_proc(char *filename, char *cmode, int flags, mode_t mode) { FILE *fp; --- 40,44 ---- } ! static FILE *file_open_proc(const char *filename, char *cmode, int flags, mode_t mode) { FILE *fp; *************** *** 63,72 **** /* Assumes we're opening a directory only writable by us . */ ! FILE *file_open_or_create_safe(char *filename, char *mode) { return(file_open_proc(filename, mode, O_RDWR|O_CREAT, S_IRUSR|S_IWUSR)); } ! FILE *file_create_and_truncate_safe(char *filename, char *mode) { return(file_open_proc(filename, mode, O_RDWR|O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR)); --- 63,72 ---- /* Assumes we're opening a directory only writable by us . */ ! FILE *file_open_or_create_safe(const char *filename, char *mode) { return(file_open_proc(filename, mode, O_RDWR|O_CREAT, S_IRUSR|S_IWUSR)); } ! FILE *file_create_and_truncate_safe(const char *filename, char *mode) { return(file_open_proc(filename, mode, O_RDWR|O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR)); Index: dhcp-net.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/dhcp-net.c,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** dhcp-net.c 19 May 2002 17:53:28 -0000 1.20 --- dhcp-net.c 25 May 2002 14:02:30 -0000 1.21 *************** *** 120,126 **** int rawnet_get_real_hw_addr(rawnet_t *net, eth_addr_t *addr) { - /* are we using a fake address? */ return(eth_get(net->eth, addr)); - } --- 120,124 ---- Index: dhcp-util.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/dhcp-util.c,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** dhcp-util.c 19 May 2002 20:19:09 -0000 1.12 --- dhcp-util.c 25 May 2002 14:02:30 -0000 1.13 *************** *** 274,278 **** */ ! char *splice_string(char *s1, char *s2) { char *new_string; --- 274,278 ---- */ ! char *splice_string(const char *s1, const char *s2) { char *new_string; *************** *** 411,419 **** } ! /* check if two strings match using strlen and strcmp */ ! int string_matches(char *s1, char *s2) { ! if(strlen(s1) == strlen(s2) && ! !strcmp(s1, s2)) return 1; else --- 411,418 ---- } ! /* check if two strings match. */ ! int string_matches(const char *s1, const char *s2) { ! if(!strcmp(s1, s2)) return 1; else |