2000-09-26 H.J. Lu <hjl@lucon.org>
[nfs-utils.git] / ChangeLog
1 2000-09-26  H.J. Lu <hjl@lucon.org>
2
3         * configure.in (VERSION): Set to "0.2.1".
4         * configure: Regenerated.
5         * nfs-utils.spec: Updated.
6
7 2000-09-26  H.J. Lu <hjl@lucon.org>
8
9         * utils/mountd/auth.c (auth_authenticate_internal): Make sure a
10         non-NULL hostent is always returned.
11
12 2000-09-11  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
13
14         * etc/redhat/nfslock.init: don't kill lockd processes that do not
15         have an executable (i.e. kernel threads)
16
17 2000-09-01  H.J. Lu <hjl@lucon.org>
18
19         * README: Updated for 0.2.
20
21 2000-09-01  Jay Weber <jweber@valinux.com>
22
23         * etc/redhat/nfs.init: Added ability for rpc.mountd to default to
24         supporting version 3 of nfs if available, else it will fall back to
25         version 2 support only.
26
27 2000-08-30  H.J. Lu <hjl@lucon.org>
28
29         * configure.in (VERSION): Set to "0.2".
30         * configure: Regenerated.
31         * nfs-utils.spec: Updated.
32
33 2000-08-25  H.J. Lu <hjl@lucon.org>
34
35         * support/misc/tcpwrapper.c (logit): Modify the log output.
36
37 2000-08-25  Ion Badulescu  <ionut@cs.columbia.edu>
38
39         * utils/rquotad/rquotad.man, utils/statd/statd.man,
40         utils/mountd/mountd.man: updated
41         
42         * utils/mountd/Makefile (LIBS): added -lmisc $(LIBWRAP) $(LIBNSL)
43         * utils/rquotad/Makefile: fix comment
44
45         * support/misc/tcpwrapper.c (logit): added comment about waiting
46         for the children after fork()
47         
48         * utils/mountd/mountd.c (main): ignore SIGCHLD to prevent leaving
49         zombies behind (from logit()'s fork)
50         * utils/rquotad/rquota_svc.c (main): ditto
51         * utils/statd/statd.c (main): ditto
52
53         * utils/rquotad/rquota_svc.c (rquotaprog_1): pass RQUOTAPROG
54         to check_default instead of 0, for prognum
55
56         * utils/statd/statd.c (sm_prog_1_wrapper): pass SM_PROG
57         to check_default instead of 0, for prognum
58
59         * utils/mountd/mount_dispatch.c: Include "tcpwrapper.h" if
60         HAVE_TCP_WRAPPER is defined.
61         (mount_dispatch): Call check_default () if HAVE_TCP_WRAPPER is
62         defined. Reject an RPC call if check_default () fails.
63
64 2000-08-25  H.J. Lu <hjl@lucon.org>
65
66         * support/include/tcpwrapper.h: New for the tcp wrapper
67         support.
68         * support/misc/Makefile: Likewise.
69         * support/misc/from_local.c: Likewise.
70         * support/misc/tcpwrapper.c: Likewise.
71
72         * aclocal.m4 (AC_TCP_WRAPPER): New.
73         * configure.in: Use it. Substitute LIBWRAP.
74         * configure: Rebuilt.
75
76         * config.mk.in (LIBNSL): New.
77         (LIBWRAP): Likewise.
78
79         * support/Makefile (SUBDIRS): Add misc.
80
81         * support/lib/Makefile (LIBS): Add libmisc.a.
82
83         * utils/rquotad/Makefile (LIBS): Add
84         
85                 -lmisc $(LIBWRAP) $(LIBNSL)
86
87         * utils/statd/Makefile (LIBS): Likewise.
88
89         * utils/rquotad/rquota_svc.c: Include "tcpwrapper.h" if
90         HAVE_TCP_WRAPPER is defined.
91         (rquotaprog_1): Call check_default () if HAVE_TCP_WRAPPER is
92         defined. Reject an RPC call if check_default () fails.
93
94         * utils/statd/statd.c: Include "tcpwrapper.h" if
95         HAVE_TCP_WRAPPER is defined.
96         (sm_prog_1_wrapper): New. A wrapper for sm_prog_1. Call
97         check_default () before calling sm_prog_1 (). Define it as
98         sm_prog_1_wrapper if HAVE_TCP_WRAPPER is defined.
99
100 2000-08-25  Chip Salzenberg  <chip@valinux.com>
101
102         * debian/*: Complete Debian build support.
103         * etc/debian/*: Remove.
104
105 2000-08-24  Neil Brown <neilb@cse.unsw.edu.au>
106
107         * support/export/client.c(client_check): removed the "dot+1" as a
108           ypdomain argument to innetgr as this is entirely bogus.
109           It should always be NULL.
110         
111 2000-08-23  Neil Brown <neilb@cse.unsw.edu.au>
112
113         * support/export/xtab.c(xtab_read): introduce new mode for
114            reading xtab. i.e. a list of exports that might be known to the
115            kernel, or might not.  These are flagged as m_exported == -1
116         * support/export/xtab.c(xtab_mount_read):  call xtab_read with new
117            value "2" for xtab, meaning don't trust this too much.
118         * support/include/exportfs.h(struct mexport): changed m_exported
119            from one bit to an int so that it can hold new value
120         * utils/exportfs/exportfs.c(exportfs_ipdate): add an export to the
121            kernel if it is uncertain whether the kernel knows (m_exported == -1)
122         * utils/mountd/mountd.c(get_rootfh): similarly export to kernel if
123            status is uncertain
124
125         * support/nfs/xio.c(xflock): added O_CREAT when getting
126            a write lock so that missing files aren't fatal.
127
128         * etc/debian/nfs-common: new file from "potato"
129         * etc/debian/nfs-kernel-server: new file from "potato" plus fixes.
130          
131 2000-08-09  H.J. Lu <hjl@lucon.org>
132
133         * etc/redhat/nfs.init: Run /usr/sbin/exportfs first during
134         startup to ensure all existing clients work fine.
135
136         * support/export/xtab.c (xtab_mount_read): Pass 1 instead of 0
137         to xtab_read () for reading _PATH_XTAB.
138
139 2000-08-02  H.J. Lu <hjl@lucon.org>
140
141         * utils/mountd/auth.c (auth_authenticate_internal): Try to
142         avoid the reverse name lookup.
143
144 2000-07-04  H.J. Lu <hjl@lucon.org>
145
146         * utils/statd/log.c: Include <stdlib.h> for exit ().
147
148         * utils/statd/misc.c (xunlink): Add `{' and `}' to quiet the
149         gcc warning.
150
151 2000-07-04  H.J. Lu <hjl@lucon.org>
152
153         * configure.in (VERSION): Set to "0.1.9.1".
154         * configure: Regenerated.
155         * nfs-utils.spec: Updated.
156
157         * README: Updated.
158
159 2000-07-04  Neil Brown  <neilb@cse.unsw.edu.au>
160
161         * support/export/hostname.c (hostent_dup): Handle the NULL
162         h_aliases field.
163
164 2000-07-03  H.J. Lu <hjl@lucon.org>
165
166         * README: Update the util-linux requirement.
167
168 2000-07-03  H.J. Lu <hjl@lucon.org>
169
170         * configure.in (VERSION): Set to "0.1.9".
171         * configure: Regenerated.
172         * nfs-utils.spec: Updated.
173
174         * README: Updated.
175
176 2000-07-03  H.J. Lu <hjl@lucon.org>
177
178         * etc/redhat/nfs.init: Run /usr/sbin/exportfs last during
179         stop to ensure all clients can still access the server
180         before it is shutdown.
181
182 2000-06-30  Jeff Uphoff <juphoff@transmeta.com>
183
184         * tools/rpcgen/rpc_svcout.c (write_msg_out): Generate syslog()
185         calls with format string.
186         
187 2000-06-28  Chip Salzenberg  <chip@valinux.com>
188
189         * utils/statd/log.c (log): Call syslog with format string.
190
191 2000-06-27  H.J. Lu <hjl@lucon.org>
192
193         * utils/statd/statd.c (main): Use sysconf (_SC_OPEN_MAX)
194         instead of OPEN_MAX.
195
196 2000-06-27  H.J. Lu <hjl@lucon.org>
197
198         * README: Updated.
199
200 2000-06-27  H.J. Lu <hjl@lucon.org>
201
202         * etc/redhat/nfs.init: Run /usr/sbin/exportfs last during
203         startup to ensure all existing clients are exported.
204
205         * configure.in (VERSION): Set to "0.1.8.2".
206         * configure: Regenerated.
207         * nfs-utils.spec: Updated.
208
209 2000-06-06  H.J. Lu <hjl@lucon.org>
210
211         * configure.in (VERSION): Set to "0.1.8.1".
212         * configure: Regenerated.
213         * nfs-utils.spec: Updated.
214
215 2000-06-06  H.J. Lu <hjl@lucon.org>
216
217         * utils/mountd/mountd.c (mount_dump_1_svc): Cast svc_getcaller
218         to "struct sockaddr_in *" for glibc 2.2.
219         (mount_umnt_1_svc): Likewise.
220         (mount_umntall_1_svc): Likewise.
221         (mount_export_1_svc): Likewise.
222         (mount_exportall_1_svc): Likewise.
223         (mount_pathconf_2_svc): Likewise.
224         (get_rootfh): Likewise.
225
226 2000-06-04  H.J. Lu <hjl@lucon.org>
227
228         * etc/redhat/nfs.init: Fix a typo in comment.
229
230 2000-05-31  H.J. Lu <hjl@lucon.org>
231
232         * configure.in (VERSION): Set to "0.1.8".
233         * configure: Regenerated.
234         * nfs-utils.spec: Updated.
235
236         * README: Updated.
237
238 2000-05-31  H.J. Lu <hjl@lucon.org>
239
240         * configure.in (VERSION): Set to "0.1.7.5".
241         * configure: Regenerated.
242         * nfs-utils.spec: Updated.
243
244         * support/include/nfslib.h (exportent): Add a new field,
245         r_count, to count the number of mounts from a client.
246         (getrmtabent): Take a new argument for position in file.
247         (putrmtabent): Likewise.
248         (fgetrmtabent): Likewise.
249         (fputrmtabent): Likewise.
250         * support/nfs/rmtab.c (getrmtabent): Handle the new argument
251         for position in file.
252         (fgetrmtabent): Likewise.
253         (putrmtabent): Likewise.
254         (fputrmtabent): Likewise.
255
256         * support/nfs/rmtab.c (fgetrmtabent): Get value for the new
257         field, r_count.
258
259         * support/export/rmtab.c (rmtab_read): Pass NULL as the new
260         argument to getrmtabent (), fgetrmtabent (), putrmtabent ()
261         and fputrmtabent ().
262         * utils/mountd/rmtab.c (mountlist_add): Likewise.
263         (mountlist_del): Likewise.
264         (mountlist_del_all): Likewise.
265         (mountlist_list): Likewise.
266
267         * utils/mountd/rmtab.c (mountlist_add): Increment "r_count"
268         for the existing entry and initialize "r_count" to 1.
269         (mountlist_del): Decrement "r_count".
270
271 2000-05-18  H.J. Lu <hjl@lucon.org>
272
273         * configure.in (VERSION): Set to "0.1.7.4".
274         * configure: Regenerated.
275         * nfs-utils.spec: Updated.
276
277 2000-05-18  H.J. Lu <hjl@lucon.org>
278
279         * etc/redhat/nfs.init (restart): Just do stop and start.
280
281 2000-05-09  Jay Weber <jweber@valinux.com>
282
283         * utils/rquotad/hasquota.c: added support for ext3 recognition
284         in rquotad.
285         * utils/rquotad/mntent.h: Likewise.
286
287 2000-05-01  H.J. Lu <hjl@lucon.org>
288
289         * configure.in (VERSION): Set to "0.1.7.3".
290         * configure: Regenerated.
291         * nfs-utils.spec: Updated.
292
293 2000-05-01  H.J. Lu <hjl@lucon.org>
294
295         * utils/rquotad/rquota_server.c (getquotainfo): Skip bad
296         mounting poins in /etc/fstab.
297
298 2000-05-01  H.J. Lu <hjl@lucon.org>
299
300         * configure.in (VERSION): Set to "0.1.7.2".
301         * configure: Regenerated.
302         * nfs-utils.spec: Updated.
303
304 2000-05-01  H.J. Lu <hjl@lucon.org>
305
306         * utils/rquotad/rquota_server.c (getquotainfo): Call stat ()
307         to check for the mounting point.
308
309 2000-04-29  Chip Salzenberg  <chip@valinux.com>
310             Neil Brown  <neilb@cse.unsw.edu.au>
311
312         * Really re-use RPC ports.
313           (Fixes earlier patch.  Sorry, Neil.)
314
315 2000-04-26  H.J. Lu <hjl@lucon.org>
316
317         * configure.in (VERSION): Set to "0.1.7.1".
318         * configure: Regenerated.
319         * nfs-utils.spec: Updated.
320
321 2000-04-26  H.J. Lu <hjl@lucon.org>
322
323         * etc/redhat/nfslock.init: Check if lockd exits before killing
324         it.
325
326 2000-04-25  H.J. Lu <hjl@lucon.org>
327
328         * README: Require util-linux-2.10f-mount-rpc.patch for mount.
329
330 2000-03-21 Michael Weiser <michael@weiser.saale-net.de>
331
332         * support/nfs/exports.c (parsesquash): Correctly set the
333         return pointer.
334
335 Tue Mar 21 11:38:48 EST 2000 NeilBrown <neilb@cse.unsw.edu.au>
336
337         * support/include/nfs/nfs.h: Removed knowledge of internals of
338              kernel filehandles (which can change) and defined nfs_fh_size
339              which has variable size
340         
341         * support/nfs/getfh.c: defined getfh_size to use new syscall to
342              get variable sized file handles, and change getfh{,old} to
343              use nfs_fh_size        
344         
345         * utils/mountd/mountd.c: use nfd_fh_size and call getfh_size for
346              NFSv3 file handles
347
348         * tools/Makefile, tools/nlmtest/nlmtest.c
349              nlmtest.c depended on internel format of file handles, so now
350              doesn't work.
351
352         
353 2000-03-12  Chip Salzenberg  <chip@valinux.com>
354             Neil Brown  <neilb@cse.unsw.edu.au>
355
356         * support/nfs/rpcmisc.c (rpc_init): Share transports.
357
358 2000-03-13 H.J. Lu <hjl@lucon.org>
359
360         * etc/redhat/nfsd.init: Updated.
361
362         * etc/redhat/nfslock.init: Updated.
363
364         * nfs-utils.spec.in: Updated.
365
366         * configure.in (VERSION): Set to "0.1.7".
367         * configure: Regenerated.
368         * nfs-utils.spec: Updated.
369
370         * README: Updated.
371
372 Wed Mar  8 09:42:43 2000 Neil Brown <neilb@cse.unsw.edu.au>
373
374         * utils/exportfs/exportfs.c (dump): Included printing of
375            nohide, no_subtree_check, and insecure_locks
376
377 2000-02-26  Chip Salzenberg  <chip@valinux.com>
378
379         * config.mk.in (INSTALLSUID): Strip ("-s").
380         (INSTALLSCRIPT): Define.
381         * utils/nhfsstone/Makefile: Use it.
382
383 2000-02-26  Chip Salzenberg  <chip@valinux.com>
384
385         * utils/lockd/lockd.man: Create.
386         * utils/lockd/Makefile: Install it.
387         * utils/nhfsstone/nhfs{run,nums,graph}.man: Create.
388         * utils/nhfsstone/nhfsstone.man: Change suffix from ".1".
389         * utils/nhfsstone/Makefile: Install the helper scripts and
390           all four man pages.
391         * utils/exportfs/exports.man: Fix typo.
392
393 2000-02-26  Chip Salzenberg  <chip@valinux.com>
394
395         * support/nfs/xio.c (xungetc): Decrement line number when
396         character to unget is newline.  Make first parameter int, so
397         it can distinguish EOF from \377.
398         * support/include/xio.h (xungetc): Adjust prototype.
399
400 Fri Feb  4 23:42:23 2000 Neil Brown <neilb@cse.unsw.edu.au>
401
402         * support/include/nfs/export.h: added NFSEXP_NOAUTHNLM
403         * support/nfs/exports.c: added handling for NFSEXP_NOAUTHNLM
404         * utils/exportfs/exports.man: added documentation for no_auth_nlm.
405
406         This is for supporting a new option introduced in 2.3.42
407
408 Thu Feb  3 14:55:48 2000 H.J. Lu <hjl@lucon.org>
409
410         * COPYING: Added. GPL.
411
412 Thu Feb 03 14:40:40 2000 Cristian Gafton <gafton@redhat.com>
413
414         * utils/rquotad/rquota_server.c (getquotainfo): Call statfs ()
415         to get the block size.
416
417 Tue Jan 25 11:04:17 2000 H.J. Lu <hjl@lucon.org>
418
419         * nfs-utils.spec.in: Update ftp site.
420
421 Mon Jan 17 11:48:18 2000 H.J. Lu <hjl@lucon.org>
422
423         * README: Update hostnames.
424
425 Tue Jan 11 10:06:22 2000 H.J. Lu <hjl@lucon.org>
426
427         * configure.in (VERSION): Set to "0.1.6".
428         * configure: Regenerated.
429         * nfs-utils.spec: Updated.
430
431         * README: Updated.
432
433 Mon Jan 10 14:26:33 2000 H.J. Lu <hjl@lucon.org>
434
435         * utils/mountd/auth.c (auth_authenticate_internal): Call
436         xstrdup for hostname before passing it to gethostbyname.
437
438         * utils/mountd/mountd.c (get_exportlist): Use xstrdup instead
439         of strdup.
440
441 Sun Dec 19 09:35:01 1999  H.J. Lu <hjl@lucon.org>
442
443         * README: Update the mailing list address.
444
445 Sun Dec 19 09:22:28 1999  H.J. Lu <hjl@lucon.org>
446
447         * configure.in (VERSION): Set to "0.1.5".
448         * configure: Regenerated.
449         * nfs-utils.spec: Updated.
450
451         * README: Updated.
452
453 Mon Dec 13 13:40:20 1999  H.J. Lu <hjl@lucon.org>
454
455         * utils/rquotad/hasquota.c (hasquota): Malloc one more char
456         for '/'.
457
458 Mon Dec  6 09:42:45 1999  H.J. Lu <hjl@lucon.org>
459
460         * configure.in (VERSION): Set to "0.1.4".
461         * configure: Regenerated.
462         * nfs-utils.spec: Updated.
463
464         * README: Updated.
465
466 Mon Dec  6 09:28:07 1999  H.J. Lu <hjl@lucon.org>
467
468         * nfs-utils.spec.in: New file.
469
470         * config.mk.in (VERSION): Changed to "nfs-utils @VERSION@".
471
472         * configure.in (nfs-utils.spec): Added to AC_OUTPUT.
473
474 1999-12-04  Chip Salzenberg  <chip@valinux.com>
475
476         * config.mk.in: Use $(CC) as set by configure.
477
478 1999-12-04  Chip Salzenberg  <chip@valinux.com>
479
480         * rules.mk: Call $(MAKE) with $(MFLAGS).
481
482 Mon Nov 29 11:17:35 1999  H.J. Lu <hjl@lucon.org>
483
484         * tools/rpcgen/rpc_main.c (h_output): Generate IXDR_GET_INT32,
485         IXDR_PUT_INT32, IXDR_GET_U_INT32 and IXDR_PUT_U_INT32.
486
487 Mon Nov 29 11:17:35 1999  H.J. Lu <hjl@lucon.org>
488
489         * nfs-utils.spec (Version): Set to 0.1.3.
490
491         * configure.in (VERSION): Set to "nfs-utils 0.1.3".
492         * configure: Regenerated.
493
494         * README: Updated.
495
496 Mon Nov 29 11:15:47 1999  H.J. Lu <hjl@lucon.org>
497
498         * utils/rquotad/rquota_server.c (nfsmount_to_devname): Removed.
499         (_PATH_DEV_DSK): Likewise.
500         (getquotainfo): Match the mounting point from /etc/mtab
501         instead of calling nfsmount_to_devname ().
502
503 1999-11-24  Chip Salzenberg  <chip@valinux.com>
504
505         * utils/statd/monitor.c (sm_mon_1_svc): Accept lockd callbacks
506         to the new port 24 as well as the historical port 100021.
507
508 Tue Nov 23 10:21:34 1999 Neil Brown <neilb@cse.unsw.edu.au>
509
510         * etc/redhat/nfsd.init (stop): moved exportfs -ua after
511         stopping nfsd to stop spurious ESTALE on server shutdown.
512         
513 Tue Nov 23 10:13:39 1999  Neil Brown <neilb@cse.unsw.edu.au>
514
515         * support/nfs/exports.c (parseopts): make copy of opt string
516         before 'nul'ing out commas so that
517
518         # exportfs -o option1,option2 hosta:/fs hostb:/fs
519
520         applies both options to both exports.
521
522 Thu Oct 28 12:55:42 1999  H.J. Lu <hjl@lucon.org>
523
524         * README: Fix a few typos.
525
526         * tools/rpcgen/rpc_cout.c (print_header): Use int32_t instead
527         of long.
528         * tools/rpcgen/rpc_hout.c (pdefine): Likewise.
529         * tools/rpcgen/rpc_main.c (c_initialize): Likewise.
530         * tools/rpcgen/rpc_parse.c (get_type): Likewise.
531         (unsigned_dec): Likewise.
532         * tools/rpcgen/rpc_scan.c (symbols): Likewise.
533         * tools/rpcgen/rpc_util.c (tokstrings): Likewise.
534
535         * tools/rpcgen/rpc_cout.c (emit_single_in_line): Use INT32
536         instead of LONG.
537         * tools/rpcgen/rpc_parse.c (get_type): Likewise.
538         (unsigned_dec): Likewise.
539         * tools/rpcgen/rpc_scan.c (symbols): Likewise.
540         * tools/rpcgen/rpc_scan.h (tok_kind): Likewise.
541         * tools/rpcgen/rpc_util.c (tokstrings): Likewise.
542
543 Thu Oct 28 11:27:51 1999 Neil Brown <neilb@cse.unsw.edu.au>
544
545         * support/include/nfs/export.h addedd NFSEXP_NOSUBTREECHECK
546         * support/nfs/exports.c: added {no_,}subtree_check and changed
547           crossmnt to nohide
548         * utils/exportfs/exports.man: added no_subtree_check and nohide
549           and removed irrelevant stuff from unfsd.
550         * support/export/rmtab.c: rmtab_read didn't quite do the right
551           thing if a pathname from rmtab was a subdirectory of an export-point
552
553 Tue Oct 26 17:22:40 1999  H.J. Lu <hjl@lucon.org>
554
555         * README: Updated ftp site.
556
557 Mon Oct 25 18:12:45 1999  H.J. Lu <hjl@lucon.org>
558
559         * nfs-utils.spec (Version): Set to 0.1.2.
560
561         * configure.in (VERSION): Set to "nfs-utils 0.1.2".
562         * configure: Regenerated.
563
564         * README: Updated.
565
566 Mon Oct 25 18:11:21 1999  H.J. Lu <hjl@lucon.org>
567
568         * utils/mountd/auth.c (auth_error): Add "no_forward_dns".
569         (auth_authenticate_internal): Check for NULL return on forward
570         DNS lookup.
571         (auth_authenticate): Handle "no_forward_dns".
572
573 Thu Oct 21 16:22:06 1999  H.J. Lu <hjl@lucon.org>
574
575         * Version 0.1.1 released.
576
577         * nfs-utils.spec (Version): Set to 0.1.1.
578
579         * configure.in (VERSION): Set to "nfs-utils 0.1.1".
580         * configure: Regenerated.
581
582         * README: Updated.
583
584 Mon Oct 18 17:43:29 1999  H.J. Lu <hjl@lucon.org>
585
586         * nfs-utils.spec (Obsoletes): Fixed a typo, change knfsd-client
587         to knfsd-clients.
588         (Provides): Likewise.
589
590 Mon Oct 18 14:56:22 1999  H.J. Lu <hjl@lucon.org>
591
592         * Initial version 0.1 released.
593
594         * configure.in (VERSION): Set to "nfs-utils 0.1".
595         * configure: Regenerated.
596
597 Mon Oct 18 14:54:57 1999  H.J. Lu <hjl@lucon.org>
598
599         * utils/mountd/mountd.c (get_exportlist): Cleanup.
600
601         * utils/exportfs/exportfs.c (unexport_all): Unexport from
602         kernel only if the entry is exported to kernel.
603         (unexportfs): Likewise.
604
605 Wed Sep 08 16:49:32 1999  Neil Brown <neilb@cse.unsw.edu.au>
606
607 1/ utils/mountd/rmtab.c::mountlist_list
608
609      This routine stats the rmtab file to see if it has changed.  It
610      if has, it cleans up it's old copy of the data. But it still
611      always re-read the file, thus returning multiple copies of the
612      data on consecutive calls without intervening changes.
613      "Showmount -a" didn't show this as it appears to sort/unique the
614      data, but 'strace showmount -a' showed that the size of the
615      datagram that it received grew.
616
617      I moved the getrmtabent loop inside the mtime test.
618
619 2/ utils/exportfs/exportfs.c
620    
621      Many routines used the m_path field of m_export instead of
622      e_path.
623      According to the comment in nfslib.h, m_path should only
624      be used when processing a mount request (i.e. in mountd)
625      where the mountpoint may be a subdirectory of the export point.
626
627      I changed all occurances of m_path to e_path
628
629
630 3/ utils/exportfs/exportfs.c:main
631
632       extra arguments are not meaningful with -a or -r, but
633       exportfs accepted them and then ignored the -a/-r, expect that
634       -r would still unexport everything first.
635
636       I generate an error if there are extra args and f_all
637
638 4/ utils/exportfs/exportfs.c:main
639      extract dump out as a special case.
640
641 5/ utils/exportfs/exportfs.c
642      made f_reexport a local variable.
643
644
645 6/ utils/exportfs/exportfs.c:main,exportall
646
647     support/export/rmtab.c
648        only  mayexport on newly created entries, don't set xtabent at all
649
650 7/ support/include/nfslib.h
651
652       add #define _PATH_PROC_EXPORTS to be /proc/fs/nds/exports
653
654 8/ support/export/xtab.c
655
656       xtab_mount_read loads data from _PATH_PROC_EXPORTS if it exists,
657       else from xtab
658
659
660 9/ support/export/xtab.c
661
662       xtab_mount_read now sets m_exported, and NOT
663         xtabent and mayexport
664
665       removed the append arguement from xtab_write as it was
666         never used.
667
668       added is_export flag to xtab_write similar to xtab_read
669         if is_export, only write entries with m_xtabent or m_addxtab
670         if !is_export, only write entries with m_exported
671      
672 10/ support/export/export.c::export_allowed_internal
673
674       added test for exp->m_mayexport, as the export tree
675         may have entries that are no longer allowed to be exported,
676         and so shouldn't caused deduced exported by rmtab_read
677
678 11/ utils/exportfs/exportfs.c::main
679         error checking of flags.
680
681 12/ utils/exportfs/exportfs.c
682
683         total rewrite of export and unexport logic.
684         We now:
685         -  build an exportslist of valid exports, based on
686            current etab file  and arguments,
687         -  read rmtab to instantiate relevant wild card entries
688         -  read etab to find out what is currently exported
689         -  synchronise intention with reality
690         -  write out etab and xtab
691
692 13/  various
693         discard the m_addxtab flag
694         add m_changed flag so we know what to report in exportfs
695
696 14/ utils/mountd/auth.c:auth_authenticate
697
698         the value returned by gethostbyaddr was trusted.
699
700         It now follows this with a call to gethostbyname
701         and checks that the address is in the list.
702
703 15/ support/export/nfsctl.c::cltsetup,expsetup
704
705         force client names to lowercase as kernel is
706         sensitive to case
707
708 16/ quietened a few compiler warnings
709
710 17/ support/export/client:client_lookup
711
712      look for pre-existing client with same name before creating
713         a new one.
714
715 18/ support/include/exportfs.h
716
717      The ordering of the MCL_* enum was:
718         ANONYMOUS, FQDN, SUBNETWORK, WILDCARD, NETGROUP
719
720      I moved ANONYMOUS to the end.
721
722      The ordering is significant when an export entry is being searched for to 
723         match a given address.  There are two problems with ANONYMOUS being first.
724
725         1/ if a directory is exported rw to a couple of hosts and ro to everyone else,
726            then the ro case will always be found first and the privileged hosts won't get
727            their privilege
728         2/ When mountd gets a request to mount an ANONYMOUSly exported tree, it creates a FQDN
729            export entry for the specific host, and writes it to xtab.
730            When another request comes from the same host, the ANONYMOUS entry is found again, 
731            before the new FQDN entry, so it creates another FQDN entry and writes it to xtab
732            again.  If causes bloat in xtab.
733
734       Putting ANONYMOUS at the end reflects it's nature as a catch-all
735
736 19/ utils/exportfs/exportfs.man
737         many updates to the man page to reflect changes to the code
738
739 -----------------------
740
741
742
743 TODO:
744
745 - allow exportfs to modify rmtab file
746 - make sure kernel never gets two clients with same IP address
747     - possible kernel should reject
748     - needs to be some way to lookup client in kernel by IP address
749 - maybe get kernel to do case-insensitive comparisons on client names
750 - remove unused clients from kernel
751
752 - change etab to xtab and xtab to xtab.active
753
754 - timestamp and/or statd-stamp in rmtab for removing old entries.
755
756 Mon Oct 18 11:48:07 1999  H.J. Lu <hjl@lucon.org>
757
758         * linux-nfs: New directory.
759         * linux-nfs/ChangeLog: Moved from ..
760         * linux-nfs/INSTALL: Likewise.
761         * linux-nfs/KNOWNBUGS: Likewise.
762         * linux-nfs/NEW: Likewise.
763         * linux-nfs/README: Likewise.
764         * linux-nfs/THANKS: Likewise.
765         * linux-nfs/TODO: Likewise.
766
767         * Starting from knfsd 1.4.7.