You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(106) |
Oct
(334) |
Nov
(246) |
Dec
(145) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(42) |
Feb
(53) |
Mar
(232) |
Apr
(109) |
May
(137) |
Jun
(63) |
Jul
(26) |
Aug
(263) |
Sep
(193) |
Oct
(507) |
Nov
(440) |
Dec
(241) |
2003 |
Jan
(567) |
Feb
(195) |
Mar
(504) |
Apr
(481) |
May
(524) |
Jun
(522) |
Jul
(594) |
Aug
(502) |
Sep
(643) |
Oct
(508) |
Nov
(430) |
Dec
(377) |
2004 |
Jan
(361) |
Feb
(251) |
Mar
(219) |
Apr
(499) |
May
(461) |
Jun
(419) |
Jul
(314) |
Aug
(519) |
Sep
(416) |
Oct
(247) |
Nov
(305) |
Dec
(382) |
2005 |
Jan
(267) |
Feb
(282) |
Mar
(327) |
Apr
(338) |
May
(189) |
Jun
(400) |
Jul
(462) |
Aug
(530) |
Sep
(316) |
Oct
(523) |
Nov
(481) |
Dec
(650) |
2006 |
Jan
(536) |
Feb
(361) |
Mar
(287) |
Apr
(146) |
May
(101) |
Jun
(169) |
Jul
(221) |
Aug
(498) |
Sep
(300) |
Oct
(236) |
Nov
(209) |
Dec
(205) |
2007 |
Jan
(30) |
Feb
(23) |
Mar
(26) |
Apr
(15) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Sean E. <sea...@us...> - 2002-04-14 08:16:59
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv31963 Modified Files: ChangeLog configure.ac Log Message: Get off my lawn! You're stepping all over the new grass! and the flowers! aww, man! Look what you did! Index: ChangeLog =================================================================== RCS file: /cvsroot/gaim/gaim/ChangeLog,v retrieving revision 1.450 retrieving revision 1.451 diff -u -d -r1.450 -r1.451 --- ChangeLog 12 Apr 2002 02:49:05 -0000 1.450 +++ ChangeLog 14 Apr 2002 08:16:56 -0000 1.451 @@ -1,5 +1,8 @@ Gaim: The Pimpin' Penguin IM Clone thats good for the soul! +version 0.57 + * New authorization method for Yahoo! + version 0.56 (04/11/2002): * German translation update (Thanks Karsten Weiss) * Shell-like send history binded to Ctrl-Up and Ctrl-Down Index: configure.ac =================================================================== RCS file: /cvsroot/gaim/gaim/configure.ac,v retrieving revision 1.51 retrieving revision 1.52 diff -u -d -r1.51 -r1.52 --- configure.ac 12 Apr 2002 03:30:22 -0000 1.51 +++ configure.ac 14 Apr 2002 08:16:56 -0000 1.52 @@ -1,7 +1,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(src/aim.c) AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE([gaim], [20020411cvs]) +AM_INIT_AUTOMAKE([gaim], [0.57-cvs]) AC_PATH_PROG(sedpath, sed) |
From: Sean E. <sea...@us...> - 2002-04-14 07:50:54
|
Update of /cvsroot/gaim/gaim/src/protocols/yahoo In directory usw-pr-cvs1:/tmp/cvs-serv27341/src/protocols/yahoo Modified Files: yahoo.c Log Message: Please test this. Yahoo changed it's authentication method and has started disallowing older clients (and third party clients using the older method) to connect to their servers. This impliments the new authentication method so that we won't get blocked from Yahoo, and Indian users (who have already been blocked) can connect again. It's not perfect--it should fail about 1 out of 16 times. It's an easy bug to find and fix, but I want to go to bed now. If you find yourself failing to connect more than this 1 of 16, please let me know, and I'll tell you how to help me debug it. Thanks. Index: yahoo.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/yahoo/yahoo.c,v retrieving revision 1.40 retrieving revision 1.41 diff -u -d -r1.40 -r1.41 --- yahoo.c 17 Mar 2002 20:23:34 -0000 1.40 +++ yahoo.c 14 Apr 2002 07:50:48 -0000 1.41 @@ -41,6 +41,7 @@ #include "prpl.h" #include "gaim.h" #include "proxy.h" +#include "md5.h" extern char *yahoo_crypt(char *, char *); @@ -82,7 +83,7 @@ #define USEROPT_MAIL 0 #define USEROPT_PAGERHOST 3 -#define YAHOO_PAGER_HOST "cs.yahoo.com" +#define YAHOO_PAGER_HOST "scs.yahoo.com" #define USEROPT_PAGERPORT 4 #define YAHOO_PAGER_PORT 5050 @@ -122,7 +123,9 @@ YAHOO_SERVICE_GAMEMSG = 0x2a, YAHOO_SERVICE_FILETRANSFER = 0x46, YAHOO_SERVICE_NOTIFY = 0x4B, + YAHOO_SERVICE_AUTHRESP = 0x54, YAHOO_SERVICE_LIST = 0x55, + YAHOO_SERVICE_AUTH = 0x57, YAHOO_SERVICE_ADDBUDDY = 0x83, YAHOO_SERVICE_REMBUDDY = 0x84 }; @@ -392,14 +395,20 @@ account_online(gc); serv_finish_login(gc); g_snprintf(gc->displayname, sizeof(gc->displayname), "%s", pair->value); - do_import(gc, NULL); yd->logged_in = TRUE; - /* this requests the list. i have a feeling that this is very evil */ - newpkt = yahoo_packet_new(YAHOO_SERVICE_LIST, YAHOO_STATUS_OFFLINE, 0); - yahoo_send_packet(yd, newpkt); - yahoo_packet_free(newpkt); - } + /* this requests the list. i have a feeling that this is very evil + * + * scs.yahoo.com sends you the list before this packet without it being + * requested + * + * do_import(gc, NULL); + * newpkt = yahoo_packet_new(YAHOO_SERVICE_LIST, YAHOO_STATUS_OFFLINE, 0); + * yahoo_send_packet(yd, newpkt); + * yahoo_packet_free(newpkt); + */ + + } break; case 8: /* how many online buddies we have */ break; @@ -426,7 +435,7 @@ gamestate = YAHOO_STATUS_GAME; if (state == YAHOO_STATUS_AVAILABLE) serv_got_update(gc, name, 1, 0, 0, 0, gamestate, 0); - else + else serv_got_update(gc, name, 1, 0, 0, 0, (state << 2) | UC_UNAVAILABLE | gamestate, 0); if (state == YAHOO_STATUS_CUSTOM) { gpointer val = g_hash_table_lookup(yd->hash, name); @@ -470,6 +479,7 @@ if (pair->key != 87) continue; + do_import(gc, NULL); lines = g_strsplit(pair->value, "\n", -1); for (tmp = lines; *tmp; tmp++) { split = g_strsplit(*tmp, ":", 2); @@ -666,6 +676,197 @@ } else connection_has_mail(gc, count, NULL, NULL, "http://mail.yahoo.com/"); } +/* This is the y64 alphabet... it's like base64, but has a . and a _ */ +char base64digits[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._"; + +/* This is taken from Sylpheed by Hiroyuki Yamamoto. We have our own tobase64 function + * in util.c, but it has a bug I don't feel like finding right now ;) */ +void to_y64(unsigned char *out, const unsigned char *in, int inlen) + /* raw bytes in quasi-big-endian order to base 64 string (NUL-terminated) */ +{ + for (; inlen >= 3; inlen -= 3) + { + *out++ = base64digits[in[0] >> 2]; + *out++ = base64digits[((in[0] << 4) & 0x30) | (in[1] >> 4)]; + *out++ = base64digits[((in[1] << 2) & 0x3c) | (in[2] >> 6)]; + *out++ = base64digits[in[2] & 0x3f]; + in += 3; + } + if (inlen > 0) + { + unsigned char fragment; + + *out++ = base64digits[in[0] >> 2]; + fragment = (in[0] << 4) & 0x30; + if (inlen > 1) + fragment |= in[1] >> 4; + *out++ = base64digits[fragment]; + *out++ = (inlen < 2) ? '-' : base64digits[(in[1] << 2) & 0x3c]; + *out++ = '-'; + } + *out = '\0'; +} + +static void yahoo_process_auth(struct gaim_connection *gc, struct yahoo_packet *pkt) +{ + char *seed = NULL; + char *sn = NULL; + GSList *l = pkt->hash; + struct yahoo_data *yd = gc->proto_data; + + while (l) { + struct yahoo_pair *pair = l->data; + if (pair->key == 94) + seed = pair->value; + if (pair->key == 1) + sn = pair->value; + l = l->next; + } + + if (seed) { + struct yahoo_packet *pack; + + /* So, Yahoo has stopped supporting its older clients in India, and undoubtedly + * will soon do so in the rest of the world. + * + * The new clients use this authentication method. I warn you in advance, it's + * bizzare, convoluted, inordinately complicated. It's also no more secure than + * crypt() was. The only purpose this scheme could serve is to prevent third + * part clients from connecting to their servers. + * + * Sorry, Yahoo. + */ + + md5_byte_t result[16]; + md5_state_t ctx; + char *crypt_result; + char *password_hash = g_malloc(25); + char *crypt_hash = g_malloc(25); + char *hash_string_p = g_malloc(50 + strlen(sn)); + char *hash_string_c = g_malloc(50 + strlen(sn)); + + int ordering; + char checksum; + + char sv; + + char *result6 = g_malloc(25); + char *result96 = g_malloc(25); + + sv = seed[15]; + checksum = sv % 16; + + /* I bet there's some really cool mathematical pattern here if I looked hard enough. + * But, this works. */ + switch (checksum) { + case 1: + case 6: + case 9: + case 14: + + checksum = seed[9]; + break; + case 3: + case 11: + checksum = seed[1]; + break; + case 4: + case 12: + checksum = seed[3]; + break; + case 5: + case 8: + case 13: + case 0: + checksum = seed[7]; + break; + } + checksum = seed[checksum % 16]; + + ordering = sv % 8; + + md5_init(&ctx); + md5_append(&ctx, gc->password, strlen(gc->password)); + md5_finish(&ctx, result); + to_y64(password_hash, result, 16); + + md5_init(&ctx); + crypt_result = yahoo_crypt(gc->password, "$1$_2S43d5f$"); + md5_append(&ctx, crypt_result, strlen(crypt_result)); + md5_finish(&ctx, result); + to_y64(crypt_hash, result, 16); + + /* I bet there's a nice pattern here, too. */ + switch (ordering) { + case 1: + case 6: + g_snprintf(hash_string_p, strlen(sn) + 50, + "%c%s%s%s", checksum, gc->username, seed, password_hash); + g_snprintf(hash_string_c, strlen(sn) + 50, + "%c%s%s%s", checksum, gc->username, seed, crypt_hash); + break; + case 2: + case 7: + g_snprintf(hash_string_p, strlen(sn) + 50, + "%c%s%s%s", checksum, seed, password_hash, gc->username); + g_snprintf(hash_string_c, strlen(sn) + 50, + "%c%s%s%s", checksum, seed, crypt_hash, gc->username); + break; + case 3: + g_snprintf(hash_string_p, strlen(sn) + 50, + "%c%s%s%s", checksum, gc->username, password_hash, seed); + g_snprintf(hash_string_c, strlen(sn) + 50, + "%c%s%s%s", checksum, gc->username, crypt_hash, seed); + break; + case 4: + g_snprintf(hash_string_p, strlen(sn) + 50, + "%c%s%s%s", checksum, gc->username, password_hash, seed); + g_snprintf(hash_string_c, strlen(sn) + 50, + "%c%s%s%s", checksum, gc->username, crypt_hash, seed); + break; + case 0: + case 5: + g_snprintf(hash_string_p, strlen(sn) + 50, + "%c%s%s%s", checksum, password_hash, gc->username, seed); + g_snprintf(hash_string_c, strlen(sn) + 50, + "%c%s%s%s", checksum, crypt_hash, gc->username, seed); + break; + } + + debug_printf("\nPassword: %s\n", hash_string_p); + debug_printf("Crypt: %s\n\n", hash_string_c); + + md5_init(&ctx); + md5_append(&ctx, hash_string_p, strlen(hash_string_c)); + md5_finish(&ctx, result); + to_y64(result6, result, 16); + + md5_init(&ctx); + md5_append(&ctx, hash_string_c, strlen(hash_string_c)); + md5_finish(&ctx, result); + to_y64(result96, result, 16); + + md5_init(&ctx); + md5_append(&ctx, gc->password, strlen(gc->password)); + md5_finish(&ctx, result); + to_y64(password_hash, result, 16); + + pack = yahoo_packet_new(YAHOO_SERVICE_AUTHRESP, YAHOO_STATUS_AVAILABLE, 0); + yahoo_packet_hash(pack, 0, gc->username); + yahoo_packet_hash(pack, 6, result6); + yahoo_packet_hash(pack, 96, result96); + yahoo_packet_hash(pack, 1, gc->username); + + yahoo_send_packet(yd, pack); + + g_free(password_hash); + g_free(crypt_hash); + g_free(hash_string_p); + g_free(hash_string_c); + + yahoo_packet_free(pack); + } +} static void yahoo_packet_process(struct gaim_connection *gc, struct yahoo_packet *pkt) { @@ -695,6 +896,9 @@ case YAHOO_SERVICE_LIST: yahoo_process_list(gc, pkt); break; + case YAHOO_SERVICE_AUTH: + yahoo_process_auth(gc, pkt); + break; default: debug_printf("unhandled service 0x%02x\n", pkt->service); break; @@ -785,12 +989,9 @@ yd = gc->proto_data; yd->fd = source; - pkt = yahoo_packet_new(YAHOO_SERVICE_LOGON, YAHOO_STATUS_AVAILABLE, 0); + pkt = yahoo_packet_new(YAHOO_SERVICE_AUTH, YAHOO_STATUS_AVAILABLE, 0); - yahoo_packet_hash(pkt, 0, gc->username); yahoo_packet_hash(pkt, 1, gc->username); - yahoo_packet_hash(pkt, 6, yahoo_crypt(gc->password, "$1$_2S43d5f$")); - yahoo_send_packet(yd, pkt); yahoo_packet_free(pkt); @@ -808,15 +1009,16 @@ yd->hash = g_hash_table_new(g_str_hash, g_str_equal); yd->games = g_hash_table_new(g_str_hash, g_str_equal); +#if 0 if (!g_strncasecmp(user->proto_opt[USEROPT_PAGERHOST], "scs.yahoo.com", strlen("scs.yahoo.com"))) { - /* As of this morning, Yahoo is no longer supporting its server at scs.yahoo.com - * I don't like to edit the preferences in a prpl, but we'll keep this here - * for a while until everybody's happy again. -5 Feb 2002*/ + /* Figured out the new auth method */ debug_printf("Setting new Yahoo! server.\n"); g_snprintf(user->proto_opt[USEROPT_PAGERHOST], strlen("cs.yahoo.com") + 1, "cs.yahoo.com"); save_prefs(); } - + +#endif /* 0 */ + if (proxy_connect(user->proto_opt[USEROPT_PAGERHOST][0] ? user->proto_opt[USEROPT_PAGERHOST] : YAHOO_PAGER_HOST, user->proto_opt[USEROPT_PAGERPORT][0] ? |
From: Sean E. <sea...@us...> - 2002-04-14 07:50:54
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv27341/src Modified Files: util.c Log Message: Please test this. Yahoo changed it's authentication method and has started disallowing older clients (and third party clients using the older method) to connect to their servers. This impliments the new authentication method so that we won't get blocked from Yahoo, and Indian users (who have already been blocked) can connect again. It's not perfect--it should fail about 1 out of 16 times. It's an easy bug to find and fix, but I want to go to bed now. If you find yourself failing to connect more than this 1 of 16, please let me know, and I'll tell you how to help me debug it. Thanks. Index: util.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/util.c,v retrieving revision 1.115 retrieving revision 1.116 diff -u -d -r1.115 -r1.116 --- util.c 28 Mar 2002 20:07:45 -0000 1.115 +++ util.c 14 Apr 2002 07:50:48 -0000 1.116 @@ -460,7 +460,7 @@ char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" "0123456789+/"; - +/* XXX Find bug */ char *tobase64(const char *text) { char *out = NULL; |
From: Rob F. <rob...@us...> - 2002-04-12 03:30:27
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv23185 Modified Files: configure.ac Log Message: bleep Index: configure.ac =================================================================== RCS file: /cvsroot/gaim/gaim/configure.ac,v retrieving revision 1.50 retrieving revision 1.51 diff -u -d -r1.50 -r1.51 --- configure.ac 30 Mar 2002 05:22:15 -0000 1.50 +++ configure.ac 12 Apr 2002 03:30:22 -0000 1.51 @@ -1,7 +1,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(src/aim.c) AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE([gaim], [0.56]) +AM_INIT_AUTOMAKE([gaim], [20020411cvs]) AC_PATH_PROG(sedpath, sed) |
From: Rob F. <rob...@us...> - 2002-04-12 02:57:23
|
Update of /cvsroot/gaim/gaim/po In directory usw-pr-cvs1:/tmp/cvs-serv15807 Modified Files: de.po es.po fi.po fr.po it.po ko.po pl.po ru.po sk.po sv.po zh_CN.po Log Message: popopopo Index: de.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/de.po,v retrieving revision 1.34 retrieving revision 1.35 diff -u -d -r1.34 -r1.35 --- de.po 31 Mar 2002 15:13:12 -0000 1.34 +++ de.po 12 Apr 2002 02:57:18 -0000 1.35 @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Gaim 0.9.19\n" -"POT-Creation-Date: 2002-03-31 10:52+0200\n" +"POT-Creation-Date: 2002-04-11 22:46-0700\n" "PO-Revision-Date: 2002-03-31 11:29+0200\n" "Last-Translator: Karsten Weiss <kn...@gm...>\n" "Language-Team: de <de...@li...>\n" @@ -23,35 +23,6 @@ "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" [...1617 lines suppressed...] +#~ msgid "Available for friends only" +#~ msgstr "Nur für Freunde erreichbar" + +#~ msgid "Away for friends only" +#~ msgstr "Nur für Freunde abwesend" + +#~ msgid "Invisible" +#~ msgstr "Unsichtbar" + +#~ msgid "Invisible for friends only" +#~ msgstr "Nur für Freunde unsichtbar" + +#~ msgid "" +#~ "\n" +#~ "\n" +#~ "IRC: #gaim on irc.openprojects.net" +#~ msgstr "" +#~ "\n" +#~ "\n" +#~ "IRC: #gaim auf irc.openprojects.net" Index: es.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/es.po,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- es.po 22 Mar 2002 23:32:43 -0000 1.20 +++ es.po 12 Apr 2002 02:57:19 -0000 1.21 @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2002-02-17 20:13+0000\n" +"POT-Creation-Date: 2002-04-11 22:46-0700\n" "PO-Revision-Date: 2002-02-23 18:05+0100\n" "Last-Translator: Amaya Rodrigo <am...@de...>\n" "Language-Team: <es...@li...>\n" @@ -13,35 +13,6 @@ "Content-Type: text/plain; charset=iso-8859-15\n" "Content-Transfer-Encoding: 8bit\n" [...3926 lines suppressed...] +#~ msgid "No sound for buddies signed on when you log in" +#~ msgstr "Sin sonidos para amigos ya conectados cuando se conecta" + +#~ msgid "KFM (The KDE browser)" +#~ msgstr "KFM (El Navegador de KDE)" + +#~ msgid "Appearance" +#~ msgstr "Apariencia" + +#~ msgid "Font Properties" +#~ msgstr "Propiedades de Fuente" + +#~ msgid "Use devil icons" +#~ msgstr "Usar iconos malvados" + +#~ msgid "Buddy Chats" +#~ msgstr "Conversaciones con amigos" + +#~ msgid "Create new message" +#~ msgstr "Crear un nuevo mensaje" Index: fi.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/fi.po,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- fi.po 26 Mar 2002 01:56:06 -0000 1.4 +++ fi.po 12 Apr 2002 02:57:19 -0000 1.5 @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: gaim 0.55\n" -"POT-Creation-Date: 2002-03-14 22:24-0800\n" +"POT-Creation-Date: 2002-04-11 22:46-0700\n" "PO-Revision-Date: 2002-03-23 20:32+0200\n" "Last-Translator: Tero Kuusela <te...@su...>\n" "Language-Team: Finnish <fi...@li...>\n" @@ -30,11 +30,13 @@ msgstr "Virhe luettaessa socketista." [...3088 lines suppressed...] +#~ msgid "Sound when received message begins conversation" +#~ msgstr "ääni kun vastaanotettu viesti aloittaa keskustelun" + +#~ msgid "Sound when message is received" +#~ msgstr "ääni kun viesti vastaanotetaan" + +#~ msgid "Sound when message is sent" +#~ msgstr "ääni kun viesti lähetetään" + +#~ msgid "Sound in chat rooms when people enter" +#~ msgstr "ääni keskusteluhuoneissa ihmisten saapuessa" + +#~ msgid "Sound in chat rooms when people leave" +#~ msgstr "ääni keskusteluhuoneissa ihmisten poistuessa" + +#~ msgid "Sound in chat rooms when you talk" +#~ msgstr "ääni keskusteluhuoneissa viestittäessäsi" + +#~ msgid "Sound in chat rooms when others talk" +#~ msgstr "ääni keskusteluhuoneissa muiden viestittäessä" Index: fr.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/fr.po,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- fr.po 24 Mar 2002 08:43:07 -0000 1.26 +++ fr.po 12 Apr 2002 02:57:19 -0000 1.27 @@ -6,42 +6,13 @@ msgid "" msgstr "" "Project-Id-Version: Gaim 0.9.20\n" -"POT-Creation-Date: 2002-03-23 22:57-0600\n" +"POT-Creation-Date: 2002-04-11 22:46-0700\n" "PO-Revision-Date: 2002-03-24 02:00GMT\n" "Last-Translator: Stéphane Pontier <ste...@fr...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" [...2222 lines suppressed...] +#~ msgid "Available for friends only" +#~ msgstr "Disponible pour les amis seulement" + +#~ msgid "Away for friends only" +#~ msgstr "Absent pour les amis seulement" + +#~ msgid "Invisible" +#~ msgstr "Invisible" + +#~ msgid "Invisible for friends only" +#~ msgstr "Invisible pour les amis seulement" + +#~ msgid "" +#~ "\n" +#~ "\n" +#~ "IRC: #gaim on irc.openprojects.net" +#~ msgstr "" +#~ "\n" +#~ "\n" +#~ "IRC: #gaim sur irc.openprojects.net" Index: it.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/it.po,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- it.po 18 Mar 2002 03:43:56 -0000 1.2 +++ it.po 12 Apr 2002 02:57:19 -0000 1.3 @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Gaim 0.53\n" -"POT-Creation-Date: 2002-03-14 22:24-0800\n" +"POT-Creation-Date: 2002-04-11 22:46-0700\n" "PO-Revision-Date: 2002-03-13 19:26+0100\n" "Last-Translator: Salvatore di Maggio <tit...@li...>\n" "Language-Team: Italian <it...@li...>\n" @@ -30,11 +30,13 @@ msgstr "Errore di lettura dal socket." [...3047 lines suppressed...] + +#~ msgid "Sound in chat rooms when you talk" +#~ msgstr "Suona quando tu parli in una stanza" + +#~ msgid "Sound in chat rooms when others talk" +#~ msgstr "Suona quando gli altri parlano in una stanza" + #~ msgid "Available" #~ msgstr "Presente" @@ -3095,9 +3162,6 @@ #~ msgid "Invisible for friends only" #~ msgstr "Invisibile solo per gli amici" - -#~ msgid "Unavailable" -#~ msgstr "Occupato" #~ msgid "" #~ "\n" Index: ko.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/ko.po,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- ko.po 18 Mar 2002 03:43:57 -0000 1.23 +++ ko.po 12 Apr 2002 02:57:19 -0000 1.24 @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: gaim 0.48\n" -"POT-Creation-Date: 2002-03-14 22:24-0800\n" +"POT-Creation-Date: 2002-04-11 22:46-0700\n" "PO-Revision-Date: 2001-11-07 16:22+0900\n" "Last-Translator: ÀÌÈ£¼® <al...@de...>\n" "Language-Team: artsilly and alee team <>\n" @@ -33,12 +33,14 @@ msgstr "¼ÒÄÏ¿¡¼ Àд Áß¿¡ ¿¡·¯°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù." [...3547 lines suppressed...] +#~ msgid "Sound in chat rooms when you talk" +#~ msgstr "´ç½ÅÀÌ Ã¤ÆÃ¹æ¿¡¼ ¸»ÇÒ ¶§ ¼Ò¸® ³»±â" + +# src/prefs.c:1702 +#~ msgid "Sound in chat rooms when others talk" +#~ msgstr "´Ù¸¥ »ç¶÷ÀÌ Ã¤ÆÃ¹æ¿¡¼ ¸»ÇÒ ¶§ ¼Ò¸® ³»±â" + #~ msgid "Available" #~ msgstr "¸Þ½ÃÁö ¹ÞÀ» ¼ö ÀÖÀ½" @@ -3719,9 +3790,6 @@ #~ msgid "Invisible for friends only" #~ msgstr "Ä£±¸µé¿¡°Ô¸¸ º¸ÀÌÁö ¾Êµµ·Ï ÇÔ" - -#~ msgid "Unavailable" -#~ msgstr "¸Þ½ÃÁö ¹ÞÀ» ¼ö ¾øÀ½" # src/buddy.c:2225 #~ msgid "Handshake" Index: pl.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/pl.po,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- pl.po 19 Mar 2002 23:36:24 -0000 1.10 +++ pl.po 12 Apr 2002 02:57:19 -0000 1.11 @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: gaim 0.55\n" -"POT-Creation-Date: 2002-03-14 22:24-0800\n" +"POT-Creation-Date: 2002-04-11 22:46-0700\n" "PO-Revision-Date: 2002-03-20 23:30+0200\n" "Last-Translator: Przemys³aw Su³ek <pb...@li...>\n" "Language-Team: POLISH <pl...@li...>\n" @@ -30,11 +30,13 @@ msgstr "B³±d podczas odczytu z gniazda sieciowego." [...3038 lines suppressed...] + +#~ msgid "Sound in chat rooms when you talk" +#~ msgstr "D¼wiêk w pokojach chat gdy rozmawiasz" + +#~ msgid "Sound in chat rooms when others talk" +#~ msgstr "D¼wiêk w pokojach chat gdy inni rozmawiaj±" + #~ msgid "Available" #~ msgstr "Dostêpny" @@ -3079,9 +3146,6 @@ #~ msgid "Invisible for friends only" #~ msgstr "Niewidoczny tylko dla przyjació³" - -#~ msgid "Unavailable" -#~ msgstr "Niedostêpny" #~ msgid "" #~ "\n" Index: ru.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/ru.po,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- ru.po 3 Apr 2002 14:26:18 -0000 1.8 +++ ru.po 12 Apr 2002 02:57:19 -0000 1.9 @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: gaim 0.48\n" -"POT-Creation-Date: 2002-03-22 13:20+0300\n" +"POT-Creation-Date: 2002-04-11 22:46-0700\n" "PO-Revision-Date: 2002-03-22 14:05+0300\n" "Last-Translator: Grigory Bakunov <bl...@as...>\n" "Language-Team: RUSSIAN <RU...@li...>\n" @@ -13,35 +13,6 @@ "Content-Type: text/plain; charset=KOI8-R\n" "Content-Transfer-Encoding: 8bit\n" [...2137 lines suppressed...] +#~ msgid "Available for friends only" +#~ msgstr "äÏÓÔÕÐÅÎ ÔÏÌØËÏ ÄÌÑ ÄÒÕÚÅÊ" + +#~ msgid "Away for friends only" +#~ msgstr "ïÔÏÛÅÌ ÔÏÌØËÏ ÄÌÑ ÄÒÕÚÅÊ" + +#~ msgid "Invisible" +#~ msgstr "îÅ×ÉÄÉÍÙÊ" + +#~ msgid "Invisible for friends only" +#~ msgstr "îÅ×ÉÄÉÍ ÔÏÌØËÏ ÄÌÑ ÄÒÕÚÅÊ" + +#~ msgid "" +#~ "\n" +#~ "\n" +#~ "IRC: #gaim on irc.openprojects.net" +#~ msgstr "" +#~ "\n" +#~ "\n" +#~ "IRC: #gaim on irc.openprojects.net" Index: sk.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/sk.po,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- sk.po 18 Mar 2002 03:43:57 -0000 1.2 +++ sk.po 12 Apr 2002 02:57:19 -0000 1.3 @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: gaim 0.48\n" -"POT-Creation-Date: 2002-03-14 22:24-0800\n" +"POT-Creation-Date: 2002-04-11 22:46-0700\n" "PO-Revision-Date: 2001-02-22 00:00\n" "Last-Translator: Daniel Re¾ný <da...@re...>\n" "Language-Team: SK <SK...@li...>\n" @@ -30,11 +30,13 @@ msgstr "Chyba pri èítaní zo socketu." [...3060 lines suppressed...] + +#~ msgid "Sound in chat rooms when you talk" +#~ msgstr "Zvuk v chatovacej miestnosti keï sa rozprávate" + +#~ msgid "Sound in chat rooms when others talk" +#~ msgstr "Zvuk v chatovacej miestnosti keï sa rozprávaju iní" + #~ msgid "Available" #~ msgstr "Prítomný" @@ -3094,9 +3158,6 @@ #~ msgid "Invisible for friends only" #~ msgstr "Neviditeµný iba pre priateµov" - -#~ msgid "Unavailable" -#~ msgstr "Nedostupný" #~ msgid "Handshake" #~ msgstr "Nadväzujem spojenie" Index: sv.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/sv.po,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- sv.po 18 Mar 2002 03:43:57 -0000 1.3 +++ sv.po 12 Apr 2002 02:57:20 -0000 1.4 @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gaim\n" -"POT-Creation-Date: 2002-03-14 22:24-0800\n" +"POT-Creation-Date: 2002-04-11 22:46-0700\n" "PO-Revision-Date: 2001-12-02 19:44+0100\n" "Last-Translator: Christian Rose <me...@me...>\n" "Language-Team: Swedish <sv...@li...>\n" @@ -32,11 +32,12 @@ msgstr "Fel vid läsning från uttag (socket)." [...3085 lines suppressed...] #~ msgid "Available" #~ msgstr "Tillgänglig" @@ -3119,9 +3185,6 @@ #~ msgid "Invisible for friends only" #~ msgstr "Osynlig endast för vänner" -#~ msgid "Unavailable" -#~ msgstr "Otillgänglig" - #~ msgid "Handshake" #~ msgstr "Handskakning" @@ -3192,6 +3255,3 @@ #~ msgid "Help!" #~ msgstr "Hjälp!" - -#~ msgid "Error while writing to socket." -#~ msgstr "Fel vid skrivande till uttag (socket)." Index: zh_CN.po =================================================================== RCS file: /cvsroot/gaim/gaim/po/zh_CN.po,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- zh_CN.po 18 Mar 2002 03:43:57 -0000 1.20 +++ zh_CN.po 12 Apr 2002 02:57:20 -0000 1.21 @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.9.19\n" -"POT-Creation-Date: 2002-03-14 22:24-0800\n" +"POT-Creation-Date: 2002-04-11 22:46-0700\n" "PO-Revision-Date: 2000-06-17 17:55+08\n" "Last-Translator: hashao <ha...@ch...>\n" "Language-Team: Simplified Chinese <zh...@li...>\n" @@ -37,12 +37,12 @@ #: src/protocols/gg/gg.c:194 [...3087 lines suppressed...] + +#~ msgid "Sound in chat rooms when you talk" +#~ msgstr "ÄãÔÚÁÄÌìÊÒÀï˵»°µÄÉùÒô" + +#~ msgid "Sound in chat rooms when others talk" +#~ msgstr "±ðÈËÔÚÁÄÌìÊÒÀï˵»°µÄÉùÒô" + #~ msgid "Gaim - Buddy" #~ msgstr "Gaim - ÅóÓÑ" @@ -3258,9 +3317,6 @@ #~ msgid "Text Only" #~ msgstr "ÎÄ×ÖÑÕÉ«" - -#~ msgid "Sound Events" -#~ msgstr "ÉùÒô" #~ msgid "Sound when message is first received" #~ msgstr "ÊÕµ½ÐÅÏ¢Éù" |
From: Rob F. <rob...@us...> - 2002-04-12 02:54:51
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv15340 Modified Files: NEWS Log Message: Here. Index: NEWS =================================================================== RCS file: /cvsroot/gaim/gaim/NEWS,v retrieving revision 1.123 retrieving revision 1.124 diff -u -d -r1.123 -r1.124 --- NEWS 30 Mar 2002 05:22:15 -0000 1.123 +++ NEWS 12 Apr 2002 02:54:48 -0000 1.124 @@ -1,6 +1,20 @@ -=[ Gaim ]=- The Pimpin' Penguin AIM Clone That's Good For The Soul! -0.56: +0.56 (04/11/2002): + Rob: Well, what do you know. I have another headache. I always have + these damned headaches. I got pissed off with the way GtkTree looks. + I wanted to move to using GtkCTree. I think they're pretty. + Unfortunately, GtkCTree sucks. After a little digging through + the code, I managed to molest GtkTree into looking like + GtkCTree. Thanks to everyone that helped track down that one + annoying style problem. + + Sean: Hello. This is another minor release while Rob and I finish + up on some bigger projects. We're reworking a lot of the UI to make + it easier to use, nicer looking, and more compatible with gtk2. + I've also been trying to bring the Yahoo plugin up to date, so it + will work for Indian users and avoid a potential problem in the near + future. 0.55 (03/29/2002): Rob: 0.55 is here. I've been away for a few days on business. Sean |
From: Rob F. <rob...@us...> - 2002-04-12 02:49:08
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv14155 Modified Files: ChangeLog Log Message: noweirdvimcolor Index: ChangeLog =================================================================== RCS file: /cvsroot/gaim/gaim/ChangeLog,v retrieving revision 1.449 retrieving revision 1.450 diff -u -d -r1.449 -r1.450 --- ChangeLog 12 Apr 2002 02:46:51 -0000 1.449 +++ ChangeLog 12 Apr 2002 02:49:05 -0000 1.450 @@ -13,7 +13,7 @@ (Thanks Jim Seymour, Vann, Robert McQueen) * Oscar group syncronization (Thanks, Mark Doliner) * ICQ Authorization via Oscar (Thanks, Mark Doliner) - + version 0.55 (03/29/2002): * Jabber improvements (Thanks Jim Seymour) * Various sound cleanups (Thanks Robert McQueen) |
From: Rob F. <rob...@us...> - 2002-04-12 02:46:54
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv13727 Modified Files: ChangeLog Log Message: nomake Index: ChangeLog =================================================================== RCS file: /cvsroot/gaim/gaim/ChangeLog,v retrieving revision 1.448 retrieving revision 1.449 diff -u -d -r1.448 -r1.449 --- ChangeLog 12 Apr 2002 02:43:50 -0000 1.448 +++ ChangeLog 12 Apr 2002 02:46:51 -0000 1.449 @@ -8,9 +8,9 @@ * Buddylist looks a little better * Fixed MSN privacy settings * Group deletion fix (Thanks Mark Doliner) - * Alias/Group syncronization for Jabber (Thanks JSeymour) + * Alias/Group syncronization for Jabber (Thanks JSeymour) * Fixed broken signal handling in gdm-started GNOME sessions - (Thanks Jim Seymour, Vann, Robert McQueen) + (Thanks Jim Seymour, Vann, Robert McQueen) * Oscar group syncronization (Thanks, Mark Doliner) * ICQ Authorization via Oscar (Thanks, Mark Doliner) |
From: Rob F. <rob...@us...> - 2002-04-12 02:43:53
|
Update of /cvsroot/gaim/gaim/src/protocols/oscar In directory usw-pr-cvs1:/tmp/cvs-serv13116/src/protocols/oscar Modified Files: aim.h im.c oscar.c Log Message: the kingant ate sean's picnic, too Index: aim.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/aim.h,v retrieving revision 1.38 retrieving revision 1.39 diff -u -d -r1.38 -r1.39 --- aim.h 12 Apr 2002 02:40:41 -0000 1.38 +++ aim.h 12 Apr 2002 02:43:50 -0000 1.39 @@ -832,6 +832,17 @@ void *destructor; /* used internally only */ }; +/* Valid values for channel 4 args->type */ +#define AIM_ICQMSG_AUTHREQUEST 0x0006 +#define AIM_ICQMSG_AUTHDENIED 0x0007 +#define AIM_ICQMSG_AUTHGRANTED 0x0008 + +struct aim_incomingim_ch4_args { + fu32_t uin; /* Of the sender of the ICBM */ + fu16_t type; + char *msg; /* Reason for auth request, deny, or accept */ +}; + faim_export int aim_send_rtfmsg(aim_session_t *sess, struct aim_sendrtfmsg_args *args); faim_export int aim_send_im_ext(aim_session_t *sess, struct aim_sendimext_args *args); faim_export int aim_send_im(aim_session_t *, const char *destsn, unsigned short flags, const char *msg); @@ -844,6 +855,7 @@ faim_export aim_conn_t *aim_directim_connect(aim_session_t *, const char *sn, const char *addr, const fu8_t *cookie); faim_export aim_conn_t *aim_sendfile_initiate(aim_session_t *, const char *destsn, const char *filename, fu16_t numfiles, fu32_t totsize); +faim_export int aim_send_im_ch4(aim_session_t *sess, char *sn, fu16_t type, fu8_t *message); faim_export aim_conn_t *aim_getfile_initiate(aim_session_t *sess, aim_conn_t *conn, const char *destsn); faim_export int aim_oft_getfile_request(aim_session_t *sess, aim_conn_t *conn, const char *name, int size); Index: im.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/im.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- im.c 10 Dec 2001 06:13:18 -0000 1.20 +++ im.c 12 Apr 2002 02:43:50 -0000 1.21 @@ -732,6 +732,84 @@ return 0; } +/* + * This can be used to send an ICQ authorization reply (deny or grant). It is the "old way." + * The new way is to use SSI. I like the new way a lot better. This seems like such a hack, + * mostly because it's in network byte order. Figuring this stuff out sometimes takes a while, + * but thats ok, because it gives me time to try to figure out what kind of drugs the AOL people + * were taking when they merged the two protocols. + * + * sn is the destination screen name + * type is the type of message. 0x0007 for authorization denied. 0x0008 for authorization granted + * message is the message you want to send, it should be null terminated + */ +faim_export int aim_send_im_ch4(aim_session_t *sess, char *sn, fu16_t type, fu8_t *message) +{ + aim_conn_t *conn; + aim_frame_t *fr; + aim_snacid_t snacid; + int i; + + if (!sess || !(conn = aim_conn_findbygroup(sess, 0x0002))) + return -EINVAL; + + if (!sn || !type || !message) + return -EINVAL; + + if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+8+3+strlen(sn)+12+strlen(message)+1+4))) + return -ENOMEM; + + snacid = aim_cachesnac(sess, 0x0004, 0x0006, 0x0000, NULL, 0); + aim_putsnac(&fr->data, 0x0004, 0x0006, 0x0000, snacid); + + /* + * Cookie + */ + for (i=0; i<8; i++) + aimbs_put8(&fr->data, (fu8_t)rand()); + + /* + * Channel (4) + */ + aimbs_put16(&fr->data, 0x0004); + + /* + * Dest sn + */ + aimbs_put8(&fr->data, strlen(sn)); + aimbs_putraw(&fr->data, sn, strlen(sn)); + + /* + * TLV t(0005) + * + * ICQ data (the UIN and the message). + */ + aimbs_put16(&fr->data, 0x0005); + aimbs_put16(&fr->data, 4 + 2+2+strlen(message)+1); + + /* + * Your UIN + */ + aimbs_putle32(&fr->data, atoi(sess->sn)); + + /* + * TLV t(type) l(strlen(message)+1) v(message+NULL) + */ + aimbs_putle16(&fr->data, type); + aimbs_putle16(&fr->data, strlen(message)+1); + aimbs_putraw(&fr->data, message, strlen(message)+1); + + /* + * TLV t(0006) l(0000) v() + */ + aimbs_put16(&fr->data, 0x0006); + aimbs_put16(&fr->data, 0x0000); + + aim_tx_enqueue(sess, fr); + + return 0; +} + static int outgoingim(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) { int i, ret = 0; @@ -1519,6 +1597,33 @@ return ret; } +static int incomingim_ch4(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, fu16_t channel, aim_userinfo_t *userinfo, aim_tlvlist_t *tlvlist, fu8_t *cookie) +{ + aim_bstream_t meat; + aim_rxcallback_t userfunc; + aim_tlv_t *block; + struct aim_incomingim_ch4_args args; + int ret; + + /* + * Make a bstream for the meaty part. Yum. Meat. + */ + if (!(block = aim_gettlv(tlvlist, 0x0005, 1))) + return -1; + aim_bstream_init(&meat, block->value, block->length); + + args.uin = aimbs_getle32(&meat); + args.type = aimbs_getle16(&meat); + args.msg = aimbs_getraw(&meat, aimbs_getle16(&meat)); + + if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) + ret = userfunc(sess, rx, channel, userinfo, &args); + + free(args.msg); + + return ret; +} + /* * It can easily be said that parsing ICBMs is THE single * most difficult thing to do in the in AIM protocol. In @@ -1556,7 +1661,10 @@ * Channel 0x0002 is the Rendevous channel, which * is where Chat Invitiations and various client-client * connection negotiations come from. - * + * + * Channel 0x0004 is used for ICQ authorization, or + * possibly any system notice. + * */ channel = aimbs_get16(bs); @@ -1600,6 +1708,13 @@ ret = incomingim_ch2(sess, mod, rx, snac, channel, &userinfo, tlvlist, cookie); + aim_freetlvchain(&tlvlist); + + } else if (channel == 4) { + aim_tlvlist_t *tlvlist; + + tlvlist = aim_readtlvchain(bs); + ret = incomingim_ch4(sess, mod, rx, snac, channel, &userinfo, tlvlist, cookie); aim_freetlvchain(&tlvlist); } else { Index: oscar.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/oscar.c,v retrieving revision 1.130 retrieving revision 1.131 diff -u -d -r1.130 -r1.131 --- oscar.c 12 Apr 2002 02:40:41 -0000 1.130 +++ oscar.c 12 Apr 2002 02:43:50 -0000 1.131 @@ -161,6 +161,11 @@ gboolean request; }; +struct icq_auth { + struct gaim_connection *gc; + fu32_t uin; +}; + static struct direct_im *find_direct_im(struct oscar_data *od, const char *who) { GSList *d = od->direct_ims; char *n = g_strdup(normalize(who)); @@ -1440,6 +1445,77 @@ return 1; } +static void gaim_icq_authgrant(gpointer w, struct icq_auth *data) { + char *uin, message; + struct oscar_data *od = (struct oscar_data *)data->gc->proto_data; + uin = g_strdup_printf("%d", data->uin); + message = 0; + aim_send_im_ch4(od->sess, uin, AIM_ICQMSG_AUTHGRANTED, &message); + show_got_added(data->gc, NULL, uin, NULL, NULL); + g_free(uin); + data->uin = 0; +} + +static void gaim_icq_authdeny(gpointer w, struct icq_auth *data) { + if (data->uin) { + char *uin, *message; + struct oscar_data *od = (struct oscar_data *)data->gc->proto_data; + uin = g_strdup_printf("%d", data->uin); + message = g_strdup_printf("No reason given."); + aim_send_im_ch4(od->sess, uin, AIM_ICQMSG_AUTHDENIED, message); + g_free(uin); + g_free(message); + } + g_free(data); +} + +/* + * For when other people ask you for authorization + */ +static void gaim_icq_authask(struct gaim_connection *gc, fu32_t uin, char *msg) { + struct icq_auth *data = g_new(struct icq_auth, 1); + /* The first 6 chars of the message are some type of alien gibberish, so skip them */ + char *dialog_msg = g_strdup_printf("The user %d wants to add you to their buddy list for the following reason:\n\n%s", uin, (msg && strlen(msg)>6) ? msg+6 : "No reason given."); + debug_printf("Received an authorization request from UIN %ld\n", uin); + data->gc = gc; + data->uin = uin; + do_ask_dialog(dialog_msg, data, gaim_icq_authgrant, gaim_icq_authdeny); + g_free(dialog_msg); +} + +static int incomingim_chan4(aim_session_t *sess, aim_conn_t *conn, aim_userinfo_t *userinfo, struct aim_incomingim_ch4_args *args) { + struct gaim_connection *gc = sess->aux_data; + + switch (args->type) { + case 0x0006: { /* Someone requested authorization */ + gaim_icq_authask(gc, args->uin, args->msg); + } break; + + case 0x0007: { /* Someone has denied you authorization */ + char *dialog_msg; + dialog_msg = g_strdup_printf(_("The user %d has denied your request to add them to your contact list for the following reason:\n\n"), args->uin, args->msg ? args->msg : _("No reason given.")); + do_error_dialog(dialog_msg, _("Gaim - ICQ Authorization Denied")); + g_free(dialog_msg); + } break; + + case 0x0008: { /* Someone has granted you authorization */ + char *dialog_msg; + dialog_msg = g_strdup_printf(_("The user %d has granted your request to add them to your contact list."), args->uin); + do_error_dialog(dialog_msg, _("Gaim - ICQ Authorization Granted")); + g_free(dialog_msg); + } break; + + case 0x0012: { + /* Ack for authorizing/denying someone. Or possibly an ack for sending any system notice */ + } break; + + default: { + debug_printf("Received a channel 4 message of unknown type (type 0x%04d).\n", args->type); + } break; + } + + return 1; +} static int gaim_parse_incoming_im(aim_session_t *sess, aim_frame_t *fr, ...) { int channel, ret = 0; @@ -1450,24 +1526,28 @@ channel = va_arg(ap, int); userinfo = va_arg(ap, aim_userinfo_t *); - /* channel 1: standard message */ - if (channel == 1) { - struct aim_incomingim_ch1_args *args; - - args = va_arg(ap, struct aim_incomingim_ch1_args *); - - ret = incomingim_chan1(sess, fr->conn, userinfo, args); + switch (channel) { + case 1: { /* standard message */ + struct aim_incomingim_ch1_args *args; + args = va_arg(ap, struct aim_incomingim_ch1_args *); + ret = incomingim_chan1(sess, fr->conn, userinfo, args); + } break; - } else if (channel == 2) { - struct aim_incomingim_ch2_args *args; + case 2: { /* rendevous */ + struct aim_incomingim_ch2_args *args; + args = va_arg(ap, struct aim_incomingim_ch2_args *); + ret = incomingim_chan2(sess, fr->conn, userinfo, args); + } break; - args = va_arg(ap, struct aim_incomingim_ch2_args *); + case 4: { /* ICQ */ + struct aim_incomingim_ch4_args *args; + args = va_arg(ap, struct aim_incomingim_ch4_args *); + ret = incomingim_chan4(sess, fr->conn, userinfo, args); + } break; - ret = incomingim_chan2(sess, fr->conn, userinfo, args); - } else if (channel == 3) { - printf("Chan 3\n"); - } else if (channel == 4) { - printf("Chan 4\n"); + default: { + debug_printf("ICBM received on unsupported channel (channel 0x%04d).", channel); + } break; } va_end(ap); @@ -2269,16 +2349,44 @@ msg = va_arg(ap, struct aim_icq_offlinemsg *); va_end(ap); - if (msg->type == 0x0001) { - char sender[32]; - char *tmp = g_strdup(msg->msg); - time_t t = get_time(msg->year, msg->month, msg->day, msg->hour, msg->minute, 0); - g_snprintf(sender, sizeof(sender), "%lu", msg->sender); - strip_linefeed(tmp); - serv_got_im(gc, sender, tmp, 0, t, -1); - g_free(tmp); - } else { - debug_printf("unknown offline message type 0x%04x\n", msg->type); + debug_printf("Received offline message of type 0x%04x\n", msg->type); + + switch (msg->type) { + case 0x0001: { /* Basic offline message */ + char sender[32]; + char *dialog_msg = g_strdup(msg->msg); + time_t t = get_time(msg->year, msg->month, msg->day, msg->hour, msg->minute, 0); + g_snprintf(sender, sizeof(sender), "%lu", msg->sender); + strip_linefeed(dialog_msg); + serv_got_im(gc, sender, dialog_msg, 0, t, -1); + g_free(dialog_msg); + } break; + + case 0x0006: { /* Authorization request */ + gaim_icq_authask(gc, msg->sender, msg->msg); + } break; + + case 0x0007: { /* Someone has denied you authorization */ + char *dialog_msg; + dialog_msg = g_strdup_printf(_("The user %d has denied your request to add them to your contact list for the following reason:\n\n"), msg->sender, msg->msg ? msg->msg : _("No reason given.")); + do_error_dialog(dialog_msg, _("Gaim - ICQ Authorization Denied")); + g_free(dialog_msg); + } break; + + case 0x0008: { /* Someone has granted you authorization */ + char *dialog_msg; + dialog_msg = g_strdup_printf(_("The user %d has granted your request to add them to your contact list."), msg->sender); + do_error_dialog(dialog_msg, _("Gaim - ICQ Authorization Granted")); + g_free(dialog_msg); + } break; + + case 0x0012: { + /* Ack for authorizing/denying someone. Or possibly an ack for sending any system notice */ + } break; + + default: { + debug_printf("unknown offline message type 0x%04x\n", msg->type); + } } return 1; |
From: Rob F. <rob...@us...> - 2002-04-12 02:43:53
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv13116 Modified Files: ChangeLog Log Message: the kingant ate sean's picnic, too Index: ChangeLog =================================================================== RCS file: /cvsroot/gaim/gaim/ChangeLog,v retrieving revision 1.447 retrieving revision 1.448 diff -u -d -r1.447 -r1.448 --- ChangeLog 12 Apr 2002 02:40:41 -0000 1.447 +++ ChangeLog 12 Apr 2002 02:43:50 -0000 1.448 @@ -12,6 +12,7 @@ * Fixed broken signal handling in gdm-started GNOME sessions (Thanks Jim Seymour, Vann, Robert McQueen) * Oscar group syncronization (Thanks, Mark Doliner) + * ICQ Authorization via Oscar (Thanks, Mark Doliner) version 0.55 (03/29/2002): * Jabber improvements (Thanks Jim Seymour) |
From: Rob F. <rob...@us...> - 2002-04-12 02:40:44
|
Update of /cvsroot/gaim/gaim/src/protocols/oscar In directory usw-pr-cvs1:/tmp/cvs-serv12504/src/protocols/oscar Modified Files: aim.h oscar.c ssi.c Log Message: The king ant ate my picnic Index: aim.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/aim.h,v retrieving revision 1.37 retrieving revision 1.38 diff -u -d -r1.37 -r1.38 --- aim.h 29 Mar 2002 04:08:41 -0000 1.37 +++ aim.h 12 Apr 2002 02:40:41 -0000 1.38 @@ -1034,6 +1034,7 @@ faim_export int aim_ssi_addmastergroup(aim_session_t *sess, aim_conn_t *conn); faim_export int aim_ssi_addgroups(aim_session_t *sess, aim_conn_t *conn, char **gn, unsigned int num); faim_export int aim_ssi_addpord(aim_session_t *sess, aim_conn_t *conn, char **sn, unsigned int num, fu16_t type); +faim_export int aim_ssi_movebuddy(aim_session_t *sess, aim_conn_t *conn, char *oldgn, char *newgn, char *sn); faim_export int aim_ssi_delbuddies(aim_session_t *sess, aim_conn_t *conn, char *gn, char **sn, unsigned int num); faim_export int aim_ssi_delmastergroup(aim_session_t *sess, aim_conn_t *conn); faim_export int aim_ssi_delgroups(aim_session_t *sess, aim_conn_t *conn, char **gn, unsigned int num); Index: oscar.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/oscar.c,v retrieving revision 1.129 retrieving revision 1.130 diff -u -d -r1.129 -r1.130 --- oscar.c 12 Apr 2002 02:32:28 -0000 1.129 +++ oscar.c 12 Apr 2002 02:40:41 -0000 1.130 @@ -2727,6 +2727,15 @@ } } +static void oscar_move_buddy(struct gaim_connection *g, char *name, char *old_group, char *new_group) { + struct oscar_data *odata = (struct oscar_data *)g->proto_data; + if (!odata->icq) + if (odata->sess->ssi.received_data) { + aim_ssi_movebuddy(odata->sess, odata->conn, old_group, new_group, name); + debug_printf("ssi: moved buddy %s from group %s to group %s\n", name, old_group, new_group); + } +} + static void oscar_remove_buddy(struct gaim_connection *g, char *name, char *group) { struct oscar_data *odata = (struct oscar_data *)g->proto_data; if (odata->icq) { @@ -3611,6 +3620,7 @@ ret->change_passwd = oscar_change_passwd; ret->add_buddy = oscar_add_buddy; ret->add_buddies = oscar_add_buddies; + ret->group_buddy = oscar_move_buddy; ret->remove_buddy = oscar_remove_buddy; ret->remove_buddies = oscar_remove_buddies; ret->add_permit = oscar_add_permit; Index: ssi.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/ssi.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- ssi.c 29 Mar 2002 04:08:41 -0000 1.7 +++ ssi.c 12 Apr 2002 02:40:41 -0000 1.8 @@ -8,7 +8,6 @@ * This is entirely too complicated. * You don't know the half of it. * - * XXX - Make sure moving buddies from group to group moves the buddy in the server list also * XXX - Test for memory leaks * XXX - Better parsing of rights, and use the rights info to limit adds * @@ -603,6 +602,68 @@ /* Free the array of pointers to each of the new items */ free(newitems); + + /* Begin sending SSI SNACs */ + aim_ssi_dispatch(sess, conn); + + return 0; +} + +faim_export int aim_ssi_movebuddy(aim_session_t *sess, aim_conn_t *conn, char *oldgn, char *newgn, char *sn) +{ + struct aim_ssi_item **groups, *buddy, *cur; + fu16_t i; + + if (!sess || !conn || !oldgn || !newgn || !sn) + return -EINVAL; + + /* Look up the buddy */ + if (!(buddy = get_ssi_item(sess->ssi.items, sn, AIM_SSI_TYPE_BUDDY))) + return -ENOMEM; + + /* Allocate an array of pointers to the two groups */ + if (!(groups = (struct aim_ssi_item **)malloc(2*sizeof(struct aim_ssi_item *)))) + return -ENOMEM; + + /* Look up the old parent group */ + if (!(groups[0] = get_ssi_item(sess->ssi.items, oldgn, AIM_SSI_TYPE_GROUP))) { + free(groups); + return -ENOMEM; + } + + /* Look up the new parent group */ + if (!(groups[1] = get_ssi_item(sess->ssi.items, newgn, AIM_SSI_TYPE_GROUP))) { + free(groups); + return -ENOMEM; + } + + /* Send the delete item SNAC */ + aim_ssi_addmoddel(sess, conn, &buddy, 1, AIM_CB_SSI_DEL); + + /* Put the buddy in the new group */ + buddy->gid = groups[1]->gid; + + /* Assign a new buddy ID#, because the new group might already have a buddy with this ID# */ + buddy->bid = 0; + do { + buddy->bid += 0x0001; + for (cur=sess->ssi.items, i=0; ((cur) && (!i)); cur=cur->next) + if ((cur->bid == buddy->bid) && (cur->gid == buddy->gid) && (cur->type == AIM_SSI_TYPE_BUDDY) && (cur->name) && aim_sncmp(cur->name, buddy->name)) + i=1; + } while (i); + + /* Rebuild the additional data in the two parent groups */ + aim_ssi_rebuildgroup(sess, conn, groups[0]); + aim_ssi_rebuildgroup(sess, conn, groups[1]); + + /* Send the add item SNAC */ + aim_ssi_addmoddel(sess, conn, &buddy, 1, AIM_CB_SSI_ADD); + + /* Send the mod item SNAC */ + aim_ssi_addmoddel(sess, conn, groups, 2, AIM_CB_SSI_MOD); + + /* Free the temporary array */ + free(groups); /* Begin sending SSI SNACs */ aim_ssi_dispatch(sess, conn); |
From: Rob F. <rob...@us...> - 2002-04-12 02:40:43
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv12504 Modified Files: ChangeLog Log Message: The king ant ate my picnic Index: ChangeLog =================================================================== RCS file: /cvsroot/gaim/gaim/ChangeLog,v retrieving revision 1.446 retrieving revision 1.447 diff -u -d -r1.446 -r1.447 --- ChangeLog 12 Apr 2002 02:30:41 -0000 1.446 +++ ChangeLog 12 Apr 2002 02:40:41 -0000 1.447 @@ -8,9 +8,10 @@ * Buddylist looks a little better * Fixed MSN privacy settings * Group deletion fix (Thanks Mark Doliner) - * Alias/Group syncronization for Jabber (Thanks JSeymour) + * Alias/Group syncronization for Jabber (Thanks JSeymour) * Fixed broken signal handling in gdm-started GNOME sessions (Thanks Jim Seymour, Vann, Robert McQueen) + * Oscar group syncronization (Thanks, Mark Doliner) version 0.55 (03/29/2002): * Jabber improvements (Thanks Jim Seymour) |
From: Rob F. <rob...@us...> - 2002-04-12 02:32:31
|
Update of /cvsroot/gaim/gaim/src/protocols/oscar In directory usw-pr-cvs1:/tmp/cvs-serv10847/src/protocols/oscar Modified Files: oscar.c Log Message: OSX compile fix. Thanks, bmiller. Index: oscar.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/oscar.c,v retrieving revision 1.128 retrieving revision 1.129 diff -u -d -r1.128 -r1.129 --- oscar.c 29 Mar 2002 04:08:41 -0000 1.128 +++ oscar.c 12 Apr 2002 02:32:28 -0000 1.129 @@ -59,7 +59,7 @@ #include "pixmaps/gnomeicu-occ.xpm" #include "pixmaps/gnomeicu-ffc.xpm" -#if defined(__SVR4) && !defined(_SOCKLEN_T) +#if (defined(__SVR4) && !defined(_SOCKLEN_T)) || defined(__MACH__) typedef uint32_t socklen_t; #endif |
From: Rob F. <rob...@us...> - 2002-04-12 02:30:45
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv10524/src Modified Files: aim.c Log Message: bleh Index: aim.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/aim.c,v retrieving revision 1.178 retrieving revision 1.179 diff -u -d -r1.178 -r1.179 --- aim.c 28 Mar 2002 20:07:45 -0000 1.178 +++ aim.c 12 Apr 2002 02:30:41 -0000 1.179 @@ -554,6 +554,7 @@ char *opt_user_arg = NULL, *opt_login_arg = NULL; #if HAVE_SIGNAL_H int sig_indx; /* for setting up signal catching */ + sigset_t sigset; void (*prev_sig_disp)(); #endif #ifndef USE_APPLET @@ -603,6 +604,14 @@ #if HAVE_SIGNAL_H /* Let's not violate any PLA's!!!! */ /* jseymour: whatever the fsck that means */ + /* Robot101: for some reason things like gdm like to block * + * useful signals like SIGCHLD, so we unblock all the ones we * + * declare a handler for. thanks JSeymour and Vann. */ + if (sigemptyset(&sigset)) { + char errmsg[BUFSIZ]; + sprintf(errmsg, "Warning: couldn't initialise empty signal set"); + perror(errmsg); + } for(sig_indx = 0; catch_sig_list[sig_indx] != -1; ++sig_indx) { if((prev_sig_disp = signal(catch_sig_list[sig_indx], sighandler)) == SIG_ERR) { char errmsg[BUFSIZ]; @@ -610,6 +619,12 @@ catch_sig_list[sig_indx]); perror(errmsg); } + if(sigaddset(&sigset, catch_sig_list[sig_indx])) { + char errmsg[BUFSIZ]; + sprintf(errmsg, "Warning: couldn't include signal %d for unblocking", + catch_sig_list[sig_indx]); + perror(errmsg); + } } for(sig_indx = 0; ignore_sig_list[sig_indx] != -1; ++sig_indx) { if((prev_sig_disp = signal(ignore_sig_list[sig_indx], SIG_IGN)) == SIG_ERR) { @@ -619,6 +634,12 @@ perror(errmsg); } } + + if (sigprocmask(SIG_UNBLOCK, &sigset, NULL)) { + char errmsg[BUFSIZ]; + sprintf(errmsg, "Warning: couldn't unblock signals"); + perror(errmsg); + } #endif |
From: Rob F. <rob...@us...> - 2002-04-12 02:30:44
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv10524 Modified Files: gaim.spec.in ChangeLog Log Message: bleh Index: gaim.spec.in =================================================================== RCS file: /cvsroot/gaim/gaim/gaim.spec.in,v retrieving revision 1.41 retrieving revision 1.42 diff -u -d -r1.41 -r1.42 --- gaim.spec.in 29 Mar 2002 20:15:05 -0000 1.41 +++ gaim.spec.in 12 Apr 2002 02:30:41 -0000 1.42 @@ -99,6 +99,17 @@ rm -r $RPM_BUILD_ROOT %changelog +* Thu Apr 11 2002 Rob Flynn <ro...@ma... (0.56 release) +- German translation update (Thanks Karsten Weiss) +- Shell-like send history binded to Ctrl-Up and Ctrl-Down +- Russian Translation Updated (thanks Grigory Bakunov) +- libjabber upgraded to most recent stable version +- Buddylist looks a little better +- Fixed MSN privacy settings +- Group deletion fix (Thanks Mark Doliner) +- Alias/Group syncronization for Jabber (Thanks JSeymour) +- Fixed broken signal handling in gdm-started GNOME sessions (Thanks Jim Seymour, Vann, Robert McQueen) + * Fri Mar 29 2002 Rob Flynn <ro...@ma...> (0.55 release) - Jabber improvements (Thanks Jim Seymour) - Various sound cleanups (Thanks Robert McQueen) Index: ChangeLog =================================================================== RCS file: /cvsroot/gaim/gaim/ChangeLog,v retrieving revision 1.445 retrieving revision 1.446 diff -u -d -r1.445 -r1.446 --- ChangeLog 12 Apr 2002 02:15:24 -0000 1.445 +++ ChangeLog 12 Apr 2002 02:30:41 -0000 1.446 @@ -1,6 +1,6 @@ Gaim: The Pimpin' Penguin IM Clone thats good for the soul! -version 0.56: +version 0.56 (04/11/2002): * German translation update (Thanks Karsten Weiss) * Shell-like send history binded to Ctrl-Up and Ctrl-Down * Russian Translation Updated (thanks Grigory Bakunov) @@ -9,6 +9,8 @@ * Fixed MSN privacy settings * Group deletion fix (Thanks Mark Doliner) * Alias/Group syncronization for Jabber (Thanks JSeymour) + * Fixed broken signal handling in gdm-started GNOME sessions + (Thanks Jim Seymour, Vann, Robert McQueen) version 0.55 (03/29/2002): * Jabber improvements (Thanks Jim Seymour) |
From: Rob F. <rob...@us...> - 2002-04-12 02:22:31
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv8762 Modified Files: buddy.c Log Message: if i were to close my eyes and drift away to sleep never to awaken; my heart is growing weak Index: buddy.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/buddy.c,v retrieving revision 1.302 retrieving revision 1.303 diff -u -d -r1.302 -r1.303 --- buddy.c 12 Apr 2002 02:15:24 -0000 1.302 +++ buddy.c 12 Apr 2002 02:22:28 -0000 1.303 @@ -1841,7 +1841,6 @@ gtk_container_add(GTK_CONTAINER(g->item), g->label); - style = gtk_style_new(); style = gtk_style_copy(gtk_widget_get_style(GTK_WIDGET(g->label))); // style->font = gdk_font_load("-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*"); @@ -1851,6 +1850,7 @@ style->fg[0].blue = 20* 255; gtk_widget_set_style(GTK_WIDGET(g->label), style); + gtk_style_unref(style); shows = g_slist_insert(shows, g, pos); @@ -1876,12 +1876,14 @@ gdk_bitmap_unref(bm); // style = gtk_widget_get_style(GTK_TREE_ITEM(g->item)->pixmaps_box); - style2 = gtk_style_new(); style2 = gtk_style_copy(gtk_widget_get_style(g->item)); - style = gtk_style_new(); style = gtk_style_copy(gtk_widget_get_style(GTK_WIDGET(g->label))); + style->bg[0] = style2->base[0]; gtk_widget_set_style(GTK_TREE_ITEM(g->item)->pixmaps_box, style); + + gtk_style_unref(style); + gtk_style_unref(style2); /* bad drugs */ |
From: Rob F. <rob...@us...> - 2002-04-12 02:15:27
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv7603/src Modified Files: buddy.c core.h dialogs.c gaim.h list.c prpl.h server.c Log Message: Jabber sync. fixen Index: buddy.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/buddy.c,v retrieving revision 1.301 retrieving revision 1.302 diff -u -d -r1.301 -r1.302 --- buddy.c 12 Apr 2002 02:13:13 -0000 1.301 +++ buddy.c 12 Apr 2002 02:15:24 -0000 1.302 @@ -754,6 +754,7 @@ GtkCTreeNode *node = gtk_ctree_find_by_row_data(GTK_CTREE(edittree), NULL, b); g_snprintf(b->show, sizeof(b->show), "%s", b->name); gtk_ctree_node_set_text(GTK_CTREE(edittree), node, 0, b->name); + serv_alias_buddy(b); if (gs) bs = find_buddy_show(gs, b->name); if (bs) @@ -1094,9 +1095,15 @@ } else new_g->members = g_slist_append(new_g->members, buddy); - /* we do the add after it's added locally so that prpls can find it if necessary */ - if (add) + /* + * we do the add after it's added locally so that prpls can find it if necessary + * JFIXME: Er, shouldn't the buddy be removed from the old server, as well? + */ + if (add) { serv_add_buddy(new_g->gc, buddy->name); + } else { + serv_move_buddy(buddy, old_g, new_g); + } do_export(buddy->gc); if (buddy->gc != new_g->gc) { Index: core.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/core.h,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- core.h 2 Mar 2002 04:52:21 -0000 1.16 +++ core.h 12 Apr 2002 02:15:24 -0000 1.17 @@ -110,10 +110,12 @@ #endif +#define BUDDY_ALIAS_MAXLEN 388 /* because MSN names can be 387 characters */ + struct buddy { int edittype; /* XXX CUI: this is really a GUI function and we need to put this in ui.h */ char name[80]; - char show[388]; /* because MSN names can be 387 characters */ + char show[BUDDY_ALIAS_MAXLEN]; int present; int evil; time_t signon; Index: dialogs.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/dialogs.c,v retrieving revision 1.315 retrieving revision 1.316 diff -u -d -r1.315 -r1.316 --- dialogs.c 28 Mar 2002 19:25:00 -0000 1.315 +++ dialogs.c 12 Apr 2002 02:15:24 -0000 1.316 @@ -3382,6 +3382,7 @@ char *al = gtk_entry_get_text(GTK_ENTRY(aliasname)); g_snprintf(b->show, sizeof(b->show), "%s", (al && strlen(al)) ? al : b->name); handle_buddy_rename(b, b->name); + serv_alias_buddy(b); destroy_dialog(aliasdlg, aliasdlg); } Index: gaim.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/gaim.h,v retrieving revision 1.316 retrieving revision 1.317 diff -u -d -r1.316 -r1.317 --- gaim.h 29 Mar 2002 13:28:55 -0000 1.316 +++ gaim.h 12 Apr 2002 02:15:24 -0000 1.317 @@ -396,6 +396,8 @@ extern int serv_chat_send(struct gaim_connection *, int, char *); extern void serv_got_popup(char *, char *, int, int); extern void serv_get_away(struct gaim_connection *, char *); +extern void serv_alias_buddy(struct buddy *); +extern void serv_move_buddy(struct buddy *, struct group *, struct group *); /* Functions in util.c */ extern char *normalize(const char *); Index: list.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/list.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- list.c 15 Mar 2002 00:56:15 -0000 1.13 +++ list.c 12 Apr 2002 02:15:24 -0000 1.14 @@ -366,7 +366,7 @@ how_many++; } } else if (*c == 'b' && !find_buddy(gc, c + 2)) { - char nm[80], sw[388], *tmp = c + 2; + char nm[80], sw[BUDDY_ALIAS_MAXLEN], *tmp = c + 2; int i = 0; while (*tmp != ':' && *tmp && i < sizeof(nm) - 1) nm[i++] = *tmp++; Index: prpl.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/prpl.h,v retrieving revision 1.64 retrieving revision 1.65 diff -u -d -r1.64 -r1.65 --- prpl.h 14 Mar 2002 07:44:43 -0000 1.64 +++ prpl.h 12 Apr 2002 02:15:24 -0000 1.65 @@ -161,6 +161,12 @@ void (* get_cb_info) (struct gaim_connection *, int, char *who); void (* get_cb_away) (struct gaim_connection *, int, char *who); + /* save/store buddy's alias on server list/roster */ + void (* alias_buddy) (struct gaim_connection *, char *who); + + /* change a buddy's group on a server list/roster */ + void (* group_buddy) (struct gaim_connection *, char *who, char *old_group, char *new_group); + void (* buddy_free) (struct buddy *); /* this is really bad. */ Index: server.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/server.c,v retrieving revision 1.225 retrieving revision 1.226 diff -u -d -r1.225 -r1.226 --- server.c 3 Apr 2002 07:23:02 -0000 1.225 +++ server.c 12 Apr 2002 02:15:24 -0000 1.226 @@ -285,6 +285,36 @@ } } +/* + * Set buddy's alias on server roster/list + */ +void serv_alias_buddy(struct buddy *b) +{ + if(b && b->gc && b->gc->prpl && b->gc->prpl->alias_buddy) { + b->gc->prpl->alias_buddy(b->gc, b->name); + } +} + +/* + * Move a buddy from one group to another on server. + * + * Note: For now we'll not deal with changing gc's at the same time, but + * it should be possible. Probably needs to be done, someday. + */ +void serv_move_buddy(struct buddy *b, struct group *og, struct group *ng) +{ + if(b && b->gc && og && og->gc && ng && ng->gc) { + /* + * If there are no connection changes... + */ + if(b->gc == og->gc && b->gc == ng->gc && ng->gc == og->gc) { + if(b->gc->prpl && b->gc->prpl->group_buddy) { + b->gc->prpl->group_buddy(b->gc, b->name, og->name, ng->name); + } + } + } +} + void serv_add_permit(struct gaim_connection *g, char *name) { if (g && g_slist_find(connections, g) && g->prpl && g->prpl->add_permit) |
From: Rob F. <rob...@us...> - 2002-04-12 02:15:27
|
Update of /cvsroot/gaim/gaim/src/protocols/msn In directory usw-pr-cvs1:/tmp/cvs-serv7603/src/protocols/msn Modified Files: msn.c Log Message: Jabber sync. fixen Index: msn.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/msn/msn.c,v retrieving revision 1.69 retrieving revision 1.70 diff -u -d -r1.69 -r1.70 --- msn.c 2 Apr 2002 01:04:35 -0000 1.69 +++ msn.c 12 Apr 2002 02:15:24 -0000 1.70 @@ -1884,7 +1884,7 @@ struct msn_data *md = gc->proto_data; char buf[MSN_BUF_LEN]; - if (strlen(url_encode(entry)) > 387) { + if (strlen(url_encode(entry)) >= BUDDY_ALIAS_MAXLEN) { do_error_dialog("Friendly name too long.", "MSN Error"); return; } |
From: Rob F. <rob...@us...> - 2002-04-12 02:15:27
|
Update of /cvsroot/gaim/gaim/src/protocols/jabber In directory usw-pr-cvs1:/tmp/cvs-serv7603/src/protocols/jabber Modified Files: jabber.c Log Message: Jabber sync. fixen Index: jabber.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/jabber/jabber.c,v retrieving revision 1.39 retrieving revision 1.40 diff -u -d -r1.39 -r1.40 --- jabber.c 28 Mar 2002 20:07:45 -0000 1.39 +++ jabber.c 12 Apr 2002 02:15:24 -0000 1.40 @@ -1025,15 +1025,27 @@ { xmlnode g; char *Jid = xmlnode_get_attrib(p->x, "from"); - char *ask = xmlnode_get_attrib(p->x, "type"); + char *type = xmlnode_get_attrib(p->x, "type"); g = xmlnode_new_tag("presence"); xmlnode_put_attrib(g, "to", Jid); - if (!strcmp(ask, "subscribe")) + if (!strcmp(type, "subscribe")) xmlnode_put_attrib(g, "type", "subscribed"); - else if (!strcmp(ask, "unsubscribe")) + else if (!strcmp(type, "unsubscribe")) xmlnode_put_attrib(g, "type", "unsubscribed"); else { + if (!strcmp(type, "unsubscribed")) { + xmlnode y; + char *status; + if((y = xmlnode_get_tag(p->x, "status")) && (status = xmlnode_get_data(y)) && + !strcmp(status, "Not Found")) { + char *msg = g_strdup_printf("%s: \"%s\"", _("No such user"), + xmlnode_get_attrib(p->x, "from")); + do_error_dialog(msg, _("Jabber Error")); + g_free(msg); + } + } + xmlnode_free(g); return; } @@ -1078,7 +1090,7 @@ char *Jid, *name, *sub, *ask; jid who; struct buddy *b = NULL; - char *buddyname, *groupname; + char *buddyname, *groupname = NULL; Jid = xmlnode_get_attrib(x, "jid"); name = xmlnode_get_attrib(x, "name"); @@ -1099,20 +1111,44 @@ buddyname = g_strdup_printf("%s@%s", who->user, who->server); - if((g = xmlnode_get_tag(x, "group")) == NULL || (groupname = xmlnode_get_data(g)) == NULL) { - groupname = _("Buddies"); + if((g = xmlnode_get_tag(x, "group")) != NULL && xmlnode_get_datasz(g) > 0) { + groupname = xmlnode_get_data(g); } - /* - * Add or remove a buddy? + * Add or remove a buddy? Change buddy's alias or group? */ if (BUD_SUB_TO_PEND(sub, ask) || BUD_SUBD_TO(sub, ask)) { if ((b = find_buddy(GJ_GC(gjc), buddyname)) == NULL) { debug_printf("adding buddy [4]: %s\n", buddyname); - b = add_buddy(GJ_GC(gjc), groupname, buddyname, + b = add_buddy(GJ_GC(gjc), groupname ? groupname : _("Buddies"), buddyname, name ? name : buddyname); do_export(GJ_GC(gjc)); + } else { + struct group *c_grp = find_group_by_buddy(GJ_GC(gjc), buddyname); + + /* + * If the buddy's in a new group or his/her alias is changed... + */ + if(groupname && c_grp && strcmp(c_grp->name, groupname)) { + int present = b->present; /* save presence state */ + int uc = b->uc; /* and away state (?) */ + + /* + * seems rude, but it seems to be the only way... + */ + remove_buddy(GJ_GC(gjc), c_grp, b); + b = add_buddy(GJ_GC(gjc), groupname, buddyname, + name ? name : buddyname); + do_export(GJ_GC(gjc)); + if(present) { + serv_got_update(GJ_GC(gjc), buddyname, 1, 0, 0, 0, uc, 0); + } + } else if(name != NULL && strcmp(b->show, name)) { + strncpy(b->show, name, BUDDY_ALIAS_MAXLEN); + b->show[BUDDY_ALIAS_MAXLEN - 1] = '\0'; /* cheap safety feature */ + handle_buddy_rename(b, buddyname); + } } } else if (BUD_USUB_TO_PEND(sub, ask) || BUD_USUBD_TO(sub, ask) || !strcasecmp(sub, "remove")) { if ((b = find_buddy(GJ_GC(gjc), buddyname)) != NULL) { @@ -1399,7 +1435,6 @@ } break; - case JPACKET_S10N: jabber_handles10n(gjc, p); break; @@ -1587,7 +1622,7 @@ * and it doesn't match his JID, add the "name" attribute. */ if((buddy = find_buddy(gc, realwho)) != NULL && - buddy->show != NULL && strcmp(realwho, buddy->show)) { + buddy->show != NULL && buddy->show[0] != '\0' && strcmp(realwho, buddy->show)) { xmlnode_put_attrib(y, "name", buddy->show); } @@ -1609,13 +1644,21 @@ } } +/* + * Change buddy's group on server roster + */ +static void jabber_group_change(struct gaim_connection *gc, char *name, char *old_group, char *new_group) +{ + if(strcmp(old_group, new_group)) { + jabber_roster_update(gc, name); + } +} + static void jabber_add_buddy(struct gaim_connection *gc, char *name) { - xmlnode x, y; + xmlnode x; char *realwho; gjconn gjc = ((struct jabber_data *)gc->proto_data)->gjc; - struct buddy *buddy = NULL; - struct group *buddy_group = NULL; if (!((struct jabber_data *)gc->proto_data)->did_import) return; @@ -2993,6 +3036,8 @@ ret->normalize = jabber_normalize; ret->buddy_free = jabber_buddy_free; ret->register_user = jabber_register_user; + ret->alias_buddy = jabber_roster_update; + ret->group_buddy = jabber_group_change; my_protocol = ret; } |
From: Rob F. <rob...@us...> - 2002-04-12 02:15:26
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv7603 Modified Files: ChangeLog Log Message: Jabber sync. fixen Index: ChangeLog =================================================================== RCS file: /cvsroot/gaim/gaim/ChangeLog,v retrieving revision 1.444 retrieving revision 1.445 diff -u -d -r1.444 -r1.445 --- ChangeLog 12 Apr 2002 02:11:54 -0000 1.444 +++ ChangeLog 12 Apr 2002 02:15:24 -0000 1.445 @@ -7,7 +7,8 @@ * libjabber upgraded to most recent stable version * Buddylist looks a little better * Fixed MSN privacy settings - * Group deletion fix + * Group deletion fix (Thanks Mark Doliner) + * Alias/Group syncronization for Jabber (Thanks JSeymour) version 0.55 (03/29/2002): * Jabber improvements (Thanks Jim Seymour) |
From: Rob F. <rob...@us...> - 2002-04-12 02:13:16
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv7151 Modified Files: buddy.c Log Message: Blerg eat kitty. Index: buddy.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/buddy.c,v retrieving revision 1.300 retrieving revision 1.301 diff -u -d -r1.300 -r1.301 --- buddy.c 12 Apr 2002 02:11:55 -0000 1.300 +++ buddy.c 12 Apr 2002 02:13:13 -0000 1.301 @@ -1835,6 +1835,8 @@ gtk_container_add(GTK_CONTAINER(g->item), g->label); style = gtk_style_new(); + style = gtk_style_copy(gtk_widget_get_style(GTK_WIDGET(g->label))); + // style->font = gdk_font_load("-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*"); style->fg[0].red = 104 * 255; |
From: Rob F. <rob...@us...> - 2002-04-12 02:11:59
|
Update of /cvsroot/gaim/gaim/src/protocols/jabber In directory usw-pr-cvs1:/tmp/cvs-serv6787/src/protocols/jabber Modified Files: .cvsignore Log Message: Group deletion fix. Thanks, Mark Doliner. Index: .cvsignore =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/jabber/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- .cvsignore 31 Jul 2001 01:00:38 -0000 1.1 +++ .cvsignore 12 Apr 2002 02:11:55 -0000 1.2 @@ -10,6 +10,7 @@ jid.lo jpacket.lo jutil.lo +karma.lo libjabber.la log.lo pool.lo @@ -19,6 +20,7 @@ snprintf.lo socket.lo str.lo +xhash.lo xmlnode.lo xmlparse.lo xmlrole.lo |
From: Rob F. <rob...@us...> - 2002-04-12 02:11:58
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv6787 Modified Files: ChangeLog Log Message: Group deletion fix. Thanks, Mark Doliner. Index: ChangeLog =================================================================== RCS file: /cvsroot/gaim/gaim/ChangeLog,v retrieving revision 1.443 retrieving revision 1.444 diff -u -d -r1.443 -r1.444 --- ChangeLog 11 Apr 2002 23:39:29 -0000 1.443 +++ ChangeLog 12 Apr 2002 02:11:54 -0000 1.444 @@ -7,6 +7,7 @@ * libjabber upgraded to most recent stable version * Buddylist looks a little better * Fixed MSN privacy settings + * Group deletion fix version 0.55 (03/29/2002): * Jabber improvements (Thanks Jim Seymour) |
From: Rob F. <rob...@us...> - 2002-04-12 02:11:58
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv6787/src Modified Files: buddy.c Log Message: Group deletion fix. Thanks, Mark Doliner. Index: buddy.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/buddy.c,v retrieving revision 1.299 retrieving revision 1.300 diff -u -d -r1.299 -r1.300 --- buddy.c 12 Apr 2002 00:28:42 -0000 1.299 +++ buddy.c 12 Apr 2002 02:11:55 -0000 1.300 @@ -880,6 +880,7 @@ gtk_tree_remove_item(GTK_TREE(buddies), gs->item); g_free(gs->name); g_free(gs); + gs = NULL; } } } |
From: Rob F. <rob...@us...> - 2002-04-12 00:28:46
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv18417 Modified Files: buddy.c Log Message: Any better, Chip? Index: buddy.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/buddy.c,v retrieving revision 1.298 retrieving revision 1.299 diff -u -d -r1.298 -r1.299 --- buddy.c 11 Apr 2002 22:40:44 -0000 1.298 +++ buddy.c 12 Apr 2002 00:28:42 -0000 1.299 @@ -1865,10 +1865,12 @@ gdk_pixmap_unref(pm); gdk_bitmap_unref(bm); - style = gtk_widget_get_style(GTK_TREE_ITEM(g->item)->pixmaps_box); - style2 = gtk_widget_get_style(g->item); +// style = gtk_widget_get_style(GTK_TREE_ITEM(g->item)->pixmaps_box); + style2 = gtk_style_new(); + style2 = gtk_style_copy(gtk_widget_get_style(g->item)); + style = gtk_style_new(); + style = gtk_style_copy(gtk_widget_get_style(GTK_WIDGET(g->label))); style->bg[0] = style2->base[0]; - gtk_widget_set_style(GTK_TREE_ITEM(g->item)->pixmaps_box, style); /* bad drugs */ |