Date: Fri, 26 Aug 2005 23:29:29 -0600 From: Travis Poppe <tlp@liquidx.org> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/85340: [PORT FIX] Fix net/naim so it will connect again Message-ID: <200508262329.29862.tlp@liquidx.org> Resent-Message-ID: <200508270530.j7R5U8Fl009748@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 85340 >Category: ports >Synopsis: [PORT FIX] Fix net/naim so it will connect again >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Sat Aug 27 05:30:08 GMT 2005 >Closed-Date: >Last-Modified: >Originator: Travis Poppe >Release: >Organization: >Environment: >Description: I was notified today that net/naim no longer connects to AIM. This is not a problem specific to FreeBSD. I've been provided an unofficial patch that fixes the problem (there will not likely be an official update for quite some time, as the author probably won't be available any time soon). I've included a diff containing the fix/patch. Patch author: Dane Wagner Additional discussion at: http://naimdoc.net/index.php/TOC_Issues >How-To-Repeat: >Fix: diff -ruN naim.orig/Makefile naim/Makefile --- naim.orig/Makefile Mon Apr 11 21:26:14 2005 +++ naim/Makefile Fri Aug 26 23:13:23 2005 @@ -7,6 +7,7 @@ PORTNAME= naim PORTVERSION= 0.11.7.3.1 +PORTREVISION= 1 CATEGORIES= net irc MASTER_SITES= http://shell.n.ml.org/n/naim/ diff -ruN naim.orig/files/patch-toc.c naim/files/patch-toc.c --- naim.orig/files/patch-toc.c Wed Dec 31 17:00:00 1969 +++ naim/files/patch-toc.c Fri Aug 26 23:13:01 2005 @@ -0,0 +1,92 @@ +--- firetalk/toc.c.orig Sun Jul 18 21:10:04 2004 ++++ firetalk/toc.c Fri Aug 26 13:09:16 2005 +@@ -1415,28 +1415,28 @@ + } else if (strcmp(arg0, "PAUSE") == 0) { + c->connectstate = 1; + firetalk_internal_set_connectstate(c, FCS_WAITING_SIGNON); +- } else if (strcmp(arg0, "IM_IN") == 0) { +- args = toc_parse_args(data, 4); ++ } else if (strcmp(arg0, "IM_IN2") == 0) { ++ args = toc_parse_args(data, 5); + if ((args[1] == NULL) || (args[2] == NULL) || (args[3] == NULL)) { + (void)toc_internal_disconnect(c, FE_INVALIDFORMAT); + return FE_INVALIDFORMAT; + } +- (void)aim_handle_ect(c, args[1], args[3], args[2][0] == 'T'?1:0); +- if (strlen(args[3]) > 0) { ++ (void)aim_handle_ect(c, args[1], args[4], args[2][0] == 'T'?1:0); ++ if (strlen(args[4]) > 0) { + char *mestart; + +- if (strncasecmp(args[3],"/me ",4) == 0) +- firetalk_callback_im_getaction(c, args[1], args[2][0] == 'T'?1:0, &args[3][4]); +- else if ((mestart = strstr(args[3],">/me ")) != NULL) ++ if (strncasecmp(args[4],"/me ",4) == 0) ++ firetalk_callback_im_getaction(c, args[1], args[2][0] == 'T'?1:0, &args[4][4]); ++ else if ((mestart = strstr(args[4],">/me ")) != NULL) + firetalk_callback_im_getaction(c, args[1], args[2][0] == 'T'?1:0, &mestart[5]); + else { + if (args[2][0] == 'T') /* interpolate only auto-messages */ +- firetalk_callback_im_getmessage(c, args[1], 1, aim_interpolate_variables(args[3], c->nickname)); ++ firetalk_callback_im_getmessage(c, args[1], 1, aim_interpolate_variables(args[4], c->nickname)); + else +- firetalk_callback_im_getmessage(c, args[1], 0, args[3]); ++ firetalk_callback_im_getmessage(c, args[1], 0, args[4]); + } + } +- } else if (strcmp(arg0, "UPDATE_BUDDY") == 0) { ++ } else if (strcmp(arg0, "UPDATE_BUDDY2") == 0) { + args = toc_parse_args(data,7); + if (!args[1] || !args[2] || !args[3] || !args[4] || !args[5] || !args[6]) { + (void)toc_internal_disconnect(c, FE_INVALIDFORMAT); +@@ -1609,6 +1609,7 @@ + char *tempchr2; + int permit_mode; + firetalk_t fchandle; ++ int magicnum; + + got_data_connecting_start: + r = toc_find_packet(c,buffer,bufferpos,data,c->connectstate == 0 ? SFLAP_FRAME_SIGNON : SFLAP_FRAME_DATA,&length); +@@ -1641,7 +1642,23 @@ + firetalk_callback_needpass(c,password,128); + + c->connectstate = 1; +- r = toc_send_printf(c,"toc_signon login.oscar.aol.com 5190 %s %s english \"" PACKAGE_NAME ":" PACKAGE_VERSION ":contact " PACKAGE_BUGREPORT "\"",c->nickname,toc_hash_password(password)); ++ ++ magicnum = 0; ++ { ++ /* see www.snaphat.com/toc2.txt */ ++ int a, b, cnum, sn, pw; ++ ++ sn = c->nickname[0] - 96; ++ pw = (int)(password[0]) - 96; ++ ++ a = sn * 7696 + 738816; ++ b = sn * 746512; ++ cnum = pw * a; ++ ++ magicnum = cnum - a + b + 71665152; ++ } ++ ++ r = toc_send_printf(c,"toc2_signon login.oscar.aol.com 5190 %s %s english \"TIC:naim\" 160 %d",c->nickname,toc_hash_password(password), magicnum); + if (r != FE_SUCCESS) { + firetalk_callback_connectfailed(c,r,"Error sending login string"); + return r; +@@ -1701,7 +1718,7 @@ + abort(); + } + c->connectstate = 3; +- } else if (strcmp(arg0,"CONFIG") == 0) { ++ } else if (strcmp(arg0,"CONFIG2") == 0) { + char *group; + + group = strdup("Saved buddy"); +@@ -1711,7 +1728,7 @@ + fchandle = firetalk_find_handle(c); + args = toc_parse_args(data,2); + if (!args[1]) { +- firetalk_callback_connectfailed(c,FE_INVALIDFORMAT,"CONFIG"); ++ firetalk_callback_connectfailed(c,FE_INVALIDFORMAT,"CONFIG2"); + return FE_INVALIDFORMAT; + } + tempchr1 = args[1]; >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200508262329.29862.tlp>