Commit Graph

66 Commits

Author SHA1 Message Date
Dag-Erling Smørgrav
9e2a792c46 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
Dag-Erling Smørgrav
6490b215b3 Add rudimentary support for an authentication callback function. 2001-05-26 19:37:15 +00:00
Dag-Erling Smørgrav
b554dea773 Plug memory leak.
PR:		27506
2001-05-26 17:23:38 +00:00
Archie Cobbs
38c7e4a631 Apply 'const' liberally.
Fix some other minor glitches.
2001-04-24 00:06:21 +00:00
Dag-Erling Smørgrav
525be862e6 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
Dag-Erling Smørgrav
d5f175ce90 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
Dag-Erling Smørgrav
e238d2a8da Don't remember an EINTR, since the caller may want to restart the call. 2001-03-07 05:12:14 +00:00
Dag-Erling Smørgrav
4cee73c80f Support lower-case versions of the proxy environment variables.
PR:		bin/25494
2001-03-07 04:45:55 +00:00
Dag-Erling Smørgrav
80ed165e91 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
Dag-Erling Smørgrav
e72f0de24e Check the FTP_LOGIN environment variable before falling back on
FTP_ANONYMOUS_USER.
2000-12-22 18:01:40 +00:00
Dag-Erling Smørgrav
6c81eb523e 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
Dag-Erling Smørgrav
882974d431 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
Dag-Erling Smørgrav
d41c0df8f8 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
Dag-Erling Smørgrav
04a80993c1 Revert previous commit, it was somewhat hasty. 2000-11-22 14:44:48 +00:00
Dag-Erling Smørgrav
1baad1a183 Don't go haywire if the server closes the connection during a multiline
response.
2000-11-22 14:30:28 +00:00
Dag-Erling Smørgrav
e828ada709 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
Dag-Erling Smørgrav
d74a913b68 Use CHECK_FLAG 2000-10-29 15:56:10 +00:00
Dag-Erling Smørgrav
23109751fd Stricter error checking in the I/O functions. 2000-10-29 15:52:05 +00:00
Dag-Erling Smørgrav
7ca2f6ae1f 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
David E. O'Brien
f03bce74fc 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
Dag-Erling Smørgrav
303fd73aa7 MFS: don't expect result code until you close the data connection 2000-10-27 11:37:21 +00:00
Dag-Erling Smørgrav
c7d40ef296 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
Dag-Erling Smørgrav
8b9ba4668d Argh! Fix passive mode selection (again) 2000-10-17 19:01:18 +00:00
Dag-Erling Smørgrav
cb5b735396 Use the right user name 2000-10-13 09:36:46 +00:00
Dag-Erling Smørgrav
1a16ed4c9c 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
Dag-Erling Smørgrav
ea014d857f 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
Dag-Erling Smørgrav
0f27c7838c 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
Dag-Erling Smørgrav
63428824c9 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
Dag-Erling Smørgrav
10851dc4ad 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
Dag-Erling Smørgrav
dfe7c55fcc The decision to use an HTTP proxy for FTP documents belongs in the FTP code 2000-07-21 10:46:22 +00:00
Dag-Erling Smørgrav
2e88106bd1 Don't send port number to proxy unless it's not the standard FTP port 2000-07-21 10:25:33 +00:00
Dag-Erling Smørgrav
5e3f46b51a Fix the case where the file name is preceded by a lone slash. 2000-07-20 02:03:56 +00:00
Dag-Erling Smørgrav
269532d987 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
Dag-Erling Smørgrav
1a5faa1061 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
Dag-Erling Smørgrav
5cd33c40d7 Use a symbolic constant instead of hardcoding 999 2000-07-17 21:00:49 +00:00
Dag-Erling Smørgrav
e137bceb8f Use fetch_putln() 2000-07-11 23:50:22 +00:00
Dag-Erling Smørgrav
ec894321e3 Clean up the debugging output 2000-07-11 18:07:09 +00:00
Hajimu UMEMOTO
fa5dce6c26 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
Dag-Erling Smørgrav
51e3d46ec0 Don't assume the remote address in a 227 reply is enclosed in parentheses. 2000-07-08 09:27:47 +00:00
Dag-Erling Smørgrav
893980ad29 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
Dag-Erling Smørgrav
eac7a1e07f Handle multiline replies properly, instead of kinda-right. 2000-06-28 15:48:26 +00:00
Dag-Erling Smørgrav
def5f54c85 Back out wes' commit with extreme prejudice. 2000-06-20 13:57:00 +00:00
Wes Peters
bda4ef1aa0 Add implementation of fetchListFTP.
Reviewed by:	silence
2000-06-20 05:32:41 +00:00
Dag-Erling Smørgrav
d02e84a626 Honor FTP_PASSIVE_MODE so caller doesn't need to. 2000-05-26 12:56:53 +00:00
Hajimu UMEMOTO
4ab587f4cf Use $FTP_PASSWORD for FTP password. If $FTP_PASSWORD is not
found, `yourname@yourhost' is used.
2000-05-22 13:01:13 +00:00
Hajimu UMEMOTO
28c645cf6a IPv6 support. 2000-05-20 18:23:51 +00:00
Dag-Erling Smørgrav
6efb30c8d0 Better handling of some boundary conditions.
Submitted by:	ume
2000-05-19 09:45:42 +00:00
Dag-Erling Smørgrav
0669702c01 Initialize the struct url_stat at the beginning of fetchStatFTP(). 2000-05-15 08:24:58 +00:00
Dag-Erling Smørgrav
89474d129e Add workaround for ftpds with the Y2K MDTM bug 2000-05-11 16:01:03 +00:00
Dag-Erling Smørgrav
32425dafcd Implement restart.
Use sizeof more consistently.
Outline sanity checking of server port spec.
2000-05-07 20:00:12 +00:00