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