Added /disconnect command

This commit is contained in:
James Booth
2012-10-27 18:12:04 +01:00
parent 852112cda8
commit 28d388319a
4 changed files with 41 additions and 2 deletions

View File

@@ -65,6 +65,7 @@ static gboolean _cmd_about(const char * const inp, struct cmd_help_t help);
static gboolean _cmd_prefs(const char * const inp, struct cmd_help_t help);
static gboolean _cmd_who(const char * const inp, struct cmd_help_t help);
static gboolean _cmd_connect(const char * const inp, struct cmd_help_t help);
static gboolean _cmd_disconnect(const char * const inp, struct cmd_help_t help);
static gboolean _cmd_msg(const char * const inp, struct cmd_help_t help);
static gboolean _cmd_tiny(const char * const inp, struct cmd_help_t help);
static gboolean _cmd_close(const char * const inp, struct cmd_help_t help);
@@ -124,6 +125,15 @@ static struct cmd_t main_commands[] =
"Example: /connect myuser@gmail.com",
NULL } } },
{ "/disconnect",
_cmd_disconnect,
{ "/disconnect", "Logout of current jabber session.",
{ "/disconnect",
"------------------",
"Disconnect from the current jabber session.",
"See the /connect command for connecting again.",
NULL } } },
{ "/prefs",
_cmd_prefs,
{ "/prefs", "Show current preferences.",
@@ -564,6 +574,27 @@ _cmd_connect(const char * const inp, struct cmd_help_t help)
return result;
}
static gboolean
_cmd_disconnect(const char * const inp, struct cmd_help_t help)
{
char *jid = strdup(jabber_get_jid());
gboolean wait_response = jabber_disconnect();
if (wait_response) {
while (jabber_get_connection_status() == JABBER_DISCONNECTING) {
jabber_process_events();
}
jabber_free_resources();
}
contact_list_clear();
jabber_restart();
cons_show("%s logged out successfully.", jid);
free(jid);
return TRUE;
}
static gboolean
_cmd_quit(const char * const inp, struct cmd_help_t help)
{