From 6cee8904d1d26cd3503018e9514b8671a9b0a860 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Tue, 30 Nov 2010 00:22:49 +0000 Subject: [dhcp] Remove redundant length fields in struct dhcp_packet The max_len field is never used, and the len field is used only by dhcp_tx(). Remove these two fields, and perform the necessary trivial calculation in dhcp_tx() instead. Signed-off-by: Michael Brown --- src/net/dhcppkt.c | 12 +----------- src/net/udp/dhcp.c | 2 +- 2 files changed, 2 insertions(+), 12 deletions(-) (limited to 'src/net') diff --git a/src/net/dhcppkt.c b/src/net/dhcppkt.c index b68f4e08..e043bb5d 100644 --- a/src/net/dhcppkt.c +++ b/src/net/dhcppkt.c @@ -147,7 +147,6 @@ int dhcppkt_store ( struct dhcp_packet *dhcppkt, unsigned int tag, const void *data, size_t len ) { struct dhcp_packet_field *field; void *field_data; - int rc; /* If this is a special field, fill it in */ if ( ( field = find_dhcp_packet_field ( tag ) ) != NULL ) { @@ -163,13 +162,7 @@ int dhcppkt_store ( struct dhcp_packet *dhcppkt, unsigned int tag, } /* Otherwise, use the generic options block */ - rc = dhcpopt_store ( &dhcppkt->options, tag, data, len ); - - /* Update our used-length field */ - dhcppkt->len = ( offsetof ( struct dhcphdr, options ) + - dhcppkt->options.len ); - - return rc; + return dhcpopt_store ( &dhcppkt->options, tag, data, len ); } /** @@ -273,11 +266,8 @@ void dhcppkt_init ( struct dhcp_packet *dhcppkt, struct dhcphdr *data, size_t len ) { ref_init ( &dhcppkt->refcnt, NULL ); dhcppkt->dhcphdr = data; - dhcppkt->max_len = len; dhcpopt_init ( &dhcppkt->options, &dhcppkt->dhcphdr->options, ( len - offsetof ( struct dhcphdr, options ) ) ); - dhcppkt->len = ( offsetof ( struct dhcphdr, options ) + - dhcppkt->options.len ); settings_init ( &dhcppkt->settings, &dhcppkt_settings_operations, &dhcppkt->refcnt, 0 ); } diff --git a/src/net/udp/dhcp.c b/src/net/udp/dhcp.c index 64c49cdd..e6d127ab 100644 --- a/src/net/udp/dhcp.c +++ b/src/net/udp/dhcp.c @@ -1122,7 +1122,7 @@ static int dhcp_tx ( struct dhcp_session *dhcp ) { } /* Transmit the packet */ - iob_put ( iobuf, dhcppkt.len ); + iob_put ( iobuf, dhcppkt_len ( &dhcppkt ) ); if ( ( rc = xfer_deliver ( &dhcp->xfer, iob_disown ( iobuf ), &meta ) ) != 0 ) { DBGC ( dhcp, "DHCP %p could not transmit UDP packet: %s\n", -- cgit v1.2.3-55-g7522