On some occasions e.g. license checking, the manufacturer string in the SMBIOS settings edit has to allow characters such as whitespaces. https://forum.proxmox.com/threads/proxmox-and-windows-rok-license-for-dell.53236/
Use URI encoding for format string in order to allow for such cases. Signed-off-by: Christian Ebner <c.eb...@proxmox.com> --- Version 2: - Changed format verification to url encoded PVE/QemuServer.pm | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 9d560ec..8b2fd49 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -2369,43 +2369,43 @@ my $smbios1_fmt = { }, version => { type => 'string', - pattern => '\S+', - format_description => 'string', + format => 'urlencoded', + format_description => 'URI encoded string', description => "Set SMBIOS1 version.", optional => 1, }, serial => { type => 'string', - pattern => '\S+', - format_description => 'string', + format => 'urlencoded', + format_description => 'URI encoded string', description => "Set SMBIOS1 serial number.", optional => 1, }, manufacturer => { type => 'string', - pattern => '\S+', - format_description => 'string', + format => 'urlencoded', + format_description => 'URI encoded string', description => "Set SMBIOS1 manufacturer.", optional => 1, }, product => { type => 'string', - pattern => '\S+', - format_description => 'string', + format => 'urlencoded', + format_description => 'URI encoded string', description => "Set SMBIOS1 product ID.", optional => 1, }, sku => { type => 'string', - pattern => '\S+', - format_description => 'string', + format => 'urlencoded', + format_description => 'URI encoded string', description => "Set SMBIOS1 SKU string.", optional => 1, }, family => { type => 'string', - pattern => '\S+', - format_description => 'string', + format => 'urlencoded', + format_description => 'URI encoded string', description => "Set SMBIOS1 family string.", optional => 1, }, @@ -3524,7 +3524,13 @@ sub config_to_command { push @$cmd, '-daemonize'; if ($conf->{smbios1}) { - push @$cmd, '-smbios', "type=1,$conf->{smbios1}"; + my $smbios_conf = parse_smbios1($conf->{smbios1}); + my $smbios_string = ""; + foreach my $key (keys %$smbios_conf) { + my $value = uri_unescape($smbios_conf->{$key}); + $smbios_string .= "," . $key . "=" . $value if $value; + } + push @$cmd, '-smbios', "type=1" . $smbios_string; } if ($conf->{vmgenid}) { -- 2.11.0 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel