diff options
author | Michael Vetter <jubalh@iodoru.org> | 2019-08-02 15:52:49 +0200 |
---|---|---|
committer | Michael Vetter <jubalh@iodoru.org> | 2019-08-02 15:52:49 +0200 |
commit | 25501a5d8aacb3ab20daad761333e26fbb8822dd (patch) | |
tree | 5f3c5bb366327470212ef630023781136a55a672 /src/event/server_events.c | |
parent | 5d711639b060eb0454fee69c5f8e5ffcc27f492f (diff) | |
download | profani-tty-25501a5d8aacb3ab20daad761333e26fbb8822dd.tar.gz |
Improve sv_ev_roster_received() last activity check
We don't need to do all the timing stuff if last activity is disabled anyways.
Diffstat (limited to 'src/event/server_events.c')
-rw-r--r-- | src/event/server_events.c | 20 |
1 files changed, 9 insertions, 11 deletions
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); |