summaryrefslogtreecommitdiff
path: root/src/timeserver.c
diff options
context:
space:
mode:
authorAlok Barsode <alok.barsode@linux.intel.com>2012-04-05 13:20:13 +0300
committerPatrik Flykt <patrik.flykt@linux.intel.com>2012-04-05 18:54:49 +0300
commit7a1a8e658bf3fcba09efbb842fdf6c739a5cea67 (patch)
treeda2ad29fcebd10d7e9d1e46251fd291b2311149d /src/timeserver.c
parentd92d7610a4a0f40b112eadbbe826d5f394fed880 (diff)
downloadconnman-7a1a8e658bf3fcba09efbb842fdf6c739a5cea67.tar.gz
connman-7a1a8e658bf3fcba09efbb842fdf6c739a5cea67.tar.bz2
connman-7a1a8e658bf3fcba09efbb842fdf6c739a5cea67.zip
Replace older system timeserver values with new ones instead of appending
Fixes BMC#24997.
Diffstat (limited to 'src/timeserver.c')
-rw-r--r--src/timeserver.c93
1 files changed, 1 insertions, 92 deletions
diff --git a/src/timeserver.c b/src/timeserver.c
index d31801f0..08dd81b5 100644
--- a/src/timeserver.c
+++ b/src/timeserver.c
@@ -225,100 +225,9 @@ void __connman_timeserver_stop()
__connman_ntp_stop();
}
-int __connman_timeserver_system_append(const char *server)
+int __connman_timeserver_system_set(char **servers)
{
- int len;
- char **servers = NULL;
-
- if (server == NULL) {
- save_timeservers(servers);
- goto restart;
- }
-
- DBG("server %s", server);
-
- servers = load_timeservers();
-
- if (servers != NULL) {
- int i;
-
- for (i = 0; servers[i] != NULL; i++)
- if (g_strcmp0(servers[i], server) == 0) {
- g_strfreev(servers);
- return -EEXIST;
- }
-
- len = g_strv_length(servers);
- servers = g_try_renew(char *, servers, len + 2);
- } else {
- len = 0;
- servers = g_try_new0(char *, len + 2);
- }
-
- if (servers == NULL)
- return -ENOMEM;
-
- servers[len] = g_strdup(server);
- servers[len + 1] = NULL;
-
- save_timeservers(servers);
-
- g_strfreev(servers);
-restart:
- connman_timeserver_restart();
-
- return 0;
-}
-
-int __connman_timeserver_system_remove(const char *server)
-{
- char **servers;
- char **temp;
- int len, i, j;
-
- if (server == NULL)
- return -EINVAL;
-
- DBG("server %s", server);
-
- servers = load_timeservers();
-
- if (servers == NULL)
- return 0;
-
- len = g_strv_length(servers);
- if (len == 1) {
- if (g_strcmp0(servers[0], server) != 0) {
- g_strfreev(servers);
- return 0;
- }
-
- g_strfreev(servers);
- servers = NULL;
- save_timeservers(servers);
- return 0;
- }
-
- temp = g_try_new0(char *, len - 1);
- if (temp == NULL) {
- g_strfreev(servers);
- return -ENOMEM;
- }
-
- for (i = 0, j = 0; i < len; i++) {
- if (g_strcmp0(servers[i], server) != 0) {
- temp[j] = g_strdup(servers[i]);
- j++;
- }
- }
- temp[len - 1] = NULL;
-
- g_strfreev(servers);
- servers = g_strdupv(temp);
- g_strfreev(temp);
-
save_timeservers(servers);
- g_strfreev(servers);
connman_timeserver_restart();