Add handling for '-1' when parsing vsock CID (#42654)
Currently `systemd-ssh-generator` supports `systemd.ssh_listen=vsock::22` and aliases the "empty CID" towards `VMADDR_CID_ANY`. VMADDR_CID_ANY is -1, so it's confusing from a user experience that `systemd.ssh_listen=vsock:-1:22` isn't supported.
This commit is contained in:
@@ -1730,7 +1730,7 @@ int vsock_parse_cid(const char *s, unsigned *ret) {
|
||||
return -EINVAL;
|
||||
|
||||
/* Parsed an AF_VSOCK "CID". This is a 32bit entity, and the usual type is "unsigned". We recognize
|
||||
* the three special CIDs as strings, and otherwise parse the numeric CIDs. */
|
||||
* the four special CIDs as strings, and otherwise parse the numeric CIDs. */
|
||||
|
||||
if (streq(s, "hypervisor"))
|
||||
*ret = VMADDR_CID_HYPERVISOR;
|
||||
@@ -1738,6 +1738,8 @@ int vsock_parse_cid(const char *s, unsigned *ret) {
|
||||
*ret = VMADDR_CID_LOCAL;
|
||||
else if (streq(s, "host"))
|
||||
*ret = VMADDR_CID_HOST;
|
||||
else if (STR_IN_SET(s, "any", "-1"))
|
||||
*ret = VMADDR_CID_ANY;
|
||||
else
|
||||
return safe_atou(s, ret);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user