diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index ede549b4..16f25abd 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -4524,6 +4524,12 @@ cmd_lastactivity(ProfWin *window, const char *const command, gchar **args) { if ((g_strcmp0(args[0], "on") == 0) || (g_strcmp0(args[0], "off") == 0)) { _cmd_set_boolean_preference(args[0], command, "Last activity", PREF_LASTACTIVITY); + if (g_strcmp0(args[0], "on") == 0) { + caps_add_feature(XMPP_FEATURE_LASTACTIVITY); + } + if (g_strcmp0(args[0], "off") == 0) { + caps_remove_feature(XMPP_FEATURE_LASTACTIVITY); + } return TRUE; } diff --git a/src/xmpp/capabilities.c b/src/xmpp/capabilities.c index 17d60e36..6ca3a29e 100644 --- a/src/xmpp/capabilities.c +++ b/src/xmpp/capabilities.c @@ -105,8 +105,9 @@ caps_init(void) if (prefs_get_boolean(PREF_RECEIPTS_SEND)) { g_hash_table_add(prof_features, strdup(STANZA_NS_RECEIPTS)); } - g_hash_table_add(prof_features, strdup(STANZA_NS_LASTACTIVITY)); - + if (prefs_get_boolean(PREF_LASTACTIVITY)) { + g_hash_table_add(prof_features, strdup(STANZA_NS_LASTACTIVITY)); + } my_sha1 = NULL; } diff --git a/src/xmpp/xmpp.h b/src/xmpp/xmpp.h index 821abfd6..80245b2d 100644 --- a/src/xmpp/xmpp.h +++ b/src/xmpp/xmpp.h @@ -57,6 +57,7 @@ #define XMPP_FEATURE_BLOCKING "urn:xmpp:blocking" #define XMPP_FEATURE_RECEIPTS "urn:xmpp:receipts" +#define XMPP_FEATURE_LASTACTIVITY "jabber:iq:last" typedef enum { JABBER_CONNECTING,