This commit was manufactured by cvs2svn to create tag
[krb5.git] / src / appl / gssftp / ftpd / ChangeLog
1 2000-06-14  Tom Yu  <tlyu@mit.edu>
2
3         * ftpcmd.y (nonguest): Return $1, not 1, if (!guest).
4
5 2000-05-11  Nalin Dahyabhai  <nalin@redhat.com>
6
7         * ftpd.c (gunique): Make sure that path stored in "new" isn't too long.
8
9 2000-02-18  Ken Raeburn  <raeburn@mit.edu>
10
11         * ftpd.c (reply, lreply): Declare with format attribute under
12         gcc.
13         (send_data, receive_data, send_file_list): Declare some variables
14         volatile to protect against getting clobbered by setjmp/longjmp.
15         * popen.c (ftpd_popen): Declare IOP volatile.
16
17 1999-10-26  Tom Yu  <tlyu@mit.edu>
18
19         * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
20         LOCAL_INCLUDES such that one can override CFLAGS from the command
21         line without losing CPP search patchs and defines. Some associated
22         Makefile cleanup. [from wsanchez@apple.com]
23
24 1999-09-21  Ken Raeburn  <raeburn@mit.edu>
25
26         * ftpd.c (checkuser): Only call fclose on file handle if it's not
27         NULL.
28         (send_file_list): Don't declare strpbrk function if it's defined
29         as a macro.
30
31 Thu Mar 25 23:13:56 1999  Tom Yu  <tlyu@mit.edu>
32
33         * ftpd.c (login): Check that the luid is not the uid we want to
34         change to prior to calling setluid() so that we can run as
35         non-root.
36
37 Wed Mar 24 17:11:32 1999  Tom Yu  <tlyu@mit.edu>
38
39         * ftpcmd.y (urgsafe_getc): New function; like getc() except it
40         retries once if SIOCATMARK returns TRUE.
41         (getline): Use urgsafe_getc() rather than getc() to avoid problems
42         with certain Mac clients that cause the urgent pointer to end up
43         in a location that results in EOF from getc().
44
45 Fri Mar 12 07:35:01 1999  Tom Yu  <tlyu@mit.edu>
46
47         * ftpd.c (user): Remove extra "%s" in call to sprintf() to avoid
48         dereferencing stack garbage.
49
50 Mon Mar  8 23:47:51 1999  Tom Yu  <tlyu@mit.edu>
51
52         * ftpd.M: Resync with reality.
53
54         * Makefile.in (ftpd): Add libpty to link line.  Remove mention of
55         logwtmp files.
56
57         * ftpd.c: Fix up hostname logging to use
58         pty_make_sane_hostname().
59
60 Thu Feb 25 23:31:37 1999  Tom Yu  <tlyu@mit.edu>
61
62         * ftpd.c (reply): Don't call secure_gss_error() or secure_error()
63         from within reply() to avoid setting up an infinite
64         loop. [krb5-appl/684]
65
66 Thu Feb 18 18:34:23 1999  Tom Yu  <tlyu@mit.edu>
67
68         * ftpd.c (login): Add call to setluid() if necessary.
69
70 Fri Feb 12 21:11:18 1999  Tom Yu  <tlyu@mit.edu>
71
72         * ftpd.c: strcat -> strncat
73
74 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
75
76         * Makefile.in: Set the myfulldir and mydir variables (which are
77                 relative to buildtop and thisconfigdir, respectively.)
78
79 Mon Oct 26 13:46:47 1998  Dan Winship  <danw@mit.edu>
80
81         * ftpd.c (main): Add -A (require authentication, but not
82         necessarily authorization) and -C (user wants local credentials).
83
84         (user): Implement -A. Reorganize code a bit. If want_creds (-C) is
85         set, require a password even if authorization succeeds.
86
87         (kpass): Add krb5 ticket-getting code too. If want_creds is set,
88         don't destroy the tickets after verifying the Kerberos password.
89
90         (pass): Check krb password before local password, so we can
91         get credentials if we need them. Ignore local password if
92         want_creds is set. In case of "too many failed login attempts",
93         exit via dologout() instead of exit() so on-disk credentials are
94         destroyed.
95
96         (auth_data): If user forwards GSSAPI creds and want_creds is set,
97         write them out to a krb5 ccache. If doing krb4 compat, convert
98         them to krb4 tickets as well. (If want_creds is not set, smile and
99         nod at the user and then destroy the creds.)
100
101         (end_login): If the user has creds on disk, destroy them.
102         (dologout): If the user has creds on disk, destroy them.
103
104         * ftpd.M: Add -A and -C.
105         
106 Fri Oct 23 18:18:52 1998  Theodore Y. Ts'o  <tytso@mit.edu>
107
108         * ftpd.c (pass): Wait 5 seconds before returning "password
109                 incorrect", and only allow three bad passwords.  Then
110                 return an 421 reply code before closing the connection and
111                 going away.
112
113         * ftpcmd.y (cmd): Don't allow the PORT command to accept a port
114                 number lower than 1024; this prevents some nasty ftp
115                 "bounce attacks" to SMTP ports, etc.
116
117 Tue Oct 20 16:29:46 1998  Dan Winship  <danw@mit.edu>
118
119         * ftpd.M: Reality check. Add -a to synopsis, document -c and -u
120         and CCC.
121
122 1998-10-08  Geoffrey King  <gjking@mit.edu>
123
124         * ftpd.c: Add support for restricted users, as requested in
125         [krb5-appl/481].  Users that appear in /etc/ftpusers, followed
126         by the keyword "restrict" will be granted access, but a chroot()
127         will be done to their home directory.
128
129 Tue Sep 29 19:25:09 1998  Theodore Y. Ts'o  <tytso@mit.edu>
130
131         * ftpd.c (auth_data): Don't use h_errno, it's not fully portable,
132                 and it's not worth it.
133
134 1998-08-28  Geoffrey King  <gjking@mit.edu>
135
136         * ftpd.c (login): New function.  Essentially, the old pass
137         function has been split into its two logical components, pass and
138         login.  Don't reply 230 "User logged in" if the user didn't
139         send a PASS command; this causes the client to get a bit confused.
140         (pass): If auth_ok is true, reply with code 202 to tell the
141         user that a PASS command is not necessary. 
142         (auth_ok): New function that returns true if either gss_ok or
143         kerb_ok is true (all the #ifdefs were beginning to clutter things,
144         and it's a good abstraction in case other auth types are ever
145         added in the future).
146         (user): If GSSAPI or Kerberos v4 authentication succeeds, call
147         login immediately, instead of waiting for the client to send "PASS
148         dummy."  Also, use #ifdef PARANOID instead of "some paranoid sites
149         may wish to uncomment this"
150
151 Wed Aug 19 06:47:46 1998  Geoffrey King  <gjking@mit.edu>
152
153         * ftpd.c: Add a new command line option, -c, which tells the
154         server to accept the CCC command.
155
156         * ftpcmd.y: If the -c option was given, check to make sure the CCC
157         command itself was integrity protected, and then set ccc_ok to
158         allow future commands to be transmitted as cleartext.
159         (getline): Now that CCC is potentially allowed, we must check to
160         see if we are parsing an unprotected command even if a security
161         context is established (i.e. auth_type is set).
162
163 Wed Aug 12 02:57:07 1998  Geoffrey King  <gjking@mit.edu>
164
165         * ftpcmd.y, ftpd.c: Replace global variable level with clevel and
166         dlevel to allow independence of command and data channel
167         protection levels.
168
169 Tue Aug 11 04:30:59 1998  Matthew D Hancher  <mdh@mit.edu>
170
171         * ftpd.c: Add support for extended logging as per PR#481. Using 
172         the 'l' command line option twice now logs the major file commands, 
173         and using it thrice logs bytecounts for RETR and STOR as well.
174
175 Fri Aug  7 00:56:30 1998  Matthew D Hancher  <mdh@mit.edu>
176
177         * ftpcmd.y: Replace old KERBEROS #ifdef's with KRB5_KRB4_COMPAT
178         so that K4 compatibility support actually gets compiled in.
179         
180         * ftpd.c: (pass): Make daemon not lose for homedirs on 
181         root-squashing filesystems.
182         (auth_data): Fix that godawful "error: No error" message 
183         when gss_acquire_cred() fails.
184         (user): Fix getusershell() code so it works more than once.
185
186 1998-07-11    <hartmans@fundsxpress.com>
187
188         * ftpd.c (data;): do not declare h_errno; breaks on AIX and
189         possibly with other multithreaded systems.
190
191 1998-05-26  Theodore Ts'o  <tytso@rsts-11.mit.edu>
192
193         * logwtmp.c: Include paths.h if present, and use _PATH_WTMP to
194                 determine WTMPFILE.
195
196 Fri May  8 18:06:52 1998  Theodore Y. Ts'o  <tytso@mit.edu>
197
198         * ftpcmd.y (cmd): Fix Y2K problem in the MDTM command.
199
200 Fri Apr 10 20:06:31 1998  Tom Yu  <tlyu@mit.edu>
201
202         * ftpd.c (receive_data):
203         (send_data): Add support for sigsetjmp().
204         (main): Use sigaction() if we can to avoid SysV lossage.
205         (send_file_list): Oops missed a sigsetjmp() call.
206         (send_data): Add call to secure_flush() to send a zero length
207         buffer when aborting.
208         (send_file_list): Add call to secure_flush() to send a zero length
209         buffer when aborting.
210
211         * ftpcmd.y (PBSZ): Remove restriction on shrinking buffer size.
212
213 Thu Mar  5 13:59:47 1998  Dan Winship  <danw@mit.edu>
214
215         * ftpcmd.y (getline): Don't syslog passwords! (or newlines)
216
217 Tue Feb 24 21:34:34 1998  Tom Yu  <tlyu@mit.edu>
218
219         * ftpcmd.y: Add production "nonguest" to catch things that
220         anonymous users aren't supposed to do.  Replace "check_login" with
221         "nonguest" in a few places to prevent w4r3z d00dz from being
222         lame with world-writable incoming directories.
223
224 Sun Feb 22 19:37:07 1998  Tom Yu  <tlyu@mit.edu>
225
226         * ftpd.c: Use krb5_seteuid() and krb5_setegid(). [krb5-libs/505]
227
228         * Makefile.in (ftpd): Fix up KRB4COMPAT_LIBS (was KRB5_BASE_LIBS),
229         and add UTIL_LIB.
230
231 Wed Feb 18 15:30:10 1998  Tom Yu  <tlyu@mit.edu>
232
233         * Makefile.in: Remove trailing slash from thisconfigdir.  Fix up
234         BUILDTOP for new conventions.
235
236 Fri Feb 13 22:23:34 1998  Theodore Y. Ts'o  <tytso@mit.edu>
237
238         * ftpd.c: Applied lxs's changes to make ftpd safe for systems
239                 where sizeof(off_t) > sizeof(int).
240
241 Fri Feb 13 15:31:46 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>
242
243         * Makefile.in (thisconfigdir), configure.in: Point the
244                 configuration directory at our parent, and remove our
245                 local configure.in
246
247 Mon Feb  2 17:02:29 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>
248
249         * Makefile.in: Define BUILDTOP and thisconfigdir in the Makefile
250
251 Fri Feb  6 13:25:28 1998  Theodore Y. Ts'o  <tytso@mit.edu>
252
253         * popen.c (ftpd_popen): Make sure you can't overrun the argv[] and
254                 gargv[] arrays.  (Patch submitted by dima@best.net).
255
256 Thu Jan 29 19:51:02 1998  Dan Winship  <danw@mit.edu>
257
258         * ftpd.c (auth_data): Accept forwarded credentials and dispose of
259         them properly. (And fix some indentation bugs.)
260
261 Sun Dec 21 18:17:53 1997  Tom Yu  <tlyu@mit.edu>
262
263         * logwtmp.c (ftp_logwtmp): Rename logwtmp to ftp_logwtmp to avoid
264         collision with native logwtmp.  Also, return void rather than
265         int.
266
267         * ftpd.c: Rename logwtmp to ftp_logwtmp to avoid collision with
268         native logwtmp.
269
270 Thu Dec 11 23:28:07 1997  Tom Yu  <tlyu@mit.edu>
271
272         * ftpd.c: Don't include netdb.h or sys/socket.h if krb.h is
273         included; this works around an Ultrix bug where those headers
274         aren't protected against multiple inclusion.
275
276 Thu Oct 16 01:23:41 1997  Tom Yu  <tlyu@mit.edu>
277
278         * Makefile.in: Change LOCALINCLUDE and the link line to allow for
279         krb4 compatibility.
280
281         * ftpd.c: Change KERBEROS to KRB5_KRB4_COMPAT where appropriate.
282         (reply): Fix up braces around the check for auth_type ==
283         "KERBEROS_V4" so that the nesting of if statements is correct.
284         Various and sundry fixes from danw@mit.edu to make it work.
285
286 Thu Aug 28 23:48:27 1997  Sam Hartman  <hartmans@luminous.mesas.com>
287
288         * ftpd.c (send_file_list): Flush the data before closing it.
289
290 Sun Aug 17 14:24:09 1997  Ezra Peisach  <epeisach@mit.edu>
291
292         * Makefile.in (SRCS): Add $(srcdir) where needed.
293
294 Wed Jul 16 19:03:18 1997  Theodore Y. Ts'o  <tytso@mit.edu>
295
296         * ftpd.M: Fix name of srvtab file to be krb5.keytab.
297
298 Wed Feb  5 20:34:38 1997  Tom Yu  <tlyu@mit.edu>
299
300         * Makefile.in:
301         * configure.in: Update to new program build procedure.
302
303 Tue Nov 12 00:04:00 1996  Tom Yu  <tlyu@mit.edu>
304
305         * ftpd.c (ftpd_userok): Don't undconditionally return -1.
306
307 Thu Nov  7 15:38:51 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
308
309         * ftpd.c (ftpd_userok): Check return value of krb5_init_context()
310
311 Thu Oct 17 23:55:32 1996  Mark Eichin  <eichin@cygnus.com>
312
313         * ftpd.c (auth_data): actually exit the for loop if the ftp key
314         was ok.
315
316 Mon Oct 14 07:54:17 1996  Ezra Peisach  <epeisach@kangaroo.mit.edu>
317
318         * ftpd.c (secure_fprintf): Use STDARG routines if
319                 present. [krb5-appl/108]
320
321 Tue Sep 10 14:07:36 1996  Tom Yu  <tlyu@mit.edu>
322
323         * ftpd.M: remove ".so man1/header.doc"
324
325 Mon Jul 29 22:37:05 1996  Ezra Peisach  <epeisach@kangaroo.mit.edu>
326
327         * configure.in: Determine sizeof short, int, long for secure.c
328
329 Tue Jul 23 23:13:07 1996  Marc Horowitz  <marc@mit.edu>
330
331         * ftpd.c (auth_data): the logic which dealt with multiple acceptor
332         names and fallback was just broken.
333
334 Wed Jul 10 16:38:01 1996  Marc Horowitz  <marc@mit.edu>
335
336         * ftpd.c (store), ftpcmd.y (STOR, APPE, STOU): rename store() to
337         store_file() to avoid conflict with dbm store() function
338         * ftpd.c (delete), ftpcmd.y (DELE): rename delete() to
339         delete_file() to avoid conflict with the dbm delete() function
340
341 Thu Jun 13 18:35:19 1996  Kevin L Mitchell  <klmitch@mit.edu>
342
343         * ftpd.c (authdata): misplaced braces caused server to not be able to
344                 use ftp principle if it was present.  Client looks for ftp
345                 first, then tries host; ftpd was looking only for host.
346
347 Mon Jun  3 16:12:59 1996  Tom Yu  <tlyu@mit.edu>
348
349         * Makefile.in, configure.in: back out previous changes and use
350                 Ezra's patches instead.
351
352 Sun Jun  2 22:08:17 1996  Tom Yu  <tlyu@mit.edu>
353
354         * configure.in, Makefile.in: only link getdtablesize.o if needed
355
356 Thu Mar 28 21:07:20 1996  Ken Raeburn  <raeburn@cygnus.com>
357
358         * ftpcmd.y: Define unix for HP-UX.
359
360 Mon Mar 18 12:12:20 1996  Ezra Peisach  <epeisach@kangaroo.mit.edu>
361
362         * configure.in: Add AC_HEADER_STDARG
363
364         * ftpcmd.y, ftpd.c: Declard STDARG if HAVE_STDARG_H is
365                 declared. 
366
367 Fri Mar 15 14:16:41 1996  Ezra Peisach  <epeisach@kangaroo.mit.edu>
368
369         * ftpd.c (auth_data): Do not fail if last gss_service is not
370                 present in keytab. If no services present, return a useful
371                 minor error status.
372
373 Fri Mar 15 01:24:39 1996  Richard Basch  <basch@lehman.com>
374
375         * configure.in, ftpd.c: Added shadow password support.
376
377 Wed Mar 13 20:05:52 1996  Mark Eichin  <eichin@cygnus.com>
378
379         * ftpd.c (auth_data): use gethostbyname to canonicalize local host
380         name, just like krb5_sname_to_principal does.
381
382 Fri Feb 16 15:51:59 1996  Mark Eichin  <eichin@cygnus.com>
383
384         * ftpcmd.y (yylex): error handling changes from kbalk@hp.com.
385
386 Tue Jan 16 18:44:42 1996  Mark Eichin  <eichin@cygnus.com>
387
388         * ftpd.c (user): 331 is more appropriate for kuserok failure.
389
390 Wed Feb  7 13:33:41 1996  Ezra Peisach  <epeisach@kangaroo.mit.edu>
391
392         * Makefile.in (clean): Remove ftpd
393
394 Thu Jan 18 18:39:06 1996  Sam Hartman  <hartmans@zygorthian-space-raiders.MIT.EDU>
395
396         * configure.in: Check for crypt in -lcrypt
397
398         * ftpd.c: Conditionalize sys_errlist
399
400         * configure.in: Check to declare sys_errlist.
401
402 Thu Jan 18 14:55:42 1996  Sam Hartman  <hartmans@tertius.mit.edu>
403
404         * ftpd.c : Only return an unable to acquire credentials error if all possible services fail.
405
406 Sun Jan 14 02:58:42 1996  Mark Eichin  <eichin@cygnus.com>
407
408         * ftpd.c (auth_data): call gss_release_cred on the server_creds we
409         acquired, before they leave scope.
410
411 Sun Jan 14 02:47:19 1996  Karri Balk - Contractor <kbalk@cup.hp.com>
412
413         * ftpd.c (gss_services): list of gssapi service names to try.
414         (auth_data): loop over gss_services.
415
416 Sun Jan 14 01:54:35 1996  Bill Schoofs <wjs@cray.com>
417
418         * Makefile.in (DEFINES): define NOCONFIDENTIAL for future use.
419         * ftpcmd.y (CCC): ditch broken CCC code, return proper 534 code.
420         (PBSZ): return proper code 501 for bad PBSZ argument
421         (PROT): recognize PROT E.
422         (cmdtab): add CCC so as to cleanly reject it.
423         (getline): reject CONF as unsupported (but put in code to
424         potentially recognize it in the future.) Reject protected commands
425         of auth_type isn't yet set.
426         * ftpd.c (setlevel): use 536, not 504, for invalid level, and
427         use levelnames to find the proper name.
428         (user): if kuserok succeeds, respond 232, not 231; if it fails,
429         respond 336 (though 331 might be more appropriate.)
430         (auth): fix spelling error.
431         
432 Tue Jan  2 19:19:16 1996  Mark Eichin  <eichin@cygnus.com>
433
434         * ftpd.c: use HAVE_SETEUID and HAVE_SETRESUID to figure out how
435         to emulate seteuid instead of assuming hpux.
436         * configure.in: test for seteuid, setreuid and setresuid.
437
438 Fri Oct 20 17:17:19 1995  Mark Eichin  <eichin@cygnus.com>
439
440         * ftpd.c (auth_data): supply correct channel bindings to accept,
441         matching the client changes.
442
443 Thu Oct 19 12:22:28 1995  Mark W. Eichin  <eichin@cygnus.com>
444
445         * configure.in: check WITH_DBM_LNAME since we use an_to_ln.
446
447 Wed Oct  4 19:26:50 1995  Mark Eichin  <eichin@cygnus.com>
448
449         * ftpd.c (user): use HAVE_GETUSERSHELL.
450         * configure.in: check for getusershell.
451
452 Mon Oct  2 16:43:54 1995  Mark Eichin  <eichin@cygnus.com>
453
454         * popen.c (ftpd_popen): malloc all strings, not just globbed ones.
455
456 Sun Oct  1 03:31:24 1995  Mark Eichin  <eichin@cygnus.com>
457
458         * ftpd.c (auth_data): acquire credentials (currently fixed for
459         service "host".) Fix loop reply logic. Add debugging syslogs. Set
460         auth_type *after* 235 success reply, so it doesn't get encrypted.
461
462 Sun Oct  1 00:58:39 1995  Mark Eichin  <eichin@cygnus.com>
463
464         * Makefile.in: use FTP_BUFSIZ everywhere and make it large for
465         now.
466         * configure.in: check for headers need to build getdtablesize.
467         * ftpd.c (secure_reply): add GSSAPI hooks.
468         (reply_gss_error): better gssapi error reporting.
469         
470
471 Sat Sep 30 22:26:25 1995  Mark Eichin  <eichin@cygnus.com>
472
473         * ftpd.c: correct gssapi includes. Fix type of client_name. Use
474         gss_ok instead of kerb_ok for GSSAPI case (to simplify future
475         combined code.) Fix some declarations. Fix arguments to
476         gss_accept_sec_context for type.
477         * ftpcmd.y: correct gssapi includes.
478         
479 Sat Sep 30 21:40:30 1995  Mark Eichin  <eichin@cygnus.com>
480
481         * Makefile.in: hook setenv.c and getdtablesize.c from appl/bsd.
482         Use double-colon rules for clean, depend, install.
483         configure.in: check for yacc, SIGTYPE, UTMP, SIGPROCMASK,
484         WAIT_TYPE, getdtablesize, getcwd, setenv (using the test from
485         appl/bsd.)
486         * ftpcmd.y: no conf.h. declare level. Use krb5_sigtype directly.
487         * ftpd.c: use getcwd directly, make -s srvtab KERBEROS specific.
488         (user): return 331 as per draft-8, but suggest 53z.
489         (auth_data): return 535 and 335 and quote draft-8 as to why.
490         (secure_gss_error): generic interface for secure.c functions to
491         call reply_gss_error instead.
492         * logwtmp.c: no conf.h, check NO_UT_HOST.
493         * popen.c: no conf.h, no getdtablesize.
494         (ftpd_pclose): Obey USE_SIGPROCMASK.
495
496 Sat Sep 30 16:43:28 1995  Mark Eichin  <eichin@cygnus.com>
497
498         * configure.in, Makefile.in: new files for port to GSSAPI and
499         build within the Kerberos V5 build tree.
500         * ftpcmd.y, ftpd.c, secure.c: GSSAPI authentication changes based
501         on the IETF CAT working group ***DRAFT*** FTP Security
502         specification, draft number 8, appendix I.
503
504
505 **** previous change logs from CNS V4 modifications of Steve Lunt's
506      draft-3 ftp daemon, which this is based on. ****
507
508 Wed Jul 26 21:03:13 1995  Ken Raeburn  <raeburn@cygnus.com>
509
510         * secure.c: Include string.h.
511
512         * ftpd.c (main): Cast signal() return value to long instead of
513         int; it's more likely to fit.
514
515 Thu Feb  2 13:41:24 1995  Ian Lance Taylor  <ian@cygnus.com>
516
517         * ftpcmd.y (NBBY): Explicitly define if __pyrsoft and MIPSEB.
518         (cmd_list): In handling of SYST, undefine BSD if __svr4__ is
519         defined.
520
521         * ftpd.c: Don't try to use IP_TOS if the IP_TOS argument
522         (IPTOS_LOWDELAY, etc.) is not defined.
523
524 Wed Jan 18 17:12:22 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>
525
526         * ftpd.8: Include man1/tmac.doc.
527
528 Wed Jan 11 15:29:10 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>
529
530         * ftpd.c (authenticate): New variable.
531         (main): Handle -a (require authentication) option.
532         (user): If authenticate is set, reply with an error if kuserok
533         fails or if no Kerberos authentication was used.
534         * ftpcmd.y: Use check_login when parsing the PASV command.
535         * ftpd.8: Document new -a option.
536
537 Tue Jan  3 01:25:57 1995  Mark Eichin  <eichin@cygnus.com>
538
539         * Makefile.in (clean): explicitly delete ftpcmd.c on clean.
540
541 Thu Dec 29 15:17:12 1994  Mark Eichin  <eichin@cygnus.com>
542
543         * ftpcmd.y (rcmd): don't declare atol, since it isn't used here
544         anyhow, and it's a macro under linux.
545         (top level): #define NBBY 8 for linux.
546
547 Thu Dec 29 14:51:41 1994  Mark Eichin  <eichin@cygnus.com>
548
549         * ftpd.c (statcmd): don't use NBBY check -- linux doesn't have it,
550         it is in no spec, and if it isn't 8, it won't work anyway. (Use
551         strcat instead of sprintf, while we're at it...)
552
553 Tue Dec 27 16:29:24 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
554
555         * ftpcmd.y (reply, lreply): Declare if STDARG || (__STDC__ && !
556         VARARGS).
557         * ftpd.c:  If STDARG is defined, or if __STDC__ is defined and
558         VARARGS is not defined, include <stdarg.h>.
559         (secure_error): Use <stdarg.h> routines if STDARG || (__STDC__ &&
560         ! VARARGS).
561         (reply, lreply): Likewise.
562         (setproctitle): Just use one argument.
563         * secure.c (secure_error): Declare if STDARG || (__STDC__ && !
564         VARARGS).
565
566 Fri Dec 23 16:25:44 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
567
568         * ftpcmd.y (unix): Define if _AIX is defined (AIX compiler does
569         not predefine unix).
570
571 Thu Dec 22 15:05:14 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
572
573         * ftpd.c (keyfile): New global variable.
574         (main): Move option processing before check of remote socket.  Add
575         new options -p, -r, and -s.  Handle -p by accepting a remote
576         connection.
577         (kpass): Use keyfile variable rather than KEYFILE.  Pass keyfile
578         explicitly to krb_rd_req.
579         (auth_data): Likewise.
580         * ftpd.8: Document new -p, -r, and -s options.
581
582 Fri Dec 16 11:06:16 1994  Ian Lance Taylor  <ian@cygnus.com>
583
584         Fixes for HP/UX:
585         * ftpd.c: On HP/UX, define seteuid and setegid as macros which
586         call setresuid and setresgid.
587
588         Fixes for UnixWare:
589         * ftpd.c (main): Use a temporary variable rather than calling
590         htons(ntohs(X)).
591         * ftpcmd.y: Include conf.h.
592         (getline): Cast arguments to Kerberos routines to avoid warnings.
593         (toolong): Declare as type sigtype, and add dummy argument.
594
595         Fixes for SCO:
596         * cmdtab.y: Include <sys/types.h>.
597         * ftpd.c (initgroups): Define on SCO.
598         (main): Don't handle SIGURG if it is not defined.
599         (pass): Don't try to use crypt on SCO; instead, require Kerberos
600         password or anonymous login.
601
602         Fixes for AIX:
603         * ftpcmd.y (index): Don't define.
604         (strpbrk, strcpy): Don't declare.
605         * ftpd.c (index, rindex): Don't define.
606         * logwtmp.c (strncpy): Don't declare.
607         * secure.c: Include <netinet/in.h>.
608
609         Fixes for Ultrix:
610         * ftpd.c (main): Define LOG_NDELAY and LOG_DAEMON as zero if they
611         are not already defined by <syslog.h>.
612
613         Fixes for Irix 4:
614         * ftpd.c (retrieve): Don't refer to st_blksize if NOSTBLKSIZE is
615         defined.
616
617         * ftpcmd.y: Fix yacc code to use %union and %type.
618         (yylex): Assign to fields of yylval, rather than to yylval
619         directly.
620
621         General fixes to make it compile on Solaris: Use sigtype for
622         signal handler return values, including conf.h where needed.  Add
623         a dummy argument to signal handler functions. Replace index,
624         rindex, bzero and bcopy with ANSI C functions.  Cast Kerberos
625         routine arguments to avoid warnings.  Also:
626         * ftpd.c: Don't include <varargs.h>.  If POSIX is defined, include
627         unistd.h, otherwise define getcwd to call getwd.
628         (L_SET, L_INCR): Define if not defined.
629         (pwd): Use getcwd instead of getwd.  If POSIX, change the error
630         handling accordingly.
631         * popen.c (getdtablesize): New function on hpux or __svr4__.
632         (ftpd_pclose): If WAIT_USES_INT, use int instead of union wait.
633
634 Thu Dec 15 16:13:44 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
635
636         * Initial checkin.  Based on Steve Lunt's ftp program, which was
637         based on BSD code.