*
* Append time server server address to current list
*/
-int connman_timeserver_append(char *server)
+int connman_timeserver_append(const char *server)
{
GSList *list;
for (list = driver_list; list; list = list->next) {
struct connman_timeserver_driver *driver = list->data;
+ char *new_server;
if (driver->append == NULL)
continue;
+ new_server = g_strdup(server);
+ if (new_server == NULL)
+ return -ENOMEM;
+
if (driver->append(server) == 0) {
- g_hash_table_insert(server_hash, server, driver);
+ g_hash_table_insert(server_hash, new_server, driver);
return 0;
}
}
*
* Remover time server server address from current list
*/
-int connman_timeserver_remove(char *server)
+int connman_timeserver_remove(const char *server)
{
struct connman_timeserver_driver *driver;
if (driver == NULL)
return -EINVAL;
+ g_hash_table_remove(server_hash, server);
+
if (driver->remove == NULL)
return -ENOENT;
DBG("");
server_hash = g_hash_table_new_full(g_str_hash, g_str_equal,
- NULL, NULL);
+ g_free, NULL);
return 0;
}