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 | |
| parent | 549545b3c4c1f60eb977e1c16042aac6fe42736c (diff) | |
Added more chat.c sanity checks that were (embarassingly) missing so far.
| -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 ); | 
