src/protocols/toc/toc.c

changeset 4349
a65175463a31
parent 4333
f4c095774bc2
child 4359
cf899ee07d1d
equal deleted inserted replaced
4348:74cba81defc4 4349:a65175463a31
511 g_snprintf(buf, sizeof(buf), _("Your warning level is currently too high to log in.")); 511 g_snprintf(buf, sizeof(buf), _("Your warning level is currently too high to log in."));
512 break; 512 break;
513 case 983: 513 case 983:
514 g_snprintf(buf, sizeof(buf), _("You have been connecting and disconnecting too frequently. Wait ten minutes and try again. If you continue to try, you will need to wait even longer.")); 514 g_snprintf(buf, sizeof(buf), _("You have been connecting and disconnecting too frequently. Wait ten minutes and try again. If you continue to try, you will need to wait even longer."));
515 break; 515 break;
516 case 989:
517 g_snprintf(buf, sizeof(buf), _("An unknown signon error has occurred: %s."), w); 516 g_snprintf(buf, sizeof(buf), _("An unknown signon error has occurred: %s."), w);
518 break; 517 break;
519 default: 518 default:
520 g_snprintf(buf, sizeof(buf), _("An unknown error, %d, has occurred. Info: %s"), no, w); 519 g_snprintf(buf, sizeof(buf), _("An unknown error, %d, has occurred. Info: %s"), no, w);
521 } 520 }
599 tdt->state = STATE_ONLINE; 598 tdt->state = STATE_ONLINE;
600 599
601 account_online(gc); 600 account_online(gc);
602 serv_finish_login(gc); 601 serv_finish_login(gc);
603 602
604 if (bud_list_cache_exists(gc))
605 do_import(gc, NULL);
606
607 /* Client sends TOC toc_init_done message */ 603 /* Client sends TOC toc_init_done message */
608 debug_printf("* Client sends TOC toc_init_done message\n"); 604 debug_printf("* Client sends TOC toc_init_done message\n");
609 g_snprintf(snd, sizeof snd, "toc_init_done"); 605 g_snprintf(snd, sizeof snd, "toc_init_done");
610 sflap_send(gc, snd, -1, TYPE_DATA); 606 sflap_send(gc, snd, -1, TYPE_DATA);
611 607
635 if (sflap_send(gc, snd, -1, TYPE_DATA) < 0) { 631 if (sflap_send(gc, snd, -1, TYPE_DATA) < 0) {
636 hide_login_progress(gc, _("Disconnected.")); 632 hide_login_progress(gc, _("Disconnected."));
637 signoff(gc); 633 signoff(gc);
638 return; 634 return;
639 } 635 }
640 if (bud_list_cache_exists(gc))
641 do_import(gc, NULL);
642 g_snprintf(snd, sizeof snd, "toc_init_done"); 636 g_snprintf(snd, sizeof snd, "toc_init_done");
643 sflap_send(gc, snd, -1, TYPE_DATA); 637 sflap_send(gc, snd, -1, TYPE_DATA);
644 do_error_dialog(_("TOC has come back from its pause. You may now send" 638 do_error_dialog(_("TOC has come back from its pause. You may now send"
645 " messages again."), NULL, GAIM_INFO); 639 " messages again."), NULL, GAIM_INFO);
646 } 640 }
647 } else if (!strcasecmp(c, "CONFIG")) { 641 } else if (!strcasecmp(c, "CONFIG")) {
648 c = strtok(NULL, ":"); 642 c = strtok(NULL, ":");
649 parse_toc_buddy_list(gc, c); 643 parse_toc_buddy_list(gc->user, c);
650 } else if (!strcasecmp(c, "NICK")) { 644 } else if (!strcasecmp(c, "NICK")) {
651 /* ignore NICK so that things get imported/exported properly 645 /* ignore NICK so that things get imported/exported properly
652 c = strtok(NULL, ":"); 646 c = strtok(NULL, ":");
653 g_snprintf(gc->username, sizeof(gc->username), "%s", c); 647 g_snprintf(gc->username, sizeof(gc->username), "%s", c);
654 */ 648 */
993 } 987 }
994 988
995 static void toc_set_config(struct gaim_connection *gc) 989 static void toc_set_config(struct gaim_connection *gc)
996 { 990 {
997 char *buf = g_malloc(MSG_LEN), snd[BUF_LEN * 2]; 991 char *buf = g_malloc(MSG_LEN), snd[BUF_LEN * 2];
998 toc_build_config(gc, buf, MSG_LEN - strlen("toc_set_config \\{\\}"), FALSE); 992 toc_build_config(gc->user, buf, MSG_LEN - strlen("toc_set_config \\{\\}"), FALSE);
999 g_snprintf(snd, MSG_LEN, "toc_set_config {%s}", buf); 993 g_snprintf(snd, MSG_LEN, "toc_set_config {%s}", buf);
1000 sflap_send(gc, snd, -1, TYPE_DATA); 994 sflap_send(gc, snd, -1, TYPE_DATA);
1001 g_free(buf); 995 g_free(buf);
1002 } 996 }
1003 997
1270 m = g_list_append(m, pbm); 1264 m = g_list_append(m, pbm);
1271 1265
1272 return m; 1266 return m;
1273 } 1267 }
1274 1268
1275 static void toc_add_permit(struct gaim_connection *gc, char *who) 1269 static void toc_add_permit(struct gaim_connection *gc, const char *who)
1276 { 1270 {
1277 char buf2[BUF_LEN * 2]; 1271 char buf2[BUF_LEN * 2];
1278 if (gc->permdeny != 3) 1272 if (gc->user->permdeny != 3)
1279 return; 1273 return;
1280 g_snprintf(buf2, sizeof(buf2), "toc_add_permit %s", normalize(who)); 1274 g_snprintf(buf2, sizeof(buf2), "toc_add_permit %s", normalize(who));
1281 sflap_send(gc, buf2, -1, TYPE_DATA); 1275 sflap_send(gc, buf2, -1, TYPE_DATA);
1282 toc_set_config(gc); 1276 toc_set_config(gc);
1283 signoff_blocked(gc); 1277 signoff_blocked(gc);
1284 } 1278 }
1285 1279
1286 static void toc_add_deny(struct gaim_connection *gc, char *who) 1280 static void toc_add_deny(struct gaim_connection *gc, const char *who)
1287 { 1281 {
1288 char buf2[BUF_LEN * 2]; 1282 char buf2[BUF_LEN * 2];
1289 if (gc->permdeny != 4) 1283 if (gc->user->permdeny != 4)
1290 return; 1284 return;
1291 g_snprintf(buf2, sizeof(buf2), "toc_add_deny %s", normalize(who)); 1285 g_snprintf(buf2, sizeof(buf2), "toc_add_deny %s", normalize(who));
1292 sflap_send(gc, buf2, -1, TYPE_DATA); 1286 sflap_send(gc, buf2, -1, TYPE_DATA);
1293 toc_set_config(gc); 1287 toc_set_config(gc);
1294 signoff_blocked(gc); 1288 signoff_blocked(gc);
1298 { 1292 {
1299 char buf2[BUF_LEN * 2]; 1293 char buf2[BUF_LEN * 2];
1300 GSList *list; 1294 GSList *list;
1301 int at; 1295 int at;
1302 1296
1303 switch (gc->permdeny) { 1297 switch (gc->user->permdeny) {
1304 case 1: 1298 case 1:
1305 /* permit all, deny none. to get here reliably we need to have been in permit 1299 /* permit all, deny none. to get here reliably we need to have been in permit
1306 * mode, and send an empty toc_add_deny message, which will switch us to deny none */ 1300 * mode, and send an empty toc_add_deny message, which will switch us to deny none */
1307 g_snprintf(buf2, sizeof(buf2), "toc_add_permit "); 1301 g_snprintf(buf2, sizeof(buf2), "toc_add_permit ");
1308 sflap_send(gc, buf2, -1, TYPE_DATA); 1302 sflap_send(gc, buf2, -1, TYPE_DATA);
1322 * message, which will clear and set our permit list. toc sucks. */ 1316 * message, which will clear and set our permit list. toc sucks. */
1323 g_snprintf(buf2, sizeof(buf2), "toc_add_deny "); 1317 g_snprintf(buf2, sizeof(buf2), "toc_add_deny ");
1324 sflap_send(gc, buf2, -1, TYPE_DATA); 1318 sflap_send(gc, buf2, -1, TYPE_DATA);
1325 1319
1326 at = g_snprintf(buf2, sizeof(buf2), "toc_add_permit "); 1320 at = g_snprintf(buf2, sizeof(buf2), "toc_add_permit ");
1327 list = gc->permit; 1321 list = gc->user->permit;
1328 while (list) { 1322 while (list) {
1329 at += g_snprintf(buf2 + at, sizeof(buf2) - at, "%s ", normalize(list->data)); 1323 at += g_snprintf(buf2 + at, sizeof(buf2) - at, "%s ", normalize(list->data));
1330 if (at > MSG_LEN + 32) { /* from out my ass comes greatness */ 1324 if (at > MSG_LEN + 32) { /* from out my ass comes greatness */
1331 sflap_send(gc, buf2, -1, TYPE_DATA); 1325 sflap_send(gc, buf2, -1, TYPE_DATA);
1332 at = g_snprintf(buf2, sizeof(buf2), "toc_add_permit "); 1326 at = g_snprintf(buf2, sizeof(buf2), "toc_add_permit ");
1340 * message, which will clear and set our deny list. toc sucks. */ 1334 * message, which will clear and set our deny list. toc sucks. */
1341 g_snprintf(buf2, sizeof(buf2), "toc_add_permit "); 1335 g_snprintf(buf2, sizeof(buf2), "toc_add_permit ");
1342 sflap_send(gc, buf2, -1, TYPE_DATA); 1336 sflap_send(gc, buf2, -1, TYPE_DATA);
1343 1337
1344 at = g_snprintf(buf2, sizeof(buf2), "toc_add_deny "); 1338 at = g_snprintf(buf2, sizeof(buf2), "toc_add_deny ");
1345 list = gc->deny; 1339 list = gc->user->deny;
1346 while (list) { 1340 while (list) {
1347 at += g_snprintf(buf2 + at, sizeof(buf2) - at, "%s ", normalize(list->data)); 1341 at += g_snprintf(buf2 + at, sizeof(buf2) - at, "%s ", normalize(list->data));
1348 if (at > MSG_LEN + 32) { /* from out my ass comes greatness */ 1342 if (at > MSG_LEN + 32) { /* from out my ass comes greatness */
1349 sflap_send(gc, buf2, -1, TYPE_DATA); 1343 sflap_send(gc, buf2, -1, TYPE_DATA);
1350 at = g_snprintf(buf2, sizeof(buf2), "toc_add_deny "); 1344 at = g_snprintf(buf2, sizeof(buf2), "toc_add_deny ");
1358 } 1352 }
1359 toc_set_config(gc); 1353 toc_set_config(gc);
1360 signoff_blocked(gc); 1354 signoff_blocked(gc);
1361 } 1355 }
1362 1356
1363 static void toc_rem_permit(struct gaim_connection *gc, char *who) 1357 static void toc_rem_permit(struct gaim_connection *gc, const char *who)
1364 { 1358 {
1365 if (gc->permdeny != 3) 1359 if (gc->user->permdeny != 3)
1366 return; 1360 return;
1367 toc_set_permit_deny(gc); 1361 toc_set_permit_deny(gc);
1368 } 1362 }
1369 1363
1370 static void toc_rem_deny(struct gaim_connection *gc, char *who) 1364 static void toc_rem_deny(struct gaim_connection *gc, const char *who)
1371 { 1365 {
1372 if (gc->permdeny != 4) 1366 if (gc->user->permdeny != 4)
1373 return; 1367 return;
1374 toc_set_permit_deny(gc); 1368 toc_set_permit_deny(gc);
1375 } 1369 }
1376 1370
1377 static GList *toc_away_states(struct gaim_connection *gc) 1371 static GList *toc_away_states(struct gaim_connection *gc)

mercurial