diff options
Diffstat (limited to 'protocols')
-rw-r--r-- | protocols/jabber/jabber.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/protocols/jabber/jabber.c b/protocols/jabber/jabber.c index e6f38e26..2655d89e 100644 --- a/protocols/jabber/jabber.c +++ b/protocols/jabber/jabber.c @@ -459,7 +459,7 @@ static struct groupchat *jabber_chat_join_( struct im_connection *ic, const char else if( jabber_chat_by_jid( ic, room ) ) imcb_error( ic, "Already present in chat `%s'", room ); else - return jabber_chat_join( ic, room, nick, password ); + return jabber_chat_join( ic, room, nick, set_getstr( sets, "password" ) ); return NULL; } @@ -551,12 +551,24 @@ static int jabber_send_typing( struct im_connection *ic, char *who, int typing ) return 1; } +void jabber_chat_add_settings( account_t *acc, set_t **head ) +{ + /* Meh. Stupid room passwords. Not trying to obfuscate/hide + them from the user for now. */ + set_add( head, "password", NULL, NULL, NULL ); +} + +void jabber_chat_free_settings( account_t *acc, set_t **head ) +{ + set_del( head, "password" ); +} + void jabber_initmodule() { struct prpl *ret = g_new0( struct prpl, 1 ); ret->name = "jabber"; - ret->mms = 0; /* no limit */ + ret->mms = 0; /* no limit */ ret->login = jabber_login; ret->init = jabber_init; ret->logout = jabber_logout; @@ -572,6 +584,8 @@ void jabber_initmodule() ret->chat_invite = jabber_chat_invite_; ret->chat_leave = jabber_chat_leave_; ret->chat_join = jabber_chat_join_; + ret->chat_add_settings = jabber_chat_add_settings; + ret->chat_free_settings = jabber_chat_free_settings; ret->keepalive = jabber_keepalive; ret->send_typing = jabber_send_typing; ret->handle_cmp = g_strcasecmp; |