diff options
Diffstat (limited to 'src/osmo-bsc/osmo_bsc_ctrl.c')
-rw-r--r-- | src/osmo-bsc/osmo_bsc_ctrl.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/osmo-bsc/osmo_bsc_ctrl.c b/src/osmo-bsc/osmo_bsc_ctrl.c index a4a9a365f..80699f877 100644 --- a/src/osmo-bsc/osmo_bsc_ctrl.c +++ b/src/osmo-bsc/osmo_bsc_ctrl.c @@ -512,8 +512,9 @@ static int get_net_timezone(struct ctrl_cmd *cmd, void *data) static int set_net_timezone(struct ctrl_cmd *cmd, void *data) { char *saveptr, *hourstr, *minstr, *dststr, *tmp = 0; - int override; + int override = 0; struct gsm_network *net = (struct gsm_network*)cmd->node; + struct gsm_tz *tz = &net->tz; tmp = talloc_strdup(cmd, cmd->value); if (!tmp) @@ -523,19 +524,17 @@ static int set_net_timezone(struct ctrl_cmd *cmd, void *data) minstr = strtok_r(NULL, ",", &saveptr); dststr = strtok_r(NULL, ",", &saveptr); - override = 0; - - if (hourstr != NULL) + if (hourstr != NULL) { override = strcasecmp(hourstr, "off") != 0; + if (override) { + tz->hr = atol(hourstr); + tz->mn = minstr ? atol(minstr) : 0; + tz->dst = dststr ? atol(dststr) : 0; + } + } - struct gsm_tz *tz = &net->tz; tz->override = override; - if (override) { - tz->hr = hourstr ? atol(hourstr) : 0; - tz->mn = minstr ? atol(minstr) : 0; - tz->dst = dststr ? atol(dststr) : 0; - } talloc_free(tmp); tmp = NULL; |