X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=ipif%2Fudptunnel;fp=ipif%2Fudptunnel;h=1b5031c7d2f1f2e3406e0a4bbb21a8ddaec865ff;hb=1d1209a4764e161ec232d2d76d7e698c15fd874c;hp=7160cca33a9c55d19a8cc78f2d45ba7e7cc9836a;hpb=40f7555063d5bd252bdde051baa13d082e17b610;p=userv-utils.git diff --git a/ipif/udptunnel b/ipif/udptunnel index 7160cca..1b5031c 100755 --- a/ipif/udptunnel +++ b/ipif/udptunnel @@ -215,7 +215,7 @@ for (;;) { quit "tunnel endpoint closed by system"; } while (($p= index($upbuf,"\300")) >= 0) { - if (!defined(send L,substr($upbuf,0,$p+1),0,$rs)) { + if ($p && !defined(send L,substr($upbuf,0,$p),0,$rs)) { warning("transmit error: $!"); } else { if (!$upyet) { @@ -233,6 +233,7 @@ for (;;) { warning("got packet from incorrect peer $rsp_from"); next; } + $downbuf= "\300".$downbuf."\300"; if (!defined($r= syswrite(DW,$downbuf,length $downbuf))) { warning("tunnel endpoint write error: $!"); } elsif ($r != length $downbuf) {