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
1c2598aa2e
Add CHECK_FLAGS, a macro for (safely) checking if a particular flag is set.
2000-10-29 15:45:31 +00:00
Dag-Erling Smørgrav
91c5104600
Document FTP_PASSIVE_MODE and FTP_PASSWORD.
...
PR: docs/20626
Submitted by: nik
2000-10-29 12:58:08 +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
f18255c68b
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
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
23fe6d7a4c
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
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
1df2031c15
Document recent changes in URL parsing and proxy handling
2000-10-12 22:11:26 +00:00
Dag-Erling Smørgrav
bbc5af0c5a
ftp.c needs _http_request()
2000-10-12 22:10:43 +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
59769ab192
Relax URL syntax so that schemeless URLs are supported.
2000-10-12 22:07:49 +00:00
Dag-Erling Smørgrav
be9e1d8a68
Add macros for the names of the URL schemes we support.
2000-10-12 21:59:22 +00:00
Dag-Erling Smørgrav
89d755e156
Make the ENVIRONMENT section more legible, and mention that HTTP_AUTH is
...
colon-separated.
2000-10-12 16:55:52 +00:00
Dag-Erling Smørgrav
a898bb8d0d
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
Dag-Erling Smørgrav
2e83f63844
Document the FTP_PROXY and HTTP_PROXY variables better.
2000-08-31 15:13:22 +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
be6aff992d
Fix signedness bogon.
2000-08-02 11:25:21 +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
c78f1cc912
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
Dag-Erling Smørgrav
e0a9ca38aa
Document the proxy support better.
2000-07-21 10:57:15 +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
87b41116cc
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
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
c789727701
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
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
d999dcac2d
Don't forget to declare fetchRestartCalls.
2000-07-17 20:52:06 +00:00
Dag-Erling Smørgrav
a1bb3f482a
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
Dag-Erling Smørgrav
7c80207e33
Remove fetchContentType(), which disappeared in the HTTP rewrite.
2000-07-17 20:42:13 +00:00
Dag-Erling Smørgrav
e66b380285
#ifdef DEBUG -> #ifndef NDEBUG
...
Pointed out by: ache
2000-07-16 23:18:44 +00:00
Dag-Erling Smørgrav
6290ee735b
Reinsert the MIT copyright, which applies to the base64 code and was
...
left out by accident during the rewrite.
2000-07-16 01:04:10 +00:00
Dag-Erling Smørgrav
f4683775d7
Fix a bug (misplaced continue) that caused redirects to fail. Lots of code
...
moved around, but the acutal functional changes are small.
Add support for site-internal redirects (where the Location: header gives a
path instead of an absolute URI)
Pointed out by: kuriyama
2000-07-13 09:13:58 +00:00
Dag-Erling Smørgrav
98f5573fdd
Fully document the HTTP authorization feature.
...
Update the BUGS section to reflect the HTTP rewrite.
2000-07-12 10:41:29 +00:00
Dag-Erling Smørgrav
e4878e39a3
Extensive rewrite of the HTTP code. The new code is significantly cleaner and
...
more robust, and somewhat more efficient. It also handles authorization and
redirects properly, and supports timeouts like the FTP code.
Many thanks to Umemoto-san for his assistance with IPv6 support, both here
and in other parts of libfetch.
2000-07-12 10:39:56 +00:00
Dag-Erling Smørgrav
e137bceb8f
Use fetch_putln()
2000-07-11 23:50:22 +00:00
Dag-Erling Smørgrav
a176302737
Add _fetch_putln()
2000-07-11 23:50:08 +00:00
Dag-Erling Smørgrav
bc2a5e683a
Document that basic authorization now kinda works.
2000-07-11 18:13:08 +00:00
Dag-Erling Smørgrav
35f723db8a
Rework the authorization code.
...
Only send absolute URI if connected to a proxy, since Apache doesn't always
understand absolute URIs.
Clean up some of the debugging output.
2000-07-11 18:12:41 +00:00
Dag-Erling Smørgrav
ec894321e3
Clean up the debugging output
2000-07-11 18:07:09 +00:00
Hajimu UMEMOTO
7487ef6243
Free chunks obtained by getaddrinfo(3).
...
Approved by: des
2000-07-10 16:28:28 +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
4d029f13b4
Fix basic authentication, and add proxy authentication.
...
Submitted by: se
2000-07-08 08:08:58 +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
cf5af79cac
Don't incorrectly report a protocol error when we get a 302 and redirects
...
are disabled.
2000-06-21 09:49:51 +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
6f9febf93c
Hackish support for 302 redirect.
2000-05-26 15:34:42 +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
Dag-Erling Smørgrav
a68f8b580f
Output newline after debugging message
2000-05-25 16:50:08 +00:00
Dag-Erling Smørgrav
9a964d6a82
Add (and document) fetchMakeURL()
2000-05-25 16:46:09 +00:00
Dag-Erling Smørgrav
ba101983d5
Dump com_err, it's a stinking crock of shit.
2000-05-25 16:24:31 +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
Hajimu UMEMOTO
c97925ad4e
Make HTTP_PROXY work for FTP.
...
Reported by: Ben Smithurst <ben@scientia.demon.co.uk>
Reviewed by: des
2000-05-15 09:05:36 +00:00
Dag-Erling Smørgrav
40ac28454e
Document struct url.
...
Document the default values for fetchStat*().
2000-05-15 08:34:42 +00:00
Dag-Erling Smørgrav
7a5b4b1ba6
Initialize the struct url_stat at the beginning of _fetch_stat_file().
2000-05-15 08:33:58 +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
f8f4130b77
Remove unused 'verbose'.
...
Initialize the struct url_stat at the beginning of fetchStatHTTP().
2000-05-15 08:24:29 +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
96d7319afb
Bump major number, since struct url has changed.
...
Discussed with: jdp
2000-05-11 15:29:26 +00:00
Dag-Erling Smørgrav
9364c53225
Fix hard sentence break.
...
Submitted by: sheldonh
2000-05-11 15:22:52 +00:00
Dag-Erling Smørgrav
60245e42b0
Reorganize some of the http code and split it into more functions.
...
Implement fetchStatHTTP().
Unbungle struct url, and add fetchFreeURL().
Document it.
2000-05-11 13:31:02 +00:00
Sheldon Hearn
0f5fcaa3f1
Supply only one author name per instance of %A, as per mdoc.samples(7).
...
PR: 18465
Submitted by: Kazu TAKAMUNE <takamune@avrl.mei.co.jp>
2000-05-10 09:49:04 +00:00
Dag-Erling Smørgrav
068cd2851f
While we're at it, add a length field too in case we want to fully implement
...
partial fetches later.
2000-05-07 20:52:40 +00:00
Dag-Erling Smørgrav
3d2a847151
Implement restart
2000-05-07 20:51:31 +00:00
Dag-Erling Smørgrav
807c941c90
Use sizeof more consistently.
2000-05-07 20:02:52 +00:00
Dag-Erling Smørgrav
e6182307e8
Use sizeof more consistently.
...
Outline sanity checking of server port spec.
2000-05-07 20:01:55 +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
Dag-Erling Smørgrav
5ff28c822b
Implement restart
2000-05-07 19:56:07 +00:00
Dag-Erling Smørgrav
fd75cc902e
Add offset field to struct url
2000-05-07 19:46:33 +00:00
Alexey Zelkin
15efcd39ae
Introduce .Lb macro to libfetch manpage
...
Sort .Nm values
Change first column width in errors list (table look much better now)
Remove redundant comma
2000-04-22 16:08:41 +00:00
Sheldon Hearn
c6ff3a1bf7
Remove single-space hard sentence breaks. These degrade the quality
...
of the typeset output, tend to make diffs harder to read and provide
bad examples for new-comers to mdoc.
2000-03-02 09:14:21 +00:00
Dag-Erling Smørgrav
5d32c97ce9
Fix timestamp handling.
...
Submitted by: bde
2000-01-26 12:50:46 +00:00
Rodney W. Grimes
d05257b0f2
Replace beforeinstall target with new variables used by .mk system.
...
Reviewed by: marcel, and make world
2000-01-14 07:57:47 +00:00
Dag-Erling Smørgrav
fc6e9e6539
More old uncommitted patches: implement timeouts at the protocol level.
...
Currently only supported for ftp connections.
2000-01-07 12:58:40 +00:00
Dag-Erling Smørgrav
be0d5ff224
Add error codes for protocol errors.
2000-01-07 12:56:27 +00:00
Dag-Erling Smørgrav
f5f109a068
Patches I've had lying around for several months:
...
* Add the 'h' ftp flag (allocate local port in high range)
* Add the 'd' flag (use direct connection even if proxy is defined)
* Make sure flags != NULL before calling strchr().
* Minor changes to some comments.
2000-01-07 10:59:12 +00:00
Peter Wemm
7f3dea244c
$Id$ -> $FreeBSD$
1999-08-28 00:22:10 +00:00
Bruce Evans
e7720fa877
Fixed prototype for fetchParseURL().
1999-03-05 18:45:32 +00:00
Dag-Erling Smørgrav
5a5375540a
Add MAINTAINER.
1999-01-29 12:15:34 +00:00
Dag-Erling Smørgrav
ce71b7364c
Implement and document file list retrieval.
1998-12-21 19:41:50 +00:00
Dag-Erling Smørgrav
d941fd2df9
Don't specify a language to compile_et.
...
Rename fetchConnect to _fetch_connect since it's internal.
1998-12-18 14:32:48 +00:00
Dag-Erling Smørgrav
5aea254ff0
Implement and document fetchStatFTP.
...
Update description of struct url_stat in the man page.
Clean up error handling in ftp.c.
1998-12-16 15:29:03 +00:00
Dag-Erling Smørgrav
3b7a67401b
Remove unused header files. Fix a few shadowing bugs. Improve error reporting.
1998-12-16 11:44:31 +00:00
Dag-Erling Smørgrav
0fba3a0005
Add verbose flag, and support functions.
...
Brucify the Makefile.
Differentiate atime and mtime in fetch*Stat().
Fix a few pointer bugs.
Tweak some error messages.
Don't #include sys/param.h and stdio.h in fetch.h.
Document that sys/param.h and stdio.h must be #included before fetch.h.
1998-12-16 10:24:55 +00:00
Dag-Erling Smørgrav
2878b30827
Fix the "Unknown HTTP error" message.
...
Make compile_et generate prototypes.
1998-12-15 12:24:26 +00:00
Dag-Erling Smørgrav
08f9fcbfa8
fetch_err.h is a generated file, so don't look for it in ${.CURDIR}.
1998-11-07 08:59:38 +00:00