# HG changeset patch # User Mark Doliner # Date 1042048175 0 # Node ID f68c4203d001a2d32c13f68bfb31e2b83c0d36d2 # Parent 3b884e35e6b57b8e3f17a5dee5b0df83fc4320eb [gaim-migrate @ 4501] This will cause gaim to ask you at login if you want to re-request authorization for people that haven't authorized you. I was "mistaken" earlier when I said it would do this. Also, I'll probably end up shuffling this code around a little bit, since there's some repetition there, now. I think this is a decent alternative to having an "Awaiting Authorization" group. I'd like to do something like that, but it'll take time. And a right-click menu with a the option to re-request authorization is probably possible. I'll try to do that tonight. committer: Tailor Script diff -r 3b884e35e6b5 -r f68c4203d001 src/protocols/oscar/oscar.c --- a/src/protocols/oscar/oscar.c Wed Jan 08 08:22:16 2003 +0000 +++ b/src/protocols/oscar/oscar.c Wed Jan 08 17:49:35 2003 +0000 @@ -4097,13 +4097,36 @@ for (curitem=sess->ssi.local; curitem; curitem=curitem->next) { switch (curitem->type) { case 0x0000: { /* Buddy */ - if ((curitem->name) && (!find_buddy(gc, curitem->name))) { + if (curitem->name) { char *gname = aim_ssi_itemlist_findparentname(od->sess->ssi.local, curitem->name); - char *alias = aim_ssi_getalias(sess->ssi.local, gname, curitem->name); - debug_printf("ssi: adding buddy %s to group %s to local list\n", curitem->name, gname); - add_buddy(gc, (gname ? gname : "orphans"), curitem->name, alias); - free(alias); - tmp++; + if (!find_buddy(gc, curitem->name)) { + char *alias = aim_ssi_getalias(sess->ssi.local, gname, curitem->name); + debug_printf("ssi: adding buddy %s to group %s to local list\n", curitem->name, gname); + add_buddy(gc, (gname ? gname : "orphans"), curitem->name, alias); + free(alias); + tmp++; + } + if (curitem->name && gname && aim_ssi_waitingforauth(sess->ssi.local, gname, curitem->name)) { + struct name_data *data = g_new(struct name_data, 1); + gchar *dialog_msg, *nombre; + struct buddy *buddy; + + buddy = find_buddy(gc, curitem->name); + if (buddy && (get_buddy_alias_only(buddy))) + nombre = g_strdup_printf("%s (%s)", curitem->name, get_buddy_alias_only(buddy)); + else + nombre = g_strdup(curitem->name); + + dialog_msg = g_strdup_printf(_("The user %s requires authorization before being added to a buddy list. Do you want to send an authorization request?"), nombre); + data->gc = gc; + data->name = g_strdup(curitem->name); + data->nick = NULL; + do_ask_dialog(_("Request Authorization"), dialog_msg, data, _("Request Authorization"), gaim_auth_request, _("Cancel"), gaim_auth_dontrequest, my_protocol->plug ? my_protocol->plug->handle : NULL, FALSE); + + g_free(dialog_msg); + g_free(nombre); + } + } } break;