The g_date_time_new_from_iso8601() was introduced with GLib v2.56. We
don't want to update our version dependency. Instead use our replacement
API.
---
src/service.c | 44 +++++++++-----------------------------------
1 file changed, 9 insertions(+), 35 deletions(-)
diff --git a/src/service.c b/src/service.c
index 7e1446b7cf3b..a6fc9638f70b 100644
--- a/src/service.c
+++ b/src/service.c
@@ -35,6 +35,8 @@
#include <connman/setting.h>
#include <connman/agent.h>
+#include "src/shared/util.h"
+
#include "connman.h"
#define CONNECT_TIMEOUT 120
@@ -84,7 +86,7 @@ struct connman_service {
bool hidden;
bool ignore;
bool autoconnect;
- GDateTime *modified;
+ struct timeval modified;
unsigned int order;
char *name;
char *passphrase;
@@ -378,31 +380,6 @@ static void set_split_routing(struct connman_service *service, bool
value)
service->order = 10;
}
-static void update_modified(struct connman_service *service)
-{
- GTimeZone *tz;
-
- if (service->modified)
- g_date_time_unref(service->modified);
-
- tz = g_time_zone_new_local();
- service->modified = g_date_time_new_now(tz);
- g_time_zone_unref(tz);
-}
-
-static void update_modified_from_iso8601(struct connman_service *service,
- char *str)
-{
- GTimeZone *tz;
-
- if (service->modified)
- g_date_time_unref(service->modified);
-
- tz = g_time_zone_new_local();
- service->modified = g_date_time_new_from_iso8601(str, tz);
- g_time_zone_unref(tz);
-}
-
int __connman_service_load_modifiable(struct connman_service *service)
{
GKeyFile *keyfile;
@@ -444,7 +421,7 @@ int __connman_service_load_modifiable(struct connman_service
*service)
str = g_key_file_get_string(keyfile,
service->identifier, "Modified", NULL);
if (str) {
- update_modified_from_iso8601(service, str);
+ util_iso8601_to_timeval(str, &service->modified);
g_free(str);
}
@@ -561,7 +538,7 @@ static int service_load(struct connman_service *service)
str = g_key_file_get_string(keyfile,
service->identifier, "Modified", NULL);
if (str) {
- update_modified_from_iso8601(service, str);
+ util_iso8601_to_timeval(str, &service->modified);
g_free(str);
}
@@ -728,7 +705,7 @@ static int service_save(struct connman_service *service)
break;
}
- str = g_date_time_format_iso8601(service->modified);
+ str = util_timeval_to_iso8601(&service->modified);
if (str) {
g_key_file_set_string(keyfile, service->identifier,
"Modified", str);
@@ -3962,7 +3939,7 @@ static void service_complete(struct connman_service *service)
if (service->connect_reason != CONNMAN_SERVICE_CONNECT_REASON_USER)
do_auto_connect(service, service->connect_reason);
- update_modified(service);
+ gettimeofday(&service->modified, NULL);
service_save(service);
}
@@ -4890,7 +4867,7 @@ static DBusMessage *move_service(DBusConnection *conn,
}
}
- update_modified(service);
+ gettimeofday(&service->modified, NULL);
service_save(service);
service_save(target);
@@ -5086,9 +5063,6 @@ static void service_free(gpointer user_data)
g_free(service->config_file);
g_free(service->config_entry);
- if (service->modified)
- g_date_time_unref(service->modified);
-
if (service->stats.timer)
g_timer_destroy(service->stats.timer);
if (service->stats_roaming.timer)
@@ -5975,7 +5949,7 @@ static int service_indicate_state(struct connman_service *service)
"WiFi.UseWPS", false);
}
- update_modified(service);
+ gettimeofday(&service->modified, NULL);
service_save(service);
domain_changed(service);
--
2.23.0