Commit Graph

125 Commits

Author SHA1 Message Date
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
lukem 70b3ec2f32 fix handling of port on non-proxied auto-fetch ftp:// urls 1998-09-01 04:42:49 +00:00
lukem f0622bf9a4 some compilers bitch about int used when enum expected... 1998-08-08 11:23:46 +00:00
lukem 2bcc4d08b7 minor workaround for borken compilers 1998-08-08 07:51:30 +00:00
lukem 688446255e * implement xsignal(); same semantics as signal() but uses sigaction
with an explicit SA_RESTART. (needed for portability)
* use xsignal() for SIGALRM and SIGINFO handlers
1998-08-08 06:46:01 +00:00
lukem b0dc919619 missed a NO_QUAD situation. be consistent in use of ifndef NO_QUAD 1998-08-08 05:06:56 +00:00
lukem 07a9ebee13 * fix skipping of leading / in dir, which may have resulted in
parsing junk memory (picked up whilst porting to solaris)
* remove superfluous var assignments
1998-08-08 04:40:50 +00:00
lukem 6a9c077701 pull in <sys/time.h> for utimes(), reset port to 0 in auto_fetch loop 1998-08-08 04:04:17 +00:00
lukem e4a646bf1c use utimes() instead of futimes() - the former is more portable 1998-08-08 03:33:20 +00:00
lukem 0a0b6ed3ce include <netbsd.h> for MAXHOSTNAMELEN on borken systems 1998-08-08 03:17:40 +00:00
lukem 4c105ef56e need <signal.h> for signal.... 1998-08-08 03:15:44 +00:00
lukem edcec00949 technically, you need <sys/stat.h> for struct stat .... 1998-08-08 03:06:00 +00:00
lukem 78cf64fb5d pull in <netinet/in.h> and <arpa/inet.h> for in_{addr,port}_t (more portable) 1998-08-08 03:02:55 +00:00
lukem 64fa07c111 default anon password is user@ not user@host 1998-08-08 02:58:48 +00:00
lukem efa34be454 use <limits.h> for INT_MAX (more portable) 1998-08-08 02:51:49 +00:00
lukem 69761d6f64 cleaner version of fvdl's previous fix, using xstrdup as well 1998-08-04 03:35:24 +00:00
fvdl 14f785118c Avoid using freed memory when using URLs and a proxy. 1998-08-03 19:10:29 +00:00
lukem 4a8ec5494d features:
* support $no_proxy, which is a comma or space separated list of
  host[:port] elements for which proxying is to be disabled.
  (asked for by cgd in [bin/5027])
* if $FTPANONPASS is defined, use that as the anon ftp password
  (instead of "`whoami`@")
* allow http URL's without a filename as long as an output file
  is specified.

other stuff:
* implement parse_url(), which breaks up a URL into its bits, and use.
* simplify url_get() and auto_fetch() to use parse_url() and to not
  modify the supplied URL or a copy of it.
* implement xmalloc() and xstrdup(); error-checked malloc()/strdup()
* add more consistency to messages, quoting strings in output as `%s'
1998-08-03 01:49:25 +00:00
lukem 2a1907a853 check EL_EDITMODE after el_source and disable editing if necessary 1998-07-29 02:46:26 +00:00
mycroft f56c79f70c const poisoning. 1998-07-26 21:47:47 +00:00
lukem 5ae8291cc6 minor grammar fix 1998-07-26 12:59:40 +00:00
lukem b521b370b5 * spell `retrieved' correctly!
* parse Last-Modified: HTTP headers for date, and change time of
  retrieved file if parsing succeeded
* support file:/// and file://localhost/ URLs
* in url_get(), re-write byte moving code to consistently use fread()
  and fwrite(), and check errors at end with ferror()
* add about:* easter-egg (#ifndef SMALL :-)
1998-07-26 12:58:16 +00:00
lukem 8d879385dd * send 'Connection: close' in HTTP/1.1 headers, preventing the
remove server from using a persistent connection, which speeds
  up such requests.
* support http 301 and 302 redirects
* rewrite guts of url_get() to use fparseln() et al instead of
  read(s,&p,1)...  enables each in the header to be parsed
  as necessary
* rename login to ftp_login, to remove conflict with util.h::login
* cleanup verbose messages during http proxy requests
1998-07-22 16:06:27 +00:00
perry 41b921e7d1 Style police: "uses" is better than "utilizes", which is a horrible nelogism. 1998-07-13 17:16:22 +00:00
thorpej 7a12770f94 Add "sndbuf" and "rcvbuf" commands for setting the socket buffer sizes,
which in turn can allow the use of larger TCP windows.  This is a work in
progress; there is not yet support for specifying global defaults or
user prefrences on a host/network basis.
1998-07-10 04:39:03 +00:00
mrg 2beab49a06 - use an array MAXHOSTNAMELEN+1 size to hold hostnames
- ensure hostname from gethostname() is nul-terminated in all cases
- minor KNF
- use MAXHOSTNAMELEN over various other values/defines
- be safe will buffers that hold hostnames
1998-07-06 06:45:41 +00:00
kleink fc5d36f8e4 GLOB_QUOTE is dead; per POSIX, backslash quoting of special characters being
enabled is the default behaviour.
1998-06-19 22:58:04 +00:00
lukem 9a6e9b2ce7 some fixes & enhancements from openbsd's ftp, with extra fixes by me:
* default to passive with active fallback. $FTPMODE modifies this behaviour.
  -A forces active connection.
* support '-o outfile' for auto-fetched files. outfile can be a file,
  `-' (for stdout), or '|command' (to output each file through command).
* support '-r waittime', which retries the connection after waittime seconds
  if it fails.
* fix 'page file' when restart is non-zero.
* try all ip-addresses of a host in a http fetch (as the normal ftp fetch
  does).

XXX: a ``broken pipe'' error sometimes occurs with -o '|command';
i haven't tracked this down yet.
1998-06-04 08:28:35 +00:00
tv 063efa8267 Add the ability to work with HTTP-1.1-style virtual hosts, using the
HTTP/1.0 backwards compatible "Host:" field method.
1998-06-03 15:50:34 +00:00
lukem 881bf87781 * use CC_REFRESH_BEEP in an ambiguous complete (recently added to -ledit)
* in command completion, append a space to a definite match
* in local path completion, append a space or / to a definite match,
  depending if the path is a non-directory or directory respectively
(nothing added to remote path completion yet, until a simple sane method
 of determining if the path is a directory or not is available).
1998-06-01 14:46:11 +00:00
pk 44c785c1cd Restore `preserve' value when we no longer need the modified version. 1998-05-20 09:43:41 +00:00
christos fad7b63434 - add <signal.h> since we are using signals.
- cast arg to is*() to unsigned char.
- don't require quad_t to exist to compile.
- adapt to the new libedit version.
1998-05-20 00:55:52 +00:00
christos a0a2de671b - clarify dangling else 1998-05-20 00:55:16 +00:00
christos 9160dcee94 - add <signal.h> since we are using signals.
- add <sys/time.h> since we are using utimes
- don't require quad_t to exist to compile.
1998-05-20 00:54:52 +00:00
christos 2187d01f57 - cast arg to is*() to unsigned char. 1998-05-20 00:54:26 +00:00
christos da64e19c34 - cast arg to is*() to unsigned char.
- don't require d_namlen to exist
- don't recompute the length of the file everytime around the loop.
1998-05-20 00:53:57 +00:00
christos acb3ba5670 - add <signal.h> since we are using signals.
- cast arg to is*() to unsigned char.
- don't require quad_t to exist to compile.
1998-05-20 00:52:29 +00:00
msaitoh 8e57bce5a8 fix typo. 1998-05-20 00:38:46 +00:00
kleink 650b9ca681 Need <time.h> for asctime() and localtime() prototypes. 1998-04-01 21:07:03 +00:00
christos 9032c78379 Don't hardcode 1900 1998-02-04 15:23:54 +00:00
lukem 33a9f67f94 enable el_parse for unknown commands (so editrc(5) commands can be used directly 1998-01-21 11:14:34 +00:00
lukem fa21aaa9f5 cosmetic mods to ptransfer() (which displays transfer statistics for
SIGINFO and at the end of the transfer):
* display time taken as [[x days?] hh:]mm:ss
* display ETA as [hh:]mm:ss
* print ' (stalled)' if the transfer is stalled
1998-01-20 04:39:34 +00:00
lukem 6ab4bdf006 define MAX_IN_PORT_T and use instead of USHRT_MAX. suggested by cgd@netbsd.org 1998-01-18 22:09:39 +00:00
lukem 7ee412ebee * ensure buffer for username is initialised, so ^D on username prompt
doesn't use garbage for the username.  from "Soren S. Jorvang" <soren@t.dk>
  in [bin/4559]
* use in_port_t for ports, and USHRT_MAX instead of 0xffff
  (from millert@openbsd.org)
* use `NULL' instead of `(.... *)0' where appropriate.
1998-01-18 14:23:33 +00:00
gwr 61958ba2d9 Kill the "progress bar" stuff when compiled with -DSMALL
because progressmeter() uses floats which are unwanted
when this is built under src/distrib/utils/x_ftp
(Maybe -DNO_FLOAT would be better?)
1997-12-12 23:34:56 +00:00
lukem 699c57c48b correctly detect good vs bad hash mark values. (found by <enami@netbsd.org>) 1997-11-02 00:18:46 +00:00
lukem d067f3bbd2 * in recvrequest(), ignore restart_point unless "RETR"ieving. fixes problems
where a remote completion or `mget' would confuse the client a `restart'
  had been issued beforehand. now, `restart' is remembered until an operation
  that can actually use it is invoked.
* in sendrequest(), don't reset restart_point upon entry. fixes `restart'
  for `put' operations.
* if `restart' is invoked with no arguments, print current setting instead
  of displaying a usage
* consistently use printf("%qd", (long long)restart_point) when displaying
  restart_point
* use strto[lq]() instead of atol() when parsing `mark' and `restart' values
* remove unnecessary strlen()s when result of previous snprintf() will do
* replace a few malloc()/strcpy()s with strdup()s
* use SECSPERHOUR instead of '3600'
1997-11-01 14:36:49 +00:00
mycroft b66f8512e6 Use S_IS*(), not S_IF*. 1997-10-19 19:09:05 +00:00