See CHANGELOG for changes:-)
[nfs-utils.git] / ChangeLog
1 Thu Oct 28 11:27:51 EST 1999 Neil Brown <neilb@cse.unsw.edu.au>
2
3         * support/include/nfs/export.h addedd NFSEXP_NOSUBTREECHECK
4         * support/nfs/exports.c: added {no_,}subtree_check and changed
5           crossmnt to nohide
6         * utils/exportfs/exports.man: added no_subtree_check and nohide
7           and removed irrelevant stuff from unfsd.
8         * support/export/rmtab.c: rmtab_read didn't quite do the right
9           thing if a pathname from rmtab was a subdirectory of an export-point
10
11         
12 Tue Oct 26 17:22:40 1999  H.J. Lu <hjl@lucon.org>
13
14         * README: Updated ftp site.
15
16 Mon Oct 25 18:12:45 1999  H.J. Lu <hjl@lucon.org>
17
18         * nfs-utils.spec (Version): Set to 0.1.2.
19
20         * configure.in (VERSION): Set to "nfs-utils 0.1.2".
21         * configure: Regenerated.
22
23         * README: Updated.
24
25 Mon Oct 25 18:11:21 1999  H.J. Lu <hjl@lucon.org>
26
27         * utils/mountd/auth.c (auth_error): Add "no_forward_dns".
28         (auth_authenticate_internal): Check for NULL return on forward
29         DNS lookup.
30         (auth_authenticate): Handle "no_forward_dns".
31
32 Thu Oct 21 16:22:06 1999  H.J. Lu <hjl@lucon.org>
33
34         * Version 0.1.1 released.
35
36         * nfs-utils.spec (Version): Set to 0.1.1.
37
38         * configure.in (VERSION): Set to "nfs-utils 0.1.1".
39         * configure: Regenerated.
40
41         * README: Updated.
42
43 Mon Oct 18 17:43:29 1999  H.J. Lu <hjl@lucon.org>
44
45         * nfs-utils.spec (Obsoletes): Fixed a typo, change knfsd-client
46         to knfsd-clients.
47         (Provides): Likewise.
48
49 Mon Oct 18 14:56:22 1999  H.J. Lu <hjl@lucon.org>
50
51         * Initial version 0.1 released.
52
53         * configure.in (VERSION): Set to "nfs-utils 0.1".
54         * configure: Regenerated.
55
56 Mon Oct 18 14:54:57 1999  H.J. Lu <hjl@lucon.org>
57
58         * utils/mountd/mountd.c (get_exportlist): Cleanup.
59
60         * utils/exportfs/exportfs.c (unexport_all): Unexport from
61         kernel only if the entry is exported to kernel.
62         (unexportfs): Likewise.
63
64 Wed Sep 08 16:49:32 1999  Neil Brown <neilb@cse.unsw.edu.au>
65
66 1/ utils/mountd/rmtab.c::mountlist_list
67
68      This routine stats the rmtab file to see if it has changed.  It
69      if has, it cleans up it's old copy of the data. But it still
70      always re-read the file, thus returning multiple copies of the
71      data on consecutive calls without intervening changes.
72      "Showmount -a" didn't show this as it appears to sort/unique the
73      data, but 'strace showmount -a' showed that the size of the
74      datagram that it received grew.
75
76      I moved the getrmtabent loop inside the mtime test.
77
78 2/ utils/exportfs/exportfs.c
79    
80      Many routines used the m_path field of m_export instead of
81      e_path.
82      According to the comment in nfslib.h, m_path should only
83      be used when processing a mount request (i.e. in mountd)
84      where the mountpoint may be a subdirectory of the export point.
85
86      I changed all occurances of m_path to e_path
87
88
89 3/ utils/exportfs/exportfs.c:main
90
91       extra arguments are not meaningful with -a or -r, but
92       exportfs accepted them and then ignored the -a/-r, expect that
93       -r would still unexport everything first.
94
95       I generate an error if there are extra args and f_all
96
97 4/ utils/exportfs/exportfs.c:main
98      extract dump out as a special case.
99
100 5/ utils/exportfs/exportfs.c
101      made f_reexport a local variable.
102
103
104 6/ utils/exportfs/exportfs.c:main,exportall
105
106     support/export/rmtab.c
107        only  mayexport on newly created entries, don't set xtabent at all
108
109 7/ support/include/nfslib.h
110
111       add #define _PATH_PROC_EXPORTS to be /proc/fs/nds/exports
112
113 8/ support/export/xtab.c
114
115       xtab_mount_read loads data from _PATH_PROC_EXPORTS if it exists,
116       else from xtab
117
118
119 9/ support/export/xtab.c
120
121       xtab_mount_read now sets m_exported, and NOT
122         xtabent and mayexport
123
124       removed the append arguement from xtab_write as it was
125         never used.
126
127       added is_export flag to xtab_write similar to xtab_read
128         if is_export, only write entries with m_xtabent or m_addxtab
129         if !is_export, only write entries with m_exported
130      
131 10/ support/export/export.c::export_allowed_internal
132
133       added test for exp->m_mayexport, as the export tree
134         may have entries that are no longer allowed to be exported,
135         and so shouldn't caused deduced exported by rmtab_read
136
137 11/ utils/exportfs/exportfs.c::main
138         error checking of flags.
139
140 12/ utils/exportfs/exportfs.c
141
142         total rewrite of export and unexport logic.
143         We now:
144         -  build an exportslist of valid exports, based on
145            current etab file  and arguments,
146         -  read rmtab to instantiate relevant wild card entries
147         -  read etab to find out what is currently exported
148         -  synchronise intention with reality
149         -  write out etab and xtab
150
151 13/  various
152         discard the m_addxtab flag
153         add m_changed flag so we know what to report in exportfs
154
155 14/ utils/mountd/auth.c:auth_authenticate
156
157         the value returned by gethostbyaddr was trusted.
158
159         It now follows this with a call to gethostbyname
160         and checks that the address is in the list.
161
162 15/ support/export/nfsctl.c::cltsetup,expsetup
163
164         force client names to lowercase as kernel is
165         sensitive to case
166
167 16/ quietened a few compiler warnings
168
169 17/ support/export/client:client_lookup
170
171      look for pre-existing client with same name before creating
172         a new one.
173
174 18/ support/include/exportfs.h
175
176      The ordering of the MCL_* enum was:
177         ANONYMOUS, FQDN, SUBNETWORK, WILDCARD, NETGROUP
178
179      I moved ANONYMOUS to the end.
180
181      The ordering is significant when an export entry is being searched for to 
182         match a given address.  There are two problems with ANONYMOUS being first.
183
184         1/ if a directory is exported rw to a couple of hosts and ro to everyone else,
185            then the ro case will always be found first and the privileged hosts won't get
186            their privilege
187         2/ When mountd gets a request to mount an ANONYMOUSly exported tree, it creates a FQDN
188            export entry for the specific host, and writes it to xtab.
189            When another request comes from the same host, the ANONYMOUS entry is found again, 
190            before the new FQDN entry, so it creates another FQDN entry and writes it to xtab
191            again.  If causes bloat in xtab.
192
193       Putting ANONYMOUS at the end reflects it's nature as a catch-all
194
195 19/ utils/exportfs/exportfs.man
196         many updates to the man page to reflect changes to the code
197
198 -----------------------
199
200
201
202 TODO:
203
204 - allow exportfs to modify rmtab file
205 - make sure kernel never gets two clients with same IP address
206     - possible kernel should reject
207     - needs to be some way to lookup client in kernel by IP address
208 - maybe get kernel to do case-insensitive comparisons on client names
209 - remove unused clients from kernel
210
211 - change etab to xtab and xtab to xtab.active
212
213 - timestamp and/or statd-stamp in rmtab for removing old entries.
214
215 Mon Oct 18 11:48:07 1999  H.J. Lu <hjl@lucon.org>
216
217         * linux-nfs: New directory.
218         * linux-nfs/ChangeLog: Moved from ..
219         * linux-nfs/INSTALL: Likewise.
220         * linux-nfs/KNOWNBUGS: Likewise.
221         * linux-nfs/NEW: Likewise.
222         * linux-nfs/README: Likewise.
223         * linux-nfs/THANKS: Likewise.
224         * linux-nfs/TODO: Likewise.
225
226         * Starting from knfsd 1.4.7.