diff options
Diffstat (limited to 'src/initrd/nm-initrd-generator.h')
| -rw-r--r-- | src/initrd/nm-initrd-generator.h | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/src/initrd/nm-initrd-generator.h b/src/initrd/nm-initrd-generator.h index 8e17f045..69c24b1b 100644 --- a/src/initrd/nm-initrd-generator.h +++ b/src/initrd/nm-initrd-generator.h @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: LGPL-2.1+ +/* SPDX-License-Identifier: LGPL-2.1+ */ /* * Copyright (C) 2014, 2018 Red Hat, Inc. */ @@ -11,25 +11,33 @@ #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 - return AF_UNSPEC; + 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); +GHashTable *nmi_ibft_read(const char *sysfs_dir); -gboolean nmi_ibft_update_connection_from_nic (NMConnection *connection, GHashTable *nic, GError **error); +gboolean +nmi_ibft_update_connection_from_nic(NMConnection *connection, GHashTable *nic, GError **error); -NMConnection *nmi_dt_reader_parse (const char *sysfs_dir); +NMConnection *nmi_dt_reader_parse(const char *sysfs_dir); -GHashTable *nmi_cmdline_reader_parse (const char *sysfs_dir, const char *const*argv, char **hostname); +GHashTable * +nmi_cmdline_reader_parse(const char *sysfs_dir, const char *const *argv, char **hostname); -#endif /* __NM_INITRD_GENERATOR_H__ */ +#endif /* __NM_INITRD_GENERATOR_H__ */ |