summaryrefslogtreecommitdiff
path: root/ftp/bsdftpd-ssl/files/patch-aa
blob: 533d6dab3b3cec13b43253afbf788c67ffd3b050 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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;
 					}