Dag-Erling Smørgrav
fd8f6d2269
Don't close a FILE * which we know is bogus.
2003-08-29 15:54:12 +00:00
Dag-Erling Smørgrav
39082bb4a5
Some servers respond to RETR in active mode with 125 (connection already
...
open) rather than 150 (opening connection). There's no reason why we
shouldn't accept that.
PR: misc/42172
MFC in: 3 days
2003-08-19 11:43:11 +00:00
Mike Makonnen
4418f9df30
The flags passed in to _ftp_get_proxy may be null
...
Approved by: des, markm (mentor)(implicit)
2003-03-19 21:39:00 +00:00
Dag-Erling Smørgrav
b91d6074d4
Don't parse the proxy URL unless we're actually going to use it. No real
...
functional difference, but debugging output will be less confusing.
2003-03-11 08:20:58 +00:00
Dag-Erling Smørgrav
930105c1e9
style(9): add parentheses to sizeof even when not strictly required.
...
MFC after: 3 days
2003-01-28 08:04:40 +00:00
Dag-Erling Smørgrav
9f808a4dd0
Hook in the .netrc code + don't use pointers as if they were booleans.
2003-01-22 17:54:49 +00:00
Nate Lawson
13cc1c8394
The FTP connection caching needs a better interface -- connections are
...
closed through _fetch_close() which is the only one who knows the connection
REALLY was closed (since ref -> 0). However, FTP keeps its own local
cached_connection and checks if it is valid by comparing it to NULL. This
is bogus since it may have been freed elsewhere by _fetch_close().
This change checks if we are closing the cached_connection and the ref is 1
(soon to be 0). If so, set cached_connection to NULL so we don't
accidentally reuse it. The REAL fix should be to move connection caching
to the common.c level (_fetch_* functions) and NULL the cache(s) in
_fetch_close(). Then all layers could benefit from caching.
2002-10-25 01:17:32 +00:00
Tim J. Robbins
9d649c1fd0
When recycling a cached connection, increment the reference count so that
...
the heap block does not get freed and reused. This should fix the
pkg_add -r crashes that have been happening for months.
2002-10-20 10:36:27 +00:00
Bill Fenner
40cfbfd508
Make _fetch_connect() always set the error code.
...
Tell ftp that _fetch_connect() always sets the error code (http already knew)
2002-09-17 05:54:33 +00:00
Hajimu UMEMOTO
f8fa093e82
Cope with 2292bis-01 getaddrinfo (no NI_WITHSCOPEID, always attach
...
scope identifier).
Approved by: des
MFC after: 3 weeks
2002-07-02 11:09:02 +00:00
Dag-Erling Smørgrav
f606d589b9
Add a reference count to struct fetchconn so we don't prematurely close and
...
free a cached FTP connection.
2002-06-11 11:27:28 +00:00
Dag-Erling Smørgrav
9601e333a8
Wrap everything in struct connection, and enforce timeouts everywhere
...
(except for DNS operations). Always use funopen() for HTTP, to support
both timeouts and SSL.
2002-06-05 12:19:08 +00:00
Dag-Erling Smørgrav
dea29ca1d5
First step towards SSL support: wrap connections in a 'struct connection'
...
which contains the socket descriptor, the input buffer and (yet unused)
SSL state variables. This has the neat side effect of greatly improving
reentrance (though we're not *quite* there yet) and opening the door to
HTTP connection caching.
This commit is inspired by email conversations with and patches from
Henry Whincup <henry@techiebod.com> last fall.
2002-06-05 10:05:03 +00:00
Poul-Henning Kamp
06229ad2af
Modernize my email address
2002-03-25 13:53:46 +00:00
Dag-Erling Smørgrav
e19e6098b3
Reindent, and add parentheses to return statements. Some functions in
...
ftp.c and http.c now have exceedingly long lines due to deep nesting;
this will be corrected by reorganizing the code in a later revision.
2002-02-05 22:13:51 +00:00
Dag-Erling Smørgrav
e0583e0c23
Mark uploads as O_WRONLY, not O_RDONLY.
...
PR: misc/34043
MFC after: 2 weeks
2002-01-20 19:52:25 +00:00
Dag-Erling Smørgrav
f67efa37d6
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
Dag-Erling Smørgrav
102a87c1e1
Reorganize to reduce code duplication.
2001-12-04 01:09:19 +00:00
Dag-Erling Smørgrav
f573a5fc94
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
Matthew Dillon
cecb889f1d
Add __FBSDID()s to libfetch
2001-09-30 21:36:09 +00:00
Brian Somers
778de35906
Handle snprintf() returning < 0 (not just -1)
...
MFC after: 2 weeks
2001-08-20 15:44:17 +00:00
Brian Somers
5f32890558
Handle snrintf overflows.
...
Spotted by: bde
2001-08-20 13:44:13 +00:00
Brian Somers
2449bf28ad
Handle snprintf() returning -1.
...
MFC after: 2 weeks
2001-08-20 12:50:21 +00:00
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