network: simplify config_parse_lifetime()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 28 Feb 2019 01:56:33 +0000 (10:56 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 28 Feb 2019 01:56:33 +0000 (10:56 +0900)
src/network/networkd-address.c

index cb23213..d538ee7 100644 (file)
@@ -840,25 +840,19 @@ int config_parse_lifetime(const char *unit,
         if (r < 0)
                 return r;
 
-        if (STR_IN_SET(rvalue, "forever", "infinity")) {
-                n->cinfo.ifa_prefered = CACHE_INFO_INFINITY_LIFE_TIME;
-                n = NULL;
-
-                return 0;
-        }
-
-        r = safe_atou(rvalue, &k);
-        if (r < 0) {
-                log_syntax(unit, LOG_ERR, filename, line, r, "Failed to parse PreferredLifetime, ignoring: %s", rvalue);
+        /* We accept only "forever", "infinity", or "0". */
+        if (STR_IN_SET(rvalue, "forever", "infinity"))
+                k = CACHE_INFO_INFINITY_LIFE_TIME;
+        else if (streq(rvalue, "0"))
+                k = 0;
+        else {
+                log_syntax(unit, LOG_ERR, filename, line, 0,
+                           "Invalid PreferredLifetime= value, ignoring: %s", rvalue);
                 return 0;
         }
 
-        if (k != 0)
-                log_syntax(unit, LOG_ERR, filename, line, 0, "Invalid PreferredLifetime value, ignoring: %d", k);
-        else {
-                n->cinfo.ifa_prefered = k;
-                n = NULL;
-        }
+        n->cinfo.ifa_prefered = k;
+        n = NULL;
 
         return 0;
 }