diff options
| author | Michael Biebl <biebl@debian.org> | 2020-12-06 21:57:59 +0100 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2020-12-06 21:57:59 +0100 |
| commit | 65f86e8f56267192d42f2b629fc6b0c99fb9cd0c (patch) | |
| tree | 180827692f002e5f1dad6a0fa8ca489e6bb6438f /src/initrd/nm-initrd-generator.h | |
| parent | f2ddac4cbc895837ddcc55015fae112f9859cd0a (diff) | |
New upstream version 1.28.0 upstream/1.28.0
Diffstat (limited to 'src/initrd/nm-initrd-generator.h')
| -rw-r--r-- | src/initrd/nm-initrd-generator.h | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/src/initrd/nm-initrd-generator.h b/src/initrd/nm-initrd-generator.h index cac01cb8..69c24b1b 100644 --- a/src/initrd/nm-initrd-generator.h +++ b/src/initrd/nm-initrd-generator.h @@ -11,17 +11,23 @@ #define NMI_WAIT_DEVICE_TIMEOUT_MS 60000 -static inline gboolean -guess_ip_address_family(const char *str) +static inline int +get_ip_address_family(const char *str, gboolean with_prefix) { - if (str == NULL) - return AF_UNSPEC; - else if (strchr(str, '.')) - return AF_INET; - else if (strchr(str, ':')) - return AF_INET6; - else + int addr_family; + + if (!str) return AF_UNSPEC; + + if (with_prefix) { + if (nm_utils_parse_inaddr_prefix_bin(AF_UNSPEC, str, &addr_family, NULL, NULL)) + return addr_family; + } else { + if (nm_utils_parse_inaddr_bin(AF_UNSPEC, str, &addr_family, NULL)) + return addr_family; + } + + return AF_UNSPEC; } GHashTable *nmi_ibft_read(const char *sysfs_dir); |