X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=networking%2Fudhcp%2Fdhcprelay.c;h=3e1758d5cace2d86524a2a8cd2704cdff581af5c;hb=3f1123103cff3d6a67f5faa2f4b25f3c1e92a501;hp=78a1b5e626ce7d65defffb9099063b6940273390;hpb=666da5e2c6edec979966d16771818b32dcfafe04;p=oweals%2Fbusybox.git diff --git a/networking/udhcp/dhcprelay.c b/networking/udhcp/dhcprelay.c index 78a1b5e62..3e1758d5c 100644 --- a/networking/udhcp/dhcprelay.c +++ b/networking/udhcp/dhcprelay.c @@ -22,7 +22,7 @@ /* This list holds information about clients. The xid_* functions manipulate this list. */ static struct xid_item { - u_int32_t xid; + uint32_t xid; struct sockaddr_in ip; int client; time_t timestamp; @@ -30,7 +30,7 @@ static struct xid_item { } dhcprelay_xid_list = {0, {0}, 0, 0, NULL}; -static struct xid_item * xid_add(u_int32_t xid, struct sockaddr_in *ip, int client) +static struct xid_item *xid_add(uint32_t xid, struct sockaddr_in *ip, int client) { struct xid_item *item; @@ -48,7 +48,6 @@ static struct xid_item * xid_add(u_int32_t xid, struct sockaddr_in *ip, int clie return item; } - static void xid_expire(void) { struct xid_item *item = dhcprelay_xid_list.next; @@ -56,7 +55,7 @@ static void xid_expire(void) time_t current_time = time(NULL); while (item != NULL) { - if ((current_time-item->timestamp) > MAX_LIFETIME) { + if ((current_time - item->timestamp) > MAX_LIFETIME) { last->next = item->next; free(item); item = last->next; @@ -67,7 +66,7 @@ static void xid_expire(void) } } -static struct xid_item * xid_find(u_int32_t xid) +static struct xid_item *xid_find(uint32_t xid) { struct xid_item *item = dhcprelay_xid_list.next; while (item != NULL) { @@ -79,7 +78,7 @@ static struct xid_item * xid_find(u_int32_t xid) return NULL; } -static void xid_del(u_int32_t xid) +static void xid_del(uint32_t xid) { struct xid_item *item = dhcprelay_xid_list.next; struct xid_item *last = &dhcprelay_xid_list; @@ -95,7 +94,6 @@ static void xid_del(u_int32_t xid) } } - /** * get_dhcp_packet_type - gets the message type of a dhcp packet * p - pointer to the dhcp packet @@ -119,7 +117,8 @@ static int get_dhcp_packet_type(struct dhcpMessage *p) * signal_handler - handles signals ;-) * sig - sent signal */ -static int dhcprelay_stopflag; +static smallint dhcprelay_stopflag; + static void dhcprelay_signal_handler(int sig) { dhcprelay_stopflag = 1; @@ -130,7 +129,7 @@ static void dhcprelay_signal_handler(int sig) * dev_list - comma separated list of devices * returns array */ -static char ** get_client_devices(char *dev_list, int *client_number) +static char **get_client_devices(char *dev_list, int *client_number) { char *s, *list, **client_dev; int i, cn; @@ -168,16 +167,17 @@ static int init_sockets(char **client, int num_clients, int i; /* talk to real server on bootps */ - fds[0] = listen_socket(htonl(INADDR_ANY), 67, server); + fds[0] = listen_socket(/*INADDR_ANY,*/ 67, server); *max_socket = fds[0]; /* array starts at 1 since server is 0 */ num_clients++; - for (i=1; i < num_clients; i++) { + for (i = 1; i < num_clients; i++) { /* listen for clients on bootps */ - fds[i] = listen_socket(htonl(INADDR_ANY), 67, client[i-1]); - if (fds[i] > *max_socket) *max_socket = fds[i]; + fds[i] = listen_socket(/*NADDR_ANY,*/ 67, client[i-1]); + if (fds[i] > *max_socket) + *max_socket = fds[i]; } return i; @@ -286,7 +286,7 @@ static void dhcprelay_loop(int *fds, int num_sockets, int max_socket, char **cli (struct sockaddr *)(&client_addr), &addr_size); if (packlen <= 0) continue; - if (read_interface(clients[i-1], NULL, &dhcp_msg.giaddr, NULL) < 0) + if (read_interface(clients[i-1], NULL, &dhcp_msg.giaddr, NULL)) dhcp_msg.giaddr = gw_ip; pass_on(&dhcp_msg, packlen, i, fds, &client_addr, server_addr); } @@ -295,6 +295,7 @@ static void dhcprelay_loop(int *fds, int num_sockets, int max_socket, char **cli } } +int dhcprelay_main(int argc, char **argv); int dhcprelay_main(int argc, char **argv) { int i, num_sockets, max_socket, fds[MAX_INTERFACES]; @@ -321,7 +322,7 @@ int dhcprelay_main(int argc, char **argv) num_sockets = init_sockets(clients, num_sockets, argv[2], fds, &max_socket); - if (read_interface(argv[2], NULL, &gw_ip, NULL) == -1) + if (read_interface(argv[2], NULL, &gw_ip, NULL)) return 1; dhcprelay_loop(fds, num_sockets, max_socket, clients, &server_addr, gw_ip);