aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2008-12-14 01:14:55 +0000
committerWilmer van der Gaast <wilmer@gaast.net>2008-12-14 01:14:55 +0000
commit6d5eb723d73cabcda196189d70bbebc2761eacc3 (patch)
tree2078c07c5e6f92f4d43b654d67559aac36ddd0b3
parent549545b3c4c1f60eb977e1c16042aac6fe42736c (diff)
Added more chat.c sanity checks that were (embarassingly) missing so far.
-rw-r--r--chat.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/chat.c b/chat.c
index 9a880850..87c262b8 100644
--- a/chat.c
+++ b/chat.c
@@ -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 );