From 25501a5d8aacb3ab20daad761333e26fbb8822dd Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Fri, 2 Aug 2019 15:52:49 +0200 Subject: Improve sv_ev_roster_received() last activity check We don't need to do all the timing stuff if last activity is disabled anyways. --- src/event/server_events.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'src/event/server_events.c') diff --git a/src/event/server_events.c b/src/event/server_events.c index 14c0a11a..0bd5d5e8 100644 --- a/src/event/server_events.c +++ b/src/event/server_events.c @@ -153,35 +153,33 @@ sv_ev_roster_received(void) // send initial presence resource_presence_t conn_presence = accounts_get_login_presence(account_name); char *last_activity_str = accounts_get_last_activity(account_name); - if (last_activity_str) { - GDateTime *nowdt = g_date_time_new_now_utc(); + if (prefs_get_boolean(PREF_LASTACTIVITY) && last_activity_str) { GTimeVal lasttv; + GDateTime *nowdt = g_date_time_new_now_utc(); gboolean res = g_time_val_from_iso8601(last_activity_str, &lasttv); + if (res) { GDateTime *lastdt = g_date_time_new_from_timeval_utc(&lasttv); GTimeSpan diff_micros = g_date_time_difference(nowdt, lastdt); int diff_secs = (diff_micros / 1000) / 1000; - if (prefs_get_boolean(PREF_LASTACTIVITY)) { - connection_set_presence_msg(NULL); - cl_ev_presence_send(conn_presence, diff_secs); - } else { - connection_set_presence_msg(NULL); - cl_ev_presence_send(conn_presence, 0); - } + + connection_set_presence_msg(NULL); + cl_ev_presence_send(conn_presence, diff_secs); + g_date_time_unref(lastdt); } else { connection_set_presence_msg(NULL); cl_ev_presence_send(conn_presence, 0); } - - free(last_activity_str); g_date_time_unref(nowdt); } else { connection_set_presence_msg(NULL); cl_ev_presence_send(conn_presence, 0); } + free(last_activity_str); + const char *fulljid = connection_get_fulljid(); plugins_on_connect(account_name, fulljid); -- cgit 1.4.1-2-gfad0