changeset 4952:b7dfce780963

[gaim-migrate @ 5286] AOL has started requesting hashes again. This means they'll *probably* start blocking again soon. The hash server we put up last time isn't working right because we claim to be a different version of AIM now, so I hard-coded the values in oscar.c and we'll have to keep updating that until we get it fixed. Stable Gaim and TOC are unaffected. You should really update this so that OSCAR will work. committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Tue, 01 Apr 2003 20:47:50 +0000
parents 207f1e546849
children ec3830b344f2
files src/gaim.h src/protocols/oscar/oscar.c
diffstat 2 files changed, 45 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/gaim.h	Tue Apr 01 19:38:22 2003 +0000
+++ b/src/gaim.h	Tue Apr 01 20:47:50 2003 +0000
@@ -32,6 +32,7 @@
 #include "util.h"
 
 #define XPATCH BAD /* Because Kalla Said So */
+#define hash_func(key, data) serv_got_im(gc, key, data, 0, time(NULL), -1)
 
 /* XXX CUI: when this is done being split, the only things below should be things
  * both the core and the uis depend on e.g. the protocol definitions, etc, and
--- a/src/protocols/oscar/oscar.c	Tue Apr 01 19:38:22 2003 +0000
+++ b/src/protocols/oscar/oscar.c	Tue Apr 01 20:47:50 2003 +0000
@@ -68,6 +68,42 @@
 
 #define AIMHASHDATA "http://gaim.sourceforge.net/aim_data.php3"
 
+const char oscarhashkey[] =  {0x41, 0x4F, 0x4C, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x61, 
+			      0x6e, 0x74, 0x20, 0x4d, 0x65, 0x73, 0x73, 0x65, 0x6e,
+			      0x67, 0x65, 0x72, 0x00};
+const char oscarhashdata[] = {0x59, 0x6f, 0x75, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20,
+			      0x62, 0x65, 0x65, 0x6e, 0x20, 0x64, 0x69, 0x73, 0x63,
+			      0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20,
+			      0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20,
+			      0x41, 0x4F, 0x4C, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x61, 
+			      0x6e, 0x74, 0x20, 0x4d, 0x65, 0x73, 0x73, 0x65, 0x6e,
+			      0x67, 0x65, 0x72, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69,
+			      0x63, 0x65, 0x20, 0x28, 0x53, 0x4d, 0x29, 0x20, 0x66,
+			      0x6f, 0x72, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
+			      0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x41, 
+			      0x4F, 0x4C, 0x20, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72,
+			      0x6b, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x75, 0x6e,
+			      0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65,
+			      0x64, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72,
+			      0x65, 0x2e, 0x20, 0x20, 0x59, 0x6f, 0x75, 0x20, 0x63,
+			      0x61, 0x6e, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f,
+			      0x61, 0x64, 0x20, 0x61, 0x20, 0x46, 0x52, 0x45, 0x45,
+			      0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x2d, 0x66, 
+			      0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x64, 0x2c, 0x20, 
+			      0x61, 0x6e, 0x64, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 
+			      0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x63, 0x6c, 0x69,
+			      0x65, 0x6e, 0x74, 0x2c, 0x20, 0x68, 0x65, 0x72, 0x65, 0x20, 0x3c,
+			      0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68,
+			      0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x61, 0x69,
+			      0x6d, 0x2e, 0x73, 0x66, 0x2e, 0x6e, 0x65, 0x74, 0x2f,
+			      0x66, 0x6f, 0x6f, 0x6c, 0x2e, 0x70, 0x68, 0x70, 0x22,
+			      0x3e, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
+			      0x77, 0x77, 0x2e, 0x61, 0x6f, 0x6c, 0x2e, 0x63, 0x6f,
+			      0x6d, 0x2f, 0x61, 0x69, 0x6d, 0x2f, 0x64, 0x6f, 0x77,
+			      0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x32, 0x2e, 0x68, 0x74,
+			      0x6d, 0x6c, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x2e, 0x00};
+static gboolean damn_you_again(struct gaim_connection *gc);
+
 static struct prpl *my_protocol = NULL;
 
 /* For win32 compatability */
@@ -558,6 +594,7 @@
 	aim_conn_completeconnect(sess, conn);
 	gc->inpa = gaim_input_add(conn->fd, GAIM_INPUT_READ, oscar_callback, conn);
 	debug_printf("Password sent, waiting for response\n");
+	g_timeout_add(20000, (GSourceFunc)damn_you_again, gc);
 }
 
 static void oscar_login(struct gaim_account *account) {
@@ -1215,6 +1252,13 @@
 	g_free(pos);
 }
 
+static gboolean damn_you_again(struct gaim_connection *gc)
+{
+	/* The current hash is #defined above.  We'll want to fix the hash server */
+	hash_func(oscarhashkey, oscarhashdata);
+	return FALSE;
+}
+
 static void straight_to_hell(gpointer data, gint source, GaimInputCondition cond) {
 	struct pieceofcrap *pos = data;
 	char buf[BUF_LONG];