Changes in / [22bf64e:703f0f7]
- Files:
-
- 1 added
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
account.c
r22bf64e r703f0f7 28 28 #include "account.h" 29 29 30 account_t *account_add( irc_t *irc, int protocol, char *user, char *pass )30 account_t *account_add( irc_t *irc, struct prpl *prpl, char *user, char *pass ) 31 31 { 32 32 account_t *a; … … 42 42 } 43 43 44 a->pr otocol = protocol;44 a->prpl = prpl; 45 45 a->user = g_strdup( user ); 46 46 a->pass = g_strdup( pass ); … … 66 66 for( a = irc->accounts; a; a = a->next ) 67 67 { 68 if( g_strcasecmp( id, proto_name[a->protocol]) == 0 )68 if( g_strcasecmp( id, a->prpl->name ) == 0 ) 69 69 { 70 70 if( !ret ) … … 124 124 } 125 125 126 if ( proto_prpl[a->protocol]->login== NULL )126 if (a->prpl == NULL ) 127 127 { 128 irc_usermsg( irc, "Support for protocol %s is not included in this BitlBee", proto_name[a->protocol]);128 irc_usermsg( irc, "Support for protocol %s is not included in this BitlBee", a->prpl->name ); 129 129 return; 130 130 } … … 134 134 u = g_new0 ( struct aim_user, 1 ); 135 135 u->irc = irc; 136 u->pr otocol = a->protocol;136 u->prpl = a->prpl; 137 137 strncpy( u->username, a->user, sizeof( u->username ) - 1 ); 138 138 strncpy( u->password, a->pass, sizeof( u->password ) - 1 ); … … 142 142 a->reconnect = 0; 143 143 144 proto_prpl[a->protocol]->login( u );144 a->prpl->login( u ); 145 145 } 146 146 -
account.h
r22bf64e r703f0f7 29 29 typedef struct account 30 30 { 31 int protocol;31 struct prpl *prpl; 32 32 char *user; 33 33 char *pass; … … 41 41 } account_t; 42 42 43 account_t *account_add( irc_t *irc, int protocol, char *user, char *pass );43 account_t *account_add( irc_t *irc, struct prpl *prpl, char *user, char *pass ); 44 44 account_t *account_get( irc_t *irc, char *id ); 45 45 void account_del( irc_t *irc, account_t *acc ); -
commands.c
r22bf64e r703f0f7 166 166 if( g_strcasecmp( cmd[1], "add" ) == 0 ) 167 167 { 168 int prot;168 struct prpl *prpl; 169 169 170 170 if( cmd[2] == NULL || cmd[3] == NULL || cmd[4] == NULL ) … … 174 174 } 175 175 176 for( prot = 0; prot < PROTO_MAX; prot ++ ) 177 if( proto_name[prot] && *proto_name[prot] && g_strcasecmp( proto_name[prot], cmd[2] ) == 0 ) 178 break; 179 180 if( ( prot == PROTO_MAX ) || ( proto_prpl[prot] == NULL ) ) 176 prpl = find_protocol(cmd[2]); 177 178 if( prpl == NULL ) 181 179 { 182 180 irc_usermsg( irc, "Unknown protocol" ); … … 184 182 } 185 183 186 if( prot == PROTO_OSCAR && cmd[5] == NULL ) 187 { 188 irc_usermsg( irc, "Not enough parameters" ); 189 return( 0 ); 190 } 191 192 a = account_add( irc, prot, cmd[3], cmd[4] ); 184 a = account_add( irc, prpl, cmd[3], cmd[4] ); 193 185 194 186 if( cmd[5] ) … … 234 226 con = ""; 235 227 236 if( a->protocol == PROTO_OSCAR || a->protocol == PROTO_ICQ || a->protocol == PROTO_TOC ) 237 irc_usermsg( irc, "%2d. OSCAR, %s on %s%s", i, a->user, a->server, con ); 238 else 239 irc_usermsg( irc, "%2d. %s, %s%s", i, proto_name[a->protocol], a->user, con ); 228 irc_usermsg( irc, "%2d. %s, %s%s", i, a->prpl->name, a->user, con ); 240 229 241 230 i ++; … … 354 343 else 355 344 { 356 nick_set( irc, cmd[2], a->gc->pr otocol, cmd[3] );345 nick_set( irc, cmd[2], a->gc->prpl, cmd[3] ); 357 346 } 358 347 } … … 435 424 else if( u->send_handler == buddy_send_handler ) 436 425 { 437 nick_set( irc, u->handle, u->gc->pr otocol, cmd[2] );426 nick_set( irc, u->handle, u->gc->prpl, cmd[2] ); 438 427 } 439 428 … … 646 635 if( online == 1 ) for( u = irc->users; u; u = u->next ) if( u->gc && u->online && !u->away ) 647 636 { 648 g_snprintf( s, 63, "%s@%s (%s)", u->user, u->host, proto_name[u->gc->user->protocol]);637 g_snprintf( s, 63, "%s@%s (%s)", u->user, u->host, u->gc->user->prpl->name ); 649 638 irc_usermsg( irc, "%-16.16s %-40.40s %s", u->nick, s, "Online" ); 650 639 n_online ++; … … 653 642 if( away == 1 ) for( u = irc->users; u; u = u->next ) if( u->gc && u->online && u->away ) 654 643 { 655 g_snprintf( s, 63, "%s@%s (%s)", u->user, u->host, proto_name[u->gc->user->protocol]);644 g_snprintf( s, 63, "%s@%s (%s)", u->user, u->host, u->gc->user->prpl->name ); 656 645 irc_usermsg( irc, "%-16.16s %-40.40s %s", u->nick, s, u->away ); 657 646 n_away ++; … … 660 649 if( offline == 1 ) for( u = irc->users; u; u = u->next ) if( u->gc && !u->online ) 661 650 { 662 g_snprintf( s, 63, "%s@%s (%s)", u->user, u->host, proto_name[u->gc->user->protocol]);651 g_snprintf( s, 63, "%s@%s (%s)", u->user, u->host, u->gc->user->prpl->name ); 663 652 irc_usermsg( irc, "%-16.16s %-40.40s %s", u->nick, s, "Offline" ); 664 653 n_offline ++; … … 721 710 for( num = 0; q; q = q->next, num ++ ) 722 711 if( q->gc ) /* Not necessary yet, but it might come later */ 723 irc_usermsg( irc, "%d, %s(%s): %s", num, proto_name[q->gc->protocol], q->gc->username, q->question );712 irc_usermsg( irc, "%d, %s(%s): %s", num, q->gc->prpl->name, q->gc->username, q->question ); 724 713 else 725 714 irc_usermsg( irc, "%d, BitlBee: %s", num, q->question ); … … 769 758 for( n = gc->irc->nicks; n; n = n->next ) 770 759 { 771 if( n->proto == gc->pr otocol && !user_findhandle( gc, n->handle ) )760 if( n->proto == gc->prpl && !user_findhandle( gc, n->handle ) ) 772 761 { 773 762 gc->prpl->add_buddy( gc, n->handle ); -
configure
r22bf64e r703f0f7 14 14 datadir='$prefix/share/bitlbee/' 15 15 config='/var/lib/bitlbee/' 16 plugindir='$prefix/lib/bitlbee' 16 17 17 18 msn=1 … … 45 46 --mandir=... $mandir 46 47 --datadir=... $datadir 48 --plugindir=... $plugindir 47 49 --config=... $config 48 50 … … 72 74 datadir=`eval echo "$datadir/" | sed 's/\/\{1,\}/\//g'` 73 75 config=`eval echo "$config/" | sed 's/\/\{1,\}/\//g'` 76 plugindir=`eval echo "$plugindir/" | sed 's/\/\{1,\}/\//g'` 74 77 75 78 cat<<EOF>Makefile.settings … … 80 83 MANDIR=$mandir 81 84 DATADIR=$datadir 85 PLUGINDIR=$plugindir 82 86 CONFIG=$config 83 87 … … 100 104 #define ETCDIR "$etcdir" 101 105 #define VARDIR "$datadir" 106 #define PLUGINDIR "$plugindir" 102 107 #define ARCH "$arch" 103 108 #define CPU "$cpu" … … 142 147 if type pkg-config > /dev/null 2>/dev/null && pkg-config glib-2.0; then 143 148 cat<<EOF>>Makefile.settings 144 EFLAGS+=`pkg-config --libs glib-2.0 `145 CFLAGS+=`pkg-config --cflags glib-2.0 `149 EFLAGS+=`pkg-config --libs glib-2.0 gmodule-2.0` 150 CFLAGS+=`pkg-config --cflags glib-2.0 gmodule-2.0` 146 151 EOF 147 152 echo '#define GLIB2' >> config.h -
irc.c
r22bf64e r703f0f7 1186 1186 if( u->gc ) 1187 1187 irc_reply( irc, 312, "%s %s.%s :%s network", u->nick, u->gc->user->username, 1188 *u->gc->user->proto_opt[0] ? u->gc->user->proto_opt[0] : "", proto_name[u->gc->user->protocol]);1188 *u->gc->user->proto_opt[0] ? u->gc->user->proto_opt[0] : "", u->gc->prpl->name ); 1189 1189 else 1190 1190 irc_reply( irc, 312, "%s %s :%s", u->nick, irc->myhost, IRCD_INFO ); -
nick.c
r22bf64e r703f0f7 27 27 #include "bitlbee.h" 28 28 29 void nick_set( irc_t *irc, const char *handle, intproto, const char *nick )29 void nick_set( irc_t *irc, const char *handle, struct prpl *proto, const char *nick ) 30 30 { 31 31 nick_t *m = NULL, *n = irc->nicks; … … 56 56 } 57 57 58 char *nick_get( irc_t *irc, const char *handle, intproto, const char *realname )58 char *nick_get( irc_t *irc, const char *handle, struct prpl *proto, const char *realname ) 59 59 { 60 60 static char nick[MAX_NICK_LENGTH+1]; -
nick.h
r22bf64e r703f0f7 27 27 { 28 28 char *handle; 29 intproto;29 struct prpl *proto; 30 30 char *nick; 31 31 struct __NICK *next; 32 32 } nick_t; 33 33 34 void nick_set( irc_t *irc, const char *handle, intproto, const char *nick );35 char *nick_get( irc_t *irc, const char *handle, intproto, const char *realname );34 void nick_set( irc_t *irc, const char *handle, struct prpl *proto, const char *nick ); 35 char *nick_get( irc_t *irc, const char *handle, struct prpl *proto, const char *realname ); 36 36 void nick_del( irc_t *irc, const char *nick ); 37 37 void nick_strip( char *nick ); -
protocols/jabber/jabber.c
r22bf64e r703f0f7 155 155 #define JCS_CLOSED 3 /* closed */ 156 156 157 158 static char *jabber_name()159 {160 return "Jabber";161 }162 157 163 158 #define STATE_EVT(arg) if(gjc->on_state) { (gjc->on_state)(gjc, (arg) ); } … … 2368 2363 } 2369 2364 2370 static struct prpl *my_protocol = NULL; 2371 2372 void jabber_init(struct prpl *ret) 2373 { 2365 2366 void jabber_init() 2367 { 2368 struct prpl *ret = g_new0(struct prpl, 1); 2369 2374 2370 /* the NULL's aren't required but they're nice to have */ 2375 ret->protocol = PROTO_JABBER; 2376 ret->name = jabber_name; 2371 ret->name = "jabber"; 2377 2372 ret->away_states = jabber_away_states; 2378 2373 ret->actions = jabber_actions; … … 2398 2393 ret->cmp_buddynames = g_strcasecmp; 2399 2394 2400 my_protocol = ret;2401 } 2395 register_protocol (ret); 2396 } -
protocols/msn/msn.c
r22bf64e r703f0f7 26 26 #include "nogaim.h" 27 27 #include "msn.h" 28 29 static struct prpl *my_protocol = NULL;30 28 31 29 static void msn_login( struct aim_user *acct ) … … 375 373 } 376 374 377 void msn_init(struct prpl *ret) 378 { 379 ret->protocol = PROTO_MSN; 375 void msn_init() 376 { 377 struct prpl *ret = g_new0(struct prpl, 1); 378 ret->name = "msn"; 380 379 ret->login = msn_login; 381 380 ret->close = msn_close; … … 400 399 ret->cmp_buddynames = g_strcasecmp; 401 400 402 my_protocol = ret;403 } 401 register_protocol(ret); 402 } -
protocols/nogaim.c
r22bf64e r703f0f7 39 39 #include <iconv.h> 40 40 41 struct prpl *proto_prpl[PROTO_MAX];42 char proto_name[PROTO_MAX][8] = { "TOC", "OSCAR", "YAHOO", "ICQ", "MSN", "", "", "", "JABBER", "", "", "", "", "", "", "" };43 44 41 static char *proto_away_alias[7][5] = 45 42 { … … 58 55 GSList *connections; 59 56 57 #ifdef WITH_PLUGINS 58 gboolean load_plugin(char *path) 59 { 60 void (*init_function) (void); 61 62 GModule *mod = g_module_open(path, G_MODULE_BIND_LAZY); 63 64 if(!mod) { 65 log_message(LOGLVL_ERROR, "Can't find `%s', not loading", path); 66 return FALSE; 67 } 68 69 if(!g_module_symbol(mod,"init_plugin",(gpointer *) &init_function)) { 70 log_message(LOGLVL_WARNING, "Can't find function `init_plugin' in `%s'\n", path); 71 return FALSE; 72 } 73 74 init_function(); 75 76 return TRUE; 77 } 78 79 void load_plugins(void) 80 { 81 GDir *dir; 82 GError *error = NULL; 83 84 dir = g_dir_open(PLUGINDIR, 0, &error); 85 86 if (dir) { 87 const gchar *entry; 88 char *path; 89 90 while ((entry = g_dir_read_name(dir))) { 91 path = g_build_filename(PLUGINDIR, entry, NULL); 92 if(!path) { 93 log_message(LOGLVL_WARNING, "Can't build path for %s\n", entry); 94 continue; 95 } 96 97 load_plugin(path); 98 99 g_free(path); 100 } 101 102 g_dir_close(dir); 103 } 104 } 105 #endif 60 106 61 107 /* nogaim.c */ 62 108 109 GList *protocols = NULL; 110 111 void register_protocol (struct prpl *p) 112 { 113 protocols = g_list_append(protocols, p); 114 } 115 116 117 struct prpl *find_protocol(const char *name) 118 { 119 GList *gl; 120 for (gl = protocols; gl; gl = gl->next) 121 { 122 struct prpl *proto = gl->data; 123 if(!g_strcasecmp(proto->name, name)) 124 return proto; 125 } 126 return NULL; 127 } 128 129 /* nogaim.c */ 63 130 void nogaim_init() 64 131 { 65 proto_prpl[PROTO_MSN] = g_new0 ( struct prpl, 1 ); 132 extern void msn_init(); 133 extern void oscar_init(); 134 extern void byahoo_init(); 135 extern void jabber_init(); 136 66 137 #ifdef WITH_MSN 67 msn_init( proto_prpl[PROTO_MSN]);138 msn_init(); 68 139 #endif 69 140 70 proto_prpl[PROTO_OSCAR] = g_new0( struct prpl, 1 );71 141 #ifdef WITH_OSCAR 72 oscar_init( proto_prpl[PROTO_OSCAR]);142 oscar_init(); 73 143 #endif 74 144 75 proto_prpl[PROTO_YAHOO] = g_new0( struct prpl, 1 );76 145 #ifdef WITH_YAHOO 77 byahoo_init( proto_prpl[PROTO_YAHOO]);146 byahoo_init(); 78 147 #endif 79 148 80 proto_prpl[PROTO_JABBER] = g_new0( struct prpl, 1 );81 149 #ifdef WITH_JABBER 82 jabber_init( proto_prpl[PROTO_JABBER] ); 150 jabber_init(); 151 #endif 152 153 #ifdef WITH_PLUGINS 154 load_plugins(); 83 155 #endif 84 156 } … … 172 244 gc = g_new0( struct gaim_connection, 1 ); 173 245 174 gc->protocol = user->protocol; 175 gc->prpl = proto_prpl[gc->protocol]; 246 gc->prpl = user->prpl; 176 247 g_snprintf( gc->username, sizeof( gc->username ), "%s", user->username ); 177 248 g_snprintf( gc->password, sizeof( gc->password ), "%s", user->password ); … … 254 325 /* Try to find a different connection on the same protocol. */ 255 326 for( a = gc->irc->accounts; a; a = a->next ) 256 if( proto_prpl[a->protocol]== gc->prpl && a->gc != gc )327 if( a->prpl == gc->prpl && a->gc != gc ) 257 328 break; 258 329 259 330 /* If we found one, add the screenname to the acc_id. */ 260 331 if( a ) 261 g_snprintf( acc_id, 32, "%s(%s)", proto_name[gc->protocol], gc->username );332 g_snprintf( acc_id, 32, "%s(%s)", gc->prpl->name, gc->username ); 262 333 else 263 g_snprintf( acc_id, 32, "%s", proto_name[gc->protocol]);334 g_snprintf( acc_id, 32, "%s", gc->prpl->name ); 264 335 265 336 irc_usermsg( gc->irc, "%s - %s", acc_id, msg ); … … 295 366 if( u && u->away ) proto_away( gc, u->away ); 296 367 297 if( gc->protocol == PROTO_ICQ)368 if( !strcmp(gc->prpl->name, "icq") ) 298 369 { 299 370 for( u = gc->irc->users; u; u = u->next ) … … 430 501 431 502 memset( nick, 0, MAX_NICK_LENGTH + 1 ); 432 strcpy( nick, nick_get( gc->irc, handle, gc->pr otocol, realname ) );503 strcpy( nick, nick_get( gc->irc, handle, gc->prpl, realname ) ); 433 504 434 505 u = user_add( gc->irc, nick ); … … 454 525 else 455 526 { 456 u->host = g_strdup( proto_name[gc->user->protocol]);527 u->host = g_strdup( gc->user->prpl->name ); 457 528 u->user = g_strdup( handle ); 458 529 } … … 583 654 } 584 655 585 if( ( type & UC_UNAVAILABLE ) && ( gc->protocol == PROTO_OSCAR || gc->protocol == PROTO_TOC) )656 if( ( type & UC_UNAVAILABLE ) && ( !strcmp(gc->prpl->name, "oscar") || !strcmp(gc->prpl->name, "icq")) ) 586 657 { 587 658 u->away = g_strdup( "Away" ); 588 659 } 589 else if( ( type & UC_UNAVAILABLE ) && ( gc->protocol == PROTO_JABBER) )660 else if( ( type & UC_UNAVAILABLE ) && ( !strcmp(gc->prpl->name, "jabber") ) ) 590 661 { 591 662 if( type & UC_DND ) -
protocols/nogaim.h
r22bf64e r703f0f7 72 72 /* we need to do either oscar or TOC */ 73 73 /* we make this as an int in case if we want to add more protocols later */ 74 int protocol;75 74 struct prpl *prpl; 76 75 guint32 flags; … … 152 151 char user_info[2048]; 153 152 int options; 154 int protocol;153 struct prpl *prpl; 155 154 /* prpls can use this to save information about the user, 156 155 * like which server to connect to, etc */ … … 162 161 163 162 struct prpl { 164 int protocol;165 163 int options; 166 c har *(* name)();164 const char *name; 167 165 168 166 /* for ICQ and Yahoo, who have off/on per-conversation options */ … … 224 222 }; 225 223 226 #define PROTO_TOC 0227 #define PROTO_OSCAR 1228 #define PROTO_YAHOO 2229 #define PROTO_ICQ 3230 #define PROTO_MSN 4231 #define PROTO_IRC 5232 #define PROTO_FTP 6233 #define PROTO_VGATE 7234 #define PROTO_JABBER 8235 #define PROTO_NAPSTER 9236 #define PROTO_ZEPHYR 10237 #define PROTO_GADUGADU 11238 #define PROTO_MAX 16239 240 extern char proto_name[PROTO_MAX][8];241 242 224 #define UC_UNAVAILABLE 1 243 225 … … 249 231 250 232 G_MODULE_EXPORT GSList *get_connections(); 251 extern struct prpl *proto_prpl[16]; 233 G_MODULE_EXPORT struct prpl *find_protocol(const char *name); 234 G_MODULE_EXPORT void register_protocol(struct prpl *); 252 235 253 236 /* nogaim.c */ … … 319 302 G_MODULE_EXPORT void info_string_append(GString *str, char *newline, char *name, char *value); 320 303 321 #ifdef WITH_MSN322 /* msn.c */323 G_MODULE_EXPORT void msn_init( struct prpl *ret );324 #endif325 326 #ifdef WITH_OSCAR327 /* oscar.c */328 G_MODULE_EXPORT void oscar_init( struct prpl *ret );329 #endif330 331 #ifdef WITH_JABBER332 /* jabber.c */333 G_MODULE_EXPORT void jabber_init( struct prpl *ret );334 #endif335 336 #ifdef WITH_YAHOO337 /* yahoo.c */338 G_MODULE_EXPORT void byahoo_init( struct prpl *ret );339 #endif340 341 304 /* prefs.c */ 342 305 G_MODULE_EXPORT void build_block_list(); -
protocols/oscar/oscar.c
r22bf64e r703f0f7 357 357 odata->icq = TRUE; 358 358 /* this is odd but it's necessary for a proper do_import and do_export */ 359 gc->protocol = PROTO_ICQ;360 359 gc->password[8] = 0; 361 360 } else { 362 gc->protocol = PROTO_TOC;363 361 gc->flags |= OPT_CONN_HTML; 364 362 } … … 2634 2632 } 2635 2633 2636 static struct prpl *my_protocol = NULL; 2637 2638 void oscar_init(struct prpl *ret) { 2639 ret-> protocol = PROTO_OSCAR;2634 void oscar_init() 2635 { 2636 struct prpl *ret = g_new0(struct prpl, 1); 2637 ret->name = "oscar"; 2640 2638 ret->away_states = oscar_away_states; 2641 2639 ret->login = oscar_login; … … 2659 2657 ret->cmp_buddynames = aim_sncmp; 2660 2658 ret->get_status_string = oscar_get_status_string; 2661 2662 2659 ret->send_typing = oscar_send_typing; 2663 2660 2664 my_protocol = ret;2665 } 2661 register_protocol(ret); 2662 } -
protocols/yahoo/yahoo.c
r22bf64e r703f0f7 64 64 }; 65 65 66 static char *yahoo_name()67 {68 return "Yahoo";69 }70 71 static struct prpl *my_protocol = NULL;72 66 static GSList *byahoo_inputs = NULL; 73 67 static int byahoo_chat_id = 0; … … 396 390 } 397 391 398 void byahoo_init( struct prpl *ret)399 { 400 ret->protocol = PROTO_YAHOO;401 ret->name = yahoo_name;392 void byahoo_init( ) 393 { 394 struct prpl *ret = g_new0(struct prpl, 1); 395 ret->name = "yahoo"; 402 396 403 397 ret->login = byahoo_login; 404 398 ret->close = byahoo_close; 405 399 ret->send_im = byahoo_send_im; 406 ret->send_typing = byahoo_send_typing;407 400 ret->get_info = byahoo_get_info; 408 401 ret->away_states = byahoo_away_states; … … 412 405 ret->remove_buddy = byahoo_remove_buddy; 413 406 ret->get_status_string = byahoo_get_status_string; 407 ret->send_typing = byahoo_send_typing; 414 408 415 409 ret->chat_send = byahoo_chat_send; … … 419 413 ret->cmp_buddynames = g_strcasecmp; 420 414 421 my_protocol = ret;415 register_protocol(ret); 422 416 } 423 417 … … 433 427 yd = gc->proto_data; 434 428 435 if( gc->protocol == PROTO_YAHOO&& yd->y2_id == id )429 if( !strcmp(gc->prpl->name, "yahoo") && yd->y2_id == id ) 436 430 return( gc ); 437 431 } -
storage_text.c
r22bf64e r703f0f7 27 27 #include "bitlbee.h" 28 28 #include "crypting.h" 29 30 /* DO NOT USE THIS FUNCTION IN NEW CODE. This 31 * function is here merely because the save/load code still uses 32 * ids rather then names */ 33 static struct prpl *find_protocol_by_id(int id) 34 { 35 switch (id) { 36 case 1: return find_protocol("oscar"); 37 case 4: return find_protocol("msn"); 38 case 2: return find_protocol("yahoo"); 39 case 8: return find_protocol("jabber"); 40 default: break; 41 } 42 return NULL; 43 } 44 45 static int find_protocol_id(const char *name) 46 { 47 if (!strcmp(name, "oscar")) return 1; 48 if (!strcmp(name, "msn")) return 4; 49 if (!strcmp(name, "yahoo")) return 2; 50 if (!strcmp(name, "jabber")) return 8; 51 52 return -1; 53 } 54 29 55 30 56 static void text_init (void) … … 79 105 while( fscanf( fp, "%s %d %s", s, &proto, nick ) > 0 ) 80 106 { 107 struct prpl *prpl; 108 109 prpl = find_protocol_by_id(proto); 110 111 if (!prpl) 112 continue; 113 81 114 http_decode( s ); 82 nick_set( irc, s, pr oto, nick );115 nick_set( irc, s, prpl, nick ); 83 116 } 84 117 fclose( fp ); … … 145 178 s[169] = 0; /* Prevent any overflow (169 ~ 512 / 3) */ 146 179 http_encode( s ); 147 g_snprintf( s + strlen( s ), 510 - strlen( s ), " %d %s", n->proto, n->nick );180 g_snprintf( s + strlen( s ), 510 - strlen( s ), " %d %s", find_protocol_id(n->proto->name), n->nick ); 148 181 if( fprintf( fp, "%s\n", s ) != strlen( s ) + 1 ) 149 182 { … … 187 220 for( a = irc->accounts; a; a = a->next ) 188 221 { 189 if( a->protocol == PROTO_OSCAR || a->protocol == PROTO_ICQ || a->protocol == PROTO_TOC)222 if( !strcmp(a->prpl->name, "oscar") ) 190 223 g_snprintf( s, sizeof( s ), "account add oscar \"%s\" \"%s\" %s", a->user, a->pass, a->server ); 191 224 else 192 225 g_snprintf( s, sizeof( s ), "account add %s \"%s\" \"%s\" \"%s\"", 193 proto_name[a->protocol], a->user, a->pass, a->server ? a->server : "" );226 a->prpl->name, a->user, a->pass, a->server ? a->server : "" ); 194 227 195 228 line = obfucrypt( s, irc->password ); -
unix.c
r22bf64e r703f0f7 47 47 48 48 log_init( ); 49 nogaim_init( ); 50 49 50 nogaim_init(); 51 51 52 CONF_FILE = g_strdup( CONF_FILE_DEF ); 52 53 -
url.h
r22bf64e r703f0f7 26 26 #include "bitlbee.h" 27 27 28 #define PROTO_HTTP 2 28 #define PROTO_FTP 1 29 #define PROTO_HTTP 2 29 30 #define PROTO_SOCKS4 3 30 31 #define PROTO_SOCKS5 4
Note: See TracChangeset
for help on using the changeset viewer.