aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmanuel Haupt <ehaupt@FreeBSD.org>2022-11-10 07:40:57 +0000
committerEmanuel Haupt <ehaupt@FreeBSD.org>2022-11-10 07:49:19 +0000
commitd9f28ee265f94f4bcedb7d24648042ca1325c230 (patch)
treef0f88f84d9555988773d2275abe79eb82affb987
parent83bd2b982733c5ba1808c551e4002e5e31bb0a8b (diff)
downloadports-d9f28ee265f94f4bcedb7d24648042ca1325c230.tar.gz
ports-d9f28ee265f94f4bcedb7d24648042ca1325c230.zip
net/tsocks: Fix erroneous substitution
When patching the wrapper script for /usr to ${PREFIX} a part in a sed statement gets substituted that should be escaped. Adjust sed statement in a way that it doesn't break after patching ${PREFIX}. While here: - move a REINPLACE_CMD operation to a pre-existing patch file - pacify portclippy - reformat with portfmt PR: 267670 Reported by: chris@mumac.de
-rw-r--r--net/tsocks/Makefile24
-rw-r--r--net/tsocks/files/patch-tsocks11
-rw-r--r--net/tsocks/files/patch-tsocks.c118
3 files changed, 138 insertions, 15 deletions
diff --git a/net/tsocks/Makefile b/net/tsocks/Makefile
index 2f67b428b335..b7930504b128 100644
--- a/net/tsocks/Makefile
+++ b/net/tsocks/Makefile
@@ -1,6 +1,6 @@
PORTNAME= tsocks
DISTVERSION= 1.8.b5
-PORTREVISION= 8
+PORTREVISION= 9
CATEGORIES= net security
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/1.8%20beta%205 \
http://ftp1.sourceforge.net/tsocks/ \
@@ -17,29 +17,27 @@ USES= gmake
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
+CONFIGURE_ARGS= --libdir=${PREFIX}/lib \
+ --with-conf=${PREFIX}/etc/tsocks.conf
-WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION:C/.b.*//}
+SUB_FILES= pkg-message
-CONFIGURE_ARGS= --with-conf=${PREFIX}/etc/tsocks.conf \
- --libdir=${PREFIX}/lib
+WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION:C/.b.*//}
-OPTIONS_DEFINE= DOCS EXAMPLES HOSTNAMES MUTE OLDMETHOD SOCKSDNS
-OPTIONS_DEFAULT=HOSTNAMES
+OPTIONS_DEFINE= DOCS EXAMPLES HOSTNAMES MUTE OLDMETHOD SOCKSDNS
+OPTIONS_DEFAULT= HOSTNAMES
HOSTNAMES_DESC= Enable DNS lookups
-OLDMETHOD_DESC= Do not use RTLD_NEXT parameter to dlsym
MUTE_DESC= Disable all error messages
+OLDMETHOD_DESC= Do not use RTLD_NEXT parameter to dlsym
SOCKSDNS_DESC= Intercept DNS requests and attempt to force them to use TCP
HOSTNAMES_CONFIGURE_OFF= --disable-hostnames
-MUTE_CONFIGURE_ON= --disable-debug
-OLDMETHOD_CONFIGURE_ON= --enable-oldmethod
-SOCKSDNS_CONFIGURE_ON= --enable-socksdns
-
-SUB_FILES= pkg-message
+MUTE_CONFIGURE_ON= --disable-debug
+OLDMETHOD_CONFIGURE_ON= --enable-oldmethod
+SOCKSDNS_CONFIGURE_ON= --enable-socksdns
post-patch:
- @${REINPLACE_CMD} -e 's|ufds|fds|g' ${WRKSRC}/tsocks.c
@${REINPLACE_CMD} -e 's|/usr|${PREFIX}|' ${WRKSRC}/tsocks
post-install:
diff --git a/net/tsocks/files/patch-tsocks b/net/tsocks/files/patch-tsocks
new file mode 100644
index 000000000000..ee7b7441bf33
--- /dev/null
+++ b/net/tsocks/files/patch-tsocks
@@ -0,0 +1,11 @@
+--- tsocks.orig 2002-03-16 10:27:18 UTC
++++ tsocks
+@@ -53,7 +53,7 @@ case "$1" in
+ fi
+ ;;
+ off)
+- export LD_PRELOAD=`echo -n $LD_PRELOAD | sed 's/\/usr\/lib\/libtsocks.so \?//'`
++ export LD_PRELOAD=`echo -n $LD_PRELOAD | sed 's|/usr/lib/libtsocks.so[[:blank:]]*||'`
+ if [ -z "$LD_PRELOAD" ]
+ then
+ unset LD_PRELOAD
diff --git a/net/tsocks/files/patch-tsocks.c b/net/tsocks/files/patch-tsocks.c
index eed81cc56f58..4694fc25cf92 100644
--- a/net/tsocks/files/patch-tsocks.c
+++ b/net/tsocks/files/patch-tsocks.c
@@ -1,6 +1,120 @@
--- tsocks.c.orig 2002-07-15 22:50:52 UTC
+++ tsocks.c
-@@ -852,7 +852,7 @@ static int connect_server(struct connreq
+@@ -531,12 +531,12 @@ int poll(POLL_SIGNATURE) {
+ /* If we're not currently managing any requests we can just
+ * leave here */
+ if (!requests)
+- return(realpoll(ufds, nfds, timeout));
++ return(realpoll(fds, nfds, timeout));
+
+ get_environment();
+
+ show_msg(MSGDEBUG, "Intercepted call to poll with %d fds, "
+- "0x%08x timeout %d\n", nfds, ufds, timeout);
++ "0x%08x timeout %d\n", nfds, fds, timeout);
+
+ for (conn = requests; conn != NULL; conn = conn->next)
+ conn->selectevents = 0;
+@@ -544,16 +544,16 @@ int poll(POLL_SIGNATURE) {
+ /* Record what events on our sockets the caller was interested
+ * in */
+ for (i = 0; i < nfds; i++) {
+- if (!(conn = find_socks_request(ufds[i].fd, 0)))
++ if (!(conn = find_socks_request(fds[i].fd, 0)))
+ continue;
+ show_msg(MSGDEBUG, "Have event checks for socks enabled socket %d\n",
+ conn->sockid);
+- conn->selectevents = ufds[i].events;
++ conn->selectevents = fds[i].events;
+ monitoring = 1;
+ }
+
+ if (!monitoring)
+- return(realpoll(ufds, nfds, timeout));
++ return(realpoll(fds, nfds, timeout));
+
+ /* This is our poll loop. In it we repeatedly call poll(). We
+ * pass select the same event list as provided by the caller except we
+@@ -566,25 +566,25 @@ int poll(POLL_SIGNATURE) {
+ do {
+ /* Enable our sockets for the events WE want to hear about */
+ for (i = 0; i < nfds; i++) {
+- if (!(conn = find_socks_request(ufds[i].fd, 0)))
++ if (!(conn = find_socks_request(fds[i].fd, 0)))
+ continue;
+
+ /* We always want to know about socket exceptions but they're
+ * always returned (i.e they don't need to be in the list of
+ * wanted events to be returned by the kernel */
+- ufds[i].events = 0;
++ fds[i].events = 0;
+
+ /* If we're waiting for a connect or to be able to send
+ * on a socket we want to get write events */
+ if ((conn->state == SENDING) || (conn->state == CONNECTING))
+- ufds[i].events |= POLLOUT;
++ fds[i].events |= POLLOUT;
+ /* If we're waiting to receive data we want to get
+ * read events */
+ if (conn->state == RECEIVING)
+- ufds[i].events |= POLLIN;
++ fds[i].events |= POLLIN;
+ }
+
+- nevents = realpoll(ufds, nfds, timeout);
++ nevents = realpoll(fds, nfds, timeout);
+ /* If there were no events we must have timed out or had an error */
+ if (nevents <= 0)
+ break;
+@@ -597,29 +597,29 @@ int poll(POLL_SIGNATURE) {
+ continue;
+
+ /* Find the socket in the poll list */
+- for (i = 0; ((i < nfds) && (ufds[i].fd != conn->sockid)); i++)
++ for (i = 0; ((i < nfds) && (fds[i].fd != conn->sockid)); i++)
+ /* Empty Loop */;
+ if (i == nfds)
+ continue;
+
+ show_msg(MSGDEBUG, "Checking socket %d for events\n", conn->sockid);
+
+- if (!ufds[i].revents) {
++ if (!fds[i].revents) {
+ show_msg(MSGDEBUG, "No events on socket\n");
+ continue;
+ }
+
+ /* Clear any read or write events on the socket, we'll reset
+ * any that are necessary later. */
+- setevents = ufds[i].revents;
++ setevents = fds[i].revents;
+ if (setevents & POLLIN) {
+ show_msg(MSGDEBUG, "Socket had read event\n");
+- ufds[i].revents &= ~POLLIN;
++ fds[i].revents &= ~POLLIN;
+ nevents--;
+ }
+ if (setevents & POLLOUT) {
+ show_msg(MSGDEBUG, "Socket had write event\n");
+- ufds[i].revents &= ~POLLOUT;
++ fds[i].revents &= ~POLLOUT;
+ nevents--;
+ }
+ if (setevents & (POLLERR | POLLNVAL | POLLHUP))
+@@ -669,10 +669,10 @@ int poll(POLL_SIGNATURE) {
+
+ /* Now restore the events polled in each of the blocks */
+ for (i = 0; i < nfds; i++) {
+- if (!(conn = find_socks_request(ufds[i].fd, 1)))
++ if (!(conn = find_socks_request(fds[i].fd, 1)))
+ continue;
+
+- ufds[i].events = conn->selectevents;
++ fds[i].events = conn->selectevents;
+ }
+
+ return(nevents);
+@@ -852,7 +852,7 @@ static int connect_server(struct connreq *conn) {
sizeof(conn->serveraddr));
show_msg(MSGDEBUG, "Connect returned %d, errno is %d\n", rc, errno);
@@ -9,7 +123,7 @@
if (errno != EINPROGRESS) {
show_msg(MSGERR, "Error %d attempting to connect to SOCKS "
"server (%s)\n", errno, strerror(errno));
-@@ -862,6 +862,7 @@ static int connect_server(struct connreq
+@@ -862,6 +862,7 @@ static int connect_server(struct connreq *conn) {
conn->state = CONNECTING;
}
} else {