From owner-freebsd-ports-bugs@FreeBSD.ORG Fri Apr 5 08:30:00 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id EC5E4313 for ; Fri, 5 Apr 2013 08:30:00 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id D2868872 for ; Fri, 5 Apr 2013 08:30:00 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.6/8.14.6) with ESMTP id r358U0HO008236 for ; Fri, 5 Apr 2013 08:30:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.6/8.14.6/Submit) id r358U06r008235; Fri, 5 Apr 2013 08:30:00 GMT (envelope-from gnats) Resent-Date: Fri, 5 Apr 2013 08:30:00 GMT Resent-Message-Id: <201304050830.r358U06r008235@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Alexander Panyushkin Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id A663D2D9 for ; Fri, 5 Apr 2013 08:28:00 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22]) by mx1.freebsd.org (Postfix) with ESMTP id 85F5C856 for ; Fri, 5 Apr 2013 08:28:00 +0000 (UTC) Received: from red.freebsd.org (localhost [127.0.0.1]) by red.freebsd.org (8.14.5/8.14.5) with ESMTP id r358Rxu2089457 for ; Fri, 5 Apr 2013 08:27:59 GMT (envelope-from nobody@red.freebsd.org) Received: (from nobody@localhost) by red.freebsd.org (8.14.5/8.14.5/Submit) id r358RxQr089456; Fri, 5 Apr 2013 08:27:59 GMT (envelope-from nobody) Message-Id: <201304050827.r358RxQr089456@red.freebsd.org> Date: Fri, 5 Apr 2013 08:27:59 GMT From: Alexander Panyushkin To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: ports/177649: [NEW PORT] net/hanstunnel: Hans makes it possible to tunnel IPv4 through ICMP X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Apr 2013 08:30:01 -0000 >Number: 177649 >Category: ports >Synopsis: [NEW PORT] net/hanstunnel: Hans makes it possible to tunnel IPv4 through ICMP >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Fri Apr 05 08:30:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Alexander Panyushkin >Release: FreeBSD 9.1-STABLE #0 r248576 >Organization: home >Environment: FreeBSD admin.local 9.1-STABLE FreeBSD 9.1-STABLE #0 r248576: Thu Mar 21 15:21:29 EET 2013 root@admin.local:/usr/obj/usr/src/sys/Kernel amd64 >Description: Hans makes it possible to tunnel IPv4 through ICMP echo packets, so you could call it a ping tunnel. This can be useful when you find yourself in the situation that your Internet access is firewalled, but pings are allowed. WWW: http://code.gerade.org/hans/ >How-To-Repeat: >Fix: Patch attached with submission follows: # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # hanstunnel # hanstunnel/pkg-message # hanstunnel/pkg-descr # hanstunnel/files # hanstunnel/files/patch-client.cpp # hanstunnel/files/patch-Makefile # hanstunnel/files/patch-tun.cpp # hanstunnel/distinfo # hanstunnel/Makefile # echo c - hanstunnel mkdir -p hanstunnel > /dev/null 2>&1 echo x - hanstunnel/pkg-message sed 's/^X//' >hanstunnel/pkg-message << '35a6976a3b2d8f949619ff80f5876ac6' X------------------------------------------------------------ X XHans runs on Linux as a client and a server. XIt runs on FreeBSD client only. X XNOTE: that Hans can not receive echo requests on BSD systems. XTherefore the server only works on Linux. X X------------------------------------------------------------ X X### Running as a server ### X X% hans -s 10.1.2.0 -r -p password -u nobody X X### Running as a client ### X X% hans -c server_address -p password -u nobody X X### Help ### X X% hans X X------------------------------------------------------------ 35a6976a3b2d8f949619ff80f5876ac6 echo x - hanstunnel/pkg-descr sed 's/^X//' >hanstunnel/pkg-descr << 'b3d8e535b1ab66b72469a8c0f03d82f8' X Hans makes it possible to tunnel IPv4 through ICMP echo packets, so you Xcould call it a ping tunnel. This can be useful when you find yourself Xin the situation that your Internet access is firewalled, but pings are Xallowed. X XWWW: http://code.gerade.org/hans/ b3d8e535b1ab66b72469a8c0f03d82f8 echo c - hanstunnel/files mkdir -p hanstunnel/files > /dev/null 2>&1 echo x - hanstunnel/files/patch-client.cpp sed 's/^X//' >hanstunnel/files/patch-client.cpp << '46ad173c5d66133a4980043dcd2a5077' X--- client.cpp.orig 2010-02-17 17:30:21.000000000 +0200 X+++ client.cpp 2013-04-03 16:05:10.000000000 +0300 X@@ -27,6 +27,8 @@ X #include X #include X X+#include X+ X using namespace std; X X const Worker::TunnelHeader::Magic Client::magic("hanc"); 46ad173c5d66133a4980043dcd2a5077 echo x - hanstunnel/files/patch-Makefile sed 's/^X//' >hanstunnel/files/patch-Makefile << '00f1877f7d4533cd6adc2ee1c8be24c9' X--- Makefile.orig 2010-02-17 17:30:21.000000000 +0200 X+++ Makefile 2013-04-04 15:18:50.818219413 +0300 X@@ -1,53 +1,51 @@ X-LDFLAGS = `sh osflags ld $(MODE)` X-CFLAGS = -c -g `sh osflags c $(MODE)` X-TUN_DEV_FILE = `sh osflags dev $(MODE)` X-GCC = gcc X-GPP = g++ X+TUN_DEV_FILE = tun_dev_freebsd.c X+GCC = ${CC} X+GPP = ${CXX} X X all: hans X X hans: tun.o sha1.o main.o client.o server.o auth.o worker.o time.o tun_dev.o echo.o exception.o utility.o X- $(GPP) -o hans tun.o sha1.o main.o client.o server.o auth.o worker.o time.o tun_dev.o echo.o exception.o utility.o $(LDFLAGS) X+ ${GPP} -o hans tun.o sha1.o main.o client.o server.o auth.o worker.o time.o tun_dev.o echo.o exception.o utility.o ${LDFLAGS} X X utility.o: utility.cpp utility.h X- $(GPP) -c utility.cpp $(CFLAGS) X+ ${GPP} -c utility.cpp ${CFLAGS} X X exception.o: exception.cpp exception.h X- $(GPP) -c exception.cpp $(CFLAGS) X+ ${GPP} -c exception.cpp ${CFLAGS} X X echo.o: echo.cpp echo.h exception.h X- $(GPP) -c echo.cpp $(CFLAGS) X+ ${GPP} -c echo.cpp ${CFLAGS} X X tun.o: tun.cpp tun.h exception.h utility.h tun_dev.h X- $(GPP) -c tun.cpp $(CFLAGS) X+ ${GPP} -c tun.cpp ${CFLAGS} X X tun_dev.o: X- $(GCC) -c $(TUN_DEV_FILE) -o tun_dev.o $(CFLAGS) X+ ${GCC} -c ${TUN_DEV_FILE} -o tun_dev.o ${CFLAGS} X X sha1.o: sha1.cpp sha1.h X- $(GPP) -c sha1.cpp $(CFLAGS) X+ ${GPP} -c sha1.cpp ${CFLAGS} X X main.o: main.cpp client.h server.h exception.h worker.h auth.h time.h echo.h tun.h tun_dev.h X- $(GPP) -c main.cpp $(CFLAGS) X+ ${GPP} -c main.cpp ${CFLAGS} X X client.o: client.cpp client.h server.h exception.h config.h worker.h auth.h time.h echo.h tun.h tun_dev.h X- $(GPP) -c client.cpp $(CFLAGS) X+ ${GPP} -c client.cpp ${CFLAGS} X X server.o: server.cpp server.h client.h utility.h config.h worker.h auth.h time.h echo.h tun.h tun_dev.h X- $(GPP) -c server.cpp $(CFLAGS) X+ ${GPP} -c server.cpp ${CFLAGS} X X auth.o: auth.cpp auth.h sha1.h utility.h X- $(GPP) -c auth.cpp $(CFLAGS) X+ ${GPP} -c auth.cpp ${CFLAGS} X X worker.o: worker.cpp worker.h tun.h exception.h time.h echo.h tun_dev.h config.h X- $(GPP) -c worker.cpp $(CFLAGS) X+ ${GPP} -c worker.cpp ${CFLAGS} X X time.o: time.cpp time.h X- $(GPP) -c time.cpp $(CFLAGS) X+ ${GPP} -c time.cpp ${CFLAGS} X X clean: X rm -f tun.o sha1.o main.o client.o server.o auth.o worker.o time.o tun_dev.o echo.o exception.o utility.o tunemu.o hans X X X tunemu.o: tunemu.h tunemu.c X- $(GCC) -c tunemu.c -o tunemu.o X+ ${GCC} -c tunemu.c -o tunemu.o 00f1877f7d4533cd6adc2ee1c8be24c9 echo x - hanstunnel/files/patch-tun.cpp sed 's/^X//' >hanstunnel/files/patch-tun.cpp << '0a4216e67650c84929001f6d046ecbda' X--- tun.cpp.orig 2010-02-17 17:30:21.000000000 +0200 X+++ tun.cpp 2013-04-04 16:55:39.802818893 +0300 X@@ -68,23 +68,17 @@ X string ips = Utility::formatIp(ip); X string destIps = Utility::formatIp(destIp); X X-#ifdef LINUX X- snprintf(cmdline, sizeof(cmdline), "/sbin/ifconfig %s %s netmask 255.255.255.0", device, ips.c_str()); X-#else X- snprintf(cmdline, sizeof(cmdline), "/sbin/ifconfig %s %s %s netmask 255.255.255.255", device, ips.c_str(), destIps.c_str()); X-#endif X+ snprintf(cmdline, sizeof(cmdline), "/sbin/ifconfig %s %s %s netmask 255.255.255.0", device, ips.c_str(), destIps.c_str()); X X if (system(cmdline) != 0) X syslog(LOG_ERR, "could not set tun device ip address"); X X-#ifndef LINUX X if (includeSubnet) X { X snprintf(cmdline, sizeof(cmdline), "/sbin/route add %s/24 %s", destIps.c_str(), destIps.c_str()); X if (system(cmdline) != 0) X syslog(LOG_ERR, "could not add route"); X } X-#endif X } X X void Tun::write(const char *buffer, int length) 0a4216e67650c84929001f6d046ecbda echo x - hanstunnel/distinfo sed 's/^X//' >hanstunnel/distinfo << '65400445990c1970b9f5ad17ab147fd4' XSHA256 (hans-0.4.1.tar.gz) = 8e4df005bcf6a877ffd0810cc9b31aa3ae04f23d798bea6cc2893a3f26cac29c XSIZE (hans-0.4.1.tar.gz) = 32860 65400445990c1970b9f5ad17ab147fd4 echo x - hanstunnel/Makefile sed 's/^X//' >hanstunnel/Makefile << '87523a3042cf8f2ebc7a9370982f09ef' X# Created by: Alexander Panyushkin X# $FreeBSD$ X XPORTNAME= hans XPORTVERSION= 0.4.1 XCATEGORIES= net security XMASTER_SITES= ${MASTER_SITE_SOURCEFORGE} XMASTER_SITE_SUBDIR= /hanstunnel/source/ X XMAINTAINER= vsityz@gmail.com XCOMMENT= Hans makes it possible to tunnel IPv4 through ICMP X XLICENSE_PERMS_GPL3= yes X XOPTIONS_DEFINE= CLANG X XCLANG_DESC= Build with Clang instead of GCC X XOPTIONS_DEFAULT= CLANG X XPLIST_FILES= ${LOCALBASE}/bin/hans X X.include X X.if ${PORT_OPTIONS:MCLANG} X.if ${OSVERSION} < 1000000 XCC=clang XCXX=clang++ X.if ${OSVERSION} < 900033 XBUILD_DEPENDS+= clang:${PORTSDIR}/lang/clang X.endif X.endif X.else XUSE_GCC=4.2+ XCC=gcc XCXX=g++ XCPP=gcpp X.endif X Xdo-install: X @${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} ${WRKSRC}/hans ${LOCALBASE}/bin X Xpost-install: .SILENT X ${ECHO_MSG} X ${CAT} ${PKGMESSAGE} X ${ECHO_MSG} X X.include 87523a3042cf8f2ebc7a9370982f09ef exit >Release-Note: >Audit-Trail: >Unformatted: