]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
basic: add log_level argument to timezone_is_valid 8962/head
authorMike Gilbert <floppym@gentoo.org>
Sat, 12 May 2018 19:20:13 +0000 (15:20 -0400)
committerMike Gilbert <floppym@gentoo.org>
Sat, 12 May 2018 19:20:13 +0000 (15:20 -0400)
src/basic/calendarspec.c
src/basic/time-util.c
src/basic/time-util.h
src/firstboot/firstboot.c
src/libsystemd-network/sd-dhcp-lease.c
src/libsystemd-network/sd-dhcp-server.c
src/network/networkd-network.c
src/test/test-time-util.c
src/timedate/timedated.c

index 4cf21100cc9d91e27e9b8d487359c12ef979f90e..f8c798f31f022f69b8e208be3503bfc0f49aca0f 100644 (file)
@@ -937,7 +937,7 @@ int calendar_spec_from_string(const char *p, CalendarSpec **spec) {
                         const char *last_space;
 
                         last_space = strrchr(p, ' ');
-                        if (last_space != NULL && timezone_is_valid(last_space + 1)) {
+                        if (last_space != NULL && timezone_is_valid(last_space + 1, LOG_DEBUG)) {
                                 c->timezone = strdup(last_space + 1);
                                 if (!c->timezone)
                                         return -ENOMEM;
index c721c73ed43df7761a5cdec9205387e85c9db0ef..5d278d42cb83e1d02ba383c4b1e1ff07fdfe56a9 100644 (file)
@@ -877,7 +877,7 @@ int parse_timestamp(const char *t, usec_t *usec) {
         int r;
 
         last_space = strrchr(t, ' ');
-        if (last_space != NULL && timezone_is_valid(last_space + 1))
+        if (last_space != NULL && timezone_is_valid(last_space + 1, LOG_DEBUG))
                 tz = last_space + 1;
 
         if (!tz || endswith_no_case(t, " UTC"))
@@ -1275,7 +1275,7 @@ int get_timezones(char ***ret) {
         return 0;
 }
 
-bool timezone_is_valid(const char *name) {
+bool timezone_is_valid(const char *name, int log_level) {
         bool slash = false;
         const char *p, *t;
         _cleanup_close_ int fd = -1;
@@ -1312,25 +1312,25 @@ bool timezone_is_valid(const char *name) {
 
         fd = open(t, O_RDONLY|O_CLOEXEC);
         if (fd < 0) {
-                log_debug_errno(errno, "Failed to open timezone file '%s': %m", t);
+                log_full_errno(log_level, errno, "Failed to open timezone file '%s': %m", t);
                 return false;
         }
 
         r = fd_verify_regular(fd);
         if (r < 0) {
-                log_debug_errno(r, "Timezone file '%s' is not  a regular file: %m", t);
+                log_full_errno(log_level, r, "Timezone file '%s' is not  a regular file: %m", t);
                 return false;
         }
 
         r = loop_read_exact(fd, buf, 4, false);
         if (r < 0) {
-                log_debug_errno(r, "Failed to read from timezone file '%s': %m", t);
+                log_full_errno(log_level, r, "Failed to read from timezone file '%s': %m", t);
                 return false;
         }
 
         /* Magic from tzfile(5) */
         if (memcmp(buf, "TZif", 4) != 0) {
-                log_debug("Timezone file '%s' has wrong magic bytes", t);
+                log_full(log_level, "Timezone file '%s' has wrong magic bytes", t);
                 return false;
         }
 
@@ -1403,7 +1403,7 @@ int get_timezone(char **tz) {
         if (!e)
                 return -EINVAL;
 
-        if (!timezone_is_valid(e))
+        if (!timezone_is_valid(e, LOG_DEBUG))
                 return -EINVAL;
 
         z = strdup(e);
index 5b2674a4b6797d53cee3affde425314ff6e115a6..e720688c2b5ba05fd4c58096100b78e8d23ab843 100644 (file)
@@ -128,7 +128,7 @@ int parse_nsec(const char *t, nsec_t *nsec);
 bool ntp_synced(void);
 
 int get_timezones(char ***l);
-bool timezone_is_valid(const char *name);
+bool timezone_is_valid(const char *name, int log_level);
 
 bool clock_boottime_supported(void);
 bool clock_supported(clockid_t clock);
index ce3733930712e971c0cf6d8a4be2496650facae6..7895e3832aa0516f1e92ac1b538fecaafcd6a456 100644 (file)
@@ -364,6 +364,10 @@ static int process_keymap(void) {
         return 0;
 }
 
+static bool timezone_is_valid_log_error(const char *name) {
+        return timezone_is_valid(name, LOG_ERR);
+}
+
 static int prompt_timezone(void) {
         _cleanup_strv_free_ char **zones = NULL;
         int r;
@@ -387,7 +391,7 @@ static int prompt_timezone(void) {
 
         putchar('\n');
 
-        r = prompt_loop("Please enter timezone name or number", zones, timezone_is_valid, &arg_timezone);
+        r = prompt_loop("Please enter timezone name or number", zones, timezone_is_valid_log_error, &arg_timezone);
         if (r < 0)
                 return r;
 
@@ -827,7 +831,7 @@ static int parse_argv(int argc, char *argv[]) {
                         break;
 
                 case ARG_TIMEZONE:
-                        if (!timezone_is_valid(optarg)) {
+                        if (!timezone_is_valid(optarg, LOG_ERR)) {
                                 log_error("Timezone %s is not valid.", optarg);
                                 return -EINVAL;
                         }
index c4670503cc004fe3aa82ea004100431706949602..958b41f5e49611ca8f5e345d4345a629915e94e0 100644 (file)
@@ -667,7 +667,7 @@ int dhcp_lease_parse_options(uint8_t code, uint8_t len, const void *option, void
                         return 0;
                 }
 
-                if (!timezone_is_valid(tz)) {
+                if (!timezone_is_valid(tz, LOG_DEBUG)) {
                         log_debug_errno(r, "Timezone is not valid, ignoring: %m");
                         return 0;
                 }
index 351b56742386cc0d93d14151b076d6ac54c6132b..d97bb9a0754dd26595a77172f4e0239c523435f0 100644 (file)
@@ -1069,7 +1069,7 @@ int sd_dhcp_server_set_timezone(sd_dhcp_server *server, const char *tz) {
         int r;
 
         assert_return(server, -EINVAL);
-        assert_return(timezone_is_valid(tz), -EINVAL);
+        assert_return(timezone_is_valid(tz, LOG_DEBUG), -EINVAL);
 
         if (streq_ptr(tz, server->timezone))
                 return 0;
index daa30cb8f08de86cb4704a737c739948b4d85074..2b03fc254ba7a076f68e95ce0bec6f9060038b9f 100644 (file)
@@ -1012,7 +1012,7 @@ int config_parse_timezone(
         if (r < 0)
                 return r;
 
-        if (!timezone_is_valid(tz)) {
+        if (!timezone_is_valid(tz, LOG_ERR)) {
                 log_syntax(unit, LOG_ERR, filename, line, 0, "Timezone is not valid, ignoring assignment: %s", rvalue);
                 free(tz);
                 return 0;
index 5393deff702f56c691cf0405283c5c4dc3d97765..5b8e7c7b35d74572d878af77cc4dd865048a723d 100644 (file)
@@ -168,9 +168,9 @@ static void test_format_timespan(usec_t accuracy) {
 }
 
 static void test_timezone_is_valid(void) {
-        assert_se(timezone_is_valid("Europe/Berlin"));
-        assert_se(timezone_is_valid("Australia/Sydney"));
-        assert_se(!timezone_is_valid("Europe/Do not exist"));
+        assert_se(timezone_is_valid("Europe/Berlin", LOG_ERR));
+        assert_se(timezone_is_valid("Australia/Sydney", LOG_ERR));
+        assert_se(!timezone_is_valid("Europe/Do not exist", LOG_ERR));
 }
 
 static void test_get_timezones(void) {
@@ -182,7 +182,7 @@ static void test_get_timezones(void) {
         assert_se(r == 0);
 
         STRV_FOREACH(zone, zones)
-                assert_se(timezone_is_valid(*zone));
+                assert_se(timezone_is_valid(*zone, LOG_ERR));
 }
 
 static void test_usec_add(void) {
index 93810d43d377ae3e6f75c690fcca1415db304522..6928bb9a971ff5b8e6aada5ec1a117e223a37a0a 100644 (file)
@@ -542,7 +542,7 @@ static int method_set_timezone(sd_bus_message *m, void *userdata, sd_bus_error *
         if (r < 0)
                 return r;
 
-        if (!timezone_is_valid(z))
+        if (!timezone_is_valid(z, LOG_DEBUG))
                 return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid time zone '%s'", z);
 
         r = free_and_strdup(&c->zone, z);