Commit Graph

122 Commits

Author SHA1 Message Date
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
ac423cd763 Remove some obsolete comments. 2000-12-01 11:05:15 +00:00
des
1d928c8e6e Clean up the whitespace encoding code. 2000-12-01 11:04:57 +00:00
des
91475759ce Add SCHEME_HTTPS. 2000-12-01 11:04:43 +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
7affcbe9be Don't try to get the proxy port number from /etc/services. 2000-11-27 13:41:55 +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
ru
1a6c69e84a log 2000-11-22 09:23:54 +00:00
ru
3b7dc88538 Spell the des's name correctly. 2000-11-14 13:19:26 +00:00
ru
7d99729431 Use Fx macro wherever possible. 2000-11-14 11:20:58 +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
f8eaa3d801 Add CHECK_FLAGS, a macro for (safely) checking if a particular flag is set. 2000-10-29 15:45:31 +00:00
des
0237382c52 Document FTP_PASSIVE_MODE and FTP_PASSWORD.
PR:		docs/20626
Submitted by:	nik
2000-10-29 12:58:08 +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
dd714aa7f1 Install per function manpages so one doesn't mistakenly think we don't
have manpages for libfetch's functions.
2000-10-28 20:32:39 +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
cbb8cbedb3 If the scheme is HTTP or HTTPS, percent-escape whitespace in the document
part.

Submitted by:	green
2000-10-21 14:58:18 +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
9a7ce3cd1a Document recent changes in URL parsing and proxy handling 2000-10-12 22:11:26 +00:00
des
62f1dcda19 ftp.c needs _http_request() 2000-10-12 22:10:43 +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
238c26fcae Relax URL syntax so that schemeless URLs are supported. 2000-10-12 22:07:49 +00:00
des
4ce445deae Add macros for the names of the URL schemes we support. 2000-10-12 21:59:22 +00:00
des
88e20da596 Make the ENVIRONMENT section more legible, and mention that HTTP_AUTH is
colon-separated.
2000-10-12 16:55:52 +00:00
des
6fe9a920d1 Work around buggy servers such as NCSA httpd which send an incomplete
HTTP-Version on the Status-Line (see RFC2616 sections 3.1 and 6.1).
2000-09-24 12:22:12 +00:00
des
ebf8e6bdbf Document the FTP_PROXY and HTTP_PROXY variables better. 2000-08-31 15:13:22 +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
5f91d2827b Fix signedness bogon. 2000-08-02 11:25:21 +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
accb02b55a Ignore environment variables that are set but empty.
Sort out the size / length confusion.  Always try to report the *real* file
size in the url_stat structure, no matter how much of it is actually being
sent, and try to detect inconsistencies between sizes.

Rearrange the request loop to avoid having to add meaningless code just to
silence compiler warnings.

Switch to a more sensible and consistent interface for the _http_parse*()
functions.
2000-07-21 11:02:43 +00:00
des
ef0d473b84 Document the proxy support better. 2000-07-21 10:57:15 +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
adc026dc20 Don't try to skip to the requested offset if the server returns more data
than requested.  Instead, inform the caller of the real offset by modifying
the offset field in the original struct url, and let him decide how to handle
the situation.
2000-07-19 23:43:49 +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
9e42d615d8 Don't forget to set file descriptor to -1 after closing it, since the code
outside the loop inspects it to determine whether or not we succeeded in
retrieving the requested document. This fixes a bug where fetchGetHTTP()
would return a FILE with an invalid file descriptor if it hit the redirect
limit without locating the requested document.
2000-07-17 21:09:11 +00:00
des
147a437a42 Use a symbolic constant instead of hardcoding 999 2000-07-17 21:00:49 +00:00
des
a0fbdfaa34 Don't forget to declare fetchRestartCalls. 2000-07-17 20:52:06 +00:00
des
c1df3803c6 Introduce the (undocumented) variable fetchRestartCalls, which controls whether
or not interrupted system calls will be restarted. This fixes a bug where
fetch(1) would hang (potentially forever) if a server stopped responding,
because the signal handler would absorb the user's efforts to interrupt the
transfer.
2000-07-17 20:49:39 +00:00