Changes in irc.c [0383943:b0a33a5]
Legend:
- Unmodified
- Added
- Removed
-
irc.c
r0383943 rb0a33a5 33 33 GSList *irc_connection_list = NULL; 34 34 35 static char *passchange( set_t *set, char *value ) 36 { 37 irc_t *irc = set->data; 38 39 irc_setpass( irc, value ); 40 irc_usermsg( irc, "Password successfully changed" ); 41 return NULL; 35 static char *passchange (irc_t *irc, void *set, char *value) 36 { 37 irc_setpass (irc, value); 38 return (NULL); 42 39 } 43 40 … … 126 123 irc_connection_list = g_slist_append( irc_connection_list, irc ); 127 124 128 set_add( &irc->set, "away_devoice", "true", set_eval_away_devoice, irc);129 set_add( &irc->set, "auto_connect", "true", set_eval_bool, irc);130 set_add( &irc->set, "auto_reconnect", "false", set_eval_bool, irc);131 set_add( &irc->set, "auto_reconnect_delay", "300", set_eval_int, irc);132 set_add( &irc->set, "buddy_sendbuffer", "false", set_eval_bool, irc);133 set_add( &irc->set, "buddy_sendbuffer_delay", "200", set_eval_int, irc);134 set_add( &irc->set, "charset", "iso8859-1", set_eval_charset, irc);135 set_add( &irc->set, "debug", "false", set_eval_bool, irc);136 set_add( &irc->set, "default_target", "root", NULL, irc);137 set_add( &irc->set, "display_namechanges", "false", set_eval_bool, irc);138 set_add( &irc->set, "handle_unknown", "root", NULL, irc);139 set_add( &irc->set, "lcnicks", "true", set_eval_bool, irc);140 set_add( &irc->set, "ops", "both", set_eval_ops, irc);141 set_add( &irc->set, "password", NULL, passchange, irc);142 set_add( &irc->set, "private", "true", set_eval_bool, irc);143 set_add( &irc->set, "query_order", "lifo", NULL, irc);144 set_add( &irc->set, "save_on_quit", "true", set_eval_bool, irc);145 set_add( &irc->set, "strip_html", "true", NULL, irc);146 set_add( &irc->set, "to_char", ": ", set_eval_to_char, irc);147 set_add( &irc->set, "typing_notice", "false", set_eval_bool, irc);125 set_add( irc, "away_devoice", "true", set_eval_away_devoice ); 126 set_add( irc, "auto_connect", "true", set_eval_bool ); 127 set_add( irc, "auto_reconnect", "false", set_eval_bool ); 128 set_add( irc, "auto_reconnect_delay", "300", set_eval_int ); 129 set_add( irc, "buddy_sendbuffer", "false", set_eval_bool ); 130 set_add( irc, "buddy_sendbuffer_delay", "200", set_eval_int ); 131 set_add( irc, "charset", "iso8859-1", set_eval_charset ); 132 set_add( irc, "debug", "false", set_eval_bool ); 133 set_add( irc, "default_target", "root", NULL ); 134 set_add( irc, "display_namechanges", "false", set_eval_bool ); 135 set_add( irc, "handle_unknown", "root", NULL ); 136 set_add( irc, "lcnicks", "true", set_eval_bool ); 137 set_add( irc, "ops", "both", set_eval_ops ); 138 set_add( irc, "private", "true", set_eval_bool ); 139 set_add( irc, "query_order", "lifo", NULL ); 140 set_add( irc, "save_on_quit", "true", set_eval_bool ); 141 set_add( irc, "strip_html", "true", NULL ); 142 set_add( irc, "to_char", ": ", set_eval_to_char ); 143 set_add( irc, "typing_notice", "false", set_eval_bool ); 144 set_add( irc, "password", NULL, passchange); 148 145 149 146 conf_loaddefaults( irc ); … … 209 206 void irc_free(irc_t * irc) 210 207 { 211 account_t *account ;208 account_t *account, *accounttmp; 212 209 user_t *user, *usertmp; 210 nick_t *nick, *nicktmp; 213 211 help_t *helpnode, *helpnodetmp; 212 set_t *setnode, *setnodetmp; 214 213 215 214 log_message( LOGLVL_INFO, "Destroying connection with fd %d", irc->fd ); 216 215 217 if( irc->status & USTATUS_IDENTIFIED && set_get bool( &irc->set, "save_on_quit" ) )216 if( irc->status & USTATUS_IDENTIFIED && set_getint( irc, "save_on_quit" ) ) 218 217 if( storage_save( irc, TRUE ) != STORAGE_OK ) 219 218 irc_usermsg( irc, "Error while saving settings!" ); … … 255 254 query_del(irc, irc->queries); 256 255 257 while (irc->accounts) 258 account_del(irc, irc->accounts); 259 260 while (irc->set) 261 set_del(&irc->set, irc->set->key); 256 if (irc->accounts != NULL) { 257 account = irc->accounts; 258 while (account != NULL) { 259 g_free(account->user); 260 g_free(account->pass); 261 g_free(account->server); 262 accounttmp = account; 263 account = account->next; 264 g_free(accounttmp); 265 } 266 } 262 267 263 268 if (irc->users != NULL) { … … 284 289 g_hash_table_destroy(irc->watches); 285 290 291 if (irc->nicks != NULL) { 292 nick = irc->nicks; 293 while (nick != NULL) { 294 g_free(nick->nick); 295 g_free(nick->handle); 296 297 nicktmp = nick; 298 nick = nick->next; 299 g_free(nicktmp); 300 } 301 } 286 302 if (irc->help != NULL) { 287 303 helpnode = irc->help; … … 294 310 } 295 311 } 312 if (irc->set != NULL) { 313 setnode = irc->set; 314 while (setnode != NULL) { 315 g_free(setnode->key); 316 g_free(setnode->def); 317 g_free(setnode->value); 318 319 setnodetmp = setnode; 320 setnode = setnode->next; 321 g_free(setnodetmp); 322 } 323 } 296 324 g_free(irc); 297 325 … … 304 332 void irc_setpass (irc_t *irc, const char *pass) 305 333 { 306 g_free (irc->password);334 if (irc->password) g_free (irc->password); 307 335 308 336 if (pass) { 309 337 irc->password = g_strdup (pass); 338 irc_usermsg (irc, "Password successfully changed"); 310 339 } else { 311 340 irc->password = NULL; … … 338 367 } 339 368 340 if( ( cs = set_getstr( &irc->set, "charset" ) ) && ( g_strcasecmp( cs, "utf-8" ) != 0 ) )369 if( ( cs = set_getstr( irc, "charset" ) ) && ( g_strcasecmp( cs, "utf-8" ) != 0 ) ) 341 370 { 342 371 conv[IRC_MAX_LINE] = 0; … … 558 587 559 588 strip_newlines( line ); 560 if( ( cs = set_getstr( &irc->set, "charset" ) ) && ( g_strcasecmp( cs, "utf-8" ) != 0 ) )589 if( ( cs = set_getstr( irc, "charset" ) ) && ( g_strcasecmp( cs, "utf-8" ) != 0 ) ) 561 590 { 562 591 char conv[IRC_MAX_LINE+1]; … … 626 655 char namelist[385] = ""; 627 656 struct conversation *c = NULL; 628 char *ops = set_getstr( &irc->set, "ops" );657 char *ops = set_getstr( irc, "ops" ); 629 658 630 659 /* RFCs say there is no error reply allowed on NAMES, so when the … … 641 670 } 642 671 643 if( u->gc && !u->away && set_get bool( &irc->set, "away_devoice" ) )672 if( u->gc && !u->away && set_getint( irc, "away_devoice" ) ) 644 673 strcat( namelist, "+" ); 645 674 else if( ( strcmp( u->nick, irc->mynick ) == 0 && ( strcmp( ops, "root" ) == 0 || strcmp( ops, "both" ) == 0 ) ) || … … 901 930 { 902 931 char *nick, *s; 903 char reason[ 128];932 char reason[64]; 904 933 905 934 if( u->gc && u->gc->flags & OPT_LOGGING_OUT ) 906 935 { 907 if( u->gc-> acc->server)936 if( u->gc->user->proto_opt[0][0] ) 908 937 g_snprintf( reason, sizeof( reason ), "%s %s", irc->myhost, 909 u->gc-> acc->server);938 u->gc->user->proto_opt[0] ); 910 939 else if( ( s = strchr( u->gc->username, '@' ) ) ) 911 940 g_snprintf( reason, sizeof( reason ), "%s %s", irc->myhost, … … 913 942 else 914 943 g_snprintf( reason, sizeof( reason ), "%s %s.%s", irc->myhost, 915 u->gc-> acc->prpl->name, irc->myhost );944 u->gc->prpl->name, irc->myhost ); 916 945 917 946 /* proto_opt might contain garbage after the : */ … … 989 1018 else if( g_strncasecmp( s + 1, "TYPING", 6 ) == 0 ) 990 1019 { 991 if( u && u->gc && u->gc-> acc->prpl->send_typing && strlen( s ) >= 10 )1020 if( u && u->gc && u->gc->prpl->send_typing && strlen( s ) >= 10 ) 992 1021 { 993 1022 time_t current_typing_notice = time( NULL ); … … 995 1024 if( current_typing_notice - u->last_typing_notice >= 5 ) 996 1025 { 997 u->gc-> acc->prpl->send_typing( u->gc, u->handle, s[8] == '1' );1026 u->gc->prpl->send_typing( u->gc, u->handle, s[8] == '1' ); 998 1027 u->last_typing_notice = current_typing_notice; 999 1028 } … … 1028 1057 } 1029 1058 } 1030 else if( c && c->gc && c->gc-> acc && c->gc->acc->prpl )1059 else if( c && c->gc && c->gc->prpl ) 1031 1060 { 1032 1061 return( bim_chat_msg( c->gc, c->id, s ) ); … … 1060 1089 if( !u || !u->gc ) return; 1061 1090 1062 if( set_get bool( &irc->set, "buddy_sendbuffer" ) && set_getint( &irc->set, "buddy_sendbuffer_delay" ) > 0 )1091 if( set_getint( irc, "buddy_sendbuffer" ) && set_getint( irc, "buddy_sendbuffer_delay" ) > 0 ) 1063 1092 { 1064 1093 int delay; … … 1087 1116 strcat( u->sendbuf, "\n" ); 1088 1117 1089 delay = set_getint( &irc->set, "buddy_sendbuffer_delay" );1118 delay = set_getint( irc, "buddy_sendbuffer_delay" ); 1090 1119 if( delay <= 5 ) 1091 1120 delay *= 1000; … … 1152 1181 int len = strlen( irc->nick) + 3; 1153 1182 prefix = g_new (char, len ); 1154 g_snprintf( prefix, len, "%s%s", irc->nick, set_getstr( &irc->set, "to_char" ) );1183 g_snprintf( prefix, len, "%s%s", irc->nick, set_getstr( irc, "to_char" ) ); 1155 1184 prefix[len-1] = 0; 1156 1185 }
Note: See TracChangeset
for help on using the changeset viewer.