diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2008-12-14 01:14:55 +0000 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2008-12-14 01:14:55 +0000 |
commit | 6d5eb723d73cabcda196189d70bbebc2761eacc3 (patch) | |
tree | 2078c07c5e6f92f4d43b654d67559aac36ddd0b3 /chat.c | |
parent | 549545b3c4c1f60eb977e1c16042aac6fe42736c (diff) |
Added more chat.c sanity checks that were (embarassingly) missing so far.
Diffstat (limited to 'chat.c')
-rw-r--r-- | chat.c | 17 |
1 files changed, 8 insertions, 9 deletions
@@ -30,14 +30,11 @@ struct chat *chat_add( irc_t *irc, account_t *acc, char *handle, char *channel ) struct chat *c, *l; set_t *s; - if( acc->prpl->chat_join == NULL ) - return NULL; - - if( !chat_chanok( channel ) ) - return NULL; - - if( chat_chancmp( channel, irc->channel ) == 0 ) + if( acc->prpl->chat_join == NULL || !chat_chanok( channel ) || + chat_chancmp( channel, irc->channel ) == 0 ) + { return NULL; + } for( c = irc->chatrooms; c; c = c->next ) { @@ -176,12 +173,14 @@ int chat_join( irc_t *irc, struct chat *c, const char *password ) { struct groupchat *gc; char *nick = set_getstr( &c->set, "nick" ); + + if( c->acc->ic == NULL || c->acc->prpl->chat_join == NULL ) + return 0; if( nick == NULL ) nick = irc->nick; - if( c->acc->prpl->chat_join && - ( gc = c->acc->prpl->chat_join( c->acc->ic, c->handle, nick, password ) ) ) + if( ( gc = c->acc->prpl->chat_join( c->acc->ic, c->handle, nick, password ) ) ) { g_free( gc->channel ); gc->channel = g_strdup( c->channel ); |