Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Oct 2007 14:43:32 +0900 (JST)
From:      Yoshihiko Sarumaru <mistral@imasy.or.jp>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/117391: update port: net/stone: bug fix for UDP->TCP translation
Message-ID:  <200710220543.l9M5hWbN045428@yumi.yamayuri.org>
Resent-Message-ID: <200710220550.l9M5o1tI062308@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         117391
>Category:       ports
>Synopsis:       update port: net/stone: bug fix for UDP->TCP translation
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Mon Oct 22 05:50:00 UTC 2007
>Closed-Date:
>Last-Modified:
>Originator:     Yoshihiko Sarumaru
>Release:        FreeBSD 6.2-RELEASE-p3 i386
>Organization:
>Environment:
System: FreeBSD yumi.yamayuri.org 6.2-RELEASE-p3 FreeBSD 6.2-RELEASE-p3 #0: Tue Mar 27 01:55:53 JST 2007 root@yumi.yamayuri.org:/usr/obj/usr/src/sys/YUMI i386


	
>Description:
	Original stone 2.3d has a bug in UDP->TCP translation that only
	goes to error on BSD sendto(2) implementation.
	A patch was captured from CVS repository.
>How-To-Repeat:
	
>Fix:
diff -urN stone-2.3d/Makefile stone/Makefile
--- stone-2.3d/Makefile	Sun Oct 21 22:38:45 2007
+++ stone/Makefile	Mon Oct 22 14:37:47 2007
@@ -7,6 +7,7 @@
 
 PORTNAME=	stone
 PORTVERSION=	2.3d
+PORTREVISION=	1
 CATEGORIES=	net ipv6
 MASTER_SITES=	http://www.gcd.org/sengoku/stone/
 
diff -urN stone-2.3d/files/patch-stone.c stone/files/patch-stone.c
--- stone-2.3d/files/patch-stone.c	Thu Jan  1 09:00:00 1970
+++ stone/files/patch-stone.c	Mon Oct 22 14:21:50 2007
@@ -0,0 +1,58 @@
+===================================================================
+RCS file: /cvsroot/stone/stone/stone.c,v
+retrieving revision 2.3.2.1
+retrieving revision 2.3.2.2
+diff -u -r2.3.2.1 -r2.3.2.2
+--- stone.c	2007/10/05 21:59:48	2.3.2.1
++++ stone.c	2007/10/22 03:07:17	2.3.2.2
+@@ -93,7 +93,7 @@
+  */
+ #define VERSION	"2.3d"
+ static char *CVS_ID =
+-"@(#) $Id: stone.c,v 2.3.2.1 2007/10/05 21:59:48 hiroaki_sengoku Exp $";
++"@(#) $Id: stone.c,v 2.3.2.2 2007/10/22 03:07:17 hiroaki_sengoku Exp $";
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -3047,9 +3047,6 @@
+     time(&pair->clock);
+     if (p) p->clock = pair->clock;
+     pair->tx += len;
+-    if ((pair->xhost->mode & XHostsMode_Dump) > 0
+-	|| ((pair->proto & proto_first_w) && Debug > 3))
+-	message_buf(pair, len, "UDP");
+     return 0;	/* success */
+ }
+ 
+@@ -3143,9 +3140,15 @@
+ 	if (ex != pair->b) ungetExBuf(ex);
+ 	if (pos >= len) {	/* complete the packet */
+ 	complete:
+-	    if (!err) err = sendPairUDPbuf(stone, pair,
+-					   (char*)(buf+UDP_HEAD_LEN),
+-					   len-UDP_HEAD_LEN);
++	    if (!err) {
++		err = sendPairUDPbuf(stone, pair, (char*)(buf+UDP_HEAD_LEN),
++				     len-UDP_HEAD_LEN);
++		if (!err) {
++		    if ((pair->xhost->mode & XHostsMode_Dump) > 0
++			|| ((pair->proto & proto_first_w) && Debug > 3))
++			message_buf(pair, len, "tu");
++		}
++	    }
+ 	    if (cur != pair->b) ungetExBuf(cur);
+ 	    cur = NULL;
+ 	}
+@@ -3810,7 +3813,11 @@
+ 	message(LOG_DEBUG, "%d TCP %d: connecting to TCP %d %s",
+ 		p1->stone->sd, p2->sd, p1->sd, addrport);
+     }
+-    ret = connect(p1->sd, dst, dstlen);
++    if (p1->proto & proto_dgram) {
++	ret = 0;	/* do nothing */
++    } else {
++	ret = connect(p1->sd, dst, dstlen);
++    }
+     if (ret < 0) {
+ #ifdef WINDOWS
+ 	errno = WSAGetLastError();
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200710220543.l9M5hWbN045428>