[dhcp-agent-commits] dhcp-agent/src dhcp-server-states.c,1.5,1.6
Status: Alpha
Brought to you by:
actmodern
From: <act...@us...> - 2003-08-06 04:29:42
|
Update of /cvsroot/dhcp-agent/dhcp-agent/src In directory sc8-pr-cvs1:/tmp/cvs-serv4909 Modified Files: dhcp-server-states.c Log Message: added logic code for picking max message size in responses Index: dhcp-server-states.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-server-states.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** dhcp-server-states.c 5 Aug 2003 05:01:02 -0000 1.5 --- dhcp-server-states.c 6 Aug 2003 04:29:39 -0000 1.6 *************** *** 69,75 **** uint16_t get_max_message_size(dhcp_server_control_t *sc, uint16_t *max_message_size_ptr) { ! if(max_message_size_ptr == NULL) /* none passed. */ ! return rawnet_get_mtu(sc->rawnet); /* use the mtu then. */ else if(*max_message_size_ptr > rawnet_get_mtu(sc->rawnet)) /* use mtu if the max message size is greater. */ return rawnet_get_mtu(sc->rawnet); --- 69,88 ---- uint16_t get_max_message_size(dhcp_server_control_t *sc, uint16_t *max_message_size_ptr) { ! uint16_t configured_max_message_size; ! ! /* get the configured max message size: we use this in the ! * absence of a max message size from the client, and if it ! * is smaller than our mtu. */ + configured_max_message_size = server_conf_get_max_message_size(sc->server_conf); + + /* we get a null pointer if the client never passed us a max message. */ + if(max_message_size_ptr == NULL) /* none passed. */ { + + if(configured_max_message_size < rawnet_get_mtu(sc->rawnet)) + return configured_max_message_size; + else + return rawnet_get_mtu(sc->rawnet); + } else if(*max_message_size_ptr > rawnet_get_mtu(sc->rawnet)) /* use mtu if the max message size is greater. */ return rawnet_get_mtu(sc->rawnet); *************** *** 117,124 **** /* construct and send an offer. */ ! static int server_do_offer(dhcp_server_control_t *sc, lease_t *lease, uint16_t *max_message_size_ptr, eth_addr_t eth_addr, uint32_t xid) { - uint16_t max_message_size = get_max_message_size(sc, max_message_size_ptr); list_t *options; dhcp_opt_t *option; --- 130,136 ---- /* construct and send an offer. */ ! static int server_do_offer(dhcp_server_control_t *sc, lease_t *lease, uint16_t max_message_size, eth_addr_t eth_addr, uint32_t xid) { list_t *options; dhcp_opt_t *option; *************** *** 140,146 **** * build a unicast packet and unicast. */ - /* remove me. and do something with me. */ - max_message_size = 0; - if(dhcp_get_giaddr(dhcp) != 0) { --- 152,155 ---- *************** *** 227,231 **** /* otherwise we do have a lease, send out an OFFER. */ ! if(server_do_offer(sc, lease, max_message_size, mac_addr, dhcp_get_xid(dhcp))) return STATE_SHUTDOWN; --- 236,240 ---- /* otherwise we do have a lease, send out an OFFER. */ ! if(server_do_offer(sc, lease, get_max_message_size(sc, max_message_size), mac_addr, dhcp_get_xid(dhcp))) return STATE_SHUTDOWN; |