Attilio Rao
f413289ee0
Fix a socket leak in ftp_request() after that a connection is established.
...
Submitted by: Sandvine Incorporated
Reviewed by: des, emaste
Sponsored by: Sandvine Incorporated
MFC: 1 week
2009-11-25 14:57:07 +00:00
Dag-Erling Smørgrav
340b079be0
Use memcpy(3) instead of the BSD-specific bcopy(3).
...
Submitted by: Joerg Sonnenberger <joerg@britannica.bec.de>
MFC after: 2 weeks
2008-02-08 09:48:48 +00:00
Dag-Erling Smørgrav
b2a9c5a1ba
Fix a regression introduced in rev 1.99: replace fclose(f) with a comment
...
explaining why f cannot possibly be a valid FILE * at this point.
MFC after: 1 day
2008-01-23 20:57:59 +00:00
Dag-Erling Smørgrav
facd982794
As several people pointed out, I did all the ctype casts the wrong
...
way (not for the first time...)
Noticed by: bde, ru ++
MFC after: 1 week
2007-12-19 00:26:36 +00:00
Dag-Erling Smørgrav
62a2681c93
Add support for the NO_PROXY / no_proxy environment variable as used by
...
lynx, curl etc. Note that this patch differs significantly from that
in the PR, as the submitter refined it after submitting the PR.
PR: 110388
Submitted by: Alexander Pohoyda <alexander.pohoyda@gmx.net>
MFC after: 3 weeks
2007-12-18 11:03:07 +00:00
Dag-Erling Smørgrav
836e34eeae
Old patch I had lying around: correctly cast the argument to is*().
...
IWBNI gcc could warn about this the way it warns about printf() abuse.
MFC after: 1 week
2007-12-18 10:41:12 +00:00
Dag-Erling Smørgrav
a1b37df2d7
Clean up namespace violations.
...
MFC after: 1 week
2007-12-14 10:26:58 +00:00
Nate Lawson
f5e97105d3
Add back the original behavior of changing the entire directory path at
...
once (CWD a/b/c vs. 3 CWDs). If an error occurs, we fall back to the default
method of a single CWD per directory element. Since this is technically
a violation of the basic FTP RFC, this behavior is under a compile-time
option FTP_COMBINE_CWDS and is off by default. It should work with most
Unix-based FTP daemons and can save latency.
MFC after: 2 weeks
2007-04-22 22:33:29 +00:00
Dag-Erling Smørgrav
9aa2cb8613
Respect FETCH_BIND_ADDRESS when opening the data connection.
...
PR: misc/98872
2006-06-13 10:21:03 +00:00
Dag-Erling Smørgrav
c23fb8a4d3
Fix a bug introduced in rev 1.92, where, when changing from one directory
...
to another, the first CWD after a string of CDUPs would incorrectly include
a slash before the directory name.
Reported by: obrien
PR: bin/83278
2006-06-13 10:19:59 +00:00
Dag-Erling Smørgrav
254f2fa208
In order to maintain interoperability with certain broken FTP servers,
...
ignore a MODE failure if and only if the mode we attempted to set was S
(which is supposed to be the default).
PR: bin/91973
2006-01-19 08:31:47 +00:00
Dag-Erling Smørgrav
fd04cc7766
Change directory one level at a time, and use CDUP to back out. This is a
...
work in progress; it partially fixed bin/83278 and is a prerequisite to
fixing bin/83277.
PR: bin/83277, bin/83278
2005-08-12 12:48:50 +00:00
Dag-Erling Smørgrav
2cbbf9dac9
Update copyright years.
2004-09-21 18:35:21 +00:00
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