- Data transfere may be aborted now with the next message,

because the EINTR error isn't handled: "426 Data connection:
  Interrupted system call".

PR:		61221
Submitted by:	maintainer
This commit is contained in:
Kirill Ponomarev 2004-01-11 23:03:43 +00:00
parent 3d887c6780
commit 1bc9c43ec8
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=97955
2 changed files with 41 additions and 0 deletions

View File

@ -7,6 +7,7 @@
PORTNAME= bsdftpd-ssl
PORTVERSION= 1.0.0
PORTREVISION= 1
CATEGORIES= ftp
MASTER_SITES= http://bsdftpd-ssl.sc.ru/files/bsdftpd-ssl/archive/1.0/src/
DISTNAME= bsdftpd-ssl-${PORTVERSION}

View File

@ -0,0 +1,40 @@
--- ftpd/Makefile.FreeBSD.ORI Wed Oct 8 00:59:49 2003
+++ ftpd/Makefile.FreeBSD Mon Jan 12 00:33:53 2004
@@ -44,7 +44,7 @@
CFLAGS+=-Wall
## Feature flags
CFLAGS+=-DSETPROCTITLE -DLOGIN_CAP -DVIRTUAL_HOSTING
-CFLAGS+=-DUSE_SENDFILE
+#CFLAGS+=-DUSE_SENDFILE
#CFLAGS+=-DINET6
YFLAGS=
--- ftpd/ftpd.c.ORI Mon Nov 10 11:42:45 2003
+++ ftpd/ftpd.c Mon Jan 12 00:36:04 2004
@@ -2810,6 +2810,17 @@
goto oldway;
} else
#endif /* USE_SSL */
+/* workaround for the problem described in
+ * http://bsdftpd-ssl.sc.ru/news/bfa_20040112.txt */
+#if __FreeBSD__ >= 5
+# if __FreeBSD_version >= 502000
+# define USE_SENDFILE = 1
+# endif
+#else
+# if __FreeBSD_version > 490000
+# define USE_SENDFILE = 1
+# endif
+#endif /* __FreeBSD__ */
#ifdef USE_SENDFILE
while (err != -1 && filesize > 0) {
#ifdef LINUX /* Linux port */
@@ -2834,7 +2845,7 @@
if (err == -1) {
#ifndef LINUX /* BSD source */
- if (errno == EAGAIN) {
+ if (errno == EAGAIN || errno == EINTR) {
err = 0;
continue;
}