Mercurial > pidgin
comparison src/server.c @ 281:7b06ba09ffe2
[gaim-migrate @ 291]
So someone today told me I should make it so the permit list works, so I did.
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Tue, 30 May 2000 23:49:54 +0000 |
parents | e606585a38bd |
children | 0f14e6d8a51b |
comparison
equal
deleted
inserted
replaced
280:e606585a38bd | 281:7b06ba09ffe2 |
---|---|
342 | 342 |
343 | 343 |
344 | 344 |
345 void serv_set_permit_deny() | 345 void serv_set_permit_deny() |
346 { | 346 { |
347 #ifndef USE_OSCAR | |
347 char buf[MSG_LEN]; | 348 char buf[MSG_LEN]; |
348 int at; | 349 int at; |
349 GList *list; | 350 GList *list; |
350 | 351 |
351 #ifndef USE_OSCAR | |
352 /* FIXME! We flash here. */ | 352 /* FIXME! We flash here. */ |
353 if (permdeny == 1 || permdeny == 3) { | 353 if (permdeny == 1 || permdeny == 3) { |
354 g_snprintf(buf, sizeof(buf), "toc_add_permit"); | 354 g_snprintf(buf, sizeof(buf), "toc_add_permit"); |
355 sflap_send(buf, -1, TYPE_DATA); | 355 sflap_send(buf, -1, TYPE_DATA); |
356 } else { | 356 } else { |
377 buf[at] = 0; | 377 buf[at] = 0; |
378 sflap_send(buf, -1, TYPE_DATA); | 378 sflap_send(buf, -1, TYPE_DATA); |
379 #else | 379 #else |
380 /* oscar requires us to do everyone at once (?) */ | 380 /* oscar requires us to do everyone at once (?) */ |
381 /* I think this code is OK now. */ | 381 /* I think this code is OK now. */ |
382 list = deny; at = 0; | 382 char buf[BUF_LONG]; int at; GList *list, *grp, *bud; |
383 if (list == NULL) return; | 383 if (permdeny == 3) { /* Permit Some : Only people on buddy list and |
384 while (list) { | 384 on permit list */ |
385 at += g_snprintf(&buf[at], sizeof(buf) - at, "%s&", list->data); | 385 struct group *g; struct buddy *b; |
386 list = list->next; | 386 at = 0; list = permit; grp = groups; |
387 } | 387 debug_print("Setting permit list...\n"); |
388 aim_bos_changevisibility(gaim_sess, gaim_conn, | 388 while (grp) { |
389 AIM_VISIBILITYCHANGE_DENYADD, buf); | 389 g = (struct group *)grp->data; |
390 bud = g->members; | |
391 while (bud) { | |
392 b = (struct buddy *)bud->data; | |
393 at += g_snprintf(&buf[at], sizeof(buf) - at, | |
394 "%s&", b->name); | |
395 bud = bud->next; | |
396 } | |
397 grp = grp->next; | |
398 } | |
399 while (list) { | |
400 at += g_snprintf(&buf[at], sizeof(buf) - at, "%s&", | |
401 list->data); | |
402 list = list->next; | |
403 } | |
404 aim_bos_changevisibility(gaim_sess, gaim_conn, | |
405 AIM_VISIBILITYCHANGE_PERMITADD, buf); | |
406 } else { /* Deny Some : Deny people on deny list */ | |
407 list = deny; at = 0; | |
408 if (list == NULL) return; | |
409 while (list) { | |
410 at += g_snprintf(&buf[at], sizeof(buf) - at, "%s&", | |
411 list->data); | |
412 list = list->next; | |
413 } | |
414 aim_bos_changevisibility(gaim_sess, gaim_conn, | |
415 AIM_VISIBILITYCHANGE_DENYADD, buf); | |
416 } | |
390 #endif | 417 #endif |
391 } | 418 } |
392 | 419 |
393 void serv_set_idle(int time) | 420 void serv_set_idle(int time) |
394 { | 421 { |