Commit Graph

172 Commits

Author SHA1 Message Date
lukem
f7540e6f75 * fix gate mode to login as `user@realhost' rather than using PASSERVE;
the latter only seemed to work for TIS Gauntlet and not TIS fwtk.
  thanks to simonb@netbsd.org for testing this. fixes [bin/5556].
* if EOF (e.g, ^D) is entered at a username/password/account prompt which
  happens to use fgets(), exit the login rather than treating EOF as CR.
* don't use the comma operator where separate statements are valid
* always use snprintf to copy stuff into malloced buffers, just in case
  typos creep in and mean that the buffer ends up being overflowed
1999-06-02 02:03:57 +00:00
matthias
3f1104fb18 ftp_login would only return success for proxy connections after the last
change. Fix this by setting rval at the right place.
1999-05-20 14:08:12 +00:00
lukem
dedd2f772c only enable editing by default if stdin is a tty.
noticed by Onno van der Linden <onno@simplex.nl>
1999-05-17 04:26:45 +00:00
lukem
4494ebf448 parse http:// urls (and the $http_proxy variable) for [user:[pass]@]
elements, which are used for the initial authentication attempt (if
requested by the server).  in the case of $http_proxy, use the values
for proxy authentication.
1999-05-12 11:16:43 +00:00
lukem
566466ff97 update copyright 1999-05-12 11:06:00 +00:00
lukem
eef2152360 * fix ftp_login() so that -a always logs in anonymously, even if a
.netrc entry exists for the host with a valid user. noted by
  Frederick Bruckman <fb@enteract.com> in [bin/7477]
* fix a minor memory leak associated with calling ruserpass() with
  an empty user, password, or account.
1999-05-05 16:04:58 +00:00
lukem
f3e5b2a6c6 clarify what uses gate-ftp mode. suggested by simonb 1999-05-04 14:16:15 +00:00
lukem
25bacdd4ea print the "xxx bare linefeeds" message after the progressmeter. noted by dan@ 1999-05-04 14:12:37 +00:00
lukem
f55d4712e3 * make parsing of ftp:// urls more RFC 1738 compliant;
- the path is split on `/', and each directory is CWD-ed into separately.
      (from [standards/7484] by Alan Barrett <apb@iafrica.com>)
    - support a trailing `;type=X' suffix, where X is a,i, or d.  (d isn't
      implemented, but it is recognised)
    - the only non-compliant behaviour is that empty directories sections
      (e.g `//') aren't run as `CWD ' - as a lot of ftpds don't like that.
      Instead, treat this as a no-op.
* don't support globbing for ftp urls, since that's technically not
  RFC compliant.
* fix a couple of man-page nits
1999-04-28 13:35:40 +00:00
lukem
6b9a96fb35 revert previous (creation of /usr/bin/pftp link);
* $FTPMODE is the documented way in ftp(1) to force passive, active,
  gate-ftp, or autodetect.
* AFAIK, we haven't shipped any previous release with pftp in /usr/bin
* no link was made for gate-ftp (and i don't think that makes sense in
  /usr/bin either)
* even though the link isn't made, the support for pftp, gate-ftp, and
  the `-p' flag should remain since people may depend on having their
  own link (e.g, ~/bin/pftp -> /usr/bin/ftp) or aliases which use
  these things. it doesn't hurt to leave argv[0] checking in ftp's main().
1999-04-16 23:01:55 +00:00
mcr
67411e1a0a added LINKS= to make /usr/bin/pftp 1999-04-15 20:48:49 +00:00
lukem
82f739bcb0 when using editline, work on the correct buffer. fixes problem where blank
input lines were being added to the history buffer.
1999-03-31 02:00:42 +00:00
lukem
bed9aad370 * implement -R; restart non-proxied command-line FTP xfers
* fix fetch_ftp() so that hcode parsing is not done for file:// urls
  (a } in the wrong place, and code at the wrong indent level...)
* change outfile to being a global (so it gets correctly reset)
* change parse_url to not remove leading '/' for non ftp urls.
  whilst this is not totally rfc1738 compliant, other code kinda
  assumes this is the case, and it doesn't hurt
1999-03-22 07:36:40 +00:00
christos
3853a6978b Add a few more variables that end up in registers in gcc-2.8.1 1999-03-15 08:52:17 +00:00
garbled
5b40cb5777 First round of .Os cleanups. .Os is defined in the tmac.doc-common file,
so we shouldn't override it with versions in the manpages.  Many more to
come.
1999-03-15 08:22:20 +00:00
lukem
5a1118c5f9 * add url_decode() - `in-place' decode %xx escapes in a given url component
* parse_url()
-   only look for user[:pass] for an ftp url (per rfc1738)
-   strip leading /'s in an ftp url. (almost per rfc 1738)
* fetch_url()
-   decode a copy of the path and use that to build local filenames
-   send port in http Host: header (suggested by cgd@netbsd.org)
* fetch_ftp()
-   url_decode() the user, pass and path
-   fix splitting of path into dir & file (partially from [bin/7073])
-   don't bother caching the last host; it can cause problems when
    using ftp:// transfers, or when the user changes between xfers
* improve documentation of auto-fetched url arguments (especially regarding
  escape sequences in ftp:// urls)
* some whitespace & copyright updates

this should fix [bin/7073] William O Ferry <woferry@warp.wofme.com>,
as well as the metaissues raised in that PR.
1999-03-08 04:36:12 +00:00
lukem
babd00aa2c whitespace & copyright fixes 1999-03-08 03:09:08 +00:00
mycroft
a1c657fe56 Clean up SYNOPSIS formatting. 1999-03-07 11:29:58 +00:00
lukem
48923b69bf support restart during proxy transfers (the traditional ftp command, not the
http proxy). seems to work with my limited testing (i'm not a big user of
proxy).  bug noted by Jorgen Lundman <lundman@argonaut.com> in [bin/5948]
1999-02-19 16:29:27 +00:00
lukem
b0e36dc183 during an ambiguous complete, take into account the length of the
string already input before inserting the non-ambiguous component.
bug noted by Thorsten Frueauf <frueauf@ira.uka.de> in [bin/7014]
1999-02-18 23:08:41 +00:00
lukem
d84dcf29f1 always run progressmeter() even if it's not the foregroundproc(), as some
calculations need to occur to prevent the calculated xfer rate from being
too fast if ftp(1) is backgrounded for a while during the xfer.
bug found by thor lancelot simon <tls@netbsd.org>.
1999-02-12 12:11:18 +00:00
lukem
358b69935b whitespace 1999-02-08 05:27:56 +00:00
lukem
d00f4770d3 ftpvis(): escape LF too 1999-02-07 13:15:12 +00:00
lukem
6cc6d5d262 changes to fix [bin/6951] by Peter Simons <simons@cys.de>:
* implement ftpvis(), which \ quotes the following in the given string:
  SP, TAB, \, CR, "
* use ftpvis() in complete_ambiguous(), to escape characters in a word
  which would confuse makeargv()/slurpstring().
1999-02-07 13:14:06 +00:00
lukem
b8ebb2ba4e complete ~ in local paths (noted by perry@netbsd.org) 1999-02-07 12:27:50 +00:00
lukem
0d4c2e0d1b revert previous write->fwrite conversion in progressmeter(); stdio is bad in signal handlers, nkay? 1999-01-31 02:29:00 +00:00
lukem
e2352fc342 only print "Requesting..." messages if (verbose) 1999-01-25 23:17:37 +00:00
lukem
0bd80459cb * -v enables verbose & progress, -V disables both
* set setvbuf(ttyout, NULL, _IOLBF, 0) and remove a bunch of fflush(ttyout).
* use fwrite() instead of write() for progressmeter (don't intermix stdio
  with non stdio ops)
1999-01-24 02:39:29 +00:00
lukem
5051fd95cb flush ttyout in togglevar() 1999-01-24 00:51:08 +00:00
lukem
0e87f1b53d support -f, which forces a cache flush for http xfers using either
`Pragma: no-cache' (http/1.0) or `Cache-Control: no-cache' (http/1.1)
1999-01-23 15:46:24 +00:00
lukem
a877181317 Fall back from passive to active if connect() fails. (from openbsd) 1999-01-05 23:33:44 +00:00
lukem
7a3ee4352c whitespace fix 1999-01-05 22:54:49 +00:00
lukem
6ae118efdb add missing braces (this is C not python...). fixes coredump on solaris 1999-01-05 00:31:20 +00:00
lukem
234fb36cc6 support http/1.1's `transfer-encoding: chunked' mode. [noted by hubertf & bad] 1999-01-01 13:26:31 +00:00
lukem
1f3ec47c0f * implement auth_url(); given a challenge, decode it, ask the user for
a response, and return the base64 encoded response. only the `Basic'
  scheme is supported.
* implement base64_enc(), which base64 encodes the given buffer
* add support for http response codes 401 "authorization required" and 407
  "proxy authorization required", using auth_url(). [requested by veego@]
1999-01-01 10:00:46 +00:00
lukem
11154508d4 improve previous, so that display rounding is done to binary boundaries
(1024 not 1000) because the prefix determination is done that way.
tested on various boundary conditions.
1999-01-01 03:55:26 +00:00
lukem
8557ede465 add two digits of precision to the transfer rate, and always show at
least KB/s. instead of printing `5414 B/s' now print `5.41 KB/s'.
1999-01-01 02:05:05 +00:00
lukem
974dee5975 use uname(3) to determine info to send in User-agent: header. (suggested by cgd) 1998-12-31 02:10:34 +00:00
lukem
cc66a8544e * major code reorg; gut auto_fetch() and url_get() into a smaller auto_fetch(),
do_fetch() - which retrieves one file calling fetch_url() or fetch_ftp()
  as necessary.
* don't http redirect more than 5 times for a given url
* send `User-Agent: NetBSD-ftp/1.4' header in http requests. (suggested
  by Christoph Badura <bad@ora.de>)
* cleanup http return code parser, and add support for:
    - 300 `Multiple Choices' - but only if the server returns a
      preferred url in a Location: header because i'm *not* adding
      a html parser to provide the user with options.
    - 305 `Use Proxy [given in Location: header]'. (XXX: not tested)
* support http redirects to non-proxied ftp://urls. (bug discovered by
  Chris Demetriou <cgd@netbsd.org>)
* auto-login to an ftp site (using the FTP protocol) if an ftp://host/dir/
  style url is given and ftp_proxy is set. whilst this is less orthoganol
  with other ftp://host/file urls it's *much* more convenient.
1998-12-29 14:59:04 +00:00
lukem
28007f54ca be consistent with return (foo) style 1998-12-29 14:27:59 +00:00
lukem
ee32f5a96b be saner about the method to determine which $proxy to use 1998-12-27 05:49:53 +00:00
christos
9ca5ef57d6 more is not less on the systems that don't have less. Make "more" the default
pager if $PAGER is not set in the name of portability.
1998-11-25 16:55:10 +00:00
explorer
faade9c8e2 Send an Accept: */* header, since some sites require content negotiation.
Grr.
1998-11-22 06:52:32 +00:00
itohy
6d075e2860 Temporary fix of UTC -> time_t conversion:
1. changed to use timegm(3) on NetBSD and
2. supply alternative code for other Unix-like OSs
(NetBSD ftp shall be portable for some reasons :-).

This fix closes PR #6448.

NOTE: This should be fixed again if a portable UTC to time_t
conversion method is specified in some standards.
1998-11-18 07:24:25 +00:00
lukem
fa954d84d1 * fix previous in a more portable manner (timegm() is not portable/standard).
use mktime(), and adjust to GMT as per code in util.c::remotemodtime()
1998-11-12 22:27:17 +00:00
itohy
638ec4fd83 HTTP uses UTC time, and changed to use timegm(3) instead of mktime(3)
for conversion of HTTP time.

XXX Unfortunately, timegm(3) is not portable (ex. SunOS 4 have, but 5 not).
1998-11-12 18:19:02 +00:00
christos
7f1ed758a3 char -> unsigned char 1998-11-06 16:52:42 +00:00
lukem
da0a823fb0 * hash & progress are mutually exclusive. [noted by mrg@netbsd.org]
* in autofetch mode, don't attempt to 'cd /' on first xfer (only on
  subsequent xfers), as some ftp daemons don't permit that.
  [noted by dbj@netbsd.org].
  XXX: code could be smarter (but a lot more complicated to boot); this
  works for now.
1998-10-08 14:45:26 +00:00
lukem
887627831e * add transfer rate to progress meter. (suggested by hubert feyrer)
* fix up progress meter display for files once > ~20.47MB has been
  transferred.  (noted by darren reed)
* use xsignal() for SIGWINCH, so window resizes don't abort xfers on
  drainbamaged systems.
* don't assume that TIOCGWINSZ returns a non zero width.
1998-09-28 09:03:22 +00:00
lukem
00c10429b7 replace command(buf) with command("%s", buf) in quote1(), thus preventing
'quote' commands that contain % formats from being mis-intepreted.
noted by Lundman <lundman@argonaut.com> on current-users@netbsd.org
1998-09-01 14:25:52 +00:00