commit cb9f4319c6c681df6b344ffd711d44774ad9754b
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Jun 9 12:03:24 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jun 27 14:30:56 2014 -0400

    Release 0.10.3
    
      o  More error handling fixes
      o  Remove an incorrect package dependency
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 8b1a66049fc2b27b22d422d297a88aaaae4c985f
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat May 3 17:33:41 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jun 27 14:30:31 2014 -0400

    nfsref: Remove redundant check for nce == NULL
    
    If nfsref_remove_delete_fsn() is called with a NULL nce argument,
    nsdb_default_nce is substituted. If there is no default, then the
    function returns.
    
    Thus a later check for nce == NULL is not necessary.
    
    Fixes: d4550c62 (nfsref: "nfsref remove" should remove FSN found
           in junction)
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 009fc6109781db340cd2b3a337ba075f2c2acf6a
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat May 3 17:39:53 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jun 27 14:29:52 2014 -0400

    libnsdb: Remove dead code from nsdb_new_get_ncedn_s()
    
    Fixes: ea9cadee (libnsdb: simplify NCE discovery)
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 3bc1358fe23962baf2e87b7d430fe0d851d6110c
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu May 1 15:57:43 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jun 27 14:29:26 2014 -0400

    libnsdb: Fix NUL-termination logic in nsdb_set_parentdir()
    
    Ensure that pathname buffers have space for the NUL terminator.
    Note this function is currently unused.
    
    Fixes: 0520ee72 (Initial commit)
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit c8adce093df053d8e7ece73ec4f49e1f70884c36
Author:     Cristian Rodríguez <crrodriguez@opensuse.org>
AuthorDate: Mon Jun 23 17:51:13 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jun 27 14:29:22 2014 -0400

    Do not look for libattr. <sys/xattr.h> is enough
    
    libattr never gets used in the final build as xattr functions
    are provided by glibc.
    This commit avoids requiring an unused library during package build.
    
    Including <sys/xattr.h> instead of <attr/xattr.h> removes the
    package build dependency on libattr-devel [cel].
    
    Fixes: f5c16606 (configure.ac: check for presence of libattr)
    Signed-off-by: Cristian Rodríguez <crrodriguez@opensuse.org>
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 6701e9f8e057b317b73b934a31be33683b75c915
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Jun 9 17:27:12 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jun 27 14:28:58 2014 -0400

    libnsdb: NFS URI is incorrect when storing FSLs in NSDBs
    
    Ditang Chen <chendt.fnst@cn.fujitsu.com> says:
    > I tested in Fedora20, when junction type is nfs-fedfs, the nfsref
    > cannot resolve FSN if the export path is "/".
    >
    > # nfsref -d --type=nfs-fedfs add /.domainroot/example.net/s2 server2.example.net /
    > ...
    > nfsref: nsdb_normalize_path: result = '/'
    > nfsref: nsdb_count_components: length = 4, count = 0, path = '/'
    > nfsref: nsdb_alloc_zero_component_pathname: Zero-component pathname
    > nfsref: nsdb_construct_nfsuri: NFS URI: nfs://Server2.example.net/
    > ...
    >
    > # nfsref -d lookup s2/
    > ..
    > nfsref: nsdb_parse_nfs_uri: parsing 'nfs://server2.example.net/'
    > nfsref: nsdb_uri_pathname_to_path_array: NFS URI has short pathname component
    > nfsref: nsdb_resolve_fsn_parse_entry: parsing failed: FEDFS_ERR_BADNAME
    > nfsref: nfsref_lookup_resolve_fsn: Failed to resolve FSN 5f4bace9-14b3-4626-8d39-4b0
    > ...
    
    For a server pathname of "/", nsdb_construct_nfsuri() was
    constructing an NFS URI with just a single terminating /, which is
    incorrect according to section 2.8.1.2 of:
    
     http://datatracker.ietf.org/doc/draft-ietf-nfsv4-federated-fs-protocol/
    
    Then "nfsref" is storing the incorrect URI in the NSDB.
    
    Fixes: 750fdf4b (libnsdb: Add URI pathname parser helpers)
    Reported-by: Ditang Chen <chendt.fnst@cn.fujitsu.com>
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 130dc7d44a553f42ef1c39ab4ad409c61ed14daf
Author:     Ditang Chen <chendt.fnst@cn.fujitsu.com>
AuthorDate: Mon Jun 9 09:42:33 2014 +0800
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jun 27 14:28:29 2014 -0400

    nfsref: fix a segmentation fault when lookup a junction
    
    Can not retrieve FSN with the fsn_uuid when lookup a junction,the entries
    is 1 and the 'tmp' pointer to NULL.
    
    # ls -l
    total 8
    d--------T 2 root root 4096 Jun  4 07:05 s2
    # nsdb-list
    NSDB: ldap.example.net:389
      NCE ou=fedfs,dc=example,dc=net has no FSN records
    # nfsref lookup s2
    Segmentation fault
    
    (gdb) bt
    #0  0x0000000000404eb0 in nfsref_lookup_resolve_fsn (host=0x118d630, fsn_uuid=<optimized out>) at lookup.c:364
    #1  nfsref_lookup_nfs_fedfs (junct_path=<optimized out>) at lookup.c:483
    #2  0x0000000000403cf9 in main (argc=3, argv=0x7fff69dea5e8) at nfsref.c:181
    
    Fixes: c02e7770 (libnsdb: Add nsdb_get_fsn())
    Signed-off-by: chendt.fnst@cn.fujitsu.com
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit aaf6474bf94b7298bf59aa2233979def26c421d5
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Jun 23 16:20:36 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jun 27 14:28:06 2014 -0400

    nsdbparams: Fall back to old-style NCE when pinging old-style NSDB
    
    Rob Thurlow reports:
    
    nsdbparams: nsdb_new_get_ncedn_s:
     ldapsearch -H ldap://nfsmpit2-02:389 -b "dc=cthon,dc=org" -s sub '(objectClass=fedfsNsdbContainerEntry)' *
    nsdbparams: nsdb_new_get_ncedn_s: received 1 messages
    nsdbparams: nsdb_parse_result: Search completed successfully
    
    Program received signal SIGSEGV, Segmentation fault.
    0x00007ffff7ba5cbf in ldap_unbind_ext () from /lib64/libldap-2.4.so.2
    Missing separate debuginfos, use: debuginfo-install fedfs-utils-nsdbparams-0.10.0-2.fc20.x86_64
    
    (gdb) backtrace
    #0  0x00007ffff7ba5cbf in ldap_unbind_ext () from /lib64/libldap-2.4.so.2
    #1  0x000055555555fba1 in nsdb_close_nsdb (host=0x55555578ace0) at nsdb.c:1562
    #2  0x000055555555d0d8 in nsdb_ping_s (
       hostname=hostname@entry=0x7fffffffe876 "nfsmpit2-02", port=port@entry=389,
       ldap_err=ldap_err@entry=0x7fffffffe464) at fileserver.c:1954
    #3  0x00005555555593be in nsdbparams_test_nsdb (nsdbport=389,
       nsdbname=0x7fffffffe876 "nfsmpit2-02") at update.c:111
    #4  nsdbparams_update (progname=0x7fffffffe830 "nsdbparams",
       argc=<optimized out>, argv=0x7fffffffe5d0) at update.c:406
    #5  0x00005555555578df in main (argc=8, argv=0x7fffffffe5c8) at main.c:212
    
    His old-style NSDB returned just one LDAP message in reply to the
    query to see if the NSDB had a new-style NCE.
    
    Fixes: ea9cadee (libnsdb: simplify NCE discovery)
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 0a72bb3271af0b70cc17aa387a73615b4c51f71a
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri May 30 13:55:22 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Jun 9 15:08:10 2014 -0400

    nfsref: Fix double-free in nfsref_add_build_fsloc()
    
    nfs_free_location() already frees new->nfl_hostname.
    
    Fixes: 538e6282 (nfsref: Introduce the "nfsref" command)
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 94a8179dbc176deb6e07a89afbfa1403df7b8f57
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Apr 22 17:00:43 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon May 19 12:20:45 2014 -0400

    Release 0.10.2
    
      o  Fix bugs in nsdb-jumpstart
      o  Numerous fixes to error handling paths
      o  Introduce basic support for Coverity analysis
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 7d5cd775e457936566ea6fbbbee46699f39677a3
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Apr 25 15:02:25 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon May 19 11:32:43 2014 -0400

    build: Coverity support
    
    The new "covbuild" top-level make target builds the contents of the
    cov_int/ directory, which is intermediate output that is fed to
    Coverity Scan for analysis.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 7ae3a4d95177593afbca580a2db36214706e7916
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue May 13 14:58:11 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue May 13 16:01:24 2014 -0400

    nsdbc: Stronger sanity-checking for incoming UUIDs
    
    The nsdb-create-fsl command copies command line arguments into
    pre-allocated buffers.
    
    Fixes: 04e2508557766ca65d684f82dbbc0d1c1a833a9f
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit a287759a6dc8f044a2b907844c7045d4b78920a3
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat May 3 17:47:41 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue May 13 16:01:24 2014 -0400

    nfsref: Avoid buffer overrun in nfsref command
    
    Fixes: 04a9ffdfdb3ae73724b4293eade7d7c9dc342d8f
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 5680db9369dffedfdc1ebe4133e8d44bcd33f6d1
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat May 3 17:00:56 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sun May 11 17:23:36 2014 -0400

    nsdbc: Fix missing break
    
    Avoid using fallthrough logic in switch statements.
    
    Fixes: 0520ee7207f9ba027c845cb33606a3c901ecd811
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit beecdc3e3ce2d99d6146ede82eb5e0ef4764b9cd
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat May 3 16:55:53 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sun May 11 17:23:36 2014 -0400

    libnsdb: Fix NULL pointer dereference in nsdb_get_naming_contexts()
    
    Fixes: 86a3b2e65ba419aee73f75181cd247210a15683d
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 058a4fdb39b09767888a3243a336e09df708c8af
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat May 3 16:43:40 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sun May 11 17:23:36 2014 -0400

    libnsdb: nsdb_get_fsn_s() could return FEDFS_OK without setting "fsn"
    
    Fixes: c02e77704bd2f64020001fdbf46134d94d4c716f
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 3da63c0bce60507d4d59b4efeff32c6ef4ce4c53
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat May 3 16:06:09 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sun May 11 17:23:36 2014 -0400

    libadmin: Fix resource leak in admin_create()
    
    Fixes: 1bbee83fc7aaa74635cf37ae41e6d6ade753a62b
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 62b7518e0ccd4cf985df50f4abaefbf6b6c348b9
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat May 3 15:53:45 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sun May 11 17:23:36 2014 -0400

    fedfsc: Fix memory leak in fedfs-lookup-junction
    
    Ensure "fsls" and "fsn" are freed before returning.
    
    Fixes: 56048fc7270f82a0e9ecf5b4dcd2d31b47bcffab
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 67593c41b94f0b1cb649c68735bfb06b935d8e4c
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat May 3 15:47:47 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sun May 11 17:23:36 2014 -0400

    fedfsc: Fix memory leak in fedfs-lookup-replication
    
    Ensure "fsls" and "fsn" are freed before returning.
    
    Fixes: b7c5e005319bdefa93d2158c9bd5de67c03e6a60
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 21364451b6397057a59e8036d15c3186f2984aa6
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat May 3 15:44:55 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sun May 11 17:23:36 2014 -0400

    fedfsc: Fix memory leak in fedfs-get-nsdb-params command
    
    Fixes: c4043a367163f24f6f55112f881212825c38162e
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit d240bb4dd6087208afdf8b02b9f8c741c60caf5d
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat May 3 15:39:03 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sun May 11 17:23:36 2014 -0400

    libnsdb: Fix memory leak in nsdb_list_find_entries_s()
    
    Rewrite the tail of nsdb_list_find_entries_s() in bfields-normal
    form to ensure "tmp" is freed if the return value is not FEDFS_OK.
    
    Fixes: b82f3ba222b51fe607a0da34a1158425f55bde90
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 59893aa0c522ee89eea5e5df55fee9704dec209c
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat May 3 15:33:38 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sun May 11 17:23:36 2014 -0400

    nfsref: Fix memory leak in nfsref_add_build_fsl()
    
    Fixes: 538e6282ff68e838763bc30aeeae41c5ec309ca9
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit e8c6ea66c7995066c209983d84028fed5a83b2c1
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu May 1 16:42:23 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sun May 11 17:23:36 2014 -0400

    NFS plug-in: Fix double free
    
    When nfs_jp_convert_fedfs_fsl() fails, the locations set is freed
    once in nfs_jp_convert_fedfs_fsls(), and once in nfs_jp_get_fedfs().
    Only one nfs_jp_put_locations() is needed.
    
    Fixes: d960256574a9aa02828c38b5ebc79c77793cc607
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 7eba9ea2a79bc689a9ce391a732e8fadd4bc3361
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri May 2 17:20:56 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sun May 11 17:23:36 2014 -0400

    libnsdb: Fix memory leaks in nsdb_path_array_to_uri_pathname()
    
    Ensure that "result" is properly freed before exiting with an error.
    
    Fixes: 750fdf4bba4f5d4880ce7ad5b56451bd771cc3e2
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit fb8f48ec3f48df9ec943980dbf705a5038024f16
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri May 2 18:17:02 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sun May 11 17:23:36 2014 -0400

    libnsdb: Fix memory leak in nsdb_posix_to_path_array()
    
    Fixes: e2800750f4bbb033e1ab9b4937139879444b7576
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 61a03a544ffbeaa2671326fa8ad525395e9f5198
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri May 2 18:05:34 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sun May 11 17:23:36 2014 -0400

    libjunction: Fix file descriptor leak in junction_get_mode()
    
    A second close(2) is used to preserve the value of errno when
    reporting the error via xlog().
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit dd0f92896c16bd60ce8770e0c3a7979c8e5a76f9
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri May 2 17:10:43 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sun May 11 17:23:36 2014 -0400

    libnsdb: Missing braces
    
    Commit 6c5caeef was a little too aggressive.
    
    Fixes: 6c5caeefe64796cfcc26348e2ce4ad886fad9fa0
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 08ab56a427e31317439ceddb6d7141740e2f8a91
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri May 2 17:46:30 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sun May 11 17:23:36 2014 -0400

    libnsdb: Fix possible buffer overrun in nsdb_parse_nfs_uri_fsl()
    
    Ensure the contents placed in string[] will always be
    '\0'-terminated.
    
    Fixes: 04a9ffdfdb3ae73724b4293eade7d7c9dc342d8f
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 56756cbaa70c7e906699098e03780cc5fe7019db
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri May 2 17:34:34 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sun May 11 17:23:36 2014 -0400

    libnsdb: Fix off-by-one in nsdb_copy_referrals_array()
    
    Ensure the returned array has a slot for the NULL sentinel.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 15bec39b7028cd7a9c6de8ce3ebae145876ec4d9
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Apr 22 15:29:30 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Apr 22 17:41:36 2014 -0400

    PyFedFs: SELinux prevents slapd from starting
    
    Set an appropriate security context on /var/lib/fedfs/nsdb-db so
    that SELinux will allow slapd to run using datafiles in that
    directory.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit a3be7e89d3fc84e90bd3ef039ff7496d9fcd4efa
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Apr 22 15:16:35 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Apr 22 17:41:36 2014 -0400

    PyFedFs: Remove extra line in ldap.xml
    
    The firewall.py script was generating invalid XML, preventing
    firewalld from restarting.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit d6a5fad3bfd6f36783a679bb3d0f4c8cbcd6b8d8
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Apr 22 15:14:16 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Apr 22 15:14:16 2014 -0400

    PyFedFs: Ensure statedir exists
    
    nsdb-jumpstart throws an exception if /var/lib/fedfs does not yet
    exist.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit b76d653c617e205a5ea22cd33b73b100a0491ad7
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Apr 22 14:39:21 2014 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Apr 22 14:39:21 2014 -0400

    PyFedFS: Fix nsdb-jumpstart interview question
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 6cb14b48076024fd318001939fc5ddc32c03f678
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Mar 4 13:50:50 2014 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Mar 4 13:50:50 2014 -0500

    Release 0.10.1
    
      o  Address packaging issues
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 3d59e011020599827fbbc3a82dfe70442ae185d7
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Mar 4 13:40:05 2014 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Mar 4 13:40:05 2014 -0500

    include: Add macro defining NFS plug-in soname
    
    Plug-in consumers should not be required to open-code the name
    of the plug-in library. Consumers should discover the library name
    somehow, and adding a macro in the header that defines the API seems
    like a straightforward approach.
    
    We specify the library soname here because the soname must always
    change when the API version number (JP_API_VERSION) is bumped.
    
    Eventually JP_API_VERSION can be deprecated.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 46657158edd78c00449c6deedb9863c0fc650705
Author:     NeilBrown <neilb@suse.de>
AuthorDate: Thu Feb 27 11:35:09 2014 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Feb 27 11:35:09 2014 -0500

    Remove use of __DATE__ and __TIME__ when building
    
    Use of __DATE__ and __TIME__ makes it impossible to recompile after
    possibly changing context, and see the context made any real change in
    the resulting build.
    The Open Build Service can do this (to optimise rebuilds) and so
    discourages the use of __DATE__ and __TIME__
    
    This patch removes the __DATE__ and __TIME__ leaving just the VERSION.
    
    Signed-off-by: NeilBrown <neilb@suse.de>

commit 49c43fa75834df2f5674dabaa760ebd40bf28a9f
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Feb 5 13:05:05 2014 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Feb 5 13:05:05 2014 -0500

    Fix missing man pages
    
    After commit 5e9f7f8d, the mount.fedfs.8 and fedfs-map-nfs4.8 man
    pages were no longer installed.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 6ebfe67ae9bdfe85ef528a539b1bfd4aa2b7a674
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Dec 9 12:17:56 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Jan 18 12:04:21 2014 -0500

    Release 0.10
    
    Non-backwards compatible changes:
    
      o  *ldaperr removed from libnsdb API
      o  ADMIN client tools no longer use AUTH_NONE security
      o  ADMIN client tools no longer exit with FedFS status code
    
    New features:
    
      o  Python package PyFedfs added
      o  Tool for configuring FedFS domain root directories
      o  Tool for setting up NSDBs using OpenLDAP
      o  Simpler NCE discovery (compliant with new FedFS NCE I-D)
      o  admin_t API for performing remote ADMIN requests
      o  rpc.fedfsd uses an ACL to control who can perform ADMIN requests
      o  rpc.fedfsd and ADMIN tools support RPCSEC and Kerberos v5
    
    Minor fixes:
    
      o  FEDFS_LOOKUP_JUNCTION no longer returns NSDB_LDAP_VAL
      o  fedfs-map-nfs4 handles multiple SRV records
      o  Packaging simplifications
      o  Dozens of code clean-ups and bug fixes; consult Changelog for details
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 40d8d9bebd5895e3793babdbbcb24de259a0a7a4
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 11 12:30:15 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Jan 18 12:04:21 2014 -0500

    build: Enable silent make rules by default
    
    Use:
    
      ./configure --disable-silent-rules
    
    to disable.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit af118856af3c0afe30a3ce47389b8b6bda36bb52
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Jan 2 14:12:23 2014 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Jan 18 12:04:21 2014 -0500

    autoconf: Eliminate autogen.sh warning
    
    Eliminate this warning from the autogen.sh script:
    
        aclocal: warning: couldn't open directory 'm4': No such file or
              directory
    
    The "m4/" directory is created by libtoolize, so run it before
    running aclocal.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 62f5592377eca4dd9bb1b28773f6fb734ed41803
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Dec 9 16:43:08 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jan 10 11:11:20 2014 -0500

    Doxygen: fixes for Python source code
    
    Doxygen didn't find Python source files without a ".py" suffix.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit f6e4d4076f7442128eb0d4835136ecc34cc82d61
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Dec 17 11:57:38 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jan 10 11:08:31 2014 -0500

    Have ./configure do variable substitution in Python scripts
    
    Clean up the Makefile in src/domainroot and src/jumpstart, removing
    open-coded text substitution logic from the makefiles.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 5e9f7f8d69028bb6b39222ccc2c0cd47a546e2b4
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Dec 16 20:20:05 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jan 10 11:05:16 2014 -0500

    man: Have ./configure do variable substitution in man pages
    
    The publication date in the man page should reflect when the dist
    tarball is built, not when the man pages are installed.
    
    This also cleans up the Makefile in doc/man, removing open-coded
    substitution logic.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 4867379ee2aba34457f7e72a562497e9e77f70b7
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Dec 10 16:51:31 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jan 10 11:04:54 2014 -0500

    man: Update nsdb-parameters(7)
    
    Clean up.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit ea8fe264fbc4ce9cb3cc3fc7c7d3c2894d350a79
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Dec 10 16:38:26 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jan 10 11:04:42 2014 -0500

    man: Update nsdb-* command man pages to reflect simple NCE discovery
    
    Update and clarify man pages for nsdb-delete-nsdb(8), nsdb-nces(8),
    nsdb-remove-nci(8), nsdb-update-nci(8), and nsdb-simple-nce(8) to
    reflect the use of a simpler NCE discovery mechanism.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 7199c3a04671973fe9108cad1cd485a898d71909
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Dec 10 16:28:16 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jan 10 10:54:15 2014 -0500

    man: FSL records no longer contain an NSDB name/port
    
    One of the last revisions of the NSDB protocol specification changed
    the definition of the fedfsFsl object class.  Update our man pages
    to reflect this change.  I missed man page updates when this change
    was made in 0.9.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit d6e22779c968ddf4a9d34e3397fcc15391c8bc4b
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Dec 10 16:21:57 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jan 10 10:54:15 2014 -0500

    man: Clarify short description of nsdb-annotate and nsdb-describe
    
    A "FedFS NSDB record" is ambiguous.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 14a869407aaaf4e6da0dc0bcf794259ffb024150
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Dec 10 16:03:45 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jan 10 10:54:15 2014 -0500

    man: Move "Creating domain roots" section
    
    The fedfs(7) man page contains a section discussing how to create
    FedFS domain root directories.  This level of detail belongs in the
    new fedfs-domainroot(8) man page.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 5aba9cee80042131c06ba0fa815812ce410ced66
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Dec 10 15:55:44 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jan 10 10:54:15 2014 -0500

    man: Move "Mount option inheritance" section
    
    The fedfs(7) man page contains a section discussing mount option
    inheritance.  This level of detail belongs in the mount-specific
    man pages, mount.fedfs(8) and fedfs-map-nfs4(8).
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 522eff206932d518d82097e36d0d8ebd2ee7357e
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Dec 10 15:53:32 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jan 10 10:54:15 2014 -0500

    man: reference RFC 5661 instead of RFC 3530
    
    Make NFSv4 specification references consistent across man pages.
    Refer to the latest RFC.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 7382b60c464570856c666453107b7fc5c5c6b935
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Dec 9 13:03:34 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jan 10 10:54:15 2014 -0500

    INSTALL: update INSTALL file for release 0.10
    
    Add a copy of the automake-provided INSTALL file.  Add some
    documentation for the "configure" script options that are
    special to fedfs-utils.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit c54fcb52a3a8131ce33a5511b3a6a45e0fc71a73
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Dec 9 14:49:22 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 2 14:59:46 2014 -0500

    libnsdb: switch L_ERROR to D_GENERAL
    
    As a general rule, libraries should not emit any error messages.  A
    library should depend on its consumer to present errors to users.
    
    Convert the remaining uses of L_ERROR in libnsdb to D_GENERAL or
    D_CALL.
    
    Fixed a couple of spots in administrator.c that return NSDB_RESPONSE
    instead of NSDB_FAULT.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 6c5caeefe64796cfcc26348e2ce4ad886fad9fa0
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Dec 9 15:37:54 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 2 14:56:32 2014 -0500

    libnsdb: switch L_ERROR to D_GENERAL
    
    As a general rule, libraries should not emit any error messages.  A
    library should depend on its consumer to present errors to users.
    
    Remove log messages for memory allocation failures.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 5b869ba2ece5ec9f9a545ca9dd284af6d0fe4c37
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Dec 9 15:30:20 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 2 14:52:59 2014 -0500

    libnsdb: switch L_ERROR to D_GENERAL
    
    As a general rule, libraries should not emit error messages of any
    kind.  A library should depend on its consumer to present errors to
    users.
    
    Remove log messages for invalid function parameters.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 95ed95b817c2444161989bd80c4156dd5d550edd
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sun Nov 3 20:02:57 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 2 14:48:20 2014 -0500

    libnsdb: Remove *ldaperr argument from NSDB 5.1.* API
    
    Simplify the libnsdb API by removing the *ldaperr argument from
    the NSDB 5.1.* functions.  When it is needed, the ldaperr value can
    be extracted with the new nsdb_ldaperr() function.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 496c13af00dceb3158e1bf87596d6ec3573a4308
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 4 15:27:53 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 2 14:43:54 2014 -0500

    libnsdb: Remove *ldaperr argument from NCE admin APIs
    
    Simplify the libnsdb APIs for managing NCEs by removing the *ldaperr
    argument.  When it is needed, the ldaperr value can be extracted
    with the new nsdb_ldaperr() function.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit c8237d83134d22fd351b0f2ce109c117d5e34f15
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 4 15:14:00 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 2 14:18:39 2014 -0500

    libnsdb: Remove *ldaperr argument from descr and annotate APIs
    
    Simplify the libnsdb APIs that update fedfsDescr and fedfsAnnotation
    attributes by removing the *ldaperr argument.  When it is needed,
    the ldaperr value can be extracted with the new nsdb_ldaperr()
    function.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit f014be2970e7422f78ee168b8b132c97304c8da7
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 4 14:45:36 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 2 14:18:39 2014 -0500

    libnsdb: Remove *ldaperr argument from NSDB 5.2.2 API
    
    Simplify the FSN resolution API by removing the *ldaperr argument.
    When it is needed, the ldaperr value can be extracted with the new
    nsdb_ldaperr() function.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit bb7e77ac93cca55168bbe730e6d9b223cd0d250c
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 4 14:32:11 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 2 14:18:39 2014 -0500

    libnsdb: Remove *ldaperr argument from nsdb_list API
    
    Simplify the external libnsdb API by removing the *ldaperr argument
    from nsdb_list_s() and friends.  When it is needed, the ldaperr
    value can be extracted with the new nsdb_ldaperr() function.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 99d1bba0a0b7a2bb40efb61819edbb044a9876a5
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 4 14:23:17 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 2 14:18:39 2014 -0500

    libnsdb: Remove *ldaperr argument from nsdb_ping API
    
    Simplify the external libnsdb API by removing the *ldaperr argument
    from nsdb_ping_s() and friends.  When it is needed, the ldaperr
    value can be extracted with the new nsdb_ldaperr() function.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 0278013fe5ae1e1f6bae91560815a64d083ca681
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 4 14:08:15 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 2 14:18:39 2014 -0500

    libnsdb: Remove *ldaperr argument from nsdb_find_naming_context_s()
    
    Simplify nsdb_find_naming_context_s() by removing the *ldaperr
    argument.  Instead, the ldaperr value can be extracted with the new
    nsdb_ldaperr() function when it is needed.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 69d90e70b62d537979f109411ca4f6ae1706c090
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 4 13:52:56 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 2 14:18:39 2014 -0500

    libnsdb: Remove *ldaperr argument from nsdb_get_naming_contexts_s()
    
    Simplify nsdb_get_naming_contexts_s() by removing the *ldaperr
    argument.  Instead, the ldaperr value can be extracted with the new
    nsdb_ldaperr() function when it is needed.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit acc2ffb305f975dad79b604994b4ed0374c1b0ab
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 4 13:23:29 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 2 14:18:05 2014 -0500

    libnsdb: Remove *ldaperr argument from nsdb_get_ncedn_s()
    
    Simplify nsdb_get_ncedn_s() by removing the *ldaperr argument.
    Instead, the ldaperr value can be extracted with the new
    nsdb_ldaperr() function when it is needed.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit d3e88e446c6a9b295751199cfc1d73f28dea355a
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 4 12:40:09 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 2 14:17:58 2014 -0500

    libnsdb: Remove *ldaperr argument from nsdb_open_nsdb()
    
    Simplify nsdb_open_nsdb() by removing the *ldaperr argument.
    Instead, the ldaperr value can be extracted with the new
    nsdb_ldaperr() function when it is needed.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit f2f90502be3d2b3cc5f4e97e78e5da40a6156aa6
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 4 12:34:06 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 2 14:17:58 2014 -0500

    libnsdb: Add nsdb_ldaperr() to get LDAP operation error status
    
    I'd like to get rid of the *ldaperr argument for libnsdb function
    calls.  Start by introducing a couple of functions that can extract
    this value from an nsdb_t object.
    
    The new nsdb_ldaperr() returns a signed integer, same as is returned
    from the LDAP library, but unlike the existing *ldaperr argument to
    most of the libnsdb API.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit c31934feea0812f01f63331519d1a9548d1d1ae1
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Nov 4 01:10:50 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 2 14:17:58 2014 -0500

    libnsdb: LDAP result codes are signed integers
    
    Clean up: Have the functions in ldap.c return LDAP errors as signed
    integers, matching the return value type of the LDAP client API.
    
    For the moment, compilation will throw a bunch of warnings, but
    we will get to that presently.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit dacff5db7d9737abd8d48a8d7f539ab12e3885b7
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Nov 4 12:05:16 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 2 14:17:58 2014 -0500

    libnsdb: Use "entries" variable consistently for counting LDAP entries
    
    Clean up: current code re-uses the "rc" variable to count LDAP
    entries.  I'm about to remove "rc" in many places.
    
    Take the opportunity to use a better variable name.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 86a3b2e65ba419aee73f75181cd247210a15683d
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Nov 4 11:45:11 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 2 14:17:58 2014 -0500

    libnsdb: Check "host" parameter
    
    libnsdb is intended to provide a public API, and as such, it is
    careful to check all incoming parameters.  For some reason, though,
    it doesn't verify that host != NULL.  Add that check.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 5e2143959454f99f96b4489b8a9a1df3de53c2d5
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Dec 9 12:34:37 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 18 11:51:10 2013 -0500

    README: Remove warnings about fedfsd
    
    rpc.fedfsd now uses an Access Control List and strong authentication
    to control who can perform ADMIN operations.  Security warnings
    about using rpc.fedfsd are no longer needed.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 895c45980a64f9911e850c14507624b862d363e9
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Nov 15 18:51:23 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 18 11:51:10 2013 -0500

    fedfsd: Add RPCSEC_GSS support to fedfsd
    
    Provisional.  RPCSEC support in libtirpc is incomplete, but there
    is enough to handle basic GSS authentication with Kerberos for one
    client at a time.
    
    Feature completeness is planned for a future fedfs-utils release.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 305146f46b4c93038573b2f034e971229f0cb525
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Nov 19 14:47:08 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 18 11:51:10 2013 -0500

    fedfsd: Control access to ADMIN service
    
    Currently fedfsd does not examine the credentials of incoming ADMIN
    requests.  It responds to all comers, which is great for testing,
    but makes fedfsd undeployable in any real environment.
    
    To remedy this situation, provide support for authentication and
    access control.  An access control list is kept in:
    
      /etc/fedfsd/access.conf
    
    AUTH_NONE does not pass user credentials, but AUTH_SYS does.  We
    introduce support for unpacking and checking AUTH_SYS credentials.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 867d6792c29578b437eb61c121a0dd1c39fa1d90
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Nov 22 14:34:54 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 18 11:51:10 2013 -0500

    fedfsd: Clean up fedfsd.h
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 5ef5248e5c455638f345dc1d219f1c7c75aaedcb
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Dec 2 16:24:58 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 18 11:51:10 2013 -0500

    contrib: run rpcfedfsd.service after network.target is started
    
    Noticed rpc.fedfsd wasn't starting after a system reboot, even
    though rpcfedfsd.service was enabled.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 41bfa63fccfb01503350b31116ffec1b9e1afdbd
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Nov 5 21:00:27 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Dec 2 14:44:18 2013 -0500

    fedfsc: Convert fedfs-set-nsdb-params to use new libadmin API
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit f3e6ec46b7ca6757a984abf8b36a2ec9ed269478
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Nov 1 14:55:46 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Dec 2 14:43:28 2013 -0500

    fedfsc: Convert fedfs-null to use new libadmin API
    
    Note: FEDFS_NULL does not return a status code, so it cannot return
    FEDFS_ERR_DELAY.  Logic to handle that case is removed.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit b7c5e005319bdefa93d2158c9bd5de67c03e6a60
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Nov 5 20:55:22 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Dec 2 14:42:13 2013 -0500

    fedfsc: Convert fedfs-lookup-replication to use new libadmin API
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 56048fc7270f82a0e9ecf5b4dcd2d31b47bcffab
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Nov 5 20:10:39 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Dec 2 14:41:06 2013 -0500

    fedfsc: Convert fedfs-lookup-junction to use new libadmin API
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit c4043a367163f24f6f55112f881212825c38162e
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Nov 4 23:59:23 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Dec 2 14:40:11 2013 -0500

    fedfsc: Convert fedfs-get-limited-nsdb-params to use new libadmin API
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 59b00528044348ac5f3810a9f9d70e684162eab6
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Nov 4 22:57:28 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Dec 2 14:39:14 2013 -0500

    fedfsc: Convert fedfs-get-limited-nsdb-params to use new libadmin API
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit a07fd0dfe2638ab9e31bca3a1a944f1d9a516624
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Nov 1 17:20:58 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Dec 2 14:38:01 2013 -0500

    fedfsc: Convert fedfs-delete-replication to use new libadmin API
    
    Add support for AUTH_UNIX and RPCSEC_GSS security.  The tool now
    exits with a typical Unix exit status code.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 1fdc155724751c729940c5d335e8716980ab2ee2
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Nov 1 16:46:30 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Dec 2 14:37:05 2013 -0500

    fedfsc: Convert fedfs-delete-junction to use new libadmin API
    
    Add support for AUTH_UNIX and RPCSEC_GSS security.  The tool now
    exits with a typical Unix exit status code.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 02a5884c84b03af779237153241ce66fa8c18547
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Nov 1 16:54:16 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Dec 2 14:35:55 2013 -0500

    fedfsc: Convert fedfs-create-replication to use new libadmin API
    
    Add support for AUTH_UNIX and RPCSEC_GSS security.  The tool now
    exits with a typical Unix exit status code.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit f088d2e7956e886b02cc744999f7f2ea6504bca7
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Nov 1 16:06:33 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Dec 2 14:32:12 2013 -0500

    fedfsc: Convert fedfs-create-junction to use new libadmin API
    
    Add support for AUTH_UNIX and RPCSEC_GSS security.  The tool now
    exits with a typical Unix exit status code.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 1bbee83fc7aaa74635cf37ae41e6d6ade753a62b
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Oct 30 16:37:25 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Dec 2 13:00:30 2013 -0500

    libadmin: Introduce admin_t objects
    
    In order to communicate with NSDBs, we have nsdb_t.  Let's add a
    similar object for communicating with remote ADMIN services.
    
    These objects are materialized via admin_new(), which takes a
    hostname and a nettype.  They are released with admin_free().
    
    The new API hides RPC- and GSS-related details inside libadmin.  It
    should then be simple to add full ADMIN support directly into other
    tools, such as nsdbparams, without having to drag in a lot of
    redundant code.
    
    Note: one new sparse error appears:
    
      rpc/auth.h:218:16: error: undefined identifier '__sync_sub_and_fetch'
    
    Sparse does not recognize gcc built-ins that provide atomic
    manipulation of integers.  This is a harmless error.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit b0b00b072ffd4db14d036da506d1853517c29d5a
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Nov 20 13:14:55 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Nov 21 19:19:26 2013 -0500

    .gitignore: add config.h.in~
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 10fccce62eea8b7137af2332d47911b3b3aa1ee7
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Nov 18 14:47:58 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Nov 21 19:19:19 2013 -0500

    rpc.fedfsd: SET_NSDB_PARAMS should not return FEDFS_ERR_NSDB_LDAP_VAL
    
    FEDFS_ERR_NSDB_LDAP_VAL is allowed by the spec only for the
    FEDFS_LOOKUP_JUNCTION and FEDFS_LOOKUP_REPLICATION operations.  And
    besides, there's no room in the FEDFS_SET_NSDB_PARAMS result for an
    LDAP error side car value.
    
    Still, it would be nice to report that an NSDB is not reachable
    when it is added to a fileserver's NSDB connection parameters
    database.  It's a good sanity check that junctions created on that
    fileserver that target that NSDB will be resolvable.
    
    The ADMIN protocol spec, however, does not allow the
    FEDFS_SET_NSDB_PARAMS operation to return any status code that
    signifies whether fedfsd was able to connect with or verify the
    passed-in NSDB.
    
    For now, rpc.fedfsd will return FEDFS_ERR_NSDB_CONN if it cannot
    reach the NSDB, or FEDFS_ERR_NSDB_AUTH if the client has not
    provided a certificate and the NSDB requires TLS.  If the LDAP
    server is reachable but does not contain an NSDB Container Entry
    rpc.fedfsd will return FEDFS_ERR_NSDB_NONCE.
    
    This behavior is useful, in my opinion, but it clearly does not
    comply with the ADMIN protocol specification.  I don't see how it
    would greatly harm interoperability, however.  If there are clients
    that balk, I will remove the NSDB ping test entirely.
    
    fedfsd_test_nsdb() was added in commit b055c16b "rpc.fedfsd:
    SET_NSDB_PARAMS should fail if LDAP server isn't an NSDB", Sep 3
    12:11:11 2011.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit bab5aee5aa73dd6af294db8db5eb34c703bc15dd
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Nov 18 13:15:31 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Nov 21 19:19:12 2013 -0500

    libnsdb: fix xlog() call sites in connsec.c
    
    Missing arguments to xlog() result in segfaults when debugging
    is enabled.
    
    Introduced by commit f1f55b50 "libnsdb: New mechanism for setting
    NSDB connection security", Jan 16 15:45:12 2013.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 44306220ad9ada3fea452e1465364f5e4a3ded11
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Nov 13 17:16:36 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Nov 21 19:19:06 2013 -0500

    libadmin: Enable compilation warnings for libadmin
    
    I'm about to add human-written code in libadmin.  For that, I'd like
    to enable the full set of compilation warnings.
    
    Machine-generated code should be subject to the same scrutiny as
    human-written code anyway, but code produced by rpcgen often has
    extraneous bits that throw harmless compiler warnings.
    
    For now, fix these up by hand.  We do have a version control
    subsystem in place to track any modifications we make by hand, so
    that they can be replicated if the ADMIN protocol is ever updated.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 9e2ddfdf91b3fa1e88f11cf9c31b7fb7dd565c57
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Oct 31 11:35:45 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Nov 21 17:16:43 2013 -0500

    libadmin: Remove rpcgen'd client and server stubs
    
    We don't actually use these.  The reference versions remain in
    doc/rpcl.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit ea9cadeef35c1365e3ca9464255f613baf2aff9b
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Oct 25 15:24:17 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 13 16:35:39 2013 -0500

    libnsdb: simplify NCE discovery
    
    When constructing an NSDB, part of the process currently involves
    adding a fedfsNceDN attribute to one or more root suffix entries in
    an LDAP server's root DSE.
    
    Simo Sorce (FreeIPA) points out it may be difficult or impossible
    for some LDAP server implementations to allow modification of their
    root DSE.  Or it could be a problem for some deployments to allow
    root DSE modification.  For this reason, LDAP applications typically
    use an approach that does not require root DSE modification.
    
    My own experience with OpenLDAP and 389-ds is that root DSE
    modification is quite awkward.  Long-term, we'd like to replace
    fedfsNsdbContainerInfo and fedfsNceDN with a form of NCE discovery
    that is simpler to configure.
    
    Old-style NCE discovery works like this: For each of the server's
    naming contexts, an NSDB client performs this query:
    
      ldapsearch -b "naming_context" -s base (objectClass=*) fedfsNceDN
    
    The fedfsNceDN attribute contains the full distinguished name of
    the NCE residing under that naming context (root suffix).
    
    New-style NCE discovery works like this:  An NCE contains an
    auxiliary object class called fedfsNsdbContainerEntry.  For each of
    the server's naming contexts, an NSDB client performs this query:
    
      ldapsearch -b "naming_context" -s subtree \
    		(objectClass=fedfsNsdbContainerEntry)
    
    The response carries the distinguished name of the NCE residing
    under that naming context, or NO_SUCH_OBJECT.
    
    Our client maintains compatibility with old-style NSDBs by using
    new-style discovery first, and then trying old-style discovery if
    new-style discovery fails.  For now, the client can throw an error
    if it discovers more than one NCE in a single naming context.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 6a317bced35a745ec788124e8fbbb49b9364cfb4
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Oct 25 16:41:08 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 13 16:30:41 2013 -0500

    libnsdb: create new-style NCEs
    
    When constructing an NSDB, part of the process currently involves
    adding a fedfsNceDN attribute to one or more root suffix entries in
    an LDAP server's rootDSE.
    
    Simo Sorce (FreeIPA) points out it may be difficult or impossible
    for some LDAP server implementations to allow modification of their
    root DSE.  Or it could be a problem for some deployments to allow
    root DSE modification.  For this reason, LDAP applications typically
    use an approach that does not require root DSE modification.
    
    My own experience with OpenLDAP and 389-ds is that rootDSE
    modification is quite awkward.  Long-term, we'd like to replace
    fedfsNsdbContainerInfo and fedfsNceDN with a form of NCE discovery
    that is simpler to configure.
    
    Old-style NCE discovery works like this: For each of the server's
    naming contexts, an NSDB client performs this query:
    
      ldapsearch -b "naming_context" -s base (objectClass=*) fedfsNceDN
    
    The fedfsNceDN attribute contains the full distinguished name of
    the NCE residing under that naming context (root suffix).
    
    New-style NCE discovery works like this:  An NCE contains an
    auxiliary object class called fedfsNsdbContainerEntry.  For each of
    the server's naming contexts, an NSDB client performs this query:
    
      ldapsearch -b "naming_context" -s subtree \
    		(objectClass=fedfsNsdbContainerEntry)
    
    The response carries the distinguished name of the NCE residing
    under that naming context, or NO_SUCH_OBJECT.
    
    When creating new-style NCEs, insert the fedfsNsdbContainerEntry
    object class.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit e3f81ce51824ab757b1a6be8ec46d139ff2ff591
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Oct 24 13:04:24 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 13 15:50:00 2013 -0500

    libnsdb: Avoid constructing the FSN DN on NSDB clients
    
    The LDAP community prefers that LDAP clients do not construct
    Distinguished Names.  Rather, they should obtain DNs from servers,
    whenever possible.
    
    Instead of constructing the FSN record's DN on the client, we could
    query the server for the FSN object, and then use ldap_get_dn() to
    derive the DN for the search base for the FSN's FSLs.  A second
    query would then retrieve the children of the FSN record via a
    query of scope ONE, using the FSN DN as search base.  However, this
    adds extra query steps.
    
    FSL records already have the parent's FSN UUID as one of their
    attributes.  We get the same results as above by performing a
    subtree query using the NCE as the search base, and filtering on the
    value of the fedfsFsnUuid attribute.  This matches similar logic in
    administrator.c.
    
    The original queries were based on the LDAP URI specified in section
    5.2.2 of the NSDB protocol I-D.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit e49beb7c8525197410dff48e32c3655fa7e21401
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Nov 8 17:58:23 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 13 15:47:54 2013 -0500

    fedfsc: Remove fedfs-delete-replication's "-p" option
    
    The "-p" option is no longer a supported command line option.
    
    This code should have been removed by commit 01db0099 "fedfsc:
    Specify manadatory arguments as positional parameters
    (fedfs-*-replication)", Nov 28 12:10:40 2011.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 9c0770cef47efa9b02d409ce0f6225ad2626ff95
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Oct 30 17:47:10 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 13 15:47:20 2013 -0500

    libnsdb: Fix a few comments
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 2cd66dc65b23091f15287fd48ca5ca467d912e66
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Oct 25 12:54:55 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 13 15:46:38 2013 -0500

    libnsdb: Pass correct search scope to ldap_search_ext_s(3)
    
    Commit 5e94ae03 "libnsdb: Add debugging message near
    ldap_search_ext_s(3) call sites" Wed Nov 28 20:35:24 2012 adds
    a wrapper around ldap_search_ext_s(3), but always seems to pass
    LDAP_SCOPE_SUBTREE to the ldap library.
    
    nsdb_search_nsdb_all_s() should pass its "scope" argument, not the
    constant LDAP_SCOPE_SUBTREE.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 5fab4e9ab9a88cba5032c4327bccb75c0d7cbac9
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Oct 22 18:18:45 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 13 15:46:09 2013 -0500

    libnsdb: Fix nsdb_ping_contexts_s()
    
    Commit a9c62419 added a switch() in a for() loop, which changes
    the semantics of "break;".
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit fcdd77b6e3769b80a627dcfd96990b9d0aa6ce6b
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Oct 24 12:56:15 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 13 15:45:34 2013 -0500

    libnsdb: Remove unused DN manipulation functions
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit fc87395b0145701cd307774764b257d073293656
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Sep 27 12:13:38 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 13 15:27:49 2013 -0500

    Add a tool to administer a simple OpenLDAP-based NSDB
    
    NSDB set-up has been made simpler over the past releases, but it
    remains onerously complex, even more so now that TLS is in the
    picture.
    
    Introduce a administration tool that can set up an NSDB from scratch
    using a fresh OpenLDAP installation.
    
    The tool depends on distribution packaging to pre-install an
    appropriate OpenLDAP server package and copy in the FedFS schema
    definition.
    
    Several subcommands are available:
    
      o install -- set up an NSDB
      o backup  -- save a dated backup of the NSDB
      o restore -- restore a backup
      o status  -- report status of NSDB service
    
    The install subcommand has a --security= option to specify whether
    to set up a server certificate and enable TLS.
    
    The tool maintains an activity log under /var/lib/fedfs.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 2049031d719ffe3932e1b1a005b7cd81888020e3
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Sep 6 10:20:07 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 13 15:18:51 2013 -0500

    Add a script to configure domain roots
    
    Simplify the process of setting up FedFS domain roots by introducing
    a tool called "fedfs-domainroot" that can handle the details.
    
    Sub-commands:
      {clean,status,add,remove}
        clean               Remove FedFS domain root infrastructure
        status              Display current FedFS domain root configuration
        add                 Add a new domain root directory
        remove              Remove a domain root directory
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit a611222c91aa014018e1997832743e5435342d14
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Sep 20 16:01:35 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 13 14:41:41 2013 -0500

    src: Introduce Python FedFS module
    
    To support upcoming tools based on Python, start building a module
    of utility functions that can be imported to keep the new tools
    small.
    
    Eventually this could become a FedFS implementation in Python.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 3f95912f0b9ce2db1c8cc63b2eaac7ccd1c07257
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Sep 16 15:41:05 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 13 14:41:26 2013 -0500

    CheckInTests: Add check-in tests for fedfs-utils Python components
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 96a60188d41e85693b8c7a874efdd278b2776396
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Oct 24 13:51:14 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Oct 29 14:46:14 2013 -0400

    schema: Add fedfsNsdbContainerEntry object class
    
    When constructing an NSDB, part of the process currently involves
    adding a fedfsNceDN attribute to one or more root suffix entries in
    an LDAP server's root DSE.
    
    Simo Sorce (FreeIPA) points out it may be difficult or impossible
    for some LDAP server implementations to allow modification of their
    root DSE.  Or it could be a problem for some deployments to allow
    root DSE modification.  For this reason, LDAP applications typically
    use an approach that does not require root DSE modification.
    
    My own experience with OpenLDAP and 389-ds is that root DSE
    modification is quite awkward.  Long-term, we'd like to replace
    fedfsNsdbContainerInfo and fedfsNceDN with a form of NCE discovery
    that is simpler to configure.
    
    Old-style NCE discovery works like this: For each of the server's
    naming contexts, an NSDB client performs this query:
    
      ldapsearch -b "naming_context" -s base (objectClass=*) fedfsNceDN
    
    The fedfsNceDN attribute contains the full Distinguished Name of
    the NCE residing under that naming context (root suffix).
    
    New-style NCE discovery works like this:  An NCE contains an
    auxiliary object class called fedfsNsdbContainerEntry.  For each of
    the server's naming contexts, an NSDB client performs this query:
    
      ldapsearch -b "naming_context" -s subtree \
    		(objectClass=fedfsNsdbContainerEntry)
    
    The response carries the Distinguished Name of the NCE residing
    under that naming context, or NO_SUCH_OBJECT.
    
    Define the new object class that denotes an NSDB Container Entry.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 8bf79a1df5c5e2b6c2a228cac418713733b5882f
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Sep 27 12:14:34 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Oct 21 17:34:11 2013 -0400

    .gitignore: remove resolve-junction
    
    The resolve-junction command was removed by commit 76a8f2e7 in
    release 0.8.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 058fa9401ff40eaae7a47f7599a70a143b94f00e
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Sep 24 17:16:41 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Oct 21 17:29:18 2013 -0400

    libsi: Compute the end-of-buffer pointer once
    
    Clean up.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit abe970ff2c65044affdf1a1740e1247664606b46
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Sep 24 17:19:46 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Oct 21 17:20:14 2013 -0400

    libsi: Remove mixed sign comparison in loop condition
    
    Clean up.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 6e82c0a6d35df7d322559e37900e33da60c67d8b
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Sep 24 17:15:06 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Oct 21 17:09:51 2013 -0400

    libsi: Handle multiple records in an SRV reply
    
    getservinfo() incorrectly returns ESI_PARSE when a domain has
    multiple SRV records.  After each record in the buffer is parsed,
    "comp_dn" was not being incremented correctly.  Only the first
    record was parsed correctly.
    
    Introduced by commit 0520ee72, "Initial commit," Mar 29 15:37:40
    2011.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 3d7b10cb70d8df0f5ea99f74ee525a254801236b
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Sep 17 10:17:56 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Oct 21 17:06:08 2013 -0400

    include: Update copyright boilerplate
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit f698814cddd61f407350c86684939a88337fb26b
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Sep 5 16:09:23 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Oct 21 16:46:20 2013 -0400

    libxlog: Remove hidden calls to exit(2)
    
    A packaging lint program caught a reference to exit(2) in our
    plug-in library.  This call site was in libxlog, which is invoked
    from all of our libraries.  As a rule, libraries should never exit
    out from under running programs.
    
    Fortunately, no-one in fedfs-utils uses L_FATAL or invokes
    xlog_err().  This exit(2) call is never invoked during run-time,
    and is safe to simply remove.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit bf91a863a08c030d0a08bc8a8bba41b93411ff45
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Sep 5 16:08:10 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Oct 21 16:30:23 2013 -0400

    configure.ac: Find automake tools correctly
    
    The configure script wasn't setting aux_srcdir correctly, causing
    Makefiles to look for libtool files in the builder's home directory
    instead of in the fedfs-utils top-level directory.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit d5dff9df9a82619f175dde8704bc8a1a0365ffbf
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Sep 25 10:07:36 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Oct 21 16:23:42 2013 -0400

    Revert commit d763c959
    
    Since commit d763c959, "build: do not link plug-ins against .so
    libs", Jun 25 13:44:04 2013, junction resolution fails.  Mountd
    reports:
    
      rpc.mountd[30762]: lookup_junction: dlopen: /lib64/libnfsjunct.so:
        undefined symbol: xmlFree
    
    The patch description for this commit reads "Binaries using the
    plug-ins static library will need to link against required shared
    libraries themselves."  However, this plug-in is always loaded via
    dlopen(3), and is not intended to be statically linked with other
    utilities.
    
    I suspect a change like d763c959 would need to be accompanied by a
    code or build change in mountd to deal with missing symbols when the
    plug-in is loaded.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Cc: David Disseldorp <ddiss@suse.de>

commit b7395171c8da6f7f07ef860ab03daeeccf0a1910
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Jun 25 11:30:11 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Jun 25 13:47:08 2013 -0400

    Makefile: Specify as-needed when building executables
    
    The "--as-needed" linker flag reduces the number of unused objects
    and dependencies in an executable, making it smaller and faster to
    load.
    
    Some distributions implicitly specify "--as-needed" when linking
    their package builds.  Building on Fedora appears not to.
    
    So that building on any platform can catch build problems before
    they are committed, explicitly specify --as-needed for executables.
    
    References:
    
      http://www.gentoo.org/proj/en/qa/asneeded.xml#doc_chap1
    
      https://sigquit.wordpress.com/tag/gnu-libtool/
    
    Reviewed-by: David Disseldorp <ddiss@suse.de>
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 05d6450023265e15bdc6e6bd24c05b1586e87d1d
Author:     David Disseldorp <ddiss@suse.de>
AuthorDate: Tue Jun 25 13:46:08 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Jun 25 13:46:08 2013 -0400

    build: fix gcc linker library argument placement
    
    The build currently fails on gcc 4.7.3 based openSUSE systems due to the
    placement of library arguments while linking, and the use of the
    --as-needed binutils feature.
    
    As described by http://www.gentoo.org/proj/en/qa/asneeded.xml:
    For symbols missing in a given file (either an object file, a static
    archive or a library), the linker checks only in the files coming after
    it.
    Without --as-needed, files are linked together without considering
    ordering. But with the flag, the libraries that aren't used for
    resolving symbols are discarded and thus not linked.
    
    Signed-off-by: David Disseldorp <ddiss@suse.de>

commit d763c959e86dd78420d3064763a9433a9f6f86b1
Author:     David Disseldorp <ddiss@suse.de>
AuthorDate: Tue Jun 25 13:44:04 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Jun 25 13:44:04 2013 -0400

    build: do not link plug-ins against .so libs
    
    Binaries using the plug-ins static library will need to link against
    required shared libraries themselves.
    
    Signed-off-by: David Disseldorp <ddiss@suse.de>

commit fd23752505d1f8d3bf94866a4bee2b82012568c9
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Jun 20 10:00:07 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Jun 24 17:05:33 2013 -0400

    contrib: Simplify fedfs-utils package installation on FedFS clients
    
    Instead of editing /etc/auto.master, the fedfs-map-nfs4 program map
    can be enabled by adding a configuration file under
    /etc/auto.master.d .
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 103d44ea629f07a02acd02170bc13b9a398e52d4
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Jun 17 14:52:04 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Jun 24 17:05:33 2013 -0400

    Makefile: Remove -fPIC and -fPIE compiler options
    
    libtool adds the correct compiler options during the build.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit f8e7c524737d19275e089befac66d40ce94ae108
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Jun 11 11:53:53 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Jun 24 17:05:33 2013 -0400

    doxy: Update Doxygen config file
    
    Update Doxygen config file for Doxygen 1.8  and newer by running
    
       doxygen -u doxy.cfg
    
    and editing the result by hand.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit c26abf0964374fec0f6d4389673f8a3c8731fb2c
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri May 31 15:10:02 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Jun 24 17:05:33 2013 -0400

    l10n: Replace nl_langinfo(CODESET) check in command line tools
    
    SteveD reports:
    > The nfsref *always* fails with "Failed to set locale and langinfo"
    >
    > Steps to Reproduce:
    > 1. type nfsref
    >
    > Additional info:
    > The failure is be caused by the following checks:
    >
    >     /* Ensure UTF-8 strings can be handled transparently */
    >     if (setlocale(LC_CTYPE, "") == NULL ||
    >         strcmp(nl_langinfo(CODESET), "UTF-8") != 0) {
    >         fprintf(stderr, "Failed to set locale and langinfo\n");
    >         goto out;
    >     }
    >
    > In f19
    >   setlocale(LC_CTYPE, "") == 'en_US
    > and
    >   nl_langinfo(CODESET) == ISO-8859-1
    
    The failing check was introduced in commit 0520ee72 "Initial
    commit", Tue Mar 29 15:37:40 2011.  The point of that check is to
    force the use of the UTF-8 codeset, since that codeset is required
    by the FedFS protocol specification, but it appears to be based on
    an incorrect assumption.
    
    This assumption has worked silently until now.  Apparently Fedora
    19 has changed the default shell LANG setting from "en_US.utf8" to
    "en_US.iso88591" .
    
    For now we are better off just taking the user's locale and then
    determining over time where our libraries need to convert user data
    to and from UTF-8 prior to network communication.
    
    Replace the above logic everywhere in fedfs-utils with this:
    
    	(void)setlocale(LC_ALL, "");
    
    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=969392
    Reported-by: Steve Dickson <steved@redhat.com>
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit f5c16606beca0d7564afa81823392c1b00869175
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri May 31 16:17:06 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Jun 24 17:05:33 2013 -0400

    configure.ac: check for presence of libattr
    
    libattr.so and headers under /usr/include/attr/ should be called out
    by configure.ac if they can't be found on the build system.
    
    Introduced by commit 0520ee72 "Initial commit", Tue Mar 29 15:37:40
    2011.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 68aa7f900e6cfc3702ea705919e7a0e3205d783d
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri May 31 15:56:04 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Jun 24 17:05:32 2013 -0400

    autogen: Deal with new ar-lib file created by automake
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit b4b6308a25a40df1656fdeef74c37919346b60d9
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri May 31 15:32:06 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Jun 24 17:05:32 2013 -0400

    libtool: Fix libtool warnings
    
    When building 0.9 on Fedora 18, I get these warnings from
    autogen.sh:
    
    /usr/share/automake-1.12/am/ltlibrary.am: warning: 'libadmin.la':
       linking libtool libraries using a non-POSIX
    /usr/share/automake-1.12/am/ltlibrary.am: archiver requires
       'AM_PROG_AR' in 'configure.ac'
    src/libadmin/Makefile.am:26:   while processing Libtool library
       'libadmin.la'
    
    Some web searching suggests this is a problem introduced by automake
    1.12 after support for building in Microsoft environments was added,
    but the true issue is caused by libtool, and can be addressed by
    a one-line change to configure.ac.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit a43a9333d866c59ed549872babdcac4aa14bf52d
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Jun 24 16:58:45 2013 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Jun 24 17:05:23 2013 -0400

    configure.ac: Kick off fedfs-utils-0.10 development
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 176d4cf1b9c970114de24063a74c1ae15e04dab0
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Feb 26 08:28:02 2013 -0800
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Feb 26 08:28:02 2013 -0800

    Release 0.9.0 (release candidate 1)
    
    Non-backwards compatible changes:
    
      o  NSDB schema complies with latest draft standard
      o  DNS SRV support complies with RFC 6641
    
    New features:
    
      o  NSDB clients support the FEDFS_SEC_TLS security type
      o  NSDB clients can follow LDAP referrals returned by NSDB nodes
      o  New tools for configuration of NSDBs
      o  New "display-junction" debugging command
      o  New installation guide:
          http://wiki.linux-nfs.org/wiki/index.php/FedFsInstallationGuide0.9
    
    Minor fixes:
    
      o  Dozens of clean-ups and bug fixes; consult Changelog for details
      o  "trusted.junction.type" xattr deprecated
      o  Refinements to man pages
      o  ADMIN XDR updated to latest draft standard
      o  Project web site moved to:
          http://wiki.linux-nfs.org/wiki/index.php/FedFsUtilsProject
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit cd286524c3f07768e4b22910661220121406c53a
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Feb 11 15:34:21 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Feb 11 15:34:21 2013 -0500

    Release 0.9.0 (release candidate 1)
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 35b40f18639a96c4e5259dbd9ea8e704596196ec
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Feb 11 15:29:01 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Feb 11 15:29:01 2013 -0500

    README: Update INSTALL and README for fedfs-utils 0.9
    
    Installation instructions contained in INSTALL are replaced with a
    hyperlink to the on-line installation guide.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 6f0f4a0852ef1bbb4ec4981d98870ad0c68993fc
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Feb 11 15:18:39 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Feb 11 15:18:39 2013 -0500

    fedfs.7: Update for fedfs-utils 0.9
    
    Consistently use the terms "fileserver", "NSDB node", and
    "file-access client".  Remove or replace some awkward language.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 51662e9421ce38dcb822d042e34ef766de7b2db2
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Feb 1 12:12:26 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Feb 1 12:12:26 2013 -0500

    libjunction: Always list the NSDB port attribute in junction XML
    
    Don't depend on the current default behavior of mapping a zero or
    missing nsdbport value to 389.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 71d3a24b146c40523c6697c99d3b2d02f01b8e03
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Feb 1 12:06:46 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Feb 1 12:06:46 2013 -0500

    Clean up use of 2049 as default NFS server port
    
    Clean up: Replace local definition of the NFS_PORT port macro with
    the correct public header definition.
    
    Introduced by commit 4f681570 "libjunction: Add support for
    nfs-basic junctions", Thu Dec 22 15:40:01 2011.
    
    Clean up: Avoid using "zero" for the fileserver port when creating
    new NFS FSL records.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 0bb93aee4d4555bf5fe0001167ad13c0b68fafd1
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Feb 1 12:02:02 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Feb 1 12:02:02 2013 -0500

    fedfsc: Finish adding Doxygen comments in the ADMIN client code
    
    These have been missing since commit 0520ee72 "Initial commit", Tue
    Mar 29 15:37:40 2011.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 00fae23141fdb184e4d31ea89f812894d5076096
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Feb 1 11:57:02 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Feb 1 11:57:02 2013 -0500

    fedfsc: Display LDAP errors consistently
    
    Clean up: code in fedfs-lookup-junction and fedfs-lookup-replication
    to display LDAP errors should be consistent.  Both should display the
    error on stderr.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 524c033f246449694dfdeffd74cff574f4065bf9
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Feb 1 11:52:13 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Feb 1 11:52:13 2013 -0500

    fedfsc: Explicitly report missing NSDB paramaters
    
    Clean up: code in fedfs-get-limited-nsdb-params and
    fedfs-get-nsdb-params should report that the server does not
    have the requested connection parameters, rather than just
    reporting the error code.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit c658fead2f5080c80eb44fb122489e7e9396f18a
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Feb 1 11:47:59 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Feb 1 11:47:59 2013 -0500

    fedfsd: Clarify debugging message
    
    When walking a pathname to verify each component, the debugging
    message produced when the terminal component is not a directory is
    misleading.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 50a23f2a851a67abf1896aa2ef3fb71c65b8886c
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Feb 1 11:43:19 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Feb 1 11:43:19 2013 -0500

    libnsdb: nsdb_resolve_fsn_s() should return NOFSN if FSN record doesn't exist
    
    Currently nsdb_resolve_fsn_s() returns FEDFS_ERR_NOFSL if the
    requested FSN UUID cannot be resolved because it does not exist.
    Arguably, this is correct: after all, there are no FSL records for
    a non-existant FSN.
    
    However, a better error return would be FEDFS_ERR_NOFSN because that
    more precisely reflects the failure.
    
    At one point in the past, nsdb_resolve_fsn_s() did indeed return
    NOFSN if the FSN didn't exist.  For example, there is logic to
    return that error code when the LDAP server returns
    LDAP_NO_SUCH_OBJECT.
    
    But our client no longer receives that LDAP result because of the
    particular search filter now used.  The search base is now the NCE,
    which should always exist.  Thus NO_SUCH_OBJECT is never returned by
    the LDAP server.
    
    The NSDB protocol document recommends slightly different search terms
    when resolving an FSN.  Using the FSN record's DN as the search base
    will continue to return the FSN's FSL records, as before, but will
    result in LDAP_NO_SUCH_OBJECT if the FSN itself does not exist.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit b9f954625b6b858831e1e3e9e3ece3edfab3a390
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Feb 1 11:34:42 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Feb 1 11:34:42 2013 -0500

    libnsdb: Fix nsdb_search_nsdb_attr_s() auditing message
    
    The xlog() call sites in __nsdb_search_nsdb_attr_s() are missing
    an argument.  Neither gcc nor sparse caught this; I discovered it
    during operation.
    
    Introduced by commit 5e94ae03 "libnsdb: Add debugging message near
    ldap_search_ext_s(3) call sites", Wed Nov 28 20:35:24 2012.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 19546d6f7e2f161e8e1425405fb4c13b49f46d1c
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Feb 1 11:30:27 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Feb 1 11:30:27 2013 -0500

    nsdbc: nsdb-list should list by NCE
    
    The output of nsdb-list assumes an NSDB has just one NCE.   It may
    have more than one, so list the FSN's by NCE.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit ba6f3d3bb2f44c55f3505ae0efb1087578b9faf0
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Feb 1 11:22:32 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Feb 1 11:22:32 2013 -0500

    nfsref: FSNs not removed if "nfsref" junction type not specified
    
    Suppose "foobar" is an nfs-fedfs junction.
    
    If I explicitly specify the junction type on the command line with
    "nfsref remove -t nfs-fedfs foobar", the FSN listed in the junction
    "foobar" is deleted on the NSDB.  If I let "nfsref" guess what kind
    of junction "foobar is with "nfsref remove foobar", the FSN is not
    removed.
    
    Remove the junction's FSN when the junction type is not specified.
    
    nfsref_remove_unspecified() is moved to avoid adding a forward
    declaration for nfsref_remove_delete_fsn().
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 77c94f502e26ccc3c2998c9a8840ae55a4e43f85
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Feb 1 11:15:27 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Feb 1 11:15:27 2013 -0500

    nfsref: "remove -t nfs-fedfs" should remove FSLs _and_ FSN
    
    Currently "nfsref remove -t nfs-fedfs" removes just the FSLs of
    the FSN listed in the junction.  It should also remove that FSN.
    
    Introduced by commit d4550c62 "nfsref: "nfsref remove" should remove
    FSN found in junction", Thu Oct 11 14:58:33 2012.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit c5bc0e0adc1b0ed0373df52229aa17d35fc34f0c
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Feb 1 11:08:33 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Feb 1 11:08:33 2013 -0500

    nfsref: Adjust whitespace in "lookup" output
    
    The FedFS Fileset location listing displayed the fileserver name and
    port too far to the right.
    
    Introduced by commit 04a9ffdf "Replace fedfsFslHost with
    fedfsNfsURI", Wed Nov 28 20:35:24 2012.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 19d0fa9ef34546a65d88c7925805c3a4be0455ca
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Feb 1 11:00:06 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Feb 1 11:00:06 2013 -0500

    libjunction: Restore mode bits when deleting junction metadata
    
    Deleting junction metadata is supposed to restore a directory's
    previous mode bits.  Or at the very least, the sticky bit should be
    removed to prevent the kernel from treating this directory like a
    junction.
    
    "nfsref remove" currently doesn't do this.  The problem is that
    the {fedfs,nfs}_delete_junction() twins do not restore the previous
    mode bits.  These should both call junction_restore_mode().
    
    This breakage was introduced in 0.9-devel by commit b01b24fd
    "libjunction: Deprecate trusted.junction.type xattr", Thu Oct 11
    14:59:50 2012, which incorrectly removed call sites for the
    junction_restore_mode() function.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit a9c62419d495c289532d8719a65a1499f8486bb8
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Jan 24 13:19:42 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 24 13:19:42 2013 -0500

    libnsdb: nsdb_ping_s() should handle TLS-only NSDBs
    
    If an NSDB requires TLS (as recommended by the NSDB protocol draft)
    nsdb_ping_s() will return FEDFS_ERR_NSDB_LDAP_VAL.  When performing
    an NSDB ping, an NSDB client doesn't yet have NSDB connection
    parameters, so it can't actually connect to the NSDB and see if it
    has an NCE.
    
    But nsdb_ping_s() can report in this case that TLS is required.
    
    The two cases where nsdb_ping_s() is invoked are when fedfsd or
    nsdbparams is trying to determine if a new NSDB entry is allowed.
    If the ping tells us we need TLS security, fedfsd and nsdbparams can
    ensure that the new connection parameters do configure FEDFS_SEC_TLS.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit cc8bda33c3c90c689398328c168aa8ae522f09cd
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Jan 24 13:11:52 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 24 13:11:52 2013 -0500

    libnsdb: Avoid passing NULL to strdup(3)
    
    strdup(3) segfaults if it is passed NULL.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 49c309385a8f87079b702c8c309aee56f942315c
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Jan 24 13:07:29 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 24 13:07:29 2013 -0500

    libnsdb: nsdb_read_nsdbname() should tolerate uninit'd securityFile
    
    nsdb_read_nsdbname() should not cause a segfault if the securityFile
    field has not been initialized.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 8fa21983bbba99d32f211ddbebf41c9114711dcd
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Jan 24 13:03:22 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 24 13:03:22 2013 -0500

    Report errors from nsdb_open_nsdb()
    
    A couple of cases that resolve junctions should attempt to report
    errors from nsdb_open_nsdb().
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 8bc2dbe73ea084079f225db840b1b32e86e3c44c
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Jan 24 12:25:29 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 24 12:25:29 2013 -0500

    nsdbc: Handle LDAP_CONFIDENTIALITY_REQUIRED
    
    If an NSDB is configured to reject FEDFS_SEC_NONE requests, but our
    client is configured to use FEDFS_SEC_NONE, libnsdb will return
    FEDFS_ERR_NSDB_LDAP_VAL with the LDAP error code
    LDAP_CONFIDENTIALITY_REQUIRED.
    
    Update the NSDB client tools to report this error meaningfully.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 1b230ba0fec8b57dd86978f58eb8d6162d0be0d9
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Jan 24 12:21:25 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 24 12:21:25 2013 -0500

    nsdbc: Improve error message when nsdb_open_nsdb() fails
    
    Clean up.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 0ee8647ef40d150a0ad656bbca60801fb580f702
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Jan 24 12:16:30 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 24 12:16:30 2013 -0500

    libnsdb: Return FEDFS_ERR_NSDB_AUTH when START_TLS fails
    
    Have nsdb_open_nsdb() return the correct error when START_TLS
    fails to authenticate the NSDB or establish a secure connection.
    
    Callers were displaying a confusing error message in this case.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 0d37b0b3f8cdeca76aafe4066deefc6fd3cbd377
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Jan 24 12:12:27 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 24 12:12:27 2013 -0500

    nsdbc: Report bind password problems correctly
    
    nsdb_open_nsdb() reports that a bind password is not working by
    returning FEDFS_ERR_NSDB_LDAP_VAL with ldap_err =
    LDAP_INVALID_CREDENTIALS.  Have NSDB clients display a specific
    and helpful error message in this case.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 39bd951ce25a5fd35e79217a8c545902bf9ae6c9
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Jan 24 12:08:01 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 24 12:08:01 2013 -0500

    libnsdb: nsdb_open_nsdb() returns incorrect error code
    
    The invalid security type here comes from our own NSDB connection
    parameters database.  Thus it is a screw-up in fedfs-utils itself
    that allows this invalid data.
    
    FEDFS_ERR_NSDB_AUTH is marginally correct, since we can't authenticate
    the NSDB using the provided security type, but FEDFS_ERR_NSDB_PARAMS
    is a better indication of what's gone wrong.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit d75dd2f000e6c3824e15b769c5181afe5fdef936
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Jan 24 12:01:21 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 24 12:01:21 2013 -0500

    libnsdb: nsdb_bind() returns incorrect error code
    
    FEDFS_ERR_NSDB_AUTH means our NSDB client could not authenticate the
    NSDB.  That authentication is done with an x.509 certificate.  A
    user-provided password plays no part.
    
    A missing password is a user input error, thus FEDFS_ERR_INVAL is
    the correct error return.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit ac4fe0982a79daadf82f97ba7edbccdec101778d
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Jan 24 11:52:51 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 24 11:52:51 2013 -0500

    nfsref: Clean up use of fprintf(stderr)
    
    We prefer xlog(L_ERROR) in most cases because it prefixes the
    program name to error messages.  The usual exceptions are a
    command's usage message, and output that must occur before the
    xlog_open() call.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 1a2701daa02a38c4057bb4739ed42bfaca7d91c6
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Jan 16 16:42:04 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Jan 16 16:42:04 2013 -0500

    libnsdb: Remove unused security-related APIs
    
    Clean up.  These functions and data types are now no longer used.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 74f290fa7736557ed065175817e50d9adb333e96
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Jan 16 16:35:23 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Jan 16 16:35:23 2013 -0500

    ADMIN: Transform certificate material properly
    
    The latest ADMIN protocol document requires the use of DER encoding
    when transferring certificates on the wire.  Our LDAP library uses
    certificates stored in PEM-format files when performing a START_TLS
    operation.
    
    Transformation between these two formats is required:
    
      o  rpc.fedfsd should validate that incoming certificates are DER
         encoded, and should transform them to PEM format when storing
         them for use by our LDAP client (FEDFS_SET_NSDB_PARAMS)
    
      o  rpc.fedfsd should transform stored PEM format certificates to
         DER before returning them to clients (FEDFS_GET_NSDB_PARAMS)
    
      o  The fedfs-set-nsdb-params tool should validate user-provided
         certificate material, and should transform it to DER encoding
         before sending it to fedfsd
    
      o  The fedfs-get-nsdb-params tool should transform certificate
         material retrieved from fedfsd into a PEM format file instead
         of displaying the raw certificate data.  DER-encoded data is
         gibberish to a human
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 9065cca4bec54bc53f2c1c924ed410b23a438368
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Jan 16 16:29:29 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Jan 16 16:29:29 2013 -0500

    fedfsd: Encapsulate nsdb_ping_s() logic in separate function
    
    Clean up: simplify fedfsd_svc_set_nsdb_params_1() by moving the
    nsdb_ping_s() call site and the following switch statement to a
    separate function.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 092963afbdfa2c6e4b8143611384acc488a8346e
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Jan 16 16:25:34 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Jan 16 16:25:34 2013 -0500

    nsdbparams: "update" subcommand shouldn't wipe security data
    
    "nsdbparams update" updates the NSDB's security data every time it
    is invoked.  That means every time an NSDB connection parameters
    update is done (say, to prevent LDAP referral following), the
    previous security settings for that NSDB are wiped.
    
    It's always worked this way, but until now, fedfs-utils has supported
    only one connection security type, a type which had no security data
    associated with it.  So we couldn't tell it was broken.
    
    Also, nsdbparams should validate incoming certificate material.  And
    let's document in the man page what kind of certificate is needed.
    
    Finally, a minor UI change: allow users to specify "--certfile"
    without "--sectype" to enable TLS mode.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 219ae71fe4f40c1c8387bea59b1e9129dd8e2509
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Jan 16 15:45:13 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Jan 16 15:45:13 2013 -0500

    man: Add nsdb-parameters(7)
    
    Introduce a man page that explains NSDB connection parameters.
    The page discusses the types of NSDB connection security and how
    x.509 certificates are used to authenticate NSDB nodes.  This page
    can then be cited by other pages.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 5fc7a08df2834dbf9fbdf94c262f2d1616c61eb1
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Jan 16 15:45:12 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Jan 16 15:45:12 2013 -0500

    libnsdb: Clean up an NSDB's certfile when NSDB conn params are deleted
    
    An NSDB's certfile should be removed when an NSDB is deleted.
    This change affects both fedfsd and the nsdbparams command.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit f1f55b50153500f826c8a80bf97b421548f4e178
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Jan 16 15:45:12 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Jan 16 15:45:12 2013 -0500

    libnsdb: New mechanism for setting NSDB connection security
    
    The nsdbparams "update" subcommand shouldn't wipe security data when
    it is invoked.  Every time an NSDB connection parameters update is
    done to change other connection parameters, the previous security
    settings for that NSDB are wiped.
    
    It's always worked this way, but until now, fedfs-utils has
    supported only one connection security type, a type which had no
    security data associated with it.
    
    Also, the LDAP library wants certificate files in PEM format, but
    the ADMIN protocol states that certificate material transmitted on
    the network (via FEDFS_SET_NSDB_PARAMS, for instance) must be DER
    encoded.
    
    In addition to transforming certificate material between PEM and
    DER encoding, fedfsd and the ADMIN client tools ought to be doing
    some level of validation of user-provided certificate material
    before storage and use.
    
    To address these issues, introduce a new API for changing NSDB
    connection security settings.  The old API used the
    nsdb_update_nsdb() function to both create new entries in the local
    NSDB connection parameters database, and to change/update their
    security settings.  The new API breaks nsdb_update_nsdb() into two
    phases:
    
      o  The new nsdb_create_nsdb() function creates a new entry in the
         local NSDB connection parameters database
    
      o  The new nsdb_connsec_set_foo() functions replace the
         security settings in an entry
    
    The purpose of the new arrangement is to split out the details of
    certificate management from the details of creating an entry in the
    database.  Setting the connection security mode is the same class of
    operation as updating any of the other per-NSDB settings, with the
    additional complexity of having to deal with the private certificate
    files.
    
    To manage certificate encoding transformations, new APIs are
    introduced that allow callers to pass just the pathname of the
    certificate file to libnsdb, which handles the details of validating
    and storing the certificate material.
    
    In subsequent commits, I'll update the various tools and daemons to
    use the new API, then finally remove the old API.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 552f9aeddf0c821b7433f0a6711ed9dae992a6ba
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Jan 16 15:45:12 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Jan 16 15:45:12 2013 -0500

    nsdbparams: Rename nsdb_test_nsdb()
    
    Clean up: static functions in nsdbparams proper should be named with
    an "nsdbparams_" prefix.
    
    Introduced by commit 6244ea74 "nsdbparams: Ping only when adding new
    NSDBs" Thu Nov 10 12:17:40 2011.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 9a425d65a7d0eb8362503be935bbf1983f12d356
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Jan 16 15:45:12 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Jan 16 15:45:12 2013 -0500

    libnsdb: Simplify nsdb_lookup_nsdb()
    
    Clean up: Remove the "fedfs_secdata *" parameter from
    nsdb_lookup_nsdb().  No callers remain who need to retrieve security
    data when looking up an nsdb_t object.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit b3977ef782424482e67f29cbd1ddfda6f714836f
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Jan 16 15:45:12 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Jan 16 15:45:12 2013 -0500

    libnsdb: Add API for retrieving certificate data
    
    We're about to optimize nsdb_lookup_nsdb() for the common case,
    which is the case that does not need to retrieve any security data.
    In fact, right now, there is only a single caller of
    nsdb_lookup_nsdb() that needs this data.
    
    Introduce a separate API for retrieving certificate data for an
    already-initialized nsdb_t object.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit c81a5a56cbe0b2c9934d7abfaadab4a471f5eb74
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Jan 16 15:45:11 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Jan 16 15:45:11 2013 -0500

    plug-in: link libnfsjunct.so with liburiparser
    
    Attempting to follow a junction results in a missing symbol error
    from mountd.  Commit 750fdf4b "libnsdb: Add URI pathname parser
    helpers" Wed Nov 28 20:35:24 2012 should have updated
    src/plug-ins/Makefile.am to link the plug-in library with the
    URI parser library.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit a5a31e9927555c37941969258458d3c374084a1b
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Jan 8 12:12:52 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Jan 8 12:12:52 2013 -0500

    fedfsd: Fix memory leak in fedfsd_svc_get_limited_nsdb_params_1()
    
    If the requested NSDB is not in the server's NSDB database, the
    buffer containing the NSDB's hostname is leaked.
    
    Introduced by commit 0520ee72 "Initial commit" Tue Mar 29 15:37:40
    2011.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit cc8f6a4e51443a299254778214ec9ba05d23bf5e
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Jan 8 12:10:34 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Jan 8 12:10:34 2013 -0500

    libnsdb: Add nsdb_sectype()
    
    Introduce an accessor function for the fn_sectype field.  This will
    allow further API simplification.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 5d57a399846d06778c1a4749bd37cb251ef5fefe
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Jan 8 12:00:36 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Jan 8 12:00:36 2013 -0500

    libnsdb: Initialize fn_sectype field in nsdb_new_nsdb()
    
    API clean up: Initialize the sectype field in an obvious place that
    others may re-use reliably.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 53ccf248d7935c223c2994a0706145796c3e7ccc
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Jan 8 11:54:17 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Jan 8 11:54:17 2013 -0500

    libnsdb: Fix string displayed for invalid security types
    
    nsdb_display_fedfsconnectionsec() displays security types, not error
    codes.
    
    This has been incorrect since commit 0520ee72 "Initial commit", Tue
    Mar 29 15:37:40 2011.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 9019220ab7f90551360e8e9b465ae1bbc45c26d5
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Jan 8 11:49:57 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Jan 8 11:49:57 2013 -0500

    libnsdb: Rename fn_secdata field
    
    Clean up: fn_secdata is actually a filename, not security data.
    Name the field something that makes more sense.  An accessor
    function for this field is also provided.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit eed2bf1ac9d6e0f0e54e48e8f732c94ac0d383ef
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Jan 8 11:38:45 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Jan 8 11:38:45 2013 -0500

    libnsdb: Add API to enable LDAP library debugging
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit bc1edf0b7ecbe4567a76f915f3cc829b16eeae24
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Jan 8 11:34:04 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Jan 8 11:34:04 2013 -0500

    libnsdb: Use correct TLS options
    
    Use the CACERTFILE option, not the CERTFILE option when specifying
    our certificate file.  This will cause the SSL library to use only
    the certificates specified in that file, rather than searching
    globally on the local system.
    
    LDAP_OPT_X_TLS_REQUIRE_CERT and LDAP_OPT_X_TLS_CACERTFILE must be
    set on the global LDAP descriptor.  This is because the LDAP
    descriptor's SSL/TLS context is initialized from the global
    descriptor's settings.
    
    Without these two fixes, STARTTLS does not work.  Introduced in
    commit 0520ee72 "Initial commit" Tue Mar 29 15:37:40 2011.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit a1888e35a6ca9a48332d772678ac4a569b038982
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Jan 8 11:20:57 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Jan 8 11:20:57 2013 -0500

    libnsdb: nsdb_start_tls() should always get a certfile argument
    
    nsdb_start_tls() is called only when FEDFS_SEC_TLS is set for an
    NSDB.  It doesn't make sense to return success if no certfile is
    passed to it: it should be a failure, since the connection to the
    NSDB is not secured if there is no certificate to use.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit f1660d78563f3061b0910d802a166eacbf7f17f8
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Jan 8 11:09:23 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Jan 8 11:09:23 2013 -0500

    libnsdb: Fix debugging message in nsdb_open()
    
    Copy-paste error introduced in commit 0520ee72 "Initial commit," Tue
    Mar 29 15:37:40 2011.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 8125855a0141cd6c9d7385beb72af9292f255c24
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Jan 8 11:00:59 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Jan 8 11:00:59 2013 -0500

    libnsdb: Improve diagnostic from ldap_start_tls_s(3)
    
    To help administrators diagnose problems with NSDB x.509
    certificates, improve the diagnostic messages generated during TLS
    session initialization.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit c92967cc2a47eb65682e8e9d93ba02f42083ddb9
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Jan 8 10:55:06 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Jan 8 10:55:06 2013 -0500

    libnsdb: Update mode bits for NSDB cert files
    
    Cert files are never updated after they are created, so remove owner
    write permission.  As a clean-up, use a macro to define and label
    the certificate file mode bits.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 07f39a01ca01331630961fad5583db76f90b8bed
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Jan 8 10:44:18 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Jan 8 10:44:18 2013 -0500

    libnsdb: nsdb_update_nsdb() doesn't create /var/lib/fedfs/nsdbcerts
    
    "nsdbparams update -f foo -t 1 nsdb.example.net" fails if the
    nsdbcerts directory does not already exist.  Create it
    automatically.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 843cef457fe9abee3a86c70e869f57e396f001b9
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Jan 8 10:31:47 2013 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Jan 8 10:31:47 2013 -0500

    nsdbparams: Improve certfile debugging messages
    
    Report specific error conditions when reading a certfile fails.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit f197e538cf8ce5daa739af025c10693689758107
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Dec 24 14:53:34 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Dec 24 14:53:34 2012 -0500

    man: The "-R" option of "nsdbparams update" is incorrectly documented
    
    The synopsis for the nsdbparams command in the nsdbparams.8 man page
    currently incorrectly documents the "-R" command line option.  It
    takes an argument: "yes" or "no", as the man page later correctly
    describes.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit c0daa26876df4495ae8c0fc864949fcc6c5ff000
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Dec 24 14:49:13 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Dec 24 14:49:13 2012 -0500

    nfsref: Follow LDAP referrals when resolving FSNs
    
    FSN resolution is allowed to follow LDAP referrals if the NSDB's
    "follow referrals" flag is on.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 0c56f5515e91b55da76a5e7a198193e6dc97e2f5
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Dec 24 14:39:27 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Dec 24 14:39:27 2012 -0500

    plug-in: Follow LDAP referrals when resolving FSNs
    
    FSN resolution is allowed to follow LDAP referrals if the NSDB's
    "follow referrals" flag is on.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 3751350372cd029404fa4f8c283bbe430a884a0f
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Dec 24 14:33:53 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Dec 24 14:33:53 2012 -0500

    fedfsd: Follow LDAP referrals when resolving FSNs
    
    FSN resolution is allowed to follow LDAP referrals if the NSDB's
    "follow referrals" flag is on.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 0905be438fe23915f00bb4a4999f5dd6b1fb96b0
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Dec 24 14:29:45 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Dec 24 14:29:45 2012 -0500

    nsdbc: Do not follow LDAP referrals during administrator operations
    
    NSDB tools that perform administrative operations are not ever
    allowed to follow LDAP referrals.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit c427dbaf2a1b24f881721968453df86be7f27988
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Dec 24 14:24:00 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Dec 24 14:24:00 2012 -0500

    nsdbc: Follow LDAP referrals in some NSDB administrative tools
    
    NSDB tools that perform fileserver queries are allowed to follow
    LDAP referrals if the NSDB's "follow referrals" flag is on.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit b82f3ba222b51fe607a0da34a1158425f55bde90
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Dec 24 12:43:22 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Dec 24 12:43:22 2012 -0500

    libnsdb: Handle LDAP referrals during NSDB fileserver queries.
    
    The original design is incorrect.  LDAP servers I've encountered
    return referrals in the LDAP_RES_SEARCH_RESULT message.
    
    We hand an array of LDAP URIs back to the caller to figure out if a
    retry against the referred-to LDAP server is appropriate.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 019c7c132f3fbf4aec4c2a0546fced2a82712e65
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Dec 14 16:40:57 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Dec 14 16:40:57 2012 -0500

    libnsdb: Proper rationalization for disabling LDAP_OPT_REFERRALS
    
    It wasn't always the case, but these days, the FedFS drafts _do_
    have something to say about how to handle LDAP referrals when
    performing an NSDB request.
    
    NSDB clients must authenticate every NSDB they encounter.  Thus an
    LDAP referral means the client has to consult its NSDB connection
    parameter database again for the referred-to NSDB node in order to
    authenticate it.
    
    The LDAP_OPT_REFERRALS option enables the LDAP library to handle
    LDAP referrals transparently to the caller.  It's set to LDAP_OPT_ON
    by default.  This means libnsdb would never see an LDAP referral.
    
    Since we need to make sure proper authentication occurs in this
    case, libnsdb must see LDAP referrals and deal with them.  Thus, the
    LDAP_OPT_OFF setting is correct, but the reason in the comment for
    that setting is invalid.
    
    Our implementation also has a per-NSDB setting that allows an
    administrator to disable following LDAP referrals entirely.  That's
    implemented by checking that setting when a referral occurs.  This
    logic also requires that the LDAP library expose referrals to
    libnsdb.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit a53654447705fac4c2669053eba5aea0e9cb9aec
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Dec 14 11:29:13 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Dec 14 11:29:13 2012 -0500

    libnsdb: Remove nsdb_parse_reference()
    
    Browsing LDAP-related RFCs suggests that LDAP referrals are
    communicated only in LDAP_RES_SEARCH_RESULT messages, not via
    LDAP_RES_SEARCH_REFERENCE messages.  I doubt we will ever see a
    SEARCH_REFERENCE message.
    
    As a clean up, remove nsdb_parse_reference().
    LDAP_RES_SEARCH_RESULT is now handled as an unsupported message
    type.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit dbad9dfe17e7005d5e8960370c6a070fa42e85a0
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Dec 14 11:24:59 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Dec 14 11:24:59 2012 -0500

    libnsdb: Handle LDAP referrals in an LDAP_RES_SEARCH_RESULT
    
    So that callers can extract the location of the referred-to LDAP
    server, change nsdb_parse_result() to parse an array of referral
    URIs, if one is returned.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit c4d8cf335aa66a7cef2e75ce7ff618f412105ce2
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Dec 14 11:09:32 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Dec 14 11:09:32 2012 -0500

    libnsdb: Free the results of ldap_parse_result(3)
    
    nsdb_parse_result() does not free the results of ldap_parse_result(3)
    properly if the call was successful.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit b557a8ef33336fda9a26093fbd5ab98912684ba8
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Dec 6 11:47:13 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Dec 6 11:47:13 2012 -0500

    nfsref: "nfsref SUBCOMMAND -?" should display useful information
    
    The usage message of the "nfsref" command says that more information
    is available from invoking "nfsref SUBCOMMAND ?", but this currently
    produces just the same usage message.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit eefa0bdedc9f4cb84fcbdc284cbac98829be4bae
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Dec 6 11:44:14 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Dec 6 11:44:14 2012 -0500

    contrib: Add tools to help configure LDAP servers as NSDBs
    
    Setting up an NSDB takes a bunch of detailed steps.  To encourage
    adoption of FedFS (or at least broaden our base of testers), we want
    to make NSDB set up easier to do.  One of the challenges is that
    each LDAP server implementation requires different administrative
    tools and procedures.
    
    Thus, for each LDAP server implementation, we can add tools that
    set up the FedFS schema, create root suffixes, and so on.  Of course
    some server implementations will not succumb to this approach, as
    they will still require manual set up on the servers themselves.  We
    can but try.
    
    As a first step, create a landing place for server-specific tools
    and introduce a few sample tools to remotely configure LDAP servers.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 9a07eadaaed8c3303daf57e5c34465a177ed5018
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Dec 6 11:41:35 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Dec 6 11:41:35 2012 -0500

    nsdbc: Introduce a tool for creating a simple NSDB.
    
    NCEs like "o=fedfs", where the NCE and the naming context are the
    same entry, are allowed and supported.  But we need something that
    makes it easy for a novice to get started.
    
    Add a new tool called nsdb-simple-nce that creates an entry as a
    child of some parent DN (usually the LDAP server's domain naming
    context, ie. dc=example,dc=net), and then makes that new entry an
    NCE for its naming context.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit aeac65806f2e3775a26172b94e541fa900fc71be
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Nov 28 20:35:24 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 28 20:35:24 2012 -0500

    libnsdb: remove XDR path helpers
    
    fedfsNfsPath was the only attribute that required XDR-encoding of an
    NFSv4 pathname.  Now that it's gone, we can remove these helpers.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 04a9ffdfdb3ae73724b4293eade7d7c9dc342d8f
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Nov 28 20:35:24 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 28 20:35:24 2012 -0500

    Replace fedfsFslHost with fedfsNfsURI
    
    The latest NSDB schema moves the name and port of the fileserver
    host (fedfsFslHost and fedfsFslPort) to the NFS-specific section of
    the FSL, and combines them with the export pathname.  The result is
    stored in a single labeledURI type attribute.
    
    We'll need to replace the logic that stores the pathname as an XDR
    blob on the NSDB with one that constructs an NFS URI.  The logic
    that reads an XDR-encoded pathname and unmarshals it will have to
    read the URI and break it into its constituent components.
    
    Note: this commit adds a new library dependency to fedfs-utils:  URI
    parsing is done via the open liburiparser library.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 750fdf4bba4f5d4880ce7ad5b56451bd771cc3e2
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Nov 28 20:35:24 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 28 20:35:24 2012 -0500

    libnsdb: Add URI pathname parser helpers
    
    We're about to introduce support for encoding NFSv4 pathnames in
    an NFS URI.  Add helpers for handling the details.
    
    Note that this commit adds a new build dependency: liburiparser.
    Not all current distributions have liburiparser.  RHEL / OL 6
    do not have it, for example.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 9fdffd8456c20ec16920ec2f6852ddfc90eaf54d
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Nov 28 20:35:24 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 28 20:35:24 2012 -0500

    libnsdb: Add debugging message near ldap_modify_ext_s(3) call sites
    
    Enhance observability when NSDB tools use the "-d" command line
    switch.
    
    Clean up: simplify the structure and array initialization in ldap.c.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 5e94ae03b4b2a8da2360ce585a371372ac4260dc
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Nov 28 20:35:24 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 28 20:35:24 2012 -0500

    libnsdb: Add debugging message near ldap_search_ext_s(3) call sites
    
    Enhance observability when NSDB tools use the "-d" command line
    switch.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit b4b004a678d207f9c456fefc94e4e0b7ce1b7c95
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Nov 28 20:35:24 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 28 20:35:24 2012 -0500

    libnsdb: Clean up: correct the LDIF examples in administrator.c.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit e16d23a961e3b7fb23c622aa841223eb4ab30a75
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Nov 28 20:35:24 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 28 20:35:24 2012 -0500

    doxy: Update some doxy.cfg settings
    
    Let's direct the warnings to a separate file: the output messages
    blast by during a build so it's hard to see any problems.
    
    Add the fedfs-utils revision number.
    
    Enable warnings when a function parameter has no documentation.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 5aa1d9529c8f4977b58cac0d45a04045eae2bd55
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Nov 28 20:35:24 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 28 20:35:24 2012 -0500

    doxy: Correct doxy.cfg GPL boilerplate
    
    The boilerplate is automatically generated, and somehow got the
    name of the package wrong.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit dd8822c0d3e63ee2c30212ae658038113ab19977
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Nov 20 10:24:50 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Nov 20 10:24:50 2012 -0500

    libjunction: Remove <ttl> tag from <location>
    
    Recent changes to the NSDB schema moved the cache TTL from location
    records to their parent FSN record.  The same change is needed for
    NFS basic junctions.
    
    Start by removing the existing <ttl> tag from NFS basic junctions.
    The default cache expiry for junctions should then be 300 seconds.
    
    I'm not sure anyone will ever need to alter this value.  There is
    no interface to change it in today's fedfs-utils or nfs-utils.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 9c1702543faf911f8e5ad50dfc1c662fda7fb4a8
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Nov 20 10:21:38 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Nov 20 10:21:38 2012 -0500

    plug-in: Handle FsnTTL
    
    Now that nsdb_resolve_fsn_s() returns a TTL, the NFS plug-in is also
    updated.  Instead of reporting the FSL TTL for each location, the
    FSN TTL is always reported.  It's a little awkward, but it avoids a
    change to the plug-in API.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 47d444a3d761b493e5744c6f339b296f2504b94b
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Nov 20 10:18:53 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Nov 20 10:18:53 2012 -0500

    nsdbc: Update NSDB client tools to display the FsnTTL.
    
    Now that nsdb_resolve_fsn_s() returns a TTL, various tools are
    altered to display it.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit c02e77704bd2f64020001fdbf46134d94d4c716f
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Nov 20 10:18:11 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Nov 20 10:18:11 2012 -0500

    libnsdb: Add nsdb_get_fsn()
    
    Resolving an FSN is a little different than reading just the
    information in an FSN record.  Introduce nsdb_get_fsn(), which
    retrieves the contents of an FSN record without resolving it.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 6778053a677f2696ba68ea1c712ef05fe9b4d1c9
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Nov 20 10:13:17 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Nov 20 10:13:17 2012 -0500

    libnsdb: Generalize nsdb_parse_annotations()
    
    At one point, nsdb_parse_annotations() used to parse fedfsAnnotations
    by breaking them into key-value pairs.  But now it just stores each
    pair into an array of strings.  This was changed before the initial
    0.6.0 commit, but the documenting comment was never updated.
    
    This looks like something that can be used for any FedFS-related
    LDAP object that has a fedfsAnnotations attribute.  Instead of
    having a version of this function that is specific to fedfsFsl
    records, let's make it more general by having it output a string
    array rather than filling in a struct fedfs_fsl.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 532da77fa00140a3e62f7a215bf29ecde6d52cc9
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Nov 20 10:08:26 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Nov 20 10:08:26 2012 -0500

    Remove fedfsFslTTL attribute
    
    The fedfsFsl object class defined in the latest NSDB schema no
    longer contains a TTL attribute.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 8091d3e377708d855b827f185dc6c90bc4190476
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Nov 20 10:07:56 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Nov 20 10:07:56 2012 -0500

    libnsdb: Remove version XML tag macros
    
    Clean up: Remove unused C macros.  These should have been removed by
    commit 1a681ff2 "Remove support MajorVer and MinorVer", Nov 14
    15:16:22 2012.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 7e95c67f076f903821c843aa6bb5fd2d63079136
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Nov 15 11:47:23 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Nov 15 11:47:23 2012 -0500

    libadmin: Copy recent XDR updates to src/libadmin
    
    Commit 8a930de7 "Update FedFS RPCL", Mon Oct 29 13:23:01 2012 updated
    our documentation copy of the FedFS ADMIN protocol XDR.  I checked the
    generated fedfs_admin_clnt.c and _svc.c and saw no changes, so at that
    time I did not update src/libadmin, where the generated files are
    actually used.
    
    Turns out that fedfs_admin.h and fedfs_admin_xdr.c did change, though
    it appears that the changes are merely renames of certain structures.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit edcd16f424930ed6255b904fa1e92edb5f11ba56
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Nov 14 15:19:59 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 14 15:19:59 2012 -0500

    Remove NsdbName and port from fedfs_fsl struct
    
    The latest NSDB schema no longer stores the NSDB name and port in
    a fedfsFsl record.  These values are now assumed from the NSDB the
    client is connected to.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 1a681ff2bf759d67edaff152f627f63e94949253
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Nov 14 15:16:22 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 14 15:16:22 2012 -0500

    Remove support MajorVer and MinorVer
    
    The fedfsNfsMajorVer and fedfsNfsMinorVer attributes are no longer
    supported in the latest NSDB schema.  We didn't use them anyway.
    
    This is a non-backwards compatible change.  After this patch, NFS
    basic junctions do not contain NFS major and minor version
    information.  Resolving these junctions with fedfs-utils-0.8 will
    fail.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit e861ba6f22a85b1385139b22e96e76ee0a8c9f2d
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Nov 14 15:08:12 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 14 15:08:12 2012 -0500

    libnsdb: Update nsdb_create_fsn_s()
    
    The latest NSDB schema removes the NSDB name attribute from the
    fedfsFsn object class, but adds a TTL.  Update nsdb_create_fsn_s()
    to comply with the new schema, and allow nsdb-create-fsn to take an
    optional TTL argument.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 2d5bc5d85580e24117876b5c5d81ee1b58fc5ac3
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Nov 14 14:57:54 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 14 14:57:54 2012 -0500

    libnsdb: Remove nsdb_get_nceprefix_s()
    
    Since we no longer store a DN prefix in the naming context,
    nsdb_get_nceprefix_s() is no longer used.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 9862cbba84b3070683fd46177d4f69c78b5f5854
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Nov 14 14:47:29 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 14 14:47:29 2012 -0500

    libnsdb: Replace nsdb_get_nceprefix_s() with nsdb_get_ncedn_s()
    
    The full DN of the NCE is now stored in the naming context.  Replace
    the API that retrieved the NCE DN prefix and constructed the full DN
    with a new API that simply retrieves the full DN.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 6dbbe784474a81b96a04408b762035f48a65d6d0
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Nov 14 14:43:11 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 14 14:43:11 2012 -0500

    libnsdb: remove nsdb_split_nce_dn_s()
    
    Since we now store the full NCE DN in the naming context,
    nsdb_split_nce_dn_s() is no longer used.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 11bd20a4a3c3e0715d9df974707d2737e31cbb8e
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Nov 14 14:40:05 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 14 14:40:05 2012 -0500

    libnsdb: Add nsdb_find_naming_context_s()
    
    Thanks to recent changes in the NSDB protocol, we don't need to
    compute a DN prefix any more, so introduce a simpler API.
    
    I've prefer to have the LDAP server tell us which root suffix is the
    parent of a DN, but I haven't found a way to do this.  The correct
    root suffix is still chosen by iteratively comparing the DN's suffix
    with the root suffix.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit fdc3f0da742c21915a46dee48568a9fd7569546c
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Nov 14 14:35:37 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 14 14:35:37 2012 -0500

    libnsdb: Change nsdb_update_nci_s() to insert fedfsNceDN attribute
    
    The latest NSDB schema replaces the fedfsNcePrefix attribute with
    the fedfsNceDN attribute, which is the full DN of the NCE under
    the current naming context.
    
    Update the update_nci and remove_nci APIs to use the fedfsNceDN
    attribute.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit ce5a0a651fff84235a8c98618a98b71767341f08
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Nov 14 14:35:35 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 14 14:35:35 2012 -0500

    Update NSDB schema docs
    
    Pull in schema in revision 13 of the NSDB protocol draft.  This is
    essentially a documentation change.
    
    The new schema introduces non-backwards-compatible changes to the
    FedFS NSDB protocol.  These changes will be introduced to
    fedfs-utils in subsequent commits.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit b1df42f94edbc453f6c96e601c5475a540dd8022
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Nov 14 14:34:13 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Nov 14 14:34:13 2012 -0500

    CheckInTests: More clean up
    
    Using the "-j" option on make should always work.  A multi-threaded
    build is a good check that our Makefile dependencies are more or
    less correct.
    
    In addition, clean up the requirements around ./configure, and add
    a "make distclean" requirement.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit a32d097a86745d479c3f883aad0ae1768275171c
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Nov 6 11:09:30 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Nov 6 11:09:30 2012 -0500

    libjunction: display-junction link fails with "make -j2"
    
    Making fedfs-utils with the "-j" option fails with:
    
      Making all in libjunction
        CC     export-cache.lo
        CC     fedfs.lo
        CC     junction.lo
        CC     locations.lo
        CC     nfs.lo
        CC     xml.lo
      make[3]: *** No rule to make target
     	`../../src/libjunction/libjunction.la',
      needed by `display-junction'.  Stop.
      make[3]: *** Waiting for unfinished jobs....
        CC     display-junction.o
      make[2]: *** [all-recursive] Error 1
      make[1]: *** [all-recursive] Error 1
      make: *** [all] Error 2
      [cel@seurat fedfs-utils]$
    
    Ensure the "display-junction" dependency targets the local
    version of libjunction.a so that make will always build
    the library before building display-junction.
    
    Introduced by commit 07cdb9c40ffc27fbb5fddc3c0357417f73182ddb
    "libjunction: Add a small tool for content of a live junction,"
    Thu Oct 11 15:01:38 2012.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 7e5fec67ece3aef06d3d2e48fab6536b0d712ce8
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Oct 29 13:26:25 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Oct 29 13:26:25 2012 -0400

    nsdbc: Remove default NCE of "o=fedfs"
    
    The man pages for the nsdb-update-nci and nsdb-remove-nci commands
    do not mention a default NCE (in fact, they say that the commands
    fail if no NCE is specified).
    
    The NSDB protocol specification hints that "o=fedfs" is the preferred
    default, but otherwise there's no good reason to choose that as a
    default value.  Remove it.

commit 3aac9ae5d4581c8b809b54ebee353133e2a1baa9
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Oct 29 13:25:38 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Oct 29 13:25:38 2012 -0400

    libnsdb: Use ber_memfree(3) where needed
    
    In nsdb_construct_fsl_dn(), ber_memalloc(3) is used to allocate
    some memory.  ber_memfree(3) should be used to release it.  This
    oversight is probably harmless, because ber_memfree(3) is typically
    a simple wrapper around free(3).
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 06c245805a313e170e4fa9a1a729aae1eca03ab4
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Oct 29 13:24:56 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Oct 29 13:24:56 2012 -0400

    nsdbc: Update nsdb-nces message
    
    "naming context o=fedfs is not a FedFS NCE" is not accurate.
    
    A naming context can be an NCE, but usually the NCE is a descendent
    entry.  Update this message to make better sense.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 8a930de7b52bfd5ade7d576f4d25fc3a84d94572
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Oct 29 13:23:01 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Oct 29 13:23:01 2012 -0400

    Update FedFS RPCL
    
    Pull in RPCL from a pre-release version of revision 12 of the FedFS
    ADMIN protocol draft.  The new RPCL has only minor changes.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit d4131b2873031f30c03f23a209f1c19a20001280
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Oct 29 13:22:35 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Oct 29 13:22:35 2012 -0400

    README: Update IPR disclaimer
    
    Both IPR disclaimers have now been released.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 1a4b6805b054a3100b0674c900e302844fc33593
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Oct 29 13:22:31 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Oct 29 13:22:31 2012 -0400

    mount.fedfs: Update to latest DNS SRV draft
    
    draft-ietf-nfsv4-federated-fs-dns-srv-namespace is now a proposed
    standard with an assigned RFC number of 6641.  This revision changes
    the layout of the DNS SRV record used to locate a FedFS domain.  It
    also changes the standard export pathname of FedFS domain root
    directories on a file server.
    
    Update the mount.fedfs and fedfs-map-nfs4 components and
    accompanying documentation to query new-style FedFS SRV records and
    use new-style export pathnames when mounting a FedFS domain root.
    
    The old DNS SRV record looked like this:
    
      $ORIGIN example.net.
      _nfs4._domainroot._tcp	IN SRV	0 0 2049 nfssrv.example.net.
      _nfs4._write._domainroot._tcp	IN SRV	0 0 2049 nfssrv.example.net.
    
    The new DNS SRV record looks like this:
    
      $ORIGIN example.net.
      _nfs-domainroot._tcp		IN SRV	0 0 2049 nfssrv.example.net.
    
    The old domain root directory export path looked like this:
    
      /.domainroot-example.net
    
    and
    
      /.domainroot-write-example.net
    
    The new domain root directory export path looks like this:
    
      /.domainroot/example.net
    
    Support for separate read-only and read-write domain root
    directories is removed.
    
    NOTE: This change is non-backwards compatible.
    
    The intention is that fedfs-utils-0.9 no longer accesses domain
    roots via old-style FedFS SRV records or via the old export path.
    To concurrently support fedfs-utils-0.8 and earlier, you can
    maintain both the old-style and new-style SRV records and domain
    root directories as long as there are clients that require the
    old-style set up (eg fedfs-utils-0.8 clients).
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 39492f81357a891538ab3868f9bc3af408486862
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Oct 29 13:22:30 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Oct 29 13:22:30 2012 -0400

    Clarify use of term "file server"
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 9d65e91ea95ad1beaffd7b924fb7a096adfc12ae
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Oct 29 13:22:29 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Oct 29 13:22:29 2012 -0400

    fedfs(7): Update and clarify
    
    A collection of clarifications and updates to fedfs(7).
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 8f124f4d3c2c615799a543c0b6268fe0ffb62682
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Oct 29 13:21:11 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Oct 29 13:21:11 2012 -0400

    nsdbc: Add missing documenting comment
    
    Documenting comment for nsdb_list_resolve_and_display() is missing.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 7452e200c64e8bc0164009a1ccccee7fcd698e99
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Oct 29 12:59:16 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Oct 29 12:59:16 2012 -0400

    display-junction: Correct documenting comment for main()
    
    Doxy warnings:
    
    Generating docs for file display-junction.c...
    src/fedfs/fedfs-utils/src/libjunction/display-junction.c:44: warning:
      argument 'pathname' of command @param is not found in the argument
      list of main(int argc, char **argv)
    src/fedfs/fedfs-utils/src/libjunction/display-junction.c:44: warning:
      The following parameters of main(int argc, char **argv) are not
      documented:
      parameter 'argc'
      parameter 'argv'
    
    Looks like that comment was copied from some other function.
    
    Introduced by commit 07cdb9c4 "libjunction: Add a small tool for
    content of a live junction" Thu Oct 11 15:01:38 2012 -0400.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit df3bf5ef8704d3a11484beedc7d615df0a57bb94
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Oct 19 17:01:30 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Oct 19 17:01:30 2012 -0400

    CheckInTests: Add a sparse requirement
    
    Sparse provides some level of sanity checking for new commits,
    so make it a check-in test requirement.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 67950a07a29c34195369f5bab0d6c93c3f134c73
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Oct 19 16:58:53 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Oct 19 16:58:53 2012 -0400

    plug-in: Silence sparse warning
    
    Address the following sparse warning:
    
    nfs-plugin.c:376:70: warning: mixing different enum types
    nfs-plugin.c:376:70:     int enum jp_status  versus
    nfs-plugin.c:376:70:     int enum FedFsStatus
    
    Introduced by commit d9602565 "plugin: Introduce the junction plug-in
    API" January 12, 2012.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit dd16ca8498266c65676f506155f90f35854b6376
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Oct 19 16:56:38 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Oct 19 16:56:38 2012 -0400

    fedfs-map-nfs4: Silence a sparse warning
    
    Address this sparse warning:
    
    fedfs-map-nfs4.c:73:6: warning: symbol 'progname' was not declared. Should
    it be static?
    
    Introduced by commit 4bd89735 "mount: Add automounter program map for
    FedFS" September 3, 2011.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 569b4c8f032476b18a726e4b7b280ca01952b2a3
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Oct 19 16:53:44 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Oct 19 16:53:44 2012 -0400

    mount.fedfs: Silence sparse warnings
    
    Address these sparse warnings:
    
    main.c:92:6: warning: symbol 'progname' was not declared. Should it be
    static?
    main.c:93:5: warning: symbol 'nomtab' was not declared. Should it be
    static?
    main.c:94:5: warning: symbol 'verbose' was not declared. Should it be
    static?
    main.c:95:7: warning: symbol 'readonly' was not declared. Should it be
    static?
    main.c:96:7: warning: symbol 'sloppy' was not declared. Should it be
    static?
    main.c:97:7: warning: symbol 'fake' was not declared. Should it be static?
    main.c:109:22: warning: Using plain integer as NULL pointer
    main.c:110:22: warning: Using plain integer as NULL pointer
    main.c:111:25: warning: Using plain integer as NULL pointer
    main.c:112:25: warning: Using plain integer as NULL pointer
    main.c:113:27: warning: Using plain integer as NULL pointer
    main.c:114:28: warning: Using plain integer as NULL pointer
    main.c:115:20: warning: Using plain integer as NULL pointer
    main.c:116:20: warning: Using plain integer as NULL pointer
    main.c:117:24: warning: Using plain integer as NULL pointer
    main.c:118:25: warning: Using plain integer as NULL pointer
    main.c:119:25: warning: Using plain integer as NULL pointer
    main.c:120:20: warning: Using plain integer as NULL pointer
    
    Introduced by commit 0520ee72 "Initial commit" March 29, 2011.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 134de93df0ce8b8714fed1743e19586d62e8cb5f
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Oct 19 16:49:09 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Oct 19 16:49:09 2012 -0400

    fedfsd: Address sparse warning in rpc.fedfsd
    
    Address this warning:
    
    main.c:74:6: warning: symbol 'fedfsd_usage' was not declared. Should it be
    static?
    
    Introduced by commit 0520ee72 "Initial commit" March 29, 2011.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 3e007d84085736dc0b7b536754add021928bb7ec
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Oct 19 16:46:08 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Oct 19 16:46:08 2012 -0400

    libnsdb: Clean up some sparse warnings
    
    Address the following sparse warnings in libnsdb.so:
    
    nsdb.c:76:6: warning: symbol 'fedfs_base_dirname' was not declared. Should
    it be static?
    nsdb.c:87:6: warning: symbol 'fedfs_nsdbcerts_dirname' was not declared.
    Should it be static?
    nsdb.c:231:70: warning: Using plain integer as NULL pointer
    
    sqlite.c:161:69: warning: Using plain integer as NULL pointer
    sqlite.c:184:60: warning: Using plain integer as NULL pointer
    sqlite.c:206:62: warning: Using plain integer as NULL pointer
    
    Introduced by commit 0520ee72 "Initial commit" March 29, 2011.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 28d3eb0dc41574f2c6936076a6fe88522bab698c
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Oct 19 16:43:02 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Oct 19 16:43:02 2012 -0400

    Deprecate the --bindpw command line option
    
    Secure Coding Practice requires that clear-text passwords are never
    allowed to be specified on the command line.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 44b889e1123d37b461242d8386c7de24a01ba83d
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Oct 19 16:39:15 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Oct 19 16:39:15 2012 -0400

    Deprecate the FEDFS_NSDB_PASSWD environment variable
    
    Secure Coding Practice requires that clear-text passwords never be
    stored in environment variables.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 1fff7865f72589c1fae8a134545ba9d9f86b0a7f
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Oct 19 16:33:32 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Oct 19 16:33:32 2012 -0400

    fedfsd: Change the working directory to the default state dir
    
    Follow conventional practice of other RPC service daemons.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 5fe6ea32324d3feace181e7c116a4e5ed3118d7c
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Oct 19 16:30:39 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Oct 19 16:30:39 2012 -0400

    libnsdb: Remove references to fedfsd from the NSDB parameter database code
    
    Clean up: The state dir is no longer used only by fedfsd.
    
    Introduced by commit 0520ee72 "Initial commit" March 29, 2011.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 2ce62024c4f14fcd18d236854828babdaba039b3
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Oct 19 16:26:04 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Oct 19 16:26:04 2012 -0400

    fedfsd: Use correct naming convention for the getopts variables
    
    Clean up incorrect variable naming introduced by commit 0520ee72
    "Initial commit" March 29, 2011.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 07cdb9c40ffc27fbb5fddc3c0357417f73182ddb
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Oct 11 15:01:38 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Oct 11 15:01:38 2012 -0400

    libjunction: Add a small tool for content of a live junction
    
    Introduce the "display-junction" command, which takes a pathname
    and displays the contents of the junction XML.
    
    This is a debugging tool, not an installed program, so no man page
    is provided.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 3ff7af8772af9f1f4d8cd2945f68cebcdfe64ef7
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Oct 11 15:00:53 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Oct 11 15:00:53 2012 -0400

    libjunction: Save directory mode in junction XML
    
    Today, when we convert a directory into a junction, we save the
    directory's mode bits in an extended attribute, and then set them to
    a known weird value, which the kernel can detect.
    
    As an experiment, save the directory mode in the junction XML as
    well.  If this works out, we can avoid using a separate extended
    attribute for the saved mode.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit b01b24fdf8a960c0909a621be46aef3e9af46f63
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Oct 11 14:59:50 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Oct 11 14:59:50 2012 -0400

    libjunction: Deprecate trusted.junction.type xattr
    
    Since fedfs-utils 0.8, we don't read the contents of this extended
    attribute, and since Linux kernel 3.0, we no longer even check for the
    existence of this xattr.  It's no longer needed, and support for it
    can be removed.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 76acbc4ba47fe3dcfbee94ec9a592b89cd2b3e49
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Oct 11 14:59:35 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Oct 11 14:59:35 2012 -0400

    nfsref: Type-4 UUIDs now preferred
    
    Since revision 13 of the NSDB protocol draft, random variant (type 4)
    UUIDs are recommended for FSN and FSL UUIDs.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit d4550c621ad80a32d834a2e4e558bd65134b303a
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Oct 11 14:58:33 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Oct 11 14:58:33 2012 -0400

    nfsref: "nfsref remove" should remove FSN found in junction
    
    I have been told that, when removing a FedFS junction, the Solaris
    version of the nfsref command deletes the FSN it finds in a
    junction.
    
    It is assumed that in general, each junction created by the nfsref
    command will refer to its own FSN (ie, FSNs will not be shared by
    multiple nfsref- created junctions).
    
    Change the "nfsref remove" subcommand to work the way nfsref
    currently works on Solaris.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 3d6bafea00384e5fbcdf27ac543b55b9d716b363
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Oct 11 14:57:30 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Oct 11 14:57:30 2012 -0400

    nfsref: Create junction object if none exists
    
    At Connectathon 2012, it was requested that the Linux "nfsref add"
    subcommand should create a junction object if one doesn't already
    exist.
    
    I had been told that the Solaris version of nfsref does not create
    a junction object, it only adds junction metadata to an existing
    object.  Experimentation with svn_134 shows this assumption is
    incorrect.
    
    rpc.fedfsd already creates a missing object during the
    FEDFS_CREATE_JUNCTION operation (also to echo how Solaris is said
    to operate).
    
    Change the "nfsref add" subcommand to work the way Linux maintainers
    prefer, and the way nfsref currently works on Solaris.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit fb7e8d39970902d8423a84403aed3801a64b6df3
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Oct 11 14:55:58 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Oct 11 14:55:58 2012 -0400

    Replace URLs pointing to project web site
    
    The project's web site has been moved to http://wiki.linux-nfs.org.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit c5cddcbb9aa38d6ff41aa0265674c9eb78951b27
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Oct 11 14:55:56 2012 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Oct 11 14:55:56 2012 -0400

    configure.ac: Kick off fedfs-utils-0.9 development
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 7e80c6c9de038f0e53bbff2bae133afe2c2f0402
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Feb 3 12:34:36 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Feb 3 12:34:36 2012 -0500

    Release 0.8.0
    
      o Non-backward compatible: New XML-based junction implementation
      o Non-backward compatible: represent pathnames as arrays in more places
      o "nfsref" command for managing local junctions
      o Support for NFS basic junctions
      o nfsref and rpc.fedfsd flush kernel's export cache
      o New nsdb_create_fsls_s() API
      o Replace dash switches with positional parameters
      o Replace "resolve-junction" command with plug-in library
      o Sample init scripts now included under contrib/
      o Internal static libraries converted to dynamic libraries
      o Refinements to the build environment, including silent building
      o Many refinements to man pages
      o Many bugs addressed; consult Changelog for details
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit f5779fa362f3dfcfc811014deab7d64695291fb8
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Jan 20 16:07:48 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jan 20 16:07:48 2012 -0500

    CheckInTests: Bring up to date with recent changes
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 6c86d48718ba8fa8dc47af73d655138c12a83156
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Jan 20 16:07:31 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jan 20 16:07:31 2012 -0500

    README: Add patent disclaimer language to README
    
    Last year, Microsoft made a formal IPR for technology described in
    the FedFS NSDB draft.  At IETF 81, NetApp formally announced the
    existence of a patent which covers FedFS-related technology.
    
    Split out a new section for IP disclaimers in our README file, and
    document these patents.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 56c229b12205cffc81c0c9943749dee5f51ee0f2
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Jan 20 16:06:42 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jan 20 16:06:42 2012 -0500

    README: Bring README up to date with recent changes
    
    Introduce contact information at the top.  Correct text that describes
    features that have changed over the last couple of releases.  Add a
    clear warning about security exposures opened by the current code
    base.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit a7587944b6e580fa6916515f0547b7737ee60aaa
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Jan 20 15:52:50 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jan 20 15:52:50 2012 -0500

    build: "make distclean" should remove distribution tarball
    
    "make distcheck" leaves a distribution tarball.  "make distclean"
    should remove it, as it is generated by the build and not
    distributed.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 3d8289bce13afacdfd7f7384717b8b32bd49ac27
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Jan 20 15:45:27 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jan 20 15:45:27 2012 -0500

    nsdbc: Exit with FEDFS_ERR_INVAL if default settings don't exist
    
    Commit afc64d55 changed the NSDB client commands to exit with a FedFS
    status code.
    
    One case that was missed was when the commands can't find the value of
    the LDAP bind DN or NCE from the command line, from environment
    variables, nor from the local NSDB connection parameter database.  In
    this case, the commands were exiting with FEDFS_OK.
    
    Change these commands to instead exit with FEDFS_ERR_INVAL (an invalid
    parameter was provided) in this case.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 76a8f2e777421dc565aab20cc55118f1e8d76e88
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Jan 20 15:29:02 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Jan 20 15:29:02 2012 -0500

    resolve-junction: Remove the resolve-junction command
    
    Mountd now uses a junction plug-in to resolve junctions.  The
    resolve-junction command, which mountd forked to resolve a junction,
    is therefore deprecated and removed.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit d960256574a9aa02828c38b5ebc79c77793cc607
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Jan 12 11:36:00 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 12 11:36:00 2012 -0500

    plugin: Introduce the junction plug-in API
    
    Define an external API/ABI to allow applications to access NFS
    location data stored in junctions.  This interface is specific to NFS
    to continue to provide strong data and function type checking.  Other
    file system protocols will need to define their own API.
    
    A junction plug-in implementation is also provided.
    
    Note that the interface currently returns a flat POSIX pathname rather
    than an array of components.  The only consumer of this interface so
    far is mountd, who is not currently capable of passing an array of
    components to the kernel.  To keep things simple for now, I'm going to
    handle pathname mangling inside the plug-in rather than in mountd.
    
    At some later point, a second, richer, "get location" method can be
    added that gives access to all of the fields in each location record,
    to support fs_locations_info4.  At that time support for pathname
    component arrays can be introduced.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 538e6282ff68e838763bc30aeeae41c5ec309ca9
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Jan 12 10:56:04 2012 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Jan 12 10:56:04 2012 -0500

    nfsref: Introduce the "nfsref" command
    
    Introduce an administrative command line interface for creating local
    junctions.  This is modeled after the Solaris utility of the same
    name.
    
    The interface provides simple junction management functionality, but
    does not expose a complete set of junction administrative tools.  For
    example, creating a FedFS junction always creates a fresh FSN and FSL
    records.  To share these records among multiple junctions requires a
    more sophisticated administrative interface.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 4f681570488cc6fd572eea4cfdcef7e02527b704
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Dec 22 15:40:01 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Dec 22 15:40:01 2011 -0500

    libjunction: Add support for nfs-basic junctions
    
    Now that we have some example XML support in libjunction, we can begin
    to sketch in support for NFS junctions.  Instead of storing a FedFS
    fileset name which is resolved to a set of fileset locations, an NFS
    junction stores the actual set of fileset locations.
    
    The XML for an NFS junction looks something like this:
    
      <?xml version="1.0" encoding="UTF-8"?>
      <junction>
        <fileset>
    
          <location>
            <host>fileserver.example.net</host>
            <path>
              <component>foo</component>
              <component>bar</component>
              <component>baz</component>
            </path>
            <version major="4" minor="0" />
            <currency>-1</currency>
            <genflags writable="false" going="false" split="true" />
            <transflags rdma="true" />
            <class simul="0"
                   handle="0"
                   fileid="0"
                   writever="0"
                   change="0"
                   readdir="0" />
            <read rank="0" order="0" />
            <write rank="0" order="0">
            <flags varsub="false" />
            <validfor>0</validfor>
          </location>
    
          ....
    
        </fileset>
      </junction>
    
    Basically the <location> element is a FedFS NFS fileset location
    record, expressed in XML.  A list of these is parsed out of a junction
    XML document and then presented to, say, mountd.
    
    Although NFS supports both fs_locations and fs_locations_info, there
    is only one type of NFS fileset location record.  This is exactly the
    same kind of information mountd would get if it resolved a FedFS FSN.
    Non-3530 information can be discarded to construct a regular
    fs_locations in response to an NFSv4.0 client.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit f519d668d6e77f635b6de05e9d0f1f6b47b6debf
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Dec 22 15:08:31 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Dec 22 15:08:31 2011 -0500

    libjunction: Store junctions in XML format
    
    Until now, junctions have had to contain just a few data items.  Easy.
    
    But soon we will want support for "NFS junctions," which will store
    NFS fs_locations4 and fs_locations_info4 data right in the local file
    system.  NFS locations data is a complex data type, with arrays of
    strings, integers, and booleans, in records of variable size.  We need
    something richer to store junction data on disk.  Enter XML.
    
    The XML for a FedFS junction looks something like this:
    
      <?xml version="1.0" encoding="UTF-8"?>
      <junction>
        <fileset>
          <name fsnuuid="d2b09895-98ff-415e-ac73-565fad7b429b"
                nsdbname="nsdb.example.net"
                nsdbport="389" />
        </fileset>
      </junction>
    
    It can be read and edited by any text editor that can access an
    extended attribute.  Junction XML can easily be extended at any time
    by adding new child elements of <junction> and <fileset>.
    
    Currently there is a separate extended attribute that stores the
    junction type, and FedFS junction data is then spread across several
    additional extended attributes.  Thanks to XML, complex junction data
    can be flattened and stored in a single extended attribute.  That way
    junction data for multiple file system types can be stored in one
    object, each junction type in its own extended attribute.
    
    Our junctions will contain _either_ a FedFS fileset name, _or_ a
    set of fileset locations.  We can store both in the same attribute,
    as it makes no sense to have both types of junction data present
    in the same junction.  Let's use an attribute called
    trusted.junction.nfs .
    
    This commit makes an incompatible change to on-disk junctions.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit d995687db9899dbaaf8a717ca9795e14d4a84741
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Dec 22 13:29:02 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Dec 22 13:29:02 2011 -0500

    libjunction: Don't treat opaque byte array as NUL-terminated
    
    junction_get_xattr() returns an opaque byte array, but
    junction_restore_mode() treats it like a NUL-terminated string.
    Bad function, no biscuit.
    
    Fork off a second API that can return a NUL-terminated string.
    Callers will have to take care to choose the correct API.
    
    Introduced in commit 0520ee72: "Initial commit," (March 29, 2011).
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit c8ec98256827f21cbfe07fdb4ed4b5ee23d5fbff
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Dec 22 13:29:01 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Dec 22 13:29:01 2011 -0500

    libjunction: Factor FedFS-specific code into a separate file
    
    In preparation for adding support for other types of junctions, split
    the main FedFS-specific junction routines into a separate source file
    under src/libjunction/ .
    
    Introduce fresh APIs for local junction management tasks that
    encapsulate the activities of managing the junction data and the
    junction object's mode bits.
    
    The common junction utilities should no longer be invoked outside of
    libjunction.  Instead, upper layers should invoke the type-specific
    APIs.  We're headed towards a world where callers like rpc.fedfsd
    will not care about the mode bit settings or what extended
    attributes are used to represent junctions.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 1b546de21e229359b85d296c7dd2f6fdc45feccb
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Dec 22 13:29:00 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Dec 22 13:29:00 2011 -0500

    libjunction: Introduce new APIs for creating and deleting FedFS junctions
    
    Introduce fresh APIs that encapsulate the activities of managing the
    junction data and the junction object's mode bits.
    
    The common junction utility functions should no longer be invoked
    outside of libjunction.  Instead, upper layers should invoke the
    type-specific APIs we're introducing in this patch.  We're headed
    towards a world where callers like rpc.fedfsd will not care about the
    mode bit settings or what extended attributes are used to represent
    junctions.
    
    Note that fedfs_add_junction() behaves a little differently than the
    previous code.  It updates the mode bits _after_ it has successfully
    created the mode xattr.  This should prevent the kernel from
    generating an upcall on a junction that is partially formed.
    
    And, fedfs_add_junction() is more careful to clean up if something
    fails.
    
    This patch also addresses an open file descriptor leak in
    fedfs_save_mode().
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 0f080b8ccc6e6ffe862158aec028b475643e05a2
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Dec 22 13:28:56 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Dec 22 13:28:56 2011 -0500

    fedfsd: Flush kernel's exports cache after junction operations
    
    We want the effects of junction operations to appear to NFS clients
    immediately.  But NFSD's export cache will hang onto old junction
    information for a time.
    
    All we can do is flush that cache after any operation that changes a
    junction.  FedFS ADMIN clients can explicitly request cache flushing
    by using certain parameters to the FEDFS_LOOKUP_JUNCTION operation.
    
    Introduce an API to libjunction that can request an export cache
    flush.  Call that function in appropriate places within fedfsd.  This
    is cribbed from the exportfs command in nfs-utils.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 812e852477f4836436908c094dd45a9c9569d1ae
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Dec 22 13:12:34 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Dec 22 13:12:34 2011 -0500

    Makefile: Enable building shared libraries
    
    The new junction plug-ins will be shared libraries.  You can't build
    a shared library from static libraries, so all of the libraries we
    have in fedfs-utils need to be converted to shared libraries.
    
    The use of "-fPIC" as a flag on $(LD) is incorrect, so I moved it to
    $(CFLAGS) where needed.  "-fPIE" is appropriate for finished
    executables.
    
    As a final touch I converted all of the existing commands to grab the
    shared version instead of the static version of each library.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 57f6375809f247d620bed5b07674b85b47ec22e5
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 21 17:06:06 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 21 17:06:06 2011 -0500

    fedfsd: Use static functions in svc.c
    
    Clean up: make some internal-use-only functions static.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit dbfb6b893e48e42fabbb392365ad2f1b1d36af05
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 21 16:55:48 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 21 16:55:48 2011 -0500

    fedfsd: FedFsPathName components are not NUL-terminated
    
    Ensure the pathname walking logic is careful about not shooting past
    the end of component names.  FedFS pathname components are not
    NUL-terminated.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 734234287e7005ec3a594155d99f10870eb1ed39
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 21 16:47:01 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 21 16:47:01 2011 -0500

    libnsdb: Remove unused FedFsPathName helper utilities
    
    Now that the command line tools have been converted to use the new
    path_array APIs, the original FedFsPathName helpers are unused and
    can be removed.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 37b8eac3c5d60f0d8c7fc832a2b6e41d139caf2e
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 21 16:42:07 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 21 16:42:07 2011 -0500

    Use arrays to represent pathnames in struct fedfs_fsl
    
    Since the beginning, I've tried to stick with representing local
    pathnames using a C string, and converting to the array form only when
    I need to transmit the pathname off-system.  That seemed more natural
    for operating on Linux, whose VFS is POSIX-style.
    
    However, if we want to allow creation of junctions that point to
    servers that don't necessarily use '/' as the pathname component
    separator, we will need a more general way to represent pathnames in
    struct fedfs_fsl.
    
    That general way to represent pathnames is as an array of component
    character strings.  This is, after all, what is done for fs_locations
    in NFS, and is how pathnames are stored and passed in FedFS.
    
    Thus, for example, to allow callers full expression of the FSL data
    type, a plug-in API would express pathnames using an array of
    components instead of a simple string containing slashes.
    
    Aside from exposing the richer fs_locations data structure to FedFS
    callers, this change moves an important part of pathname resolution
    policy out of libnsdb and into callers.  It should also provide an
    opportunity for stronger and more consistent checks on incoming
    pathnames.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 2d420fb29c77d358792d55c749c11799b251b356
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 21 16:29:42 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 21 16:29:42 2011 -0500

    libnsdb: Use path array for fedfsNfsPath attribute in nsdb_update_fsl_s()
    
    Since the beginning, I've tried to stick with representing local
    pathnames using a C string, and converting to the array form only when
    I need to transmit the pathname off-system.  That seemed more natural
    for operating on Linux, whose VFS is POSIX-style.
    
    However, if we want to allow creation of junctions that point to
    servers that don't necessarily use '/' as the pathname component
    separator, we will need a more general way to represent pathnames in
    struct fedfs_fsl and friends.
    
    That general way to represent pathnames is as an array of component
    character strings.  This is, after all, what is done for fs_locations
    in NFS.
    
    Change the nsdb_update_fsl_s() API to expect an array of components
    when asked to change the fedfsNfsPath attribute of an NFS FSL record.
    
    Aside from exposing the richer fs_locations data structure to FedFS
    callers, this change moves an important part of pathname resolution
    policy out of libnsdb and into callers.  It should also provide an
    opportunity for stronger and more consistent checks on incoming
    pathnames.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 6d1c94fbbe1e90321c277106e1eb8ab3f700865e
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 21 16:29:25 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 21 16:29:25 2011 -0500

    fedfsc: Use new path_array APIs in the FedFS ADMIN clients
    
    Since the beginning, I've tried to stick with representing local
    pathnames using a C string, and converting to the array form only when
    I need to transmit the pathname off-system.  That seemed more natural
    for operating on Linux, whose VFS is POSIX-style.
    
    I've introduced a new pathname API based on arrays of components.
    Convert the FedFS ADMIN clients to use this new API when dealing with
    input pathnames.
    
    This change moves an important part of pathname resolution policy out
    of libnsdb and into callers.  It should also provide an opportunity
    for stronger and more consistent checks on incoming pathnames.
    
    There shouldn't be any change in behavior with this patch.  Someday,
    though, we may want to expand the command line interface of these
    clients (or, build new clients) that allow more precise specification
    of the pathname arguments.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit e2800750f4bbb033e1ab9b4937139879444b7576
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 21 15:42:21 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 21 15:42:21 2011 -0500

    libnsdb: Introduce new path_array utility functions
    
    Since the beginning, I've tried to stick with representing local
    pathnames using a C string, and converting to the array form only when
    I need to transmit the pathname off-system.  That seemed more natural
    for operating on Linux, whose VFS is POSIX-style.
    
    However, if we want to allow creation of junctions that point to
    servers that don't necessarily use '/' as the pathname component
    separator, we will need a more general way to represent pathnames in
    struct fedfs_fsl and in other places.
    
    This commit adds pathname parsing functions in src/libnsdb/path.c
    that can handle a new pathname type, which is an array of character
    pointers.  Each pointer is to a single component of the pathname.
    
    This data structure parallels FedFsPathName and the equivalent
    data structures in NFS's fs_locations4 and fs_locations_info4.
    
    Aside from exposing the richer fs_locations data structure to FedFS
    callers, this change moves an important part of pathname resolution
    policy out of libnsdb and into callers.  It should also provide an
    opportunity for stronger and more consistent checks on incoming
    pathnames.
    
    During testing it was discovered that the old pathname parsing logic
    is full of bugs, and that these new routines may not be completely
    compatible.  This may mean that reading some existing FSLs may result
    in errors, and therefore they must be replaced.  However, the new
    routines are more likely to interoperate with other FedFS
    implementations.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 3ff2d6d8afcb9af1b38703d9d9ee02c6ee0504fe
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 21 15:30:41 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 21 15:30:41 2011 -0500

    libpath: Merge libpath.a into libnsdb.a
    
    The original idea of having a separate libnsdb.a and libpath.a was
    to not link libpath.a where it wasn't being used.
    
    However, all of the path functions are called "nsdb_something" and the
    whole point of the path XDR functions is to store pathnames in FSL
    records, which is entirely an NSDB construct.
    
    What's more, keeping these separate has meant no end of linking
    headaches over the months due to cross dependencies between libpath
    and libnsdb.  So these two things go together: It's pretty hard to use
    libpath.a without libnsdb.a
    
    Let's make things simpler and just merge libpath.a back into
    libnsdb.a.  It's just a single source file.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 5cc4514d8156b743050b00c9a43b8e745413302d
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 21 15:25:03 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 21 15:25:03 2011 -0500

    libnsdb: Use correct LDAP attribute name to set FslPort
    
    After using nsdb_create_fsls_s() to create an FSL record, the
    fedfsNsdbPort field contained the value for the fedfsFslPort
    field.  This was never exposed before because the nsdb-create_fsl
    tool sets both attributes to zero.
    
    Introduced by commit 0520ee72: "Initial commit," (March 29, 2011).
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 5bdc12f0045d33c1cecc966933cebed11f788b7f
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 21 15:25:03 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 21 15:25:03 2011 -0500

    libnsdb: Update nsdb_create_fsl_s() API
    
    nsdb_create_fsl_s() needs some serious updating.
    
    First, it doesn't make any sense from FedFS's point of view to create
    a fedfsFsl record which is not for a specific underlying file system
    type.  Remove the ability to create a "fedfsFsl only" record.
    
    Next, the NFS FSL records it does create now contain just default
    values.  It was expected that then an administrator would come back to
    the new FSL record with nsdb-update-fsl to adjust the settings as
    needed.
    
    But this is awkward when setting up lots of records with
    fs_locations_info data.  So, instead of creating an NFS FSL with
    default values, let's have this API take a fully initialized struct
    fedfs_fsl.  The caller can then specify all of the settings at the
    time the record is created.
    
    Finally, struct fedfs_fsl objects can be part of a list.  Thanks to
    the previous change, we can now pass a list of these objects to
    nsdb_create_fsl_s() in order to set up multiple FSL records in a
    single call.  Or a list containing a single fedfs_fsl can be passed
    in so it will work just as we do today.
    
    Because of this final change, rename the function nsdb_create_fsls_s().
    
    For now, nsdb_create_fsls_s() will not handle setting up the
    fedfsAnnotations and fedfsDescr attributes.  That will need a little
    more research.  The original API didn't change these attributes
    either, so this is not a regression.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 18201d832bdf09c0ce707a466d86a8c0697dd7b4
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 21 15:25:02 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 21 15:25:02 2011 -0500

    libnsdb: struct fedfs_fsl object management
    
    Expose a richer API for managing struct fedfs_fsl objects.  Today
    these are returned by the FSN resolution API, thus they are created
    only inside the library, on behalf of nsdb_resolve_fsn_s().
    
    But we also want to use them to allow callers outside of libnsdb to
    pass in a full set of locations information when creating FSL records.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 062c44581dbda5f84aaf6b331fe08bbf53a2dc5d
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Dec 21 15:25:01 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 21 15:25:01 2011 -0500

    fedfs.h: Narrow the range of field types in struct fedfs_nfs_fsl
    
    The type of some of the fields in struct fedfs_nfs_fsl allow the
    expression of values outside the ranges specified in the NSDB
    protocol draft.
    
    These fields are supposed to match up with the type ranges in NFS's
    fs_locations_info4 data structure.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 715a4c2ce891c764d79834fb6081c6f1cafcacfc
Author:     Jim Meyering <meyering@redhat.com>
AuthorDate: Wed Dec 7 15:33:00 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 7 15:33:00 2011 -0500

    fedfsd: don't double-free upon ENOMEM
    
    * src/fedfsd/svc.c (fedfsd_pathwalk): If nsdb_normalize_path were
    to return NULL, "result" would be freed once by the very next stmt,
    and then again in the following "if"-block.  Remove the latter.
    Spotted by coverity.
    
    Introduced by commit 0520ee72: "Initial commit," (March 29, 2011).
    
    Signed-off-by: Jim Meyering <meyering@redhat.com>

commit a9c853b50eb26fd57a9a5ecbf40b75f202872bf8
Author:     Jim Meyering <meyering@redhat.com>
AuthorDate: Wed Dec 7 15:33:00 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 7 15:33:00 2011 -0500

    libsi: don't leak a struct srvinfo upon failed strdup
    
    * src/libsi/getsrvinfo.c (getsrvinfo): Free "new".
    Spotted by coverity.
    
    Introduced in commit 0520ee72: "Initial commit," (March 29, 2011).
    
    Signed-off-by: Jim Meyering <meyering@redhat.com>

commit c37c03c0d3436b6f75231309d4e25e2411f20370
Author:     Jim Meyering <meyering@redhat.com>
AuthorDate: Wed Dec 7 15:32:59 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 7 15:32:59 2011 -0500

    libnsdb: don't leak a read buffer upon certfile open failure
    
    * src/libnsdb/nsdb.c (nsdb_read_certfile): Free "buf" also
    on the failed-open path.  Spotted by coverity.
    
    Introduced by commit 0520ee72: "Initial commit," (March 29, 2011).
    
    Signed-off-by: Jim Meyering <meyering@redhat.com>

commit c44b64206ae9656f27e3a09c62a9d923c76e75c1
Author:     Jim Meyering <meyering@redhat.com>
AuthorDate: Wed Dec 7 15:32:59 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 7 15:32:59 2011 -0500

    libnsdb: don't leak upon LDAP parse failure
    
    * src/libnsdb/fileserver.c (nsdb_resolve_fsn_parse_entry): When we
    fail to parse an LDAP entry, free just-allocated new->fl_dn and new.
    Spotted by coverity.
    
    Introduced by commit 0520ee72: "Initial commit," (March 29, 2011).
    
    Signed-off-by: Jim Meyering <meyering@redhat.com>

commit 3adf422bfd8bd30a663576d88539c4b9ca6fbc55
Author:     Jim Meyering <meyering@redhat.com>
AuthorDate: Wed Dec 7 15:32:59 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 7 15:32:59 2011 -0500

    mount: don't make -s (sloppy) imply -v (verbose)
    
    * src/mount/main.c (main): Add a break; stmt between case 's': and
    case 'v':.  Spotted by coverity.
    Bug introduced with the initial commit of this file: 0520ee72.
    
    Signed-off-by: Jim Meyering <meyering@redhat.com>

commit 8c97ed727dfe93af72e66a45f1620e57d1b090c4
Author:     Jim Meyering <meyering@redhat.com>
AuthorDate: Wed Dec 7 15:32:58 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 7 15:32:58 2011 -0500

    fedfsd: don't return freed memory through **pathname parameter, ...
    
    even though upon error it will not be used.
    * src/fedfsd/svc.c (fedfsd_pathwalk): On an error path, don't
    set *pathname at all, and certainly not to a just-freed pointer.
    Spotted by coverity.
    
    Introduced by commit 0520ee72: "Initial commit," (March 29, 2011).
    
    Signed-off-by: Jim Meyering <meyering@redhat.com>

commit 422300f929e16944c53bb502bbee8c47729bc6f4
Author:     Jim Meyering <meyering@redhat.com>
AuthorDate: Wed Dec 7 15:32:58 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 7 15:32:58 2011 -0500

    mount: avoid two-byte heap write overrun
    
    * src/mount/main.c (try_mount): Correct off-by-two under-allocation.
    Rather than allocating space for strlen(S)+1, it allocates space
    for strlen(S+1), which is shorter by two.  Spotted by coverity.
    
    Introduced by commit bfe6aa7f: "mount.fedfs: Overhaul mount.fedfs
    CLI," (April 1, 2011).
    
    Signed-off-by: Jim Meyering <meyering@redhat.com>

commit 5246b1c784a0c72f8be469d96c1f6b29a86cfe00
Author:     Jim Meyering <jim@meyering.net>
AuthorDate: Wed Dec 7 15:32:57 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Dec 7 15:32:57 2011 -0500

    libnsdb: do not read beyond end of malloc'd buffer; do NUL-terminate
    
    nsdb_sanitize_annotation backslash-escapes its input string into
    malloc'd storage.  Worst case is that is has to escape every input
    byte.  That means allocating 2*N bytes for the actual data, and
    one more for the trailing NUL byte.  That last byte was not allocated.
    At first, I thought there must be a buffer overrun.  But no, because
    there was a second problem: the trailing NUL byte was never written.
    If it worked it all, it worked by accident, because the unused part
    of the malloc'd buffer happened to be zero-filled.
    * src/libnsdb/annotation.c (nsdb_sanitize_annotation): Correct
    two problems:
    1) allocated too little memory, by one byte
    2) did not NUL-terminate the output buffer
    Callers thinking they have a NUL-terminated string would segfault if
    there happened to be many non-NUL bytes after the sanitized string.
    Found by inspection.
    
    Introduced by commit 0520ee72: "Initial commit," (March 29, 2011).
    
    Signed-off-by: Jim Meyering <meyering@redhat.com>
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 37dc2e72c0af2be2abfe1e1c53ec223b7969aeb6
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Dec 1 10:05:29 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Dec 1 10:05:29 2011 -0500

    man: Update remaining FedFS ADMIN client man pages
    
    Update the man pages for the fedfs-*-params and fedfs-null commands.
    
      o  Various grammar and usage updates
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 01db009994e0599e878f4b29af918756e31f7640
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Nov 28 12:10:40 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Nov 28 12:10:40 2011 -0500

    fedfsc: Specify manadatory arguments as positional parameters (fedfs-*-replication)
    
    We're trying to keep the Solaris and Linux administrative interfaces
    roughly the same, to make it easy for admins to use either one without
    separate learning curves.
    
    Rob Thurlow mentions that Solaris user interface guidelines require
    that mandatory command line options must be specified as positional
    parameters rather than by using dash switches.  The only reason I used
    dash switches for all the options was sheer laziness.
    
    This commit updates the FedFS ADMIN client tools that are concerned
    with remote replication management.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 54713f0416e67ce87b15471c2ec451bf0489f3cb
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Nov 28 12:04:47 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Nov 28 12:04:47 2011 -0500

    fedfsc: Specify manadatory arguments as positional parameters (fedfs-*-junction)
    
    We're trying to keep the Solaris and Linux administrative interfaces
    roughly the same, to make it easy for admins to use either one without
    separate learning curves.
    
    Rob Thurlow mentions that Solaris user interface guidelines require
    that mandatory command line options must be specified as positional
    parameters rather than by using dash switches.  The only reason I used
    dash switches for all the options was sheer laziness.
    
    This commit updates the FedFS ADMIN client tools that are concerned
    with remote junction management.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 232af21dc59ed3b88e94f10976b72d85140437e7
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Nov 28 11:56:33 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Nov 28 11:56:33 2011 -0500

    nsdbc: Specify manadatory arguments as positional parameters (nsdb-*-nci)
    
    We're trying to keep the Solaris and Linux administrative interfaces
    roughly the same, to make it easy for admins to use either one without
    separate learning curves.
    
    Rob Thurlow mentions that Solaris user interface guidelines require
    that mandatory command line options must be specified as positional
    parameters rather than by using dash switches.  The only reason I used
    dash switches for all the options was sheer laziness.
    
    This commit updates the NSDB client tools that are concerned with NCE
    records.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 04e2508557766ca65d684f82dbbc0d1c1a833a9f
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Nov 28 11:50:55 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Nov 28 11:50:55 2011 -0500

    nsdbc: Specify manadatory arguments as positional parameters (nsdb-*-fsl)
    
    We're trying to keep the Solaris and Linux administrative interfaces
    roughly the same, to make it easy for admins to use either one without
    separate learning curves.
    
    Rob Thurlow mentions that Solaris user interface guidelines require
    that mandatory command line options must be specified as positional
    parameters rather than by using dash switches.  The only reason I used
    dash switches for all the options was sheer laziness.
    
    This commit updates the NSDB client tools that are concerned with FSL
    records.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 7e9ee6883ec49592b0c32c5684d62a0e5d16277f
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Nov 28 11:44:34 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Nov 28 11:44:34 2011 -0500

    nsdbc: Specify manadatory arguments as positional parameters (nsdb-*-fsn)
    
    We're trying to keep the Solaris and Linux administrative interfaces
    roughly the same, to make it easy for admins to use either one without
    separate learning curves.
    
    Rob Thurlow mentions that Solaris user interface guidelines require
    that mandatory command line options must be specified as positional
    parameters rather than by using dash switches.  The only reason I used
    dash switches for all the options was sheer laziness.
    
    This commit updates the NSDB client tools that are concerned with FSN
    records.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 95b0204ca11e33cdccd1582675afa49707398378
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Nov 28 11:38:25 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Nov 28 11:38:25 2011 -0500

    man: nsdb-list and nsdb-nces man page updates
    
    Update the man pages for the nsdb-list and nsdb-nces commands:
    
      o  "entry" -> "FedFS record"
      o  Use long option names throughout
      o  Various grammar and usage updates
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit d079707a87d6261c866945416ecbc264ce3eb261
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Nov 28 11:31:37 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Nov 28 11:31:37 2011 -0500

    nsdbc: Specify manadatory arguments as positional parameters (nsdb-annotate)
    
    We're trying to keep the Solaris and Linux administrative interfaces
    roughly the same, to make it easy for admins to use either one without
    separate learning curves.
    
    Rob Thurlow mentions that Solaris user interface guidelines require
    that mandatory command line options must be specified as positional
    parameters rather than by using dash switches.  The only reason I used
    dash switches for all the options was sheer laziness.
    
    This commit updates nsdb-annotate and nsdb-describe.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 334b31b8734a71dad5cc4c88c9ff41df879325d2
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Nov 28 11:31:11 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Nov 28 11:31:11 2011 -0500

    build: Add CLEANFILES targets to doc/ldap/Makefile.am
    
    This common section is missing from doc/ldap/Makefile.am.  Using
    "make distclean" should remove doc/ldap/Makefile.in .
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 7946afd579e0e6d6c3a6a7ce94ca5ac7942caaed
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Nov 10 12:17:44 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Nov 10 12:17:44 2011 -0500

    libnsdb: Rename functions in sqlite3.c
    
    Clean up: The functions in src/libnsdb/sqlite3.c are part of libnsdb.
    By convention, functions in this library are named "nsdb_foo".  Rename
    the functions to fit the convention.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit ce0e4b3287be5787652e4568f2362b5ee44879a0
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Nov 10 12:17:42 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Nov 10 12:17:42 2011 -0500

    libnsdb: Eliminate nsdb_create_basedir()
    
    By having nsdbparams retain cap_dac_override=ep, we can create the
    state directory after dropping privileges, rather than before.  This
    gives better error reporting when fedfsd or nsdbparams are not run as
    root, and it also automatically creates the directory with the correct
    owner and group (the extra passwd look-up and chown(2) is
    unnecessary).
    
    A nice side effect is that the state directory can now be created as
    needed right in nsdb_init_database() rather than having a separate
    public function to do it.  Thus nsdb_create_basedir() is no longer
    needed and can be removed.
    
    Note that the new behavior is slightly different than the old:
    nsdb_create_basedir() used to use FEDFS_USER always.  Now the
    directory will get whatever uid and gid might be specified on the
    fedfsd or nsdbparams command line.  This makes the --uid and --gid
    options behave closer to user expectations.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 6244ea74ac1ac095a8c103b62ee453e12763f60f
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Nov 10 12:17:40 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Nov 10 12:17:40 2011 -0500

    nsdbparams: Ping only when adding new NSDBs
    
    Don't ping the NSDB when the nsdbparams "update" subcommand is
    updating parameters for an NSDB that is already known to the local
    NSDB connection parameter database.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit aad8b7daebca80a9b2a9e48478bcd8eccc5a5d0f
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Nov 10 12:17:38 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Nov 10 12:17:38 2011 -0500

    nsdbparams: Use positional parameters for mandatory command line options
    
    We're trying to keep the Solaris and Linux administrative interfaces
    roughly the same, to make it easy for admins to use either one without
    a broad learning curve.
    
    Rob Thurlow mentions that Solaris user interface guidelines require
    that mandatory command line options must be specified as positional
    parameters rather than by using dash switches.  The only reason I used
    dash switches for all the options was sheer laziness.
    
    To make this change, I'm going to separate the subcommands into their
    own source files, and clone the option parsing logic into each one.
    That means that each subcommand can now check for specific options,
    and flag unrecognized options that other subcommands might recognize.
    And, each subcommand now has its own usage message.
    
    For the "show," "update," and "delete" subcommands, make the NSDB
    hostname option a positional parameter.
    
    This also involves a rather extensive rewrite of the nsdbparams(8) man
    page.
    
    Overall, this change should not only improve the usability of the
    nsdbparams command, but it will allow us to add new nsdbparams
    subcommands quickly.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit e5a3f1ea3b502d4a9e9922b050d53a51aa9556be
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Nov 10 12:17:36 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Nov 10 12:17:36 2011 -0500

    fedfsd: Don't leak junction lookup results
    
    The finished in-memory junction lookup result structure is big, and
    rpc.fedfsd doesn't free it after replying to a client.  This leaks a
    lot of memory during each LOOKUP_JUNCTION RPC request.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 5ac254471c8b397b5ebb2cdb733534a2e767fbe7
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Nov 10 12:17:35 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Nov 10 12:17:35 2011 -0500

    contrib: Remove mention of NFS in rpcfedfsd
    
    FedFS is supposed to be file system agnostic.  Remove mention of
    NFS in the description and comments in the rpcfedfsd script.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit a01220fd54ae21a84d82858b739244b44cc9c27c
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Nov 10 12:17:33 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Nov 10 12:17:33 2011 -0500

    contrib: add README file for items under contrib
    
    Items under contrib are not installed automatically by our Makefiles,
    but they do need at least a little documentation.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Acked-by: Jeff Layton <jlayton@redhat.com>

commit 8cfafcf2cb182fb0e428c6f54d7e7030d39814fe
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Nov 10 12:17:31 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Nov 10 12:17:31 2011 -0500

    contrib: add a systemd service file for rpc.fedfsd
    
    Distributions are adopting systemd for system initialization, so
    provide a systemd alternative to the rpcfedfsd init script.
    
    Signed-off-by: Jeff Layton <jlayton@redhat.com>
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 49f0f0b57faf36a544ed973ccae2e664a3be884f
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Nov 10 12:17:30 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Nov 10 12:17:30 2011 -0500

    contrib: Rename contrib/init-scripts
    
    The contrib/init-scripts directory no longer contains only scripts.
    Use a more generic name for it.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 1b9a399f3f166394ad2332c7a2d475d5442a188f
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Nov 10 12:17:28 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Nov 10 12:17:28 2011 -0500

    contrib: Use /etc/sysconfig/fedfs for rpcfedfsd init script
    
    Commit 612e51b9 introduces a SysV-style init script for starting
    rpc.fedfsd.  Like other NFS-related init scripts, it looks in
    /etc/sysconfig/nfs for configuration information such as daemon
    command line options.
    
    Jeff Layton notes, however, that /etc/sysconfig/nfs is shipped
    as part of the nfs-utils package.  To avoid an unwanted dependency on
    nfs-utils, "we really want a separate file here.  /etc/sysconfig/fedfs
    would be more appropriate," he says.  FedFS is supposed to be
    independent of underlying file system protocols, after all.
    
    Introduce a sample /etc/sysconfig/fedfs file in contrib, and update
    the rpcfedfsd script to use it.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit b716b299be3a14b19d2005e04e4d65b1c9cdb46d
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Nov 10 12:17:26 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Nov 10 12:17:26 2011 -0500

    automake: Silence spurious warning
    
    Squelch automake warning:
    
      libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 2a5ded71aaab980f693398ce045149b8bc09ec40
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Nov 10 12:17:11 2011 -0500
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Nov 10 12:17:11 2011 -0500

    build: Make new warnings easier to see
    
    We want to see any newly introduced automake problems immediately, so
    enable automake warnings with "-Wall -Werror".
    
    Use "git clean" as a check-in test to help expose problems with
    missing or untracked files.
    
    Also, enable quiet building to make new compiler and linker warnings
    easier to see.  With "make -s" we now get:
    
      ...
    
    Making all in nsdbparams
      CC     main.o
      CCLD   nsdbparams
    Making all in resolve-junction
      CC     main.o
      CC     privilege.o
      CCLD   resolve-junction
    
      ...
    
    making warnings stand out clearly.
    
    Unfortunately I don't see a way to make silent builds the default
    behavior, though: you still have to request it explicitly via:
    
      ./configure --enable-silent-rules
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 9ae56b976aa1a60958bb7a814c89fb95293abd43
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Oct 19 22:52:19 2011 -0700
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Oct 19 22:52:19 2011 -0700

    libnsdb: Fix memory allocation and access bugs in nsdb_normalize_path()
    
    The malloc(3) call in nsdb_normalize_path() neglected to allocate
    space for the NUL on the end of the string.
    
    As a minor optimization, we don't need to perform the strlen(3) at the
    end of the function to compute the length of the result.  We already
    have that value in j.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 62fd962a108fbfb641e37d9929637f76a441bea0
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Oct 19 22:52:18 2011 -0700
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Oct 19 22:52:18 2011 -0700

    libnsdb: Stricter type checking
    
    For integer LDAP values, replace atoi(3) with something more robust.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 7aaacd11223766943113b61b237b1bf2f779b9ec
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Oct 19 22:52:18 2011 -0700
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Oct 19 22:52:18 2011 -0700

    libnsdb: Library fails to parse LDAP boolean results correctly
    
    All boolean FSL values returned from the NSDB appear to be FALSE.
    
    The code in nsdb_parse_singlevalue_bool() must have been a placeholder
    implementation, as it doesn't work.  Replace it with something that
    actually does work.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 5916f12125611c5d9a1fbb7bc0f60617b3e4a05b
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Oct 19 22:52:18 2011 -0700
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Oct 19 22:52:18 2011 -0700

    build: Housekeeping
    
    Add "*~" to the CLEANFILES target in all Makefiles to remove kruft
    left by certain text editors or by autoconf.
    
    Ignore tarfiles left by "make distcheck".
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 73e6fecdedfb4d31406248fe7207e00d54d79c86
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Oct 19 22:52:18 2011 -0700
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Oct 19 22:52:18 2011 -0700

    fedfsc: utf8string's are not NUL-terminated
    
    Take care when printing utf8strings.  They are not NUL-terminated.
    Even if there is a NUL character after the string, it was not
    allocated by malloc(3), so allowing printf("%s") to walk down these
    strings until it finds a NUL will cause it to run into bad memory.
    
    The solution to this is to ensure a printf precision formatter is
    always used when displaying utf8string data.

commit 980dd394629f7e50090f9d2160f2b3b15740ad4d
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Oct 19 22:52:18 2011 -0700
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Oct 19 22:52:18 2011 -0700

    fedfsc: Free resources allocated by the XDR decoded results
    
    This is not strictly necessary, since these are one-shot clients that
    exit quickly.  But it does clean up the output of valgrind so it's
    easier to spot real leaks.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 766117d7fec2961fe618b1b76933b4964e93363e
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Oct 19 22:52:18 2011 -0700
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Oct 19 22:52:18 2011 -0700

    nsdbc: nsdb-list displays "(null)" for the NCE
    
    If no NCE is specified on the command line, the user wants the command
    to hunt for any NCE on the NSDB.  However, nsdb-list displays this:
    
      $ ./nsdb-list
      NSDB: nsdb.nfs4bat.org:389, (null)
        FSN UUID: d3af69ba-f90e-11e0-9390-000c2979d1f3
          FSL UUID: 4c054068-f911-11e0-ac05-000c2979d1f3
    
    The "(null)" is unhelpful.
    
    In the future, it would be nice to display the NCE under which FSNs
    were found.  That might be quite a bit of work, as it would require
    bringing the loop that walks through the naming contexts out of the
    library and adding it to the nsdb-list command.
    
    So I'm going to put that off for now.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 968622b7679bc75cafa06921eb9c8b55b47cc94a
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Oct 19 22:52:18 2011 -0700
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Oct 19 22:52:18 2011 -0700

    libnsdb: nsdb_list_s() returns FEDFS_OK without updating "fsns"
    
    Trying the nsdb-list command against an empty NSDB causes a
    segmentation fault.  This is because nsdb_list_s() found no FSN
    records.  It did not alter the "fsns" output argument, but returned
    FEDFS_OK anyway.
    
    nsdb_list_s() needs to return an appropriate error code if it does not
    plant anything in the "fsns" output argument.  To address this, copy
    the logic from the tail of nsdb_resolve_fsn_s().
    
    And, fix the nsdb-list command to recognize FEDFS_ERR_NSDB_NOFSN and
    report an appropriate error message.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit ce6c549e4ca428993d73ff55ec62c664bf34b4cb
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Oct 19 22:52:17 2011 -0700
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Oct 19 22:52:17 2011 -0700

    rpc.fedfsd: Squelch compiler warnings
    
    We get twelve of these:
    
    listen.c:109:2: warning: dereferencing type-punned pointer might break
    			strict-aliasing rules [-Wstrict-aliasing]
    
    And one in svc.c.
    
    Add an extra two pointer variables to squelch the warnings.  Also,
    site-local IPv6 addresses are deprecated, so remove the test for
    those.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit c27184e0e8827bae4c7e96e9a19706be77ceddcd
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Oct 19 22:52:17 2011 -0700
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Oct 19 22:52:17 2011 -0700

    nsdbparams: Delete subcommand should report missing NSDB entry
    
    Currently, the "delete" subcommand reports that an NSDB entry
    in the connection parameter database was successfully removed
    even if the requested NSDB entry was not there to begin with.
    This is somewhat confusing.
    
    Have "nsdbparams delete" report when the NSDB entry is missing.
    This is still treated as a success.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 3de1276d659d6383a55cf6d3fa773752981153b2
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Oct 19 22:52:17 2011 -0700
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Oct 19 22:52:17 2011 -0700

    nsdbc: Rename --passwd command line option as --bindpw
    
    We're trying to keep the Solaris and Linux administrative interfaces
    roughly the same, to make it easy for admins to use either one without
    separate learning curves.
    
    Rob Thurlow pointed out that --bindpw, rather than --passwd, goes
    more intuitively with --binddn, so he'd prefer --bindpw.
    
    I've tried to model the short options for these commands after the
    LDAP command line tools, so we are keeping "-w"; but the LDAP tools
    don't appear to have long options.  We are free to choose our own
    here.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 79ed5a5db7d6347f2c07311bcf03c81608882373
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Oct 19 22:52:14 2011 -0700
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Oct 19 22:52:14 2011 -0700

    man: Automatically update man page publication date
    
    Add a "dist-hook" target in the doc/man Makefile to update the
    publication date in all man pages when creating a dist tarball.
    
    Unfortunately my "make" fu is not strong enough to figure out how to
    generate the date when you run "make dist" -- it's generated at
    ./configure time instead.  We can probably fix this at some later
    point.
    
    We're going to continue with the "dd MMMMMMMM YYYY" format of the
    publication date.  I don't see much consistency amongst the man pages
    I sampled on my Fedora 15 system.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit fb9c78ced567a06fe086f1f5893eb023c956c02b
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Oct 6 12:34:20 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Oct 6 12:34:20 2011 -0400

    doc: Ensure man pages have up-to-date fedfs UID and GID
    
    Now that the fedfs user ID is specified with a configure command line
    option, we should take care to substitute the specified user ID and
    group ID in the man pages, just as we do with the state dir setting.
    
    Should have been part of commit f3522f49 "configure.ac: Add a
    --with-fedfsuser and --with-statedir options" (Sep 26, 2011).
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit cfbab4dc22d812115a65f52d9e55e004dd4c060e
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Oct 6 12:34:00 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Oct 6 12:34:00 2011 -0400

    README: Make me the maintainer
    
    I'm trying to open the development of fedfs-utils, so I'm more than
    the author now; I'm the project maintainer.  Document this in the
    README.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit f194485a32156674c65f711d29de99a9c0a9720b
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Oct 6 12:33:55 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Oct 6 12:33:55 2011 -0400

    configure.ac: Restore rpcgen dependency
    
    It looks like we still do distribute a .x file, but no part of the
    source code build depends on it.  That's why "make distcheck" didn't
    catch this.
    
    This reverts commit fcc90938a "configure.ac: Remove rpcgen dependency"
    (Sep 22, 2011).
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit f3522f49c19877ba19ee0456465c55d06f771b72
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Sep 26 16:58:46 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Sep 26 16:58:46 2011 -0400

    configure.ac: Add a --with-fedfsuser and --with-statedir options
    
    Allow distributions to set the name of the user ID and group ID used
    for FedFS system operations and to set the directory used to contain
    TLS certs and the NSDB parameter database.
    
    An install hook to update man pages with the directory pathname is
    also introduced.  I noticed that subdirectory pathname for storing
    certs is incorrect in the man pages; fixed.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit fcc90938a71e8c689cf7f6125130392f71957a25
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Sep 22 12:08:58 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Sep 22 12:08:58 2011 -0400

    configure.ac: Remove rpcgen dependency
    
    The .x files for the FedFS ADMIN protocol are no longer distributed
    in this package.  Instead, the rpcgen-generated source files are
    distributed.
    
    The rpcgen rules have been removed from src/libadmin/Makefile.am for
    a while now.  So, remove the rpcgen check from configure.ac.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 239297abd6a69e0a8051e4c2ad1e7e27696beeed
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Sep 22 12:08:58 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Sep 22 12:08:58 2011 -0400

    fedfsc: fedfs-lookup-{junction,replication} should assume "-t none"
    
    For ease of use, make the fedfs-lookup-junction command assume that
    the "-t" option has a value of "none" by default.  Same for the
    fedfs-lookup-replication command.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 612e51b96b6ea5afa90b3d388bf746bc2364ebae
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Thu Sep 22 12:08:57 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Thu Sep 22 12:08:57 2011 -0400

    contrib: Add rpcfedfs init script
    
    To reduce confusion (slightly), let's distribute sample init scripts
    with the fedfs-utils package rather than separately.
    
    To kick things off, copy the Red Hat-based rpcfedfsd script I wrote
    from my fedfs-init-scripts repo to contrib/init-scripts/rpcfedfsd, and
    create appropriate Makefile infrastructure to ensure that these files
    are distributed in the tar files (but are not installed).
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 0592553e33c10cd5cca58d946ec9d5f51af80f56
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Sep 13 17:56:48 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Sep 13 17:56:48 2011 -0400

    libjunction: Clear mode bits when creating a junction
    
    Because NFSD has to examine each directory in a path when doing
    pathname resolution, the test to see if a directory is a junction must
    be very efficient.  Retrieving an inode's extended attributes is not
    fast, so we use a special combination of mode bits to signal that it's
    going to be worth the expense of looking at the xattrs during pathname
    resolution.
    
    Up to this point, libjunction was simply setting the sticky bit on the
    directory.  The sticky bit by itself is fairly common amongst
    directories, however.  The original design was to clear the permission
    bits as well, since zero permission with the sticky bit set is
    nonsense, and also prevents local readers from seeing what's inside
    the junction directory.
    
    However, Trond's NFSD patch wasn't looking at the permission bits at
    all.  So my libjunction implementation never bothered to clear a new
    junction's permission bits.  Now that we are trying to merge the NFSD
    patches upstream, we've discovered the omission.  The merged version
    of these patches will consider the permission bits, therefore
    libjunction must clear them when setting up a junction.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 9ac899f1540c3ea77020fb875e6f3f4a326911c6
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Sep 13 17:56:46 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Sep 13 17:56:46 2011 -0400

    mount.fedfs(8): Fix rpmlint warnings in man pages
    
    rpmlint is throwing warnings on Jeff's new fedfs-utils RPM:
    
    fedfs-utils-client.x86_64: W: manual-page-warning /usr/share/man/man8/mount.fedfs.8.gz 141: warning: macro `NF' not defined
    fedfs-utils-client.x86_64: W: manual-page-warning /usr/share/man/man8/mount.fedfs.8.gz 142: warning: macro `TA' not defined
    fedfs-utils-client.x86_64: W: manual-page-warning /usr/share/man/man8/mount.fedfs.8.gz 144: warning: macro `FI' not defined
    fedfs-utils-client.x86_64: W: manual-page-warning /usr/share/man/man8/fedfs-map-nfs4.8.gz 90: warning: macro `NF' not defined
    fedfs-utils-client.x86_64: W: manual-page-warning /usr/share/man/man8/fedfs-map-nfs4.8.gz 91: warning: macro `TA' not defined
    fedfs-utils-client.x86_64: W: manual-page-warning /usr/share/man/man8/fedfs-map-nfs4.8.gz 93: warning: macro `FI' not defined
    
    Jeff had a patch that simply lower-cased the undefined macros, but
    that didn't produce correct output spacing for me.
    
    So, let's switch all these to use the .RS / .RE macros like
    elsewhere in the fedfs-utils man pages, and in mount(8).
    
    BugLink:
    
      https://bugzilla.redhat.com/show_bug.cgi?id=736015#c4
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit ed963420347a181ca063c18b9b6941dfe674e130
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Sep 13 17:56:44 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Sep 13 17:56:44 2011 -0400

    configure.ac: Development release 0.8
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 43b11f0bd83a29c9cdc9abb2642f99f7388e8006
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:40 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:40 2011 -0400

    Release 0.7.0
    
      o New program map for automounter
      o Full set of man pages for administrative tools
      o Support for FEDFS_NSDB_PASSWD environment variable
      o FedFS ADMIN RPC clients now handle FEDFS_ERR_DELAY
      o New nsdb_ping_s() API
      o New tools and APIs for managing NSDB container information
      o Support packaging via RPM and other tools
      o Many other clean ups and bug fixes
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 6fd1a295c957fbcc6f48e5673bd8b89ac1e27c40
Author:     Jeff Layton <jlayton@redhat.com>
AuthorDate: Sat Sep 3 12:11:39 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:39 2011 -0400

    autotools: install mount.fedfs in /sbin
    
    /bin/mount expects to find mount helpers in /sbin, so set up the code to
    install it there. We can't, however redefine the code to install it in
    /sbin unconditionally as that will break "make distcheck".
    
    This patch instead borrows the scheme used by util-linux-ng. If the
    prefix is '/usr' or NONE, then we set root_sbindir to '/sbin'. If it's
    anything else, then it is set to the same value as the sbindir.
    
    That allows "make distcheck" to pass and still allows mount.fedfs to
    be installed in the right place for distro packaging tools.
    
    Signed-off-by: Jeff Layton <jlayton@redhat.com>

commit 3ab2b9d9bc3132a8d800c4373e90271af6048d34
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:38 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:38 2011 -0400

    Makefile.am: Use Makefile variables instead of naked "-lxxx"
    
    Clean up: replace all naked instances of "-lxxx" in the Makefile.am
    files with the specific Makefile variables for each library created by
    AC_CHECK_LIB, instead.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 592e92f3b0a2271997b1c70736e9af6cf81dd8cc
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:37 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:37 2011 -0400

    Makefile.am: Remove now unneeded libraries from Makefile.am
    
    Clean up: the nsdbparams and resolve-junction commands have extra
    libraries listed in their Makefile.am files that are no longer needed
    for them to link successfully .
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit e4637a3f85fbb1ef3751e587ac7d6ca9aca3806c
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:36 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:36 2011 -0400

    configure: Check for libresolv
    
    mount.fedfs and fedfs-map-nfs4 link with -lresolv, so ./configure
    should ensure that it's installed on the build system.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit fd3352f99082d7e23b252655da9c8b34902d64e9
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:35 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:35 2011 -0400

    configure: Don't add /usr/lib libraries to LIBS
    
    The AC_CHECK_LIB macro in ./configure adds libraries it finds to the
    Makefile variable LIBS.  All these libraries are then linked in each
    binary built by the fedfs-utils packages.
    
    Because it's a generic library list, LIBS typically lists libraries
    from both /lib and /usr/lib.  At least one binary provided by
    fedfs-utils needs to be installed in /sbin, but packaging guidelines
    require that it not be linked against anything in /usr.
    
    Therefore the list of libraries in LIBS must be minimal.  Have
    AC_CHECK_LIB forego adding libraries to LIBS.  Our Makefile.am files
    already list the specific libraries needed for each binary to link.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 0cc921b7327eb910adab37cf27ead7ff217391ae
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:34 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:34 2011 -0400

    nsdbc: Add man pages for the NSDB clients
    
    The NSDB client commands are meant to be "micro" commands for testing
    the NSDB draft protocol and our our implementation of it.  They can
    also be used in scripts.  I expect that this functionality to be
    subsumed eventually into richer high level administrative commands.
    
    To enable their wider use in the meanwhile, document them in man
    pages.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    [ jlayton: fix doc/man/Makefile.am to include nsdb-* man pages ]
    Signed-off-by: Jeff Layton <jlayton@redhat.com>

commit bdd1c3108853a12a08e6fa269a96fd4e02aedf22
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:33 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:33 2011 -0400

    nsdbc: Add API and command to remove all FedFS records in an NSDB
    
    Introduce the nsdb_delete_nsdb_s() API and an nsdb-delete-nsdb command
    to use it.  This API removes the NCI on an NSDB, then recursively
    removes all FSN and FSL records.
    
    The input is an nsdb_t and an NCE.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit badb7da96a0f58c281d864c8cd9604038ebfbcd1
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:32 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:32 2011 -0400

    nsdb-update-nci: NSDB admin client to update NSDB container info
    
    Currently the nsdb-create-nce command and the underlying libnsdb API
    don't correctly handle the case where the NCE prefix is not empty.
    The NSDB container info is set correctly, but the actual NSDB
    container entry is not created.
    
    I'd like this to be a simple, flexible way to turn an LDAP server into
    an NSDB.  It doesn't have to cover every case.  Some corner cases
    would be hard; for example, what if the NCE's objectClass attribute is
    incorrect?  What if there are missing intermediate non-leaf entries
    between the namingContext and the NCE?
    
    So we may be better off simply managing the NSDB container information
    and leaving the creation of these objects (which are more or less
    shared with the rest of the LDAP server) to the LDAP administrator.
    This allows great flexibility: the administrator can set these objects
    up any way she likes, and then simply drop the NCE prefix into the
    naming context.
    
    As nsdb-update-nci replaces nsdb-create-nce and nsdb-delete-nce,
    these commands (and the underlying APIs) are removed.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit cfab6c8fc4589116f24e16dcf895937481bade40
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:30 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:30 2011 -0400

    libnsdb: Add method to split NCE DN
    
    Before NSDB container info can be set up, the NCE DN has to be
    split into the namingContext piece and the NCE prefix piece.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit f8a40b8667ef153117fce9334dc00e26590f2948
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:29 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:29 2011 -0400

    libnsdb: Add nsdb_right_append_rdn() and nsdb_left_remove_rdn()
    
    To handle setting up NSDB container info properly, we need a helper
    function to append an RDN to a DN, and a function to remove the left-
    most RDN from a DN.  It's ugly.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit d717c8e939fc77595cd4169916b5694526841b68
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:28 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:28 2011 -0400

    libnsdb: Add nsdb_compare_dns() function
    
    To handle setting up NSDB container info, we will need to compare DNs.
    
    Comparing DNs is tricky, which is why client code leaves it to LDAP
    servers to deal with.  However, you can do this more or less reliably
    by converting string DNs to a data structure and then comparing the
    individual components using APIs provided by the OpenLDAP client
    library.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 4d6bbc016ed5a63b3ef7c7d7fdcde23bf59c9869
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:27 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:27 2011 -0400

    libnsdb: free result of ldap_get_dn(3) correctly in nsdb_construct_nce_dn()
    
    According to the ldap_get_dn(3) man page, the returned DN should be
    freed with ldap_memfree(3), not with free(3).
    
    Also, clean up: correct some comments, add debugging, rename
    nsdb_construct_nce_dn() to follow convention of other attribute parsers.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 468d8c8d64cb49df9db87aaf2377c11fe6ac3d6c
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:26 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:26 2011 -0400

    libnsdb: Fix nsdb_get_nceprefix_s() documenting comment
    
    Clean up: The NCE prefix is prepended to the namingContext DN, not
    vice versa.  Fix the comment to reflect reality.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 171f75f7f10adcf2ad0118aaaf6ec55ebac1a3b8
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:25 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:25 2011 -0400

    libnsdb: nsdb_delete_fsn_s() should delete all FSL children
    
    nsdb_delete_fsn_s() currently cannot remove an FSN entry unless it
    has no FSL children.  It should be able to remove FSL children and
    then delete the FSN entry itself.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit bf717756642686ba81cc82b7c4107ccc23773014
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:24 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:24 2011 -0400

    libnsdb: move nsdb_parse_{reference,result}() to ldap.c
    
    Clean up: Enable nsdb_parse_reference() and nfs_parse_result() to be
    invoked in multiple source files.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 4828528a4531e4308503c897c911f617b845cd1b
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:23 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:23 2011 -0400

    libnsdb: Return FEDFS_ERR_INVAL for bad parameters
    
    When I originally coded this, I used FEDFS_ERR_SVRFAULT when an API
    function encounted a bad parameter.  This is because a bad parameter
    would definitely be a software bug in the fedfs-utils server code.
    
    However, in the longer run, we're considering making these functions
    available to any application.  So the API should return a more
    conventional error code when a function is passed an unusable
    paramater.
    
    We keep FEDFS_ERR_SVRFAULT for memory allocation failures.
    
    In addition, all the public API functions should verify that the
    ldap_err pointer is not NULL, and return FEDFS_ERR_INVAL if it is.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit d13233b97a61fc8c59f5c25a4a3e6761fd73bb80
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:22 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:22 2011 -0400

    nsdbc: Change output of nsdb-foo-bar on success
    
    And on that note, don't display constructed DNs when NSDB client
    commands finish successfully.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit c25563cbb7be303bfdf5bf0dfff381bdccc5224e
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:21 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:21 2011 -0400

    libnsdb: Avoid constructing DNs in our client
    
    I'm told that LDAP clients should avoid constructing DNs themselves,
    as constructing a proper DN in general is fraught with difficulty.
    Instead, make the server build DNs we need, via ldapsearch.
    
    We can do this for deleting and updating existing records.  And, to
    find existing FSL records, this means we no longer need the FSN UUID.
    Adding new records still requires that we construct DNs locally.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 2587feccf7d8310415770becb0af20bb05548dd6
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:20 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:20 2011 -0400

    libnsdb: Avoid constructing DNs when managing FSN records
    
    I'm told that LDAP clients should avoid constructing DNs themselves,
    as constructing a proper DN in general is fraught with difficulty.
    Instead, make the server build DNs we need, via ldapsearch.
    
    We can do this for deleting and updating existing records.  Adding new
    records still requires that we construct DNs locally.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 3d1a72e99107dbfafd0959321d3571b4cfa57690
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:19 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:19 2011 -0400

    libnsdb: LDAP clean-up in fileserver.c
    
    The client shouldn't construct a DN for doing FSN resolution, since
    in general constructing DNs properly is challenging to do correctly.
    Instead, the server should do it:  pass the NCE DN, and filter on
    object class and FSN UUID.
    
    The library should also use RFC 4515-compliant filter strings.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit afc64d55ba8f1ff20eb35a4140224ab9b92424b9
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:18 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:18 2011 -0400

    nsdbc: NSDB admin clients should exit with FEDFS_ERR code
    
    Currently our NSDB admin clients exit with either EXIT_SUCCESS or
    EXIT_FAILURE.  It would be better to exit with a more specific
    status code to allow more sophisticated scripting.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 5ac2984ee80202618c47fbc7d5c70c06f3b0da32
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:17 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:17 2011 -0400

    fedfsc: Add man pages for the FedFS ADMIN clients
    
    The FedFS ADMIN client commands are meant to be "micro" commands for
    testing the FedFS ADMIN protocol and our our implementation of it.
    They can also be used in scripts.  I expect this functionality to be
    subsumed eventually into richer high level administrative commands.
    
    To enable their wider use in the meanwhile, document them in man
    pages.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit a5cce552a4889f800998c5eb9928b727c983fc19
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:15 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:15 2011 -0400

    fedfsc: Teach FedFS ADMIN clients to handle FEDFS_ERR_DELAY
    
    Handling FEDFS_ERR_DELAY means retrying a request after a few moments.
    We also implement exponential backoff.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 2494eea08fe849bc11462cf0671971ffd3035871
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:14 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:14 2011 -0400

    fedfsc: FedFS ADMIN clients should exit with FEDFS_ERR code
    
    Currently our FedFS ADMIN clients exit with either EXIT_SUCCESS or
    EXIT_FAILURE.  It would be better to exit with a more specific
    status code to allow more sophisticated scripting.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 168188000a304d5ae8edb43a88c4642823903223
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:13 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:13 2011 -0400

    Introduce support for FEDFS_NSDB_PASSWD environment variable
    
    The Solaris NSDB administrative CLI supports an additional environment
    variable which, so far, we have not supported: FEDFS_NSDB_PASSWD.
    This variable contains the bind password used when performing
    administrative operations against an NSDB.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit b055c16b113a0c34a9dc1568e36ea10fe9ec1f8b
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:11 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:11 2011 -0400

    rpc.fedfsd: SET_NSDB_PARAMS should fail if LDAP server isn't an NSDB
    
    The NSDB ADMIN draft used to require that our rpc.fedfsd should fail
    a SET_NSDB_PARAMS request where the specified LDAP server is not an
    NSDB.  I don't see it in draft-08.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 060c55ccddc9fe5d2e3da3d7889a3069432d9684
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:10 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:10 2011 -0400

    nsdbparams: Warn when adding an NSDB to local db that isn't an NSDB
    
    Display a warning when adding NSDB connection parameters for an LDAP
    server that isn't already an NSDB.  This is a courtesy warning.
    
    We have a chicken and egg problem.  nsdb-create-nces won't work if
    the underlying NSDB connection parameters database doesn't contain
    the NSDB in question.  So nsdbparams has to let in entries which
    aren't yet NSDBs.
    
    The NSDB draft requires, however, that our rpc.fedfsd prevent setting
    NSDB connection parameters for NSDBs that are not NSDBs yet.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 9fb5577143d395e9ec0699bef5ef2b2981c7f6a0
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:09 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:09 2011 -0400

    libnsdb: Add an API to ping an NSDB
    
    Suppose a program wants to see if an LDAP server is an NSDB.  It
    should be up and it should respond to LDAP requests.  We should
    be able to get list of namingContexts, and at least one of the
    contexts should have an NCE prefix.
    
    This is a procedure that may be done before an NSDB is registered
    in the local NSDB connection parameter database.  We introduce two
    APIs: one that takes a hostname and port, and another that takes
    an instatiated nsdb_t.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit fc4dfb54fd661aa1672d0d52e059b87b92201b05
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:08 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:08 2011 -0400

    nsdbparams: Add a man page for nsdbparams
    
    Nsdbparams command may become a platform-agnostic administrative API,
    so let's document the command line interface in a way that can be
    shared outside the Linux community.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit b032518258b49888d364a83a1b02911098161a4f
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:07 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:07 2011 -0400

    nsdbparams: Eliminate "init" subcommand
    
    The nsdbparams has an "init" subcommand that simply creates the local
    NSDB database.  We can eliminate this in favor of automatically
    creating the database when needed, without losing any real
    functionality.
    
    This makes setting up a FedFS-enabled system one step faster.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 1e001d4091c646578e9db17f7ba31c045f29fc63
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:06 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:06 2011 -0400

    Create /var/lib/fedfs if it does not exist
    
    When rpc.fedfsd or nsdbparams run and the main fedfs directory doesn't
    exist, create it automatically.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit f854840a8b7cf72c8289af2e59555248ccd1016b
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:05 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:05 2011 -0400

    nsdbparmas: Fix "follow referrals" output
    
    To avoid user confusion, make "nsdbparams show" display the "follow
    referrals" setting using the same terms that were used for setting
    it.  Rather than "true," display "yes."  Etc.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 8d67784a182126b82afd1e4fc5127ebd726536ef
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:04 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:04 2011 -0400

    nsdbparams: Specify fedfs UID and GID by name
    
    The --uid and --gid command line options for nsdbparams both take a
    number.  For flexibility, also allow text user and group IDs.
    
    This logic is copied from rpc.fedfsd.  It provides better checking
    in the case when a UID or GID is specified that is not known to the
    system.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 4bd89735b239b0eca9fbd3a4f3f92e677d41ccd3
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:03 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:03 2011 -0400

    mount: Add automounter program map for FedFS
    
    This new utility interprets the passed-in key as a FedFS domain,
    performs a DNS SRV lookup, and generates the mount.nfs parameters
    needed to mount the domain.  It can handle multiple read-only and
    read-write domain root replicas using support already built into the
    automounter.
    
    The FedFS entry in the master map might look like this:
    
      /nfs4		/usr/sbin/fedfs-map-nfs4
    
    To support other file system protocols, additional lines in the master
    map and another program map utility (or options for this one) would be
    needed.
    
    Benefits:
    
      o  Simple to configure
    
      o  The TLD can be placed anywhere on the client
    
      o  No additional build or package dependencies on nfs-utils or
         autofs
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 7f2b0c311d01ba03419cbab9ec309f194ca5c372
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:02 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:02 2011 -0400

    Explain how to create a domain root on a Linux NFS server
    
    Update fedfs(7) and INSTALL to describe how to create a domainroot
    directory on a Linux NFS server.  This is somewhat provisional, as
    we are planning down the road to replace the /etc/exports referral
    mechanism.  But it really should be explained somewhere in the
    meantime.
    
    Instructions provided by a sleepless Bruce over a beer.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 8adc29f13e58057a1eba937cb20d2839009bc07f
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:01 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:01 2011 -0400

    fedfs(7): Clarify description of FedFS domain roots
    
    Remove use of passive voice and re-arrange and break up the
    description to make it easier to read.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 423f9ebc3a867c3dbbd01472b87fe0187c0b7580
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:11:00 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:11:00 2011 -0400

    fedfs(7): Explain FedFS domain characteristics
    
    Clarify some features of FedFS domains.  These refer specifically to a
    share file namespace, and not to other things such as security realms.
    There are some interesting ramifications of that.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit f58a937d7a4c5f7647c797483feca42b7fe49cb8
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:10:59 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:10:59 2011 -0400

    CheckInTests: Update for the new release
    
    CheckInTests is becoming a kiosk for submission guidelines and more.
    Add an introduction and blurbs about code review and patch
    descriptions.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 62c072807ce91558827b5b059d37182247d508d6
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Sat Sep 3 12:10:58 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:10:58 2011 -0400

    libsi: Remove unused variable from getsrvinfo()
    
    Clean up compiler warning:
    
    getsrvinfo.c: In function ‘getsrvinfo’:
    getsrvinfo.c:259:18: warning: variable ‘header’ set but not used
    [-Wunused-but-set-variable]
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit b001d039c83209b46f1cb70b8e64310f28fadcc8
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Aug 16 17:32:41 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Sat Sep 3 12:10:57 2011 -0400

    libnsdb: fix nsdb_parse_nceprefix_attribute() result
    
    Compiler warning:
    
    fileserver.c: In function ‘nsdb_parse_nceprefix_attribute’:
    fileserver.c:166:14: warning: variable ‘retval’ set but not used
    [-Wunused-but-set-variable]
    
    "retval" is set, but the out_free: label doesn't use it, as it should.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit acde8b65660e20e556acdf4532a614a8c4bad0ab
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Aug 8 13:52:51 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Aug 8 13:52:51 2011 -0400

    Release 0.6.5
    
      o open(2) with O_CREAT requires the caller to provide a mode
      o more verbose compiler warnings
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 91dcf8983f07589c5337bb2794d7c14121bd9eb2
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Aug 8 13:52:47 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Aug 8 13:52:47 2011 -0400

    Makefile.am: Enable warnings from system headers
    
    Add "-Wp,-DFORTIFY_SOURCE=2" to see warnings generated by extra
    pre-processor code in the headers.  This is a standard practice for
    distributions.  We want to catch such problems upstream, if possible.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit d04937f2fcb3abbdc42998c7f3f69db90b7f06f6
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Aug 2 11:47:51 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Aug 2 11:47:51 2011 -0400

    Clean up cert file creation
    
    Narrow permissions on created cert files.  I think only the "fedfs"
    user ID and root should be able to read or write these.
    
    While we're here, use symbolic constants to specify the permission
    setting.
    
    NB: This code does not work before or after this patch is applied, as
    it is currently provisional and untested.  More is planned for a
    subsequent release.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 5484425049b6a72164929115b994b7dcebe525e5
Author:     Jeff Layton <jlayton@redhat.com>
AuthorDate: Tue Aug 2 11:47:46 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Aug 2 11:47:46 2011 -0400

    open(2) with O_CREAT requires the caller to provide a mode.
    
    Signed-off-by: Jeff Layton <jlayton@redhat.com>
    
    Jeff reports the following error:
    
    === cut here ===
    
    Here's an excerpt from the build with RPM:
    
    gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../..  -I. -I../../src/include  -ggdb -fstrict-aliasing -fpie -Wall -Wextra -pedantic -Wformat=2 -Wstrict-aliasing=2 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -c nsdb.c
    gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../..  -I. -I../../src/include  -ggdb -fstrict-aliasing -fpie -Wall -Wextra -pedantic -Wformat=2 -Wstrict-aliasing=2 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -c sqlite.c
    In file included from /usr/include/fcntl.h:267:0,
                    from nsdb.c:39:
    In function 'open',
       inlined from 'nsdb_new_certfile' at nsdb.c:535:5:
    /usr/include/bits/fcntl2.h:51:24: error: call to '__open_missing_mode' declared with attribute error: open with O_CREAT in second argument needs 3 arguments
    
    I think the -D_FORTIFY_SOURCE=2 is what makes this check happen.
    
    === cut here ===
    
    NB: This code does not work before or after this patch is applied, as
    it is currently provisional and untested.
    
    I'm applying this patch to prevent compiler errors when fedfs-utils is
    built by RPM's automated build process.  More is planned for a
    subsequent release.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 6680d7b03a660d036d5cb480fd519570a0bda253
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Jun 15 12:37:26 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Jun 15 12:37:26 2011 -0400

    Author: Chuck Lever <chuck.lever@oracle.com>
    
    Release 0.6.4
    
      o Regenerate FedFS schema LDIF
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit cddd0cdce18095aaa9b9709585dbfd6cdeb13201
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Jun 15 12:34:30 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Jun 15 12:34:30 2011 -0400

    ldap: fix broken schema-ldif
    
    I edited the result of ol2rhds to create fedfs-schema.ldif.  I
    changed only comments and white space, I thought.  Apparently I don't
    understand the rules of LDIF format, and didn't test the new file
    before releasing it.
    
    Replace doc/ldap/fedfs-schema.ldif with a known working copy.  This
    affects only the LDIF version of the schema, not the schema version
    extracted from the NSDB draft.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 24a3523ab027b85efcf12d9f92b295f02a2b4299
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Jun 6 12:17:16 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Jun 6 12:17:16 2011 -0400

    Release 0.6.3
    
      o Fix incorrect output bug in nsdb-nces
      o NSDB protocol draft has new status code for reporting that
        an LDAP referral was not followed.
      o Rename FedFS schema files to reflect their content properly
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 68344af3e83c92d2c927ea5d606c788f66273732
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon Jun 6 12:12:26 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon Jun 6 12:12:26 2011 -0400

    ldap: Rename LDIF files
    
    Jeff Layton points out that 91fedfs.ldif is actually in RFC 4512
    schema format, not in LDIF format.  The NSDB protocol draft, section
    4.2, bears this out.
    
    Rename this file and 91fedfs-2252.ldif to reflect their content
    properly.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 84a29f88e1f9a81538bfc950990d6b3d4b7a5843
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed May 18 11:29:31 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed May 18 11:29:31 2011 -0400

    libnsdb: Use FEDFS_ERR_LDAP_REFERRAL_NOTFOLLOWED
    
    The latest ADMIN protocol draft now has a status code for "While
    performing an NSDB operation, I encountered an LDAP referral, but
    didn't follow it because I don't support that."
    
    Until support is added for following LDAP referrals, the NSDB client
    APIs should return this status code when encountering an LDAP
    referral.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 35ae78cedafc125175d10a159fa6193b1eae7905
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed May 18 11:29:20 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed May 18 11:29:20 2011 -0400

    nsdb-nces: Fix incorrect output
    
    Commit d2ff4e04 introduced changes to show the NCE prefix of each NCE
    on an NSDB.  The command shows the naming context DN instead of the
    NCE prefix DN.  I didn't catch this because my test NSDB has a single
    NCE where the naming context DN is the same as the NCE DN.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 3558cc120c9ee67e70261f154db1a5abce7ff841
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon May 16 18:12:59 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon May 16 18:12:59 2011 -0400

    Release 0.6.2
    
    Two significant bug fixes for libnsdb, and some minor clean ups after
    recent work.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit a191adc86b3384db17206f5c322a779d11c12372
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon May 16 18:10:52 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon May 16 18:10:52 2011 -0400

    configure: Switch e-mail address for reporting bugs
    
    Advertise the address of the new mailing list,
     <fedfs-utils-devel@oss.oracle.com>, for fedfs-utils reporting bugs.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit e1fdf65700876ae612baa94869a2504d94ea011f
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon May 16 17:49:15 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon May 16 17:49:15 2011 -0400

    nsdb-update-fsl: minor fixes to how "value" is handled
    
    The "-z" option was changed to "-v" recently.
    
    The libnsdb API function nsdb_update_fsl_s() was rejecting NULL
    "values," but the function it calls to do all the work expects a NULL
    "value" to mean "please delete this attribute."  Make
    nsdb_update_fsl_s() accept a NULL "value."
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 5e30094d12eec35c7067e63bb963f3250934f6a3
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon May 16 17:49:07 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon May 16 17:49:07 2011 -0400

    nsdb-delete-fsl: minor fixes
    
    nsdb-delete-fsl should report the distinguished name of the deleted
    FSL record.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit e96990cfb5344d37d80291f6701c2766c477d13b
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon May 16 17:49:00 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon May 16 17:49:00 2011 -0400

    nsdb-delete-fsn: minor fixes
    
    nsdb-delete-fsn should report the distinguished name of the deleted
    FSN record.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 9e277c79a187432b2cd1f32e8ea4918f35dd1104
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon May 16 17:48:50 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon May 16 17:48:50 2011 -0400

    nsdb-create-fsl: minor fixes
    
    The "-t" option was recently changed to "-o".  "-p" is no longer
    optional, now that the library creates only fedfsNfsFsl records.
    
    The output of nsdb-create-fsl, on success, should report the full
    DN of the new record, just as nsdb-create-fsn now does.
    
    At some later point we need to fix the libnsdb API to allow callers
    to specify the subtype of FSL they want to create.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 3e0481dd5c1acbb900daa5744a1d057fde454951
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Mon May 16 17:48:35 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Mon May 16 17:48:35 2011 -0400

    nsdb-create-fsn: minor fixes
    
    More verbose output.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 0193219cac322dfbfabca5535f0b4ea475797395
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue May 10 11:49:08 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue May 10 11:49:08 2011 -0400

    nsdb-describe: Minor clean ups
    
    The "-e" command line option is required.  The library now allows
    adding or deleting any value in a multi-valued attribute.  Fix up
    grammar of output on success.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 562f69b917c9fc9c0434263b8bfeab7159aebe18
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue May 10 11:49:07 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue May 10 11:49:07 2011 -0400

    nsdb-annotate: Minor clean ups
    
    The "-e" option is required.  Echo the DN of the entry on stdout, for
    the record.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 48430065faf02a5187c265344331c288a088e92d
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue May 10 11:49:07 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue May 10 11:49:07 2011 -0400

    nsdb-create-nce: Minor clean ups
    
    The "-p" option was replaced with the "-x" option some time ago.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 4e4ffc8756b96fde471db98039c114c0c13c6d4c
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue May 10 11:49:07 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue May 10 11:49:07 2011 -0400

    nsdb-list: Minor clean ups
    
    Report the name of the NSDB and the NCE on stdout in case no hostname
    was specified on the command line.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit d2ff4e04189281736a960014495d65b78ea6dbbb
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue May 10 11:49:07 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue May 10 11:49:07 2011 -0400

    nsdb-nces: Minor clean ups
    
    The usage message lists a "-e" option that does not appear to be
    supported.
    
    Also, make the output formatting a little neater.  Report the name of
    the NSDB on the output in case no hostname was specified on the
    command line.
    
    Finally, nsdb-nces was always completing with EXIT_FAILURE.  When an
    NCE is detected, complete with EXIT_SUCCESS.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 4b8894644c0469ac41d2f2f528c163834a3e9a91
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue May 10 11:49:07 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue May 10 11:49:07 2011 -0400

    fedfsc: Usage fix: Correct default value of "-n" option
    
    The usage message for a couple of fedfs clients lists "nettype" as
    the default value of the "-n" command line option.  It should be
    "netpath."
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit b1e6e5b075fda7a1bd93ddfad9d807cd836010a1
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue May 10 11:49:07 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue May 10 11:49:07 2011 -0400

    fedfsc: Usage fix: The NSDB name and port is optional on these commands
    
    Specifying the NSDB name and port is optional in the fedfs clients
    because these commands can take the default value of these options
    from environment variables.  And, even if the environment variable
    for the port number doesn't exist, the default is still port 389.
    
    Correct the usage message in a few of these commands to reflect
    this.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit e1a82b34f15f7729f7e830500f82ce52c28b0b16
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue May 10 11:47:26 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue May 10 11:47:26 2011 -0400

    fedfs.7: Clarify description
    
    Refine and clarify the opening paragraphs of fedfs(7).  Emphasize the
    purpose of FedFS, which is to ease administration of a large number of
    file system clients.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit d603a3122ea4e1df54cb23e6393a65d93ffdb1e2
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri May 6 17:24:00 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri May 6 17:24:00 2011 -0400

    fedfs.7: Fix SEE ALSO section
    
    The SEE ALSO section lists "rpc.fedfs(8)" but should list
    "rpc.fedfsd(8)".
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit c53a96c72bb6bed4cad88f0a9d43f9077bfa0ae3
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed May 4 18:17:39 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed May 4 18:17:39 2011 -0400

    rpc.fedfsd(8): Update documentation for --uid and --gid
    
    I never got around to updating rpc.fedfsd(8) to describe how
    flexible the --uid and --gid options are now.  Both can take
    either numeric or text IDs.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit d84f8cf49c77695a82be6f576b9fb33b57bc9b7d
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed May 4 18:17:36 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed May 4 18:17:36 2011 -0400

    man: Remove unneeded commas from man page colophon
    
    Nit: remove needless commas from man page colophon.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 6b26030b1d075c01dd25cc303e40abea539c5149
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Apr 29 15:50:34 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Apr 29 15:50:34 2011 -0400

    mount.fedfs: clean up after recent changes
    
    Clean up some unused kruft left over from recent overhaul, and add
    language support.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit cba224ba8dee6ce004353fd6c68f5f51a17b1ac2
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Apr 29 15:49:10 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Apr 29 15:49:10 2011 -0400

    libnsdb: Check all NCEs an NSDB might have
    
    When checking for an FSN that doesn't exist, the NSDB library returns
    FEDFS_ERR_NONCE, which is incorrect.  It should return
    FEDFS_ERR_NOFSN.
    
    The loop that walks the naming contexts looking for NCE prefixes is
    not correct.  A separate loop is needed to construct a list of NSDB
    container entries first.  Only if this loop fails to discover any NCEs
    should we return FEDFS_ERR_NONCE.
    
    This logic now matches the algorithm described in sections 5.2.1 and
    5.2.2 of the NSDB protocol draft.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 0abf89fd846568f485e1d260b9375f6df0809dc2
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Apr 1 12:08:05 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Apr 1 12:08:05 2011 -0400

    Release 0.6.1
    
    Recent bug fixes, and a major change to mount.fedfs.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit bfe6aa7f81f244119f40e2f05cd59bd81ae3ec63
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Apr 1 12:00:40 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Apr 1 12:00:40 2011 -0400

    mount.fedfs: Overhaul mount.fedfs CLI
    
    The 0.6.0 mount.fedfs interface is not adequate to support mounting
    arbitrary points in the global FedFS namespace at arbitrary points
    on a client.
    
    To accomodate this functionality, update the mount.fedfs CLI again.
    
    For a synopsis that looks like this:
    
       mount.fedfs remotedir localdir
    
    "remotedir" will now be a globally useful name (the full path that
    starts with "/nfs4/domainname") that indicates what part of the
    FedFS namespace to mount, and "localdir" will be the mounted-on
    dir on the client to mount this on.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 34881fe709ec4ca8725f33bdaa46173dfc0b99a7
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Fri Apr 1 11:55:24 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Fri Apr 1 11:55:24 2011 -0400

    .gitignore: Ignore genned source in doc/rpcl
    
    Update .gitignore so that git ignores the rpcgen-generated source
    files under doc/rpcl.  These aren't tracked or distributed.
    
    git should also ignore stgit working files that appear outside of
    .git.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 1a28e5494c488e8f486360869e181c788ba0664c
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Wed Mar 30 16:22:23 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Wed Mar 30 16:22:23 2011 -0400

    doc: Update RPC program short name for FedFS ADMIN service
    
    The FedFS ADMIN protocol draft says the short name for the FedFS
    ADMIN service is "fedfs_admin," not "fedfs".  Correct this in our
    install documentation.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

commit 0520ee7207f9ba027c845cb33606a3c901ecd811
Author:     Chuck Lever <chuck.lever@oracle.com>
AuthorDate: Tue Mar 29 15:37:40 2011 -0400
Commit:     Chuck Lever <chuck.lever@oracle.com>
CommitDate: Tue Mar 29 15:37:40 2011 -0400

    Initial commit
    
    This is fedfs-utils-0.6.0, the first public release of fedfs-utils.
    
    Copyright 2010, 2011 Oracle.  All rights reserved.
    
    fedfs-utils is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License version 2.0 as
    published by the Free Software Foundation.
    
    fedfs-utils is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License version 2.0 for more details.
    
    You should have received a copy of the GNU General Public License
    version 2.0 along with fedfs-utils.  If not, see:
    
      http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
