]> git.ozlabs.org Git - petitboot/blobdiff - lib/types/types.c
lib: Add AUTH_MSG_DECRYPT
[petitboot] / lib / types / types.c
index 95a3a48cb4fca9571fa9a6eac54449b9c2378c2e..f4510e10ddf8d27ab4c6ff3950451e649b6673e0 100644 (file)
@@ -27,12 +27,16 @@ const char *device_type_display_name(enum device_type type)
        switch (type) {
        case DEVICE_TYPE_DISK:
                return _("Disk");
+       case DEVICE_TYPE_USB:
+               return _("USB");
        case DEVICE_TYPE_OPTICAL:
-               return _("Optical");
+               return _("CD/DVD");
        case DEVICE_TYPE_NETWORK:
                return _("Network");
        case DEVICE_TYPE_ANY:
                return _("Any");
+       case DEVICE_TYPE_LUKS:
+               return _("Encrypted Device");
        case DEVICE_TYPE_UNKNOWN:
        default:
                return _("Unknown");
@@ -44,12 +48,16 @@ const char *device_type_name(enum device_type type)
        switch (type) {
        case DEVICE_TYPE_DISK:
                return "disk";
+       case DEVICE_TYPE_USB:
+               return "usb";
        case DEVICE_TYPE_OPTICAL:
                return "optical";
        case DEVICE_TYPE_NETWORK:
                return "network";
        case DEVICE_TYPE_ANY:
                return "any";
+       case DEVICE_TYPE_LUKS:
+               return "encrypted";
        case DEVICE_TYPE_UNKNOWN:
        default:
                return "unknown";
@@ -60,12 +68,28 @@ enum device_type find_device_type(const char *str)
 {
        if (!strncmp(str, "disk", strlen("disk")))
                return DEVICE_TYPE_DISK;
+       if (!strncmp(str, "usb", strlen("usb")))
+               return DEVICE_TYPE_USB;
        if (!strncmp(str, "optical", strlen("optical")))
                return DEVICE_TYPE_OPTICAL;
        if (!strncmp(str, "network", strlen("network")))
                return DEVICE_TYPE_NETWORK;
        if (!strncmp(str, "any", strlen("any")))
                return DEVICE_TYPE_ANY;
+       if (!strncmp(str, "encrypted", strlen("encrypted")))
+               return DEVICE_TYPE_LUKS;
 
        return DEVICE_TYPE_UNKNOWN;
 }
+
+bool config_autoboot_active(const struct config *config)
+{
+       enum ipmi_bootdev bootdev = config->ipmi_bootdev;
+
+       if (!config->autoboot_enabled)
+               return false;
+       if (bootdev == IPMI_BOOTDEV_SETUP || bootdev == IPMI_BOOTDEV_SAFE)
+               return false;
+
+       return true;
+}