Subject: CVS commit: src/usr.bin/ftp
To: None <source-changes@NetBSD.org>
From: Luke Mewburn <lukem@netbsd.org>
List: source-changes
Date: 04/11/2005 01:43:31
Module Name:	src
Committed By:	lukem
Date:		Mon Apr 11 01:43:31 UTC 2005

Modified Files:
	src/usr.bin/ftp: extern.h ftp.c ftp_var.h util.c version.h

Log Message:
Implement a timeout on the accept(2) in dataconn() and the
connect(2) in xconnect() by temporarily setting O_NONBLOCK
on the socket and using xpoll() to wait for the operation
to succeed.
The timeout used is the '-q quittime' argument (defaults to
60s for accept(2), and the system default for connect(2)).
Idea inspired by discussion with Chuck Cranor.
This may (indirectly) fix various problems with timeouts
in active mode through broken firewalls.

Implement xpoll() as a wrapper around poll(2), to make it
easier to replace on systems without a functional poll(2).
Unconditionally use xpoll() instead of conditionally using
select(2) or poll(2).


To generate a diff of this commit:
cvs rdiff -r1.64 -r1.65 src/usr.bin/ftp/extern.h
cvs rdiff -r1.126 -r1.127 src/usr.bin/ftp/ftp.c
cvs rdiff -r1.69 -r1.70 src/usr.bin/ftp/ftp_var.h
cvs rdiff -r1.117 -r1.118 src/usr.bin/ftp/util.c
cvs rdiff -r1.45 -r1.46 src/usr.bin/ftp/version.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.