X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=src%2Fnetwork%2Fnetworkd-manager.c;h=42b51137ef0c2872b1941a8b2033f91579ac6e6d;hb=cb9fc36a1211967e8c58b0502a26c42552ac8060;hp=6aab42756441a51fa6a1e69c8d1c24d8c0e78475;hpb=17d1f37d0dbd2d78b8866e1350c83a9755105144;p=elogind.git diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c index 6aab42756..42b51137e 100644 --- a/src/network/networkd-manager.c +++ b/src/network/networkd-manager.c @@ -654,3 +654,35 @@ int manager_address_pool_acquire(Manager *m, int family, unsigned prefixlen, uni return 0; } + +const char *address_family_boolean_to_string(AddressFamilyBoolean b) { + if (b == ADDRESS_FAMILY_YES || + b == ADDRESS_FAMILY_NO) + return yes_no(b == ADDRESS_FAMILY_YES); + + if (b == ADDRESS_FAMILY_IPV4) + return "ipv4"; + if (b == ADDRESS_FAMILY_IPV6) + return "ipv6"; + + return NULL; +} + +AddressFamilyBoolean address_family_boolean_from_string(const char *s) { + int r; + + /* Make this a true superset of a boolean */ + + r = parse_boolean(s); + if (r > 0) + return ADDRESS_FAMILY_YES; + if (r == 0) + return ADDRESS_FAMILY_NO; + + if (streq(s, "ipv4")) + return ADDRESS_FAMILY_IPV4; + if (streq(s, "ipv6")) + return ADDRESS_FAMILY_IPV6; + + return _ADDRESS_FAMILY_BOOLEAN_INVALID; +}