comparison src/protocols/silc/ops.c @ 10246:a66cf83552dc

[gaim-migrate @ 11386] I changed gaim_find_conversation and gaim_find_conversation_with_account The first parameter is now one of GAIM_CONV_IM, GAIM_CONV_CHAT or GAIM_CONV_ANY. Unfortunately, this changes a bajillion files. Please look over this and make sure I use the correct type everywhere. Especially in Novell and MSN, and somewhat in SILC. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Tue, 23 Nov 2004 06:14:15 +0000
parents 4e376556566e
children 114d3ac8ff5a
comparison
equal deleted inserted replaced
10245:c143a3fac58d 10246:a66cf83552dc
61 SilcGaimPrvgrp prv; 61 SilcGaimPrvgrp prv;
62 62
63 for (l = sg->grps; l; l = l->next) 63 for (l = sg->grps; l; l = l->next)
64 if (((SilcGaimPrvgrp)l->data)->key == key) { 64 if (((SilcGaimPrvgrp)l->data)->key == key) {
65 prv = l->data; 65 prv = l->data;
66 convo = gaim_find_conversation_with_account(prv->channel, 66 convo = gaim_find_conversation_with_account(GAIM_CONV_CHAT,
67 sg->account); 67 prv->channel, sg->account);
68 break; 68 break;
69 } 69 }
70 } 70 }
71 if (!convo) 71 if (!convo)
72 convo = gaim_find_conversation_with_account(channel->channel_name, 72 convo = gaim_find_conversation_with_account(GAIM_CONV_CHAT,
73 sg->account); 73 channel->channel_name, sg->account);
74 if (!convo) 74 if (!convo)
75 return; 75 return;
76 76
77 if (flags & SILC_MESSAGE_FLAG_SIGNED && 77 if (flags & SILC_MESSAGE_FLAG_SIGNED &&
78 gaim_prefs_get_bool("/plugins/prpl/silc/verify_chat")) { 78 gaim_prefs_get_bool("/plugins/prpl/silc/verify_chat")) {
147 147
148 if (!message) 148 if (!message)
149 return; 149 return;
150 150
151 if (sender->nickname) 151 if (sender->nickname)
152 convo = gaim_find_conversation_with_account(sender->nickname, sg->account); 152 /* XXX - Should this be GAIM_CONV_IM? */
153 convo = gaim_find_conversation_with_account(GAIM_CONV_ANY,
154 sender->nickname, sg->account);
153 155
154 if (flags & SILC_MESSAGE_FLAG_SIGNED && 156 if (flags & SILC_MESSAGE_FLAG_SIGNED &&
155 gaim_prefs_get_bool("/plugins/prpl/silc/verify_im")) { 157 gaim_prefs_get_bool("/plugins/prpl/silc/verify_im")) {
156 /* XXX */ 158 /* XXX */
157 } 159 }
261 263
262 /* If we joined channel, do nothing */ 264 /* If we joined channel, do nothing */
263 if (client_entry == conn->local_entry) 265 if (client_entry == conn->local_entry)
264 break; 266 break;
265 267
266 convo = gaim_find_conversation_with_account(channel->channel_name, 268 convo = gaim_find_conversation_with_account(GAIM_CONV_CHAT,
267 sg->account); 269 channel->channel_name, sg->account);
268 if (!convo) 270 if (!convo)
269 break; 271 break;
270 272
271 /* Join user to channel */ 273 /* Join user to channel */
272 g_snprintf(buf, sizeof(buf), "%s@%s", 274 g_snprintf(buf, sizeof(buf), "%s@%s",
278 280
279 case SILC_NOTIFY_TYPE_LEAVE: 281 case SILC_NOTIFY_TYPE_LEAVE:
280 client_entry = va_arg(va, SilcClientEntry); 282 client_entry = va_arg(va, SilcClientEntry);
281 channel = va_arg(va, SilcChannelEntry); 283 channel = va_arg(va, SilcChannelEntry);
282 284
283 convo = gaim_find_conversation_with_account(channel->channel_name, 285 convo = gaim_find_conversation_with_account(GAIM_CONV_CHAT,
284 sg->account); 286 channel->channel_name, sg->account);
285 if (!convo) 287 if (!convo)
286 break; 288 break;
287 289
288 /* Remove user from channel */ 290 /* Remove user from channel */
289 gaim_conv_chat_remove_user(GAIM_CONV_CHAT(convo), 291 gaim_conv_chat_remove_user(GAIM_CONV_CHAT(convo),
299 break; 301 break;
300 302
301 /* Remove from all channels */ 303 /* Remove from all channels */
302 silc_hash_table_list(client_entry->channels, &htl); 304 silc_hash_table_list(client_entry->channels, &htl);
303 while (silc_hash_table_get(&htl, NULL, (void *)&chu)) { 305 while (silc_hash_table_get(&htl, NULL, (void *)&chu)) {
304 convo = gaim_find_conversation_with_account(chu->channel->channel_name, 306 convo = gaim_find_conversation_with_account(GAIM_CONV_CHAT,
305 sg->account); 307 chu->channel->channel_name, sg->account);
306 if (!convo) 308 if (!convo)
307 continue; 309 continue;
308 gaim_conv_chat_remove_user(GAIM_CONV_CHAT(convo), 310 gaim_conv_chat_remove_user(GAIM_CONV_CHAT(convo),
309 client_entry->nickname, 311 client_entry->nickname,
310 tmp); 312 tmp);
319 idtype = va_arg(va, int); 321 idtype = va_arg(va, int);
320 entry = va_arg(va, void *); 322 entry = va_arg(va, void *);
321 tmp = va_arg(va, char *); 323 tmp = va_arg(va, char *);
322 channel = va_arg(va, SilcChannelEntry); 324 channel = va_arg(va, SilcChannelEntry);
323 325
324 convo = gaim_find_conversation_with_account(channel->channel_name, 326 convo = gaim_find_conversation_with_account(GAIM_CONV_CHAT,
325 sg->account); 327 channel->channel_name, sg->account);
326 if (!convo) 328 if (!convo)
327 break; 329 break;
328 330
329 if (!tmp) 331 if (!tmp)
330 break; 332 break;
377 break; 379 break;
378 380
379 /* Change nick on all channels */ 381 /* Change nick on all channels */
380 silc_hash_table_list(client_entry2->channels, &htl); 382 silc_hash_table_list(client_entry2->channels, &htl);
381 while (silc_hash_table_get(&htl, NULL, (void *)&chu)) { 383 while (silc_hash_table_get(&htl, NULL, (void *)&chu)) {
382 convo = gaim_find_conversation_with_account(chu->channel->channel_name, 384 convo = gaim_find_conversation_with_account(GAIM_CONV_CHAT,
383 sg->account); 385 chu->channel->channel_name, sg->account);
384 if (!convo) 386 if (!convo)
385 continue; 387 continue;
386 if (gaim_conv_chat_find_user(GAIM_CONV_CHAT(convo), client_entry->nickname)) 388 if (gaim_conv_chat_find_user(GAIM_CONV_CHAT(convo), client_entry->nickname))
387 gaim_conv_chat_rename_user(GAIM_CONV_CHAT(convo), 389 gaim_conv_chat_rename_user(GAIM_CONV_CHAT(convo),
388 client_entry->nickname, 390 client_entry->nickname,
401 (void)va_arg(va, char *); 403 (void)va_arg(va, char *);
402 (void)va_arg(va, SilcPublicKey); 404 (void)va_arg(va, SilcPublicKey);
403 buffer = va_arg(va, SilcBuffer); 405 buffer = va_arg(va, SilcBuffer);
404 channel = va_arg(va, SilcChannelEntry); 406 channel = va_arg(va, SilcChannelEntry);
405 407
406 convo = gaim_find_conversation_with_account(channel->channel_name, 408 convo = gaim_find_conversation_with_account(GAIM_CONV_CHAT,
407 sg->account); 409 channel->channel_name, sg->account);
408 if (!convo) 410 if (!convo)
409 break; 411 break;
410 412
411 if (idtype == SILC_ID_CLIENT) 413 if (idtype == SILC_ID_CLIENT)
412 name = ((SilcClientEntry)entry)->nickname; 414 name = ((SilcClientEntry)entry)->nickname;
438 entry = va_arg(va, void *); 440 entry = va_arg(va, void *);
439 mode = va_arg(va, SilcUInt32); 441 mode = va_arg(va, SilcUInt32);
440 client_entry2 = va_arg(va, SilcClientEntry); 442 client_entry2 = va_arg(va, SilcClientEntry);
441 channel = va_arg(va, SilcChannelEntry); 443 channel = va_arg(va, SilcChannelEntry);
442 444
443 convo = gaim_find_conversation_with_account(channel->channel_name, 445 convo = gaim_find_conversation_with_account(GAIM_CONV_CHAT,
444 sg->account); 446 channel->channel_name, sg->account);
445 if (!convo) 447 if (!convo)
446 break; 448 break;
447 449
448 if (idtype == SILC_ID_CLIENT) 450 if (idtype == SILC_ID_CLIENT)
449 name = ((SilcClientEntry)entry)->nickname; 451 name = ((SilcClientEntry)entry)->nickname;
484 client_entry = va_arg(va, SilcClientEntry); 486 client_entry = va_arg(va, SilcClientEntry);
485 tmp = va_arg(va, char *); 487 tmp = va_arg(va, char *);
486 client_entry2 = va_arg(va, SilcClientEntry); 488 client_entry2 = va_arg(va, SilcClientEntry);
487 channel = va_arg(va, SilcChannelEntry); 489 channel = va_arg(va, SilcChannelEntry);
488 490
489 convo = gaim_find_conversation_with_account(channel->channel_name, 491 convo = gaim_find_conversation_with_account(GAIM_CONV_CHAT,
490 sg->account); 492 channel->channel_name, sg->account);
491 if (!convo) 493 if (!convo)
492 break; 494 break;
493 495
494 if (client_entry == conn->local_entry) { 496 if (client_entry == conn->local_entry) {
495 /* Remove us from channel */ 497 /* Remove us from channel */
539 } 541 }
540 542
541 /* Remove us from all channels */ 543 /* Remove us from all channels */
542 silc_hash_table_list(client_entry->channels, &htl); 544 silc_hash_table_list(client_entry->channels, &htl);
543 while (silc_hash_table_get(&htl, NULL, (void *)&chu)) { 545 while (silc_hash_table_get(&htl, NULL, (void *)&chu)) {
544 convo = gaim_find_conversation_with_account(chu->channel->channel_name, 546 convo = gaim_find_conversation_with_account(GAIM_CONV_CHAT,
545 sg->account); 547 chu->channel->channel_name, sg->account);
546 if (!convo) 548 if (!convo)
547 continue; 549 continue;
548 gaim_conv_chat_write(GAIM_CONV_CHAT(convo), client_entry->nickname, 550 gaim_conv_chat_write(GAIM_CONV_CHAT(convo), client_entry->nickname,
549 buf, GAIM_MESSAGE_SYSTEM, time(NULL)); 551 buf, GAIM_MESSAGE_SYSTEM, time(NULL));
550 serv_got_chat_left(gc, gaim_conv_chat_get_id(GAIM_CONV_CHAT(convo))); 552 serv_got_chat_left(gc, gaim_conv_chat_get_id(GAIM_CONV_CHAT(convo)));
570 } 572 }
571 573
572 /* Remove user from all channels */ 574 /* Remove user from all channels */
573 silc_hash_table_list(client_entry->channels, &htl); 575 silc_hash_table_list(client_entry->channels, &htl);
574 while (silc_hash_table_get(&htl, NULL, (void *)&chu)) { 576 while (silc_hash_table_get(&htl, NULL, (void *)&chu)) {
575 convo = gaim_find_conversation_with_account(chu->channel->channel_name, 577 convo = gaim_find_conversation_with_account(GAIM_CONV_CHAT,
576 sg->account); 578 chu->channel->channel_name, sg->account);
577 if (!convo) 579 if (!convo)
578 continue; 580 continue;
579 gaim_conv_chat_remove_user(GAIM_CONV_CHAT(convo), 581 gaim_conv_chat_remove_user(GAIM_CONV_CHAT(convo),
580 client_entry->nickname, tmp); 582 client_entry->nickname, tmp);
581 } 583 }
603 605
604 /* Remove from all channels */ 606 /* Remove from all channels */
605 silc_hash_table_list(clients[i]->channels, &htl); 607 silc_hash_table_list(clients[i]->channels, &htl);
606 while (silc_hash_table_get(&htl, NULL, (void *)&chu)) { 608 while (silc_hash_table_get(&htl, NULL, (void *)&chu)) {
607 convo = 609 convo =
608 gaim_find_conversation_with_account(chu->channel->channel_name, 610 gaim_find_conversation_with_account(GAIM_CONV_CHAT,
609 sg->account); 611 chu->channel->channel_name, sg->account);
610 if (!convo) 612 if (!convo)
611 continue; 613 continue;
612 gaim_conv_chat_remove_user(GAIM_CONV_CHAT(convo), 614 gaim_conv_chat_remove_user(GAIM_CONV_CHAT(convo),
613 clients[i]->nickname, 615 clients[i]->nickname,
614 _("Server signoff")); 616 _("Server signoff"));
1170 return; 1172 return;
1171 } 1173 }
1172 1174
1173 channel = va_arg(vp, SilcChannelEntry); 1175 channel = va_arg(vp, SilcChannelEntry);
1174 1176
1175 convo = gaim_find_conversation_with_account(channel->channel_name, 1177 convo = gaim_find_conversation_with_account(GAIM_CONV_CHAT,
1176 sg->account); 1178 channel->channel_name, sg->account);
1177 if (!convo) { 1179 if (!convo) {
1178 gaim_debug_error("silc", "Got a topic for %s, which doesn't exist\n", 1180 gaim_debug_error("silc", "Got a topic for %s, which doesn't exist\n",
1179 channel->channel_name);
1180 break;
1181 }
1182
1183 if (gaim_conversation_get_type(convo) != GAIM_CONV_CHAT) {
1184 gaim_debug_error("silc", "Got a topic for %s, which isn't a chat\n",
1185 channel->channel_name); 1181 channel->channel_name);
1186 break; 1182 break;
1187 } 1183 }
1188 1184
1189 /* Set topic */ 1185 /* Set topic */
1211 local_entry = va_arg(vp, SilcClientEntry); 1207 local_entry = va_arg(vp, SilcClientEntry);
1212 1208
1213 /* Change nick on all channels */ 1209 /* Change nick on all channels */
1214 silc_hash_table_list(local_entry->channels, &htl); 1210 silc_hash_table_list(local_entry->channels, &htl);
1215 while (silc_hash_table_get(&htl, NULL, (void *)&chu)) { 1211 while (silc_hash_table_get(&htl, NULL, (void *)&chu)) {
1216 convo = gaim_find_conversation_with_account(chu->channel->channel_name, 1212 convo = gaim_find_conversation_with_account(GAIM_CONV_CHAT,
1217 sg->account); 1213 chu->channel->channel_name, sg->account);
1218 if (!convo || (gaim_conversation_get_type(convo) != GAIM_CONV_CHAT)) 1214 if (!convo)
1219 continue; 1215 continue;
1220 oldnick = gaim_conv_chat_get_nick(GAIM_CONV_CHAT(convo)); 1216 oldnick = gaim_conv_chat_get_nick(GAIM_CONV_CHAT(convo));
1221 if (strcmp(oldnick, local_entry->nickname)) { 1217 if (strcmp(oldnick, local_entry->nickname)) {
1222 gaim_conv_chat_rename_user(GAIM_CONV_CHAT(convo), 1218 gaim_conv_chat_rename_user(GAIM_CONV_CHAT(convo),
1223 oldnick, local_entry->nickname); 1219 oldnick, local_entry->nickname);