From 7ca8bcd98c2cfb1f685ed80a9ba803062db1f603 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Thu, 20 Jul 2006 03:02:34 +0000 Subject: [PATCH] Print out the lease time, just to show how easy it is. --- src/include/gpxe/dhcp.h | 3 +++ src/tests/dhcptest.c | 23 +++++++++++++++-------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/include/gpxe/dhcp.h b/src/include/gpxe/dhcp.h index 115ce2be..51fd8195 100644 --- a/src/include/gpxe/dhcp.h +++ b/src/include/gpxe/dhcp.h @@ -74,6 +74,9 @@ /** Requested IP address */ #define DHCP_REQUESTED_ADDRESS 50 +/** Lease time */ +#define DHCP_LEASE_TIME 51 + /** Option overloading * * The value of this option is the bitwise-OR of zero or more diff --git a/src/tests/dhcptest.c b/src/tests/dhcptest.c index b61535f2..ce7cb106 100644 --- a/src/tests/dhcptest.c +++ b/src/tests/dhcptest.c @@ -22,10 +22,20 @@ int test_dhcp ( struct net_device *netdev ) { if ( ( rc = async_wait ( start_dhcp ( &dhcp ) ) ) != 0 ) goto out_no_options; + /* Register options received via DHCP */ + register_dhcp_options ( dhcp.options ); + /* Retrieve IP address configuration */ - find_dhcp_ipv4_option ( dhcp.options, DHCP_EB_YIADDR, &address ); - find_dhcp_ipv4_option ( dhcp.options, DHCP_SUBNET_MASK, &netmask ); - find_dhcp_ipv4_option ( dhcp.options, DHCP_ROUTERS, &gateway ); + find_global_dhcp_ipv4_option ( DHCP_EB_YIADDR, &address ); + find_global_dhcp_ipv4_option ( DHCP_SUBNET_MASK, &netmask ); + find_global_dhcp_ipv4_option ( DHCP_ROUTERS, &gateway ); + + printf ( "IP %s", inet_ntoa ( address ) ); + printf ( " netmask %s", inet_ntoa ( netmask ) ); + printf ( " gateway %s\n", inet_ntoa ( gateway ) ); + + printf ( "Lease time is %ld seconds\n", + find_global_dhcp_num_option ( DHCP_LEASE_TIME ) ); /* Remove old IP address configuration */ del_ipv4_address ( netdev ); @@ -35,11 +45,8 @@ int test_dhcp ( struct net_device *netdev ) { gateway ) ) != 0 ) goto out_no_del_ipv4; - printf ( "IP %s", inet_ntoa ( address ) ); - printf ( " netmask %s", inet_ntoa ( netmask ) ); - printf ( " gateway %s\n", inet_ntoa ( gateway ) ); - - /* Free DHCP options */ + /* Unregister and free DHCP options */ + unregister_dhcp_options ( dhcp.options ); free_dhcp_options ( dhcp.options ); out_no_options: /* Take down IP interface */