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