FreeBSD Bugzilla – Attachment 60560 Details for
Bug 90868
[new port] add ftp/pftpx
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
file.shar
file.shar (text/plain), 9.86 KB, created by
Andrew Thompson
on 2005-12-24 01:40:05 UTC
(
hide
)
Description:
file.shar
Filename:
MIME Type:
Creator:
Andrew Thompson
Created:
2005-12-24 01:40:05 UTC
Size:
9.86 KB
patch
obsolete
># 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: ># ># ftp ># ftp/pfptx ># ftp/pfptx/Makefile ># ftp/pfptx/pkg-descr ># ftp/pfptx/files ># ftp/pfptx/files/patch-pftpx.c ># ftp/pfptx/files/patch-Makefile ># ftp/pfptx/distinfo ># >echo c - ftp >mkdir -p ftp > /dev/null 2>&1 >echo c - ftp/pfptx >mkdir -p ftp/pfptx > /dev/null 2>&1 >echo x - ftp/pfptx/Makefile >sed 's/^X//' >ftp/pfptx/Makefile << 'END-of-ftp/pfptx/Makefile' >X# New ports collection makefile for: pftpx >X# Date created: 27 June 2005 >X# Whom: Scott Ullrich (geekgod@geekgod.com) >X# >X# $FreeBSD: $ >X >XPORTNAME= pftpx >XPORTVERSION= 0.8 >XCATEGORIES= ftp >XMASTER_SITES= http://www.sentia.org/downloads/ >XDISTNAME= ${PORTNAME}-${PORTVERSION} >X >XMAINTAINER= geekgod@geekgod.com >XCOMMENT= Much enhanced ftp proxy for pf that supports most ftp protocols >X >XLIB_DEPENDS= event-1.1a:${PORTSDIR}/devel/libevent >X >XMAN8= pftpx.8 >X >XPLIST_FILES= sbin/pftpx >X >X.include <bsd.port.pre.mk> >X >X.if ${OSVERSION} < 500000 >XIGNORE= only for 5.0 and above >X.endif >X >X.if ${OSVERSION} < 502116 >XMAKE_ARGS= LOCALBASE="${PREFIX}" OSLEVEL=34 >X.if defined(WITH_ALTQ) && (${WITH_ALTQ} == "yes") >XCFLAGS+= -DHAVE_ALTQ=1 >X.endif >X.elif ${OSVERSION} < 600025 >XMAKE_ARGS= LOCALBASE="${PREFIX}" OSLEVEL=35 >XCFLAGS+= -DHAVE_ALTQ=1 -DHAVE_RULE_ANCHOR=1 >X.else >XMAKE_ARGS= LOCALBASE="${PREFIX}" OSLEVEL=37 >XCFLAGS+= -DHAVE_ALTQ=1 >X.endif >X >Xdo-install: >X ${INSTALL_PROGRAM} ${WRKSRC}/pftpx ${PREFIX}/sbin >X ${INSTALL_MAN} ${WRKSRC}/pftpx.8 ${PREFIX}/man/man8 >X >X.include <bsd.port.post.mk> >END-of-ftp/pfptx/Makefile >echo x - ftp/pfptx/pkg-descr >sed 's/^X//' >ftp/pfptx/pkg-descr << 'END-of-ftp/pfptx/pkg-descr' >Xpftpx is a ftp proxy with many advanced features such as: >X >X1) it handles all ftp modes: PORT, PASV, EPRT, EPSV >X2) it handles ipv6 >X3) it should scale: one process handles all sessions using libevent >X4) it works with "strict" ftp clients (clients that want data connections >X to the same IP as the control connection) >END-of-ftp/pfptx/pkg-descr >echo c - ftp/pfptx/files >mkdir -p ftp/pfptx/files > /dev/null 2>&1 >echo x - ftp/pfptx/files/patch-pftpx.c >sed 's/^X//' >ftp/pfptx/files/patch-pftpx.c << 'END-of-ftp/pfptx/files/patch-pftpx.c' >X--- pftpx.c.orig Mon Jun 27 17:58:30 2005 >X+++ pftpx.c Mon Jun 27 18:01:11 2005 >X@@ -58,6 +58,58 @@ >X >X #define sstosa(ss) ((struct sockaddr *)(ss)) >X >X+#include <sys/types.h> >X+ >X+#include <ctype.h> >X+#include <limits.h> >X+#include <string.h> >X+ >X+#define isoctal(c) (((u_char)(c)) >= '0' && ((u_char)(c)) <= '7') >X+#include <sys/types.h> >X+ >X+#define isoctal(c) (((u_char)(c)) >= '0' && ((u_char)(c)) <= '7') >X+#define isvisible(c) (((u_int)(c) <= UCHAR_MAX && isascii((u_char)(c)) && \ >X+ isgraph((u_char)(c))) || \ >X+ ((flag & VIS_SP) == 0 && (c) == ' ') || \ >X+ ((flag & VIS_TAB) == 0 && (c) == '\t') || \ >X+ ((flag & VIS_NL) == 0 && (c) == '\n') || \ >X+ ((flag & VIS_SAFE) && ((c) == '\b' || \ >X+ (c) == '\007' || (c) == '\r' || \ >X+ isgraph((u_char)(c))))) >X+ >X+#define _VIS_H_ >X+ >X+#include <sys/types.h> >X+#include <limits.h> >X+ >X+/* >X+ * to select alternate encoding format >X+ */ >X+#define VIS_OCTAL 0x01 /* use octal \ddd format */ >X+#define VIS_CSTYLE 0x02 /* use \[nrft0..] where appropriate */ >X+ >X+/* >X+ * to alter set of characters encoded (default is to encode all >X+ * non-graphic except space, tab, and newline). >X+ */ >X+#define VIS_SP 0x04 /* also encode space */ >X+#define VIS_TAB 0x08 /* also encode tab */ >X+#define VIS_NL 0x10 /* also encode newline */ >X+#define VIS_WHITE (VIS_SP | VIS_TAB | VIS_NL) >X+#define VIS_SAFE 0x20 /* only encode "unsafe" characters */ >X+ >X+/* >X+ * other >X+ */ >X+#define VIS_NOSLASH 0x40 /* inhibit printing '\' */ >X+ >X+#define LIST_FIRST(head) ((head)->lh_first) >X+#define LIST_END(head) NULL >X+#define LIST_NEXT(elm, field) ((elm)->field.le_next) >X+ >X+char *vis(char *, int, int, int); >X+int strnvis(char *, const char *, size_t, int); >X+ >X enum { CMD_NONE = 0, CMD_PORT, CMD_EPRT, CMD_PASV, CMD_EPSV }; >X >X struct session { >X@@ -1037,3 +1089,143 @@ >X "[-p address] [-q queue] [-t timeout]\n", __progname); >X exit(1); >X } >X+ >X+ >X+/* >X+ * vis - visually encode characters >X+ */ >X+char * >X+vis(dst, c, flag, nextc) >X+ register char *dst; >X+ int c, nextc; >X+ register int flag; >X+{ >X+ if (isvisible(c)) { >X+ *dst++ = c; >X+ if (c == '\\' && (flag & VIS_NOSLASH) == 0) >X+ *dst++ = '\\'; >X+ *dst = '\0'; >X+ return (dst); >X+ } >X+ >X+ if (flag & VIS_CSTYLE) { >X+ switch(c) { >X+ case '\n': >X+ *dst++ = '\\'; >X+ *dst++ = 'n'; >X+ goto done; >X+ case '\r': >X+ *dst++ = '\\'; >X+ *dst++ = 'r'; >X+ goto done; >X+ case '\b': >X+ *dst++ = '\\'; >X+ *dst++ = 'b'; >X+ goto done; >X+ case '\a': >X+ *dst++ = '\\'; >X+ *dst++ = 'a'; >X+ goto done; >X+ case '\v': >X+ *dst++ = '\\'; >X+ *dst++ = 'v'; >X+ goto done; >X+ case '\t': >X+ *dst++ = '\\'; >X+ *dst++ = 't'; >X+ goto done; >X+ case '\f': >X+ *dst++ = '\\'; >X+ *dst++ = 'f'; >X+ goto done; >X+ case ' ': >X+ *dst++ = '\\'; >X+ *dst++ = 's'; >X+ goto done; >X+ case '\0': >X+ *dst++ = '\\'; >X+ *dst++ = '0'; >X+ if (isoctal(nextc)) { >X+ *dst++ = '0'; >X+ *dst++ = '0'; >X+ } >X+ goto done; >X+ } >X+ } >X+ if (((c & 0177) == ' ') || (flag & VIS_OCTAL)) { >X+ *dst++ = '\\'; >X+ *dst++ = ((u_char)c >> 6 & 07) + '0'; >X+ *dst++ = ((u_char)c >> 3 & 07) + '0'; >X+ *dst++ = ((u_char)c & 07) + '0'; >X+ goto done; >X+ } >X+ if ((flag & VIS_NOSLASH) == 0) >X+ *dst++ = '\\'; >X+ if (c & 0200) { >X+ c &= 0177; >X+ *dst++ = 'M'; >X+ } >X+ if (iscntrl(c)) { >X+ *dst++ = '^'; >X+ if (c == 0177) >X+ *dst++ = '?'; >X+ else >X+ *dst++ = c + '@'; >X+ } else { >X+ *dst++ = '-'; >X+ *dst++ = c; >X+ } >X+done: >X+ *dst = '\0'; >X+ return (dst); >X+} >X+ >X+int >X+strnvis(dst, src, siz, flag) >X+ char *dst; >X+ const char *src; >X+ size_t siz; >X+ int flag; >X+{ >X+ char c; >X+ char *start, *end; >X+ char tbuf[5]; >X+ int i; >X+ >X+ i = 0; >X+ for (start = dst, end = start + siz - 1; (c = *src) && dst < end; ) { >X+ if (isvisible(c)) { >X+ i = 1; >X+ *dst++ = c; >X+ if (c == '\\' && (flag & VIS_NOSLASH) == 0) { >X+ /* need space for the extra '\\' */ >X+ if (dst < end) >X+ *dst++ = '\\'; >X+ else { >X+ dst--; >X+ i = 2; >X+ break; >X+ } >X+ } >X+ src++; >X+ } else { >X+ i = vis(tbuf, c, flag, *++src) - tbuf; >X+ if (dst + i <= end) { >X+ memcpy(dst, tbuf, i); >X+ dst += i; >X+ } else { >X+ src--; >X+ break; >X+ } >X+ } >X+ } >X+ if (siz > 0) >X+ *dst = '\0'; >X+ if (dst + i > end) { >X+ /* adjust return value for truncation */ >X+ while ((c = *src)) >X+ dst += vis(tbuf, c, flag, *++src) - tbuf; >X+ } >X+ return (dst - start); >X+} >X+ >X >END-of-ftp/pfptx/files/patch-pftpx.c >echo x - ftp/pfptx/files/patch-Makefile >sed 's/^X//' >ftp/pfptx/files/patch-Makefile << 'END-of-ftp/pfptx/files/patch-Makefile' >X--- Makefile.orig Mon Jun 27 19:14:36 2005 >X+++ Makefile Mon Jun 27 19:30:00 2005 >X@@ -5,6 +5,8 @@ >X CFLAGS+=-I. -g >X CFLAGS+=-Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith \ >X -Wno-uninitialized >X+CFLAGS+=-I/usr/local/include -L/usr/local/lib >X+INCLUDES+= -I/usr/local/include >X LDADD+= -levent >X >X .include <bsd.prog.mk> >END-of-ftp/pfptx/files/patch-Makefile >echo x - ftp/pfptx/distinfo >sed 's/^X//' >ftp/pfptx/distinfo << 'END-of-ftp/pfptx/distinfo' >XMD5 (pftpx-0.8.tar.gz) = 6d71baaab87c4ad13949bf7fc5d64f55 >XSHA256 (pftpx-0.8.tar.gz) = b76443ac70cf19c2e92d69f51ed12995c582c60584111594ab97431c48e370ce >XSIZE (pftpx-0.8.tar.gz) = 11488 >END-of-ftp/pfptx/distinfo >exit
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 90868
: 60560