From 578bc308619a8267475595fccae3a86df0a93e45 Mon Sep 17 00:00:00 2001 From: Jan Synacek Date: Sep 25 2012 10:38:53 +0000 Subject: Add listening timeout --- diff --git a/ftp.spec b/ftp.spec index 4b80051..ca4b64c 100644 --- a/ftp.spec +++ b/ftp.spec @@ -37,6 +37,7 @@ Patch28: netkit-ftp-0.17-remove-nested-include.patch Patch29: netkit-ftp-0.17-linelen.patch Patch30: netkit-ftp-0.17-active-mode-option.patch Patch31: netkit-ftp-0.17-commands-leaks.patch +Patch32: netkit-ftp-0.17-lsn-timeout.patch BuildRequires: glibc-devel, readline-devel, ncurses-devel @@ -81,6 +82,7 @@ file transfers. %patch29 -p1 -b .linelen %patch30 -p1 -b .activemode %patch31 -p1 -b .cmds-leaks +%patch32 -p1 -b .lsn-timeout %build sh configure --with-c-compiler=gcc --enable-ipv6 @@ -111,6 +113,7 @@ make INSTALLROOT=${RPM_BUILD_ROOT} install %changelog * Tue Sep 25 2012 Jan Synáček - 0.17-60 - Plug leaks in "put", "send", "append" +- Add listening timeout * Tue Aug 28 2012 Jan Synáček - 0.17-59 - Add active mode option diff --git a/netkit-ftp-0.17-lsn-timeout.patch b/netkit-ftp-0.17-lsn-timeout.patch new file mode 100644 index 0000000..561ccdb --- /dev/null +++ b/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;