diff options
Diffstat (limited to 'source/n/netkit-ftp/patches/31-netkit-ftp-0.17-lsn-timeout.patch')
-rw-r--r-- | source/n/netkit-ftp/patches/31-netkit-ftp-0.17-lsn-timeout.patch | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/source/n/netkit-ftp/patches/31-netkit-ftp-0.17-lsn-timeout.patch b/source/n/netkit-ftp/patches/31-netkit-ftp-0.17-lsn-timeout.patch new file mode 100644 index 00000000..561ccdbb --- /dev/null +++ b/source/n/netkit-ftp/patches/31-netkit-ftp-0.17-lsn-timeout.patch @@ -0,0 +1,24 @@ +--- netkit-ftp-0.17/ftp/ftp.c.to 2012-08-10 15:49:08.510257542 +0200 ++++ netkit-ftp-0.17/ftp/ftp.c 2012-08-10 15:49:32.386220785 +0200 +@@ -1245,6 +1245,10 @@ initconn(void) + u_int ad[16], po[2], af, alen, plen; + char *pasvcmd = NULL; + char hbuf[MAXHOSTNAMELEN], pbuf[NI_MAXSERV]; ++ struct timeval timeout; ++ ++ timeout.tv_sec = 30; ++ timeout.tv_usec = 0; + + #ifdef INET6 + if (myctladdr.su_family == AF_INET6 +@@ -1486,6 +1490,10 @@ noport: + perror("ftp: setsockopt (reuse address)"); + goto bad; + } ++ if (setsockopt (data, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, ++ sizeof(timeout)) < 0) { ++ perror("ftp: setsockopt failed\n"); ++ } + if (bind(data, (struct sockaddr *)&data_addr, sizeof (data_addr)) < 0) { + perror("ftp: bind"); + goto bad; |