Create "username" and "password" DHCP options, ready for placing this
authorMichael Brown <mcb30@etherboot.org>
Tue, 28 Nov 2006 02:14:20 +0000 (02:14 +0000)
committerMichael Brown <mcb30@etherboot.org>
Tue, 28 Nov 2006 02:14:20 +0000 (02:14 +0000)
information in NVS.

src/include/gpxe/dhcp.h
src/tests/dhcptest.c

index 79df5fc..5b01c9a 100644 (file)
  */
 #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
 
index be219b2..a6e3ff8 100644 (file)
@@ -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 );
 }