74 Commits

Author SHA1 Message Date
des
9f6167dc5a Mark uploads as O_WRONLY, not O_RDONLY.
PR:		misc/34043
MFC after:	2 weeks
2002-01-20 19:52:25 +00:00
des
e37508b70c Remove VT100 escapes from debugging messages now that they're enabled by
default.

PR:		32988
MFC after:	3 days
2002-01-01 14:48:09 +00:00
des
5d89c5ae6e Reorganize to reduce code duplication. 2001-12-04 01:09:19 +00:00
des
f8774d9490 Tons of type, style and warning fixes that have been rotting in my tree for
ages - some of which wouldn't be necessary if gcc wasn't broken or TPTB were
willing to do something (-fno-builtin) about it.
2001-10-18 08:29:26 +00:00
dillon
9e8adf09a9 Add __FBSDID()s to libfetch 2001-09-30 21:36:09 +00:00
brian
903d158fae Handle snprintf() returning < 0 (not just -1)
MFC after:	2 weeks
2001-08-20 15:44:17 +00:00
brian
3b24d8f2af Handle snrintf overflows.
Spotted by: bde
2001-08-20 13:44:13 +00:00
brian
4e059b7f96 Handle snprintf() returning -1.
MFC after:	2 weeks
2001-08-20 12:50:21 +00:00
des
f47c06a197 Don't call _ftp_closefn() upon EOF in _ftp_readfn(); just return 0. This
fixes a bug in pkg_add(1) (which nobody noticed because of another bug).
2001-06-11 14:12:46 +00:00
des
4f0b341263 Add rudimentary support for an authentication callback function. 2001-05-26 19:37:15 +00:00
des
71613237c6 Plug memory leak.
PR:		27506
2001-05-26 17:23:38 +00:00
archie
21cf7b313e Apply 'const' liberally.
Fix some other minor glitches.
2001-04-24 00:06:21 +00:00
des
a14b691e19 If the server's reply to the SIZE command is unparseable, reset us->size
to -1 so the caller will know it's invalid.  This is an MFC candidate.
2001-04-07 15:26:31 +00:00
des
bfaef3b3b9 Use high port range by default, and replace the 'h' option with an 'l' option
that forces the ftp code to use the low (default) port range instead.
2001-03-24 00:28:57 +00:00
des
79952149e8 Don't remember an EINTR, since the caller may want to restart the call. 2001-03-07 05:12:14 +00:00
des
1804e2a818 Support lower-case versions of the proxy environment variables.
PR:		bin/25494
2001-03-07 04:45:55 +00:00
des
e75c537ff5 Use "anonymous" rather than "ftp" as login name for anonymous ftp.
Rather than have a separate (misnamed) FTP_ANONYMOUS_PASSWORD constant, use
FTP_ANONYMOUS_USER (i.e. "anonymous") to construct the anonymous ftp password
if getlogin() fails.
2001-01-08 13:15:14 +00:00
des
9d68cdd937 Check the FTP_LOGIN environment variable before falling back on
FTP_ANONYMOUS_USER.
2000-12-22 18:01:40 +00:00
des
1f1139ecc0 Somewhere along the line, I misunderstood the whole FTP_PASSIVE_MODE debate
and had libfetch selecting passive mode even when FTP_PASSIVE_MODE was not
set at all, which is really quite surprising unless you know about it. So
change it to the agreed default behaviour of selecting passive mode if
FTP_PASSIVE_MODE is set, but not "no".
2000-12-06 09:23:27 +00:00
des
af385a33a0 Fix old-style proxy specs: default to FTP if FTP_PROXY was set; only default
to HTTP if HTTP_PROXY was used instead.
2000-11-27 13:42:56 +00:00
des
24bc75d6d1 Don't go haywire if the server closes the connection in the middle of a
multiline response (proper fix this time).
2000-11-22 14:50:46 +00:00
des
c3ebcca666 Revert previous commit, it was somewhat hasty. 2000-11-22 14:44:48 +00:00
des
f8ecb7b0f8 Don't go haywire if the server closes the connection during a multiline
response.
2000-11-22 14:30:28 +00:00
des
985bff7699 Use the documented (and historical) defaults. Centralize the decision logic
in order to avoid this bug in the future.

Submitted by:	se
2000-11-10 08:43:40 +00:00
des
9c7c34c6a0 Use CHECK_FLAG 2000-10-29 15:56:10 +00:00
des
0b058e3e71 Stricter error checking in the I/O functions. 2000-10-29 15:52:05 +00:00
des
24f27bdb94 Fix this my way. David had absolutely no call overriding MAINTAINER without
even giving me 24 hours to read his mail and find the bug.
2000-10-28 20:53:02 +00:00
obrien
a90e794625 Repeat after me, "check to see that a pointer isn't NULL before
dereferenceing it".  This fixes ``pkg_add -r''.
2000-10-28 20:27:11 +00:00
des
ea5581599f MFS: don't expect result code until you close the data connection 2000-10-27 11:37:21 +00:00
des
d1e9930273 Use funopen() instead of fdopen(). This fixes three problems:
- ftpTimeout was not honored when reading actual data, as opposed to
   talking protocol

 - connection caching was broken because _ftp_cached_connect() would see
   the result of the transfer instead of the result of the NOOP.

 - if the RETR succeeded, but an error occurred later (as can happen
   when talking to a proxy), the error would not be detected.

There still remains to register an atexit(3) callback to close the cached
connection gracefully instead of just dropping it on the floor.
2000-10-22 12:07:28 +00:00
des
328bdfc322 Argh! Fix passive mode selection (again) 2000-10-17 19:01:18 +00:00
des
0292a311c7 Use the right user name 2000-10-13 09:36:46 +00:00
des
a0c41f1687 Rework proxy handling so that proxies can be specified as URLs.
As a side effect, remove a lot of duplicate and now redundant code.
2000-10-12 22:10:26 +00:00
des
98f58e5a22 Grok 125 replies to passive RETR. This fixes an interoperability bug with
Microsoft FTP Service.

Reported by:	asmodai, eivind
2000-08-21 07:18:31 +00:00
des
0247d400b1 Don't fail if _ftp_stat() reports a protocol error, since that most likely
means that the server doesn't understand SIZE or MDTM, which should not be a
hard failure.

Submitted by:	ume
2000-07-27 08:48:48 +00:00
des
e534b00520 If the server reports the size as 0, treat it as unknown. This works around
a bug in some ftp servers (most notably ftp.vmunix.com) which report the
size of a file correctly in ascii mode, but report it as 0 in binary mode.

Reported by:	asmodai

Also remove an unneeded initialization.
2000-07-25 14:41:02 +00:00
des
2de7b8d72b Centralize the default port finding code.
Work around YA Apache bug: don't send port in Host: header if it's the
default port.
2000-07-25 11:45:38 +00:00
des
c99122fbde The decision to use an HTTP proxy for FTP documents belongs in the FTP code 2000-07-21 10:46:22 +00:00
des
2fa9607541 Don't send port number to proxy unless it's not the standard FTP port 2000-07-21 10:25:33 +00:00
des
a260febdf9 Fix the case where the file name is preceded by a lone slash. 2000-07-20 02:03:56 +00:00
des
c5e4329667 Don't take a failure to stat a file to mean that it doesn't exist, as it may
be a dynamically created file, e.g. a tarball on servers that support sending
tarballs of directories.
2000-07-18 07:12:26 +00:00
des
3033318809 Introduce fetchXGet*(), which combine the functionalities of fetchGet*() and
fetchStat*().  In most cases, either fetchGet*() or fetchXGet*() is a wrapper
around the other; in all cases, calling fetchGet*() is identical to calling
fetchXGet*() with the second argument set to NULL.
2000-07-17 21:25:00 +00:00
des
147a437a42 Use a symbolic constant instead of hardcoding 999 2000-07-17 21:00:49 +00:00
des
d908f153d0 Use fetch_putln() 2000-07-11 23:50:22 +00:00
des
686d930615 Clean up the debugging output 2000-07-11 18:07:09 +00:00
ume
4f24653720 Make EPSV work again. Separate parsing code of 229 replies from
the code for 227 and 228.

Submitted by:	des
2000-07-10 08:41:25 +00:00
des
866a6bff9a Don't assume the remote address in a 227 reply is enclosed in parentheses. 2000-07-08 09:27:47 +00:00
des
2f7d5cb4f5 Make restart work in active mode, too.
PR:		bin/18688
Submitted by:	Rudolf Cejka <cejkar@dcse.fee.vutbr.cz>
2000-06-29 10:44:10 +00:00
des
b112ea1321 Handle multiline replies properly, instead of kinda-right. 2000-06-28 15:48:26 +00:00
des
720d162772 Back out wes' commit with extreme prejudice. 2000-06-20 13:57:00 +00:00