Remove disco features added by plugins on unload

This commit is contained in:
James Booth
2016-08-11 23:20:59 +01:00
parent bb676cc0fc
commit a65403c54a
12 changed files with 91 additions and 18 deletions

View File

@@ -40,6 +40,7 @@
#include "common.h"
#include "config/files.h"
#include "config/preferences.h"
#include "event/client_events.h"
#include "plugins/callbacks.h"
#include "plugins/autocompleters.h"
#include "plugins/api.h"
@@ -207,6 +208,15 @@ plugins_unload(const char *const name)
#endif
prefs_remove_plugin(name);
g_hash_table_remove(plugins, name);
caps_reset_ver();
// resend presence to update server's disco info data for this client
if (connection_get_status() == JABBER_CONNECTED) {
char* account_name = session_get_account_name();
resource_presence_t last_presence = accounts_get_last_presence(account_name);
char *msg = connection_get_presence_msg();
cl_ev_presence_send(last_presence, msg, 0);
}
}
return TRUE;
}