commit 7e80c6c9de038f0e53bbff2bae133afe2c2f0402
Author: Chuck Lever <chuck.lever@oracle.com>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   Tue Aug 16 17:32:41 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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
Date:   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>
