hdt: Adding gPXE detection
authorErwan Velu <erwan.velu@free.fr>
Sun, 29 Nov 2009 14:35:13 +0000 (15:35 +0100)
committerErwan Velu <erwan.velu@free.fr>
Fri, 4 Dec 2009 09:11:15 +0000 (10:11 +0100)
Impact: gPXE is now detected

HDT is now able to report is gPXE is loaded on this given system

com32/hdt/hdt-cli-pxe.c
com32/hdt/hdt-menu-pxe.c

index 7c550e3..3a61bc0 100644 (file)
@@ -32,6 +32,7 @@
 #include <errno.h>
 #include <syslinux/pxe.h>
 #include <syslinux/config.h>
+#include <sys/gpxe.h>
 
 #include "hdt-cli.h"
 #include "hdt-common.h"
@@ -76,6 +77,11 @@ void main_show_pxe(int argc __unused, char **argv __unused,
     }
     more_printf(" Addresses    : %d.%d.%d.%d @ %s\n", p->ip_addr[0],
                p->ip_addr[1], p->ip_addr[2], p->ip_addr[3], p->mac_addr);
+
+    if (is_gpxe())
+       more_printf(" gPXE Detected: Yes\n")
+    else
+       more_printf(" gPXE Detected: No\n");
 }
 
 struct cli_module_descr pxe_show_modules = {
index 930cf27..426bfe0 100644 (file)
  */
 
 #include "hdt-menu.h"
+#include <sys/gpxe.h>
 
 /* Main Kernel menu */
 void compute_PXE(struct s_my_menu *menu, struct s_hardware *hardware)
 {
     char buffer[SUBMENULEN + 1];
     char infobar[STATLEN + 1];
+    char gpxe[4];
 
     if (hardware->is_pxe_valid == false)
        return;
@@ -111,5 +113,13 @@ void compute_PXE(struct s_my_menu *menu, struct s_hardware *hardware)
     add_item(buffer, infobar, OPT_INACTIVE, NULL, 0);
     menu->items_count++;
 
+    if (is_gpxe()) strcat(gpxe,"Yes");
+    else strcat (gpxe,"No");
+
+    snprintf(buffer, sizeof buffer, "gPXE Detected: %s", gpxe);
+    snprintf(infobar, sizeof infobar, "gPXE Detected: %s", gpxe);
+    add_item(buffer, infobar, OPT_INACTIVE, NULL, 0);
+    menu->items_count++;
+
     printf("MENU: PXE menu done (%d items)\n", menu->items_count);
 }