5b822575188696b4207541fca65b4b7b0f643b99
[nfs-utils.git] / ChangeLog
1 2003-07-18 NeilBrown <neilb@cse.unsw.edu.au>
2
3         Release 1.0.5:
4          1.0.4 was a bit of a brown-paper-bag-release because of the extra
5          'free' in auth.c.  So I'm releasing this just a few days later.
6
7         * support/nfs/cacheio.c(cache_flush): Correct test for 'open
8         failed'
9         * utils/exportfs/exportfs.c(main): If "-f" given as lone option,
10         check if new_cache is enabled, error if not, flush and exit if it
11         is. 
12         * utils/exportfs/exportfs.man: Explain -f option and explain the
13         two different modes that exportfs can work in.
14         * utils/mountd/mountd.c: Do not change RLIMIT_NOFILE if the -o
15         option wasn't given.
16         * utils/mountd/mountd.man: Record the change if default behaviour
17         for RLIMIT_NOFILE.
18         * configure.in, nfs-utils.spec: update version to 1.0.5 and
19         run autoconf
20         
21 2003-07-15 NeilBrown <neilb@cse.unsw.edu.au>
22
23         * utils/mountd/mountd.c(main): getopt string fix for 'o'
24         * utils/mountd/auth.c(auth_authenticate): remove extra 'free'
25         * utils/exportfs/exportfs.c(main): make 'exportfs -f' just flush
26         the caches.
27         * support/include/nfs/export.h: Reserve a bit for possible ACL
28         related use.
29         
30 2003-07-03 NeilBrown <neilb@cse.unsw.edu.au>
31
32         * utils/exportfs/nfsd.man: new man page for nfsd filesystem. Also
33         assorted changed to cope with section 7 of the manual.
34         * configure.in, nfs-utils.spec: Update version to 1.0.4
35         * run autoconf
36
37         This is a 'pre-release' for 1.1.0  Hopefully 1.1.0 will be the
38         baseline for 2.6 and 2.8.  I.e. it should continue to work right
39         through the 2.8 (or 3.0) kernel series.  Previous releases wont.
40
41 2003-07-04 NeilBrown <neilb@cse.unsw.edu.au>    
42         Steve Dickson <SteveD@redhat.com>
43
44         statd cleanup:
45         * utils/statd/statd.c: create a pidfile with pid of statd, and
46         truncate it when statd exists.
47         * utils/statd/statd.c: drop privs by setuid to owner of SM_DIR,
48         and warn if this is root.
49         * utils/statd/statd.c: when statd forks, connect child to parent
50         with a pipe, and send a byte down the pipe once the child is
51         working properly.
52         * Makefile: create and chown sm, sm.bak, state when "make install"
53         * configure.in: add --with-statduser= option which defaults to
54         "rpcuser" or "nobody"
55         * config.mk.in: pass "statduser" through to Makefile
56         
57 2003-07-03 NeilBrown <neilb@cse.unsw.edu.au>
58
59         * support/include/nfs/nfs.h: Make sure correct __kernel_dev_t is
60         used as the size was changed somewhere in 2.5.60-2.5.70.  Without
61         this nfs-utils compiles against 2.6 headers will not work on a
62         2.4 kernel.     
63         
64 2003-07-03 NeilBrown <neilb@cse.unsw.edu.au>
65
66         * support/nfs/nfssvc.c(nfssvc): If /proc/fs/nfs/threads exists,
67         set number of threads by writing to there.  This means it will
68         still work when the syscall interface goes away in 2.7.
69
70 2003-07-03 NeilBrown <neilb@cse.unsw.edu.au>
71         fumihiko kakuma <kakmy@mvh.biglobe.ne.jp>
72
73         * utils/exportfs/exportfs.c(unexportfs): improve host comparison
74         so as to only export the wildcard exports that were asked for.
75         * support/export/export.c(export_allowed): changed to return the
76         nfs_export rather than a "struct exportent", as m_changed is
77         needed by called
78         * support/export/rmtab.c(rmtab_read): modified to deal with
79         interface change for export_allowed(), and enhanced to preserve
80         m_changed flag when a wild-card export causes the creation of
81         a non-wildcard export.
82         
83 2003-07-02 NeilBrown <neilb@cse.unsw.edu.au>
84         Steve Dickson <SteveD@redhat.com>
85
86         * utils/mountd/mountd.man: Add valid kinds of debugging.
87         * utils/mountd/mountd.c(main): ignore SIGPIPE
88         * utils/nfsstat/nfsstat.c: fine-tune printing of warning so
89         we don't get warnings about unavailable stats that weren't asked
90         for.
91         
92 2003-06-24 NeilBrown <neilb@cse.unsw.edu.au>
93
94         * support/nfs/nfsexport.c(exp_unexp): When unexporting filesystems
95         via /rpc/net/rpc/nfsd*/channel, set the expiry date to 1, not
96         'forever', so things disappear out of the cache rather than just
97         be ignored. 
98         
99 2003-06-16  "J. Bruce Fields" <bfields@fieldses.org>
100
101         * utils/mountd/cache.c(nfsd_fh): don't export the export_ent
102         if it wasn't found.
103
104 2003-06-16  NeilBrown   <neilb@cse.unsw.edu.au>
105
106         * debian/nfs-kernel-server.init,etc/nodist/nfs-server,
107         etc/redhat/nfs.init: when checking if V3 is supported, make sure
108         nfs server 'knows' about 127.0.0.1 first.
109         
110 2003-06-10  Chip Salzenberg  <chip@pobox.com>
111
112         * support/nfs/xlog.c (xlog): Fix off-by-one buffer overflow bug.
113         * debian/changelog: Version 1.0.3-2.
114
115 2003-05-30 Michael Griffith <grif@michaelgriffith.com>
116         NeilBrown <neilb@cse.unsw.edu.au>
117
118         utils/nfsstat/nfsstat.c(print_callstats): use unsigned
119         long long to avoid overflow when printing stats.
120         
121 2003-05-30  NeilBrown <neilb@cse.unsw.edu.au>
122
123         * support/export/export.c, support/include/nfslib.h,
124         support/nfs/export.c, utils/exportfs/exportfs.c,
125         utils/mountd/mountd.c: new export option "mountpoint"
126         If no path is given, then the export point must be a
127         mount point, or it won't be exported.  If a path is 
128         given (e.g. mountpoint=/path) then that path must be
129         a mountpoint or the exportpoint won't be exported.
130         * utils/exportfs/exportfs.man: document mountpoint option.
131         * support/misc/mountpoint.c: New file with is_mountpoint()
132         to determine if something is a mountpoint.
133         
134 2003-05-23  NeilBrown <neilb@cse.unsw.edu.au>
135
136         * utils/mountd/cache.c(cache_get_filehandle): take a separate path
137         argument as we might not be getting the filehandle for the
138         mountpoint.
139         * utils/mountd/mountd.c(get_rootfh): pass real path when calling
140         cache_get_filehandle.
141         * utils/mountd/mountd.c(get_rootfh): check export point and
142         requested directory are on the same filesystem, and complain if
143         not.
144         
145 2003-05-22  NeilBrown <neilb@cse.unsw.edu.au>
146
147         * utils/mountd/auth.c(auth_authenticate_internal): make sure
148         portnumber is still checked when using new cache lookup.
149         
150 2003-05-21  NeilBrown <neilb@cse.unsw.edu.au>
151
152         * utils/exportfs/exportfs.c: Use check_new_cache and cache_flush
153          Don't actually talk to kernel when new cache is in effect, except
154          to flush
155         * utils/exportfs/exportfs.c: add -f option to fully flush cache.
156         * support/export/xtab.c: Only rename new xtab into place if it has
157          changed, thus preserving modify date for exportfs to use when
158          flushing.
159         * support/nfs/cacheio.c: Add cache_flush
160         * support/export/xtab.c: Only rename new xtab into place if it has
161          changed, thus preserving modify date for exportfs to use when
162          flushing.
163         
164 2003-05-21  NeilBrown <neilb@cse.unsw.edu.au>
165
166         * support/export/client.c: Add client_compose, client_member to
167         handle new composite client names
168         * support/include/exportfs.h: Declare above functions.
169         * utils/mountd/auth.c: use client_compose to determine calling
170         client if new cache is being used.
171         * utils/mountd/auth.c: call cache_export to export a filesystem if
172         new_cache, check if new cache is used, and call my_svc_run instead
173         of svc_run
174         * utils/mountd/svc_run.c: new file defining my_svc_run
175         * utils/mountd/cache.c: new file for handling cache upcalls.
176         * support/nfs/cacheio.c(check_new_cache): new function to check if
177         new cache should be used.
178         
179         
180 2003-05-21  NeilBrown <neilb@cse.unsw.edu.au>
181
182         * support/include/nfs/export.h: New CROSSMNT distinct from NOHIDE
183         * support/nfs/exports.c: Make CROSSMNT distinct from NOHIDE
184         * utils/exportfs/exportfs.c(dump): ditto
185         
186 2003-05-21  NeilBrown <neilb@cse.unsw.edu.au>
187
188         * support/export/hostname.c(get_reliable_hostbyaddr): new function
189         to get host name from address with full checking of authenticity.
190         * support/include/misc.h: declare above function
191         * utils/mountd/auth.c(auth_authenticate_internal): remove all
192         logic for authenticating address.
193         * utils/mountd/auth.c(auth_authenticate): call new
194         get_reliable_hostbyaddr to to hostname lookup before calling _internal.
195         
196         
197 2003-03-30  NeilBrown <neilb@cse.unsw.edu.au>
198
199         * tools/rpcgen/rpc_main.c(find_cpp): removed
200         * tools/rpcgen/rpc_main.c(open_input): use execvp to find "cpp", 
201         then try hard-coded paths.
202         
203 2003-03-26  Chip Salzenberg  <chip@pobox.com>
204
205         * debian/changelog: Version 1.0.3-1.
206
207 2003-03-26 NeilBrown <neilb@cse.unsw.edu.au>
208
209         * utils/mountd/rmtab.c (slink_safe_rename): real_newpath should be
210         "const char*", not "char*".
211
212 2003-03-26 NeilBrown <neilb@cse.unsw.edu.au>
213
214         * configure.in (VERSION): Set to "1.0.3".
215         * nfs-utils.spec: Likewise.
216         * configure: Regenerated.
217
218 2003-03-26 NeilBrown <neilb@cse.unsw.edu.au>
219
220         * support/nfs/cacheio.c: New File - support for read/writing
221         to export cache in /proc/rpc/*/channel
222         * support/nfs/Makefile: compile cacheio.c
223         * support/include/nfslib.h: declare cacheio.c functions
224         * support/nfs/nfsexport.c: export and unexport through
225         /proc/rpc/*/channel if possible, as old syscall interface
226         may not survive into 2.6 on all architectures.
227         
228 2003-02-19 NeilBrown <neilb@cse.unsw.edu.au>    
229         Ben Leslie <benno@sesgroup.net>
230
231         * support/nfs/rpcmisc.c(rpc_init):  change test for ignoring
232         "defport" from (__rpcfdtype == 0) to (__rpcpmstart==0).  The
233         former would incorectly ignore defport if the application 
234         explicitly set __rpcfdtype.  The later is sufficient to avoid the
235         special handling in the case where stdin is an internet socket.
236
237         * utils/mountd/mountd.c(main): Add 'n' to option list in
238         getopt_long as this is a short form of --no-tcp which want being
239         checked.
240         
241 2003-02-12  Chip Salzenberg  <chip@pobox.com>
242
243         * debian/changelog: Version 1.0.2-2.
244
245 2002-11-27  Chip Salzenberg  <chip@pobox.com>
246
247         * utils/mountd/rmtab.c (slink_safe_rename): Fix off-by-one buffer
248         overflow bug.  Reformat per rest of source file.
249
250 2002-11-19  NeilBrown <neilb@cse.unsw.edu.au>
251
252         * utils/exportfs/exports.man: Correct notes about whether the wild
253         card characters match a period.  They do.
254         
255 2002-10-15  Juan Gomez <juang@us.ibm.com>
256
257         * utils/mountd/rmtab.c (slink_safe_rename): New. Support
258         symlink.
259         (mountlist_add): Call slink_safe_rename instead of rename.
260
261 2002-10-11  H.J. Lu <hjl@lucon.org>
262
263         * support/include/exportfs.h (export_errno): New.
264
265         * support/nfs/exports.c: Include <errno.h>.
266         (export_errno): New.
267         (getexportent): Set export_errno to EINVAL for bad option.
268         (parseopts): Likewise.
269         Report the location of the default sync/async option.
270
271         * utils/exportfs/exportfs.c (main): Initialize export_errno to
272         0. Return export_errno.
273
274 2002-10-11  Juan Gomez  <gomez@cs.sjsu.edu>
275         NeilBrown <neilb@cse.unsw.edu.au>
276
277         utils/statd/statd.c(killer): don't pmap_unset if in notify_only mode
278         utils/statd/statd.c(main): don't pmap_unset if in notify_only mode
279         
280 2002-09-16  Chip Salzenberg  <chip@pobox.com>
281
282         * utils/rquotad/rquota_svc.c (main): Use int for value of getopt.
283
284 2002-09-15  Chip Salzenberg  <chip@pobox.com>
285
286         * support/nfs/rpcmisc.c (rpc_init): Allow stdin to be a non-INET
287         socket, as occurs when run from sshd.
288         * debian/changelog: Version 1.0.2-1.
289
290 2002-09-12  H.J. Lu <hjl@lucon.org>
291
292         * support/nfs/svc_socket.c: Remove HAVE_SVCTCP_SOCKET and
293         HAVE_SVCUDP_SOCKET.
294
295 2002-09-12  H.J. Lu <hjl@lucon.org>
296
297         * configure.in: Remove checking svctcp_socket and svcudp_socket.
298         * configure: Regenerated.
299
300         * support/include/config.h.in (HAVE_SVCTCP_SOCKET): Removed.
301         (HAVE_SVCUDP_SOCKET): Removed.
302
303         * support/include/nfslib.h: Undo the last change.
304
305 2002-09-12  H.J. Lu <hjl@lucon.org>
306
307         * support/include/nfslib.h (svctcp_socket): Protect it with
308         HAVE_SVCTCP_SOCKET.
309         (svcudp_socket): Protect it with HAVE_SVCUDP_SOCKET.
310
311 2002-09-12  H.J. Lu <hjl@lucon.org>
312
313         * configure.in (VERSION): Set to "1.0.2".
314         * configure: Regenerated.
315         * nfs-utils.spec: Likewise.
316
317 2002-09-12  H.J. Lu <hjl@lucon.org>
318
319         * configure.in: Check svctcp_socket and svcudp_socket.
320         * configure: Regenerated.
321
322         * support/include/config.h.in (HAVE_SVCTCP_SOCKET): New.
323         (HAVE_SVCUDP_SOCKET): New.
324
325         * support/include/nfslib.h (svctcp_socket): New.
326         (svcudp_socket): New.
327
328         * support/nfs/Makefile (OBJS): Add svc_socket.o.
329
330         * support/nfs/svc_socket.c: New.
331
332         * support/nfs/rpcmisc.c (rpc_init): Call svctcp_socket and
333         svcudp_socket if port is unspecified.
334
335         * utils/nfsd/nfsd.c (main): Call getservbyname for port.
336
337         * utils/rquotad/rquota_svc.c: Include <nfslib.h>.
338         (killer): New. Signal handler to unregister.
339         (main): Use killer. Call svcudp_socket to get the default
340         socket.
341
342 2002-09-02 Juan Gomez <juang@us.ibm.com>
343         NeilBrown <neilb@cse.unsw.edu.au>
344
345         Add -N option to statd to run in notify-only mode.
346
347         * utils/statd/statd.h: uncomment MODE_NOTIFY_ONLY
348         * utils/statd/statd.man: document -N
349         * utils/statd/statd.c: enabled -N, largely exists but needed to be
350         uncommented and completed
351         
352 2002-09-02 Juan Gomez <juang@us.ibm.com>
353         NeilBrown <neilb@cse.unsw.edu.au>
354
355         statd to have " -P directory" arg to use that directory instead
356         of /var/lib/nfs.  This is useful for fail-over clusters.
357         
358         * utils/statd/statd.h: define SM_DIR etc as var, not const.
359         * utils/statd/statd.c: define "-P" option to set SM_*
360         appropriately.
361         * utils/statd/monitor.c: sprintf to cope with SM_DIR not being
362         a constant any more.
363         * utils/statd/notify.c: ditto.
364         * utils/statd/statd.man: document -P option.
365         
366 2002-08-26  Chip Salzenberg  <chip@pobox.com>
367
368         * utils/nfsd/nfsd.man: Fix typo.
369         * debian/changelog: Version 1.0.1-1.
370
371 2002-05-29 NeilBrown <neilb@cse.unsw.edu.au>
372
373         * let parseopts know if /etc/exports was being read or not, 
374         and have it only print "no sync or async" warning in that case.
375         
376 2002-05-06 Tom McNeal <trmcneal@attbi.com>
377         NeilBrown <neilb@cse.unsw.edu.au>
378
379         * utils/nfsstat/nfsstat.c: Handle differing format for
380            /proc/net/rpc/nfsd between pre and post 2.4.0
381         
382 2002-04-09  NeilBrown <neilb@cse.unsw.edu.au>
383         James Pearson <james-p@moving-picture.com>
384
385         * support/nfs/rmtab.c(fendrmtabent): sync changes to 
386         storage before returning, as this is critical state
387
388 2002-04-08  Sean O'Connell <sean@ee.duke.edu>
389             H.J. Lu <hjl@lucon.org>
390
391         * etc/redhat/nfs: New.
392
393 2002-04-08  H.J. Lu <hjl@lucon.org>
394
395         * etc/redhat/nfs.init: Updated.
396
397         * nfs-utils.spec.in: Updated.
398         * nfs-utils.spec: Regenerated.
399
400         * utils/mountd/mountd.c (longopts): Fix a typo.
401
402         * utils/mountd/mountd.man: Updated.
403
404 2002-04-07  H.J. Lu <hjl@lucon.org>
405
406         * etc/redhat/nfslock.init (restart): Just do stop and start.
407
408         * etc/redhat/nfs.init: Fix a typo.
409
410 2002-04-07  H.J. Lu <hjl@lucon.org>
411
412         * configure.in (VERSION): Set to "1.0.1".
413         * configure: Regenerated.
414         * nfs-utils.spec: Likewise.
415
416         * README: Updated for 1.0.1.
417
418 2002-04-07  Sean O'Connell <sean@ee.duke.edu>
419             H.J. Lu <hjl@lucon.org>
420
421         * etc/redhat/nfs.init: Read /etc/sysconfig/nfsd for NFS tuning.
422
423 2002-02-28   Steven Whitehouse <steve@gw.chygwyn.com>
424               NeilBrown <neilb@cse.unsw.edu.au>
425
426         Add support for fsid=nn export option so that device
427         numbers don't go in filehandles.
428         * support/export/nfsctl.c(expsetup): if exporting and NFSEXP_FSID
429         is set, pass the fsid in-place of the device number
430         * support/nfs/exports.c: parse and print fsid= option.
431         Also check if efname has been set, and use "command line"
432         instead in error messages.
433         Also, use strtol instead of atoi for anon[ug]id= so that
434         bad numbers cause errors.
435         
436 2002-01-17   Adrian Drzewiecki <drze@MissionCriticalLinux.com>
437              NeilBrown <neilb@cse.unsw.edu.au>
438
439         * support/nfs/exports.c: remove NFSEXP_ASYNC as a default
440         flag so that "sync" becomes the default.
441         Check that either "sync" or "async" is given as an option
442         and warn if neither are present
443         * utils/exportfs/exports.man: change documentation for "sync"
444         to be documentation for "async".
445         * utils/exportfs/exportfs.man: note that "sync" is the default
446         rather than "async"
447         
448         
449 2002-01-02  Chip Salzenberg  <chip@pobox.com>
450
451         * support/export/nfsctl.c (expsetup): Don't export entries that
452         specify id mappings not supported by the kernel.  No extant kernel
453         supports any significant mapping, only 'identity' (i.e. none).
454         When other mappings are supported, this code will need changing.
455         * debian/changelog: Version 1.0-2.
456
457 2001-12-26  Chip Salzenberg  <chip@pobox.com>
458
459         * nfs-utils.spec (Version): Set to "1.0".
460         * configure.in (VERSION): Likewise.
461         * configure: Regenerated.
462         * README: Rewritten.
463         * debian/changelog: Version 1.0-1.
464
465         * utils/exportfs/exports.man: Emphasize the need for options to
466         immediately follow client names.  Explain that wildcards don't
467         usually work on addresses, but may work when reverse DNS fails.
468         Comment out a leftover TP that was TPing our indentation.
469         * utils/mountd/mountd.man, utils/rquotad/rquotad.man,
470         utils/statd/statd.man: Remove refs to non-existent "hosts_allow(5)".
471         * debian/changelog: Version 0.3.3-6.
472
473 2001-12-20  NeilBrown <neilb@cse.unsw.edu.au>
474
475         * support/export/client.c(client_lookup): If a host has multiple
476         IP addresses, then we must always use the result of a
477         gethostbyname, not that of gethostbyaddr for exporting
478         
479 2001-12-20  NeilBrown <neilb@cse.unsw.edu.au>
480
481         * support/export/client.c (client_lookup): use strcasecmp when
482         comparing host names
483         * support/nfs/export.c (getexportent): add fromkernel arg and use
484         different defaults as kernels prior to 2.4.11 assume different
485         defaults in /proc/fs/nfs/exports
486         * support/include/nfslib.h, support/export/export.c,
487         support/export/xtab.c:  support extra "fromkernel" arg for
488         getexportent. 
489         
490 2001-12-13  Chip Salzenberg  <chip@pobox.com>
491
492         * debian/changelog: Version 0.3.3-5.
493
494 2001-11-26  TAKAI Kousuke <takai@vlsi.kuee.kyoto-u.ac.jp>
495
496         * support/nfs/xio.c (xskip): Call `xungetc' instead of
497         `ungetc' to keep x_line more properly.
498
499 2001-11-26  Chip Salzenberg  <chip@pobox.com>
500
501         * utils/showmount/showmount.c (main): Don't assume that strings
502         starting with digits are IP addresses.
503         * utils/nfsd/nfsd.c (main): Close all fds and reopen 0,1,2 on
504         /dev/null before nfssvc().  Use syslog to report nfssvc errors.
505         * support/misc/tcpwrapper.c, utils/mountd/mountd.man,
506         utils/rquotad/rquotad.man, utils/statd/statd.man: Fix comments and
507         man pages: We check host names *and* addresses with tcpwrappers.
508         * debian/changelog: Version 0.3.3-4.
509
510 2001-11-21  Chip Salzenberg  <chip@pobox.com>
511
512         * support/nfs/clients.c (cfname): Added: current clients file name.
513         (setnfsclntent): Set it.
514         ({get,end}nfsclntent, syntaxerr): Use it.
515         * support/nfs/exports.c (efname): Added: current exports file name.
516         (setnfsexportent): Set it.
517         (endnfsexportent, parseopts, getexport, syntaxerr): Use it.
518         (parseopts): Accept old-style "crossmnt" option, for old xtabs.
519         * debian/changelog: Version 0.3.3-3.
520
521 2001-10-11  Chip Salzenberg  <chip@pobox.com>
522
523         * utils/mountd/mountd.c (main): Close fds > 2 _before_ RPC init.
524         * debian/changelog: Version 0.3.3-2.
525
526 2001-10-08  Chip Salzenberg  <chip@pobox.com>
527
528         * utils/mountd/mountd.c (main): When daemonizing, close all fds > 2.
529         * utils/Makefile.in: Remove old Makefile in target 'distclean'.
530         * utils/mountd/mountd.man: Update paths to /var/lib.
531         * debian/*: Version 0.3.3-1, with Debian-specific fixes.
532
533 2001-10-06  Preston Brown <pbrown@redhat.com>
534
535         * utils/nfsstat/nfsstat.man: Updated.
536
537 2001-09-24  H.J. Lu <hjl@lucon.org>
538
539         * configure.in (VERSION): Set to "0.3.3".
540         * configure: Regenerated.
541         * nfs-utils.spec: Likewise.
542
543         * README: Updated for 0.3.3.
544
545 2001-09-20 NeilBrown <neilb@cse.unsw.edu.au>
546
547         Arrange that "exportfs -au" never does DNS lookup:
548         
549         * support/export/client.c (client_lookup) : add "canonical"
550         flag which says that the hostname is known to be canonical, so
551         don't do a lookup
552
553         * support/export/export.c (export_create) : add "canonical"
554         flag to be passed down to client_lookup
555         * support/export/export.c (export_lookup) : Likewise
556
557         * support/export/xtab.c (xtab_read) : pass appropriate
558         "canonical" flag to export_lookup and export_create:
559         set if reading list of filesystems currently exports
560         (is_export != 1). 
561
562         * support/export/export.c (export_read) : pass 0 as 
563         "canonical" flag to export_lookup and export_create
564         * support/export/rmtab.s (rmtab_read) : Likewise
565
566         * support/include/exportfs.h : redeclare various routines
567         to have "canonical" flag
568
569         * utils/exportfs/exportfs.c (main) : redo logic for 
570         "-au" to read in what is currently exported, but never even 
571         look at what "should" be exported.
572
573         * utils/exportfs/exportfs.c (unexportall) : remove this
574         routine. Functionality is completely included in
575         exports_update
576
577         * utils/exportfs/exportfs.c (exportfs) : set "canonical"
578         flag to zero in calls to export_lookup and export_create.
579
580         
581 2001-09-20 NeilBrown <neilb@cse.unsw.edu.au>
582             Anne Milicia <milicia@missioncriticallinux.com>
583
584         * support/export/client.c (client_lookup) call gethostbyadd
585         to make sure that we have a canonical hostname, even for
586         dotted-quads
587         * utils/exportfs/exportfs.c (exportfs) Likewise
588         
589 2001-09-12 NeilBrown <neilb@cse.unsw.edu.au>
590
591         * support/nfs/exports.c (putexportent): \octal quote any spaces
592         etc in a path name
593         * support/nfs/xio.c (xgettok): recognise double-quote and
594         \octal quoting in path names
595         * utils/exportfs/exports.man: document quoting conventions
596         for path names
597         
598 2001-09-12 NeilBrown <neilb@cse.unsw.edu.au>
599
600         * utils/mountd/auth.c (auth_authenticate_internal): Reverse
601           change from 2000-08-02:  It causes problems if someone exports
602           to both a hostname and IP addresses.  nfs-utils must be
603           consistant about the canonical name that it chooses.
604
605 2001-08-17  Ragnar Kjørstad <nfs@ragnark.vestdata.no>
606             H.J. Lu <hjl@lucon.org>
607
608         * etc/redhat/nfslock.init (STATDARG): New. Pass it to rpc.statd.
609
610         * utils/statd/statd.c (longopts): Add "name".
611         (usage): Add "-n/--name".
612         (main): Set MY_NAME with "-n/--name".
613
614         * utils/statd/state.c (change_state): Set MY_NAME only if it
615         is NULL.
616         
617         * utils/statd/statd.man: Updated for "-n/--name".
618
619 2001-07-26  H.J. Lu <hjl@lucon.org>
620
621         * nfs-utils.spec (Release): Set to 8.
622
623 2001-07-25  H.J. Lu <hjl@lucon.org>
624
625         * etc/redhat/nfs.init: Check if rpc.rquotad exists before doing
626         anything about it.
627
628 2001-06-27  H.J. Lu <hjl@lucon.org>
629
630         * etc/redhat/nfs.init: Run rpc.rquotad only if it exists.
631
632 2001-06-27  H.J. Lu <hjl@lucon.org>
633
634         * utils/rquotad/rquota_server.c: Don't call statfs () for
635         the block size. Use BLOCK_SIZE instead.
636
637 2001-06-27  H.J. Lu <hjl@lucon.org>
638
639         * config.mk.in (CC_FOR_BUILD): Renamed from BUILD_CC.
640         (CFLAGS_FOR_BUILD): New. Don't use @CFLAGS@.
641
642         * configure.in (enable_nfsv3): Set to yes by default.
643         (--enable-rquotad): Added
644         (AC_PROG_CXX): Removed.
645         (AC_OUTPUT): Add utils/Makefile.
646         (CC_FOR_BUILD): Renamed from BUILD_CC.
647         * configure: Regenerated.
648
649         * utils/Makefile: Removed.
650
651         * utils/Makefile.in: New.
652
653         * nfs-utils.spec.in (rquotad): New. Set to 0 to disable
654         rquotad.
655         (CC_FOR_BUILD): Renamed from BUILD_CC.
656         * nfs-utils.spec: Regenerated.
657
658 2001-06-15  Chip Salzenberg  <chip@debian.org>
659
660         * debian/changelog: Version 0.3.2-2.
661         * debian/*.init: Minor fixes.
662
663 2001-06-07  Lon H. Hohberger <hohberger@missioncriticallinux.com>
664
665         * etc/nodist/nfs-server: Fixed a bug where the script would
666         disable mounts from NFSv3 clients if NFSv3 is present.
667
668 2001-06-05  H.J. Lu <hjl@lucon.org>
669
670         * utils/mountd/mountd.c (longopts): Add "descriptors/o".
671         (main): Support --descriptors/-o to set the limit of the number
672         of open file descriptors.
673         (usage): Updated.
674
675         * utils/mountd/mountd.man: Updated for --descriptors/-o.
676
677 2001-06-04  H.J. Lu <hjl@lucon.org>
678
679         * nfs-utils.spec (Release): Set to 6.
680
681 2001-05-28  H.J. Lu <hjl@lucon.org>
682
683         * utils/lockd/lockd.c (main): chdir to NFS_STATEDIR.
684         * utils/mountd/mountd.c (main): Likewise.
685         * utils/nfsd/nfsd.c (main): Likewise.
686         * utils/rquotad/rquota_svc.c (main): Likewise.
687
688 2001-05-06  Anne Milicia <milicia@missioncriticallinux.com>
689
690         * support/export/client.c (client_check): Check IP address
691         againet netgroup.
692
693 2001-05-06  Neil Brown <neilb@cse.unsw.edu.au>
694
695         * support/export/client.c (client_gettype): Treat `*' as
696         MCL_ANONYMOUS.
697
698 2001-04-22  H.J. Lu <hjl@lucon.org>
699
700         * nfs-utils.spec.in: Fix a typo.
701         * nfs-utils.spec: Regenerated.
702
703 2001-04-21  H.J. Lu <hjl@lucon.org>
704
705         * nfs-utils.spec.in: Fix cross build.
706         * nfs-utils.spec: Regenerated.
707         (Release): Set to 5.
708
709 2001-04-18  H.J. Lu <hjl@lucon.org>
710
711         * nfs-utils.spec.in: Support cross build.
712         * nfs-utils.spec: Regenerated.
713         (Release): Set to 4.
714
715         * config.sub: New.
716         * config.guess: New.
717
718         * config.mk.in (BUILD_CC): New.
719         (CC): Set to $(BUILD_CC) if BUILD is defined.
720         (AR): Set to @AR@.
721         (LD): Set to @LD@.
722         (RANLIB): Set to @RANLIB@.
723
724         * configure.in: Check BUILD_CC, RANLIB, AR and LD.
725         * configure: Regenerated.
726
727         * tools/rpcgen/Makefile (BUILD): Set to true.
728
729 2001-04-01  Chip Salzenberg  <chip@valinux.com>
730
731         * tools/rpcgen/rpc_svcout.c (write_timeout_func): Remove
732         redundant, and sometimes broken, declaration of svc_fdset;
733         it may be a macro.
734         * support/nfs/rpcmisc.c (closedown): Likewise.
735         
736 2001-03-21  H.J. Lu <hjl@lucon.org>
737
738         * nfs-utils.spec: Regenerated.
739         (Release): Set to 3.
740
741 2001-03-21  Ion Badulescu  <ionut@cs.columbia.edu>
742
743         * utils/statd/statd.c (main): make sure file descriptors 0-2
744         are open to /dev/null.
745
746 2001-03-21  H.J. Lu <hjl@lucon.org>
747
748         * support/nfs/rpcmisc.c: Restore the change made on 2001-03-10.
749         * support/nfs/rpcmisc.c: Likewise.
750         * utils/rquotad/rquota_svc.c: Likewise.
751         * utils/rquotad/rquotad.man: Likewise.
752         * utils/statd/Makefile: Likewise.
753         * utils/statd/rmtcall.c: Likewise.
754         * utils/statd/simulate.c: Likewise.
755         * utils/statd/statd.c: Likewise.
756         * utils/statd/statd.man: Likewise.
757
758 2001-03-11  H.J. Lu <hjl@lucon.org>
759
760         * configure.in (RELEASE): New. Default to 1, set by
761         --with-release=XXX. Substitute nfs-utils.spec.
762         * nfs-utils.spec.in (Release): Set to @RELEASE@.
763         * configure: Regenerated.
764         * nfs-utils.spec: Likewise.
765
766 2001-03-11  H.J. Lu <hjl@lucon.org>
767
768         * utils/rquotad/rquotad.man: Fix a typo.
769
770 2001-03-11  H.J. Lu <hjl@lucon.org>
771
772         * support/include/rpcmisc.h: Undo the change made on 2001-03-10.
773         * support/nfs/rpcmisc.c: Likewise.
774         * utils/rquotad/rquota_svc.c: Likewise.
775         * utils/rquotad/rquotad.man: Likewise.
776         * utils/statd/Makefile: Likewise.
777         * utils/statd/rmtcall.c: Likewise.
778         * utils/statd/simulate.c: Likewise.
779         * utils/statd/statd.c: Likewise.
780         * utils/statd/statd.man: Likewise.
781
782 2001-03-10  H.J. Lu <hjl@lucon.org>
783
784         * configure.in (VERSION): Set to "0.3.2".
785         * configure: Regenerated.
786         * nfs-utils.spec: Likewise.
787
788         * README: Updated for 0.3.2.
789
790 2001-03-10  Tavis Barr <tavis@boole.isetr.columbia.edu>
791
792         * utils/rquotad/rquotad.man: Updated for -p.
793         * utils/statd/statd.man: Likewise.
794
795 2001-03-10  Ion Badulescu  <ionut@cs.columbia.edu>
796
797         * support/nfs/rpcmisc.c: export makesock()
798
799         * support/include/rpcmisc.h (makesock): Declared.
800
801         * utils/rquotad/rquota_svc.c: added longopts, added support for
802         specifying the port to bind to on the command line.
803
804         * utils/statd/statd.c: ditto, also specify port used for
805         outgoing connections.
806         (do_regist): Removed.
807
808         * utils/statd/rmtcall.c (statd_get_socket): Renamed from
809         get_socket. Make it extern.
810
811         * utils/statd/simulate.c (daemon_simulator): Call rpc_init
812         instead of do_regist.
813
814         * utils/statd/Makefile (LIBS): link with our own libnfs
815
816 2001-03-09  H.J. Lu <hjl@lucon.org>
817
818         * etc/redhat/nfslock.init: Changed chkconfig line to 60 86.
819         * etc/nodist/nfs-client: Likewise.
820
821 2001-02-26  Chip Salzenberg  <chip@valinux.com>
822
823         * debian/changelog: Version 0.3.1-1.
824         * Mention upstream source and license in copyright file.
825         * Add build-Depends for debhelper and libwrap0-dev.
826
827 2001-02-20  Lon Hohberger <hohberger@missioncriticallinux.com>
828
829         * etc/nodist/nfs-server: Changed chkconfig line to 60 20
830         * etc/nodist/nfs-client: Likewise.
831
832 2001-02-18  Lon Hohberger <hohberger@missioncriticallinux.com>
833
834         * utils/statd/statd.man: Changed /usr/sbin/rpc.statd to
835         /sbin/rpc.statd.
836
837 2001-02-17  Patrick J. LoPresti <patl@curl.com>
838
839         * utils/statd/log.c (log_init): Use LOG_DAEMON instead of
840         LOG_LOCAL5.
841
842 2001-02-14  H.J. Lu <hjl@lucon.org>
843
844         * utils/statd/rmtcall.c: Include <time.h>.
845         * utils/statd/svc_run.c: Likewise.
846
847 2001-02-14  H.J. Lu <hjl@lucon.org>
848
849         * configure.in (VERSION): Set to "0.3.1".
850         * configure: Regenerated.
851         * nfs-utils.spec: Likewise.
852
853         * README: Updated for 0.3.1.
854
855 2001-02-14  H.J. Lu <hjl@lucon.org>
856
857         * support/nfs/rpcmisc.c: Include <time.h>.
858
859 2001-02-14  Chip Salzenberg  <chip@valinux.com>
860
861         * debian/control: Change priority of nhfsstone package to 'extra'.
862
863 2001-02-12  Chip Salzenberg  <chip@valinux.com>
864
865         * debian/changelog: Version 0.3-2.
866
867 2001-02-02  H.J. Lu <hjl@lucon.org>
868
869         * support/include/rpcmisc.h (rpc_init): Remove bufsize.
870         
871         * support/nfs/rpcmisc.c (makesock): Remove socksz and comment
872         out SO_SNDBUF/SO_RCVBUF.
873         (rpc_init): Remove bufsize and remove socksz in calls to
874         makesock ().
875
876         * utils/mountd/mountd.c (main): Remove bufsize in calls to
877         rpc_init ().
878
879 2001-01-28  Chip Salzenberg  <chip@valinux.com>
880
881         * debian/changelog: Version 0.3-1.
882
883 2001-01-25  H.J. Lu <hjl@lucon.org>
884
885         * configure.in (VERSION): Set to "0.3".
886         * configure: Regenerated.
887         * nfs-utils.spec: Likewise.
888
889         * README: Updated for 0.3.
890
891 2001-01-25  H.J. Lu <hjl@lucon.org>
892
893         * utils/lockd/lockd.c (main): Ignore errno == EINVAL.
894
895 2001-01-20  Chip Salzenberg  <chip@valinux.com>
896
897         * support/include/xio.h (xgetc): Declare to return int.
898         * support/nfs/xio.c (xgetc): Return int.
899         (xgettok, xskip, xskipcomment): Use int for value of xgetc.
900         * utils/statd/statd.c (main): Use int for value of getopt.
901         * debian/changelog: Version 0.2.1-5.
902         
903 2000-12-10  Chip Salzenberg  <chip@valinux.com>
904
905         * utils/statd/monitor.c (sm_mon_1_svc): Fix buggy check for
906         program and procedure numbers of kernel lockd's callback.  Also,
907         besides the old (and broken) procedure #24, allow #16 per Trond.
908
909 2000-12-03  Chip Salzenberg  <chip@valinux.com>
910
911         * support/nfs/xio.c (xfopen): Initialize x_line to one, not zero.
912         * debian/control: Let nhfsstone replace files in nfs-kernel-server.
913         * debian/changelog: Version 0.2.1-4.
914
915 2000-11-27  Tobias Ringstrom <tori@tellus.mine.nu>
916
917         * utils/mountd/auth.c (auth_authenticate): Log the bad path
918         warning.
919
920 2000-11-24  Neil Brown <neilb@cse.unsw.edu.au>
921
922         * support/nfs/exports.c (getexportent): Check for host name
923         without option, or options without hostname, and print a warning,
924         as this is most likely a typo.
925
926 2000-11-19  Chip Salzenberg  <chip@valinux.com>
927
928         * debian/control: Add dependency on portmap.
929         * debian/changelog: Version 0.2.1-3.
930
931 2000-11-10  H.J. Lu <hjl@lucon.org>
932
933         * nfs-utils.spec.in: Don't use libtool.
934         Add ChangeLog and COPYING to doc.
935         * nfs-utils.spec: Rebuild.
936
937 2000-11-09  H.J. Lu <hjl@lucon.org>
938
939         * etc/redhat/nfs.init (start): Back out the last change.
940
941 2000-11-09  H.J. Lu <hjl@lucon.org>
942
943         * etc/redhat/nfs.init (start): Pass --no-tcp to mountd if
944         TCP is not supported by kernel.
945
946         * support/nfs/rpcmisc.c (rpc_init): Don't set _rpcfdtype to 0.
947
948         * utils/mountd/mountd.c (longopts): Add "-n/--no-tcp".
949         (main): Set to _rpcfdtype to SOCK_DGRAM for "-n/--no-tcp".
950
951         * utils/mountd/mountd.man: Updated for "-n/--no-tcp".
952
953 2000-10-24  Lon Hohberger <hohberger@missioncriticallinux.com>
954
955         * utils/statd/callback.c: Fix bug preventing callbacks to local lockd.
956         * utils/statd/rmtcall.c: Add some IP address paranoia when doing
957         callbacks to local lockd.
958
959 2000-10-18  Scott McDermott <mcdermot@questra.com>
960
961         * utils/exportfs/exports.man: Updated for CIDR netmask.
962
963 2000-10-17  Scott McDermott <mcdermot@questra.com>
964
965         * support/export/client.c (client_init): Support CIDR netmask
966         in /etc/exports.
967
968 2000-10-11  H.J. Lu <hjl@lucon.org>
969
970         * aclocal.m4 (AC_TCP_WRAPPER): Fix a typo.
971         * configure: Rebuilt.
972
973 2000-10-06  Lon Hohberger <hohberger@missioncriticallinux.com>
974
975         * utils/statd/statd.man: Change "/var/lib/nfs/sm/state" to
976         "/var/lib/nfs/state".
977
978 2000-10-05  Lon Hohberger <hohberger@missioncriticallinux.com>
979
980         * utils/statd/statd.h (run_mode): New global bitmask of runtime
981         behaviors: fg/bg, logging, etc.
982         * utils/statd/statd.c: New command line options: -V -h -? -d .
983         * utils/statd/statd.man: Update for changes to statd.
984
985         * utils/statd/log.h (log_init): Remove parameter of function; use
986         global variable "name_p" instead.
987         * utils/statd/log.c: Add support for logging to stderr.
988
989         * utils/statd/notlist.c: Partially rewrite notify list handling
990         functions.  Eliminate run-off-end-of-list bug when calling
991         nlist_insert_timer.  Add lots of comments.
992         
993 2000-09-27  H.J. Lu <hjl@lucon.org>
994
995         * README: Updated for RedHat 7.0.
996
997 2000-09-27  H.J. Lu <hjl@lucon.org>
998
999         * nfs-utils.spec: Rebuild.
1000
1001 2000-09-27  H.J. Lu <hjl@lucon.org>
1002
1003         * README: Updated for 0.2.1.
1004
1005 2000-09-27  H.J. Lu <hjl@lucon.org>
1006
1007         * nfs-utils.spec.in: Updated to use rpm macros and support
1008         RedHat 7.0.
1009
1010 2000-09-25  H.J. Lu <hjl@lucon.org>
1011
1012         * configure.in (VERSION): Set to "0.2.1".
1013         * configure: Regenerated.
1014         * nfs-utils.spec: Updated.
1015
1016 2000-09-25  H.J. Lu <hjl@lucon.org>
1017
1018         * utils/mountd/auth.c (auth_authenticate_internal): Make sure a
1019         non-NULL hostent is always returned.
1020
1021 2000-09-11  Ion Badulescu  <ionut@cs.columbia.edu>
1022
1023         * etc/redhat/nfslock.init: don't kill lockd processes that do not
1024         have an executable (i.e. kernel threads)
1025
1026 2000-09-01  H.J. Lu <hjl@lucon.org>
1027
1028         * README: Updated for 0.2.
1029
1030 2000-09-01  Jay Weber <jweber@valinux.com>
1031
1032         * etc/redhat/nfs.init: Added ability for rpc.mountd to default to
1033         supporting version 3 of nfs if available, else it will fall back to
1034         version 2 support only.
1035
1036 2000-08-30  H.J. Lu <hjl@lucon.org>
1037
1038         * configure.in (VERSION): Set to "0.2".
1039         * configure: Regenerated.
1040         * nfs-utils.spec: Updated.
1041
1042 2000-08-25  H.J. Lu <hjl@lucon.org>
1043
1044         * support/misc/tcpwrapper.c (logit): Modify the log output.
1045
1046 2000-08-25  Ion Badulescu  <ionut@cs.columbia.edu>
1047
1048         * utils/rquotad/rquotad.man, utils/statd/statd.man,
1049         utils/mountd/mountd.man: updated
1050         
1051         * utils/mountd/Makefile (LIBS): added -lmisc $(LIBWRAP) $(LIBNSL)
1052         * utils/rquotad/Makefile: fix comment
1053
1054         * support/misc/tcpwrapper.c (logit): added comment about waiting
1055         for the children after fork()
1056         
1057         * utils/mountd/mountd.c (main): ignore SIGCHLD to prevent leaving
1058         zombies behind (from logit()'s fork)
1059         * utils/rquotad/rquota_svc.c (main): ditto
1060         * utils/statd/statd.c (main): ditto
1061
1062         * utils/rquotad/rquota_svc.c (rquotaprog_1): pass RQUOTAPROG
1063         to check_default instead of 0, for prognum
1064
1065         * utils/statd/statd.c (sm_prog_1_wrapper): pass SM_PROG
1066         to check_default instead of 0, for prognum
1067
1068         * utils/mountd/mount_dispatch.c: Include "tcpwrapper.h" if
1069         HAVE_TCP_WRAPPER is defined.
1070         (mount_dispatch): Call check_default () if HAVE_TCP_WRAPPER is
1071         defined. Reject an RPC call if check_default () fails.
1072
1073 2000-08-25  H.J. Lu <hjl@lucon.org>
1074
1075         * support/include/tcpwrapper.h: New for the tcp wrapper
1076         support.
1077         * support/misc/Makefile: Likewise.
1078         * support/misc/from_local.c: Likewise.
1079         * support/misc/tcpwrapper.c: Likewise.
1080
1081         * aclocal.m4 (AC_TCP_WRAPPER): New.
1082         * configure.in: Use it. Substitute LIBWRAP.
1083         * configure: Rebuilt.
1084
1085         * config.mk.in (LIBNSL): New.
1086         (LIBWRAP): Likewise.
1087
1088         * support/Makefile (SUBDIRS): Add misc.
1089
1090         * support/lib/Makefile (LIBS): Add libmisc.a.
1091
1092         * utils/rquotad/Makefile (LIBS): Add
1093         
1094                 -lmisc $(LIBWRAP) $(LIBNSL)
1095
1096         * utils/statd/Makefile (LIBS): Likewise.
1097
1098         * utils/rquotad/rquota_svc.c: Include "tcpwrapper.h" if
1099         HAVE_TCP_WRAPPER is defined.
1100         (rquotaprog_1): Call check_default () if HAVE_TCP_WRAPPER is
1101         defined. Reject an RPC call if check_default () fails.
1102
1103         * utils/statd/statd.c: Include "tcpwrapper.h" if
1104         HAVE_TCP_WRAPPER is defined.
1105         (sm_prog_1_wrapper): New. A wrapper for sm_prog_1. Call
1106         check_default () before calling sm_prog_1 (). Define it as
1107         sm_prog_1_wrapper if HAVE_TCP_WRAPPER is defined.
1108
1109 2000-08-25  Chip Salzenberg  <chip@valinux.com>
1110
1111         * debian/*: Complete Debian build support.
1112         * etc/debian/*: Remove.
1113
1114 2000-08-24  Neil Brown <neilb@cse.unsw.edu.au>
1115
1116         * support/export/client.c(client_check): removed the "dot+1" as a
1117           ypdomain argument to innetgr as this is entirely bogus.
1118           It should always be NULL.
1119         
1120 2000-08-23  Neil Brown <neilb@cse.unsw.edu.au>
1121
1122         * support/export/xtab.c(xtab_read): introduce new mode for
1123            reading xtab. i.e. a list of exports that might be known to the
1124            kernel, or might not.  These are flagged as m_exported == -1
1125         * support/export/xtab.c(xtab_mount_read):  call xtab_read with new
1126            value "2" for xtab, meaning don't trust this too much.
1127         * support/include/exportfs.h(struct mexport): changed m_exported
1128            from one bit to an int so that it can hold new value
1129         * utils/exportfs/exportfs.c(exportfs_ipdate): add an export to the
1130            kernel if it is uncertain whether the kernel knows (m_exported == -1)
1131         * utils/mountd/mountd.c(get_rootfh): similarly export to kernel if
1132            status is uncertain
1133
1134         * support/nfs/xio.c(xflock): added O_CREAT when getting
1135            a write lock so that missing files aren't fatal.
1136
1137         * etc/debian/nfs-common: new file from "potato"
1138         * etc/debian/nfs-kernel-server: new file from "potato" plus fixes.
1139          
1140 2000-08-09  H.J. Lu <hjl@lucon.org>
1141
1142         * etc/redhat/nfs.init: Run /usr/sbin/exportfs first during
1143         startup to ensure all existing clients work fine.
1144
1145         * support/export/xtab.c (xtab_mount_read): Pass 1 instead of 0
1146         to xtab_read () for reading _PATH_XTAB.
1147
1148 2000-08-02  H.J. Lu <hjl@lucon.org>
1149
1150         * utils/mountd/auth.c (auth_authenticate_internal): Try to
1151         avoid the reverse name lookup.
1152
1153 2000-07-04  H.J. Lu <hjl@lucon.org>
1154
1155         * utils/statd/log.c: Include <stdlib.h> for exit ().
1156
1157         * utils/statd/misc.c (xunlink): Add `{' and `}' to quiet the
1158         gcc warning.
1159
1160 2000-07-04  H.J. Lu <hjl@lucon.org>
1161
1162         * configure.in (VERSION): Set to "0.1.9.1".
1163         * configure: Regenerated.
1164         * nfs-utils.spec: Updated.
1165
1166         * README: Updated.
1167
1168 2000-07-04  Neil Brown  <neilb@cse.unsw.edu.au>
1169
1170         * support/export/hostname.c (hostent_dup): Handle the NULL
1171         h_aliases field.
1172
1173 2000-07-03  H.J. Lu <hjl@lucon.org>
1174
1175         * README: Update the util-linux requirement.
1176
1177 2000-07-03  H.J. Lu <hjl@lucon.org>
1178
1179         * configure.in (VERSION): Set to "0.1.9".
1180         * configure: Regenerated.
1181         * nfs-utils.spec: Updated.
1182
1183         * README: Updated.
1184
1185 2000-07-03  H.J. Lu <hjl@lucon.org>
1186
1187         * etc/redhat/nfs.init: Run /usr/sbin/exportfs last during
1188         stop to ensure all clients can still access the server
1189         before it is shutdown.
1190
1191 2000-06-30  Jeff Uphoff <juphoff@transmeta.com>
1192
1193         * tools/rpcgen/rpc_svcout.c (write_msg_out): Generate syslog()
1194         calls with format string.
1195         
1196 2000-06-28  Chip Salzenberg  <chip@valinux.com>
1197
1198         * utils/statd/log.c (log): Call syslog with format string.
1199
1200 2000-06-27  H.J. Lu <hjl@lucon.org>
1201
1202         * utils/statd/statd.c (main): Use sysconf (_SC_OPEN_MAX)
1203         instead of OPEN_MAX.
1204
1205 2000-06-27  H.J. Lu <hjl@lucon.org>
1206
1207         * README: Updated.
1208
1209 2000-06-27  H.J. Lu <hjl@lucon.org>
1210
1211         * etc/redhat/nfs.init: Run /usr/sbin/exportfs last during
1212         startup to ensure all existing clients are exported.
1213
1214         * configure.in (VERSION): Set to "0.1.8.2".
1215         * configure: Regenerated.
1216         * nfs-utils.spec: Updated.
1217
1218 2000-06-06  H.J. Lu <hjl@lucon.org>
1219
1220         * configure.in (VERSION): Set to "0.1.8.1".
1221         * configure: Regenerated.
1222         * nfs-utils.spec: Updated.
1223
1224 2000-06-06  H.J. Lu <hjl@lucon.org>
1225
1226         * utils/mountd/mountd.c (mount_dump_1_svc): Cast svc_getcaller
1227         to "struct sockaddr_in *" for glibc 2.2.
1228         (mount_umnt_1_svc): Likewise.
1229         (mount_umntall_1_svc): Likewise.
1230         (mount_export_1_svc): Likewise.
1231         (mount_exportall_1_svc): Likewise.
1232         (mount_pathconf_2_svc): Likewise.
1233         (get_rootfh): Likewise.
1234
1235 2000-06-04  H.J. Lu <hjl@lucon.org>
1236
1237         * etc/redhat/nfs.init: Fix a typo in comment.
1238
1239 2000-05-31  H.J. Lu <hjl@lucon.org>
1240
1241         * configure.in (VERSION): Set to "0.1.8".
1242         * configure: Regenerated.
1243         * nfs-utils.spec: Updated.
1244
1245         * README: Updated.
1246
1247 2000-05-31  H.J. Lu <hjl@lucon.org>
1248
1249         * configure.in (VERSION): Set to "0.1.7.5".
1250         * configure: Regenerated.
1251         * nfs-utils.spec: Updated.
1252
1253         * support/include/nfslib.h (exportent): Add a new field,
1254         r_count, to count the number of mounts from a client.
1255         (getrmtabent): Take a new argument for position in file.
1256         (putrmtabent): Likewise.
1257         (fgetrmtabent): Likewise.
1258         (fputrmtabent): Likewise.
1259         * support/nfs/rmtab.c (getrmtabent): Handle the new argument
1260         for position in file.
1261         (fgetrmtabent): Likewise.
1262         (putrmtabent): Likewise.
1263         (fputrmtabent): Likewise.
1264
1265         * support/nfs/rmtab.c (fgetrmtabent): Get value for the new
1266         field, r_count.
1267
1268         * support/export/rmtab.c (rmtab_read): Pass NULL as the new
1269         argument to getrmtabent (), fgetrmtabent (), putrmtabent ()
1270         and fputrmtabent ().
1271         * utils/mountd/rmtab.c (mountlist_add): Likewise.
1272         (mountlist_del): Likewise.
1273         (mountlist_del_all): Likewise.
1274         (mountlist_list): Likewise.
1275
1276         * utils/mountd/rmtab.c (mountlist_add): Increment "r_count"
1277         for the existing entry and initialize "r_count" to 1.
1278         (mountlist_del): Decrement "r_count".
1279
1280 2000-05-18  H.J. Lu <hjl@lucon.org>
1281
1282         * configure.in (VERSION): Set to "0.1.7.4".
1283         * configure: Regenerated.
1284         * nfs-utils.spec: Updated.
1285
1286 2000-05-18  H.J. Lu <hjl@lucon.org>
1287
1288         * etc/redhat/nfs.init (restart): Just do stop and start.
1289
1290 2000-05-09  Jay Weber <jweber@valinux.com>
1291
1292         * utils/rquotad/hasquota.c: added support for ext3 recognition
1293         in rquotad.
1294         * utils/rquotad/mntent.h: Likewise.
1295
1296 2000-05-01  H.J. Lu <hjl@lucon.org>
1297
1298         * configure.in (VERSION): Set to "0.1.7.3".
1299         * configure: Regenerated.
1300         * nfs-utils.spec: Updated.
1301
1302 2000-05-01  H.J. Lu <hjl@lucon.org>
1303
1304         * utils/rquotad/rquota_server.c (getquotainfo): Skip bad
1305         mounting poins in /etc/fstab.
1306
1307 2000-05-01  H.J. Lu <hjl@lucon.org>
1308
1309         * configure.in (VERSION): Set to "0.1.7.2".
1310         * configure: Regenerated.
1311         * nfs-utils.spec: Updated.
1312
1313 2000-05-01  H.J. Lu <hjl@lucon.org>
1314
1315         * utils/rquotad/rquota_server.c (getquotainfo): Call stat ()
1316         to check for the mounting point.
1317
1318 2000-04-29  Chip Salzenberg  <chip@valinux.com>
1319             Neil Brown  <neilb@cse.unsw.edu.au>
1320
1321         * Really re-use RPC ports.
1322           (Fixes earlier patch.  Sorry, Neil.)
1323
1324 2000-04-26  H.J. Lu <hjl@lucon.org>
1325
1326         * configure.in (VERSION): Set to "0.1.7.1".
1327         * configure: Regenerated.
1328         * nfs-utils.spec: Updated.
1329
1330 2000-04-26  H.J. Lu <hjl@lucon.org>
1331
1332         * etc/redhat/nfslock.init: Check if lockd exits before killing
1333         it.
1334
1335 2000-04-25  H.J. Lu <hjl@lucon.org>
1336
1337         * README: Require util-linux-2.10f-mount-rpc.patch for mount.
1338
1339 2000-03-21 Michael Weiser <michael@weiser.saale-net.de>
1340
1341         * support/nfs/exports.c (parsesquash): Correctly set the
1342         return pointer.
1343
1344 Tue Mar 21 11:38:48 EST 2000 NeilBrown <neilb@cse.unsw.edu.au>
1345
1346         * support/include/nfs/nfs.h: Removed knowledge of internals of
1347              kernel filehandles (which can change) and defined nfs_fh_size
1348              which has variable size
1349         
1350         * support/nfs/getfh.c: defined getfh_size to use new syscall to
1351              get variable sized file handles, and change getfh{,old} to
1352              use nfs_fh_size        
1353         
1354         * utils/mountd/mountd.c: use nfd_fh_size and call getfh_size for
1355              NFSv3 file handles
1356
1357         * tools/Makefile, tools/nlmtest/nlmtest.c
1358              nlmtest.c depended on internel format of file handles, so now
1359              doesn't work.
1360
1361         
1362 2000-03-12  Chip Salzenberg  <chip@valinux.com>
1363             Neil Brown  <neilb@cse.unsw.edu.au>
1364
1365         * support/nfs/rpcmisc.c (rpc_init): Share transports.
1366
1367 2000-03-13 H.J. Lu <hjl@lucon.org>
1368
1369         * etc/redhat/nfsd.init: Updated.
1370
1371         * etc/redhat/nfslock.init: Updated.
1372
1373         * nfs-utils.spec.in: Updated.
1374
1375         * configure.in (VERSION): Set to "0.1.7".
1376         * configure: Regenerated.
1377         * nfs-utils.spec: Updated.
1378
1379         * README: Updated.
1380
1381 Wed Mar  8 09:42:43 2000 Neil Brown <neilb@cse.unsw.edu.au>
1382
1383         * utils/exportfs/exportfs.c (dump): Included printing of
1384            nohide, no_subtree_check, and insecure_locks
1385
1386 2000-02-26  Chip Salzenberg  <chip@valinux.com>
1387
1388         * config.mk.in (INSTALLSUID): Strip ("-s").
1389         (INSTALLSCRIPT): Define.
1390         * utils/nhfsstone/Makefile: Use it.
1391
1392 2000-02-26  Chip Salzenberg  <chip@valinux.com>
1393
1394         * utils/lockd/lockd.man: Create.
1395         * utils/lockd/Makefile: Install it.
1396         * utils/nhfsstone/nhfs{run,nums,graph}.man: Create.
1397         * utils/nhfsstone/nhfsstone.man: Change suffix from ".1".
1398         * utils/nhfsstone/Makefile: Install the helper scripts and
1399           all four man pages.
1400         * utils/exportfs/exports.man: Fix typo.
1401
1402 2000-02-26  Chip Salzenberg  <chip@valinux.com>
1403
1404         * support/nfs/xio.c (xungetc): Decrement line number when
1405         character to unget is newline.  Make first parameter int, so
1406         it can distinguish EOF from \377.
1407         * support/include/xio.h (xungetc): Adjust prototype.
1408
1409 Fri Feb  4 23:42:23 2000 Neil Brown <neilb@cse.unsw.edu.au>
1410
1411         * support/include/nfs/export.h: added NFSEXP_NOAUTHNLM
1412         * support/nfs/exports.c: added handling for NFSEXP_NOAUTHNLM
1413         * utils/exportfs/exports.man: added documentation for no_auth_nlm.
1414
1415         This is for supporting a new option introduced in 2.3.42
1416
1417 Thu Feb  3 14:55:48 2000 H.J. Lu <hjl@lucon.org>
1418
1419         * COPYING: Added. GPL.
1420
1421 Thu Feb 03 14:40:40 2000 Cristian Gafton <gafton@redhat.com>
1422
1423         * utils/rquotad/rquota_server.c (getquotainfo): Call statfs ()
1424         to get the block size.
1425
1426 Tue Jan 25 11:04:17 2000 H.J. Lu <hjl@lucon.org>
1427
1428         * nfs-utils.spec.in: Update ftp site.
1429
1430 Mon Jan 17 11:48:18 2000 H.J. Lu <hjl@lucon.org>
1431
1432         * README: Update hostnames.
1433
1434 Tue Jan 11 10:06:22 2000 H.J. Lu <hjl@lucon.org>
1435
1436         * configure.in (VERSION): Set to "0.1.6".
1437         * configure: Regenerated.
1438         * nfs-utils.spec: Updated.
1439
1440         * README: Updated.
1441
1442 Mon Jan 10 14:26:33 2000 H.J. Lu <hjl@lucon.org>
1443
1444         * utils/mountd/auth.c (auth_authenticate_internal): Call
1445         xstrdup for hostname before passing it to gethostbyname.
1446
1447         * utils/mountd/mountd.c (get_exportlist): Use xstrdup instead
1448         of strdup.
1449
1450 Sun Dec 19 09:35:01 1999  H.J. Lu <hjl@lucon.org>
1451
1452         * README: Update the mailing list address.
1453
1454 Sun Dec 19 09:22:28 1999  H.J. Lu <hjl@lucon.org>
1455
1456         * configure.in (VERSION): Set to "0.1.5".
1457         * configure: Regenerated.
1458         * nfs-utils.spec: Updated.
1459
1460         * README: Updated.
1461
1462 Mon Dec 13 13:40:20 1999  H.J. Lu <hjl@lucon.org>
1463
1464         * utils/rquotad/hasquota.c (hasquota): Malloc one more char
1465         for '/'.
1466
1467 Mon Dec  6 09:42:45 1999  H.J. Lu <hjl@lucon.org>
1468
1469         * configure.in (VERSION): Set to "0.1.4".
1470         * configure: Regenerated.
1471         * nfs-utils.spec: Updated.
1472
1473         * README: Updated.
1474
1475 Mon Dec  6 09:28:07 1999  H.J. Lu <hjl@lucon.org>
1476
1477         * nfs-utils.spec.in: New file.
1478
1479         * config.mk.in (VERSION): Changed to "nfs-utils @VERSION@".
1480
1481         * configure.in (nfs-utils.spec): Added to AC_OUTPUT.
1482
1483 1999-12-04  Chip Salzenberg  <chip@valinux.com>
1484
1485         * config.mk.in: Use $(CC) as set by configure.
1486
1487 1999-12-04  Chip Salzenberg  <chip@valinux.com>
1488
1489         * rules.mk: Call $(MAKE) with $(MFLAGS).
1490
1491 Mon Nov 29 11:17:35 1999  H.J. Lu <hjl@lucon.org>
1492
1493         * tools/rpcgen/rpc_main.c (h_output): Generate IXDR_GET_INT32,
1494         IXDR_PUT_INT32, IXDR_GET_U_INT32 and IXDR_PUT_U_INT32.
1495
1496 Mon Nov 29 11:17:35 1999  H.J. Lu <hjl@lucon.org>
1497
1498         * nfs-utils.spec (Version): Set to 0.1.3.
1499
1500         * configure.in (VERSION): Set to "nfs-utils 0.1.3".
1501         * configure: Regenerated.
1502
1503         * README: Updated.
1504
1505 Mon Nov 29 11:15:47 1999  H.J. Lu <hjl@lucon.org>
1506
1507         * utils/rquotad/rquota_server.c (nfsmount_to_devname): Removed.
1508         (_PATH_DEV_DSK): Likewise.
1509         (getquotainfo): Match the mounting point from /etc/mtab
1510         instead of calling nfsmount_to_devname ().
1511
1512 1999-11-24  Chip Salzenberg  <chip@valinux.com>
1513
1514         * utils/statd/monitor.c (sm_mon_1_svc): Accept lockd callbacks
1515         to the new port 24 as well as the historical port 100021.
1516
1517 Tue Nov 23 10:21:34 1999 Neil Brown <neilb@cse.unsw.edu.au>
1518
1519         * etc/redhat/nfsd.init (stop): moved exportfs -ua after
1520         stopping nfsd to stop spurious ESTALE on server shutdown.
1521         
1522 Tue Nov 23 10:13:39 1999  Neil Brown <neilb@cse.unsw.edu.au>
1523
1524         * support/nfs/exports.c (parseopts): make copy of opt string
1525         before 'nul'ing out commas so that
1526
1527         # exportfs -o option1,option2 hosta:/fs hostb:/fs
1528
1529         applies both options to both exports.
1530
1531 Thu Oct 28 12:55:42 1999  H.J. Lu <hjl@lucon.org>
1532
1533         * README: Fix a few typos.
1534
1535         * tools/rpcgen/rpc_cout.c (print_header): Use int32_t instead
1536         of long.
1537         * tools/rpcgen/rpc_hout.c (pdefine): Likewise.
1538         * tools/rpcgen/rpc_main.c (c_initialize): Likewise.
1539         * tools/rpcgen/rpc_parse.c (get_type): Likewise.
1540         (unsigned_dec): Likewise.
1541         * tools/rpcgen/rpc_scan.c (symbols): Likewise.
1542         * tools/rpcgen/rpc_util.c (tokstrings): Likewise.
1543
1544         * tools/rpcgen/rpc_cout.c (emit_single_in_line): Use INT32
1545         instead of LONG.
1546         * tools/rpcgen/rpc_parse.c (get_type): Likewise.
1547         (unsigned_dec): Likewise.
1548         * tools/rpcgen/rpc_scan.c (symbols): Likewise.
1549         * tools/rpcgen/rpc_scan.h (tok_kind): Likewise.
1550         * tools/rpcgen/rpc_util.c (tokstrings): Likewise.
1551
1552 Thu Oct 28 11:27:51 1999 Neil Brown <neilb@cse.unsw.edu.au>
1553
1554         * support/include/nfs/export.h addedd NFSEXP_NOSUBTREECHECK
1555         * support/nfs/exports.c: added {no_,}subtree_check and changed
1556           crossmnt to nohide
1557         * utils/exportfs/exports.man: added no_subtree_check and nohide
1558           and removed irrelevant stuff from unfsd.
1559         * support/export/rmtab.c: rmtab_read didn't quite do the right
1560           thing if a pathname from rmtab was a subdirectory of an export-point
1561
1562 Tue Oct 26 17:22:40 1999  H.J. Lu <hjl@lucon.org>
1563
1564         * README: Updated ftp site.
1565
1566 Mon Oct 25 18:12:45 1999  H.J. Lu <hjl@lucon.org>
1567
1568         * nfs-utils.spec (Version): Set to 0.1.2.
1569
1570         * configure.in (VERSION): Set to "nfs-utils 0.1.2".
1571         * configure: Regenerated.
1572
1573         * README: Updated.
1574
1575 Mon Oct 25 18:11:21 1999  H.J. Lu <hjl@lucon.org>
1576
1577         * utils/mountd/auth.c (auth_error): Add "no_forward_dns".
1578         (auth_authenticate_internal): Check for NULL return on forward
1579         DNS lookup.
1580         (auth_authenticate): Handle "no_forward_dns".
1581
1582 Thu Oct 21 16:22:06 1999  H.J. Lu <hjl@lucon.org>
1583
1584         * Version 0.1.1 released.
1585
1586         * nfs-utils.spec (Version): Set to 0.1.1.
1587
1588         * configure.in (VERSION): Set to "nfs-utils 0.1.1".
1589         * configure: Regenerated.
1590
1591         * README: Updated.
1592
1593 Mon Oct 18 17:43:29 1999  H.J. Lu <hjl@lucon.org>
1594
1595         * nfs-utils.spec (Obsoletes): Fixed a typo, change knfsd-client
1596         to knfsd-clients.
1597         (Provides): Likewise.
1598
1599 Mon Oct 18 14:56:22 1999  H.J. Lu <hjl@lucon.org>
1600
1601         * Initial version 0.1 released.
1602
1603         * configure.in (VERSION): Set to "nfs-utils 0.1".
1604         * configure: Regenerated.
1605
1606 Mon Oct 18 14:54:57 1999  H.J. Lu <hjl@lucon.org>
1607
1608         * utils/mountd/mountd.c (get_exportlist): Cleanup.
1609
1610         * utils/exportfs/exportfs.c (unexport_all): Unexport from
1611         kernel only if the entry is exported to kernel.
1612         (unexportfs): Likewise.
1613
1614 Wed Sep 08 16:49:32 1999  Neil Brown <neilb@cse.unsw.edu.au>
1615
1616 1/ utils/mountd/rmtab.c::mountlist_list
1617
1618      This routine stats the rmtab file to see if it has changed.  It
1619      if has, it cleans up it's old copy of the data. But it still
1620      always re-read the file, thus returning multiple copies of the
1621      data on consecutive calls without intervening changes.
1622      "Showmount -a" didn't show this as it appears to sort/unique the
1623      data, but 'strace showmount -a' showed that the size of the
1624      datagram that it received grew.
1625
1626      I moved the getrmtabent loop inside the mtime test.
1627
1628 2/ utils/exportfs/exportfs.c
1629    
1630      Many routines used the m_path field of m_export instead of
1631      e_path.
1632      According to the comment in nfslib.h, m_path should only
1633      be used when processing a mount request (i.e. in mountd)
1634      where the mountpoint may be a subdirectory of the export point.
1635
1636      I changed all occurances of m_path to e_path
1637
1638
1639 3/ utils/exportfs/exportfs.c:main
1640
1641       extra arguments are not meaningful with -a or -r, but
1642       exportfs accepted them and then ignored the -a/-r, expect that
1643       -r would still unexport everything first.
1644
1645       I generate an error if there are extra args and f_all
1646
1647 4/ utils/exportfs/exportfs.c:main
1648      extract dump out as a special case.
1649
1650 5/ utils/exportfs/exportfs.c
1651      made f_reexport a local variable.
1652
1653
1654 6/ utils/exportfs/exportfs.c:main,exportall
1655
1656     support/export/rmtab.c
1657        only  mayexport on newly created entries, don't set xtabent at all
1658
1659 7/ support/include/nfslib.h
1660
1661       add #define _PATH_PROC_EXPORTS to be /proc/fs/nds/exports
1662
1663 8/ support/export/xtab.c
1664
1665       xtab_mount_read loads data from _PATH_PROC_EXPORTS if it exists,
1666       else from xtab
1667
1668
1669 9/ support/export/xtab.c
1670
1671       xtab_mount_read now sets m_exported, and NOT
1672         xtabent and mayexport
1673
1674       removed the append arguement from xtab_write as it was
1675         never used.
1676
1677       added is_export flag to xtab_write similar to xtab_read
1678         if is_export, only write entries with m_xtabent or m_addxtab
1679         if !is_export, only write entries with m_exported
1680      
1681 10/ support/export/export.c::export_allowed_internal
1682
1683       added test for exp->m_mayexport, as the export tree
1684         may have entries that are no longer allowed to be exported,
1685         and so shouldn't caused deduced exported by rmtab_read
1686
1687 11/ utils/exportfs/exportfs.c::main
1688         error checking of flags.
1689
1690 12/ utils/exportfs/exportfs.c
1691
1692         total rewrite of export and unexport logic.
1693         We now:
1694         -  build an exportslist of valid exports, based on
1695            current etab file  and arguments,
1696         -  read rmtab to instantiate relevant wild card entries
1697         -  read etab to find out what is currently exported
1698         -  synchronise intention with reality
1699         -  write out etab and xtab
1700
1701 13/  various
1702         discard the m_addxtab flag
1703         add m_changed flag so we know what to report in exportfs
1704
1705 14/ utils/mountd/auth.c:auth_authenticate
1706
1707         the value returned by gethostbyaddr was trusted.
1708
1709         It now follows this with a call to gethostbyname
1710         and checks that the address is in the list.
1711
1712 15/ support/export/nfsctl.c::cltsetup,expsetup
1713
1714         force client names to lowercase as kernel is
1715         sensitive to case
1716
1717 16/ quietened a few compiler warnings
1718
1719 17/ support/export/client:client_lookup
1720
1721      look for pre-existing client with same name before creating
1722         a new one.
1723
1724 18/ support/include/exportfs.h
1725
1726      The ordering of the MCL_* enum was:
1727         ANONYMOUS, FQDN, SUBNETWORK, WILDCARD, NETGROUP
1728
1729      I moved ANONYMOUS to the end.
1730
1731      The ordering is significant when an export entry is being searched for to 
1732         match a given address.  There are two problems with ANONYMOUS being first.
1733
1734         1/ if a directory is exported rw to a couple of hosts and ro to everyone else,
1735            then the ro case will always be found first and the privileged hosts won't get
1736            their privilege
1737         2/ When mountd gets a request to mount an ANONYMOUSly exported tree, it creates a FQDN
1738            export entry for the specific host, and writes it to xtab.
1739            When another request comes from the same host, the ANONYMOUS entry is found again, 
1740            before the new FQDN entry, so it creates another FQDN entry and writes it to xtab
1741            again.  If causes bloat in xtab.
1742
1743       Putting ANONYMOUS at the end reflects it's nature as a catch-all
1744
1745 19/ utils/exportfs/exportfs.man
1746         many updates to the man page to reflect changes to the code
1747
1748 -----------------------
1749
1750
1751
1752 TODO:
1753
1754 - allow exportfs to modify rmtab file
1755 - make sure kernel never gets two clients with same IP address
1756     - possible kernel should reject
1757     - needs to be some way to lookup client in kernel by IP address
1758 - maybe get kernel to do case-insensitive comparisons on client names
1759 - remove unused clients from kernel
1760
1761 - change etab to xtab and xtab to xtab.active
1762
1763 - timestamp and/or statd-stamp in rmtab for removing old entries.
1764
1765 Mon Oct 18 11:48:07 1999  H.J. Lu <hjl@lucon.org>
1766
1767         * linux-nfs: New directory.
1768         * linux-nfs/ChangeLog: Moved from ..
1769         * linux-nfs/INSTALL: Likewise.
1770         * linux-nfs/KNOWNBUGS: Likewise.
1771         * linux-nfs/NEW: Likewise.
1772         * linux-nfs/README: Likewise.
1773         * linux-nfs/THANKS: Likewise.
1774         * linux-nfs/TODO: Likewise.
1775
1776         * Starting from knfsd 1.4.7.