From: Ethan B. <ebl...@us...> - 2005-11-23 04:00:43
|
Update of /cvsroot/gaim/gaim/src/protocols/simple In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2425/src/protocols/simple Modified Files: simple.c simple.h Log Message: This patch from Thomas Butter fixes some Asterisk compatability issues with SIMPLE. Thanks to Cosimo Alfarano for finding this problem and testing the changes. Index: simple.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/simple/simple.c,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -p -r1.26 -r1.27 --- simple.c 19 Nov 2005 00:26:12 -0000 1.26 +++ simple.c 23 Nov 2005 04:00:29 -0000 1.27 @@ -494,6 +494,10 @@ static struct transaction *transactions_ static void send_sip_request(GaimConnection *gc, gchar *method, gchar *url, gchar *to, gchar *addheaders, gchar *body, struct sip_dialog *dialog, TransCallback tc) { struct simple_account_data *sip = gc->proto_data; char *callid= dialog ? g_strdup(dialog->callid) : gencallid(); + if(!strcmp(method,"REGISTER")) { + if(sip->regcallid) callid = g_strdup(sip->regcallid); + else sip->regcallid = g_strdup(callid); + } char *auth=""; char *addh=""; gchar *branch = genbranch(); @@ -514,6 +518,10 @@ static void send_sip_request(GaimConnect gaim_debug(GAIM_DEBUG_MISC, "simple", "header %s", auth); } + if(!sip->ip || !strcmp(sip->ip,"0.0.0.0")) { // if there was no known ip retry now + g_free(sip->ip); + sip->ip = g_strdup(gaim_network_get_public_ip()); + } buf = g_strdup_printf("%s %s SIP/2.0\r\n" "Via: SIP/2.0/%s %s:%d;branch=%s\r\n" "From: <sip:%s@%s>;tag=%s\r\n" Index: simple.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/simple/simple.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -p -r1.8 -r1.9 --- simple.h 26 Oct 2005 00:34:26 -0000 1.8 +++ simple.h 23 Nov 2005 04:00:29 -0000 1.9 @@ -81,6 +81,7 @@ struct simple_account_data { int connecting; GaimAccount *account; gchar *sendlater; + gchar *regcallid; GSList *transactions; GSList *watcher; GSList *openconns; |