aboutsummaryrefslogtreecommitdiffstats
path: root/ftp
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2008-09-03 23:32:54 +0800
committerobrien <obrien@FreeBSD.org>2008-09-03 23:32:54 +0800
commitce24a641b5d9213cf8076f687dd52cc0a9c28fd3 (patch)
tree8827b40c742b475a706b3cb966802f9009406386 /ftp
parentde9a1ec50fe01f9dc464f6853f31b7119930b693 (diff)
downloadfreebsd-ports-gnome-ce24a641b5d9213cf8076f687dd52cc0a9c28fd3.tar.gz
freebsd-ports-gnome-ce24a641b5d9213cf8076f687dd52cc0a9c28fd3.tar.zst
freebsd-ports-gnome-ce24a641b5d9213cf8076f687dd52cc0a9c28fd3.zip
Somewhere along the way of 8-CURRENT, we seem to have diverged in
functionality from other Unixen (including FreeBSD 7.0): NcFTP's sio library function, _SConnect, wants to select() for one descriptor. It creates fd_set structures for writable fds and exception fds, with each fd set having only one bit set corresponding to the single descriptor it is selecting. select() then returns 2, rather than 1. NcFTP was checking if select returned 1, and if so, OK, if not 1, error. Since 2 was returned, this was causing a problem. Submitted by: Mike Gleason <mgleason@ncftp.com>
Diffstat (limited to 'ftp')
-rw-r--r--ftp/ncftp3/Makefile2
-rw-r--r--ftp/ncftp3/files/patch-SConnect.c11
2 files changed, 12 insertions, 1 deletions
diff --git a/ftp/ncftp3/Makefile b/ftp/ncftp3/Makefile
index e4f3c6b013c3..265a54cf856e 100644
--- a/ftp/ncftp3/Makefile
+++ b/ftp/ncftp3/Makefile
@@ -8,7 +8,7 @@
PORTNAME= ncftp
PORTVERSION= 3.2.2
-PORTREVISION?= 0
+PORTREVISION?= 1
CATEGORIES= ftp ipv6
MASTER_SITES= ftp://ftp.ncftp.com/ncftp/
DISTNAME= ncftp-${PORTVERSION}-src
diff --git a/ftp/ncftp3/files/patch-SConnect.c b/ftp/ncftp3/files/patch-SConnect.c
new file mode 100644
index 000000000000..e3575b8faeef
--- /dev/null
+++ b/ftp/ncftp3/files/patch-SConnect.c
@@ -0,0 +1,11 @@
+--- sio/SConnect.c.orig 2007-10-27 11:14:05.000000000 -0700
++++ sio/SConnect.c 2008-09-03 08:25:45.000000000 -0700
+@@ -154,7 +154,7 @@ _SConnect(const int sfd, const struct so
+ tv.tv_sec = (tv_sec_t) tlen;
+ tv.tv_usec = 0;
+ result = select(sfd + 1, NULL, SELECT_TYPE_ARG234 &ss, SELECT_TYPE_ARG234 &xx, SELECT_TYPE_ARG5 &tv);
+- if (result == 1) {
++ if (result >= 1) {
+ /* ready */
+ break;
+ } else if (result == 0) {