From 74c41fac068f3c2680b77973ef21b6ee52d1b4cd Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Tue, 28 Nov 2006 02:14:20 +0000 Subject: [PATCH] Create "username" and "password" DHCP options, ready for placing this information in NVS. --- src/include/gpxe/dhcp.h | 18 ++++++++++++++++++ src/tests/dhcptest.c | 9 +++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/include/gpxe/dhcp.h b/src/include/gpxe/dhcp.h index 79df5fc7..5b01c9ad 100644 --- a/src/include/gpxe/dhcp.h +++ b/src/include/gpxe/dhcp.h @@ -167,6 +167,24 @@ */ #define DHCP_EB_BIOS_DRIVE DHCP_ENCAP_OPT ( DHCP_EB_ENCAP, 0xbd ) +/** Username + * + * This will be used as the username for any required authentication. + * It is expected that this option's value will be held in + * non-volatile storage, rather than transmitted as part of a DHCP + * packet. + */ +#define DHCP_EB_USERNAME DHCP_ENCAP_OPT ( DHCP_EB_ENCAP, 0xbe ) + +/** Password + * + * This will be used as the password for any required authentication. + * It is expected that this option's value will be held in + * non-volatile storage, rather than transmitted as part of a DHCP + * packet. + */ +#define DHCP_EB_PASSWORD DHCP_ENCAP_OPT ( DHCP_EB_ENCAP, 0xbf ) + /** Maximum normal DHCP option */ #define DHCP_MAX_OPTION 254 diff --git a/src/tests/dhcptest.c b/src/tests/dhcptest.c index be219b20..a6e3ff80 100644 --- a/src/tests/dhcptest.c +++ b/src/tests/dhcptest.c @@ -16,8 +16,8 @@ static int test_dhcp_aoe_boot ( struct net_device *netdev, static int test_dhcp_iscsi_boot ( struct net_device *netdev, char *iscsiname ) { char *initiator_iqn = "iqn.1900-01.localdomain.localhost:initiator"; - char *username = "joe"; - char *password = "secret"; + char username[32]; + char password[32]; char *target_iqn; union { struct sockaddr_in sin; @@ -35,6 +35,11 @@ static int test_dhcp_iscsi_boot ( struct net_device *netdev, char *iscsiname ) { } inet_aton ( iscsiname, &target.sin.sin_addr ); + dhcp_snprintf ( username, sizeof ( username ), + find_global_dhcp_option ( DHCP_EB_USERNAME ) ); + dhcp_snprintf ( password, sizeof ( password ), + find_global_dhcp_option ( DHCP_EB_PASSWORD ) ); + return test_iscsiboot ( initiator_iqn, &target.st, target_iqn, username, password, netdev ); }