#
1.130 |
|
18-Feb-2024 |
christos |
Add -b <buflen> to specify the buffer size.
|
#
1.129 |
|
25-Feb-2023 |
mlelstv |
Add option sslnoverify to control validation of SSL certificates. Add netrc processing to fetch-mode (URL on command line) to enable options and autologin via netrc. Fix SSL cleanup in some error paths.
Certificate validation is now enabled by default. Set FTPSSLNOVERIFY=1 in environment or configure a corresponding init macro via netrc to not validate certs (required if you haven't installed a required CA certificate for OpenSSL).
Discussed with lukem@ on icb.
|
Revision tags: netbsd-10-base
|
#
1.128 |
|
09-Oct-2021 |
lukem |
branches: 1.128.2; ftp: fix -? more portably
Start the optstring with ":" (which implicitly disables opterr), and handle '?' with optopt=='?' separately to ':'. Fixes -? display of full usage on other platforms.
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.127 |
|
18-Jul-2020 |
lukem |
ftp: add -? for help. improve synopsis
Add -? to display usage synopsis and help to stdout. This allows for "ftp -? | less", which is more user friendly. Errors still show usage to stderr. Consistency improvements in some usage text.
|
Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
|
#
1.126 |
|
04-Feb-2019 |
mrg |
branches: 1.126.2; - add justquit() that always exits. use it to avoid unreachable code.
|
Revision tags: pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.125 |
|
04-Mar-2018 |
dholland |
branches: 1.125.4; Don't use the local username as the default anonftp password.
once upon a time doing this was part of the social glue that held the community together, but that was a long time ago, and now it's just an information leak.
proposed on tech-userlevel in 2008, then apparently forgotten :-|
|
#
1.124 |
|
25-Nov-2017 |
christos |
Make outfile always allocated, free it to set it to NULL, and don't move it around.
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
|
#
1.123 |
|
23-Apr-2015 |
lukem |
branches: 1.123.8; Add -x xferbufsize to set xferbuf size.
Implement -x xferbufsize set the socket send and receive buffer size, as per 'xferbuf' in interactive mode.
Patch from Nicholas Mills (via private mail), with minor adjustment by me.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 tls-maxphys-base
|
#
1.122 |
|
22-Dec-2012 |
christos |
branches: 1.122.8; document https support, mentioning certificates are not validated, and obey https_proxy.
|
#
1.121 |
|
21-Dec-2012 |
christos |
PR/47276: Add https support
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base
|
#
1.120 |
|
10-Dec-2011 |
lukem |
branches: 1.120.2; 1.120.6; Move determination of socket buffer sizes from startup to the first time a socket is used, as the previous logic assumed AF_INET sockets were available (which they may not be in an IPv6-only system). Per discussion with Maxim Konovalov and the FreeBSD problem 162661.
|
Revision tags: yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.119 |
|
16-Sep-2011 |
joerg |
branches: 1.119.2; Use __dead
|
#
1.118 |
|
14-Aug-2011 |
christos |
fix gcc-4.5 warnings
|
Revision tags: cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 matt-premerge-20091211
|
#
1.117 |
|
13-Jul-2009 |
roy |
Rename internal getline() function to get_line() so it does conflict with the soon to be added getline(3) libc function.
|
Revision tags: jym-xensuspend-nbase jym-xensuspend-base
|
#
1.116 |
|
24-Apr-2009 |
lukem |
Revert incorrect change made as part of the WARNS=4. Fixes "ftp host [port]" on the CLI. Noted by Geoff Wing.
|
#
1.115 |
|
12-Apr-2009 |
lukem |
Fix numerous WARNS=4 issues (-Wcast-qual -Wsign-compare).
|
#
1.114 |
|
12-Apr-2009 |
lukem |
fix -Wshadow issues
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3
|
#
1.113 |
|
09-Sep-2008 |
gmcgarry |
branches: 1.113.6; getline() returns int. Don't cast to unsigned value and compare with -1.
|
Revision tags: wrstuden-revivesa-base-2
|
#
1.112 |
|
13-Aug-2008 |
lukem |
Use AF_INET instead of AF_UNSPEC as the default family if !defined(INET6). Avoids problem reported by Matthias Scheler <tron@NetBSD.org>.
|
#
1.111 |
|
21-Jul-2008 |
lukem |
Add TNF to __COPYRIGHT
|
#
1.110 |
|
21-Jul-2008 |
lukem |
Remove the \n and tabs from the __COPYRIGHT() strings. Tweak to use a consistent format.
|
Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 wrstuden-revivesa-base
|
#
1.109 |
|
10-May-2008 |
skd |
Add epsv6 and epsv to disable extended passive mode for ipv6 or both ipv4 and ipv6 respectively. This hack is due to our friends a Juniper Networks who break epsv in ipv6. Should be fixed in ScreenOS 6.2.X.
|
#
1.108 |
|
05-May-2008 |
lukem |
branches: 1.108.2; Only attempt to el_parse() a command unknown by the default parser if editing is enabled. Fixes PR bin/38589
|
#
1.107 |
|
28-Apr-2008 |
martin |
Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
|
#
1.106 |
|
02-Dec-2007 |
wiz |
branches: 1.106.6; Sort options.
|
Revision tags: matt-armv6-prevmlocking matt-mips64-base
|
#
1.105 |
|
22-May-2007 |
lukem |
branches: 1.105.4; * main: call tzset() to ensure TZ is setup for other <time.h> functions. * remotemodtime(): use strptime() to parse the reply. * fetch_url(): ensure struct tm is zeroed before calling strptime().
|
#
1.104 |
|
17-Apr-2007 |
lukem |
* Implement -s srcaddr; uses srcaddr as the local IP address for all connections. Based on code in the version of ftp that FreeBSD had before they replaced it with lukemftp. * Move error message handling into ftp_connect() rather than in the caller, so that more specific error reporting can occur. * Improve consistency of various warning and error messages.
|
#
1.103 |
|
12-Apr-2007 |
lukem |
Fix using /usr/bin/ftp as a slave process on the end of a pipe by calling fflush(stdout) before each command. Taken from FreeBSD's pre-lukemftp version of ftp.
|
#
1.102 |
|
13-Dec-2006 |
christos |
gcc4 does not care about &foo; use volatile instead. From Anon Ymous
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base chap-midi-nbase chap-midi-base
|
#
1.101 |
|
31-Jan-2006 |
christos |
rename debug to ftp_debug. grr libssh.
|
#
1.100 |
|
31-Jan-2006 |
christos |
Rename xfoo() to ftp_foo() to avoid collisions with libssh. Don't ask.
|
#
1.99 |
|
29-Jun-2005 |
christos |
Add NO_USAGE and NO_DEBUG so that we can fit in the floppies again.
|
#
1.98 |
|
10-Jun-2005 |
jmc |
Need to #ifdef around declaration of ch with NO_EDITCOMPLETE so this compiles on rescue/miniroot's
|
#
1.97 |
|
10-Jun-2005 |
lukem |
Implement: int getline(FILE *stream, char *buf, size_t buflen, const char **errormsg) Read a line from the FILE stream into buf/buflen using fgets(), so up to buflen-1 chars will be read and the result will be NUL terminated. If the line has a trailing newline it will be removed. If the line is too long, excess characters will be read until newline/EOF/error. Various -ve return values indicate different errors, and errormsg will be changed to an error description if it's not NULL.
Convert to use getline() instead of fgets() whenever reading user input to ensure that an overly long input line doesn't leave excess characters for the next input operation to accidentally use as input.
Zero out the password & account after we've finished with it.
Consistently use getpass(3) (i.e, character echo suppressed) when reading the account data. For some reason, historically the "login" code suppressed echo for Account: yet the "user" command did not!
Display the hostname in the "getaddrinfo failed" warning.
Appease some -Wcast-qual warnings. Fixing all of these requires significant code refactoring. (mmm, legacy code).
|
#
1.96 |
|
20-May-2005 |
jdc |
Make this compile on sparc64 (size_t != int).
|
#
1.95 |
|
19-May-2005 |
lukem |
Use size_t instead of int where appropriate.
|
#
1.94 |
|
13-May-2005 |
lukem |
* Correct the "optlen" argument passed to getsockopt(3) and setsockopt(3) in various places. Fixes a problem noted by Allen Briggs. * Improve warning printed when connect(2) for the data channel fails.
|
#
1.93 |
|
11-May-2005 |
lukem |
Use socklen_t instead of int as the 5th argument to getsockopt(). Improve invocation of setsockopt() and associated failure messages.
|
#
1.92 |
|
10-May-2005 |
lukem |
Prevent an overly-long input line causing a core dump when editing is enabled. Issue noted by Ryoji Kanai in FreeBSD Problem Report # 77158.
|
#
1.91 |
|
11-Apr-2005 |
lukem |
gratuitous whitespace cleanup (before someone else jumps the gun...)
|
Revision tags: netbsd-3-base
|
#
1.90 |
|
21-Jul-2004 |
lukem |
branches: 1.90.2; Slightly rework SIGINT handling; if we're exiting the auto-fetch stuff and sigint_raised is non-zero, reset the handler for SIGINT to SIG_DFL and raise(SIGINT) so that the appropriate wait(3) status is setup. Based on solution proposed by Ognyan Kulev. This should really fix PR [pkg/26351].
|
#
1.89 |
|
20-Jul-2004 |
lukem |
If an ftp auto-fetch transfer is interrupted by SIGINT (usually ^C), exit with 130 instead of 1 (or rarely, 0). This allows an ftp auto-fetch in a shell loop to correctly terminate the loop. Should fix PR [pkg/26351], and possibly others.
|
#
1.88 |
|
09-Jul-2004 |
wiz |
Add -q to usage. From Kouichirou Hiratsuka in PR 26199.
|
#
1.87 |
|
14-May-2004 |
christos |
PR/25566: Anders Magnusson: ftp(1) do not like large TCP windows. Limit it to 8M.
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.86 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22365, verified by myself.
|
#
1.85 |
|
26-Jul-2003 |
salo |
netbsd.org->NetBSD.org
|
#
1.84 |
|
14-May-2003 |
wiz |
Uppercase URL.
|
Revision tags: fvdl_fs64_base
|
#
1.83 |
|
27-Aug-2002 |
christos |
Add a -q <quit-time> flag to abort a transfer if it has stalled for <quit-time> seconds. Ok'd by luke.
|
#
1.82 |
|
05-Jun-2002 |
lukem |
- use setprogname() - only support -6 if INET6 is defined
|
#
1.81 |
|
05-Jun-2002 |
lukem |
- when showing the final progress bar, replace "00:00 ETA" with the elapsed time. (suggested by simonb) - actually display transfer stats after a URL fetch. (bug introduced a *long* time ago) - update copyright & version
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
|
#
1.80 |
|
18-Mar-2002 |
thorpej |
Deal with const'ification if el_parse().
|
#
1.79 |
|
26-Dec-2001 |
lukem |
update copyrights
|
#
1.78 |
|
23-Dec-2001 |
lukem |
Add -4 to force IPv4 and -6 to force IPv6 address usage. From Hajimu UMEMOTO, via Mike Heffner of FreeBSD.
(FreeBSD has imported NetBSD's ftp as their ftp client; Mike is sending back some of their local changes).
|
#
1.77 |
|
19-Feb-2001 |
cgd |
convert to use getprogname()
|
#
1.76 |
|
09-Jan-2001 |
jdolecek |
call setlocale() on startup
|
#
1.75 |
|
15-Dec-2000 |
lukem |
invoke cmdtab.c_handler()s with argv[0] == c_name instead of the supplied name. that way the full (unambiguous) name is displayed in error messages and usage strings.
|
#
1.74 |
|
15-Nov-2000 |
lukem |
- implement "mreget"; as per "mget" but uses "reget" instead of "get" - add -N netrc and $NETRC, as methods to select an alternative .netrc file - cache local user name and home directory for further use - in mget(), use docase() instead of a local version to do the case conversion.
|
#
1.73 |
|
18-Jul-2000 |
lukem |
add support for FEAT and OPTS commands with `features' and `opts'. (from RFC 2389).
add support for MLST & MLSD (machine parseble listings) with 'mlst', 'mlsd' and 'pmlsd' (mlsd |$PAGER) commands. (from draft-ietf-ftpext-mlst-11)
rename remotesyst() to getremoteinfo(), and modify to parse the result from FEAT (if supported), and take into account the support for the various extensions such as MDTM, SIZE, REST (STREAM), MLSD, and FEAT/OPTS. put each feature into one of the following categories: - known to work (explicit FEAT) - unknown but assume works until explicit failure, when it's then tagged as `known not to work'. - known not to work (FEAT succeeded but didn't return anything, or was unknown and then explicit failure) assign results into features[] matrix.
add support to getreply() so that an optional callback will be called for each line received from the server except for the first and last. this is used in FEAT (and MLST) parsing.
modify various commands to check if REST (STREAM), MDTM and SIZE are explicitly or implicitly supported before using.
fix `syst' when verbose is off.
minor knf (indent goto labels by one space, etc).
simply various command usage handlers by assuming that argv != NULL except for quit() and disconnect().
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base
|
#
1.72 |
|
11-Jun-2000 |
lukem |
portability fixes for lukemftp: * initconn(): use in_addr_t instead of u_int32_t when manipulating IPv6 addresses (and assume anything with ipv6 has in_addr_t; if not, i'll add an autoconf test for it) * ai_unmapped(): not all systems have sin_len; so only set #ifdef BSD4_4 * fix some lint
|
#
1.71 |
|
31-May-2000 |
lukem |
Add support for 'ftp -u url file ...', to upload a list of files to given url. Mostly based on [bin/10019] by Scott Aaron Bamford <sab@ansic.net>
|
Revision tags: minoura-xpg4dl-base
|
#
1.70 |
|
01-May-2000 |
lukem |
branches: 1.70.2; convert to ANSI KNF
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.69 |
|
28-Nov-1999 |
lukem |
* implement xsl_init() and xsl_add(); error checking forms of sl_{init,add}() * fix bug where the second press of <TAB> on an empty word (i.e, list all options) may have resulted in an strncmp() against NULL. (detected by _DIAGASSERT())
|
#
1.68 |
|
26-Nov-1999 |
lukem |
* complete_remote(): use remglob("", ...) instead of remglob(".", ...), for listings of the current working directory; some ftp servers don't like `NLST .'. [noted by Giles Lean <giles@nemeton.com.au>] * recvrequest(): treat remote=="" as remote==NULL when calling command(). (to support the above change) * support `[user@]' in `[user@]host' and `[user@]host[:][path]'. [based on idea (and initial code) from David Maxwell <david@fundy.ca>] * `idle' may be invoked without any args * reformat some comments * reformat usage string in program and man page * call updateremotepwd() after successful login, not after successful connect * always call setsockopt(, IPPROTO_IP, IP_TOS, ) (et al); using #if defined(IPPROTO_IP) doesn't work on certain foreign systems where enums instead of #defines are used... [noted by Matthias Pfaller <leo@dachau.marco.de>]
|
#
1.67 |
|
12-Nov-1999 |
lukem |
- implement `set rprompt'; right side version of `set prompt'. depends on EL_RPROMPT support i added to editline(3). - allow $FTPPROMPT and $FTPRPROMPT to override defaults for the relevant prompts - move `%' formatting code from prompt() to expandbuf(). - implement `%.' and `%c', similar to the same % codes in tcsh(1) (functionality I added to tcsh nearly 6 years ago), except that `%.' always does `...trailing' and `%c' always does `/<x>trailing'. - unknown `%foo' codes get printed as `%foo'
|
#
1.66 |
|
11-Nov-1999 |
lukem |
- implement updateremotepwd(); update the global variable `remotepwd' to contain the remote working directory. - add `set prompt', a user configurable prompt. (defaults to `ftp> '). the following escape characters a la tcsh(1) are supported: %/, %m, %M, and %n. - add global var `username'; used by prompt code - fix a couple of minor memory leaks - bump version
|
Revision tags: comdex-fall-1999-base
|
#
1.65 |
|
24-Oct-1999 |
lukem |
new features: - add `usage'; displays the usage of a command. implemented by calling the c_handler() with argc = 0, argv = "funcname". - add `passive auto'; does the same as $FTPMODE=auto. - add `set [option value]'; display all options, or set an option to a value. - add `unset option'; unset an option. - add getoptionvalue() to retrieve an option's value, and replace a few global variables with calls to this. - implement cleanuppeer(), which resets various bits of state back to `disconnected'. call in disconnect() and lostpeer(). - support completing on `options'. - improve recovery after a SIGINT may have closed the connection. XXX: there's still a couple to fix
other stuff: - various consistency fixes in the man page. - ensure that the command usage strings in the code and man page match reality. - mput/mget: check that the connection still exists before each xfer. - minor cosmetic changes in confirm(). - set code correctly in sizecmd() and modtime() - don't need \n in err() strings. - change lostpeer to take an argument (rather than casting (sig_t)lostpeer in signal handlers) - knf and whitespace police.
|
#
1.64 |
|
13-Oct-1999 |
lukem |
* fix up confirm() (broke `a' and `p' in last commit) * simplify main loop (don't need `top' variable any more) * use a struct sockaddr_in6.sin6_addr for the result from inet_pton(), rather than u_char buf[16] * add a few more comments
|
#
1.63 |
|
12-Oct-1999 |
lukem |
a few user interface and cosmetic tweaks: * confirm(): move from util.c to cmds.c. display mnemonic string in its prompt. add support for `q' (terminate current xfer), `?' (show help list) * in various signal handlers, output a linefeed only if fromatty. * if fgets(stdin) returned NULL (i.e, EOF), clearerr(stdin) because you don't want future fgets to fail. this is not done for the fgets() in the main command loop, since ftp will quit at that point. * unless ftp is invoked with -a, don't retain the anonftp setting between hosts (`ftp somehost:' sets anonftp, but you don't want that to `stick' if you close that connection and open a new one).
|
#
1.62 |
|
11-Oct-1999 |
lukem |
if editing is enabled when intr() is called, print a newline. (cosmetic fix)
|
#
1.61 |
|
09-Oct-1999 |
lukem |
* use sigsetjmp()/siglongjump() instead of setjmp()/longjmp(); the latter don't save the signal mask on some foreign systems. * ensure signal handlers don't use stdio and do reset errno if they don't exit with siglongjmp() * use a common SIGINT handler for {send,recv}request()
|
#
1.60 |
|
05-Oct-1999 |
lukem |
* factor out SIGINFO setting into a handler that is always active (but only prints out info if bytes > 0). only set the handler if SIGINFO is defined * hijack SIGQUIT to be the same as SIGINFO (foreign ports have this, and it's annoying to have SIGQUIT dump core on netbsd when it prints info on other systems) * in {recv,send}request(), factor a lot of duplicated code out into a `cleanup' section at the end * rework shell() a bit
|
#
1.59 |
|
05-Oct-1999 |
lukem |
add TNFi copyright to all files i've done more than a minor amount of work to...
|
#
1.58 |
|
01-Oct-1999 |
lukem |
If EPSV or EPRT fails, disable epsv4 for the rest of the current connection. the disabled state can be overridden by toggling epsv4.
(I got sick of the errors about EPSV not being supported on almost every server I connect to. This way we retain support for epsv4, but it's not so whiny after the first failure...)
|
#
1.57 |
|
01-Oct-1999 |
lukem |
prefix the global variables in ftp_var.h with GLOBAL, which defaults to "extern" if it's not set. define GLOBAL to (empty) in main.c. this effectively moves all the globals into main.c whilst retaining namespace access to them in other source files. (global vars in header files confuse foreign linkers)
|
#
1.56 |
|
01-Oct-1999 |
lukem |
* don't bother with "pathnames.h"; it contained just a single #define. instead, include <paths.h> in the files that need it * slightly reorg ftp_var.h
|
#
1.55 |
|
30-Sep-1999 |
lukem |
* In the !NI_NUMERICHOST case (i.e, getaddrinfo() challenged systems), portnum should be in host order. found/fixed by Matthias Pfaller <leo@dachau.marco.de> * parse_url(): improve checking of portnum, and add an extra argument to pass back the parsed portnum to the caller (reduces a bit of code duplication) * Move the KAME/WIDE copyrights after the BSD/TNFi ones. Since there was significantly less code added under the former, it's only fair on the latter.
|
#
1.54 |
|
30-Sep-1999 |
lukem |
* fix initialisation of home[] * fetch_url(): if path would be NULL, return strdup("")
|
#
1.53 |
|
28-Sep-1999 |
lukem |
* add new commands: lpage page local files pdir as dir, but through your $PAGER pls as ls, but through your $PAGER * implement docase() (a la dotrans() et al) and use appropriately, rototilling some duplicated code * globulize(): modify to return a pointer to the strdup()ed result in all cases, and hack the code that calls it to take this into account * replace strcpy() and strncpy() with strlcpy() * put(), getit(): use some aptly named local vars instead of argv[...] * delint
|
#
1.52 |
|
27-Sep-1999 |
lukem |
* idle(): rename to idlecmd(). certain linux distributions have an incompatible prototype for idle() in <unistd.h> (which i thought was against namespace and sensibility guidelines, but...) * consistently use xsignal() instead of signal(). we get known behaviour in all cases (SA_RESTART), which is good for some borken foreign systems. * remove signal.h from most files; it's unnecessary now * fetch_url(): use `long chunksize' instead of ssize_t; it's more portable, and we're setting chunksize with strtol() anyway * xsignal(): only use SA_RESTART if it exists. SunOS 4.x doesn't have it but has the inverse (SA_INTERRUPT). the original function i was inspired from had this support (lib/signal.c, W. Richard Stevens' `UNP 2nd ed Vol 1'). * remove <termios.h> from util.c; it should be unnecessary now
|
#
1.51 |
|
24-Sep-1999 |
lukem |
if getsockopt() returns a buffer size of <= 0, set them to 8192. this works around a problem in certain OS from Sun with a version < 5.6...
|
#
1.50 |
|
22-Sep-1999 |
lukem |
branches: 1.50.2; * add support for `xferbuf', which sets both `sndbuf' and `rcvbuf' * document the above three commands * rototill the way the sndbuf and rcvbuf work. remove resetsockbufsize() * use the appropriate socket buffer size as the size of the buffer that the read()/write() loops use. speeds up things in some cases.
|
#
1.49 |
|
21-Sep-1999 |
lukem |
only default to epsv4 if INET6 is defined
|
#
1.48 |
|
12-Jul-1999 |
lukem |
* change fetch_ftp() to be fully rfc 1738 compliant; if the URL contains the an empty directory (e.g, between `some' and `path' in `ftp://host/some//path'), then execute `CWD ' (without a path). This command will probably fail on rfc 959 compliant servers, so issue a warning in this case and bail. [noted by cgd]. (i wonder if the people who wrote rfc 1738 actually realised that this requirement appears to contravene the spec for `cwd' in rfc 959 ?) * replace isurl() with isipv6addr(), and use appropriately. fixes auto-login with `classic ftp URLs' (e.g, `ftp somehost:') * cleanup and rework some of the ipv6 stuff in parse_url() * prevent potential coredump in fetch_ftp() when parsing `;type=X' * KNF a few lines * fix a couple of comments * cleanup the man page a bit
|
#
1.47 |
|
11-Jul-1999 |
itojun |
add epsv4 command, which enable/disable the use of EPSV/EPRT.
this is mainly for (hypothetical) ftp server which disconnect clients that use EPSV/EPRT. I've never seen any ftp server like this, but epsv4 command may be of use when such an ftp server is found.
|
#
1.46 |
|
10-Jul-1999 |
christos |
isurl does not return a pointer!
|
#
1.45 |
|
02-Jul-1999 |
itojun |
add dual-stack (IPv4/v6) support. hope I broke no other part...
|
#
1.44 |
|
29-Jun-1999 |
lukem |
[fear this; more ftp hacking from lukem :-]
features:
|
#
1.43 |
|
20-Jun-1999 |
cgd |
split the "SMALL" #ifdefs into ones for NO_ABOUT, NO_EDITCOMPLETE, and NO_PROGRESS. -DSMALL still implies all of those. progress meter support isn't necessary for the smallest possible ftp client, but it adds very little space and makes users' lives much better. Therefore, it should be enabled for installation media if at all possible.
|
#
1.42 |
|
02-Jun-1999 |
lukem |
* 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
|
#
1.41 |
|
17-May-1999 |
lukem |
only enable editing by default if stdin is a tty. noticed by Onno van der Linden <onno@simplex.nl>
|
Revision tags: netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.40 |
|
31-Mar-1999 |
lukem |
branches: 1.40.2; when using editline, work on the correct buffer. fixes problem where blank input lines were being added to the history buffer.
|
#
1.39 |
|
22-Mar-1999 |
lukem |
* 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
|
#
1.38 |
|
08-Mar-1999 |
lukem |
* 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.
|
#
1.37 |
|
24-Jan-1999 |
lukem |
* -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)
|
#
1.36 |
|
23-Jan-1999 |
lukem |
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)
|
#
1.35 |
|
27-Dec-1998 |
lukem |
be saner about the method to determine which $proxy to use
|
#
1.34 |
|
28-Sep-1998 |
lukem |
* 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.
|
#
1.33 |
|
08-Aug-1998 |
lukem |
need <signal.h> for signal....
|
#
1.32 |
|
03-Aug-1998 |
lukem |
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'
|
#
1.31 |
|
04-Jun-1998 |
lukem |
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.
|
#
1.30 |
|
21-Jan-1998 |
lukem |
enable el_parse for unknown commands (so editrc(5) commands can be used directly
|
#
1.29 |
|
18-Jan-1998 |
lukem |
define MAX_IN_PORT_T and use instead of USHRT_MAX. suggested by cgd@netbsd.org
|
#
1.28 |
|
18-Jan-1998 |
lukem |
* 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.
|
#
1.27 |
|
12-Dec-1997 |
gwr |
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?)
|
Revision tags: netbsd-1-3-BETA netbsd-1-3-base
|
#
1.26 |
|
14-Oct-1997 |
christos |
branches: 1.26.2; PR/4257: Jaromir Dolecek: Compensate for the libedit changes.
|
#
1.25 |
|
23-Aug-1997 |
lukem |
support $TMPDIR
|
#
1.24 |
|
18-Aug-1997 |
lukem |
bugs fixed: * don't interpret '-' or '|' when a local filename is determined from the remote name (i.e, in mget, and in get with only one argument). This is implemented using an extra argument to recvrequest(). Fixes a major security hole. * clean up memory leak when using globulize() * clean up a couple of comments * fix wording in TNF copyright
features added: * support for TIS fwtk gate-ftp servers: * read defaults from $FTPSERVER && $FTPSERVERPORT * start in gate-ftp mode if invoked as 'gate-ftp' * toggle or set with 'gate [host [port]]'
|
#
1.23 |
|
20-Jul-1997 |
lukem |
* use RCSID() && COPYRIGHT() macros * cleanup for WARNS=1 (including some ugly '(void)&var' bits wrapped in #ifdef __GNUC__ to shut up gcc warnings WRT setjmp/longjmp) * use strtol() instead of atoi(), and more extensively check result of conversion * use u_int16_t instead of short or int for TCP port addresses
|
#
1.22 |
|
10-Jun-1997 |
lukem |
Don't use editing or progress bar if $TERM isn't set or is "dumb". Fixes emacs ange-ftp. Suggested by Todd Miller <Todd.Miller@courtesan.com>, tested by matt green <mrg@eterna.com.au>
|
#
1.21 |
|
05-Apr-1997 |
lukem |
* support $ftp_proxy for ftp:// transfers [bin/3245] * add "more" & "less" as synonyms for "page" * move editline setup code into controlediting(), and call appropriately. only setup setup terminal if going into interactive mode. inspired by Todd Miller <todd.miller@courtesan.com>
|
#
1.20 |
|
16-Mar-1997 |
lukem |
Fixes from <Todd.Miller@cs.colorado.edu>, with some cleanup and reworks by me: * only echo "Passive mode" in verbose mode; scripts that use ftp may get unwanted output otherwise * disable progress bar and modification time preservation when retreiving to a non-regular files. fixes progress bar getting in way of "get file /dev/tty" * setup el_init() et al if editing is set, not if fromatty. TODO: migrate this to a function, and call if editing is turned on later in the session. also implement edit_cleanup if editing is turned off * call el_set() after setting SIGWINCH handler. This fixes the problem when suspending in a non-cbreak shell (e.g, csh) would trash your tty mode. * reset interactive mode correctly in auto_fetch() mget mode
|
#
1.19 |
|
14-Mar-1997 |
christos |
SMALLFTP->SMALL; remove SMALL from Makefile
|
#
1.18 |
|
13-Mar-1997 |
lukem |
Features: * support remglobbing of auto_fetch arguments * new flag - '-e'; disable editing * "page file" == "get file |${PAGER-less}"
Bugfixes/cleanup: * consistently use a trailing '.' on messages * code cleanup, including buffer overrun fixes, use puts and putchar in places, etc (inspired by OpenBSD mods) * disable progress bar when local-file is a pipe or '-' * skip \r in http headers * fix remote ftpd slash bug more elegantly (so it works with ////) * abort_remote(): check if cout==NULL before using it. should fix [bin/3273] * fixed up cosmetic problems when complete_remote() generated errors from the remote server (such as "no files found", "login with user and pass", ...) done by adding extra argument to remglob(), which is a pointer to an error buffer to put messages in rather than printing to stdout.
|
#
1.17 |
|
01-Feb-1997 |
lukem |
[Yet Another Huge Ftp Commit - hopefully the last for a while, barring any more little things people want added ...]
New features: * progressmeter is now asynchronous, so "stalled" transfers can be detected. "- stalled -" is displayed instead of the ETA in this case. When the xfer resumes, the time that the xfer was stalled for is factored out of the ETA. It is debatable whether this is better than not factoring it out, but I like it this way (I.e, if it stalls for 8 seconds and the ETA was 30 seconds, when it resumes the ETA will still be 30 seconds). * verbosity can be disabled on the command line (-V), so that in auto-fetch mode the only lines displayed will be a description of the file, and the progress bar (if possible) * if the screen is resized (and detected via the SIGWINCH signal), the progress bar will rescale automatically.
Bugs fixed: * progress bar will not use the last character on the line, as this can cause problems on some terminals * screen dimensions (via ioctl(TIOCWINSZ)) should use stdout not stdin * progressmeter() used some vars before initialising them * ^D will quit now. [fixes bin/3162] * use hstrerror() to generate error message for host name lookup failure. * use getcwd instead of getwd (it should have been OK, but why tempt fate?) * auto-fetch transfers will always return a positive exit value upon failure or interruption, relative to the file's position in argv[]. * remote completion of / will work, without putting a leading "///". This is actually a bug in ftpd(1), where "NLST /" prefixes all names with "//", but fixing every ftpd(1) is not an option...
|
#
1.16 |
|
19-Jan-1997 |
lukem |
New features: * Command line editing via editline(3) library. * Context sensitive command and file completion, including remote files.
Enhancements to auto-fetch feature: * Support for http:// URLs using the http protocol, including proxy HTTP support via $htty_proxy if it's defined. * The connection is kept open between successive files on the same host. (obviously, this does not count for http requests.) * Return value of ftp is 0 on no error, or the offset in argv[] of the file which failed (i.e., argv[x] failed, ftp returns x). * If the path in an ftp URL or classic format line has a trailing '/', cd to the path and enter interactive mode. Fixes [bin/3011], albiet requiring the user to help ftp in determining the operation.
Other changes: * '-P port' works for normal ftp, and is the default for all classic style auto-fetch transfers and for ftp URLs that don't specify the port. (previously it would just work for the first xfer.) * Some code moved into separated files along logical divisions. * Editing and completion can be compiled out with -DSMALLFTP.
|
#
1.15 |
|
29-Dec-1996 |
lukem |
* preserve modtime if size is 0 [bin/3040, Enami Tsugutomo] * in autofetch mode, don't retry a file if the connection failed - skip it and move to the next file. [bin/3051, Matt Green] * only print error messages from SIZE or MDTM if the user used 'size' or 'modt' (respectively). prevents extraneous warnings during normal transfers when connected to a site which doesn't support these (behaviour prior to last commit), but still allows error feedback to specific user requests for this info (which the last commit broke). * 'account': only accept one optional argument * if invoked as pftp, default to passive mode on (from FreeBSD) * remove leading '0 ' in progress bar - looked ugly * use warn instead of perror * use strncpy when src isn't known to have safe length * remglob(): use mkstemp() to prevent symlink games, and don't override _PATH_TMP, use it as the prefix to the temp file
|
#
1.14 |
|
06-Dec-1996 |
lukem |
functionality mods: * implement 'progress bar/meter' (inspired by ncftp). use 'progress' to toggle on. it will display current file size to 5 digits, automatically determining suffix (up to 16384 P (petabytes) == 2^64). * 'ls' now uses NLST (unadorned listing), a la older ftp clients. 'dir' still does LIST (long listing). idea from John Nemeth <jnemeth@cue.bc.ca>
bug fixes: * return first line of reply in reply_string[] from getreply(), instead of last line. This fixes [bin/741] (parsing of SYST), and also means that SIZE and MDTM messages will be parsed correctly if they're longer than 1 line. * parse URL-style auto-ftps that have no filename correctly (e.g, ftp://host, ftp://host/, ftp://host/dir/). pointed out by Jaromir Dolecek <dolecek@saruman.ics.muni.cz> * pass the correct size array in 2nd arg of utimes() when setting the modification time
|
#
1.13 |
|
28-Nov-1996 |
lukem |
More features, some of which were inspired by changes that friedman@gnu.ai.mit.edu (Noah Friedman) made to his modified ftp: - implement "lpwd" - local pwd - implement "preserve" - toggle preserving of file modification times on retrieved files - allow for explicit "on" or "off" arg to toggle commands - "exit" synonym for "quit", "msend" synonym for "mput" - in confirmation mode, allow 'a' (yes to rest of current command), and 'p' (turn off prompt mode, as if 'prompt off' was done, effective immediately) - "modtime" returns time formatted as localtime, not GMT
Bug fixes: - check for extraneous args on commands - cleanup const usage, line formatting - create 0 length temporary file in remglob() to prevent symlink games (from OpenBSD) - check length of filename of ~/.netrc (from OpenBSD)
|
#
1.12 |
|
25-Nov-1996 |
lukem |
cleanups/bugfixes: - don't echo 'ACCT' parameter when debugging (a la 'PASS') - Fix checking of directory access for "/foo", the parent directory is "/", not "" (from FreeBSD) - remove trailing whitespace on lines - add any missing NetBSD tags - cleanups to man page, includinging sorting options description
feature additions: - variable sized hash marks (from [bin/683], but done in the hash command as an optional arg) - more user-friendly transfer time printing (from FreeBSD, with mods) - '-p' command line option to jump into PASV mode (closes [bin/2857], but with an option rather than checking argv[0]) - SIGINFO support for printing xfer stats when sending/receiving requests - '-P port' for changing the port to connect to (from thorpej@netbsd.org) - '-a': bypass normal login, and try anonymous login (from OpenBSD via thorpej) - autofetch files via url (ftp://...) or "classic" (host:/file) (from OpenBSD via thorpej) - 'ftp' synonymous with 'open' (from FreeBSD)
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.11 |
|
07-May-1996 |
pk |
Fence off NULL args in getcmd() (fixes/works around PR#824).
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.10 |
|
15-Sep-1995 |
pk |
Avoid falling off the end of a fixed-length array (from John F. Woods; PR#1431).
|
#
1.9 |
|
14-Sep-1995 |
cgd |
needs string.h for protos.
|
#
1.8 |
|
08-Sep-1995 |
tls |
Sync with 4.4lite2
|
#
1.7 |
|
24-Dec-1994 |
cgd |
needs string.h
|
#
1.6 |
|
31-Aug-1994 |
mycroft |
Fix option parsing bug reported by Uwe Arndt, and another related bogon.
|
#
1.5 |
|
29-Aug-1994 |
mycroft |
branches: 1.5.2; Add RCS ids.
|
#
1.4 |
|
25-Aug-1994 |
cgd |
passive mode support, from David Carrel <carrel@cisco.com>, and cleaned up for the new ftp sources by me.
|
#
1.3 |
|
25-Aug-1994 |
cgd |
clean up import, no local changes.
|
Revision tags: netbsd-1-0-base
|
#
1.2 |
|
01-Aug-1993 |
mycroft |
Add RCS identifiers.
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; 1.1.2; Initial revision
|
#
1.129 |
|
25-Feb-2023 |
mlelstv |
Add option sslnoverify to control validation of SSL certificates. Add netrc processing to fetch-mode (URL on command line) to enable options and autologin via netrc. Fix SSL cleanup in some error paths.
Certificate validation is now enabled by default. Set FTPSSLNOVERIFY=1 in environment or configure a corresponding init macro via netrc to not validate certs (required if you haven't installed a required CA certificate for OpenSSL).
Discussed with lukem@ on icb.
|
Revision tags: netbsd-10-base
|
#
1.128 |
|
09-Oct-2021 |
lukem |
ftp: fix -? more portably
Start the optstring with ":" (which implicitly disables opterr), and handle '?' with optopt=='?' separately to ':'. Fixes -? display of full usage on other platforms.
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.127 |
|
18-Jul-2020 |
lukem |
ftp: add -? for help. improve synopsis
Add -? to display usage synopsis and help to stdout. This allows for "ftp -? | less", which is more user friendly. Errors still show usage to stderr. Consistency improvements in some usage text.
|
Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
|
#
1.126 |
|
04-Feb-2019 |
mrg |
branches: 1.126.2; - add justquit() that always exits. use it to avoid unreachable code.
|
Revision tags: pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.125 |
|
04-Mar-2018 |
dholland |
branches: 1.125.4; Don't use the local username as the default anonftp password.
once upon a time doing this was part of the social glue that held the community together, but that was a long time ago, and now it's just an information leak.
proposed on tech-userlevel in 2008, then apparently forgotten :-|
|
#
1.124 |
|
25-Nov-2017 |
christos |
Make outfile always allocated, free it to set it to NULL, and don't move it around.
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
|
#
1.123 |
|
23-Apr-2015 |
lukem |
branches: 1.123.8; Add -x xferbufsize to set xferbuf size.
Implement -x xferbufsize set the socket send and receive buffer size, as per 'xferbuf' in interactive mode.
Patch from Nicholas Mills (via private mail), with minor adjustment by me.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 tls-maxphys-base
|
#
1.122 |
|
22-Dec-2012 |
christos |
branches: 1.122.8; document https support, mentioning certificates are not validated, and obey https_proxy.
|
#
1.121 |
|
21-Dec-2012 |
christos |
PR/47276: Add https support
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base
|
#
1.120 |
|
10-Dec-2011 |
lukem |
branches: 1.120.2; 1.120.6; Move determination of socket buffer sizes from startup to the first time a socket is used, as the previous logic assumed AF_INET sockets were available (which they may not be in an IPv6-only system). Per discussion with Maxim Konovalov and the FreeBSD problem 162661.
|
Revision tags: yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.119 |
|
16-Sep-2011 |
joerg |
branches: 1.119.2; Use __dead
|
#
1.118 |
|
14-Aug-2011 |
christos |
fix gcc-4.5 warnings
|
Revision tags: cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 matt-premerge-20091211
|
#
1.117 |
|
13-Jul-2009 |
roy |
Rename internal getline() function to get_line() so it does conflict with the soon to be added getline(3) libc function.
|
Revision tags: jym-xensuspend-nbase jym-xensuspend-base
|
#
1.116 |
|
24-Apr-2009 |
lukem |
Revert incorrect change made as part of the WARNS=4. Fixes "ftp host [port]" on the CLI. Noted by Geoff Wing.
|
#
1.115 |
|
12-Apr-2009 |
lukem |
Fix numerous WARNS=4 issues (-Wcast-qual -Wsign-compare).
|
#
1.114 |
|
12-Apr-2009 |
lukem |
fix -Wshadow issues
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3
|
#
1.113 |
|
09-Sep-2008 |
gmcgarry |
branches: 1.113.6; getline() returns int. Don't cast to unsigned value and compare with -1.
|
Revision tags: wrstuden-revivesa-base-2
|
#
1.112 |
|
13-Aug-2008 |
lukem |
Use AF_INET instead of AF_UNSPEC as the default family if !defined(INET6). Avoids problem reported by Matthias Scheler <tron@NetBSD.org>.
|
#
1.111 |
|
21-Jul-2008 |
lukem |
Add TNF to __COPYRIGHT
|
#
1.110 |
|
21-Jul-2008 |
lukem |
Remove the \n and tabs from the __COPYRIGHT() strings. Tweak to use a consistent format.
|
Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 wrstuden-revivesa-base
|
#
1.109 |
|
10-May-2008 |
skd |
Add epsv6 and epsv to disable extended passive mode for ipv6 or both ipv4 and ipv6 respectively. This hack is due to our friends a Juniper Networks who break epsv in ipv6. Should be fixed in ScreenOS 6.2.X.
|
#
1.108 |
|
05-May-2008 |
lukem |
branches: 1.108.2; Only attempt to el_parse() a command unknown by the default parser if editing is enabled. Fixes PR bin/38589
|
#
1.107 |
|
28-Apr-2008 |
martin |
Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
|
#
1.106 |
|
02-Dec-2007 |
wiz |
branches: 1.106.6; Sort options.
|
Revision tags: matt-armv6-prevmlocking matt-mips64-base
|
#
1.105 |
|
22-May-2007 |
lukem |
branches: 1.105.4; * main: call tzset() to ensure TZ is setup for other <time.h> functions. * remotemodtime(): use strptime() to parse the reply. * fetch_url(): ensure struct tm is zeroed before calling strptime().
|
#
1.104 |
|
17-Apr-2007 |
lukem |
* Implement -s srcaddr; uses srcaddr as the local IP address for all connections. Based on code in the version of ftp that FreeBSD had before they replaced it with lukemftp. * Move error message handling into ftp_connect() rather than in the caller, so that more specific error reporting can occur. * Improve consistency of various warning and error messages.
|
#
1.103 |
|
12-Apr-2007 |
lukem |
Fix using /usr/bin/ftp as a slave process on the end of a pipe by calling fflush(stdout) before each command. Taken from FreeBSD's pre-lukemftp version of ftp.
|
#
1.102 |
|
13-Dec-2006 |
christos |
gcc4 does not care about &foo; use volatile instead. From Anon Ymous
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base chap-midi-nbase chap-midi-base
|
#
1.101 |
|
31-Jan-2006 |
christos |
rename debug to ftp_debug. grr libssh.
|
#
1.100 |
|
31-Jan-2006 |
christos |
Rename xfoo() to ftp_foo() to avoid collisions with libssh. Don't ask.
|
#
1.99 |
|
29-Jun-2005 |
christos |
Add NO_USAGE and NO_DEBUG so that we can fit in the floppies again.
|
#
1.98 |
|
10-Jun-2005 |
jmc |
Need to #ifdef around declaration of ch with NO_EDITCOMPLETE so this compiles on rescue/miniroot's
|
#
1.97 |
|
10-Jun-2005 |
lukem |
Implement: int getline(FILE *stream, char *buf, size_t buflen, const char **errormsg) Read a line from the FILE stream into buf/buflen using fgets(), so up to buflen-1 chars will be read and the result will be NUL terminated. If the line has a trailing newline it will be removed. If the line is too long, excess characters will be read until newline/EOF/error. Various -ve return values indicate different errors, and errormsg will be changed to an error description if it's not NULL.
Convert to use getline() instead of fgets() whenever reading user input to ensure that an overly long input line doesn't leave excess characters for the next input operation to accidentally use as input.
Zero out the password & account after we've finished with it.
Consistently use getpass(3) (i.e, character echo suppressed) when reading the account data. For some reason, historically the "login" code suppressed echo for Account: yet the "user" command did not!
Display the hostname in the "getaddrinfo failed" warning.
Appease some -Wcast-qual warnings. Fixing all of these requires significant code refactoring. (mmm, legacy code).
|
#
1.96 |
|
20-May-2005 |
jdc |
Make this compile on sparc64 (size_t != int).
|
#
1.95 |
|
19-May-2005 |
lukem |
Use size_t instead of int where appropriate.
|
#
1.94 |
|
13-May-2005 |
lukem |
* Correct the "optlen" argument passed to getsockopt(3) and setsockopt(3) in various places. Fixes a problem noted by Allen Briggs. * Improve warning printed when connect(2) for the data channel fails.
|
#
1.93 |
|
11-May-2005 |
lukem |
Use socklen_t instead of int as the 5th argument to getsockopt(). Improve invocation of setsockopt() and associated failure messages.
|
#
1.92 |
|
10-May-2005 |
lukem |
Prevent an overly-long input line causing a core dump when editing is enabled. Issue noted by Ryoji Kanai in FreeBSD Problem Report # 77158.
|
#
1.91 |
|
11-Apr-2005 |
lukem |
gratuitous whitespace cleanup (before someone else jumps the gun...)
|
Revision tags: netbsd-3-base
|
#
1.90 |
|
21-Jul-2004 |
lukem |
branches: 1.90.2; Slightly rework SIGINT handling; if we're exiting the auto-fetch stuff and sigint_raised is non-zero, reset the handler for SIGINT to SIG_DFL and raise(SIGINT) so that the appropriate wait(3) status is setup. Based on solution proposed by Ognyan Kulev. This should really fix PR [pkg/26351].
|
#
1.89 |
|
20-Jul-2004 |
lukem |
If an ftp auto-fetch transfer is interrupted by SIGINT (usually ^C), exit with 130 instead of 1 (or rarely, 0). This allows an ftp auto-fetch in a shell loop to correctly terminate the loop. Should fix PR [pkg/26351], and possibly others.
|
#
1.88 |
|
09-Jul-2004 |
wiz |
Add -q to usage. From Kouichirou Hiratsuka in PR 26199.
|
#
1.87 |
|
14-May-2004 |
christos |
PR/25566: Anders Magnusson: ftp(1) do not like large TCP windows. Limit it to 8M.
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.86 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22365, verified by myself.
|
#
1.85 |
|
26-Jul-2003 |
salo |
netbsd.org->NetBSD.org
|
#
1.84 |
|
14-May-2003 |
wiz |
Uppercase URL.
|
Revision tags: fvdl_fs64_base
|
#
1.83 |
|
27-Aug-2002 |
christos |
Add a -q <quit-time> flag to abort a transfer if it has stalled for <quit-time> seconds. Ok'd by luke.
|
#
1.82 |
|
05-Jun-2002 |
lukem |
- use setprogname() - only support -6 if INET6 is defined
|
#
1.81 |
|
05-Jun-2002 |
lukem |
- when showing the final progress bar, replace "00:00 ETA" with the elapsed time. (suggested by simonb) - actually display transfer stats after a URL fetch. (bug introduced a *long* time ago) - update copyright & version
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
|
#
1.80 |
|
18-Mar-2002 |
thorpej |
Deal with const'ification if el_parse().
|
#
1.79 |
|
26-Dec-2001 |
lukem |
update copyrights
|
#
1.78 |
|
23-Dec-2001 |
lukem |
Add -4 to force IPv4 and -6 to force IPv6 address usage. From Hajimu UMEMOTO, via Mike Heffner of FreeBSD.
(FreeBSD has imported NetBSD's ftp as their ftp client; Mike is sending back some of their local changes).
|
#
1.77 |
|
19-Feb-2001 |
cgd |
convert to use getprogname()
|
#
1.76 |
|
09-Jan-2001 |
jdolecek |
call setlocale() on startup
|
#
1.75 |
|
15-Dec-2000 |
lukem |
invoke cmdtab.c_handler()s with argv[0] == c_name instead of the supplied name. that way the full (unambiguous) name is displayed in error messages and usage strings.
|
#
1.74 |
|
15-Nov-2000 |
lukem |
- implement "mreget"; as per "mget" but uses "reget" instead of "get" - add -N netrc and $NETRC, as methods to select an alternative .netrc file - cache local user name and home directory for further use - in mget(), use docase() instead of a local version to do the case conversion.
|
#
1.73 |
|
18-Jul-2000 |
lukem |
add support for FEAT and OPTS commands with `features' and `opts'. (from RFC 2389).
add support for MLST & MLSD (machine parseble listings) with 'mlst', 'mlsd' and 'pmlsd' (mlsd |$PAGER) commands. (from draft-ietf-ftpext-mlst-11)
rename remotesyst() to getremoteinfo(), and modify to parse the result from FEAT (if supported), and take into account the support for the various extensions such as MDTM, SIZE, REST (STREAM), MLSD, and FEAT/OPTS. put each feature into one of the following categories: - known to work (explicit FEAT) - unknown but assume works until explicit failure, when it's then tagged as `known not to work'. - known not to work (FEAT succeeded but didn't return anything, or was unknown and then explicit failure) assign results into features[] matrix.
add support to getreply() so that an optional callback will be called for each line received from the server except for the first and last. this is used in FEAT (and MLST) parsing.
modify various commands to check if REST (STREAM), MDTM and SIZE are explicitly or implicitly supported before using.
fix `syst' when verbose is off.
minor knf (indent goto labels by one space, etc).
simply various command usage handlers by assuming that argv != NULL except for quit() and disconnect().
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base
|
#
1.72 |
|
11-Jun-2000 |
lukem |
portability fixes for lukemftp: * initconn(): use in_addr_t instead of u_int32_t when manipulating IPv6 addresses (and assume anything with ipv6 has in_addr_t; if not, i'll add an autoconf test for it) * ai_unmapped(): not all systems have sin_len; so only set #ifdef BSD4_4 * fix some lint
|
#
1.71 |
|
31-May-2000 |
lukem |
Add support for 'ftp -u url file ...', to upload a list of files to given url. Mostly based on [bin/10019] by Scott Aaron Bamford <sab@ansic.net>
|
Revision tags: minoura-xpg4dl-base
|
#
1.70 |
|
01-May-2000 |
lukem |
branches: 1.70.2; convert to ANSI KNF
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.69 |
|
28-Nov-1999 |
lukem |
* implement xsl_init() and xsl_add(); error checking forms of sl_{init,add}() * fix bug where the second press of <TAB> on an empty word (i.e, list all options) may have resulted in an strncmp() against NULL. (detected by _DIAGASSERT())
|
#
1.68 |
|
26-Nov-1999 |
lukem |
* complete_remote(): use remglob("", ...) instead of remglob(".", ...), for listings of the current working directory; some ftp servers don't like `NLST .'. [noted by Giles Lean <giles@nemeton.com.au>] * recvrequest(): treat remote=="" as remote==NULL when calling command(). (to support the above change) * support `[user@]' in `[user@]host' and `[user@]host[:][path]'. [based on idea (and initial code) from David Maxwell <david@fundy.ca>] * `idle' may be invoked without any args * reformat some comments * reformat usage string in program and man page * call updateremotepwd() after successful login, not after successful connect * always call setsockopt(, IPPROTO_IP, IP_TOS, ) (et al); using #if defined(IPPROTO_IP) doesn't work on certain foreign systems where enums instead of #defines are used... [noted by Matthias Pfaller <leo@dachau.marco.de>]
|
#
1.67 |
|
12-Nov-1999 |
lukem |
- implement `set rprompt'; right side version of `set prompt'. depends on EL_RPROMPT support i added to editline(3). - allow $FTPPROMPT and $FTPRPROMPT to override defaults for the relevant prompts - move `%' formatting code from prompt() to expandbuf(). - implement `%.' and `%c', similar to the same % codes in tcsh(1) (functionality I added to tcsh nearly 6 years ago), except that `%.' always does `...trailing' and `%c' always does `/<x>trailing'. - unknown `%foo' codes get printed as `%foo'
|
#
1.66 |
|
11-Nov-1999 |
lukem |
- implement updateremotepwd(); update the global variable `remotepwd' to contain the remote working directory. - add `set prompt', a user configurable prompt. (defaults to `ftp> '). the following escape characters a la tcsh(1) are supported: %/, %m, %M, and %n. - add global var `username'; used by prompt code - fix a couple of minor memory leaks - bump version
|
Revision tags: comdex-fall-1999-base
|
#
1.65 |
|
24-Oct-1999 |
lukem |
new features: - add `usage'; displays the usage of a command. implemented by calling the c_handler() with argc = 0, argv = "funcname". - add `passive auto'; does the same as $FTPMODE=auto. - add `set [option value]'; display all options, or set an option to a value. - add `unset option'; unset an option. - add getoptionvalue() to retrieve an option's value, and replace a few global variables with calls to this. - implement cleanuppeer(), which resets various bits of state back to `disconnected'. call in disconnect() and lostpeer(). - support completing on `options'. - improve recovery after a SIGINT may have closed the connection. XXX: there's still a couple to fix
other stuff: - various consistency fixes in the man page. - ensure that the command usage strings in the code and man page match reality. - mput/mget: check that the connection still exists before each xfer. - minor cosmetic changes in confirm(). - set code correctly in sizecmd() and modtime() - don't need \n in err() strings. - change lostpeer to take an argument (rather than casting (sig_t)lostpeer in signal handlers) - knf and whitespace police.
|
#
1.64 |
|
13-Oct-1999 |
lukem |
* fix up confirm() (broke `a' and `p' in last commit) * simplify main loop (don't need `top' variable any more) * use a struct sockaddr_in6.sin6_addr for the result from inet_pton(), rather than u_char buf[16] * add a few more comments
|
#
1.63 |
|
12-Oct-1999 |
lukem |
a few user interface and cosmetic tweaks: * confirm(): move from util.c to cmds.c. display mnemonic string in its prompt. add support for `q' (terminate current xfer), `?' (show help list) * in various signal handlers, output a linefeed only if fromatty. * if fgets(stdin) returned NULL (i.e, EOF), clearerr(stdin) because you don't want future fgets to fail. this is not done for the fgets() in the main command loop, since ftp will quit at that point. * unless ftp is invoked with -a, don't retain the anonftp setting between hosts (`ftp somehost:' sets anonftp, but you don't want that to `stick' if you close that connection and open a new one).
|
#
1.62 |
|
11-Oct-1999 |
lukem |
if editing is enabled when intr() is called, print a newline. (cosmetic fix)
|
#
1.61 |
|
09-Oct-1999 |
lukem |
* use sigsetjmp()/siglongjump() instead of setjmp()/longjmp(); the latter don't save the signal mask on some foreign systems. * ensure signal handlers don't use stdio and do reset errno if they don't exit with siglongjmp() * use a common SIGINT handler for {send,recv}request()
|
#
1.60 |
|
05-Oct-1999 |
lukem |
* factor out SIGINFO setting into a handler that is always active (but only prints out info if bytes > 0). only set the handler if SIGINFO is defined * hijack SIGQUIT to be the same as SIGINFO (foreign ports have this, and it's annoying to have SIGQUIT dump core on netbsd when it prints info on other systems) * in {recv,send}request(), factor a lot of duplicated code out into a `cleanup' section at the end * rework shell() a bit
|
#
1.59 |
|
05-Oct-1999 |
lukem |
add TNFi copyright to all files i've done more than a minor amount of work to...
|
#
1.58 |
|
01-Oct-1999 |
lukem |
If EPSV or EPRT fails, disable epsv4 for the rest of the current connection. the disabled state can be overridden by toggling epsv4.
(I got sick of the errors about EPSV not being supported on almost every server I connect to. This way we retain support for epsv4, but it's not so whiny after the first failure...)
|
#
1.57 |
|
01-Oct-1999 |
lukem |
prefix the global variables in ftp_var.h with GLOBAL, which defaults to "extern" if it's not set. define GLOBAL to (empty) in main.c. this effectively moves all the globals into main.c whilst retaining namespace access to them in other source files. (global vars in header files confuse foreign linkers)
|
#
1.56 |
|
01-Oct-1999 |
lukem |
* don't bother with "pathnames.h"; it contained just a single #define. instead, include <paths.h> in the files that need it * slightly reorg ftp_var.h
|
#
1.55 |
|
30-Sep-1999 |
lukem |
* In the !NI_NUMERICHOST case (i.e, getaddrinfo() challenged systems), portnum should be in host order. found/fixed by Matthias Pfaller <leo@dachau.marco.de> * parse_url(): improve checking of portnum, and add an extra argument to pass back the parsed portnum to the caller (reduces a bit of code duplication) * Move the KAME/WIDE copyrights after the BSD/TNFi ones. Since there was significantly less code added under the former, it's only fair on the latter.
|
#
1.54 |
|
30-Sep-1999 |
lukem |
* fix initialisation of home[] * fetch_url(): if path would be NULL, return strdup("")
|
#
1.53 |
|
28-Sep-1999 |
lukem |
* add new commands: lpage page local files pdir as dir, but through your $PAGER pls as ls, but through your $PAGER * implement docase() (a la dotrans() et al) and use appropriately, rototilling some duplicated code * globulize(): modify to return a pointer to the strdup()ed result in all cases, and hack the code that calls it to take this into account * replace strcpy() and strncpy() with strlcpy() * put(), getit(): use some aptly named local vars instead of argv[...] * delint
|
#
1.52 |
|
27-Sep-1999 |
lukem |
* idle(): rename to idlecmd(). certain linux distributions have an incompatible prototype for idle() in <unistd.h> (which i thought was against namespace and sensibility guidelines, but...) * consistently use xsignal() instead of signal(). we get known behaviour in all cases (SA_RESTART), which is good for some borken foreign systems. * remove signal.h from most files; it's unnecessary now * fetch_url(): use `long chunksize' instead of ssize_t; it's more portable, and we're setting chunksize with strtol() anyway * xsignal(): only use SA_RESTART if it exists. SunOS 4.x doesn't have it but has the inverse (SA_INTERRUPT). the original function i was inspired from had this support (lib/signal.c, W. Richard Stevens' `UNP 2nd ed Vol 1'). * remove <termios.h> from util.c; it should be unnecessary now
|
#
1.51 |
|
24-Sep-1999 |
lukem |
if getsockopt() returns a buffer size of <= 0, set them to 8192. this works around a problem in certain OS from Sun with a version < 5.6...
|
#
1.50 |
|
22-Sep-1999 |
lukem |
branches: 1.50.2; * add support for `xferbuf', which sets both `sndbuf' and `rcvbuf' * document the above three commands * rototill the way the sndbuf and rcvbuf work. remove resetsockbufsize() * use the appropriate socket buffer size as the size of the buffer that the read()/write() loops use. speeds up things in some cases.
|
#
1.49 |
|
21-Sep-1999 |
lukem |
only default to epsv4 if INET6 is defined
|
#
1.48 |
|
12-Jul-1999 |
lukem |
* change fetch_ftp() to be fully rfc 1738 compliant; if the URL contains the an empty directory (e.g, between `some' and `path' in `ftp://host/some//path'), then execute `CWD ' (without a path). This command will probably fail on rfc 959 compliant servers, so issue a warning in this case and bail. [noted by cgd]. (i wonder if the people who wrote rfc 1738 actually realised that this requirement appears to contravene the spec for `cwd' in rfc 959 ?) * replace isurl() with isipv6addr(), and use appropriately. fixes auto-login with `classic ftp URLs' (e.g, `ftp somehost:') * cleanup and rework some of the ipv6 stuff in parse_url() * prevent potential coredump in fetch_ftp() when parsing `;type=X' * KNF a few lines * fix a couple of comments * cleanup the man page a bit
|
#
1.47 |
|
11-Jul-1999 |
itojun |
add epsv4 command, which enable/disable the use of EPSV/EPRT.
this is mainly for (hypothetical) ftp server which disconnect clients that use EPSV/EPRT. I've never seen any ftp server like this, but epsv4 command may be of use when such an ftp server is found.
|
#
1.46 |
|
10-Jul-1999 |
christos |
isurl does not return a pointer!
|
#
1.45 |
|
02-Jul-1999 |
itojun |
add dual-stack (IPv4/v6) support. hope I broke no other part...
|
#
1.44 |
|
29-Jun-1999 |
lukem |
[fear this; more ftp hacking from lukem :-]
features:
|
#
1.43 |
|
20-Jun-1999 |
cgd |
split the "SMALL" #ifdefs into ones for NO_ABOUT, NO_EDITCOMPLETE, and NO_PROGRESS. -DSMALL still implies all of those. progress meter support isn't necessary for the smallest possible ftp client, but it adds very little space and makes users' lives much better. Therefore, it should be enabled for installation media if at all possible.
|
#
1.42 |
|
02-Jun-1999 |
lukem |
* 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
|
#
1.41 |
|
17-May-1999 |
lukem |
only enable editing by default if stdin is a tty. noticed by Onno van der Linden <onno@simplex.nl>
|
Revision tags: netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.40 |
|
31-Mar-1999 |
lukem |
branches: 1.40.2; when using editline, work on the correct buffer. fixes problem where blank input lines were being added to the history buffer.
|
#
1.39 |
|
22-Mar-1999 |
lukem |
* 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
|
#
1.38 |
|
08-Mar-1999 |
lukem |
* 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.
|
#
1.37 |
|
24-Jan-1999 |
lukem |
* -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)
|
#
1.36 |
|
23-Jan-1999 |
lukem |
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)
|
#
1.35 |
|
27-Dec-1998 |
lukem |
be saner about the method to determine which $proxy to use
|
#
1.34 |
|
28-Sep-1998 |
lukem |
* 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.
|
#
1.33 |
|
08-Aug-1998 |
lukem |
need <signal.h> for signal....
|
#
1.32 |
|
03-Aug-1998 |
lukem |
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'
|
#
1.31 |
|
04-Jun-1998 |
lukem |
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.
|
#
1.30 |
|
21-Jan-1998 |
lukem |
enable el_parse for unknown commands (so editrc(5) commands can be used directly
|
#
1.29 |
|
18-Jan-1998 |
lukem |
define MAX_IN_PORT_T and use instead of USHRT_MAX. suggested by cgd@netbsd.org
|
#
1.28 |
|
18-Jan-1998 |
lukem |
* 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.
|
#
1.27 |
|
12-Dec-1997 |
gwr |
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?)
|
Revision tags: netbsd-1-3-BETA netbsd-1-3-base
|
#
1.26 |
|
14-Oct-1997 |
christos |
branches: 1.26.2; PR/4257: Jaromir Dolecek: Compensate for the libedit changes.
|
#
1.25 |
|
23-Aug-1997 |
lukem |
support $TMPDIR
|
#
1.24 |
|
18-Aug-1997 |
lukem |
bugs fixed: * don't interpret '-' or '|' when a local filename is determined from the remote name (i.e, in mget, and in get with only one argument). This is implemented using an extra argument to recvrequest(). Fixes a major security hole. * clean up memory leak when using globulize() * clean up a couple of comments * fix wording in TNF copyright
features added: * support for TIS fwtk gate-ftp servers: * read defaults from $FTPSERVER && $FTPSERVERPORT * start in gate-ftp mode if invoked as 'gate-ftp' * toggle or set with 'gate [host [port]]'
|
#
1.23 |
|
20-Jul-1997 |
lukem |
* use RCSID() && COPYRIGHT() macros * cleanup for WARNS=1 (including some ugly '(void)&var' bits wrapped in #ifdef __GNUC__ to shut up gcc warnings WRT setjmp/longjmp) * use strtol() instead of atoi(), and more extensively check result of conversion * use u_int16_t instead of short or int for TCP port addresses
|
#
1.22 |
|
10-Jun-1997 |
lukem |
Don't use editing or progress bar if $TERM isn't set or is "dumb". Fixes emacs ange-ftp. Suggested by Todd Miller <Todd.Miller@courtesan.com>, tested by matt green <mrg@eterna.com.au>
|
#
1.21 |
|
05-Apr-1997 |
lukem |
* support $ftp_proxy for ftp:// transfers [bin/3245] * add "more" & "less" as synonyms for "page" * move editline setup code into controlediting(), and call appropriately. only setup setup terminal if going into interactive mode. inspired by Todd Miller <todd.miller@courtesan.com>
|
#
1.20 |
|
16-Mar-1997 |
lukem |
Fixes from <Todd.Miller@cs.colorado.edu>, with some cleanup and reworks by me: * only echo "Passive mode" in verbose mode; scripts that use ftp may get unwanted output otherwise * disable progress bar and modification time preservation when retreiving to a non-regular files. fixes progress bar getting in way of "get file /dev/tty" * setup el_init() et al if editing is set, not if fromatty. TODO: migrate this to a function, and call if editing is turned on later in the session. also implement edit_cleanup if editing is turned off * call el_set() after setting SIGWINCH handler. This fixes the problem when suspending in a non-cbreak shell (e.g, csh) would trash your tty mode. * reset interactive mode correctly in auto_fetch() mget mode
|
#
1.19 |
|
14-Mar-1997 |
christos |
SMALLFTP->SMALL; remove SMALL from Makefile
|
#
1.18 |
|
13-Mar-1997 |
lukem |
Features: * support remglobbing of auto_fetch arguments * new flag - '-e'; disable editing * "page file" == "get file |${PAGER-less}"
Bugfixes/cleanup: * consistently use a trailing '.' on messages * code cleanup, including buffer overrun fixes, use puts and putchar in places, etc (inspired by OpenBSD mods) * disable progress bar when local-file is a pipe or '-' * skip \r in http headers * fix remote ftpd slash bug more elegantly (so it works with ////) * abort_remote(): check if cout==NULL before using it. should fix [bin/3273] * fixed up cosmetic problems when complete_remote() generated errors from the remote server (such as "no files found", "login with user and pass", ...) done by adding extra argument to remglob(), which is a pointer to an error buffer to put messages in rather than printing to stdout.
|
#
1.17 |
|
01-Feb-1997 |
lukem |
[Yet Another Huge Ftp Commit - hopefully the last for a while, barring any more little things people want added ...]
New features: * progressmeter is now asynchronous, so "stalled" transfers can be detected. "- stalled -" is displayed instead of the ETA in this case. When the xfer resumes, the time that the xfer was stalled for is factored out of the ETA. It is debatable whether this is better than not factoring it out, but I like it this way (I.e, if it stalls for 8 seconds and the ETA was 30 seconds, when it resumes the ETA will still be 30 seconds). * verbosity can be disabled on the command line (-V), so that in auto-fetch mode the only lines displayed will be a description of the file, and the progress bar (if possible) * if the screen is resized (and detected via the SIGWINCH signal), the progress bar will rescale automatically.
Bugs fixed: * progress bar will not use the last character on the line, as this can cause problems on some terminals * screen dimensions (via ioctl(TIOCWINSZ)) should use stdout not stdin * progressmeter() used some vars before initialising them * ^D will quit now. [fixes bin/3162] * use hstrerror() to generate error message for host name lookup failure. * use getcwd instead of getwd (it should have been OK, but why tempt fate?) * auto-fetch transfers will always return a positive exit value upon failure or interruption, relative to the file's position in argv[]. * remote completion of / will work, without putting a leading "///". This is actually a bug in ftpd(1), where "NLST /" prefixes all names with "//", but fixing every ftpd(1) is not an option...
|
#
1.16 |
|
19-Jan-1997 |
lukem |
New features: * Command line editing via editline(3) library. * Context sensitive command and file completion, including remote files.
Enhancements to auto-fetch feature: * Support for http:// URLs using the http protocol, including proxy HTTP support via $htty_proxy if it's defined. * The connection is kept open between successive files on the same host. (obviously, this does not count for http requests.) * Return value of ftp is 0 on no error, or the offset in argv[] of the file which failed (i.e., argv[x] failed, ftp returns x). * If the path in an ftp URL or classic format line has a trailing '/', cd to the path and enter interactive mode. Fixes [bin/3011], albiet requiring the user to help ftp in determining the operation.
Other changes: * '-P port' works for normal ftp, and is the default for all classic style auto-fetch transfers and for ftp URLs that don't specify the port. (previously it would just work for the first xfer.) * Some code moved into separated files along logical divisions. * Editing and completion can be compiled out with -DSMALLFTP.
|
#
1.15 |
|
29-Dec-1996 |
lukem |
* preserve modtime if size is 0 [bin/3040, Enami Tsugutomo] * in autofetch mode, don't retry a file if the connection failed - skip it and move to the next file. [bin/3051, Matt Green] * only print error messages from SIZE or MDTM if the user used 'size' or 'modt' (respectively). prevents extraneous warnings during normal transfers when connected to a site which doesn't support these (behaviour prior to last commit), but still allows error feedback to specific user requests for this info (which the last commit broke). * 'account': only accept one optional argument * if invoked as pftp, default to passive mode on (from FreeBSD) * remove leading '0 ' in progress bar - looked ugly * use warn instead of perror * use strncpy when src isn't known to have safe length * remglob(): use mkstemp() to prevent symlink games, and don't override _PATH_TMP, use it as the prefix to the temp file
|
#
1.14 |
|
06-Dec-1996 |
lukem |
functionality mods: * implement 'progress bar/meter' (inspired by ncftp). use 'progress' to toggle on. it will display current file size to 5 digits, automatically determining suffix (up to 16384 P (petabytes) == 2^64). * 'ls' now uses NLST (unadorned listing), a la older ftp clients. 'dir' still does LIST (long listing). idea from John Nemeth <jnemeth@cue.bc.ca>
bug fixes: * return first line of reply in reply_string[] from getreply(), instead of last line. This fixes [bin/741] (parsing of SYST), and also means that SIZE and MDTM messages will be parsed correctly if they're longer than 1 line. * parse URL-style auto-ftps that have no filename correctly (e.g, ftp://host, ftp://host/, ftp://host/dir/). pointed out by Jaromir Dolecek <dolecek@saruman.ics.muni.cz> * pass the correct size array in 2nd arg of utimes() when setting the modification time
|
#
1.13 |
|
28-Nov-1996 |
lukem |
More features, some of which were inspired by changes that friedman@gnu.ai.mit.edu (Noah Friedman) made to his modified ftp: - implement "lpwd" - local pwd - implement "preserve" - toggle preserving of file modification times on retrieved files - allow for explicit "on" or "off" arg to toggle commands - "exit" synonym for "quit", "msend" synonym for "mput" - in confirmation mode, allow 'a' (yes to rest of current command), and 'p' (turn off prompt mode, as if 'prompt off' was done, effective immediately) - "modtime" returns time formatted as localtime, not GMT
Bug fixes: - check for extraneous args on commands - cleanup const usage, line formatting - create 0 length temporary file in remglob() to prevent symlink games (from OpenBSD) - check length of filename of ~/.netrc (from OpenBSD)
|
#
1.12 |
|
25-Nov-1996 |
lukem |
cleanups/bugfixes: - don't echo 'ACCT' parameter when debugging (a la 'PASS') - Fix checking of directory access for "/foo", the parent directory is "/", not "" (from FreeBSD) - remove trailing whitespace on lines - add any missing NetBSD tags - cleanups to man page, includinging sorting options description
feature additions: - variable sized hash marks (from [bin/683], but done in the hash command as an optional arg) - more user-friendly transfer time printing (from FreeBSD, with mods) - '-p' command line option to jump into PASV mode (closes [bin/2857], but with an option rather than checking argv[0]) - SIGINFO support for printing xfer stats when sending/receiving requests - '-P port' for changing the port to connect to (from thorpej@netbsd.org) - '-a': bypass normal login, and try anonymous login (from OpenBSD via thorpej) - autofetch files via url (ftp://...) or "classic" (host:/file) (from OpenBSD via thorpej) - 'ftp' synonymous with 'open' (from FreeBSD)
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.11 |
|
07-May-1996 |
pk |
Fence off NULL args in getcmd() (fixes/works around PR#824).
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.10 |
|
15-Sep-1995 |
pk |
Avoid falling off the end of a fixed-length array (from John F. Woods; PR#1431).
|
#
1.9 |
|
14-Sep-1995 |
cgd |
needs string.h for protos.
|
#
1.8 |
|
08-Sep-1995 |
tls |
Sync with 4.4lite2
|
#
1.7 |
|
24-Dec-1994 |
cgd |
needs string.h
|
#
1.6 |
|
31-Aug-1994 |
mycroft |
Fix option parsing bug reported by Uwe Arndt, and another related bogon.
|
#
1.5 |
|
29-Aug-1994 |
mycroft |
branches: 1.5.2; Add RCS ids.
|
#
1.4 |
|
25-Aug-1994 |
cgd |
passive mode support, from David Carrel <carrel@cisco.com>, and cleaned up for the new ftp sources by me.
|
#
1.3 |
|
25-Aug-1994 |
cgd |
clean up import, no local changes.
|
Revision tags: netbsd-1-0-base
|
#
1.2 |
|
01-Aug-1993 |
mycroft |
Add RCS identifiers.
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; 1.1.2; Initial revision
|
#
1.128 |
|
09-Oct-2021 |
lukem |
ftp: fix -? more portably
Start the optstring with ":" (which implicitly disables opterr), and handle '?' with optopt=='?' separately to ':'. Fixes -? display of full usage on other platforms.
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.127 |
|
18-Jul-2020 |
lukem |
ftp: add -? for help. improve synopsis
Add -? to display usage synopsis and help to stdout. This allows for "ftp -? | less", which is more user friendly. Errors still show usage to stderr. Consistency improvements in some usage text.
|
Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
|
#
1.126 |
|
04-Feb-2019 |
mrg |
- add justquit() that always exits. use it to avoid unreachable code.
|
Revision tags: pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.125 |
|
04-Mar-2018 |
dholland |
branches: 1.125.4; Don't use the local username as the default anonftp password.
once upon a time doing this was part of the social glue that held the community together, but that was a long time ago, and now it's just an information leak.
proposed on tech-userlevel in 2008, then apparently forgotten :-|
|
#
1.124 |
|
25-Nov-2017 |
christos |
Make outfile always allocated, free it to set it to NULL, and don't move it around.
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
|
#
1.123 |
|
23-Apr-2015 |
lukem |
Add -x xferbufsize to set xferbuf size.
Implement -x xferbufsize set the socket send and receive buffer size, as per 'xferbuf' in interactive mode.
Patch from Nicholas Mills (via private mail), with minor adjustment by me.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 tls-maxphys-base
|
#
1.122 |
|
22-Dec-2012 |
christos |
branches: 1.122.8; document https support, mentioning certificates are not validated, and obey https_proxy.
|
#
1.121 |
|
21-Dec-2012 |
christos |
PR/47276: Add https support
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base
|
#
1.120 |
|
10-Dec-2011 |
lukem |
branches: 1.120.2; 1.120.6; Move determination of socket buffer sizes from startup to the first time a socket is used, as the previous logic assumed AF_INET sockets were available (which they may not be in an IPv6-only system). Per discussion with Maxim Konovalov and the FreeBSD problem 162661.
|
Revision tags: yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.119 |
|
16-Sep-2011 |
joerg |
branches: 1.119.2; Use __dead
|
#
1.118 |
|
14-Aug-2011 |
christos |
fix gcc-4.5 warnings
|
Revision tags: cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 matt-premerge-20091211
|
#
1.117 |
|
13-Jul-2009 |
roy |
Rename internal getline() function to get_line() so it does conflict with the soon to be added getline(3) libc function.
|
Revision tags: jym-xensuspend-nbase jym-xensuspend-base
|
#
1.116 |
|
24-Apr-2009 |
lukem |
Revert incorrect change made as part of the WARNS=4. Fixes "ftp host [port]" on the CLI. Noted by Geoff Wing.
|
#
1.115 |
|
12-Apr-2009 |
lukem |
Fix numerous WARNS=4 issues (-Wcast-qual -Wsign-compare).
|
#
1.114 |
|
12-Apr-2009 |
lukem |
fix -Wshadow issues
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3
|
#
1.113 |
|
09-Sep-2008 |
gmcgarry |
branches: 1.113.6; getline() returns int. Don't cast to unsigned value and compare with -1.
|
Revision tags: wrstuden-revivesa-base-2
|
#
1.112 |
|
13-Aug-2008 |
lukem |
Use AF_INET instead of AF_UNSPEC as the default family if !defined(INET6). Avoids problem reported by Matthias Scheler <tron@NetBSD.org>.
|
#
1.111 |
|
21-Jul-2008 |
lukem |
Add TNF to __COPYRIGHT
|
#
1.110 |
|
21-Jul-2008 |
lukem |
Remove the \n and tabs from the __COPYRIGHT() strings. Tweak to use a consistent format.
|
Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 wrstuden-revivesa-base
|
#
1.109 |
|
10-May-2008 |
skd |
Add epsv6 and epsv to disable extended passive mode for ipv6 or both ipv4 and ipv6 respectively. This hack is due to our friends a Juniper Networks who break epsv in ipv6. Should be fixed in ScreenOS 6.2.X.
|
#
1.108 |
|
05-May-2008 |
lukem |
branches: 1.108.2; Only attempt to el_parse() a command unknown by the default parser if editing is enabled. Fixes PR bin/38589
|
#
1.107 |
|
28-Apr-2008 |
martin |
Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
|
#
1.106 |
|
02-Dec-2007 |
wiz |
branches: 1.106.6; Sort options.
|
Revision tags: matt-armv6-prevmlocking matt-mips64-base
|
#
1.105 |
|
22-May-2007 |
lukem |
branches: 1.105.4; * main: call tzset() to ensure TZ is setup for other <time.h> functions. * remotemodtime(): use strptime() to parse the reply. * fetch_url(): ensure struct tm is zeroed before calling strptime().
|
#
1.104 |
|
17-Apr-2007 |
lukem |
* Implement -s srcaddr; uses srcaddr as the local IP address for all connections. Based on code in the version of ftp that FreeBSD had before they replaced it with lukemftp. * Move error message handling into ftp_connect() rather than in the caller, so that more specific error reporting can occur. * Improve consistency of various warning and error messages.
|
#
1.103 |
|
12-Apr-2007 |
lukem |
Fix using /usr/bin/ftp as a slave process on the end of a pipe by calling fflush(stdout) before each command. Taken from FreeBSD's pre-lukemftp version of ftp.
|
#
1.102 |
|
13-Dec-2006 |
christos |
gcc4 does not care about &foo; use volatile instead. From Anon Ymous
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base chap-midi-nbase chap-midi-base
|
#
1.101 |
|
31-Jan-2006 |
christos |
rename debug to ftp_debug. grr libssh.
|
#
1.100 |
|
31-Jan-2006 |
christos |
Rename xfoo() to ftp_foo() to avoid collisions with libssh. Don't ask.
|
#
1.99 |
|
29-Jun-2005 |
christos |
Add NO_USAGE and NO_DEBUG so that we can fit in the floppies again.
|
#
1.98 |
|
10-Jun-2005 |
jmc |
Need to #ifdef around declaration of ch with NO_EDITCOMPLETE so this compiles on rescue/miniroot's
|
#
1.97 |
|
10-Jun-2005 |
lukem |
Implement: int getline(FILE *stream, char *buf, size_t buflen, const char **errormsg) Read a line from the FILE stream into buf/buflen using fgets(), so up to buflen-1 chars will be read and the result will be NUL terminated. If the line has a trailing newline it will be removed. If the line is too long, excess characters will be read until newline/EOF/error. Various -ve return values indicate different errors, and errormsg will be changed to an error description if it's not NULL.
Convert to use getline() instead of fgets() whenever reading user input to ensure that an overly long input line doesn't leave excess characters for the next input operation to accidentally use as input.
Zero out the password & account after we've finished with it.
Consistently use getpass(3) (i.e, character echo suppressed) when reading the account data. For some reason, historically the "login" code suppressed echo for Account: yet the "user" command did not!
Display the hostname in the "getaddrinfo failed" warning.
Appease some -Wcast-qual warnings. Fixing all of these requires significant code refactoring. (mmm, legacy code).
|
#
1.96 |
|
20-May-2005 |
jdc |
Make this compile on sparc64 (size_t != int).
|
#
1.95 |
|
19-May-2005 |
lukem |
Use size_t instead of int where appropriate.
|
#
1.94 |
|
13-May-2005 |
lukem |
* Correct the "optlen" argument passed to getsockopt(3) and setsockopt(3) in various places. Fixes a problem noted by Allen Briggs. * Improve warning printed when connect(2) for the data channel fails.
|
#
1.93 |
|
11-May-2005 |
lukem |
Use socklen_t instead of int as the 5th argument to getsockopt(). Improve invocation of setsockopt() and associated failure messages.
|
#
1.92 |
|
10-May-2005 |
lukem |
Prevent an overly-long input line causing a core dump when editing is enabled. Issue noted by Ryoji Kanai in FreeBSD Problem Report # 77158.
|
#
1.91 |
|
11-Apr-2005 |
lukem |
gratuitous whitespace cleanup (before someone else jumps the gun...)
|
Revision tags: netbsd-3-base
|
#
1.90 |
|
21-Jul-2004 |
lukem |
branches: 1.90.2; Slightly rework SIGINT handling; if we're exiting the auto-fetch stuff and sigint_raised is non-zero, reset the handler for SIGINT to SIG_DFL and raise(SIGINT) so that the appropriate wait(3) status is setup. Based on solution proposed by Ognyan Kulev. This should really fix PR [pkg/26351].
|
#
1.89 |
|
20-Jul-2004 |
lukem |
If an ftp auto-fetch transfer is interrupted by SIGINT (usually ^C), exit with 130 instead of 1 (or rarely, 0). This allows an ftp auto-fetch in a shell loop to correctly terminate the loop. Should fix PR [pkg/26351], and possibly others.
|
#
1.88 |
|
09-Jul-2004 |
wiz |
Add -q to usage. From Kouichirou Hiratsuka in PR 26199.
|
#
1.87 |
|
14-May-2004 |
christos |
PR/25566: Anders Magnusson: ftp(1) do not like large TCP windows. Limit it to 8M.
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.86 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22365, verified by myself.
|
#
1.85 |
|
26-Jul-2003 |
salo |
netbsd.org->NetBSD.org
|
#
1.84 |
|
14-May-2003 |
wiz |
Uppercase URL.
|
Revision tags: fvdl_fs64_base
|
#
1.83 |
|
27-Aug-2002 |
christos |
Add a -q <quit-time> flag to abort a transfer if it has stalled for <quit-time> seconds. Ok'd by luke.
|
#
1.82 |
|
05-Jun-2002 |
lukem |
- use setprogname() - only support -6 if INET6 is defined
|
#
1.81 |
|
05-Jun-2002 |
lukem |
- when showing the final progress bar, replace "00:00 ETA" with the elapsed time. (suggested by simonb) - actually display transfer stats after a URL fetch. (bug introduced a *long* time ago) - update copyright & version
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
|
#
1.80 |
|
18-Mar-2002 |
thorpej |
Deal with const'ification if el_parse().
|
#
1.79 |
|
26-Dec-2001 |
lukem |
update copyrights
|
#
1.78 |
|
23-Dec-2001 |
lukem |
Add -4 to force IPv4 and -6 to force IPv6 address usage. From Hajimu UMEMOTO, via Mike Heffner of FreeBSD.
(FreeBSD has imported NetBSD's ftp as their ftp client; Mike is sending back some of their local changes).
|
#
1.77 |
|
19-Feb-2001 |
cgd |
convert to use getprogname()
|
#
1.76 |
|
09-Jan-2001 |
jdolecek |
call setlocale() on startup
|
#
1.75 |
|
15-Dec-2000 |
lukem |
invoke cmdtab.c_handler()s with argv[0] == c_name instead of the supplied name. that way the full (unambiguous) name is displayed in error messages and usage strings.
|
#
1.74 |
|
15-Nov-2000 |
lukem |
- implement "mreget"; as per "mget" but uses "reget" instead of "get" - add -N netrc and $NETRC, as methods to select an alternative .netrc file - cache local user name and home directory for further use - in mget(), use docase() instead of a local version to do the case conversion.
|
#
1.73 |
|
18-Jul-2000 |
lukem |
add support for FEAT and OPTS commands with `features' and `opts'. (from RFC 2389).
add support for MLST & MLSD (machine parseble listings) with 'mlst', 'mlsd' and 'pmlsd' (mlsd |$PAGER) commands. (from draft-ietf-ftpext-mlst-11)
rename remotesyst() to getremoteinfo(), and modify to parse the result from FEAT (if supported), and take into account the support for the various extensions such as MDTM, SIZE, REST (STREAM), MLSD, and FEAT/OPTS. put each feature into one of the following categories: - known to work (explicit FEAT) - unknown but assume works until explicit failure, when it's then tagged as `known not to work'. - known not to work (FEAT succeeded but didn't return anything, or was unknown and then explicit failure) assign results into features[] matrix.
add support to getreply() so that an optional callback will be called for each line received from the server except for the first and last. this is used in FEAT (and MLST) parsing.
modify various commands to check if REST (STREAM), MDTM and SIZE are explicitly or implicitly supported before using.
fix `syst' when verbose is off.
minor knf (indent goto labels by one space, etc).
simply various command usage handlers by assuming that argv != NULL except for quit() and disconnect().
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base
|
#
1.72 |
|
11-Jun-2000 |
lukem |
portability fixes for lukemftp: * initconn(): use in_addr_t instead of u_int32_t when manipulating IPv6 addresses (and assume anything with ipv6 has in_addr_t; if not, i'll add an autoconf test for it) * ai_unmapped(): not all systems have sin_len; so only set #ifdef BSD4_4 * fix some lint
|
#
1.71 |
|
31-May-2000 |
lukem |
Add support for 'ftp -u url file ...', to upload a list of files to given url. Mostly based on [bin/10019] by Scott Aaron Bamford <sab@ansic.net>
|
Revision tags: minoura-xpg4dl-base
|
#
1.70 |
|
01-May-2000 |
lukem |
branches: 1.70.2; convert to ANSI KNF
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.69 |
|
28-Nov-1999 |
lukem |
* implement xsl_init() and xsl_add(); error checking forms of sl_{init,add}() * fix bug where the second press of <TAB> on an empty word (i.e, list all options) may have resulted in an strncmp() against NULL. (detected by _DIAGASSERT())
|
#
1.68 |
|
26-Nov-1999 |
lukem |
* complete_remote(): use remglob("", ...) instead of remglob(".", ...), for listings of the current working directory; some ftp servers don't like `NLST .'. [noted by Giles Lean <giles@nemeton.com.au>] * recvrequest(): treat remote=="" as remote==NULL when calling command(). (to support the above change) * support `[user@]' in `[user@]host' and `[user@]host[:][path]'. [based on idea (and initial code) from David Maxwell <david@fundy.ca>] * `idle' may be invoked without any args * reformat some comments * reformat usage string in program and man page * call updateremotepwd() after successful login, not after successful connect * always call setsockopt(, IPPROTO_IP, IP_TOS, ) (et al); using #if defined(IPPROTO_IP) doesn't work on certain foreign systems where enums instead of #defines are used... [noted by Matthias Pfaller <leo@dachau.marco.de>]
|
#
1.67 |
|
12-Nov-1999 |
lukem |
- implement `set rprompt'; right side version of `set prompt'. depends on EL_RPROMPT support i added to editline(3). - allow $FTPPROMPT and $FTPRPROMPT to override defaults for the relevant prompts - move `%' formatting code from prompt() to expandbuf(). - implement `%.' and `%c', similar to the same % codes in tcsh(1) (functionality I added to tcsh nearly 6 years ago), except that `%.' always does `...trailing' and `%c' always does `/<x>trailing'. - unknown `%foo' codes get printed as `%foo'
|
#
1.66 |
|
11-Nov-1999 |
lukem |
- implement updateremotepwd(); update the global variable `remotepwd' to contain the remote working directory. - add `set prompt', a user configurable prompt. (defaults to `ftp> '). the following escape characters a la tcsh(1) are supported: %/, %m, %M, and %n. - add global var `username'; used by prompt code - fix a couple of minor memory leaks - bump version
|
Revision tags: comdex-fall-1999-base
|
#
1.65 |
|
24-Oct-1999 |
lukem |
new features: - add `usage'; displays the usage of a command. implemented by calling the c_handler() with argc = 0, argv = "funcname". - add `passive auto'; does the same as $FTPMODE=auto. - add `set [option value]'; display all options, or set an option to a value. - add `unset option'; unset an option. - add getoptionvalue() to retrieve an option's value, and replace a few global variables with calls to this. - implement cleanuppeer(), which resets various bits of state back to `disconnected'. call in disconnect() and lostpeer(). - support completing on `options'. - improve recovery after a SIGINT may have closed the connection. XXX: there's still a couple to fix
other stuff: - various consistency fixes in the man page. - ensure that the command usage strings in the code and man page match reality. - mput/mget: check that the connection still exists before each xfer. - minor cosmetic changes in confirm(). - set code correctly in sizecmd() and modtime() - don't need \n in err() strings. - change lostpeer to take an argument (rather than casting (sig_t)lostpeer in signal handlers) - knf and whitespace police.
|
#
1.64 |
|
13-Oct-1999 |
lukem |
* fix up confirm() (broke `a' and `p' in last commit) * simplify main loop (don't need `top' variable any more) * use a struct sockaddr_in6.sin6_addr for the result from inet_pton(), rather than u_char buf[16] * add a few more comments
|
#
1.63 |
|
12-Oct-1999 |
lukem |
a few user interface and cosmetic tweaks: * confirm(): move from util.c to cmds.c. display mnemonic string in its prompt. add support for `q' (terminate current xfer), `?' (show help list) * in various signal handlers, output a linefeed only if fromatty. * if fgets(stdin) returned NULL (i.e, EOF), clearerr(stdin) because you don't want future fgets to fail. this is not done for the fgets() in the main command loop, since ftp will quit at that point. * unless ftp is invoked with -a, don't retain the anonftp setting between hosts (`ftp somehost:' sets anonftp, but you don't want that to `stick' if you close that connection and open a new one).
|
#
1.62 |
|
11-Oct-1999 |
lukem |
if editing is enabled when intr() is called, print a newline. (cosmetic fix)
|
#
1.61 |
|
09-Oct-1999 |
lukem |
* use sigsetjmp()/siglongjump() instead of setjmp()/longjmp(); the latter don't save the signal mask on some foreign systems. * ensure signal handlers don't use stdio and do reset errno if they don't exit with siglongjmp() * use a common SIGINT handler for {send,recv}request()
|
#
1.60 |
|
05-Oct-1999 |
lukem |
* factor out SIGINFO setting into a handler that is always active (but only prints out info if bytes > 0). only set the handler if SIGINFO is defined * hijack SIGQUIT to be the same as SIGINFO (foreign ports have this, and it's annoying to have SIGQUIT dump core on netbsd when it prints info on other systems) * in {recv,send}request(), factor a lot of duplicated code out into a `cleanup' section at the end * rework shell() a bit
|
#
1.59 |
|
05-Oct-1999 |
lukem |
add TNFi copyright to all files i've done more than a minor amount of work to...
|
#
1.58 |
|
01-Oct-1999 |
lukem |
If EPSV or EPRT fails, disable epsv4 for the rest of the current connection. the disabled state can be overridden by toggling epsv4.
(I got sick of the errors about EPSV not being supported on almost every server I connect to. This way we retain support for epsv4, but it's not so whiny after the first failure...)
|
#
1.57 |
|
01-Oct-1999 |
lukem |
prefix the global variables in ftp_var.h with GLOBAL, which defaults to "extern" if it's not set. define GLOBAL to (empty) in main.c. this effectively moves all the globals into main.c whilst retaining namespace access to them in other source files. (global vars in header files confuse foreign linkers)
|
#
1.56 |
|
01-Oct-1999 |
lukem |
* don't bother with "pathnames.h"; it contained just a single #define. instead, include <paths.h> in the files that need it * slightly reorg ftp_var.h
|
#
1.55 |
|
30-Sep-1999 |
lukem |
* In the !NI_NUMERICHOST case (i.e, getaddrinfo() challenged systems), portnum should be in host order. found/fixed by Matthias Pfaller <leo@dachau.marco.de> * parse_url(): improve checking of portnum, and add an extra argument to pass back the parsed portnum to the caller (reduces a bit of code duplication) * Move the KAME/WIDE copyrights after the BSD/TNFi ones. Since there was significantly less code added under the former, it's only fair on the latter.
|
#
1.54 |
|
30-Sep-1999 |
lukem |
* fix initialisation of home[] * fetch_url(): if path would be NULL, return strdup("")
|
#
1.53 |
|
28-Sep-1999 |
lukem |
* add new commands: lpage page local files pdir as dir, but through your $PAGER pls as ls, but through your $PAGER * implement docase() (a la dotrans() et al) and use appropriately, rototilling some duplicated code * globulize(): modify to return a pointer to the strdup()ed result in all cases, and hack the code that calls it to take this into account * replace strcpy() and strncpy() with strlcpy() * put(), getit(): use some aptly named local vars instead of argv[...] * delint
|
#
1.52 |
|
27-Sep-1999 |
lukem |
* idle(): rename to idlecmd(). certain linux distributions have an incompatible prototype for idle() in <unistd.h> (which i thought was against namespace and sensibility guidelines, but...) * consistently use xsignal() instead of signal(). we get known behaviour in all cases (SA_RESTART), which is good for some borken foreign systems. * remove signal.h from most files; it's unnecessary now * fetch_url(): use `long chunksize' instead of ssize_t; it's more portable, and we're setting chunksize with strtol() anyway * xsignal(): only use SA_RESTART if it exists. SunOS 4.x doesn't have it but has the inverse (SA_INTERRUPT). the original function i was inspired from had this support (lib/signal.c, W. Richard Stevens' `UNP 2nd ed Vol 1'). * remove <termios.h> from util.c; it should be unnecessary now
|
#
1.51 |
|
24-Sep-1999 |
lukem |
if getsockopt() returns a buffer size of <= 0, set them to 8192. this works around a problem in certain OS from Sun with a version < 5.6...
|
#
1.50 |
|
22-Sep-1999 |
lukem |
branches: 1.50.2; * add support for `xferbuf', which sets both `sndbuf' and `rcvbuf' * document the above three commands * rototill the way the sndbuf and rcvbuf work. remove resetsockbufsize() * use the appropriate socket buffer size as the size of the buffer that the read()/write() loops use. speeds up things in some cases.
|
#
1.49 |
|
21-Sep-1999 |
lukem |
only default to epsv4 if INET6 is defined
|
#
1.48 |
|
12-Jul-1999 |
lukem |
* change fetch_ftp() to be fully rfc 1738 compliant; if the URL contains the an empty directory (e.g, between `some' and `path' in `ftp://host/some//path'), then execute `CWD ' (without a path). This command will probably fail on rfc 959 compliant servers, so issue a warning in this case and bail. [noted by cgd]. (i wonder if the people who wrote rfc 1738 actually realised that this requirement appears to contravene the spec for `cwd' in rfc 959 ?) * replace isurl() with isipv6addr(), and use appropriately. fixes auto-login with `classic ftp URLs' (e.g, `ftp somehost:') * cleanup and rework some of the ipv6 stuff in parse_url() * prevent potential coredump in fetch_ftp() when parsing `;type=X' * KNF a few lines * fix a couple of comments * cleanup the man page a bit
|
#
1.47 |
|
11-Jul-1999 |
itojun |
add epsv4 command, which enable/disable the use of EPSV/EPRT.
this is mainly for (hypothetical) ftp server which disconnect clients that use EPSV/EPRT. I've never seen any ftp server like this, but epsv4 command may be of use when such an ftp server is found.
|
#
1.46 |
|
10-Jul-1999 |
christos |
isurl does not return a pointer!
|
#
1.45 |
|
02-Jul-1999 |
itojun |
add dual-stack (IPv4/v6) support. hope I broke no other part...
|
#
1.44 |
|
29-Jun-1999 |
lukem |
[fear this; more ftp hacking from lukem :-]
features:
|
#
1.43 |
|
20-Jun-1999 |
cgd |
split the "SMALL" #ifdefs into ones for NO_ABOUT, NO_EDITCOMPLETE, and NO_PROGRESS. -DSMALL still implies all of those. progress meter support isn't necessary for the smallest possible ftp client, but it adds very little space and makes users' lives much better. Therefore, it should be enabled for installation media if at all possible.
|
#
1.42 |
|
02-Jun-1999 |
lukem |
* 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
|
#
1.41 |
|
17-May-1999 |
lukem |
only enable editing by default if stdin is a tty. noticed by Onno van der Linden <onno@simplex.nl>
|
Revision tags: netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.40 |
|
31-Mar-1999 |
lukem |
branches: 1.40.2; when using editline, work on the correct buffer. fixes problem where blank input lines were being added to the history buffer.
|
#
1.39 |
|
22-Mar-1999 |
lukem |
* 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
|
#
1.38 |
|
08-Mar-1999 |
lukem |
* 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.
|
#
1.37 |
|
24-Jan-1999 |
lukem |
* -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)
|
#
1.36 |
|
23-Jan-1999 |
lukem |
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)
|
#
1.35 |
|
27-Dec-1998 |
lukem |
be saner about the method to determine which $proxy to use
|
#
1.34 |
|
28-Sep-1998 |
lukem |
* 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.
|
#
1.33 |
|
08-Aug-1998 |
lukem |
need <signal.h> for signal....
|
#
1.32 |
|
03-Aug-1998 |
lukem |
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'
|
#
1.31 |
|
04-Jun-1998 |
lukem |
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.
|
#
1.30 |
|
21-Jan-1998 |
lukem |
enable el_parse for unknown commands (so editrc(5) commands can be used directly
|
#
1.29 |
|
18-Jan-1998 |
lukem |
define MAX_IN_PORT_T and use instead of USHRT_MAX. suggested by cgd@netbsd.org
|
#
1.28 |
|
18-Jan-1998 |
lukem |
* 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.
|
#
1.27 |
|
12-Dec-1997 |
gwr |
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?)
|
Revision tags: netbsd-1-3-BETA netbsd-1-3-base
|
#
1.26 |
|
14-Oct-1997 |
christos |
branches: 1.26.2; PR/4257: Jaromir Dolecek: Compensate for the libedit changes.
|
#
1.25 |
|
23-Aug-1997 |
lukem |
support $TMPDIR
|
#
1.24 |
|
18-Aug-1997 |
lukem |
bugs fixed: * don't interpret '-' or '|' when a local filename is determined from the remote name (i.e, in mget, and in get with only one argument). This is implemented using an extra argument to recvrequest(). Fixes a major security hole. * clean up memory leak when using globulize() * clean up a couple of comments * fix wording in TNF copyright
features added: * support for TIS fwtk gate-ftp servers: * read defaults from $FTPSERVER && $FTPSERVERPORT * start in gate-ftp mode if invoked as 'gate-ftp' * toggle or set with 'gate [host [port]]'
|
#
1.23 |
|
20-Jul-1997 |
lukem |
* use RCSID() && COPYRIGHT() macros * cleanup for WARNS=1 (including some ugly '(void)&var' bits wrapped in #ifdef __GNUC__ to shut up gcc warnings WRT setjmp/longjmp) * use strtol() instead of atoi(), and more extensively check result of conversion * use u_int16_t instead of short or int for TCP port addresses
|
#
1.22 |
|
10-Jun-1997 |
lukem |
Don't use editing or progress bar if $TERM isn't set or is "dumb". Fixes emacs ange-ftp. Suggested by Todd Miller <Todd.Miller@courtesan.com>, tested by matt green <mrg@eterna.com.au>
|
#
1.21 |
|
05-Apr-1997 |
lukem |
* support $ftp_proxy for ftp:// transfers [bin/3245] * add "more" & "less" as synonyms for "page" * move editline setup code into controlediting(), and call appropriately. only setup setup terminal if going into interactive mode. inspired by Todd Miller <todd.miller@courtesan.com>
|
#
1.20 |
|
16-Mar-1997 |
lukem |
Fixes from <Todd.Miller@cs.colorado.edu>, with some cleanup and reworks by me: * only echo "Passive mode" in verbose mode; scripts that use ftp may get unwanted output otherwise * disable progress bar and modification time preservation when retreiving to a non-regular files. fixes progress bar getting in way of "get file /dev/tty" * setup el_init() et al if editing is set, not if fromatty. TODO: migrate this to a function, and call if editing is turned on later in the session. also implement edit_cleanup if editing is turned off * call el_set() after setting SIGWINCH handler. This fixes the problem when suspending in a non-cbreak shell (e.g, csh) would trash your tty mode. * reset interactive mode correctly in auto_fetch() mget mode
|
#
1.19 |
|
14-Mar-1997 |
christos |
SMALLFTP->SMALL; remove SMALL from Makefile
|
#
1.18 |
|
13-Mar-1997 |
lukem |
Features: * support remglobbing of auto_fetch arguments * new flag - '-e'; disable editing * "page file" == "get file |${PAGER-less}"
Bugfixes/cleanup: * consistently use a trailing '.' on messages * code cleanup, including buffer overrun fixes, use puts and putchar in places, etc (inspired by OpenBSD mods) * disable progress bar when local-file is a pipe or '-' * skip \r in http headers * fix remote ftpd slash bug more elegantly (so it works with ////) * abort_remote(): check if cout==NULL before using it. should fix [bin/3273] * fixed up cosmetic problems when complete_remote() generated errors from the remote server (such as "no files found", "login with user and pass", ...) done by adding extra argument to remglob(), which is a pointer to an error buffer to put messages in rather than printing to stdout.
|
#
1.17 |
|
01-Feb-1997 |
lukem |
[Yet Another Huge Ftp Commit - hopefully the last for a while, barring any more little things people want added ...]
New features: * progressmeter is now asynchronous, so "stalled" transfers can be detected. "- stalled -" is displayed instead of the ETA in this case. When the xfer resumes, the time that the xfer was stalled for is factored out of the ETA. It is debatable whether this is better than not factoring it out, but I like it this way (I.e, if it stalls for 8 seconds and the ETA was 30 seconds, when it resumes the ETA will still be 30 seconds). * verbosity can be disabled on the command line (-V), so that in auto-fetch mode the only lines displayed will be a description of the file, and the progress bar (if possible) * if the screen is resized (and detected via the SIGWINCH signal), the progress bar will rescale automatically.
Bugs fixed: * progress bar will not use the last character on the line, as this can cause problems on some terminals * screen dimensions (via ioctl(TIOCWINSZ)) should use stdout not stdin * progressmeter() used some vars before initialising them * ^D will quit now. [fixes bin/3162] * use hstrerror() to generate error message for host name lookup failure. * use getcwd instead of getwd (it should have been OK, but why tempt fate?) * auto-fetch transfers will always return a positive exit value upon failure or interruption, relative to the file's position in argv[]. * remote completion of / will work, without putting a leading "///". This is actually a bug in ftpd(1), where "NLST /" prefixes all names with "//", but fixing every ftpd(1) is not an option...
|
#
1.16 |
|
19-Jan-1997 |
lukem |
New features: * Command line editing via editline(3) library. * Context sensitive command and file completion, including remote files.
Enhancements to auto-fetch feature: * Support for http:// URLs using the http protocol, including proxy HTTP support via $htty_proxy if it's defined. * The connection is kept open between successive files on the same host. (obviously, this does not count for http requests.) * Return value of ftp is 0 on no error, or the offset in argv[] of the file which failed (i.e., argv[x] failed, ftp returns x). * If the path in an ftp URL or classic format line has a trailing '/', cd to the path and enter interactive mode. Fixes [bin/3011], albiet requiring the user to help ftp in determining the operation.
Other changes: * '-P port' works for normal ftp, and is the default for all classic style auto-fetch transfers and for ftp URLs that don't specify the port. (previously it would just work for the first xfer.) * Some code moved into separated files along logical divisions. * Editing and completion can be compiled out with -DSMALLFTP.
|
#
1.15 |
|
29-Dec-1996 |
lukem |
* preserve modtime if size is 0 [bin/3040, Enami Tsugutomo] * in autofetch mode, don't retry a file if the connection failed - skip it and move to the next file. [bin/3051, Matt Green] * only print error messages from SIZE or MDTM if the user used 'size' or 'modt' (respectively). prevents extraneous warnings during normal transfers when connected to a site which doesn't support these (behaviour prior to last commit), but still allows error feedback to specific user requests for this info (which the last commit broke). * 'account': only accept one optional argument * if invoked as pftp, default to passive mode on (from FreeBSD) * remove leading '0 ' in progress bar - looked ugly * use warn instead of perror * use strncpy when src isn't known to have safe length * remglob(): use mkstemp() to prevent symlink games, and don't override _PATH_TMP, use it as the prefix to the temp file
|
#
1.14 |
|
06-Dec-1996 |
lukem |
functionality mods: * implement 'progress bar/meter' (inspired by ncftp). use 'progress' to toggle on. it will display current file size to 5 digits, automatically determining suffix (up to 16384 P (petabytes) == 2^64). * 'ls' now uses NLST (unadorned listing), a la older ftp clients. 'dir' still does LIST (long listing). idea from John Nemeth <jnemeth@cue.bc.ca>
bug fixes: * return first line of reply in reply_string[] from getreply(), instead of last line. This fixes [bin/741] (parsing of SYST), and also means that SIZE and MDTM messages will be parsed correctly if they're longer than 1 line. * parse URL-style auto-ftps that have no filename correctly (e.g, ftp://host, ftp://host/, ftp://host/dir/). pointed out by Jaromir Dolecek <dolecek@saruman.ics.muni.cz> * pass the correct size array in 2nd arg of utimes() when setting the modification time
|
#
1.13 |
|
28-Nov-1996 |
lukem |
More features, some of which were inspired by changes that friedman@gnu.ai.mit.edu (Noah Friedman) made to his modified ftp: - implement "lpwd" - local pwd - implement "preserve" - toggle preserving of file modification times on retrieved files - allow for explicit "on" or "off" arg to toggle commands - "exit" synonym for "quit", "msend" synonym for "mput" - in confirmation mode, allow 'a' (yes to rest of current command), and 'p' (turn off prompt mode, as if 'prompt off' was done, effective immediately) - "modtime" returns time formatted as localtime, not GMT
Bug fixes: - check for extraneous args on commands - cleanup const usage, line formatting - create 0 length temporary file in remglob() to prevent symlink games (from OpenBSD) - check length of filename of ~/.netrc (from OpenBSD)
|
#
1.12 |
|
25-Nov-1996 |
lukem |
cleanups/bugfixes: - don't echo 'ACCT' parameter when debugging (a la 'PASS') - Fix checking of directory access for "/foo", the parent directory is "/", not "" (from FreeBSD) - remove trailing whitespace on lines - add any missing NetBSD tags - cleanups to man page, includinging sorting options description
feature additions: - variable sized hash marks (from [bin/683], but done in the hash command as an optional arg) - more user-friendly transfer time printing (from FreeBSD, with mods) - '-p' command line option to jump into PASV mode (closes [bin/2857], but with an option rather than checking argv[0]) - SIGINFO support for printing xfer stats when sending/receiving requests - '-P port' for changing the port to connect to (from thorpej@netbsd.org) - '-a': bypass normal login, and try anonymous login (from OpenBSD via thorpej) - autofetch files via url (ftp://...) or "classic" (host:/file) (from OpenBSD via thorpej) - 'ftp' synonymous with 'open' (from FreeBSD)
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.11 |
|
07-May-1996 |
pk |
Fence off NULL args in getcmd() (fixes/works around PR#824).
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.10 |
|
15-Sep-1995 |
pk |
Avoid falling off the end of a fixed-length array (from John F. Woods; PR#1431).
|
#
1.9 |
|
14-Sep-1995 |
cgd |
needs string.h for protos.
|
#
1.8 |
|
08-Sep-1995 |
tls |
Sync with 4.4lite2
|
#
1.7 |
|
24-Dec-1994 |
cgd |
needs string.h
|
#
1.6 |
|
31-Aug-1994 |
mycroft |
Fix option parsing bug reported by Uwe Arndt, and another related bogon.
|
#
1.5 |
|
29-Aug-1994 |
mycroft |
branches: 1.5.2; Add RCS ids.
|
#
1.4 |
|
25-Aug-1994 |
cgd |
passive mode support, from David Carrel <carrel@cisco.com>, and cleaned up for the new ftp sources by me.
|
#
1.3 |
|
25-Aug-1994 |
cgd |
clean up import, no local changes.
|
Revision tags: netbsd-1-0-base
|
#
1.2 |
|
01-Aug-1993 |
mycroft |
Add RCS identifiers.
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; 1.1.2; Initial revision
|
#
1.127 |
|
18-Jul-2020 |
lukem |
ftp: add -? for help. improve synopsis
Add -? to display usage synopsis and help to stdout. This allows for "ftp -? | less", which is more user friendly. Errors still show usage to stderr. Consistency improvements in some usage text.
|
Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
|
#
1.126 |
|
04-Feb-2019 |
mrg |
- add justquit() that always exits. use it to avoid unreachable code.
|
Revision tags: pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.125 |
|
04-Mar-2018 |
dholland |
branches: 1.125.4; Don't use the local username as the default anonftp password.
once upon a time doing this was part of the social glue that held the community together, but that was a long time ago, and now it's just an information leak.
proposed on tech-userlevel in 2008, then apparently forgotten :-|
|
#
1.124 |
|
25-Nov-2017 |
christos |
Make outfile always allocated, free it to set it to NULL, and don't move it around.
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
|
#
1.123 |
|
23-Apr-2015 |
lukem |
Add -x xferbufsize to set xferbuf size.
Implement -x xferbufsize set the socket send and receive buffer size, as per 'xferbuf' in interactive mode.
Patch from Nicholas Mills (via private mail), with minor adjustment by me.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 tls-maxphys-base
|
#
1.122 |
|
22-Dec-2012 |
christos |
branches: 1.122.8; document https support, mentioning certificates are not validated, and obey https_proxy.
|
#
1.121 |
|
21-Dec-2012 |
christos |
PR/47276: Add https support
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base
|
#
1.120 |
|
10-Dec-2011 |
lukem |
branches: 1.120.2; 1.120.6; Move determination of socket buffer sizes from startup to the first time a socket is used, as the previous logic assumed AF_INET sockets were available (which they may not be in an IPv6-only system). Per discussion with Maxim Konovalov and the FreeBSD problem 162661.
|
Revision tags: yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.119 |
|
16-Sep-2011 |
joerg |
branches: 1.119.2; Use __dead
|
#
1.118 |
|
14-Aug-2011 |
christos |
fix gcc-4.5 warnings
|
Revision tags: cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 matt-premerge-20091211
|
#
1.117 |
|
13-Jul-2009 |
roy |
Rename internal getline() function to get_line() so it does conflict with the soon to be added getline(3) libc function.
|
Revision tags: jym-xensuspend-nbase jym-xensuspend-base
|
#
1.116 |
|
24-Apr-2009 |
lukem |
Revert incorrect change made as part of the WARNS=4. Fixes "ftp host [port]" on the CLI. Noted by Geoff Wing.
|
#
1.115 |
|
12-Apr-2009 |
lukem |
Fix numerous WARNS=4 issues (-Wcast-qual -Wsign-compare).
|
#
1.114 |
|
12-Apr-2009 |
lukem |
fix -Wshadow issues
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3
|
#
1.113 |
|
09-Sep-2008 |
gmcgarry |
branches: 1.113.6; getline() returns int. Don't cast to unsigned value and compare with -1.
|
Revision tags: wrstuden-revivesa-base-2
|
#
1.112 |
|
13-Aug-2008 |
lukem |
Use AF_INET instead of AF_UNSPEC as the default family if !defined(INET6). Avoids problem reported by Matthias Scheler <tron@NetBSD.org>.
|
#
1.111 |
|
21-Jul-2008 |
lukem |
Add TNF to __COPYRIGHT
|
#
1.110 |
|
21-Jul-2008 |
lukem |
Remove the \n and tabs from the __COPYRIGHT() strings. Tweak to use a consistent format.
|
Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 wrstuden-revivesa-base
|
#
1.109 |
|
10-May-2008 |
skd |
Add epsv6 and epsv to disable extended passive mode for ipv6 or both ipv4 and ipv6 respectively. This hack is due to our friends a Juniper Networks who break epsv in ipv6. Should be fixed in ScreenOS 6.2.X.
|
#
1.108 |
|
05-May-2008 |
lukem |
branches: 1.108.2; Only attempt to el_parse() a command unknown by the default parser if editing is enabled. Fixes PR bin/38589
|
#
1.107 |
|
28-Apr-2008 |
martin |
Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
|
#
1.106 |
|
02-Dec-2007 |
wiz |
branches: 1.106.6; Sort options.
|
Revision tags: matt-armv6-prevmlocking matt-mips64-base
|
#
1.105 |
|
22-May-2007 |
lukem |
branches: 1.105.4; * main: call tzset() to ensure TZ is setup for other <time.h> functions. * remotemodtime(): use strptime() to parse the reply. * fetch_url(): ensure struct tm is zeroed before calling strptime().
|
#
1.104 |
|
17-Apr-2007 |
lukem |
* Implement -s srcaddr; uses srcaddr as the local IP address for all connections. Based on code in the version of ftp that FreeBSD had before they replaced it with lukemftp. * Move error message handling into ftp_connect() rather than in the caller, so that more specific error reporting can occur. * Improve consistency of various warning and error messages.
|
#
1.103 |
|
12-Apr-2007 |
lukem |
Fix using /usr/bin/ftp as a slave process on the end of a pipe by calling fflush(stdout) before each command. Taken from FreeBSD's pre-lukemftp version of ftp.
|
#
1.102 |
|
13-Dec-2006 |
christos |
gcc4 does not care about &foo; use volatile instead. From Anon Ymous
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base chap-midi-nbase chap-midi-base
|
#
1.101 |
|
31-Jan-2006 |
christos |
rename debug to ftp_debug. grr libssh.
|
#
1.100 |
|
31-Jan-2006 |
christos |
Rename xfoo() to ftp_foo() to avoid collisions with libssh. Don't ask.
|
#
1.99 |
|
29-Jun-2005 |
christos |
Add NO_USAGE and NO_DEBUG so that we can fit in the floppies again.
|
#
1.98 |
|
10-Jun-2005 |
jmc |
Need to #ifdef around declaration of ch with NO_EDITCOMPLETE so this compiles on rescue/miniroot's
|
#
1.97 |
|
10-Jun-2005 |
lukem |
Implement: int getline(FILE *stream, char *buf, size_t buflen, const char **errormsg) Read a line from the FILE stream into buf/buflen using fgets(), so up to buflen-1 chars will be read and the result will be NUL terminated. If the line has a trailing newline it will be removed. If the line is too long, excess characters will be read until newline/EOF/error. Various -ve return values indicate different errors, and errormsg will be changed to an error description if it's not NULL.
Convert to use getline() instead of fgets() whenever reading user input to ensure that an overly long input line doesn't leave excess characters for the next input operation to accidentally use as input.
Zero out the password & account after we've finished with it.
Consistently use getpass(3) (i.e, character echo suppressed) when reading the account data. For some reason, historically the "login" code suppressed echo for Account: yet the "user" command did not!
Display the hostname in the "getaddrinfo failed" warning.
Appease some -Wcast-qual warnings. Fixing all of these requires significant code refactoring. (mmm, legacy code).
|
#
1.96 |
|
20-May-2005 |
jdc |
Make this compile on sparc64 (size_t != int).
|
#
1.95 |
|
19-May-2005 |
lukem |
Use size_t instead of int where appropriate.
|
#
1.94 |
|
13-May-2005 |
lukem |
* Correct the "optlen" argument passed to getsockopt(3) and setsockopt(3) in various places. Fixes a problem noted by Allen Briggs. * Improve warning printed when connect(2) for the data channel fails.
|
#
1.93 |
|
11-May-2005 |
lukem |
Use socklen_t instead of int as the 5th argument to getsockopt(). Improve invocation of setsockopt() and associated failure messages.
|
#
1.92 |
|
10-May-2005 |
lukem |
Prevent an overly-long input line causing a core dump when editing is enabled. Issue noted by Ryoji Kanai in FreeBSD Problem Report # 77158.
|
#
1.91 |
|
11-Apr-2005 |
lukem |
gratuitous whitespace cleanup (before someone else jumps the gun...)
|
Revision tags: netbsd-3-base
|
#
1.90 |
|
21-Jul-2004 |
lukem |
branches: 1.90.2; Slightly rework SIGINT handling; if we're exiting the auto-fetch stuff and sigint_raised is non-zero, reset the handler for SIGINT to SIG_DFL and raise(SIGINT) so that the appropriate wait(3) status is setup. Based on solution proposed by Ognyan Kulev. This should really fix PR [pkg/26351].
|
#
1.89 |
|
20-Jul-2004 |
lukem |
If an ftp auto-fetch transfer is interrupted by SIGINT (usually ^C), exit with 130 instead of 1 (or rarely, 0). This allows an ftp auto-fetch in a shell loop to correctly terminate the loop. Should fix PR [pkg/26351], and possibly others.
|
#
1.88 |
|
09-Jul-2004 |
wiz |
Add -q to usage. From Kouichirou Hiratsuka in PR 26199.
|
#
1.87 |
|
14-May-2004 |
christos |
PR/25566: Anders Magnusson: ftp(1) do not like large TCP windows. Limit it to 8M.
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.86 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22365, verified by myself.
|
#
1.85 |
|
26-Jul-2003 |
salo |
netbsd.org->NetBSD.org
|
#
1.84 |
|
14-May-2003 |
wiz |
Uppercase URL.
|
Revision tags: fvdl_fs64_base
|
#
1.83 |
|
27-Aug-2002 |
christos |
Add a -q <quit-time> flag to abort a transfer if it has stalled for <quit-time> seconds. Ok'd by luke.
|
#
1.82 |
|
05-Jun-2002 |
lukem |
- use setprogname() - only support -6 if INET6 is defined
|
#
1.81 |
|
05-Jun-2002 |
lukem |
- when showing the final progress bar, replace "00:00 ETA" with the elapsed time. (suggested by simonb) - actually display transfer stats after a URL fetch. (bug introduced a *long* time ago) - update copyright & version
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
|
#
1.80 |
|
18-Mar-2002 |
thorpej |
Deal with const'ification if el_parse().
|
#
1.79 |
|
26-Dec-2001 |
lukem |
update copyrights
|
#
1.78 |
|
23-Dec-2001 |
lukem |
Add -4 to force IPv4 and -6 to force IPv6 address usage. From Hajimu UMEMOTO, via Mike Heffner of FreeBSD.
(FreeBSD has imported NetBSD's ftp as their ftp client; Mike is sending back some of their local changes).
|
#
1.77 |
|
19-Feb-2001 |
cgd |
convert to use getprogname()
|
#
1.76 |
|
09-Jan-2001 |
jdolecek |
call setlocale() on startup
|
#
1.75 |
|
15-Dec-2000 |
lukem |
invoke cmdtab.c_handler()s with argv[0] == c_name instead of the supplied name. that way the full (unambiguous) name is displayed in error messages and usage strings.
|
#
1.74 |
|
15-Nov-2000 |
lukem |
- implement "mreget"; as per "mget" but uses "reget" instead of "get" - add -N netrc and $NETRC, as methods to select an alternative .netrc file - cache local user name and home directory for further use - in mget(), use docase() instead of a local version to do the case conversion.
|
#
1.73 |
|
18-Jul-2000 |
lukem |
add support for FEAT and OPTS commands with `features' and `opts'. (from RFC 2389).
add support for MLST & MLSD (machine parseble listings) with 'mlst', 'mlsd' and 'pmlsd' (mlsd |$PAGER) commands. (from draft-ietf-ftpext-mlst-11)
rename remotesyst() to getremoteinfo(), and modify to parse the result from FEAT (if supported), and take into account the support for the various extensions such as MDTM, SIZE, REST (STREAM), MLSD, and FEAT/OPTS. put each feature into one of the following categories: - known to work (explicit FEAT) - unknown but assume works until explicit failure, when it's then tagged as `known not to work'. - known not to work (FEAT succeeded but didn't return anything, or was unknown and then explicit failure) assign results into features[] matrix.
add support to getreply() so that an optional callback will be called for each line received from the server except for the first and last. this is used in FEAT (and MLST) parsing.
modify various commands to check if REST (STREAM), MDTM and SIZE are explicitly or implicitly supported before using.
fix `syst' when verbose is off.
minor knf (indent goto labels by one space, etc).
simply various command usage handlers by assuming that argv != NULL except for quit() and disconnect().
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base
|
#
1.72 |
|
11-Jun-2000 |
lukem |
portability fixes for lukemftp: * initconn(): use in_addr_t instead of u_int32_t when manipulating IPv6 addresses (and assume anything with ipv6 has in_addr_t; if not, i'll add an autoconf test for it) * ai_unmapped(): not all systems have sin_len; so only set #ifdef BSD4_4 * fix some lint
|
#
1.71 |
|
31-May-2000 |
lukem |
Add support for 'ftp -u url file ...', to upload a list of files to given url. Mostly based on [bin/10019] by Scott Aaron Bamford <sab@ansic.net>
|
Revision tags: minoura-xpg4dl-base
|
#
1.70 |
|
01-May-2000 |
lukem |
branches: 1.70.2; convert to ANSI KNF
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.69 |
|
28-Nov-1999 |
lukem |
* implement xsl_init() and xsl_add(); error checking forms of sl_{init,add}() * fix bug where the second press of <TAB> on an empty word (i.e, list all options) may have resulted in an strncmp() against NULL. (detected by _DIAGASSERT())
|
#
1.68 |
|
26-Nov-1999 |
lukem |
* complete_remote(): use remglob("", ...) instead of remglob(".", ...), for listings of the current working directory; some ftp servers don't like `NLST .'. [noted by Giles Lean <giles@nemeton.com.au>] * recvrequest(): treat remote=="" as remote==NULL when calling command(). (to support the above change) * support `[user@]' in `[user@]host' and `[user@]host[:][path]'. [based on idea (and initial code) from David Maxwell <david@fundy.ca>] * `idle' may be invoked without any args * reformat some comments * reformat usage string in program and man page * call updateremotepwd() after successful login, not after successful connect * always call setsockopt(, IPPROTO_IP, IP_TOS, ) (et al); using #if defined(IPPROTO_IP) doesn't work on certain foreign systems where enums instead of #defines are used... [noted by Matthias Pfaller <leo@dachau.marco.de>]
|
#
1.67 |
|
12-Nov-1999 |
lukem |
- implement `set rprompt'; right side version of `set prompt'. depends on EL_RPROMPT support i added to editline(3). - allow $FTPPROMPT and $FTPRPROMPT to override defaults for the relevant prompts - move `%' formatting code from prompt() to expandbuf(). - implement `%.' and `%c', similar to the same % codes in tcsh(1) (functionality I added to tcsh nearly 6 years ago), except that `%.' always does `...trailing' and `%c' always does `/<x>trailing'. - unknown `%foo' codes get printed as `%foo'
|
#
1.66 |
|
11-Nov-1999 |
lukem |
- implement updateremotepwd(); update the global variable `remotepwd' to contain the remote working directory. - add `set prompt', a user configurable prompt. (defaults to `ftp> '). the following escape characters a la tcsh(1) are supported: %/, %m, %M, and %n. - add global var `username'; used by prompt code - fix a couple of minor memory leaks - bump version
|
Revision tags: comdex-fall-1999-base
|
#
1.65 |
|
24-Oct-1999 |
lukem |
new features: - add `usage'; displays the usage of a command. implemented by calling the c_handler() with argc = 0, argv = "funcname". - add `passive auto'; does the same as $FTPMODE=auto. - add `set [option value]'; display all options, or set an option to a value. - add `unset option'; unset an option. - add getoptionvalue() to retrieve an option's value, and replace a few global variables with calls to this. - implement cleanuppeer(), which resets various bits of state back to `disconnected'. call in disconnect() and lostpeer(). - support completing on `options'. - improve recovery after a SIGINT may have closed the connection. XXX: there's still a couple to fix
other stuff: - various consistency fixes in the man page. - ensure that the command usage strings in the code and man page match reality. - mput/mget: check that the connection still exists before each xfer. - minor cosmetic changes in confirm(). - set code correctly in sizecmd() and modtime() - don't need \n in err() strings. - change lostpeer to take an argument (rather than casting (sig_t)lostpeer in signal handlers) - knf and whitespace police.
|
#
1.64 |
|
13-Oct-1999 |
lukem |
* fix up confirm() (broke `a' and `p' in last commit) * simplify main loop (don't need `top' variable any more) * use a struct sockaddr_in6.sin6_addr for the result from inet_pton(), rather than u_char buf[16] * add a few more comments
|
#
1.63 |
|
12-Oct-1999 |
lukem |
a few user interface and cosmetic tweaks: * confirm(): move from util.c to cmds.c. display mnemonic string in its prompt. add support for `q' (terminate current xfer), `?' (show help list) * in various signal handlers, output a linefeed only if fromatty. * if fgets(stdin) returned NULL (i.e, EOF), clearerr(stdin) because you don't want future fgets to fail. this is not done for the fgets() in the main command loop, since ftp will quit at that point. * unless ftp is invoked with -a, don't retain the anonftp setting between hosts (`ftp somehost:' sets anonftp, but you don't want that to `stick' if you close that connection and open a new one).
|
#
1.62 |
|
11-Oct-1999 |
lukem |
if editing is enabled when intr() is called, print a newline. (cosmetic fix)
|
#
1.61 |
|
09-Oct-1999 |
lukem |
* use sigsetjmp()/siglongjump() instead of setjmp()/longjmp(); the latter don't save the signal mask on some foreign systems. * ensure signal handlers don't use stdio and do reset errno if they don't exit with siglongjmp() * use a common SIGINT handler for {send,recv}request()
|
#
1.60 |
|
05-Oct-1999 |
lukem |
* factor out SIGINFO setting into a handler that is always active (but only prints out info if bytes > 0). only set the handler if SIGINFO is defined * hijack SIGQUIT to be the same as SIGINFO (foreign ports have this, and it's annoying to have SIGQUIT dump core on netbsd when it prints info on other systems) * in {recv,send}request(), factor a lot of duplicated code out into a `cleanup' section at the end * rework shell() a bit
|
#
1.59 |
|
05-Oct-1999 |
lukem |
add TNFi copyright to all files i've done more than a minor amount of work to...
|
#
1.58 |
|
01-Oct-1999 |
lukem |
If EPSV or EPRT fails, disable epsv4 for the rest of the current connection. the disabled state can be overridden by toggling epsv4.
(I got sick of the errors about EPSV not being supported on almost every server I connect to. This way we retain support for epsv4, but it's not so whiny after the first failure...)
|
#
1.57 |
|
01-Oct-1999 |
lukem |
prefix the global variables in ftp_var.h with GLOBAL, which defaults to "extern" if it's not set. define GLOBAL to (empty) in main.c. this effectively moves all the globals into main.c whilst retaining namespace access to them in other source files. (global vars in header files confuse foreign linkers)
|
#
1.56 |
|
01-Oct-1999 |
lukem |
* don't bother with "pathnames.h"; it contained just a single #define. instead, include <paths.h> in the files that need it * slightly reorg ftp_var.h
|
#
1.55 |
|
30-Sep-1999 |
lukem |
* In the !NI_NUMERICHOST case (i.e, getaddrinfo() challenged systems), portnum should be in host order. found/fixed by Matthias Pfaller <leo@dachau.marco.de> * parse_url(): improve checking of portnum, and add an extra argument to pass back the parsed portnum to the caller (reduces a bit of code duplication) * Move the KAME/WIDE copyrights after the BSD/TNFi ones. Since there was significantly less code added under the former, it's only fair on the latter.
|
#
1.54 |
|
30-Sep-1999 |
lukem |
* fix initialisation of home[] * fetch_url(): if path would be NULL, return strdup("")
|
#
1.53 |
|
28-Sep-1999 |
lukem |
* add new commands: lpage page local files pdir as dir, but through your $PAGER pls as ls, but through your $PAGER * implement docase() (a la dotrans() et al) and use appropriately, rototilling some duplicated code * globulize(): modify to return a pointer to the strdup()ed result in all cases, and hack the code that calls it to take this into account * replace strcpy() and strncpy() with strlcpy() * put(), getit(): use some aptly named local vars instead of argv[...] * delint
|
#
1.52 |
|
27-Sep-1999 |
lukem |
* idle(): rename to idlecmd(). certain linux distributions have an incompatible prototype for idle() in <unistd.h> (which i thought was against namespace and sensibility guidelines, but...) * consistently use xsignal() instead of signal(). we get known behaviour in all cases (SA_RESTART), which is good for some borken foreign systems. * remove signal.h from most files; it's unnecessary now * fetch_url(): use `long chunksize' instead of ssize_t; it's more portable, and we're setting chunksize with strtol() anyway * xsignal(): only use SA_RESTART if it exists. SunOS 4.x doesn't have it but has the inverse (SA_INTERRUPT). the original function i was inspired from had this support (lib/signal.c, W. Richard Stevens' `UNP 2nd ed Vol 1'). * remove <termios.h> from util.c; it should be unnecessary now
|
#
1.51 |
|
24-Sep-1999 |
lukem |
if getsockopt() returns a buffer size of <= 0, set them to 8192. this works around a problem in certain OS from Sun with a version < 5.6...
|
#
1.50 |
|
22-Sep-1999 |
lukem |
branches: 1.50.2; * add support for `xferbuf', which sets both `sndbuf' and `rcvbuf' * document the above three commands * rototill the way the sndbuf and rcvbuf work. remove resetsockbufsize() * use the appropriate socket buffer size as the size of the buffer that the read()/write() loops use. speeds up things in some cases.
|
#
1.49 |
|
21-Sep-1999 |
lukem |
only default to epsv4 if INET6 is defined
|
#
1.48 |
|
12-Jul-1999 |
lukem |
* change fetch_ftp() to be fully rfc 1738 compliant; if the URL contains the an empty directory (e.g, between `some' and `path' in `ftp://host/some//path'), then execute `CWD ' (without a path). This command will probably fail on rfc 959 compliant servers, so issue a warning in this case and bail. [noted by cgd]. (i wonder if the people who wrote rfc 1738 actually realised that this requirement appears to contravene the spec for `cwd' in rfc 959 ?) * replace isurl() with isipv6addr(), and use appropriately. fixes auto-login with `classic ftp URLs' (e.g, `ftp somehost:') * cleanup and rework some of the ipv6 stuff in parse_url() * prevent potential coredump in fetch_ftp() when parsing `;type=X' * KNF a few lines * fix a couple of comments * cleanup the man page a bit
|
#
1.47 |
|
11-Jul-1999 |
itojun |
add epsv4 command, which enable/disable the use of EPSV/EPRT.
this is mainly for (hypothetical) ftp server which disconnect clients that use EPSV/EPRT. I've never seen any ftp server like this, but epsv4 command may be of use when such an ftp server is found.
|
#
1.46 |
|
10-Jul-1999 |
christos |
isurl does not return a pointer!
|
#
1.45 |
|
02-Jul-1999 |
itojun |
add dual-stack (IPv4/v6) support. hope I broke no other part...
|
#
1.44 |
|
29-Jun-1999 |
lukem |
[fear this; more ftp hacking from lukem :-]
features:
|
#
1.43 |
|
20-Jun-1999 |
cgd |
split the "SMALL" #ifdefs into ones for NO_ABOUT, NO_EDITCOMPLETE, and NO_PROGRESS. -DSMALL still implies all of those. progress meter support isn't necessary for the smallest possible ftp client, but it adds very little space and makes users' lives much better. Therefore, it should be enabled for installation media if at all possible.
|
#
1.42 |
|
02-Jun-1999 |
lukem |
* 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
|
#
1.41 |
|
17-May-1999 |
lukem |
only enable editing by default if stdin is a tty. noticed by Onno van der Linden <onno@simplex.nl>
|
Revision tags: netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.40 |
|
31-Mar-1999 |
lukem |
branches: 1.40.2; when using editline, work on the correct buffer. fixes problem where blank input lines were being added to the history buffer.
|
#
1.39 |
|
22-Mar-1999 |
lukem |
* 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
|
#
1.38 |
|
08-Mar-1999 |
lukem |
* 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.
|
#
1.37 |
|
24-Jan-1999 |
lukem |
* -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)
|
#
1.36 |
|
23-Jan-1999 |
lukem |
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)
|
#
1.35 |
|
27-Dec-1998 |
lukem |
be saner about the method to determine which $proxy to use
|
#
1.34 |
|
28-Sep-1998 |
lukem |
* 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.
|
#
1.33 |
|
08-Aug-1998 |
lukem |
need <signal.h> for signal....
|
#
1.32 |
|
03-Aug-1998 |
lukem |
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'
|
#
1.31 |
|
04-Jun-1998 |
lukem |
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.
|
#
1.30 |
|
21-Jan-1998 |
lukem |
enable el_parse for unknown commands (so editrc(5) commands can be used directly
|
#
1.29 |
|
18-Jan-1998 |
lukem |
define MAX_IN_PORT_T and use instead of USHRT_MAX. suggested by cgd@netbsd.org
|
#
1.28 |
|
18-Jan-1998 |
lukem |
* 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.
|
#
1.27 |
|
12-Dec-1997 |
gwr |
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?)
|
Revision tags: netbsd-1-3-BETA netbsd-1-3-base
|
#
1.26 |
|
14-Oct-1997 |
christos |
branches: 1.26.2; PR/4257: Jaromir Dolecek: Compensate for the libedit changes.
|
#
1.25 |
|
23-Aug-1997 |
lukem |
support $TMPDIR
|
#
1.24 |
|
18-Aug-1997 |
lukem |
bugs fixed: * don't interpret '-' or '|' when a local filename is determined from the remote name (i.e, in mget, and in get with only one argument). This is implemented using an extra argument to recvrequest(). Fixes a major security hole. * clean up memory leak when using globulize() * clean up a couple of comments * fix wording in TNF copyright
features added: * support for TIS fwtk gate-ftp servers: * read defaults from $FTPSERVER && $FTPSERVERPORT * start in gate-ftp mode if invoked as 'gate-ftp' * toggle or set with 'gate [host [port]]'
|
#
1.23 |
|
20-Jul-1997 |
lukem |
* use RCSID() && COPYRIGHT() macros * cleanup for WARNS=1 (including some ugly '(void)&var' bits wrapped in #ifdef __GNUC__ to shut up gcc warnings WRT setjmp/longjmp) * use strtol() instead of atoi(), and more extensively check result of conversion * use u_int16_t instead of short or int for TCP port addresses
|
#
1.22 |
|
10-Jun-1997 |
lukem |
Don't use editing or progress bar if $TERM isn't set or is "dumb". Fixes emacs ange-ftp. Suggested by Todd Miller <Todd.Miller@courtesan.com>, tested by matt green <mrg@eterna.com.au>
|
#
1.21 |
|
05-Apr-1997 |
lukem |
* support $ftp_proxy for ftp:// transfers [bin/3245] * add "more" & "less" as synonyms for "page" * move editline setup code into controlediting(), and call appropriately. only setup setup terminal if going into interactive mode. inspired by Todd Miller <todd.miller@courtesan.com>
|
#
1.20 |
|
16-Mar-1997 |
lukem |
Fixes from <Todd.Miller@cs.colorado.edu>, with some cleanup and reworks by me: * only echo "Passive mode" in verbose mode; scripts that use ftp may get unwanted output otherwise * disable progress bar and modification time preservation when retreiving to a non-regular files. fixes progress bar getting in way of "get file /dev/tty" * setup el_init() et al if editing is set, not if fromatty. TODO: migrate this to a function, and call if editing is turned on later in the session. also implement edit_cleanup if editing is turned off * call el_set() after setting SIGWINCH handler. This fixes the problem when suspending in a non-cbreak shell (e.g, csh) would trash your tty mode. * reset interactive mode correctly in auto_fetch() mget mode
|
#
1.19 |
|
14-Mar-1997 |
christos |
SMALLFTP->SMALL; remove SMALL from Makefile
|
#
1.18 |
|
13-Mar-1997 |
lukem |
Features: * support remglobbing of auto_fetch arguments * new flag - '-e'; disable editing * "page file" == "get file |${PAGER-less}"
Bugfixes/cleanup: * consistently use a trailing '.' on messages * code cleanup, including buffer overrun fixes, use puts and putchar in places, etc (inspired by OpenBSD mods) * disable progress bar when local-file is a pipe or '-' * skip \r in http headers * fix remote ftpd slash bug more elegantly (so it works with ////) * abort_remote(): check if cout==NULL before using it. should fix [bin/3273] * fixed up cosmetic problems when complete_remote() generated errors from the remote server (such as "no files found", "login with user and pass", ...) done by adding extra argument to remglob(), which is a pointer to an error buffer to put messages in rather than printing to stdout.
|
#
1.17 |
|
01-Feb-1997 |
lukem |
[Yet Another Huge Ftp Commit - hopefully the last for a while, barring any more little things people want added ...]
New features: * progressmeter is now asynchronous, so "stalled" transfers can be detected. "- stalled -" is displayed instead of the ETA in this case. When the xfer resumes, the time that the xfer was stalled for is factored out of the ETA. It is debatable whether this is better than not factoring it out, but I like it this way (I.e, if it stalls for 8 seconds and the ETA was 30 seconds, when it resumes the ETA will still be 30 seconds). * verbosity can be disabled on the command line (-V), so that in auto-fetch mode the only lines displayed will be a description of the file, and the progress bar (if possible) * if the screen is resized (and detected via the SIGWINCH signal), the progress bar will rescale automatically.
Bugs fixed: * progress bar will not use the last character on the line, as this can cause problems on some terminals * screen dimensions (via ioctl(TIOCWINSZ)) should use stdout not stdin * progressmeter() used some vars before initialising them * ^D will quit now. [fixes bin/3162] * use hstrerror() to generate error message for host name lookup failure. * use getcwd instead of getwd (it should have been OK, but why tempt fate?) * auto-fetch transfers will always return a positive exit value upon failure or interruption, relative to the file's position in argv[]. * remote completion of / will work, without putting a leading "///". This is actually a bug in ftpd(1), where "NLST /" prefixes all names with "//", but fixing every ftpd(1) is not an option...
|
#
1.16 |
|
19-Jan-1997 |
lukem |
New features: * Command line editing via editline(3) library. * Context sensitive command and file completion, including remote files.
Enhancements to auto-fetch feature: * Support for http:// URLs using the http protocol, including proxy HTTP support via $htty_proxy if it's defined. * The connection is kept open between successive files on the same host. (obviously, this does not count for http requests.) * Return value of ftp is 0 on no error, or the offset in argv[] of the file which failed (i.e., argv[x] failed, ftp returns x). * If the path in an ftp URL or classic format line has a trailing '/', cd to the path and enter interactive mode. Fixes [bin/3011], albiet requiring the user to help ftp in determining the operation.
Other changes: * '-P port' works for normal ftp, and is the default for all classic style auto-fetch transfers and for ftp URLs that don't specify the port. (previously it would just work for the first xfer.) * Some code moved into separated files along logical divisions. * Editing and completion can be compiled out with -DSMALLFTP.
|
#
1.15 |
|
29-Dec-1996 |
lukem |
* preserve modtime if size is 0 [bin/3040, Enami Tsugutomo] * in autofetch mode, don't retry a file if the connection failed - skip it and move to the next file. [bin/3051, Matt Green] * only print error messages from SIZE or MDTM if the user used 'size' or 'modt' (respectively). prevents extraneous warnings during normal transfers when connected to a site which doesn't support these (behaviour prior to last commit), but still allows error feedback to specific user requests for this info (which the last commit broke). * 'account': only accept one optional argument * if invoked as pftp, default to passive mode on (from FreeBSD) * remove leading '0 ' in progress bar - looked ugly * use warn instead of perror * use strncpy when src isn't known to have safe length * remglob(): use mkstemp() to prevent symlink games, and don't override _PATH_TMP, use it as the prefix to the temp file
|
#
1.14 |
|
06-Dec-1996 |
lukem |
functionality mods: * implement 'progress bar/meter' (inspired by ncftp). use 'progress' to toggle on. it will display current file size to 5 digits, automatically determining suffix (up to 16384 P (petabytes) == 2^64). * 'ls' now uses NLST (unadorned listing), a la older ftp clients. 'dir' still does LIST (long listing). idea from John Nemeth <jnemeth@cue.bc.ca>
bug fixes: * return first line of reply in reply_string[] from getreply(), instead of last line. This fixes [bin/741] (parsing of SYST), and also means that SIZE and MDTM messages will be parsed correctly if they're longer than 1 line. * parse URL-style auto-ftps that have no filename correctly (e.g, ftp://host, ftp://host/, ftp://host/dir/). pointed out by Jaromir Dolecek <dolecek@saruman.ics.muni.cz> * pass the correct size array in 2nd arg of utimes() when setting the modification time
|
#
1.13 |
|
28-Nov-1996 |
lukem |
More features, some of which were inspired by changes that friedman@gnu.ai.mit.edu (Noah Friedman) made to his modified ftp: - implement "lpwd" - local pwd - implement "preserve" - toggle preserving of file modification times on retrieved files - allow for explicit "on" or "off" arg to toggle commands - "exit" synonym for "quit", "msend" synonym for "mput" - in confirmation mode, allow 'a' (yes to rest of current command), and 'p' (turn off prompt mode, as if 'prompt off' was done, effective immediately) - "modtime" returns time formatted as localtime, not GMT
Bug fixes: - check for extraneous args on commands - cleanup const usage, line formatting - create 0 length temporary file in remglob() to prevent symlink games (from OpenBSD) - check length of filename of ~/.netrc (from OpenBSD)
|
#
1.12 |
|
25-Nov-1996 |
lukem |
cleanups/bugfixes: - don't echo 'ACCT' parameter when debugging (a la 'PASS') - Fix checking of directory access for "/foo", the parent directory is "/", not "" (from FreeBSD) - remove trailing whitespace on lines - add any missing NetBSD tags - cleanups to man page, includinging sorting options description
feature additions: - variable sized hash marks (from [bin/683], but done in the hash command as an optional arg) - more user-friendly transfer time printing (from FreeBSD, with mods) - '-p' command line option to jump into PASV mode (closes [bin/2857], but with an option rather than checking argv[0]) - SIGINFO support for printing xfer stats when sending/receiving requests - '-P port' for changing the port to connect to (from thorpej@netbsd.org) - '-a': bypass normal login, and try anonymous login (from OpenBSD via thorpej) - autofetch files via url (ftp://...) or "classic" (host:/file) (from OpenBSD via thorpej) - 'ftp' synonymous with 'open' (from FreeBSD)
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.11 |
|
07-May-1996 |
pk |
Fence off NULL args in getcmd() (fixes/works around PR#824).
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.10 |
|
15-Sep-1995 |
pk |
Avoid falling off the end of a fixed-length array (from John F. Woods; PR#1431).
|
#
1.9 |
|
14-Sep-1995 |
cgd |
needs string.h for protos.
|
#
1.8 |
|
08-Sep-1995 |
tls |
Sync with 4.4lite2
|
#
1.7 |
|
24-Dec-1994 |
cgd |
needs string.h
|
#
1.6 |
|
31-Aug-1994 |
mycroft |
Fix option parsing bug reported by Uwe Arndt, and another related bogon.
|
#
1.5 |
|
29-Aug-1994 |
mycroft |
branches: 1.5.2; Add RCS ids.
|
#
1.4 |
|
25-Aug-1994 |
cgd |
passive mode support, from David Carrel <carrel@cisco.com>, and cleaned up for the new ftp sources by me.
|
#
1.3 |
|
25-Aug-1994 |
cgd |
clean up import, no local changes.
|
Revision tags: netbsd-1-0-base
|
#
1.2 |
|
01-Aug-1993 |
mycroft |
Add RCS identifiers.
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; 1.1.2; Initial revision
|
#
1.126 |
|
04-Feb-2019 |
mrg |
- add justquit() that always exits. use it to avoid unreachable code.
|
Revision tags: pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.125 |
|
04-Mar-2018 |
dholland |
Don't use the local username as the default anonftp password.
once upon a time doing this was part of the social glue that held the community together, but that was a long time ago, and now it's just an information leak.
proposed on tech-userlevel in 2008, then apparently forgotten :-|
|
#
1.124 |
|
25-Nov-2017 |
christos |
Make outfile always allocated, free it to set it to NULL, and don't move it around.
|
Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
|
#
1.123 |
|
23-Apr-2015 |
lukem |
Add -x xferbufsize to set xferbuf size.
Implement -x xferbufsize set the socket send and receive buffer size, as per 'xferbuf' in interactive mode.
Patch from Nicholas Mills (via private mail), with minor adjustment by me.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 tls-maxphys-base
|
#
1.122 |
|
22-Dec-2012 |
christos |
branches: 1.122.8; document https support, mentioning certificates are not validated, and obey https_proxy.
|
#
1.121 |
|
21-Dec-2012 |
christos |
PR/47276: Add https support
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base
|
#
1.120 |
|
10-Dec-2011 |
lukem |
branches: 1.120.2; 1.120.6; Move determination of socket buffer sizes from startup to the first time a socket is used, as the previous logic assumed AF_INET sockets were available (which they may not be in an IPv6-only system). Per discussion with Maxim Konovalov and the FreeBSD problem 162661.
|
Revision tags: yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.119 |
|
16-Sep-2011 |
joerg |
branches: 1.119.2; Use __dead
|
#
1.118 |
|
14-Aug-2011 |
christos |
fix gcc-4.5 warnings
|
Revision tags: cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 matt-premerge-20091211
|
#
1.117 |
|
13-Jul-2009 |
roy |
Rename internal getline() function to get_line() so it does conflict with the soon to be added getline(3) libc function.
|
Revision tags: jym-xensuspend-nbase jym-xensuspend-base
|
#
1.116 |
|
24-Apr-2009 |
lukem |
Revert incorrect change made as part of the WARNS=4. Fixes "ftp host [port]" on the CLI. Noted by Geoff Wing.
|
#
1.115 |
|
12-Apr-2009 |
lukem |
Fix numerous WARNS=4 issues (-Wcast-qual -Wsign-compare).
|
#
1.114 |
|
12-Apr-2009 |
lukem |
fix -Wshadow issues
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3
|
#
1.113 |
|
09-Sep-2008 |
gmcgarry |
branches: 1.113.6; getline() returns int. Don't cast to unsigned value and compare with -1.
|
Revision tags: wrstuden-revivesa-base-2
|
#
1.112 |
|
13-Aug-2008 |
lukem |
Use AF_INET instead of AF_UNSPEC as the default family if !defined(INET6). Avoids problem reported by Matthias Scheler <tron@NetBSD.org>.
|
#
1.111 |
|
21-Jul-2008 |
lukem |
Add TNF to __COPYRIGHT
|
#
1.110 |
|
21-Jul-2008 |
lukem |
Remove the \n and tabs from the __COPYRIGHT() strings. Tweak to use a consistent format.
|
Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 wrstuden-revivesa-base
|
#
1.109 |
|
10-May-2008 |
skd |
Add epsv6 and epsv to disable extended passive mode for ipv6 or both ipv4 and ipv6 respectively. This hack is due to our friends a Juniper Networks who break epsv in ipv6. Should be fixed in ScreenOS 6.2.X.
|
#
1.108 |
|
05-May-2008 |
lukem |
branches: 1.108.2; Only attempt to el_parse() a command unknown by the default parser if editing is enabled. Fixes PR bin/38589
|
#
1.107 |
|
28-Apr-2008 |
martin |
Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
|
#
1.106 |
|
02-Dec-2007 |
wiz |
branches: 1.106.6; Sort options.
|
Revision tags: matt-armv6-prevmlocking matt-mips64-base
|
#
1.105 |
|
22-May-2007 |
lukem |
branches: 1.105.4; * main: call tzset() to ensure TZ is setup for other <time.h> functions. * remotemodtime(): use strptime() to parse the reply. * fetch_url(): ensure struct tm is zeroed before calling strptime().
|
#
1.104 |
|
17-Apr-2007 |
lukem |
* Implement -s srcaddr; uses srcaddr as the local IP address for all connections. Based on code in the version of ftp that FreeBSD had before they replaced it with lukemftp. * Move error message handling into ftp_connect() rather than in the caller, so that more specific error reporting can occur. * Improve consistency of various warning and error messages.
|
#
1.103 |
|
12-Apr-2007 |
lukem |
Fix using /usr/bin/ftp as a slave process on the end of a pipe by calling fflush(stdout) before each command. Taken from FreeBSD's pre-lukemftp version of ftp.
|
#
1.102 |
|
13-Dec-2006 |
christos |
gcc4 does not care about &foo; use volatile instead. From Anon Ymous
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base chap-midi-nbase chap-midi-base
|
#
1.101 |
|
31-Jan-2006 |
christos |
rename debug to ftp_debug. grr libssh.
|
#
1.100 |
|
31-Jan-2006 |
christos |
Rename xfoo() to ftp_foo() to avoid collisions with libssh. Don't ask.
|
#
1.99 |
|
29-Jun-2005 |
christos |
Add NO_USAGE and NO_DEBUG so that we can fit in the floppies again.
|
#
1.98 |
|
10-Jun-2005 |
jmc |
Need to #ifdef around declaration of ch with NO_EDITCOMPLETE so this compiles on rescue/miniroot's
|
#
1.97 |
|
10-Jun-2005 |
lukem |
Implement: int getline(FILE *stream, char *buf, size_t buflen, const char **errormsg) Read a line from the FILE stream into buf/buflen using fgets(), so up to buflen-1 chars will be read and the result will be NUL terminated. If the line has a trailing newline it will be removed. If the line is too long, excess characters will be read until newline/EOF/error. Various -ve return values indicate different errors, and errormsg will be changed to an error description if it's not NULL.
Convert to use getline() instead of fgets() whenever reading user input to ensure that an overly long input line doesn't leave excess characters for the next input operation to accidentally use as input.
Zero out the password & account after we've finished with it.
Consistently use getpass(3) (i.e, character echo suppressed) when reading the account data. For some reason, historically the "login" code suppressed echo for Account: yet the "user" command did not!
Display the hostname in the "getaddrinfo failed" warning.
Appease some -Wcast-qual warnings. Fixing all of these requires significant code refactoring. (mmm, legacy code).
|
#
1.96 |
|
20-May-2005 |
jdc |
Make this compile on sparc64 (size_t != int).
|
#
1.95 |
|
19-May-2005 |
lukem |
Use size_t instead of int where appropriate.
|
#
1.94 |
|
13-May-2005 |
lukem |
* Correct the "optlen" argument passed to getsockopt(3) and setsockopt(3) in various places. Fixes a problem noted by Allen Briggs. * Improve warning printed when connect(2) for the data channel fails.
|
#
1.93 |
|
11-May-2005 |
lukem |
Use socklen_t instead of int as the 5th argument to getsockopt(). Improve invocation of setsockopt() and associated failure messages.
|
#
1.92 |
|
10-May-2005 |
lukem |
Prevent an overly-long input line causing a core dump when editing is enabled. Issue noted by Ryoji Kanai in FreeBSD Problem Report # 77158.
|
#
1.91 |
|
11-Apr-2005 |
lukem |
gratuitous whitespace cleanup (before someone else jumps the gun...)
|
Revision tags: netbsd-3-base
|
#
1.90 |
|
21-Jul-2004 |
lukem |
branches: 1.90.2; Slightly rework SIGINT handling; if we're exiting the auto-fetch stuff and sigint_raised is non-zero, reset the handler for SIGINT to SIG_DFL and raise(SIGINT) so that the appropriate wait(3) status is setup. Based on solution proposed by Ognyan Kulev. This should really fix PR [pkg/26351].
|
#
1.89 |
|
20-Jul-2004 |
lukem |
If an ftp auto-fetch transfer is interrupted by SIGINT (usually ^C), exit with 130 instead of 1 (or rarely, 0). This allows an ftp auto-fetch in a shell loop to correctly terminate the loop. Should fix PR [pkg/26351], and possibly others.
|
#
1.88 |
|
09-Jul-2004 |
wiz |
Add -q to usage. From Kouichirou Hiratsuka in PR 26199.
|
#
1.87 |
|
14-May-2004 |
christos |
PR/25566: Anders Magnusson: ftp(1) do not like large TCP windows. Limit it to 8M.
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.86 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22365, verified by myself.
|
#
1.85 |
|
26-Jul-2003 |
salo |
netbsd.org->NetBSD.org
|
#
1.84 |
|
14-May-2003 |
wiz |
Uppercase URL.
|
Revision tags: fvdl_fs64_base
|
#
1.83 |
|
27-Aug-2002 |
christos |
Add a -q <quit-time> flag to abort a transfer if it has stalled for <quit-time> seconds. Ok'd by luke.
|
#
1.82 |
|
05-Jun-2002 |
lukem |
- use setprogname() - only support -6 if INET6 is defined
|
#
1.81 |
|
05-Jun-2002 |
lukem |
- when showing the final progress bar, replace "00:00 ETA" with the elapsed time. (suggested by simonb) - actually display transfer stats after a URL fetch. (bug introduced a *long* time ago) - update copyright & version
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
|
#
1.80 |
|
18-Mar-2002 |
thorpej |
Deal with const'ification if el_parse().
|
#
1.79 |
|
26-Dec-2001 |
lukem |
update copyrights
|
#
1.78 |
|
23-Dec-2001 |
lukem |
Add -4 to force IPv4 and -6 to force IPv6 address usage. From Hajimu UMEMOTO, via Mike Heffner of FreeBSD.
(FreeBSD has imported NetBSD's ftp as their ftp client; Mike is sending back some of their local changes).
|
#
1.77 |
|
19-Feb-2001 |
cgd |
convert to use getprogname()
|
#
1.76 |
|
09-Jan-2001 |
jdolecek |
call setlocale() on startup
|
#
1.75 |
|
15-Dec-2000 |
lukem |
invoke cmdtab.c_handler()s with argv[0] == c_name instead of the supplied name. that way the full (unambiguous) name is displayed in error messages and usage strings.
|
#
1.74 |
|
15-Nov-2000 |
lukem |
- implement "mreget"; as per "mget" but uses "reget" instead of "get" - add -N netrc and $NETRC, as methods to select an alternative .netrc file - cache local user name and home directory for further use - in mget(), use docase() instead of a local version to do the case conversion.
|
#
1.73 |
|
18-Jul-2000 |
lukem |
add support for FEAT and OPTS commands with `features' and `opts'. (from RFC 2389).
add support for MLST & MLSD (machine parseble listings) with 'mlst', 'mlsd' and 'pmlsd' (mlsd |$PAGER) commands. (from draft-ietf-ftpext-mlst-11)
rename remotesyst() to getremoteinfo(), and modify to parse the result from FEAT (if supported), and take into account the support for the various extensions such as MDTM, SIZE, REST (STREAM), MLSD, and FEAT/OPTS. put each feature into one of the following categories: - known to work (explicit FEAT) - unknown but assume works until explicit failure, when it's then tagged as `known not to work'. - known not to work (FEAT succeeded but didn't return anything, or was unknown and then explicit failure) assign results into features[] matrix.
add support to getreply() so that an optional callback will be called for each line received from the server except for the first and last. this is used in FEAT (and MLST) parsing.
modify various commands to check if REST (STREAM), MDTM and SIZE are explicitly or implicitly supported before using.
fix `syst' when verbose is off.
minor knf (indent goto labels by one space, etc).
simply various command usage handlers by assuming that argv != NULL except for quit() and disconnect().
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base
|
#
1.72 |
|
11-Jun-2000 |
lukem |
portability fixes for lukemftp: * initconn(): use in_addr_t instead of u_int32_t when manipulating IPv6 addresses (and assume anything with ipv6 has in_addr_t; if not, i'll add an autoconf test for it) * ai_unmapped(): not all systems have sin_len; so only set #ifdef BSD4_4 * fix some lint
|
#
1.71 |
|
31-May-2000 |
lukem |
Add support for 'ftp -u url file ...', to upload a list of files to given url. Mostly based on [bin/10019] by Scott Aaron Bamford <sab@ansic.net>
|
Revision tags: minoura-xpg4dl-base
|
#
1.70 |
|
01-May-2000 |
lukem |
branches: 1.70.2; convert to ANSI KNF
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.69 |
|
28-Nov-1999 |
lukem |
* implement xsl_init() and xsl_add(); error checking forms of sl_{init,add}() * fix bug where the second press of <TAB> on an empty word (i.e, list all options) may have resulted in an strncmp() against NULL. (detected by _DIAGASSERT())
|
#
1.68 |
|
26-Nov-1999 |
lukem |
* complete_remote(): use remglob("", ...) instead of remglob(".", ...), for listings of the current working directory; some ftp servers don't like `NLST .'. [noted by Giles Lean <giles@nemeton.com.au>] * recvrequest(): treat remote=="" as remote==NULL when calling command(). (to support the above change) * support `[user@]' in `[user@]host' and `[user@]host[:][path]'. [based on idea (and initial code) from David Maxwell <david@fundy.ca>] * `idle' may be invoked without any args * reformat some comments * reformat usage string in program and man page * call updateremotepwd() after successful login, not after successful connect * always call setsockopt(, IPPROTO_IP, IP_TOS, ) (et al); using #if defined(IPPROTO_IP) doesn't work on certain foreign systems where enums instead of #defines are used... [noted by Matthias Pfaller <leo@dachau.marco.de>]
|
#
1.67 |
|
12-Nov-1999 |
lukem |
- implement `set rprompt'; right side version of `set prompt'. depends on EL_RPROMPT support i added to editline(3). - allow $FTPPROMPT and $FTPRPROMPT to override defaults for the relevant prompts - move `%' formatting code from prompt() to expandbuf(). - implement `%.' and `%c', similar to the same % codes in tcsh(1) (functionality I added to tcsh nearly 6 years ago), except that `%.' always does `...trailing' and `%c' always does `/<x>trailing'. - unknown `%foo' codes get printed as `%foo'
|
#
1.66 |
|
11-Nov-1999 |
lukem |
- implement updateremotepwd(); update the global variable `remotepwd' to contain the remote working directory. - add `set prompt', a user configurable prompt. (defaults to `ftp> '). the following escape characters a la tcsh(1) are supported: %/, %m, %M, and %n. - add global var `username'; used by prompt code - fix a couple of minor memory leaks - bump version
|
Revision tags: comdex-fall-1999-base
|
#
1.65 |
|
24-Oct-1999 |
lukem |
new features: - add `usage'; displays the usage of a command. implemented by calling the c_handler() with argc = 0, argv = "funcname". - add `passive auto'; does the same as $FTPMODE=auto. - add `set [option value]'; display all options, or set an option to a value. - add `unset option'; unset an option. - add getoptionvalue() to retrieve an option's value, and replace a few global variables with calls to this. - implement cleanuppeer(), which resets various bits of state back to `disconnected'. call in disconnect() and lostpeer(). - support completing on `options'. - improve recovery after a SIGINT may have closed the connection. XXX: there's still a couple to fix
other stuff: - various consistency fixes in the man page. - ensure that the command usage strings in the code and man page match reality. - mput/mget: check that the connection still exists before each xfer. - minor cosmetic changes in confirm(). - set code correctly in sizecmd() and modtime() - don't need \n in err() strings. - change lostpeer to take an argument (rather than casting (sig_t)lostpeer in signal handlers) - knf and whitespace police.
|
#
1.64 |
|
13-Oct-1999 |
lukem |
* fix up confirm() (broke `a' and `p' in last commit) * simplify main loop (don't need `top' variable any more) * use a struct sockaddr_in6.sin6_addr for the result from inet_pton(), rather than u_char buf[16] * add a few more comments
|
#
1.63 |
|
12-Oct-1999 |
lukem |
a few user interface and cosmetic tweaks: * confirm(): move from util.c to cmds.c. display mnemonic string in its prompt. add support for `q' (terminate current xfer), `?' (show help list) * in various signal handlers, output a linefeed only if fromatty. * if fgets(stdin) returned NULL (i.e, EOF), clearerr(stdin) because you don't want future fgets to fail. this is not done for the fgets() in the main command loop, since ftp will quit at that point. * unless ftp is invoked with -a, don't retain the anonftp setting between hosts (`ftp somehost:' sets anonftp, but you don't want that to `stick' if you close that connection and open a new one).
|
#
1.62 |
|
11-Oct-1999 |
lukem |
if editing is enabled when intr() is called, print a newline. (cosmetic fix)
|
#
1.61 |
|
09-Oct-1999 |
lukem |
* use sigsetjmp()/siglongjump() instead of setjmp()/longjmp(); the latter don't save the signal mask on some foreign systems. * ensure signal handlers don't use stdio and do reset errno if they don't exit with siglongjmp() * use a common SIGINT handler for {send,recv}request()
|
#
1.60 |
|
05-Oct-1999 |
lukem |
* factor out SIGINFO setting into a handler that is always active (but only prints out info if bytes > 0). only set the handler if SIGINFO is defined * hijack SIGQUIT to be the same as SIGINFO (foreign ports have this, and it's annoying to have SIGQUIT dump core on netbsd when it prints info on other systems) * in {recv,send}request(), factor a lot of duplicated code out into a `cleanup' section at the end * rework shell() a bit
|
#
1.59 |
|
05-Oct-1999 |
lukem |
add TNFi copyright to all files i've done more than a minor amount of work to...
|
#
1.58 |
|
01-Oct-1999 |
lukem |
If EPSV or EPRT fails, disable epsv4 for the rest of the current connection. the disabled state can be overridden by toggling epsv4.
(I got sick of the errors about EPSV not being supported on almost every server I connect to. This way we retain support for epsv4, but it's not so whiny after the first failure...)
|
#
1.57 |
|
01-Oct-1999 |
lukem |
prefix the global variables in ftp_var.h with GLOBAL, which defaults to "extern" if it's not set. define GLOBAL to (empty) in main.c. this effectively moves all the globals into main.c whilst retaining namespace access to them in other source files. (global vars in header files confuse foreign linkers)
|
#
1.56 |
|
01-Oct-1999 |
lukem |
* don't bother with "pathnames.h"; it contained just a single #define. instead, include <paths.h> in the files that need it * slightly reorg ftp_var.h
|
#
1.55 |
|
30-Sep-1999 |
lukem |
* In the !NI_NUMERICHOST case (i.e, getaddrinfo() challenged systems), portnum should be in host order. found/fixed by Matthias Pfaller <leo@dachau.marco.de> * parse_url(): improve checking of portnum, and add an extra argument to pass back the parsed portnum to the caller (reduces a bit of code duplication) * Move the KAME/WIDE copyrights after the BSD/TNFi ones. Since there was significantly less code added under the former, it's only fair on the latter.
|
#
1.54 |
|
30-Sep-1999 |
lukem |
* fix initialisation of home[] * fetch_url(): if path would be NULL, return strdup("")
|
#
1.53 |
|
28-Sep-1999 |
lukem |
* add new commands: lpage page local files pdir as dir, but through your $PAGER pls as ls, but through your $PAGER * implement docase() (a la dotrans() et al) and use appropriately, rototilling some duplicated code * globulize(): modify to return a pointer to the strdup()ed result in all cases, and hack the code that calls it to take this into account * replace strcpy() and strncpy() with strlcpy() * put(), getit(): use some aptly named local vars instead of argv[...] * delint
|
#
1.52 |
|
27-Sep-1999 |
lukem |
* idle(): rename to idlecmd(). certain linux distributions have an incompatible prototype for idle() in <unistd.h> (which i thought was against namespace and sensibility guidelines, but...) * consistently use xsignal() instead of signal(). we get known behaviour in all cases (SA_RESTART), which is good for some borken foreign systems. * remove signal.h from most files; it's unnecessary now * fetch_url(): use `long chunksize' instead of ssize_t; it's more portable, and we're setting chunksize with strtol() anyway * xsignal(): only use SA_RESTART if it exists. SunOS 4.x doesn't have it but has the inverse (SA_INTERRUPT). the original function i was inspired from had this support (lib/signal.c, W. Richard Stevens' `UNP 2nd ed Vol 1'). * remove <termios.h> from util.c; it should be unnecessary now
|
#
1.51 |
|
24-Sep-1999 |
lukem |
if getsockopt() returns a buffer size of <= 0, set them to 8192. this works around a problem in certain OS from Sun with a version < 5.6...
|
#
1.50 |
|
22-Sep-1999 |
lukem |
branches: 1.50.2; * add support for `xferbuf', which sets both `sndbuf' and `rcvbuf' * document the above three commands * rototill the way the sndbuf and rcvbuf work. remove resetsockbufsize() * use the appropriate socket buffer size as the size of the buffer that the read()/write() loops use. speeds up things in some cases.
|
#
1.49 |
|
21-Sep-1999 |
lukem |
only default to epsv4 if INET6 is defined
|
#
1.48 |
|
12-Jul-1999 |
lukem |
* change fetch_ftp() to be fully rfc 1738 compliant; if the URL contains the an empty directory (e.g, between `some' and `path' in `ftp://host/some//path'), then execute `CWD ' (without a path). This command will probably fail on rfc 959 compliant servers, so issue a warning in this case and bail. [noted by cgd]. (i wonder if the people who wrote rfc 1738 actually realised that this requirement appears to contravene the spec for `cwd' in rfc 959 ?) * replace isurl() with isipv6addr(), and use appropriately. fixes auto-login with `classic ftp URLs' (e.g, `ftp somehost:') * cleanup and rework some of the ipv6 stuff in parse_url() * prevent potential coredump in fetch_ftp() when parsing `;type=X' * KNF a few lines * fix a couple of comments * cleanup the man page a bit
|
#
1.47 |
|
11-Jul-1999 |
itojun |
add epsv4 command, which enable/disable the use of EPSV/EPRT.
this is mainly for (hypothetical) ftp server which disconnect clients that use EPSV/EPRT. I've never seen any ftp server like this, but epsv4 command may be of use when such an ftp server is found.
|
#
1.46 |
|
10-Jul-1999 |
christos |
isurl does not return a pointer!
|
#
1.45 |
|
02-Jul-1999 |
itojun |
add dual-stack (IPv4/v6) support. hope I broke no other part...
|
#
1.44 |
|
29-Jun-1999 |
lukem |
[fear this; more ftp hacking from lukem :-]
features:
|
#
1.43 |
|
20-Jun-1999 |
cgd |
split the "SMALL" #ifdefs into ones for NO_ABOUT, NO_EDITCOMPLETE, and NO_PROGRESS. -DSMALL still implies all of those. progress meter support isn't necessary for the smallest possible ftp client, but it adds very little space and makes users' lives much better. Therefore, it should be enabled for installation media if at all possible.
|
#
1.42 |
|
02-Jun-1999 |
lukem |
* 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
|
#
1.41 |
|
17-May-1999 |
lukem |
only enable editing by default if stdin is a tty. noticed by Onno van der Linden <onno@simplex.nl>
|
Revision tags: netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.40 |
|
31-Mar-1999 |
lukem |
branches: 1.40.2; when using editline, work on the correct buffer. fixes problem where blank input lines were being added to the history buffer.
|
#
1.39 |
|
22-Mar-1999 |
lukem |
* 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
|
#
1.38 |
|
08-Mar-1999 |
lukem |
* 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.
|
#
1.37 |
|
24-Jan-1999 |
lukem |
* -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)
|
#
1.36 |
|
23-Jan-1999 |
lukem |
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)
|
#
1.35 |
|
27-Dec-1998 |
lukem |
be saner about the method to determine which $proxy to use
|
#
1.34 |
|
28-Sep-1998 |
lukem |
* 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.
|
#
1.33 |
|
08-Aug-1998 |
lukem |
need <signal.h> for signal....
|
#
1.32 |
|
03-Aug-1998 |
lukem |
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'
|
#
1.31 |
|
04-Jun-1998 |
lukem |
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.
|
#
1.30 |
|
21-Jan-1998 |
lukem |
enable el_parse for unknown commands (so editrc(5) commands can be used directly
|
#
1.29 |
|
18-Jan-1998 |
lukem |
define MAX_IN_PORT_T and use instead of USHRT_MAX. suggested by cgd@netbsd.org
|
#
1.28 |
|
18-Jan-1998 |
lukem |
* 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.
|
#
1.27 |
|
12-Dec-1997 |
gwr |
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?)
|
Revision tags: netbsd-1-3-BETA netbsd-1-3-base
|
#
1.26 |
|
14-Oct-1997 |
christos |
branches: 1.26.2; PR/4257: Jaromir Dolecek: Compensate for the libedit changes.
|
#
1.25 |
|
23-Aug-1997 |
lukem |
support $TMPDIR
|
#
1.24 |
|
18-Aug-1997 |
lukem |
bugs fixed: * don't interpret '-' or '|' when a local filename is determined from the remote name (i.e, in mget, and in get with only one argument). This is implemented using an extra argument to recvrequest(). Fixes a major security hole. * clean up memory leak when using globulize() * clean up a couple of comments * fix wording in TNF copyright
features added: * support for TIS fwtk gate-ftp servers: * read defaults from $FTPSERVER && $FTPSERVERPORT * start in gate-ftp mode if invoked as 'gate-ftp' * toggle or set with 'gate [host [port]]'
|
#
1.23 |
|
20-Jul-1997 |
lukem |
* use RCSID() && COPYRIGHT() macros * cleanup for WARNS=1 (including some ugly '(void)&var' bits wrapped in #ifdef __GNUC__ to shut up gcc warnings WRT setjmp/longjmp) * use strtol() instead of atoi(), and more extensively check result of conversion * use u_int16_t instead of short or int for TCP port addresses
|
#
1.22 |
|
10-Jun-1997 |
lukem |
Don't use editing or progress bar if $TERM isn't set or is "dumb". Fixes emacs ange-ftp. Suggested by Todd Miller <Todd.Miller@courtesan.com>, tested by matt green <mrg@eterna.com.au>
|
#
1.21 |
|
05-Apr-1997 |
lukem |
* support $ftp_proxy for ftp:// transfers [bin/3245] * add "more" & "less" as synonyms for "page" * move editline setup code into controlediting(), and call appropriately. only setup setup terminal if going into interactive mode. inspired by Todd Miller <todd.miller@courtesan.com>
|
#
1.20 |
|
16-Mar-1997 |
lukem |
Fixes from <Todd.Miller@cs.colorado.edu>, with some cleanup and reworks by me: * only echo "Passive mode" in verbose mode; scripts that use ftp may get unwanted output otherwise * disable progress bar and modification time preservation when retreiving to a non-regular files. fixes progress bar getting in way of "get file /dev/tty" * setup el_init() et al if editing is set, not if fromatty. TODO: migrate this to a function, and call if editing is turned on later in the session. also implement edit_cleanup if editing is turned off * call el_set() after setting SIGWINCH handler. This fixes the problem when suspending in a non-cbreak shell (e.g, csh) would trash your tty mode. * reset interactive mode correctly in auto_fetch() mget mode
|
#
1.19 |
|
14-Mar-1997 |
christos |
SMALLFTP->SMALL; remove SMALL from Makefile
|
#
1.18 |
|
13-Mar-1997 |
lukem |
Features: * support remglobbing of auto_fetch arguments * new flag - '-e'; disable editing * "page file" == "get file |${PAGER-less}"
Bugfixes/cleanup: * consistently use a trailing '.' on messages * code cleanup, including buffer overrun fixes, use puts and putchar in places, etc (inspired by OpenBSD mods) * disable progress bar when local-file is a pipe or '-' * skip \r in http headers * fix remote ftpd slash bug more elegantly (so it works with ////) * abort_remote(): check if cout==NULL before using it. should fix [bin/3273] * fixed up cosmetic problems when complete_remote() generated errors from the remote server (such as "no files found", "login with user and pass", ...) done by adding extra argument to remglob(), which is a pointer to an error buffer to put messages in rather than printing to stdout.
|
#
1.17 |
|
01-Feb-1997 |
lukem |
[Yet Another Huge Ftp Commit - hopefully the last for a while, barring any more little things people want added ...]
New features: * progressmeter is now asynchronous, so "stalled" transfers can be detected. "- stalled -" is displayed instead of the ETA in this case. When the xfer resumes, the time that the xfer was stalled for is factored out of the ETA. It is debatable whether this is better than not factoring it out, but I like it this way (I.e, if it stalls for 8 seconds and the ETA was 30 seconds, when it resumes the ETA will still be 30 seconds). * verbosity can be disabled on the command line (-V), so that in auto-fetch mode the only lines displayed will be a description of the file, and the progress bar (if possible) * if the screen is resized (and detected via the SIGWINCH signal), the progress bar will rescale automatically.
Bugs fixed: * progress bar will not use the last character on the line, as this can cause problems on some terminals * screen dimensions (via ioctl(TIOCWINSZ)) should use stdout not stdin * progressmeter() used some vars before initialising them * ^D will quit now. [fixes bin/3162] * use hstrerror() to generate error message for host name lookup failure. * use getcwd instead of getwd (it should have been OK, but why tempt fate?) * auto-fetch transfers will always return a positive exit value upon failure or interruption, relative to the file's position in argv[]. * remote completion of / will work, without putting a leading "///". This is actually a bug in ftpd(1), where "NLST /" prefixes all names with "//", but fixing every ftpd(1) is not an option...
|
#
1.16 |
|
19-Jan-1997 |
lukem |
New features: * Command line editing via editline(3) library. * Context sensitive command and file completion, including remote files.
Enhancements to auto-fetch feature: * Support for http:// URLs using the http protocol, including proxy HTTP support via $htty_proxy if it's defined. * The connection is kept open between successive files on the same host. (obviously, this does not count for http requests.) * Return value of ftp is 0 on no error, or the offset in argv[] of the file which failed (i.e., argv[x] failed, ftp returns x). * If the path in an ftp URL or classic format line has a trailing '/', cd to the path and enter interactive mode. Fixes [bin/3011], albiet requiring the user to help ftp in determining the operation.
Other changes: * '-P port' works for normal ftp, and is the default for all classic style auto-fetch transfers and for ftp URLs that don't specify the port. (previously it would just work for the first xfer.) * Some code moved into separated files along logical divisions. * Editing and completion can be compiled out with -DSMALLFTP.
|
#
1.15 |
|
29-Dec-1996 |
lukem |
* preserve modtime if size is 0 [bin/3040, Enami Tsugutomo] * in autofetch mode, don't retry a file if the connection failed - skip it and move to the next file. [bin/3051, Matt Green] * only print error messages from SIZE or MDTM if the user used 'size' or 'modt' (respectively). prevents extraneous warnings during normal transfers when connected to a site which doesn't support these (behaviour prior to last commit), but still allows error feedback to specific user requests for this info (which the last commit broke). * 'account': only accept one optional argument * if invoked as pftp, default to passive mode on (from FreeBSD) * remove leading '0 ' in progress bar - looked ugly * use warn instead of perror * use strncpy when src isn't known to have safe length * remglob(): use mkstemp() to prevent symlink games, and don't override _PATH_TMP, use it as the prefix to the temp file
|
#
1.14 |
|
06-Dec-1996 |
lukem |
functionality mods: * implement 'progress bar/meter' (inspired by ncftp). use 'progress' to toggle on. it will display current file size to 5 digits, automatically determining suffix (up to 16384 P (petabytes) == 2^64). * 'ls' now uses NLST (unadorned listing), a la older ftp clients. 'dir' still does LIST (long listing). idea from John Nemeth <jnemeth@cue.bc.ca>
bug fixes: * return first line of reply in reply_string[] from getreply(), instead of last line. This fixes [bin/741] (parsing of SYST), and also means that SIZE and MDTM messages will be parsed correctly if they're longer than 1 line. * parse URL-style auto-ftps that have no filename correctly (e.g, ftp://host, ftp://host/, ftp://host/dir/). pointed out by Jaromir Dolecek <dolecek@saruman.ics.muni.cz> * pass the correct size array in 2nd arg of utimes() when setting the modification time
|
#
1.13 |
|
28-Nov-1996 |
lukem |
More features, some of which were inspired by changes that friedman@gnu.ai.mit.edu (Noah Friedman) made to his modified ftp: - implement "lpwd" - local pwd - implement "preserve" - toggle preserving of file modification times on retrieved files - allow for explicit "on" or "off" arg to toggle commands - "exit" synonym for "quit", "msend" synonym for "mput" - in confirmation mode, allow 'a' (yes to rest of current command), and 'p' (turn off prompt mode, as if 'prompt off' was done, effective immediately) - "modtime" returns time formatted as localtime, not GMT
Bug fixes: - check for extraneous args on commands - cleanup const usage, line formatting - create 0 length temporary file in remglob() to prevent symlink games (from OpenBSD) - check length of filename of ~/.netrc (from OpenBSD)
|
#
1.12 |
|
25-Nov-1996 |
lukem |
cleanups/bugfixes: - don't echo 'ACCT' parameter when debugging (a la 'PASS') - Fix checking of directory access for "/foo", the parent directory is "/", not "" (from FreeBSD) - remove trailing whitespace on lines - add any missing NetBSD tags - cleanups to man page, includinging sorting options description
feature additions: - variable sized hash marks (from [bin/683], but done in the hash command as an optional arg) - more user-friendly transfer time printing (from FreeBSD, with mods) - '-p' command line option to jump into PASV mode (closes [bin/2857], but with an option rather than checking argv[0]) - SIGINFO support for printing xfer stats when sending/receiving requests - '-P port' for changing the port to connect to (from thorpej@netbsd.org) - '-a': bypass normal login, and try anonymous login (from OpenBSD via thorpej) - autofetch files via url (ftp://...) or "classic" (host:/file) (from OpenBSD via thorpej) - 'ftp' synonymous with 'open' (from FreeBSD)
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.11 |
|
07-May-1996 |
pk |
Fence off NULL args in getcmd() (fixes/works around PR#824).
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.10 |
|
15-Sep-1995 |
pk |
Avoid falling off the end of a fixed-length array (from John F. Woods; PR#1431).
|
#
1.9 |
|
14-Sep-1995 |
cgd |
needs string.h for protos.
|
#
1.8 |
|
08-Sep-1995 |
tls |
Sync with 4.4lite2
|
#
1.7 |
|
24-Dec-1994 |
cgd |
needs string.h
|
#
1.6 |
|
31-Aug-1994 |
mycroft |
Fix option parsing bug reported by Uwe Arndt, and another related bogon.
|
#
1.5 |
|
29-Aug-1994 |
mycroft |
branches: 1.5.2; Add RCS ids.
|
#
1.4 |
|
25-Aug-1994 |
cgd |
passive mode support, from David Carrel <carrel@cisco.com>, and cleaned up for the new ftp sources by me.
|
#
1.3 |
|
25-Aug-1994 |
cgd |
clean up import, no local changes.
|
Revision tags: netbsd-1-0-base
|
#
1.2 |
|
01-Aug-1993 |
mycroft |
Add RCS identifiers.
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; 1.1.2; Initial revision
|
#
1.124 |
|
25-Nov-2017 |
christos |
Make outfile always allocated, free it to set it to NULL, and don't move it around.
|
Revision tags: matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
|
#
1.123 |
|
23-Apr-2015 |
lukem |
Add -x xferbufsize to set xferbuf size.
Implement -x xferbufsize set the socket send and receive buffer size, as per 'xferbuf' in interactive mode.
Patch from Nicholas Mills (via private mail), with minor adjustment by me.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 tls-maxphys-base
|
#
1.122 |
|
22-Dec-2012 |
christos |
branches: 1.122.8; document https support, mentioning certificates are not validated, and obey https_proxy.
|
#
1.121 |
|
21-Dec-2012 |
christos |
PR/47276: Add https support
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base
|
#
1.120 |
|
10-Dec-2011 |
lukem |
branches: 1.120.2; 1.120.6; Move determination of socket buffer sizes from startup to the first time a socket is used, as the previous logic assumed AF_INET sockets were available (which they may not be in an IPv6-only system). Per discussion with Maxim Konovalov and the FreeBSD problem 162661.
|
Revision tags: yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.119 |
|
16-Sep-2011 |
joerg |
branches: 1.119.2; Use __dead
|
#
1.118 |
|
14-Aug-2011 |
christos |
fix gcc-4.5 warnings
|
Revision tags: cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 matt-premerge-20091211
|
#
1.117 |
|
13-Jul-2009 |
roy |
Rename internal getline() function to get_line() so it does conflict with the soon to be added getline(3) libc function.
|
Revision tags: jym-xensuspend-nbase jym-xensuspend-base
|
#
1.116 |
|
24-Apr-2009 |
lukem |
Revert incorrect change made as part of the WARNS=4. Fixes "ftp host [port]" on the CLI. Noted by Geoff Wing.
|
#
1.115 |
|
12-Apr-2009 |
lukem |
Fix numerous WARNS=4 issues (-Wcast-qual -Wsign-compare).
|
#
1.114 |
|
12-Apr-2009 |
lukem |
fix -Wshadow issues
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3
|
#
1.113 |
|
09-Sep-2008 |
gmcgarry |
branches: 1.113.6; getline() returns int. Don't cast to unsigned value and compare with -1.
|
Revision tags: wrstuden-revivesa-base-2
|
#
1.112 |
|
13-Aug-2008 |
lukem |
Use AF_INET instead of AF_UNSPEC as the default family if !defined(INET6). Avoids problem reported by Matthias Scheler <tron@NetBSD.org>.
|
#
1.111 |
|
21-Jul-2008 |
lukem |
Add TNF to __COPYRIGHT
|
#
1.110 |
|
21-Jul-2008 |
lukem |
Remove the \n and tabs from the __COPYRIGHT() strings. Tweak to use a consistent format.
|
Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 wrstuden-revivesa-base
|
#
1.109 |
|
10-May-2008 |
skd |
Add epsv6 and epsv to disable extended passive mode for ipv6 or both ipv4 and ipv6 respectively. This hack is due to our friends a Juniper Networks who break epsv in ipv6. Should be fixed in ScreenOS 6.2.X.
|
#
1.108 |
|
05-May-2008 |
lukem |
branches: 1.108.2; Only attempt to el_parse() a command unknown by the default parser if editing is enabled. Fixes PR bin/38589
|
#
1.107 |
|
28-Apr-2008 |
martin |
Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase cube-autoconf-base matt-armv6-base hpcarm-cleanup-base
|
#
1.106 |
|
02-Dec-2007 |
wiz |
branches: 1.106.6; Sort options.
|
Revision tags: matt-armv6-prevmlocking matt-mips64-base
|
#
1.105 |
|
22-May-2007 |
lukem |
branches: 1.105.4; * main: call tzset() to ensure TZ is setup for other <time.h> functions. * remotemodtime(): use strptime() to parse the reply. * fetch_url(): ensure struct tm is zeroed before calling strptime().
|
#
1.104 |
|
17-Apr-2007 |
lukem |
* Implement -s srcaddr; uses srcaddr as the local IP address for all connections. Based on code in the version of ftp that FreeBSD had before they replaced it with lukemftp. * Move error message handling into ftp_connect() rather than in the caller, so that more specific error reporting can occur. * Improve consistency of various warning and error messages.
|
#
1.103 |
|
12-Apr-2007 |
lukem |
Fix using /usr/bin/ftp as a slave process on the end of a pipe by calling fflush(stdout) before each command. Taken from FreeBSD's pre-lukemftp version of ftp.
|
#
1.102 |
|
13-Dec-2006 |
christos |
gcc4 does not care about &foo; use volatile instead. From Anon Ymous
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base chap-midi-nbase chap-midi-base
|
#
1.101 |
|
31-Jan-2006 |
christos |
rename debug to ftp_debug. grr libssh.
|
#
1.100 |
|
31-Jan-2006 |
christos |
Rename xfoo() to ftp_foo() to avoid collisions with libssh. Don't ask.
|
#
1.99 |
|
29-Jun-2005 |
christos |
Add NO_USAGE and NO_DEBUG so that we can fit in the floppies again.
|
#
1.98 |
|
10-Jun-2005 |
jmc |
Need to #ifdef around declaration of ch with NO_EDITCOMPLETE so this compiles on rescue/miniroot's
|
#
1.97 |
|
10-Jun-2005 |
lukem |
Implement: int getline(FILE *stream, char *buf, size_t buflen, const char **errormsg) Read a line from the FILE stream into buf/buflen using fgets(), so up to buflen-1 chars will be read and the result will be NUL terminated. If the line has a trailing newline it will be removed. If the line is too long, excess characters will be read until newline/EOF/error. Various -ve return values indicate different errors, and errormsg will be changed to an error description if it's not NULL.
Convert to use getline() instead of fgets() whenever reading user input to ensure that an overly long input line doesn't leave excess characters for the next input operation to accidentally use as input.
Zero out the password & account after we've finished with it.
Consistently use getpass(3) (i.e, character echo suppressed) when reading the account data. For some reason, historically the "login" code suppressed echo for Account: yet the "user" command did not!
Display the hostname in the "getaddrinfo failed" warning.
Appease some -Wcast-qual warnings. Fixing all of these requires significant code refactoring. (mmm, legacy code).
|
#
1.96 |
|
20-May-2005 |
jdc |
Make this compile on sparc64 (size_t != int).
|
#
1.95 |
|
19-May-2005 |
lukem |
Use size_t instead of int where appropriate.
|
#
1.94 |
|
13-May-2005 |
lukem |
* Correct the "optlen" argument passed to getsockopt(3) and setsockopt(3) in various places. Fixes a problem noted by Allen Briggs. * Improve warning printed when connect(2) for the data channel fails.
|
#
1.93 |
|
11-May-2005 |
lukem |
Use socklen_t instead of int as the 5th argument to getsockopt(). Improve invocation of setsockopt() and associated failure messages.
|
#
1.92 |
|
10-May-2005 |
lukem |
Prevent an overly-long input line causing a core dump when editing is enabled. Issue noted by Ryoji Kanai in FreeBSD Problem Report # 77158.
|
#
1.91 |
|
11-Apr-2005 |
lukem |
gratuitous whitespace cleanup (before someone else jumps the gun...)
|
Revision tags: netbsd-3-base
|
#
1.90 |
|
21-Jul-2004 |
lukem |
branches: 1.90.2; Slightly rework SIGINT handling; if we're exiting the auto-fetch stuff and sigint_raised is non-zero, reset the handler for SIGINT to SIG_DFL and raise(SIGINT) so that the appropriate wait(3) status is setup. Based on solution proposed by Ognyan Kulev. This should really fix PR [pkg/26351].
|
#
1.89 |
|
20-Jul-2004 |
lukem |
If an ftp auto-fetch transfer is interrupted by SIGINT (usually ^C), exit with 130 instead of 1 (or rarely, 0). This allows an ftp auto-fetch in a shell loop to correctly terminate the loop. Should fix PR [pkg/26351], and possibly others.
|
#
1.88 |
|
09-Jul-2004 |
wiz |
Add -q to usage. From Kouichirou Hiratsuka in PR 26199.
|
#
1.87 |
|
14-May-2004 |
christos |
PR/25566: Anders Magnusson: ftp(1) do not like large TCP windows. Limit it to 8M.
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.86 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22365, verified by myself.
|
#
1.85 |
|
26-Jul-2003 |
salo |
netbsd.org->NetBSD.org
|
#
1.84 |
|
14-May-2003 |
wiz |
Uppercase URL.
|
Revision tags: fvdl_fs64_base
|
#
1.83 |
|
27-Aug-2002 |
christos |
Add a -q <quit-time> flag to abort a transfer if it has stalled for <quit-time> seconds. Ok'd by luke.
|
#
1.82 |
|
05-Jun-2002 |
lukem |
- use setprogname() - only support -6 if INET6 is defined
|
#
1.81 |
|
05-Jun-2002 |
lukem |
- when showing the final progress bar, replace "00:00 ETA" with the elapsed time. (suggested by simonb) - actually display transfer stats after a URL fetch. (bug introduced a *long* time ago) - update copyright & version
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
|
#
1.80 |
|
18-Mar-2002 |
thorpej |
Deal with const'ification if el_parse().
|
#
1.79 |
|
26-Dec-2001 |
lukem |
update copyrights
|
#
1.78 |
|
23-Dec-2001 |
lukem |
Add -4 to force IPv4 and -6 to force IPv6 address usage. From Hajimu UMEMOTO, via Mike Heffner of FreeBSD.
(FreeBSD has imported NetBSD's ftp as their ftp client; Mike is sending back some of their local changes).
|
#
1.77 |
|
19-Feb-2001 |
cgd |
convert to use getprogname()
|
#
1.76 |
|
09-Jan-2001 |
jdolecek |
call setlocale() on startup
|
#
1.75 |
|
15-Dec-2000 |
lukem |
invoke cmdtab.c_handler()s with argv[0] == c_name instead of the supplied name. that way the full (unambiguous) name is displayed in error messages and usage strings.
|
#
1.74 |
|
15-Nov-2000 |
lukem |
- implement "mreget"; as per "mget" but uses "reget" instead of "get" - add -N netrc and $NETRC, as methods to select an alternative .netrc file - cache local user name and home directory for further use - in mget(), use docase() instead of a local version to do the case conversion.
|
#
1.73 |
|
18-Jul-2000 |
lukem |
add support for FEAT and OPTS commands with `features' and `opts'. (from RFC 2389).
add support for MLST & MLSD (machine parseble listings) with 'mlst', 'mlsd' and 'pmlsd' (mlsd |$PAGER) commands. (from draft-ietf-ftpext-mlst-11)
rename remotesyst() to getremoteinfo(), and modify to parse the result from FEAT (if supported), and take into account the support for the various extensions such as MDTM, SIZE, REST (STREAM), MLSD, and FEAT/OPTS. put each feature into one of the following categories: - known to work (explicit FEAT) - unknown but assume works until explicit failure, when it's then tagged as `known not to work'. - known not to work (FEAT succeeded but didn't return anything, or was unknown and then explicit failure) assign results into features[] matrix.
add support to getreply() so that an optional callback will be called for each line received from the server except for the first and last. this is used in FEAT (and MLST) parsing.
modify various commands to check if REST (STREAM), MDTM and SIZE are explicitly or implicitly supported before using.
fix `syst' when verbose is off.
minor knf (indent goto labels by one space, etc).
simply various command usage handlers by assuming that argv != NULL except for quit() and disconnect().
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base
|
#
1.72 |
|
11-Jun-2000 |
lukem |
portability fixes for lukemftp: * initconn(): use in_addr_t instead of u_int32_t when manipulating IPv6 addresses (and assume anything with ipv6 has in_addr_t; if not, i'll add an autoconf test for it) * ai_unmapped(): not all systems have sin_len; so only set #ifdef BSD4_4 * fix some lint
|
#
1.71 |
|
31-May-2000 |
lukem |
Add support for 'ftp -u url file ...', to upload a list of files to given url. Mostly based on [bin/10019] by Scott Aaron Bamford <sab@ansic.net>
|
Revision tags: minoura-xpg4dl-base
|
#
1.70 |
|
01-May-2000 |
lukem |
branches: 1.70.2; convert to ANSI KNF
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.69 |
|
28-Nov-1999 |
lukem |
* implement xsl_init() and xsl_add(); error checking forms of sl_{init,add}() * fix bug where the second press of <TAB> on an empty word (i.e, list all options) may have resulted in an strncmp() against NULL. (detected by _DIAGASSERT())
|
#
1.68 |
|
26-Nov-1999 |
lukem |
* complete_remote(): use remglob("", ...) instead of remglob(".", ...), for listings of the current working directory; some ftp servers don't like `NLST .'. [noted by Giles Lean <giles@nemeton.com.au>] * recvrequest(): treat remote=="" as remote==NULL when calling command(). (to support the above change) * support `[user@]' in `[user@]host' and `[user@]host[:][path]'. [based on idea (and initial code) from David Maxwell <david@fundy.ca>] * `idle' may be invoked without any args * reformat some comments * reformat usage string in program and man page * call updateremotepwd() after successful login, not after successful connect * always call setsockopt(, IPPROTO_IP, IP_TOS, ) (et al); using #if defined(IPPROTO_IP) doesn't work on certain foreign systems where enums instead of #defines are used... [noted by Matthias Pfaller <leo@dachau.marco.de>]
|
#
1.67 |
|
12-Nov-1999 |
lukem |
- implement `set rprompt'; right side version of `set prompt'. depends on EL_RPROMPT support i added to editline(3). - allow $FTPPROMPT and $FTPRPROMPT to override defaults for the relevant prompts - move `%' formatting code from prompt() to expandbuf(). - implement `%.' and `%c', similar to the same % codes in tcsh(1) (functionality I added to tcsh nearly 6 years ago), except that `%.' always does `...trailing' and `%c' always does `/<x>trailing'. - unknown `%foo' codes get printed as `%foo'
|
#
1.66 |
|
11-Nov-1999 |
lukem |
- implement updateremotepwd(); update the global variable `remotepwd' to contain the remote working directory. - add `set prompt', a user configurable prompt. (defaults to `ftp> '). the following escape characters a la tcsh(1) are supported: %/, %m, %M, and %n. - add global var `username'; used by prompt code - fix a couple of minor memory leaks - bump version
|
Revision tags: comdex-fall-1999-base
|
#
1.65 |
|
24-Oct-1999 |
lukem |
new features: - add `usage'; displays the usage of a command. implemented by calling the c_handler() with argc = 0, argv = "funcname". - add `passive auto'; does the same as $FTPMODE=auto. - add `set [option value]'; display all options, or set an option to a value. - add `unset option'; unset an option. - add getoptionvalue() to retrieve an option's value, and replace a few global variables with calls to this. - implement cleanuppeer(), which resets various bits of state back to `disconnected'. call in disconnect() and lostpeer(). - support completing on `options'. - improve recovery after a SIGINT may have closed the connection. XXX: there's still a couple to fix
other stuff: - various consistency fixes in the man page. - ensure that the command usage strings in the code and man page match reality. - mput/mget: check that the connection still exists before each xfer. - minor cosmetic changes in confirm(). - set code correctly in sizecmd() and modtime() - don't need \n in err() strings. - change lostpeer to take an argument (rather than casting (sig_t)lostpeer in signal handlers) - knf and whitespace police.
|
#
1.64 |
|
13-Oct-1999 |
lukem |
* fix up confirm() (broke `a' and `p' in last commit) * simplify main loop (don't need `top' variable any more) * use a struct sockaddr_in6.sin6_addr for the result from inet_pton(), rather than u_char buf[16] * add a few more comments
|
#
1.63 |
|
12-Oct-1999 |
lukem |
a few user interface and cosmetic tweaks: * confirm(): move from util.c to cmds.c. display mnemonic string in its prompt. add support for `q' (terminate current xfer), `?' (show help list) * in various signal handlers, output a linefeed only if fromatty. * if fgets(stdin) returned NULL (i.e, EOF), clearerr(stdin) because you don't want future fgets to fail. this is not done for the fgets() in the main command loop, since ftp will quit at that point. * unless ftp is invoked with -a, don't retain the anonftp setting between hosts (`ftp somehost:' sets anonftp, but you don't want that to `stick' if you close that connection and open a new one).
|
#
1.62 |
|
11-Oct-1999 |
lukem |
if editing is enabled when intr() is called, print a newline. (cosmetic fix)
|
#
1.61 |
|
09-Oct-1999 |
lukem |
* use sigsetjmp()/siglongjump() instead of setjmp()/longjmp(); the latter don't save the signal mask on some foreign systems. * ensure signal handlers don't use stdio and do reset errno if they don't exit with siglongjmp() * use a common SIGINT handler for {send,recv}request()
|
#
1.60 |
|
05-Oct-1999 |
lukem |
* factor out SIGINFO setting into a handler that is always active (but only prints out info if bytes > 0). only set the handler if SIGINFO is defined * hijack SIGQUIT to be the same as SIGINFO (foreign ports have this, and it's annoying to have SIGQUIT dump core on netbsd when it prints info on other systems) * in {recv,send}request(), factor a lot of duplicated code out into a `cleanup' section at the end * rework shell() a bit
|
#
1.59 |
|
05-Oct-1999 |
lukem |
add TNFi copyright to all files i've done more than a minor amount of work to...
|
#
1.58 |
|
01-Oct-1999 |
lukem |
If EPSV or EPRT fails, disable epsv4 for the rest of the current connection. the disabled state can be overridden by toggling epsv4.
(I got sick of the errors about EPSV not being supported on almost every server I connect to. This way we retain support for epsv4, but it's not so whiny after the first failure...)
|
#
1.57 |
|
01-Oct-1999 |
lukem |
prefix the global variables in ftp_var.h with GLOBAL, which defaults to "extern" if it's not set. define GLOBAL to (empty) in main.c. this effectively moves all the globals into main.c whilst retaining namespace access to them in other source files. (global vars in header files confuse foreign linkers)
|
#
1.56 |
|
01-Oct-1999 |
lukem |
* don't bother with "pathnames.h"; it contained just a single #define. instead, include <paths.h> in the files that need it * slightly reorg ftp_var.h
|
#
1.55 |
|
30-Sep-1999 |
lukem |
* In the !NI_NUMERICHOST case (i.e, getaddrinfo() challenged systems), portnum should be in host order. found/fixed by Matthias Pfaller <leo@dachau.marco.de> * parse_url(): improve checking of portnum, and add an extra argument to pass back the parsed portnum to the caller (reduces a bit of code duplication) * Move the KAME/WIDE copyrights after the BSD/TNFi ones. Since there was significantly less code added under the former, it's only fair on the latter.
|
#
1.54 |
|
30-Sep-1999 |
lukem |
* fix initialisation of home[] * fetch_url(): if path would be NULL, return strdup("")
|
#
1.53 |
|
28-Sep-1999 |
lukem |
* add new commands: lpage page local files pdir as dir, but through your $PAGER pls as ls, but through your $PAGER * implement docase() (a la dotrans() et al) and use appropriately, rototilling some duplicated code * globulize(): modify to return a pointer to the strdup()ed result in all cases, and hack the code that calls it to take this into account * replace strcpy() and strncpy() with strlcpy() * put(), getit(): use some aptly named local vars instead of argv[...] * delint
|
#
1.52 |
|
27-Sep-1999 |
lukem |
* idle(): rename to idlecmd(). certain linux distributions have an incompatible prototype for idle() in <unistd.h> (which i thought was against namespace and sensibility guidelines, but...) * consistently use xsignal() instead of signal(). we get known behaviour in all cases (SA_RESTART), which is good for some borken foreign systems. * remove signal.h from most files; it's unnecessary now * fetch_url(): use `long chunksize' instead of ssize_t; it's more portable, and we're setting chunksize with strtol() anyway * xsignal(): only use SA_RESTART if it exists. SunOS 4.x doesn't have it but has the inverse (SA_INTERRUPT). the original function i was inspired from had this support (lib/signal.c, W. Richard Stevens' `UNP 2nd ed Vol 1'). * remove <termios.h> from util.c; it should be unnecessary now
|
#
1.51 |
|
24-Sep-1999 |
lukem |
if getsockopt() returns a buffer size of <= 0, set them to 8192. this works around a problem in certain OS from Sun with a version < 5.6...
|
#
1.50 |
|
22-Sep-1999 |
lukem |
branches: 1.50.2; * add support for `xferbuf', which sets both `sndbuf' and `rcvbuf' * document the above three commands * rototill the way the sndbuf and rcvbuf work. remove resetsockbufsize() * use the appropriate socket buffer size as the size of the buffer that the read()/write() loops use. speeds up things in some cases.
|
#
1.49 |
|
21-Sep-1999 |
lukem |
only default to epsv4 if INET6 is defined
|
#
1.48 |
|
12-Jul-1999 |
lukem |
* change fetch_ftp() to be fully rfc 1738 compliant; if the URL contains the an empty directory (e.g, between `some' and `path' in `ftp://host/some//path'), then execute `CWD ' (without a path). This command will probably fail on rfc 959 compliant servers, so issue a warning in this case and bail. [noted by cgd]. (i wonder if the people who wrote rfc 1738 actually realised that this requirement appears to contravene the spec for `cwd' in rfc 959 ?) * replace isurl() with isipv6addr(), and use appropriately. fixes auto-login with `classic ftp URLs' (e.g, `ftp somehost:') * cleanup and rework some of the ipv6 stuff in parse_url() * prevent potential coredump in fetch_ftp() when parsing `;type=X' * KNF a few lines * fix a couple of comments * cleanup the man page a bit
|
#
1.47 |
|
11-Jul-1999 |
itojun |
add epsv4 command, which enable/disable the use of EPSV/EPRT.
this is mainly for (hypothetical) ftp server which disconnect clients that use EPSV/EPRT. I've never seen any ftp server like this, but epsv4 command may be of use when such an ftp server is found.
|
#
1.46 |
|
10-Jul-1999 |
christos |
isurl does not return a pointer!
|
#
1.45 |
|
02-Jul-1999 |
itojun |
add dual-stack (IPv4/v6) support. hope I broke no other part...
|
#
1.44 |
|
29-Jun-1999 |
lukem |
[fear this; more ftp hacking from lukem :-]
features:
|
#
1.43 |
|
20-Jun-1999 |
cgd |
split the "SMALL" #ifdefs into ones for NO_ABOUT, NO_EDITCOMPLETE, and NO_PROGRESS. -DSMALL still implies all of those. progress meter support isn't necessary for the smallest possible ftp client, but it adds very little space and makes users' lives much better. Therefore, it should be enabled for installation media if at all possible.
|
#
1.42 |
|
02-Jun-1999 |
lukem |
* 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
|
#
1.41 |
|
17-May-1999 |
lukem |
only enable editing by default if stdin is a tty. noticed by Onno van der Linden <onno@simplex.nl>
|
Revision tags: netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.40 |
|
31-Mar-1999 |
lukem |
branches: 1.40.2; when using editline, work on the correct buffer. fixes problem where blank input lines were being added to the history buffer.
|
#
1.39 |
|
22-Mar-1999 |
lukem |
* 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
|
#
1.38 |
|
08-Mar-1999 |
lukem |
* 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.
|
#
1.37 |
|
24-Jan-1999 |
lukem |
* -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)
|
#
1.36 |
|
23-Jan-1999 |
lukem |
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)
|
#
1.35 |
|
27-Dec-1998 |
lukem |
be saner about the method to determine which $proxy to use
|
#
1.34 |
|
28-Sep-1998 |
lukem |
* 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.
|
#
1.33 |
|
08-Aug-1998 |
lukem |
need <signal.h> for signal....
|
#
1.32 |
|
03-Aug-1998 |
lukem |
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'
|
#
1.31 |
|
04-Jun-1998 |
lukem |
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.
|
#
1.30 |
|
21-Jan-1998 |
lukem |
enable el_parse for unknown commands (so editrc(5) commands can be used directly
|
#
1.29 |
|
18-Jan-1998 |
lukem |
define MAX_IN_PORT_T and use instead of USHRT_MAX. suggested by cgd@netbsd.org
|
#
1.28 |
|
18-Jan-1998 |
lukem |
* 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.
|
#
1.27 |
|
12-Dec-1997 |
gwr |
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?)
|
Revision tags: netbsd-1-3-BETA netbsd-1-3-base
|
#
1.26 |
|
14-Oct-1997 |
christos |
branches: 1.26.2; PR/4257: Jaromir Dolecek: Compensate for the libedit changes.
|
#
1.25 |
|
23-Aug-1997 |
lukem |
support $TMPDIR
|
#
1.24 |
|
18-Aug-1997 |
lukem |
bugs fixed: * don't interpret '-' or '|' when a local filename is determined from the remote name (i.e, in mget, and in get with only one argument). This is implemented using an extra argument to recvrequest(). Fixes a major security hole. * clean up memory leak when using globulize() * clean up a couple of comments * fix wording in TNF copyright
features added: * support for TIS fwtk gate-ftp servers: * read defaults from $FTPSERVER && $FTPSERVERPORT * start in gate-ftp mode if invoked as 'gate-ftp' * toggle or set with 'gate [host [port]]'
|
#
1.23 |
|
20-Jul-1997 |
lukem |
* use RCSID() && COPYRIGHT() macros * cleanup for WARNS=1 (including some ugly '(void)&var' bits wrapped in #ifdef __GNUC__ to shut up gcc warnings WRT setjmp/longjmp) * use strtol() instead of atoi(), and more extensively check result of conversion * use u_int16_t instead of short or int for TCP port addresses
|
#
1.22 |
|
10-Jun-1997 |
lukem |
Don't use editing or progress bar if $TERM isn't set or is "dumb". Fixes emacs ange-ftp. Suggested by Todd Miller <Todd.Miller@courtesan.com>, tested by matt green <mrg@eterna.com.au>
|
#
1.21 |
|
05-Apr-1997 |
lukem |
* support $ftp_proxy for ftp:// transfers [bin/3245] * add "more" & "less" as synonyms for "page" * move editline setup code into controlediting(), and call appropriately. only setup setup terminal if going into interactive mode. inspired by Todd Miller <todd.miller@courtesan.com>
|
#
1.20 |
|
16-Mar-1997 |
lukem |
Fixes from <Todd.Miller@cs.colorado.edu>, with some cleanup and reworks by me: * only echo "Passive mode" in verbose mode; scripts that use ftp may get unwanted output otherwise * disable progress bar and modification time preservation when retreiving to a non-regular files. fixes progress bar getting in way of "get file /dev/tty" * setup el_init() et al if editing is set, not if fromatty. TODO: migrate this to a function, and call if editing is turned on later in the session. also implement edit_cleanup if editing is turned off * call el_set() after setting SIGWINCH handler. This fixes the problem when suspending in a non-cbreak shell (e.g, csh) would trash your tty mode. * reset interactive mode correctly in auto_fetch() mget mode
|
#
1.19 |
|
14-Mar-1997 |
christos |
SMALLFTP->SMALL; remove SMALL from Makefile
|
#
1.18 |
|
13-Mar-1997 |
lukem |
Features: * support remglobbing of auto_fetch arguments * new flag - '-e'; disable editing * "page file" == "get file |${PAGER-less}"
Bugfixes/cleanup: * consistently use a trailing '.' on messages * code cleanup, including buffer overrun fixes, use puts and putchar in places, etc (inspired by OpenBSD mods) * disable progress bar when local-file is a pipe or '-' * skip \r in http headers * fix remote ftpd slash bug more elegantly (so it works with ////) * abort_remote(): check if cout==NULL before using it. should fix [bin/3273] * fixed up cosmetic problems when complete_remote() generated errors from the remote server (such as "no files found", "login with user and pass", ...) done by adding extra argument to remglob(), which is a pointer to an error buffer to put messages in rather than printing to stdout.
|
#
1.17 |
|
01-Feb-1997 |
lukem |
[Yet Another Huge Ftp Commit - hopefully the last for a while, barring any more little things people want added ...]
New features: * progressmeter is now asynchronous, so "stalled" transfers can be detected. "- stalled -" is displayed instead of the ETA in this case. When the xfer resumes, the time that the xfer was stalled for is factored out of the ETA. It is debatable whether this is better than not factoring it out, but I like it this way (I.e, if it stalls for 8 seconds and the ETA was 30 seconds, when it resumes the ETA will still be 30 seconds). * verbosity can be disabled on the command line (-V), so that in auto-fetch mode the only lines displayed will be a description of the file, and the progress bar (if possible) * if the screen is resized (and detected via the SIGWINCH signal), the progress bar will rescale automatically.
Bugs fixed: * progress bar will not use the last character on the line, as this can cause problems on some terminals * screen dimensions (via ioctl(TIOCWINSZ)) should use stdout not stdin * progressmeter() used some vars before initialising them * ^D will quit now. [fixes bin/3162] * use hstrerror() to generate error message for host name lookup failure. * use getcwd instead of getwd (it should have been OK, but why tempt fate?) * auto-fetch transfers will always return a positive exit value upon failure or interruption, relative to the file's position in argv[]. * remote completion of / will work, without putting a leading "///". This is actually a bug in ftpd(1), where "NLST /" prefixes all names with "//", but fixing every ftpd(1) is not an option...
|
#
1.16 |
|
19-Jan-1997 |
lukem |
New features: * Command line editing via editline(3) library. * Context sensitive command and file completion, including remote files.
Enhancements to auto-fetch feature: * Support for http:// URLs using the http protocol, including proxy HTTP support via $htty_proxy if it's defined. * The connection is kept open between successive files on the same host. (obviously, this does not count for http requests.) * Return value of ftp is 0 on no error, or the offset in argv[] of the file which failed (i.e., argv[x] failed, ftp returns x). * If the path in an ftp URL or classic format line has a trailing '/', cd to the path and enter interactive mode. Fixes [bin/3011], albiet requiring the user to help ftp in determining the operation.
Other changes: * '-P port' works for normal ftp, and is the default for all classic style auto-fetch transfers and for ftp URLs that don't specify the port. (previously it would just work for the first xfer.) * Some code moved into separated files along logical divisions. * Editing and completion can be compiled out with -DSMALLFTP.
|
#
1.15 |
|
29-Dec-1996 |
lukem |
* preserve modtime if size is 0 [bin/3040, Enami Tsugutomo] * in autofetch mode, don't retry a file if the connection failed - skip it and move to the next file. [bin/3051, Matt Green] * only print error messages from SIZE or MDTM if the user used 'size' or 'modt' (respectively). prevents extraneous warnings during normal transfers when connected to a site which doesn't support these (behaviour prior to last commit), but still allows error feedback to specific user requests for this info (which the last commit broke). * 'account': only accept one optional argument * if invoked as pftp, default to passive mode on (from FreeBSD) * remove leading '0 ' in progress bar - looked ugly * use warn instead of perror * use strncpy when src isn't known to have safe length * remglob(): use mkstemp() to prevent symlink games, and don't override _PATH_TMP, use it as the prefix to the temp file
|
#
1.14 |
|
06-Dec-1996 |
lukem |
functionality mods: * implement 'progress bar/meter' (inspired by ncftp). use 'progress' to toggle on. it will display current file size to 5 digits, automatically determining suffix (up to 16384 P (petabytes) == 2^64). * 'ls' now uses NLST (unadorned listing), a la older ftp clients. 'dir' still does LIST (long listing). idea from John Nemeth <jnemeth@cue.bc.ca>
bug fixes: * return first line of reply in reply_string[] from getreply(), instead of last line. This fixes [bin/741] (parsing of SYST), and also means that SIZE and MDTM messages will be parsed correctly if they're longer than 1 line. * parse URL-style auto-ftps that have no filename correctly (e.g, ftp://host, ftp://host/, ftp://host/dir/). pointed out by Jaromir Dolecek <dolecek@saruman.ics.muni.cz> * pass the correct size array in 2nd arg of utimes() when setting the modification time
|
#
1.13 |
|
28-Nov-1996 |
lukem |
More features, some of which were inspired by changes that friedman@gnu.ai.mit.edu (Noah Friedman) made to his modified ftp: - implement "lpwd" - local pwd - implement "preserve" - toggle preserving of file modification times on retrieved files - allow for explicit "on" or "off" arg to toggle commands - "exit" synonym for "quit", "msend" synonym for "mput" - in confirmation mode, allow 'a' (yes to rest of current command), and 'p' (turn off prompt mode, as if 'prompt off' was done, effective immediately) - "modtime" returns time formatted as localtime, not GMT
Bug fixes: - check for extraneous args on commands - cleanup const usage, line formatting - create 0 length temporary file in remglob() to prevent symlink games (from OpenBSD) - check length of filename of ~/.netrc (from OpenBSD)
|
#
1.12 |
|
25-Nov-1996 |
lukem |
cleanups/bugfixes: - don't echo 'ACCT' parameter when debugging (a la 'PASS') - Fix checking of directory access for "/foo", the parent directory is "/", not "" (from FreeBSD) - remove trailing whitespace on lines - add any missing NetBSD tags - cleanups to man page, includinging sorting options description
feature additions: - variable sized hash marks (from [bin/683], but done in the hash command as an optional arg) - more user-friendly transfer time printing (from FreeBSD, with mods) - '-p' command line option to jump into PASV mode (closes [bin/2857], but with an option rather than checking argv[0]) - SIGINFO support for printing xfer stats when sending/receiving requests - '-P port' for changing the port to connect to (from thorpej@netbsd.org) - '-a': bypass normal login, and try anonymous login (from OpenBSD via thorpej) - autofetch files via url (ftp://...) or "classic" (host:/file) (from OpenBSD via thorpej) - 'ftp' synonymous with 'open' (from FreeBSD)
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.11 |
|
07-May-1996 |
pk |
Fence off NULL args in getcmd() (fixes/works around PR#824).
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.10 |
|
15-Sep-1995 |
pk |
Avoid falling off the end of a fixed-length array (from John F. Woods; PR#1431).
|
#
1.9 |
|
14-Sep-1995 |
cgd |
needs string.h for protos.
|
#
1.8 |
|
08-Sep-1995 |
tls |
Sync with 4.4lite2
|
#
1.7 |
|
24-Dec-1994 |
cgd |
needs string.h
|
#
1.6 |
|
31-Aug-1994 |
mycroft |
Fix option parsing bug reported by Uwe Arndt, and another related bogon.
|
#
1.5 |
|
29-Aug-1994 |
mycroft |
branches: 1.5.2; Add RCS ids.
|
#
1.4 |
|
25-Aug-1994 |
cgd |
passive mode support, from David Carrel <carrel@cisco.com>, and cleaned up for the new ftp sources by me.
|
#
1.3 |
|
25-Aug-1994 |
cgd |
clean up import, no local changes.
|
Revision tags: netbsd-1-0-base
|
#
1.2 |
|
01-Aug-1993 |
mycroft |
Add RCS identifiers.
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; 1.1.2; Initial revision
|