Changeset 2288705 for irc.c


Ignore:
Timestamp:
2009-12-07T21:54:19Z (14 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
1c3008a
Parents:
aac4017 (diff), 36cf9fd (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merging head.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • irc.c

    raac4017 r2288705  
    3535GSList *irc_connection_list = NULL;
    3636
    37 static char *passchange( set_t *set, char *value )
     37static char *set_eval_password( set_t *set, char *value )
    3838{
    3939        irc_t *irc = set->data;
    4040       
    41         irc_setpass( irc, value );
    42         irc_usermsg( irc, "Password successfully changed" );
    43         return NULL;
     41        if( irc->status & USTATUS_IDENTIFIED && value )
     42        {
     43                irc_setpass( irc, value );
     44                return NULL;
     45        }
     46        else
     47        {
     48                return SET_INVALID;
     49        }
    4450}
    4551
     
    7884        struct sockaddr_storage sock;
    7985        socklen_t socklen = sizeof( sock );
     86        set_t *s;
    8087       
    8188        irc = g_new0( irc_t, 1 );
     
    137144        irc_connection_list = g_slist_append( irc_connection_list, irc );
    138145       
    139         set_add( &irc->set, "away_devoice", "true",  set_eval_away_devoice, irc );
    140         set_add( &irc->set, "auto_connect", "true", set_eval_bool, irc );
    141         set_add( &irc->set, "auto_reconnect", "false", set_eval_bool, irc );
    142         set_add( &irc->set, "auto_reconnect_delay", "5*3<900", set_eval_account_reconnect_delay, irc );
    143         set_add( &irc->set, "buddy_sendbuffer", "false", set_eval_bool, irc );
    144         set_add( &irc->set, "buddy_sendbuffer_delay", "200", set_eval_int, irc );
    145         set_add( &irc->set, "charset", "utf-8", set_eval_charset, irc );
    146         set_add( &irc->set, "debug", "false", set_eval_bool, irc );
    147         set_add( &irc->set, "default_target", "root", NULL, irc );
    148         set_add( &irc->set, "display_namechanges", "false", set_eval_bool, irc );
    149         set_add( &irc->set, "handle_unknown", "root", NULL, irc );
    150         set_add( &irc->set, "lcnicks", "true", set_eval_bool, irc );
    151         set_add( &irc->set, "ops", "both", set_eval_ops, irc );
    152         set_add( &irc->set, "password", NULL, passchange, irc );
    153         set_add( &irc->set, "private", "true", set_eval_bool, irc );
    154         set_add( &irc->set, "query_order", "lifo", NULL, irc );
    155         set_add( &irc->set, "root_nick", irc->mynick, set_eval_root_nick, irc );
    156         set_add( &irc->set, "save_on_quit", "true", set_eval_bool, irc );
    157         set_add( &irc->set, "simulate_netsplit", "true", set_eval_bool, irc );
    158         set_add( &irc->set, "strip_html", "true", NULL, irc );
    159         set_add( &irc->set, "to_char", ": ", set_eval_to_char, irc );
    160         set_add( &irc->set, "typing_notice", "false", set_eval_bool, irc );
     146        s = set_add( &irc->set, "away_devoice", "true",  set_eval_away_devoice, irc );
     147        s = set_add( &irc->set, "auto_connect", "true", set_eval_bool, irc );
     148        s = set_add( &irc->set, "auto_reconnect", "false", set_eval_bool, irc );
     149        s = set_add( &irc->set, "auto_reconnect_delay", "5*3<900", set_eval_account_reconnect_delay, irc );
     150        s = set_add( &irc->set, "buddy_sendbuffer", "false", set_eval_bool, irc );
     151        s = set_add( &irc->set, "buddy_sendbuffer_delay", "200", set_eval_int, irc );
     152        s = set_add( &irc->set, "charset", "utf-8", set_eval_charset, irc );
     153        s = set_add( &irc->set, "debug", "false", set_eval_bool, irc );
     154        s = set_add( &irc->set, "default_target", "root", NULL, irc );
     155        s = set_add( &irc->set, "display_namechanges", "false", set_eval_bool, irc );
     156        s = set_add( &irc->set, "handle_unknown", "root", NULL, irc );
     157        s = set_add( &irc->set, "lcnicks", "true", set_eval_bool, irc );
     158        s = set_add( &irc->set, "ops", "both", set_eval_ops, irc );
     159        s = set_add( &irc->set, "password", NULL, set_eval_password, irc );
     160        s->flags |= SET_NULL_OK;
     161        s = set_add( &irc->set, "private", "true", set_eval_bool, irc );
     162        s = set_add( &irc->set, "query_order", "lifo", NULL, irc );
     163        s = set_add( &irc->set, "root_nick", irc->mynick, set_eval_root_nick, irc );
     164        s = set_add( &irc->set, "save_on_quit", "true", set_eval_bool, irc );
     165        s = set_add( &irc->set, "simulate_netsplit", "true", set_eval_bool, irc );
     166        s = set_add( &irc->set, "strip_html", "true", NULL, irc );
     167        s = set_add( &irc->set, "to_char", ": ", set_eval_to_char, irc );
     168        s = set_add( &irc->set, "typing_notice", "false", set_eval_bool, irc );
    161169       
    162170        conf_loaddefaults( irc );
     
    232240       
    233241        if( irc->status & USTATUS_IDENTIFIED && set_getbool( &irc->set, "save_on_quit" ) )
    234                 if( storage_save( irc, TRUE ) != STORAGE_OK )
     242                if( storage_save( irc, NULL, TRUE ) != STORAGE_OK )
    235243                        irc_usermsg( irc, "Error while saving settings!" );
    236244       
     
    400408                        }
    401409                       
    402                         if( lines[i] )
    403                         {
    404                                 if( ( cmd = irc_parse_line( lines[i] ) ) == NULL )
    405                                         continue;
     410                        if( lines[i] && ( cmd = irc_parse_line( lines[i] ) ) )
     411                        {
    406412                                irc_exec( irc, cmd );
    407413                                g_free( cmd );
     
    478484        if( line[0] == ':' )
    479485        {
    480                 for( i = 0; line[i] != ' '; i ++ );
     486                for( i = 0; line[i] && line[i] != ' '; i ++ );
    481487                line = line + i;
    482488        }
     
    774780        irc_reply( irc,   3, ":%s", IRCD_INFO );
    775781        irc_reply( irc,   4, "%s %s %s %s", irc->myhost, BITLBEE_VERSION, UMODES UMODES_PRIV, CMODES );
    776         irc_reply( irc,   5, "PREFIX=(ov)@+ CHANTYPES=#& CHANMODES=,,,%s NICKLEN=%d NETWORK=BitlBee CASEMAPPING=rfc1459 MAXTARGETS=1 WATCH=128 :are supported by this server", CMODES, MAX_NICK_LENGTH - 1 );
     782        irc_reply( irc,   5, "PREFIX=(ov)@+ CHANTYPES=%s CHANMODES=,,,%s NICKLEN=%d NETWORK=BitlBee "
     783                             "CASEMAPPING=rfc1459 MAXTARGETS=1 WATCH=128 :are supported by this server",
     784                             CTYPES, CMODES, MAX_NICK_LENGTH - 1 );
    777785        irc_motd( irc );
    778786        irc->umode[0] = '\0';
     
    10151023        user_t *u = NULL;
    10161024       
    1017         if( *nick == '#' || *nick == '&' )
     1025        if( strchr( CTYPES, *nick ) )
    10181026        {
    10191027                if( !( c = irc_chat_by_channel( irc, nick ) ) )
Note: See TracChangeset for help on using the changeset viewer.