]> CyberLeo.Net >> Repos - FreeBSD/releng/8.1.git/blob - contrib/lukemftp/ChangeLog
Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.
[FreeBSD/releng/8.1.git] / contrib / lukemftp / ChangeLog
1 Mon Jun 10 08:12:35 UTC 2002    lukem
2
3         * crank FTP_VERSION from 1.6-beta1 to 1.6-beta2
4
5         * replace missing fseeko(), with a wrapper to fseek() which
6           checks that the offset isn't > LONG_MAX
7
8         * #include <regex.h> #if HAVE_REGEX_H
9
10 Mon Jun 10 01:27:46 UTC 2002    lukem
11
12         * check for and replace sa_family_t definition
13
14         * don't bother checking for issetugid(); it was only used in the
15           internal libedit to prevent $HOME/.editrc from being used if
16           running set-id, and the newer libedit code wouldn't even read
17           $HOME/.editrc if issetugid() wasn't available.  as many target
18           operating systems don't have issetugid(), and lukemftp isn't
19           likely to be run set-id (and $HOME/.netrc is used in any case),
20           the issetugid() check has been disabled in libedit.
21
22         * add back cpp code which #defines REGEX #if HAVE_REGEX_H
23
24 Wed Jun  5 14:39:11 UTC 2002    lukem
25
26         * crank FTP_VERSION from 1.6alpha1 to 1.6-beta1
27
28         * implement replacement setprogname()
29
30         * use getprogname() instead of __progname
31
32         * convert to christos' replacement fgetln(), as it's better than mine
33
34         * merge ftp from NetBSD 20020605 to 20020606:
35                 - use setprogname()
36                 - only support -6 if INET6 is defined
37
38 Wed Jun  5 13:08:25 UTC 2002    lukem
39
40         * don't bother checking if <glob.h> is usable (see below).
41
42         * always compile in local glob; it's the best way to ensure that
43           various security issues are fixed
44
45         * update libukem/glob.c from NetBSD's __glob13.c rev 1.22 and rev 1.23
46
47         * merge libedit from NetBSD 20010413 to 20020606:
48                 - constify; passes all gcc and lint strict checks.
49                 - add config.h [Jason Evans], to create a portable version of
50                   libedit that can be easily compiled on other OS's.
51                 - PR/12963:Jason Waterman: Fix signed cast problems.
52                 - Fixed an __P remnant
53                 - Close quoting.
54                 - Generate <>& symbolically.
55                 - Punctuation and whitespace nits, fix a typo.
56                 - PR/14188: Anthony Mallet: Provide an opaque data
57                   pointer to client programs.
58                 - a couple of minor fixes.  originally by Ruslan Ermilov
59                   <ru@FreeBSD.org>, highlighted to me by way of Mike Barcroft
60                   <mike@FreeBSD.org> (thanks!)
61                 - PR/14067: Anthony Mallet: Provide a programmatic way
62                   to set the read_char function via a new el_set() operation.
63                   Thanks, nicely done :-)
64                 - `existent', not `existant'
65                 - Don't use HAVE_ yet.
66                 - Fix a warning.
67                 - Remove an unused variable.
68                 - If term_init() fails, cleanup and return NULL. This
69                   avoids other lossage.  Pointed by charles.
70                 - va_{start,end} audit: Make sure that each va_start has one
71                   and only one matching va_end, especially in error cases.
72                   If the va_list is used multiple times, do multiple
73                   va_starts/va_ends.  If a function gets va_list as argument,
74                   don't let it use va_end (since it's the callers
75                   responsibility).  Improved by comments from enami and
76                   christos -- thanks!
77                 - history_def_enter: fix off-by-one mistake in delete
78                   condition (the behaviour to keep at least one entry on the
79                   history list is retained). This fixes lib/9704 by Phil Nelson.
80
81         * merge ftp from NetBSD 20020524 to 20020605:
82                 - when showing the final progress bar, replace "00:00 ETA"
83                   with the elapsed time.  (suggested by simonb)
84                 - actually display transfer stats after a URL fetch.
85                   (bug introduced a *long* time ago)
86                 - update copyright & version
87
88         * merge ftp from NetBSD 20001127 to 20020524:
89                 - Use "r+" instead of "r+w", since the latter is not standard.
90                   Noted by <Steve.McClellan@radisys.com> in private email.
91                 - Only send port number in HTTP/1.1 Host: request if port !=
92                   80.  Fixes [bin/15415] from Takahiro Kambe
93                   <taca@sky.yamashina.kyoto.jp>
94                 - Fix bad mode passed by mls() to recvrequest().  Fixes
95                   [bin/16642] from <steve.mcclellan@radisys.com>
96                 - update copyrights
97                 - minor knf
98                 - invoke cmdtab.c_handler()s with argv[0] == c_name instead
99                   of the supplied name. that way the full (unambiguous) name
100                   is displayed in error messages and usage strings.
101                 - line2 may overrun if line is too long (> 200).  be more
102                   careful on strcpy.
103                 - Handle URLs without files correctly (e.g, when using '-o -').
104                   Fix from Anders Dinsen <anders@dinsen.net> in [bin/13768]
105                 - portnum is unsigned, use %u instead of %d
106                 - Add -4 to force IPv4 and -6 to force IPv6 address usage.
107                   From Hajimu UMEMOTO, via Mike Heffner of FreeBSD.
108                 - use u_char instead of char in base64_encode().
109                   problem noticed by Jorgen Lundman in private mail.
110                 - don't make broken file with -R option.
111                 - handle "*" in Content-Range properly.
112                 - If no_proxy condition is true && urltype == FTP_URL_T,
113                   use fetch_ftp to retrieve
114                 - convert to use getprogname()
115                 - Fix description for "form", "mode", and "struct" commands.
116                   Inspired by [bin/16736] from Steve McClellan
117                   <steve.mcclellan@radisys.com>
118                 - Generate <>& symbolically. I'm avoiding .../dist/...
119                   directories for now.
120                 - Punctuation nits.
121                 - Whitespace cleanup.
122                 - put "site" in alphabetical order. noted by Mike Barcroft
123                   in private email
124                 - avoid buffer overrun on PASV from malicious server.
125                 - Large file ASCII mode support by using fseeko()
126                   instead of fseek().  From Andrey A. Chernov of FreeBSD,
127                   via Mike Heffner.
128                 - Deal with const'ification if el_parse().
129                 - call setlocale() on startup
130                 - display a limited progress bar (containing bytes xferred
131                   and xfer rate) when the file size is unknown
132                 - disable progress bar during remglob()
133
134 Thu Mar 14 05:41:49 UTC 2002    lukem
135
136         * ensure all AF_INET6 use is protected with #ifdef INET6
137
138         * remove unnecessary __attribute__ goop
139
140         * libukem/snprintf.c: fix compile errors with gcc 3.x
141
142 Tue Apr 17 08:07:29 UTC 2001    lukem
143
144         * autoconf check for %q long long support in *printf()
145           (instead of %ll), define and use HAVE_PRINTF_QD if so
146
147         * ipv6 isn't compatible with socks, so disable the former
148
149         * look for <libutil.h> (instead of <util.h>) and <arpa/nameser.h>
150
151         * don't check for fparseln() twice
152
153         * fix getaddrinfo() checks
154
155         * crank FTP_VERSION from 1.5 to 1.6alpha1
156
157         * always ensure _PATH_BSHELL and _PATH_TMP are defined
158
159         * prototype inet_pton() if its missing
160
161         * don't bother trying to use if_indextoname() in ip6_sa2str()
162           (fixes problems on MacOS X)
163
164         * in inet_pton(), pull in <arpa/nameser.h> for IN6ADDRSZ and INT16SZ,
165           and define if missing
166
167 Fri Apr 13 15:24:44 UTC 2001    lukem
168
169         * only include <arpa/nameser.h> if we have it
170
171         * update glob(3) to netbsd-current (20010329), adding support
172           for GLOB_LIMIT and fixing various buffer overflows.
173
174         * update editline from NetBSD 20000915 -> NetBSD 20010413
175                 - Enlarge editline buffers as needed to support arbitrary
176                   length lines.  This also addresses lib/9712 by Phil Nelson.
177                 - consistently check for allocation failures and return -1,
178                   if we could not get more memory.
179                 - add support for home and end keys.
180                 - improve debugging support
181                 - el_line_t: make 'limit' const
182
183 Mon Nov 27 23:23:40 EST 2000    lukem
184
185         * merge ftp from NetBSD-current (20001127):
186                 - implement "mreget"; as per "mget" but uses "reget" instead
187                   of "get"
188                 - add -N netrc and $NETRC, as methods to select an alternative
189                   .netrc file
190                 - cache local user name and home directory for further use
191                 - in mget(), use docase() instead of a local version to do
192                   the case conversion.
193                 - format string cleanups
194                 - be more explicit that $ftp_proxy and $http_proxy are not
195                   supported for interactive sessions
196                 - cope with 2553bis getnameinfo (always attach scope id)
197                   getnameinfo error check.
198                 - use NI_MAXHOST with getnameinfo.  we can assume presence of
199                   getnameinfo.
200
201 Tue Nov  7 00:16:23 EST 2000    lukem
202
203         * libukem/snprintf.c had a non-functional `%s' due to a
204           function declaration mismatch.  problem found and fixed
205           by Hubert Feyrer <hubert@feyrer.de>
206
207 Wed Oct 11 14:06:19 EST 2000    lukem
208
209         * released version 1.5
210
211 Tue Oct  3 10:22:36 EST 2000    lukem
212
213         * crank to version 1.5 beta6
214
215         * merge ftp from NetBSD-current (20001003)
216                 - explicitly use SOCK_STREAM with socket() instead of
217                   res->ai_socktype, because it appears that linux with glibc
218                   doesn't set the latter correctly after one of getaddrinfo()
219                   or getnameinfo().
220                 - clarify that $ftp_proxy only works for full URLs and can't
221                   be used for interactive connections.
222
223 Mon Sep 25 21:52:12 EST 2000    lukem
224
225         * crank to version 1.5 beta5
226         
227 Sun Sep 24 13:31:19 EST 2000    lukem
228
229         * merge ftp from NetBSD-current (20000924)
230                 - since everything else here uses ANSI C, we might as well
231                   replace __STRING() with the ANSI C stringization stuff...
232                 - base64_encode should be static. picked up by hp/ux(!)
233                   compiler
234                 - It appears that whilst Apache 1.3.9 incorrectly puts a
235                   trailing space after the chunksize (before the \r\n),
236                   Apache 1.3.11 puts *multiple* trailing spaces after the
237                   chunksize. I 'm fairly certain that this is contrary to
238                   RFC 2068 section 3.6, but whatever...
239                   Found by David Brownlee <abs@mono.org>
240                 - always include <netdb.h>, not just when INET6 is defined.
241                   resolves PR [bin/10970] by Richard Earnshaw
242                   <rearnsha@cambridge.arm.com>>
243                 - in progressmeter() perform the check for foregroundproc() a
244                   little earlier
245                 - removed unused variable `items' in list_vertical()
246         
247 Sat Sep 23 15:43:34 EST 2000    lukem
248
249         * remove unused sverrno in warnx() and errx()
250
251         * remove unused h_error in getnameinfo()
252
253         * in getaddrinfo(), don't bother declaring in6_addrany[] and
254           in6_loopback #ifndef INET6
255
256 Thu Sep 21 11:26:35 EST 2000    lukem
257
258         * in getaddrinfo.c::str_isnumber(), use strtol() and check the
259           result, instead of using strtoul() and not checking the result.
260
261         * define INADDRSZ if it's not found (e.g, HP/UX doesn't seem to have
262           it in <arpa/nameser.h>)
263
264 Wed Sep 20 09:23:59 EST 2000    lukem
265
266         * crank to version 1.5 beta4
267
268 Mon Sep 18 18:19:54 EST 2000    lukem
269
270         * add AC_AIX test, which defines _ALL_SOURCE under AIX
271
272         * use ANSI # stringization instead of __STRING()
273
274         * define HAVE_RFC2553_NETDB if <netdb.h> defines AI_NUMERICHOST
275           (et al) and has getaddrinfo(). (some systems only implement RFC2133)
276
277         * don't bother with AC_C_CONST as we depend upon ANSI C elsewhere
278
279         * when HAVE_RFC2553_NETDB isn't set, and we're #defining various EAI_,
280           AI_, and NI_ items, #undef first incase a system partially implements
281           these in <netdb.h>
282
283         * look for tgetent() in -ltinfo before -lncurses, because ncurses 5.0
284           has been split up into multiple libraries.
285           from Arkadiusz Miskiewicz <misiek@pld.org.pl>
286
287 Fri Sep 15 01:09:10 EST 2000    lukem
288
289         * don't bother defining __P() or __STRING() based on whether
290           __STDC__ is available or not, since these aren't used any more
291
292         * fix mkstemp() prototype
293
294         * declare getpass() if necessary
295
296         * we don't need the readline xxgdb hack in libedit...
297
298         * convert to ansi declarations
299
300         * use ansi prototypes instead of __P()
301
302         * merge in changes from makelist 1.4 -> 1.6:
303                 - generate ansi prototypes instead of using __P().  noted by
304                   christos
305                 - fix a couple of comments
306                 - add -m option to makelist, which generates an mdoc table
307                   with the key bindings and their descriptions
308                 - manually add the output of 'sh ./makelist -m vi.c ed.c
309                   common.c' to a new section in editrc(5) called
310                   `EDITOR COMMANDS'
311
312         * merge libedit from NetBSD-current (20000915)
313                 * convert to new style guide, which includes:
314                         - ansi prototypes & features (such as stdargs)
315                         - 8 space indents
316                 * history_def_set has a `const int' as a third arg, not an
317                   `int'.  picked up by the ultrix compiler, reported by
318                   simonb@ ...
319                 * generate ansi prototypes instead of using __P().  noted by
320                   christos.  fix a couple of comments
321                 * make xxgdb and a gdb linked with libedit's readline emulation
322                   work properly together.   xxgdb communicates with a gdb
323                   running on a pty that it sets to -echo,-onlcr prior to
324                   forking the gdb process.  GNU readline preserves the -echo
325                   setting while libedit was undoing it (setting the tty to a
326                   sane state and totally confusing xxgdb's parser).
327                   this diff simply disables libedit if both readline emulation
328                   and "stty -echo" are used/set.   that is enough to make
329                   xxgdb work once again, but (XXX) this is not how GNU readline
330                   handles stty -echo (it does not echo anything, but editing
331                   commands like ^A,^K, etc.  still work), so the readline
332                   emulation isn't perfect.
333
334 Tue Aug 29 18:00:08 EST 2000    lukem
335
336         * don't bother testing for #if __STDC__; just assume we have it...
337
338 Mon Aug 28 22:45:08 EST 2000    lukem
339
340         * refine tests for IPv6 #defines (EAI_, AI_, NI_, ...).
341           should improve portability on systems which implement
342           RFC 2133 but not RFC 2553.
343
344 Wed Aug  9 02:12:51 EST 2000    lukem
345
346         * use #if __STDC__ instead of #ifdef __STDC__
347
348         * only test 'case NETDB_INTERNAL:' if it's defined
349
350         * fix support for --program-prefix et al
351
352         * only include <arpa/nameser.h> in the files that need it, because
353           the DELETE define in some system's implementations causes name
354           collisions in libedit.
355
356 Mon Aug  7 08:17:37 EST 2000    lukem
357
358         * merge ftp from NetBSD-current (20000807)
359                 * implement parseport(), which takes a string and attempts to
360                   convert it to a numeric port number
361                 * use parseport() in parse_url() and hookup()
362                 * don't try and lookup the port number using getaddrinfo(),
363                   as it's too hard to separate a failed host name lookup from
364                   a failed service name lookup.  this was causing lossage on
365                   systems that don't have `http' in services(5) (such as
366                   solaris), but only crept in when we started using
367                   getaddrinfo() unconditionally.
368
369 Wed Aug  2 23:43:50 EST 2000    lukem
370
371         * crank to version 1.5 beta3
372
373         * define NO_LONG_LONG not NO_QUAD
374
375         * detect if struct sockaddr.sa_len exists (rather than relying upon
376           #ifdef BSD4_4)
377
378         * detect if socklen_t exists, and if not, typedef as unsigned int
379
380         * detect if struct addrinfo exists, and if not declare it and #define
381           associated EAI_, AI_, and NI_ defines.
382
383         * look for & replace: getaddrinfo(), getnameinfo(), inet_ntop(),
384           inet_pton()
385         * look for gethostbyname2()
386
387         * don't bother looking for hstrerror() or inet_aton() anymore
388
389         * include <arpa/nameser.h> and <stddef.h>
390
391         * define USE_SELECT instead of __USE_SELECT
392
393         * always define HAVE_H_ERRNO
394
395         * add Brian Stark to THANKS, for lots of AIX porting feedback
396
397         * improve detection of sin_len for AIX (now part of sa_len test)
398
399         * add functions needed by recent ftp import:
400                 getaddrinfo(), getnameinfo(), inet_ntop(), inet_pton()
401           remove functions not needed anymore:
402                 hstrerror(), inet_aton()
403
404         * use #if HAVE_ISSETUGID not #ifdef
405
406         * update from NetBSD-current (20000802):
407                 - rename NO_QUAD to NO_LONG_LONG, QUAD* -> LL* and add ULL*
408                   (unsigned) equivalents. name change suggested by Klaus
409                   Klein <kjk@netbsd.org>
410                 - change defined(BSD4_4) || HAVE_SIN_LEN tests into
411                   HAVE_SOCKADDR_SA_LEN, and set the latter if BSD4_4 exists
412
413 Mon Jul 31 10:59:10 EST 2000    lukem
414
415         * merge ftp from NetBSD-current (20000731)
416                 - we can't just rename BSD4_4 -> HAVE_SIN_LEN, since bsd
417                   systems define BSD4_4; change tests to test for either
418                   defined(BSD4_4) or HAVE_SIN_LEN
419                 - more KNF
420
421 Sun Jul 30 16:55:09 EST 2000    lukem
422
423         * merge ftp from NetBSD-current (20000730):
424                 - clean up NO_QUAD support: create helper #defines and use as
425                   appropriate:
426                         #define         NOQUAD          ! NOQUAD
427                         -------         ------          - ------
428                         QUADF           "%ld"           "%lld"
429                         QUADFP(x)       "%" x "ld"      "%" x "lld"
430                         QUADT           long            long long
431                         STRTOL(x,y,z)   strtol(x,y,z)   strtoll(x,y,z)
432                 - always use getaddrinfo() and getnameinfo() instead of
433                   maintaining two code paths.
434                 - rename __USE_SELECT to USE_SELECT
435                 - rename BSD4_4 to HAVE_SIN_LEN
436                 - replace union sockunion {} with struct sockinet {}, and
437                   modify the code accordingly. this is possibly more portable,
438                   as it doesn't rely upon the structure alignment within the
439                   union for our own stuff.
440
441 Fri Jul 28 22:11:17 EST 2000    lukem
442
443         * merge ftp from NetBSD-current (20000728):
444                 - no trailing , on last item (FEAT_max) in enum
445                 - rename "opts" to "remopts", so people used to "o host"
446                   don't get bitten
447
448 Wed Jul 26 18:59:19 EST 2000    lukem
449
450         * merge ftp from NetBSD-current (20000726):
451                 - add support for FEAT and OPTS commands with `features' and
452                   `opts'.  (from RFC 2389).
453                 - add support for MLST & MLSD (machine parseble listings)
454                   with 'mlst', 'mlsd' and 'pmlsd' (mlsd |$PAGER) commands. 
455                   (from draft-ietf-ftpext-mlst-11)
456                 - rename remotesyst() to getremoteinfo(), and modify to parse
457                   the result from FEAT (if supported), and take into account
458                   the support for the various extensions such as MDTM, SIZE,
459                   REST (STREAM), MLSD, and FEAT/OPTS.
460                 - put each feature into one of the following categories:
461                         - known to work (explicit FEAT)
462                         - unknown but assume works until explicit failure,
463                           when it's then tagged as `known not to work'.
464                         - known not to work (FEAT succeeded but didn't return
465                           anything, or was unknown and then explicit failure)
466                   assign results into features[] matrix.
467                 - add support to getreply() so that an optional callback will
468                   be called for each line received from the server except for
469                   the first and last.  this is used in FEAT (and MLST) parsing.
470                 - modify various commands to check if REST (STREAM), MDTM and
471                   SIZE are explicitly or implicitly supported before using.
472                 - fix `syst' when verbose is off.
473                 - minor knf (indent goto labels by one space, etc).
474                 - simply various command usage handlers by assuming that
475                   argv != NULL except for quit() and disconnect().
476                 - errx?/warnx? audit.  do not pass variable alone, use %s. 
477
478         * check for issetugid() and don't use in libedit if it doesn't exist.
479
480         * merge libedit from NetBSD-current (20000726):
481                 * Only look in home directory for .editrc.  (Discussed
482                   with Christos.)
483
484         * in glob.c #undef TILDE before redefining, because some AIX systems
485           #define TILDE in <sys/ioctl.h>
486
487 Mon Jul 10 00:28:51 EST 2000    lukem
488
489         * released lukemftp 1.4
490
491 Thu Jun 15 23:28:49 EST 2000    lukem
492
493         * merge ftp from NetBSD-current (20000615):
494                 * migrate the SYST parsing from setpeer() into a separate
495                   remotesyst().  call remotesyst() only when login has been
496                   successful some servers don't let you run SYST until you've
497                   successfully logged in.
498                 * in fetch_ftp(), always call setpeer() with autologin
499                   disabled, and use the following ftp_login() to DTRT.  this
500                   prevents ftp from trying to login a second time if the
501                   first autologin fails when connecting to a remote site
502                   anonymously using autofetch.
503                 * reset unix_proxy and unix_server in cleanuppeer()
504                 * missed a function conversion in the KNF sweep...
505
506 Mon Jun 12 01:16:12 EST 2000    lukem
507
508         * change lukemftp.h to check !HAVE_STRDUP instead of !HAVE_STRSUP.
509           fixes compile problem on systems which have strdup() as a macro.
510
511         * merge ftp from NetBSD-current (20000612):
512                 from itojun: better fix for previous (doesn't need
513                 in_addr_t or u_int32_t)
514
515 Sun Jun 11 12:19:52 EST 2000    lukem
516
517         * merge ftp from NetBSD-current (20000611):
518                 portability fixes for lukemftp:
519                 * initconn(): use in_addr_t instead of u_int32_t when
520                   manipulating IPv6 addresses (and assume anything with ipv6
521                   has in_addr_t; if not, i'll add an autoconf test for it)
522                 * ai_unmapped(): not all systems have sin_len; so only set
523                   #ifdef BSD4_4
524                 * fix some lint
525
526 Mon Jun  5 21:10:31 EST 2000    lukem
527
528         * released lukemftp 1.3
529
530 Mon Jun  5 19:53:49 EST 2000    lukem
531
532         * convert various support files to ANSI C
533
534         * look for strtoll() instead of strtoq()
535
536         * update COPYRIGHT, THANKS, NEWS
537
538         * merge ftp from NetBSD-current (20000605):
539                 - fix ai_unmapped() to be a no-op in the !def INET6 case
540                 - display `(-INET6)' at the end of the version string if
541                   !def INET6
542                 - clarify in the man page that IPv6 support may not be present
543                   (for lukemftp :)
544
545         * ensure <vis.h> has VIS_WHITE et al
546
547 Sun Jun  4 18:00:07 EST 2000    lukem
548
549         * merge ftp from NetBSD-current (20000604):
550                 - Change `ls' to use the `LIST' and not `NLST' FTP protocol
551                   command.  Now that after many years on not caring we find
552                   certain popular ftp servers are starting to obey RFC959 to
553                   the letter of the law and will only return a list of
554                   filenames (not directories or other filetypes) in the
555                   output of `NLST', then `LIST' is more useful in this case.
556                   (Note that the aforementioned pedanticness means that
557                   filename completion isn't as useful as it could be...)
558                   Fixes [bin/8937] by David A. Gatwood
559                   <dgatwood@deepspace.mklinux.org>
560                 - convert to ANSI KNF
561                 - Add support for `fget localfile', which reads a list of
562                   filenames to retrieve from localfile.  Based on work by
563                   Darren Reed.
564                 - Update copyright dates.
565                 - s/strtoq/strtoll/ (the latter is standardised)
566                 - Add support for 'ftp -u url file ...', to upload a list of
567                   files to given url.  Mostly based on [bin/10019] by Scott
568                   Aaron Bamford <sab@ansic.net>
569                 - convert IPv4 mapped address (::ffff:10.1.1.1) into real IPv4
570                   address before touching it.  IPv4 mapped address complicates
571                   too many things in FTP protocol handling.
572                 - do not pass scoped IPv6 address notation on Host: directive,
573                   since scope identifier is local to the originating node.
574                   do not allow scoped IPv6 address notation in URL, if it is
575                   via proxy. 
576                 - fixes from cgd:
577                   * sanity check a length (otherwise certain bogus responses
578                     can crash ftp)
579                   * allow a transfer encoding type of `binary'; certain
580                     firewall vendors return this bogus type... 
581                 - make debugging output unambiguous on IPv6 numeric addrs
582                   (don't use host:port)
583                 - http://[::1]:8080/ is legal.
584                 - send Host: directive with RFC2732 bracket notation for IPv6
585                   numeric, otherwise "host:port" is ambiguous to servers
586                   (clarification will be submitted as update to RFC2732).
587                 - only use getaddrinfo() et al if both NI_NUMERICHOST *and*
588                   INET6 are defined...  (allows --disable-ipv6 in lukemftp's
589                   configure script to disable this as well, which is good for
590                   testing when it appears getaddrinfo() is borken)
591                 - updated comment on IPv4 mapped address.  sync with kame.
592                 - Fix examples on using pipes in local filenames.  AFAICT,
593                   ftp has always required `dir . |more' not as `dir |more'
594                   treats `|more' as the remote filename. Resolves [bin/9922]
595                   by Geoff Wing <mason@primenet.com.au>
596                 - ftp(1): treats IPv4 mapped destination as IPv4 peer, not
597                   native IPv6 peer.  this does not support network with SIIT
598                   translator.
599                 - inhibit too-noisy message for scoped address data transfer
600                   (will be enabled in "debug" mode).
601                 - only use IPTOS_ setsockopt()s if they're defined (e.g, SunOS
602                   doesn't).  from Havard.Eidnes@runit.sintef.no
603                 - allow IPv6 extended numeric address in host part.
604                   (draft-ietf-ipngwg-scopedaddr-format-01.txt). fixes PR 9616.
605
606         * merge libedit from NetBSD-current (20000604):
607                 - use strtol() (instead of atoi()) for sane error detection
608
609 Wed May 31 19:24:53 EST 2000    lukem
610
611         * merge libedit from NetBSD-current (20000531):
612                 - Fix refresh glitches when using auto-margin.
613                 - Don't dump core on empty .editrc files.
614                 - el_insertstr takes a "const char *" not "char *" now as it
615                   doesn't modify the argument.
616
617 Thu Feb  3 20:19:40 EST 2000    lukem
618
619         * released lukemftp 1.2
620
621 Tue Feb  1 09:47:51 EST 2000    lukem
622
623         * add --enable-ipv6 and --disable-ipv6 to configure
624
625         * modify libedit/sig.? to use sigfunc instead of sig_t, and
626           deprecate autoconf tests for retsigtype and sig_t.
627           This fixes portability problems with Digital UNIX 5.0.
628
629         * merge ftp from NetBSD-current (20000201):
630                 - define private type `sigfunc' as
631                         typedef void (*sigfunc) __P((int));
632                   and replace use of sig_t and void (*)(int).
633                   certain other OSes define sig_t differently to that (they
634                   add extra arguments), and it causes problems due to
635                   function mismatches, etc...
636
637 Wed Jan 26 22:54:38 EST 2000    lukem
638
639         * search for tgetent() in -ltermcap then -lcurses and -lncurses
640
641         * merge ftp from NetBSD-current (20000126):
642                 - roll back to using sscanf() instead of strptime() to parse
643                   `yyyymmddhhmmss' strings, since the latter technically can't
644                   parse dates without non alphanumerics between the elements
645                   (even though NetBSD's strptime() copes).
646
647 Tue Jan 25 19:09:37 EST 2000    lukem
648
649         * merge ftp from NetBSD-current (20000125):
650                 - complete_ambiguous(): be consistent about completing
651                   unambiguous matches; if the word is already complete then
652                   return CC_REFRESH so that the higher layer may append a
653                   suffix if necessary. Fix from Launey Thomas <ljt@alum.mit.edu>
654                 - change references from draft-ietf-ipngwg-url-literal-01.txt
655                   to RFC2732
656                 - work around bug in apache 1.3.9 which incorrectly puts a
657                   trailing space after the chunksize.  noted by Jun-ichiro
658                   itojun Hagino <itojun@itojun.org> in [bin/9096]
659                 - work around lame ftpd's that don't return a correct post-Y2K
660                   date in the output of `MDTM'.  obviously the programmer of
661                   aforementioned lame ftpd's did something like
662                         "19%02d", tm->tm_year
663                   instead of
664                         "%04d", tm->tm_year + TM_YEAR_BASE
665                   fixes [bin/9289] by jbernard@mines.edu
666
667         * merge libedit from NetBSD-current (20000125):
668                 - PR/9244: Kevin Schoedel: libedit dumps bindings
669                   inconsistently
670                 - PR/9243: Kevin Schoedel: libedit ignores repeat count
671                 - Add support for automatic and magic margins (from tcsh)
672                   This makes the rightmost column usable on all programs
673                   that use editline.
674
675 Tue Dec 21 08:59:22 EST 1999    lukem
676
677         * update INSTALL notes for some systems
678
679         * if sl_init() exists, check return value of sl_add() is int and
680           compile in a replacement copy if it's not the case
681
682         * don't look for <stringlist.h> - always use local prototypes; older
683           NetBSD systems may have conflicting prototypes
684
685 Mon Dec 20 11:21:28 EST 1999    lukem
686
687         * merge ftp from NetBSD-current (19991220):
688         - Move version from ftp_var.h to version.h
689         - Fix chunked support; probably broke after rate limiting was added.
690           Problem noticed/debugging assisted by giles lean
691           <giles@nemeton.com.au>.
692         - remove unnecessary freeaddrinfo(res), since res0 was changed to be
693           freed earlier in itojun's last commit. fixes [bin/8948].
694         - remove `const char *reason'; it was being assigned but not used.
695         - fix memory leak in fetch_url (no freeaddrinfo was there).
696           sync with recent KAME.
697         - separate out the main `data pump' loop into two: one that supports
698           rate limiting and one that doesn't. simplifies the code, and speeds
699           up the latter case a bit, at the expense of duplicating a few
700           lines...
701
702 Sun Nov 28 18:20:41 EST 1999    lukem
703
704         * merge ftp from NetBSD-current (19991128):
705         - implement xsl_init() and  xsl_add(); error checking forms of
706           sl_{init,add}()
707         - fix bug where the second press of <TAB> on an empty word (i.e, list
708           all options) may have resulted in an strncmp() against NULL. 
709           (detected by _DIAGASSERT())
710         - in cleanuppeer(), reset username to NULL after free()ing it.
711           fixes [bin/8870] by Wolfgang Rupprecht <wolfgang@wsrcc.com>
712         - complete_remote(): use remglob("", ...) instead of remglob(".", ...),
713           for listings of the current working directory; some ftp servers don't
714           like `NLST .'.
715           [noted by Giles Lean <giles@nemeton.com.au>]
716         - recvrequest(): treat remote=="" as remote==NULL when calling
717           command().  (to support the above change)
718         - support `[user@]' in `[user@]host' and `[user@]host[:][path]'.
719           [based on idea (and initial code) from David Maxwell <david@fundy.ca>]
720         - `idle' may be invoked without any args
721         - reformat some comments
722         - reformat usage string in program and man page
723         - call updateremotepwd() after successful login, not after successful
724           connect
725         - always call setsockopt(, IPPROTO_IP, IP_TOS, ) (et al); using #if
726           defined(IPPROTO_IP) doesn't work on certain foreign systems where
727           enums instead of #defines are used...
728           [noted by Matthias Pfaller <leo@dachau.marco.de>]
729
730 Mon Nov 15 23:01:58 EST 1999    lukem
731
732         * released lukemftp 1.1
733
734 Mon Nov 15 09:07:01 EST 1999    lukem
735
736         * merge libedit from NetBSD-current (19991115):
737                 - instead of using a private coord_t global variable to store
738                   the size of the rprompt, use the previously unused coord_t
739                   el->el_rprompt.p_pos
740
741 Sat Nov 13 14:42:22 EST 1999    lukem
742
743         * support caching of results in AC_MSG_TRY_{COMPILE,LINK}
744           autoconf tests
745
746         * add NEWS file
747
748         * clarify copyright statement in COPYING
749
750         * merge ftp from NetBSD-current (19991113):
751                 - implement `set rprompt'; right side version of `set prompt'.
752                   depends on EL_RPROMPT support i added to editline(3).
753                 - allow $FTPPROMPT and $FTPRPROMPT to override defaults for
754                   the relevant prompts
755                 - move `%' formatting code from prompt() to expandbuf().
756                 - implement `%.' and `%c', similar to the same % codes in
757                   tcsh(1) (functionality I added to tcsh nearly 6 years ago),
758                   except that `%.' always does `...trailing' and `%c' always
759                   does `/<x>trailing'.
760                 - unknown `%foo' codes get printed as `%foo'
761                 - implement updateremotepwd(); update the global variable
762                   `remotepwd' to contain the remote working directory.
763                 - add `set prompt', a user configurable prompt. (defaults to
764                   `ftp> ').  the following escape characters a la tcsh(1) are
765                   supported: %/, %m, %M, and %n.
766                 - add global var `username'; used by prompt code
767                 - fix a couple of minor memory leaks
768                 - bump version
769                 - prevent minor memory leak (unnecessary strdup)
770                 - implement restarting file:/// non-proxied http:// URLs
771                   (with -R).
772                 - fix a semicolono which stopped file:/// from working
773                 - split the version string into product and version
774                 - be consistent about reporting the version between:
775                         + status command
776                         + about:version URL fetch
777                         + User-agent sent in http requests
778                 - hookup(): when using getservbyname() (when getaddrinfo()
779                   isn't available), if the provided port is a valid number
780                   use that rather than trying to do getservbyname() against
781                   it. fixes a problem on foreign systems noted by Chuck
782                   Silvers <chuq@chuq.com>
783                 - support `about:version'. also display the version in the
784                   output of `status'.
785
786         * merge libedit from NetBSD-current (19991113):
787                 - implement printing a right-side prompt. code derived from
788                   similar work I wrote for tcsh(1) three years ago.
789                 - implement EL_RPROMPT, which allows a setting/getting of a
790                   function which returns a string to be used as the
791                   right-side prompt.
792
793         * replace manually managed config.h.in with acconfig.h and use
794           autoheader to generate the former.
795
796         * add missing entry for `#undef write' in acconfig.h (for SOCKS)
797
798         * configure.in:
799                 - use `LL' suffix on long long constant used to test
800                   snprintf("%lld")
801                 - test for EL_RPROMPT instead of EL_EDITMODE, since the
802                   former is is a newer required feature
803
804         * in makelist, set LC_ALL="C", in case the locale confuses awk.
805           problem noted by Peter Seebach <seebs@plethora.net>
806
807 Wed Oct 27 07:00:00 UTC 1999    lukem
808
809         * released 1.0
810
811         * removed libedit/TEST/test.c; no need to distribute it
812
813 Mon Oct 25 21:59:54 EST 1999    lukem
814
815         * released 1.0b7
816
817         * put VERSION string into lukemftp.h, and display with the `status'
818           command
819
820 Mon Oct 25 11:36:59 EST 1999    lukem
821
822         * merge ftp from NetBSD-current (19991025):
823         - fix up confirm() (broke `a' and `p' in last commit)
824         - simplify main loop (don't need `top' variable any more)
825         - use a struct sockaddr_in6.sin6_addr for the result from inet_pton(),
826           rather than u_char buf[16]
827         - add a few more comments
828
829         new features:
830         - add `usage'; displays the usage of a command.
831           implemented by calling the c_handler() with argc = 0, argv =
832           "funcname".
833         - add `passive auto'; does the same as $FTPMODE=auto.
834         - add `set [option value]'; display all options, or set an option to
835           a value.
836         - add `unset option'; unset an option.
837         - add getoptionvalue() to retrieve an option's value, and replace a few
838           global variables with calls to this.
839         - implement cleanuppeer(), which resets various bits of state back to
840           `disconnected'. call in disconnect() and lostpeer().
841         - support completing on `options'.
842         - improve recovery after a SIGINT may have closed the connection.
843           XXX: there's still a couple to fix
844
845         other stuff:
846         - various consistency fixes in the man page.
847         - ensure that the command usage strings in the code and man page
848           match reality.
849         - mput/mget: check that the connection still exists before each xfer.
850         - minor cosmetic changes in confirm().
851         - set code correctly in sizecmd() and modtime()
852         - don't need \n in err() strings.
853         - change lostpeer to take an argument (rather than casting
854           (sig_t)lostpeer in signal handlers)
855         - knf and whitespace police.
856
857 Sun Oct 24 17:02:59 EST 1999    lukem
858
859         * merge libedit from NetBSD-current (19991024):
860                 - don't assume locales are not working - it may not be
861                   the case
862                 - re_refresh(): cast the character passed to re_addc() to
863                   unsigned char,  so we don't end up calling isprint() with
864                   negative value when chars are signed and character value
865                   is >= 128
866                 - Fix pointer arithmatic (caused problems on LP64, including
867                   ftp dumping core when `edit' was turned off then on).
868                   Problem solved by David Huggins-Daines <dhd@eradicator.org>
869
870 Tue Oct 12 18:05:21 EST 1999    lukem
871
872         * install man page from ${srcdir} not from .
873
874 Tue Oct 12 17:00:41 EST 1999    lukem
875
876         * released 1.0b6
877
878         * merge from NetBSD-current (19991012):
879           a few user interface and cosmetic tweaks:
880                 - confirm(): move from util.c to cmds.c. display mnemonic
881                   string in its prompt. add support for `q' (terminate
882                   current xfer), `?' (show help list)
883                 - in various signal handlers, output a linefeed only if
884                   fromatty.
885                 - if fgets(stdin) returned NULL (i.e, EOF), clearerr(stdin)
886                   because you don't want future fgets to fail. this is not
887                   done for the fgets() in the main command loop, since ftp
888                   will quit at that point.
889                 - unless ftp is invoked with -a, don't retain the anonftp
890                   setting between hosts (`ftp somehost:' sets anonftp, but
891                   you don't want that to `stick' if you close that connection
892                   and open a new one).
893
894 Mon Oct 11 23:06:38 EST 1999    lukem
895
896         * check for working const
897
898         * reorganise addition of -lukem to LIBS (was being added twice)
899
900         * merge from netbsd-current:
901                 - use sigjmp_buf instead of jmp_buf for sigsetjmp() buffer
902
903         * libedit: don't bother generating & compiling editline.c, since
904           its component parts are compiled anyway.
905
906 Sun Oct 10 12:08:39 EST 1999    lukem
907
908         * released 1.0b5
909
910         * in libedit, use xsignal_restart() (from src/util.c) instead of
911           signal(); the isn't guaranteed to work on some foreign systems
912           (e.g, IRIX) if sigaction() is used in the same program.
913
914         * merge from netbsd-current:
915                 - use sigsetjmp()/siglongjump() instead of setjmp()/longjmp();
916                   the latter don't save the signal mask on some foreign systems.
917                 - ensure signal handlers don't use stdio and do reset errno
918                   if they don't exit with siglongjmp()
919                 - use a common SIGINT handler for {send,recv}request()
920                 - allow a second SIGINT during the "xfer aborted. waiting for
921                   remote to finish abort." stage. if this occurs, just call
922                   lostpeer() to close the connection.  whilst this might be
923                   considered brutal, it's also extremely handy if you're
924                   impatient or there's lossage at the remote end.
925
926         * add preformatted manual page
927
928         * fix --enable-editline
929
930 Wed Oct  6 10:19:00 EST 1999    lukem
931
932         * released 1.0b4
933
934         * don't defining SIGINFO to SIGQUIT if the former doesn't exist; the
935           code now supports both as a method of getting the transfer stats
936
937         * rototill signal handling in the actual data xfer routines, and
938           specifically set SIGQUIT to psummary in each one, to override
939           editline's handler
940
941 Tue Oct  5 23:48:29 EST 1999    lukem
942
943         * factor out SIGINFO setting into a handler that is always active
944           (but only prints out info if bytes > 0). only set the handler if
945           SIGINFO is defined
946
947         * hijack SIGQUIT to be the same as SIGINFO
948
949         * in {recv,send}request(), factor a lot of duplicated code out into
950           a `cleanup' section at the end
951
952         * rework shell() a bit
953
954         * enhancments from Marc Horowitz <marc@mit.edu> to improve
955           connection timeouts:
956                 - implement xsignal_restart(), which only sets the SA_RESTART
957                   flag if specifically requested
958                 - xsignal() is now a wrapper to xsignal_restart(). INFO,
959                   USR1, USR2 and WINCH are restartable, ALRM, INT, PIPE and
960                   QUIT are not
961                 - improve getreply()'s timeout code to take advantage of the
962                   above
963
964         * improve wording of how globbing works for `classic' URLs (host:path)
965           suggested by John Refling <johnr@imageworks.com> in relation to PRs
966           [bin/8519] and [bin/8520]
967
968         * always compile in the `edit' command even if NO_EDITCOMPLETE defined
969           it's just a no-op in the latter case, which is more consistent to
970           the users
971
972         * always compile in about: support (i.e, remove NO_ABOUT).  i'm
973           entitled to some vanity in this program...
974
975         * update copyrights
976
977 Mon Oct  4 10:57:41 EST 1999    lukem
978
979         * Invoke ar with `cr' not `cq'
980
981         * Use AC_PROG_RANLIB to find ranlib, and use it on the libraries
982
983         * Remove `makelist' from dependency list for libedit files; re-running
984           configure shouldn't result in rebuilding libedit
985
986         * Add support for --{en,dis}able-editcomplete (defaults to enabled),
987           which prevents libedit support from being compiled in.
988           From Chris G. Demetriou <cgd@netbsd.org>
989
990 Sun Oct  3 16:49:01 EST 1999    lukem
991
992         * touch up the README
993
994         * add COPYING, INSTALL, THANKS
995
996         * whitespace consistency
997
998         * in config.h, replace NO_QUAD with HAVE_QUAD_SUPPORT, and in
999           lukemftp.h define the former if the latter is non zero
1000
1001         * change test against GETPGRP_VOID from #ifdef to #if
1002
1003         * snprintf(): in the truncation case, ensure that the length
1004           returned is the actual length, not the needed length
1005
1006 Sat Oct  2 00:41:34 EST 1999    lukem
1007
1008         * fix more lossage with $(srcdir) / $(VPATH) stuff; seems to work now
1009           when configured in a separate directory
1010
1011         * actually test the correct variable when determining whether to run
1012           AC_FUNC_GETPGRP
1013
1014 Fri Oct  1 19:32:22 EST 1999    lukem
1015
1016         * released 1.0b3
1017
1018         * use AC_PROG_MAKE_SET
1019
1020         * determine setting of NO_QUAD with configure not lukemftp.h
1021
1022         * if have long long and have snprintf, test that snprintf
1023           supports %lld. if it doesn't use private version
1024
1025         * change strtoq from returning off_t to returning long long
1026
1027         * updates from NetBSD mainline:
1028                 - only try epsv once per connection (i.e, don't bother again
1029                   if it fails)
1030                 - improve description of rate command
1031                 - fix up global vars; they're now externed in ftp_var.h
1032                   except when main.c includes it
1033                 - remove "pathnames.h"
1034
1035 Fri Oct  1 10:08:43 EST 1999    lukem
1036
1037         * updates from NetBSD mainline:
1038                 - fix determining of homedir
1039                 - parse_url(): fix checking of portnum
1040                 - move kame copyrights after bsd/tnfi ones
1041
1042         * released 1.0b2
1043
1044         * add %lld and %qd support to snprintf() for displaying long long's
1045
1046         * support VPATH and srcdir
1047
1048 Thu Sep 30 17:19:35 EST 1999    lukem
1049
1050         * released 1.0b1
1051
1052         * fix from NetBSD mainline: in empty() FD_ZERO the correct variable
1053
1054 Wed Sep 29 23:34:33 EST 1999    lukem
1055
1056         * major rework; reimport code from NetBSD-current 1999/09/29 into
1057           separate subdirectories and build from there. organisation is now:
1058                 libedit         replacement libedit
1059                 libukem         replacements for missing functions
1060                 src             main ftp source
1061
1062 Mon Sep 27 00:43:12 EST 1999    lukem
1063
1064         * released 1.0 a6
1065
1066 Sun Sep 26 17:17:05 EST 1999    lukem
1067
1068         * released 1.0 a5
1069
1070 Sat Sep 25 00:58:28 EST 1999    lukem
1071
1072         * released 1.0 a4
1073
1074 Fri Sep 24 17:07:07 EST 1999    lukem
1075
1076         * released 1.0 a3
1077
1078 Fri Sep 24 16:18:29 EST 1999    lukem
1079
1080         * released 1.0 a2
1081
1082 Tue Sep 21 11:38:49 EST 1999    lukem
1083
1084         * import usr.src/bin/ftp and usr.src/lib/libedit sources from NetBSD