Commits on Apr 28, 2011
  1. Prep for 1.0-pre25 release

    garlick committed Apr 28, 2011
  2. Include stdarg.h in several places

    garlick committed Apr 28, 2011
    The new logging hook added to npfs.h broke compilation on
    RHEL 5 based systems where stdarg.h is apparently not included
    by one of the other includes we have everywhere.
  3. Clean up np_srv_create() flags

    garlick committed Apr 28, 2011
    Merge srv->debuglevel and wt->flags into srv->flags.
    Implement connection authentication "grandfathering" with a new
    server flag SRV_FLAGS_AUTHCONN and remove it from the diod_auth
    Expand error messages in auth/attach so they are more descriptive.
    Fix remapuser handler so it can return an error (and handle it).
Commits on Apr 27, 2011
  1. Add srv->auth_required callback.

    garlick committed Apr 27, 2011
  2. Improve error handling for fsid switching

    garlick committed Apr 27, 2011
    Add optional WT_FLAGS_SETFSID flag used at np_srv_create () time,
    which turns setfsuid identity switching on and off at the libnpfs level.
    This allows the current identity to be tracked per worker thread and
    unnecessary identity changes avoided.
    Fixes missing identity switches in diod's the lock/getlock handlers.
    Failures of setfsuid, setfsgid, or setgroups are individually logged.
    Verified that we are using the same error checking of setfsuid/setfsgid
    as user space nfs server code, weak as it is.  The return values
    documented in the man page do not seem to be accurate.
  3. Fix allsquash option.

    garlick committed Apr 27, 2011
    Add test kern/t30 for allsquash and rework the kern and user runtest
    script so mount and export directores are created in /tmp.
    linbpfs was looking up users in auth and attach (and failing) even when
    we were going to swap users to the squash user in the attach handler.
    Add a new handler called srv->remapuser that can allocate the Npuser
    for np_attach () and avoid the user lookup in the squash case.  Also,
    in np_auth (), avoid doing a lookup if auth->startauth returns 0
    indicating auth not required.  Rework some of this code for better
    clarity and error handling.
    Make 'squashuser' a config option (default = nobody).
    Get rid of user.[ch] in and incorporate these functions directly into
    the server, with improved error logging to catch more detail on the
    "switch user" errors we are seeing in the logs.
Commits on Apr 25, 2011
  1. Prep for 1.0-pre24 release.

    garlick committed Apr 25, 2011
  2. Fix for issue 29 - EIO during tcl delete

    garlick committed Apr 25, 2011
    The libnpfs remove handler was only decerementing the fid refcount
    when the server's remove operation returned success.  Plan 9 remove(5)
    says it has to drop the fid whether the remove succeeds or fails.
  3. Added copious logging in auth path for issue 28

    garlick committed Apr 25, 2011
    Allow Npconn to store client_id and authuser, and eliminate
    diod-specific transport and use fdtrans.  The client_id then
    becomes available for logging inside libnpfs, which can't
    assume a particular transport.
    Added DEBUG_AUTH flag (diod -d 0x2) to help with debug of auth path.
    Whenever auth/attach returns an error to the client in libnpfs,
    log something.
    In diod_auth.c, log user, aname, and client_id in all error messages,
    and include any munge errors so we can run down problems like out of
    sync clocks on specific clients.
    Tighten up some error handling code in libnpfs, and fix a double call
    to auth->clunk (fidpool + np_clunk: eliminated the np_clunk one).
Commits on Apr 24, 2011
  1. Minor documentation update.

    garlick committed Apr 24, 2011
    Drop ChangeLog content and insert a reference to git log.
    Update README based on current program options.
    Add "Client Requirements", and "Support" sections,
    and add info to "Testing" on setting up I/O forwarding on clusters.
  2. Fix test suite deadlock on Ubuntu 2.6.35 kernel

    garlick committed Apr 24, 2011
    In the 'test/kern' tests, the mount system call was hanging because
    'kconjoin', the parent of the client and server in this portion of
    the test suite, was sloppy about closing duplicate file descriptors.
    As a result, the kernel did not see an EOF on its connection to the
    server when the server exited.  This addresses issue #27.
    Also, the server would silently drop connections when deprecated 9P
    ops were received.  The 2.6.35 kernel was an early stage of 9P2000.L
    development where although 9P2000.L was negotiated, it was still sending
    a TSTAT instead of a TGETATTR when handling the mount system call.
    To make debugging this easier, deprecated protocol ops are regognized
    (though not decoded) in the DEBUG_9P_PROTO output, and a message is
    logged when one of these, or any other protocol error, is encountered.
Commits on Apr 23, 2011
  1. Fix configure to find lua on debian/ubuntu

    garlick committed Apr 23, 2011
    Replaced straight AC_CHECK_HEADERS / X_AC_CHECK_CONDLIB calls
    with Reuben Thomas's ax_lua.m4 (slightly modified) from
    git://  Updated README
    with instructions for building on Debian/Ubuntu.  This addresses
    diod issue #21.
Commits on Apr 22, 2011
  1. Refactor loopback transport in valgrind tests.

    garlick committed Apr 22, 2011
    The "ttrans" transport was shared by both tnpsrv and tnpfile
    so pull it out to a separate file, ttrans.c and make it more
    useful with an interface for performing rpc's on the transport
    analagous to the client library.
    misc/t12 (tnpfile under valgrind) became an expected pass after
    these changes.
  2. Drop the upool abstraction from npfs.

    garlick committed Apr 22, 2011
    libdiod/diod_upool.[ch] goes away and libnpfs/user.c does all the
    user lookup functions in a UNIX way.  This facilitated some cleanup
    of error handling (some user lookup errors were fatal in diod_upool.c
    when they shouldn't have been).  Also, it simplified somewhat the
    auth/attach handling code in libnpfs/fcall.c.
    Instead of handing "allsquash" in the upool code, we now simply remap
    fid->user in diod's attach handler, in file system specific code whre it
Commits on Apr 21, 2011
  1. add missing test file

    garlick committed Apr 21, 2011
  2. prep for 1.0pre23 release

    garlick committed Apr 21, 2011
  3. fix daemonization logic

    garlick committed Apr 21, 2011
  4. Put daemonize in the right location with respect to listen

    garlick committed Apr 21, 2011
    socket setup and server thread startup.
    Make tests that require lua run conditionally on its availability.
Commits on Apr 20, 2011
Commits on Apr 19, 2011
  1. have diodctl reap children when it stops with SIGTERM.

    garlick committed Apr 19, 2011
    have diodctl propagate SIGHUP to children.
    Use SIGUSR1 to quietly terminate diod after idle timeout.
  2. - If HAVE_LUA is not defined, don't complain if the config file

    garlick committed Apr 19, 2011
      is unavailable [issue 24]
    - Refactor server start/stop code.  Start a single service thread
      for accepting connections and handling SIGHUP/SIGTERM.
      Tear it down on orderly shutdown.
    - Add np_srv_shutdown () to assist with orderly server teardown.
    - Remove vestigual configure/include of zlib.h.
    -  Drop diod_conf_arm_sighup () and associated thread management.
    - Drop diod_sock_accept_batch () and associated thread management.