Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > f7794aed8da06287bee6f6ac1ef501f6 > files > 4

pwmd-2.18-1.fc14.x86_64.rpm

commit fb5d252114b816c4cd684d853014c66ea57b6320
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Oct 24 18:07:40 2010 -0400

    Version 2.18.

commit 0579dd8247b2d2a97da7a3ef94ba62e86fad28ad
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Oct 24 17:50:45 2010 -0400

    Forgot to include mutex.h in the archive after the rename. Fixed.

commit 21f7141c28d2cbd43b62638f98c145e2a23e38f7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Oct 24 17:28:34 2010 -0400

    Fixed the --convert command line option which was has been broken since
    2.12. hrm.

commit 485dc11fcaea7735c2860f9e87c0748531162961
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Oct 24 11:42:11 2010 -0400

    Fixed CLEARCACHE corrupting the key_cache when clearing all entries.

commit 2f1905af94e4f1287d140ae79375c69d38cde6f6
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Oct 24 10:47:37 2010 -0400

    CLEARCACHE command fix when no filename was specified.

commit 423aa405db83297f3c269478d5569375ae46bd6f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Oct 24 10:04:58 2010 -0400

    Dont try to hold the file mutex when a pinentry is running. This fixes a
    file mutex locking bug. It also changes the behaviour of multiple clients
    trying to use the pinentry. Only one instance of pinentry is used as
    before, but the current client using the pinentry wont hold onto the
    pinentry lock. Another client waiting for the pinentry mutex will get the
    lock after the first clients pinentry returns.

commit 7eabc122f11814bfe543fc8c57ebf6d3b928a71b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Oct 24 08:33:43 2010 -0400

    Added configure option --enable-mutex-debug to only output mutex locking
    info.
    
    Renamed lock.h to mutex.h.

commit 5bdaec31f4ceddd3aff4ba1cf7ea7b2e7a35fc4d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Oct 23 21:15:54 2010 -0400

    Updated docs.

commit 7aa6f1badb40fe3384a972254d8845673b8d4470
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Oct 23 20:40:30 2010 -0400

    gpg-error cleanups.

commit 2b322601c239a13510f8a42e8be42a9a8dfe4741
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Oct 23 19:49:40 2010 -0400

    Include config.h before other headers (it defines _GNU_SOURCE).

commit 61e71be2f499cdea5275239c31abfaab71a86ac5
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Oct 23 13:41:07 2010 -0400

    Cleaned up do_compress().

commit fafd53353a75e42fcb3b1bf76114beb9f311b99d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Oct 23 13:27:56 2010 -0400

    Added magic to the compressed data before encrypting. Invalid passphrases
    are checked against this magic after decrypting and before decompression.

commit 9c5139092f729dc7af0abe30c64971e5729e4016
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Oct 20 19:53:43 2010 -0400

    Increment the cache refcount after locking the file mutex, not before.

commit 64ca05f1874fb2b0fadb3f0072cffefc1932be54
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Oct 19 20:10:50 2010 -0400

    Avoid calling mlockall() in the client_thread(). Only needed once on
    startup.

commit 444014cf8744b3140a3fdd0585bf2e3cbc43fd98
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Oct 19 19:57:52 2010 -0400

    Write a log message on startup when SO_PEERCRED isn't available.

commit 599472e226dab7045179bc8059bcba0e9665a9df
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Oct 19 19:32:57 2010 -0400

    When pinentry is disabled at compile time, return GPG_ERR_NOT_IMPLEMENTED
    for SET options and command options.

commit eb42f5d8b98188ef0f7427ccc8843c80832805ae
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Oct 18 21:13:26 2010 -0400

    If there was a failure opening the log_file then still try to write to
    the syslog or stderr.

commit 492c454ccf79a0ab15b3679101e3251a59788851
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Oct 18 21:05:30 2010 -0400

    A few minor cleanups.

commit d1a64d7178f9b400846fbe0bd1f5ad8edca57e43
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Oct 18 19:59:19 2010 -0400

    Renamed the command option type constants to be less confusing with
    client options.

commit 8b7c28da67efca96148c1765e841afdbc78f6802
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Oct 18 19:50:32 2010 -0400

    Fixed a few potential memory leaks.

commit 8c2a91f008f15b86f318c46eb6e7610aae3d10b0
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Oct 17 20:25:08 2010 -0400

    Added OPEN and SAVE command option --base64 to specify that the key is
    Base64 encoded. This lets binary keys be hashed before encrypting and
    decrypting.

commit dd347a63023597ca6145d0098679269c1c0cbdda
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Oct 17 19:19:10 2010 -0400

    When a "key_file" configuration parameter is specified for an uncached
    file, let the OPEN and SAVE commands use an --inquire to specify the
    passphrase. Otherwise return GPG_ERR_WRONG_KEY_USAGE as usual.

commit f580c2dbd4907d9c25232469e6b7fa242381cc44
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Oct 17 18:59:47 2010 -0400

    Fixed a couple memory leaks.

commit 4d659638b59bd4f5efd36fb24ad359db7bdc4746
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Oct 17 18:48:12 2010 -0400

    Fixed resetting the value of enable_pinentry after doing an inquire with
    the OPEN and SAVE commands.

commit 20de46e5e061b9b2436e23baf3ebaf154c845ef2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Oct 17 17:59:05 2010 -0400

    Added an --inquire option to the SAVE command.

commit 968c000bfc9a1d5129e42af24ba15fad4bc5fc5b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Oct 16 18:20:33 2010 -0400

    Added option --inquire to the OPEN command to retrieve the filename and
    key argument via an assuan inquire. This lets the key be any length and
    not limited to 1000 (or less) bytes.

commit 5e4e119d6f42ed3c264ab4f0c4790b38a35d3052
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Sep 15 19:12:56 2010 -0400

    Let the command option parser return immediately when the option
    terminator -- is found. Behaves like getopt_long().

commit 4c7a389b2e2dce76b2254a9183e1ecca5d337784
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Sep 15 19:10:10 2010 -0400

    Version bump to -git.

commit 26be932deca76ed67bcbe9b0f5cd4a5ed3455c90
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 11 10:16:15 2010 -0400

    Version 2.17.

commit 674fc95be88aee572540c940d1a2e131ebc735c4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 11 10:15:41 2010 -0400

    Fixed typo for including EXTRA_DIST.

commit 74476a0d144ce54064a7bb069d5eece7baf4a7f3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Sep 9 19:54:05 2010 -0400

    Log command options when the log_level is 2 like the SET command does.

commit 564323fcabd74bf54986b96091bc5899dfeb41e1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Sep 9 19:38:01 2010 -0400

    Renamed the --force option to the SAVE command to --reset.

commit 2d61a8c6cdb3debcae361e92b30b7e24d9943293
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Sep 8 21:21:15 2010 -0400

    Re-added the ENABLE_PINENTRY client option to keep backward
    compatibility. Should be considered deprecated.

commit d604cb493209e4ac22585b2fc744dabfe96d3e9d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Sep 8 20:47:43 2010 -0400

    Re-added the LOCK_ON_OPEN client option to keep backward compatibility.
    Should also be considered deprecated.

commit 43fa464eae9287c3a89cd2fda0d7678cb9d57448
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Sep 8 20:23:47 2010 -0400

    Re-added the ITERATIONS client option to keep backward compatibility.
    Should also be considered deprecated.

commit 613d7c4714c9f83225dbfb1b808851aac7d2898a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Sep 8 19:47:12 2010 -0400

    Re-added the CIPHER client option for backward compatibility. Should be
    considered deprecated though.

commit 1879ad374031d35542246b9a6f03b5859633e04b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Sep 8 19:45:14 2010 -0400

    Fixed restoring the cipher from the file header for the next SAVE.

commit 7ce815f215b8944f9527165407893d7c6cf96656
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 4 12:11:34 2010 -0400

    Let the MOVE command update the _mtime of the source and destination
    element paths.

commit 19f0f8eef244a0985b1975d0d29ff5f576f2fe44
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 4 11:48:32 2010 -0400

    Update the _mtime when copying attributes from the source element path.
    The source may have attributes but no children.

commit f851259b0621dc3ed4fc624936f10997628c2de4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 4 11:36:51 2010 -0400

    Fixed renaming the last element of an element path created with the COPY
    command when there were no child elements of the source.

commit aa1814cb2256d94264d1d3ab7be1e7a993c16e0a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 4 11:24:05 2010 -0400

    Let the COPY command update the _mtime of the destination element path.

commit 2754247ab33bd9cbcf8bcd21c46b214b330f37df
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 4 10:41:26 2010 -0400

    Let the IMPORT and RENAME commands update the element _mtime.

commit 1e72d847fbc9e1e98d9ce69ff89fadc7ec72c18d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 4 11:10:54 2010 -0400

    Create an _mtime attribute for new root elements too.

commit 5d7640f6bdf612d183d1b000bfc8983997b5ca16
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Sep 2 19:46:32 2010 -0400

    Fixed pinentry unlocking the file mutex after a SAVE failure when the
    LOCK command had been sent.

commit 389f5fd8c6510cb6679ef9cf23661c27af0b925a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Sep 1 21:02:38 2010 -0400

    Renamed the --norecurse LIST option to --no-recurse.

commit 795bf193f3c370f0dad10e7545a5eaf54d0d865d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Sep 1 20:54:40 2010 -0400

    Reset the pinentry enabled status after commands that modify it with the
    --pinentry option.
    
    Fixed pinentry timeouts.

commit 5dc648a184b8e313b9e4757327635962893c4b1f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Sep 1 20:14:17 2010 -0400

    Added SAVE option --force to clear the cache entry before saving. This
    is a shortcut to using the CLEARCACHE command.

commit a492179dc4bf313d4ddf1b3b2bac27a3ee2390c7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Sep 1 20:05:48 2010 -0400

    When opening another file in the same connection, cleanup the current one
    before parsing options or doing anything else. The currently opened file
    will be closed if there is an error opening the new one. Previously,
    current file was left open.

commit ac0f25238a7f0143d5b991ab54c52cef19a508ab
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Aug 29 16:05:06 2010 -0400

    Updated the debian control file standards version.

commit d5e4e591cd8f39ff841400c2a4173777682fd368
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Aug 29 15:48:38 2010 -0400

    Bump version and append -git to the version string.

commit a07a8e096bdf9b2267cbe12435a2a1e59a6b356a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Aug 29 14:51:54 2010 -0400

    Damn. Fixed the --cipher option to SAVE.

commit 2e03d5ce062c45b6dfb0a601d3c36b527ed423e4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Aug 29 14:36:31 2010 -0400

    Changed the behavior of the --iterations option to the SAVE command. When
    specified without a value then the previous iteration setting will be
    used as if the option wasnt even passed.

commit 39423f5ad585c178af9059db4b0a90e651708499
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Aug 29 11:29:54 2010 -0400

    Let the --cipher option to the SAVE command take an optional argument
    rather than requiring one. When no argument is given then use the current
    cipher for the opened file.

commit 8e662d58f4818b5e42e1ff8de0099ea9562f64e0
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Aug 29 10:32:48 2010 -0400

    Minor fix for the COPY command when merging attributes. Use
    xmlNodeGetContent() to be on the safe side.

commit 535756c3252943ab10fc3bb23aa937acb295b2b4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Aug 29 10:23:08 2010 -0400

    Fixed some formatting and typos.

commit 0bb8789f56321d6c49835a8fa4736fc923ff7fb9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Aug 28 17:24:00 2010 -0400

    Let --iterations to the SAVE command use the configured value when no
    value is specified with the option.

commit 379fa3b91cbfce04cfade6fe8098c8ad1de5f114
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Aug 28 17:19:22 2010 -0400

    Removed client option ENABLE_PINENTRY and added option --pinentry to
    the OPEN and SAVE commands.

commit 5ab43f2bd619a3902e9b333105a8f0f64bb6723e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Aug 28 16:28:38 2010 -0400

    Removed client option CIPHER and added SAVE option --cipher.

commit 3ddb3b0b38bebe9fc43f9695adf77c6eba0fd855
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Aug 28 16:18:02 2010 -0400

    Removed client option ITERATIONS and added SAVE option --iterations.
    
    Rewrote parse_options() to handle values.

commit 68651963883c329be58f94430d915a10f1be6a76
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Aug 26 19:29:56 2010 -0400

    Free (and clear) the client data just before the pinentry process exits.
    The previous commit reverted this action but did it at the wrong time in
    the fork handler. I misread the docs for libpth which says that the
    calling thread still exists along with the forked process. So there was a
    segfault in libpth because the client data was freed.
    
    For me the segfault was triggered after doing an OPEN without any
    pinentry terminal or display options set to let the command return an
    error as expected, then setting the pinentry display and doing the OPEN
    again.

commit f0b8cd7d7de6ff15a6c9caeccde24789758e3109
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Aug 26 19:24:34 2010 -0400

    Revert "Call a child prepare function during the pinentry fork() to release all"
    
    This reverts commit 31ce25291fcb35f954375672a1cbcf6cb5b50091.
    
    Conflicts:
    
    	src/pinentry.c

commit 4c7621a867ef5a1a554cac21fad00e79444997c4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Aug 26 18:14:04 2010 -0400

    Removed client option LOCK_ON_OPEN and added option --lock to the OPEN
    command.

commit 7703febcb58c8fc337282f945dc0760f786b6788
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Aug 25 21:10:55 2010 -0400

    Created a generic option parser for client commands. Only the LIST
    command uses it right now. This removes the VERBOSE_LIST client option
    and makes it a LIST command option --verbose.

commit 71711d25916aac32704150a2f20bdf632a791232
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Aug 22 09:55:12 2010 -0400

    Redid the "norecurse" option of the LIST command to be the first argument.

commit 6b3066b797c45a0d1d6df8598e3fa27e5c4dc966
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Aug 22 09:33:12 2010 -0400

    Added option VERBOSE_LIST. This can be used together with the "norecurse"
    option to the LIST command to limit the amount of data sent to the
    client but also to determine whether an element path in the list has
    children (1) or not (0).

commit a7764ebf201e8cc471b36e1886c58920fd25299e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Aug 14 21:05:50 2010 -0400

    The list command now has an option "norecurse" to list only the root
    elements of the specified element path without showing children.

commit ad883526efc1f0ed6e6d7e77c295e1f9fb19f521
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon May 31 20:49:59 2010 -0400

    Version 2.16.

commit b58632ebd9ccb5b557d708d8838587a8be7c187c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon May 31 20:44:04 2010 -0400

    Added an "_mtime" attribute which is updated after each modification of
    an element.
    
    Fixed to use xmlSetProp().

commit 63abe11b2c6b9d1cc706473446bccdcfc8f9c715
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat May 22 13:41:15 2010 -0400

    Fix for systems without SO_PEERCRED.

commit 8f960b0bc3b8e6e537a180528ab1adbf6c9f6149
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun May 16 16:21:52 2010 -0400

    Version 2.15.

commit 2db78638051c70e3b75518ef934b437da4b35309
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun May 16 16:20:28 2010 -0400

    Show the key file data length when the key file is truncated.

commit b915cd016946ffb5798fc1b6aa7663a2f1ffba7b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun May 16 16:01:55 2010 -0400

    When waiting for the file mutex to be acquired also wait for an FD event
    to determine whether the client disconnected while waiting for the lock.
    This fixes sending the STATUS_CLIENTS message to other connected clients
    rather than having to wait for another connection/disconnection.

commit c9df8f42d2caef037c1d09fd04e0d0d0f8611927
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed May 5 18:43:42 2010 -0400

    Fixed RC_ON_LOCKED and LOCK_ON_OPEN when opening another file in the same
    connection. Also fixed the LOCK command in the same circumstance.

commit 874920544419e06dfc93f37b307a8fb192723aeb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat May 1 18:15:47 2010 -0400

    Version 2.14.

commit f913a394768b5808546aeb5faad96a8167c32a6f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat May 1 17:22:21 2010 -0400

    For data file versions < 2.14 truncate the key file data like the convert
    operation does.

commit dffba5032614bfd952e5f433095a44e9b6a273ed
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat May 1 16:39:31 2010 -0400

    Fixed converting a file with a key file that contained a null byte or
    newline character and warn about the key data being truncated at this
    byte position.
    
    Fixed a memory leak.

commit de2a5e4695061b845dc53809c9683bb33750bf33
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat May 1 15:00:57 2010 -0400

    Updated docs for key_file.

commit 76afe111183db1a754953bf2d8e4d93af84842d1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat May 1 14:21:25 2010 -0400

    Don't attempt to do_cache_push() an already cached file.

commit 5ce5c96f3c3a4054b9a18640c3c96cfadfc1a933
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat May 1 14:17:20 2010 -0400

    Rename client_crypto_s to crypto_s.

commit aaa932e993e950e99213bf8ae4b01acb9a033a39
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat May 1 14:14:22 2010 -0400

    The "key_file" format no longer requires a newline and fixes binary keys
    containing null characters.

commit 4cabdfd5fd0a927eec8bf2441d20b5feadcea6c8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Apr 25 14:16:26 2010 -0400

    Version 2.13.

commit 01d6e60cc2e035657261f1814d302326d2cc6eb3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Apr 25 11:41:57 2010 -0400

    Don't insert any newlines in the pinentry dialog. Let the widget do what
    it wants with it.

commit 9e072ca2504e5cbf95e81eb3b7c3aba575b70212
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Apr 25 11:36:44 2010 -0400

    Fix for the previous commit. Use the global iterations setting when set,
    otherwise use 1 iteration.

commit 266add3fdfd4942e0903815b1908ea225b42fb4d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 24 13:35:54 2010 -0400

    When a key is specified with the SAVE command and the number of
    iterations for the filename is unset (0), reset the iterations to 1.

commit 90f0870943ccca649db919f43d3b2e6e872c1eaf
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 24 08:33:23 2010 -0400

    Removed EPWMD_* error codes which are really GPG_ERR_* codes.

commit 8c776b37c58b56085d34af5fee7153af6eb215bd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Apr 23 20:24:42 2010 -0400

    Fix for the previous commit when there were no children to be copied.

commit 0cc9f110714570222280ef8e3670519185d2e979
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Apr 23 17:37:09 2010 -0400

    Check for memory allocation failure in COPY and MOVE.

commit d19da13abf694e4fb8979b783350f91e96ef1821
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Apr 20 19:24:11 2010 -0400

    Use xmlAddChildList() rather than xmlAddChild() where there are element
    trees involved.

commit f9be179ca7c7f52613591da4636c9e81c50c2762
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Apr 20 18:57:30 2010 -0400

    Fixed a segfault with the COPY command. The parent node wasn't getting
    set when doing xmlAddChild() This also fixes overwriting the destination
    element tree even when the element names were different.

commit 528dba98cdba947c8067626f98dc0930725f77fb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Apr 20 18:51:00 2010 -0400

    Revert "Fixed for the COPY command. May be an libxml2 bug."
    
    This reverts commit 780bc695848c44ac8e11492ef69c2e17cd855577.

commit 780bc695848c44ac8e11492ef69c2e17cd855577
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Apr 19 21:27:00 2010 -0400

    Fixed for the COPY command. May be an libxml2 bug.

commit 358583cacca4e7400f2901ba1d233970518e654a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 17 19:39:36 2010 -0400

    Make the default iteration_progress 1000 iterations.

commit 0403c82cf5fe8b0e773c0585c36d90d47ffebb2d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Apr 15 19:50:59 2010 -0400

    Fixed a memleak for the previous commit.

commit 4b3cda7700478b07bdde1a3109ca9db19b5bfcdc
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Apr 15 19:42:06 2010 -0400

    Return GPG_ERR_TIMEOUT and not GPG_ERR_ASS_WRITE_ERROR when the timeout
    event succeeds in do_assuan_command(). Also check this event before
    others since the others would have failed if the timeout event finished.

commit bce24006311b2e72f27e3dbd4052d89de8084eba
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Apr 15 19:27:38 2010 -0400

    Fixed do_assuan_command() segfaulting do to an invalid free().
    
    Don't create a timeout event in do_assuan_command() if there was none
    specified.

commit d38183fa67158a9b84eb675e2a979df892f8c989
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Apr 15 18:22:54 2010 -0400

    Let the destination path be overwritten with the MOVE command even if the
    destination is of the same element tree rather than returning
    GPG_ERR_CONFLICT.

commit aba0852aac1b1f301c195823cfe27feae1be8a8c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Apr 15 18:11:44 2010 -0400

    Fix for commit 7b306a5 that broke moving to a non-root element of the
    same tree.

commit aebbce3f122d93abe36564fa49a8710f16d7d7d1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 10 20:35:00 2010 -0400

    Version 2.12.

commit 7b306a510b5f95148c6e00a4de63284b0f0c7967
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 10 20:32:24 2010 -0400

    Fixed moving a node to the document root that has the same name as the
    source:
    
    	<test><test><test/></test></test>
    
    	MOVE test<TAB>test [empty dest]
    
    Invalid reference to the rest of the tree since the root node had been
    deleted (dup).

commit b450bdfedb963bff12e83d74b172d1d1ff46656d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Apr 9 19:00:41 2010 -0400

    Better handling of version numbers with only one digit in the minor
    version number.

commit 45c1af536672b6fd3dff65d4efa7bfd4188e60a4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Apr 9 18:31:17 2010 -0400

    Fixed creating non-existing element paths in the MOVE command.

commit edc5665bbaad4d0f1bbbd3a01f8ec7339badfbf0
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Apr 7 18:43:25 2010 -0400

    Ditto commit df04f71 but for non-target elements too.

commit ec2829bc40fcc336835fe3b7ca205b5a9c5e0237
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Apr 6 19:35:14 2010 -0400

    Added client option RC_ON_LOCKED to return an error code rather than send
    a status message when the file mutex is locked. This won't affect other
    mutexes, only the file mutex.

commit 4749f73ec712e17318521384079c04bc1cbefe99
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Apr 5 20:22:03 2010 -0400

    Fixed MOVE'ing a sources' parent element to a child of the sources'
    parent element.

commit 31b1c1a4f1c4812037a4fb7d9a9530ba2d5726e4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Apr 5 20:06:28 2010 -0400

    Fixed a memory leak in MOVE.

commit d28181b042e9bbb0af91efb5a22e67b08d05458e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Apr 5 20:04:52 2010 -0400

    Added the MOVE command.

commit 28fdb1c9aab04aed01b853ed743ba64f2ee71ced
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Apr 5 18:40:52 2010 -0400

    Validate the elements when importing with --import and the IMPORT
    command.

commit df04f71af76c0110ace9cd2c10ec7bc4c4c8d213
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Apr 4 18:28:56 2010 -0400

    Fixed creating an element path that has a child element of the same name
    as the parent.

commit d8724dd48117c21322dc28526deb20612ace33ad
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Apr 4 17:54:23 2010 -0400

    Fix for the RENAME command.

commit 3cdc375b4afdc9f6c04c42b202caca78af0deca0
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Apr 4 17:45:18 2010 -0400

    Another fix for the IMPORT command.

commit c2d342f069a29761046b41606d63474450206fbd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Apr 4 15:33:33 2010 -0400

    Fixed disabling core-dumps again.

commit eaf256a6fba9b624e7707f74b82d0fb20e51b476
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Apr 4 14:40:10 2010 -0400

    Fixed converting from v1 data file to the new element format.

commit 768942a9eee00fb90c25e10ec6e9dbfadc1e6a99
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Apr 4 14:22:28 2010 -0400

    Make that padding to 3 digits.

commit abb439b5dc5f1b7863d6e6f476227110188a6550
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Apr 4 14:15:33 2010 -0400

    Fixed the file header to pad the version to 4 digits.

commit 46545a33e6ded97a4743ee632317a770b36510fb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Apr 4 13:41:55 2010 -0400

    Updated COMMANDS to show the new element format.

commit ca31f3e5c178eb542f6d3d6b580fbf3665068102
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Apr 2 18:30:19 2010 -0400

    Fix for new files.
    
    Fixed the IMPORT command.
    
    Updated the DTD.

commit f47713944d02b87e6196d516da0e98f446ecc59b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Apr 2 18:26:44 2010 -0400

    Don't do LOCK_ON_OPEN if there was a failure somewhere.

commit d351075cf7814b98294735d47e5ce95533b6bd97
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Apr 1 21:53:13 2010 -0400

    Initial support for using attributes as element names. This fixes some
    commonly needed characters in element names becoming XML parsing errors.
    Now an email address is allowed for example. This renames "root" elements
    to "element" and root attributes named "name" to "_name". All other
    elements are renamed to "element" with an attribute "_name" containing
    the old element name value.
    
    The conversion is aborted if an existing "element" or "_name" exists rather
    than overwriting it and a warning is logged.

commit 2a25a8ccad1bac986f594e26913a32b06f408156
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Apr 1 17:57:17 2010 -0400

    Version 2.11.

commit 19b7f93d2db2bd1c5730c66432572df892c9f8c7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Mar 31 21:14:17 2010 -0400

    Re-enable disabling of core dumps.

commit 3d9a3ddc0aee03d5ef440fe11468fc579506fbfd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Mar 31 18:44:11 2010 -0400

    Fixed a segfault in the COPY command.

commit 346385d082fc19a16b63f5a0f32d0cb099bf591a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Mar 30 18:37:12 2010 -0400

    Fixed the COPY command not copying siblings.

commit a22a7b765ce7b52d17cba1fa979d0009d55c3bd0
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Mar 27 10:29:31 2010 -0400

    Version 2.10.

commit 647ff625ad39757507c97da670a1a4344cb1340c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Mar 23 19:49:10 2010 -0400

    Added opertations to XPATHATTR.

commit 6e69aee614b693d80c49bcf37f35a9a19d6664d6
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Mar 23 19:09:48 2010 -0400

    Let the XPATH command return GPG_ERR_ELEMENT_NOT_FOUND rather than
    GPG_ERR_NO_VALUE when the expression matches no elements.

commit 4bf2bc827d039007299213aacc3823f897a7e082
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Mar 23 18:56:23 2010 -0400

    Added the XPATHATTR command. This is like XPATH but will operate on
    attributes of the expression nodeset (create or edit an attribute):
    
        XPATHATTR attrname<TAB>//some_element<TAB>attrvalue
    
    Will create an attribute "attrname" in each element of the document named
    "some_element" with the value "attrvalue".

commit 399ee037cea88da98bc00c6a583e9205be474712
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Mar 22 21:52:06 2010 -0400

    No longer require a value for an attribute set with ATTR SET.
    GPG_ERR_NO_VALUE will be returned from ATTR GET for attributes without a
    value.

commit 0a06d42a310823ef40a4865cbee2e107ee9352ee
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Mar 20 09:35:31 2010 -0400

    Version 2.9.

commit 97db2dc429e853617f8cb5bfc688a43d88c63c08
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Mar 19 19:36:46 2010 -0400

    Use libassuans SO_PEERCRED thing. It existed prior to libassuan 2.0 but
    for some reason wasn't added as a feature to pwmd before.

commit 76a61fed19a73ee4bc11be72ee0373b2669930df
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Mar 19 19:28:28 2010 -0400

    Revert "Ported to libassuan 2.0. This version supports building a DSO so no"
    
    This reverts commit 618b1d730306484ba59e776d136c5ca7fb76a493.
    
    Conflicts:
    
    	src/commands.c
    
    Since libassuan 2.0 is a DSO, which is good, but has the problem of not
    being able to create an assuan_context_t from an existing file descriptor
    (still), then libpwmd can't use it. This revert is needed because error
    codes have changed during the upgrade to libassuan 2.0. So an error
    returned from pwmd to libpwmd would be incorrectly shown in libpwmd. A
    static library could be created for libpwmd just like is done now, but
    this has the problem that an application linking with an external
    libassuan would run into symbol collisions.

commit b6e8cb375c434c588531396a9b15214711a0cd9f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Mar 15 19:40:20 2010 -0400

    Let the debian package depend on pinentry-qt4 too.

commit 07f1e451e01f0eda355c19474d8d7741c981b1bb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Mar 15 19:19:49 2010 -0400

    Added the LS command to list the filenames in data_directory.

commit fce7761a3a2924de08003f500015c55e41e7c50d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Mar 15 18:38:06 2010 -0400

    Added option LOCK_ON_OPEN to lock the file mutex as if the LOCK command
    was sent.

commit 00066d9e00fefb2f6a3619fc7538b85c81541403
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Mar 14 11:27:23 2010 -0400

    Fixed a bug in the RENAME command that would return an error even after
    successfully renaming the element.

commit 2edb7ad97729e45d2451793136ca5dbb22e9139a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Mar 6 14:25:54 2010 -0500

    Version 2.8.

commit fbf03b51b42ab3f9e1a0917a0f6ed24db60a1c54
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Mar 6 14:05:38 2010 -0500

    Better documentation for the "target" attribute.

commit 2d12dd7507a2fb08f1782aa82a8adbe0a184a5da
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Mar 4 18:38:53 2010 -0500

    Use xmlValidateName() to determine if an element contains invalid
    characters.

commit 19c678498afa95e68e2a521df195d36a84777788
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Mar 3 19:54:59 2010 -0500

    Only check for ASCII characters in valid_xml_element() without
    considering unicode characters. This should be fine since only ASCII is
    considered during element processing anyway.

commit 9ae1b2da9379c0d54371b7b5579b19e2e528d389
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Mar 3 19:44:49 2010 -0500

    Don't consider unicode strings for comparison of the "name" and "target"
    attributes.

commit b624de8dbaeb9fa260479475b265c7653dbb2df9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Mar 3 18:40:49 2010 -0500

    Always treat the destination element name of the RENAME command as a
    literal element even when a "target" attribute exists.

commit 1487b91809b1fa56f916092b2fd6d8dd53f5985e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Mar 2 21:49:48 2010 -0500

    A fix for the RENAME command to handle targets and ambiguities. Damn I'm
    getting sloppy lately.

commit ada7554edc3712112ec67e793f9c80b615a19905
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Feb 28 10:07:36 2010 -0500

    Version 2.7.

commit b3d265ad34a37264f5b6ffab54b6ff0786414944
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Feb 28 10:06:49 2010 -0500

    Fix for the previous commit which may have overwritten a root element
    rather than an element of the same name as a root element in a tree.

commit 39ecbbe115efa0b8fc7ed1b4fd73a68d12d99ad3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Feb 28 08:57:33 2010 -0500

    Fixed the RENAME command creating new elements with the same name as the
    value. The element of the same name is now overwritten.

commit 4d0c32fc2acb39561660556c4e02b6222856137b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Feb 28 08:38:37 2010 -0500

    Fixed a memory leak in the COPY command.

commit f65bcbc01417ee9072e623bedef943684aeb5d1b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Feb 28 08:00:54 2010 -0500

    Fixed literal root element names in the COPY command.

commit 053c0e24d784f3c5ebf91a849558bf7c123870e7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Feb 27 19:54:15 2010 -0500

    Fixed the COPY command to copy attributes and handle the "target"
    attribute properly. Also fixed copying root element without other
    elements in the source element path.

commit 2190404b02deb5768dd130128298d57dd24fafae
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Feb 21 10:49:54 2010 -0500

    Set the target parameter to find_root_element() and find_elements() after
    determining whether a "target" attribute exists or not. For use with the
    stop parameter of these functions.

commit e1ce2ba5487cc82aab9bf067dc316812920b0627
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Feb 21 09:25:09 2010 -0500

    Always allocate the return value from threads spawned from
    do_assuan_command() since they may be cancelled and to let the cleanup
    function free them.

commit fdb275fb88b61107ccb4a896f33dc4baf03b95e8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Feb 20 18:34:27 2010 -0500

    Fixed pinentry memleak with OPEN and SAVE.

commit 8849b18acd98dd3b7ad84ff233ff4eda35bd5846
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Feb 20 17:44:44 2010 -0500

    Fixed a memory leak in the SAVE command.

commit 22e9edc205fce85ab03c1fcece7c8f651e34afa1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Feb 20 17:43:57 2010 -0500

    Added backtracing of the custom memory allocators since Valgrind doesn't
    like threads.

commit 720a5c31815d1a76e111fa3bab436df55a9043a7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Feb 20 09:31:08 2010 -0500

    Handle SIGABRT properly.

commit 1c2eb4f0a70bec2ccb1ca2e46a5cc6b86b982bc1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Feb 20 09:13:54 2010 -0500

    Made the custom memory (de)allocators C99 compliant.

commit 1c00ed745379c1880c3f1d8419ac772d983e7be8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Feb 20 08:54:24 2010 -0500

    Removed references to "account" elements including functions and
    comments.

commit 0e1973f1d81bb0ebb99a52d2feb7267727cbf4cf
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Feb 19 19:42:38 2010 -0500

    Created rcfile.[ch].

commit 9d589126f3e81dd9ea491152d05eadefee14d522
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Feb 18 19:19:20 2010 -0500

    Fixed a memory leak in validate_peer() and a potential memory leak in
    find_account().

commit 4f1e492048000935e770d313e018e0d50e3a9641
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Feb 17 18:41:24 2010 -0500

    Version 2.6.

commit 963d68f7d6ef9856c61bc6cc60445047487c863b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Feb 16 21:11:09 2010 -0500

    Disable keepalives by default. Will problably be removed in a later
    version since it really serves no purpose.

commit 8456f66b4e216dae920caec8dc882e5686d82224
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Feb 16 20:56:07 2010 -0500

    Fix for commit a21420fa4. Not thread safe.

commit 3dfca5f8cd829a0399eccf4a0e9cc8c6a608e95b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Feb 11 18:31:21 2010 -0500

    Version 2.5.

commit 7ddfbd7698663b3a9b3b8fe008633d6d742ab860
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Feb 9 19:57:07 2010 -0500

    Fixed the IMPORT command to let it handle "target" attributes properly.

commit c0e76c3483aafade2fd576ecd0ae478d4f7c0771
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Feb 9 19:40:52 2010 -0500

    Don't reset the "allowed" parameter after receiving SIGHUP.
    
    Let "disable_list_and_dump" be resetable during SIGHUP but only if not
    permissive (TRUE).

commit 1008ce4b045a9bb009263d12e8c8691fcb21e40b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Feb 8 22:12:35 2010 -0500

    Updated the docs of the "allowed" parameter. The list must not contain
    trailing characters after the separator.

commit 129fdd19e28d14ebd93d789878ec02e1307ca22b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Feb 8 22:02:36 2010 -0500

    Added configuration parameter "allowed". When not set, only the invoking
    user of pwmd may connect to the socket. Otherwise it's a comma separated
    list of user or groups names that may connect.

commit 8329c451542f8a93a7a053f1db6531e2f02f89e8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Feb 7 19:10:28 2010 -0500

    Version 2.4.

commit 2f2fb55e49d484ea2045f0f8e35b977636b0c7dd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Feb 7 19:09:50 2010 -0500

    Update debian packaging stuff although no libassuan 2.0 package exists
    yet.

commit 7c0bac25bcbebfaedab5e02ea7c1e2ba7037e88c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Feb 7 17:41:41 2010 -0500

    Don't fail if configure can't find a C99 compiler. Only warn.

commit 07fe5e3e81ef1bf8daa0acaebe5b3ebab1542a0a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Feb 7 17:09:05 2010 -0500

    Show the error string when importing and pinentry fails.
    
    Return GPG_ERR_ASSUAN_SERVER_FAULT instead of GPG_ERR_CANCELED when
    DISPLAY and TERM are unavailable.

commit a21420fa4e9c763168a549a3315e7c9f2dec2f90
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Feb 7 16:42:25 2010 -0500

    Fixed bad code for void* callback arguments.

commit 9579febbd6c9993b7408f7006e4f9cd8e78f345d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Feb 7 16:34:37 2010 -0500

    Since guint64 is really an unsigned long dont cast it as unsigned long
    long in places. Also in set_unset_common() use a guint64 and strtoul()
    to detect negative values (syntax errors).

commit 9a68e37958b26fa9eb54ac0bf0f4c89a4ba729e9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Feb 7 15:29:11 2010 -0500

    Revert "Fix for commit 9d13059 and wreckless 64-bit additions."
    
    This reverts commit 65e4ed0eeb7cd124e4c2bd444661d903632ea74c.
    
    After doing some more testing, I remember why now.

commit b1379237988f02714422d149ecbd2044cb9c6ad8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Feb 7 08:28:20 2010 -0500

    Fixed a potential memory leak with IMPORT.

commit 0f65b19772ebd3b6950c79e34095421ac843b0fb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Feb 7 08:06:03 2010 -0500

    Fixed a somewhat major memory leak in find_account().

commit 498c94dbc6603c7b682528d42ca69252b5dfc0e8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Feb 7 08:02:17 2010 -0500

    Reworked the IMPORT command to let it create root elements. The syntax
    has changed to have the content as the first argument and the element
    path, if any, as the remaining arguments after the content which is now
    TAB separated. This added another parameter to find_account().

commit 780914aa12469d0e2b1ff0bf8ba44d0db977aa0e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Feb 6 18:39:07 2010 -0500

    Changed how the "target" attribute value is stored in the document.
    Rather than storing the resolved destination argument, first check to see
    if the element path (which may contain other target attributes) is valid
    then store the original path as the "target" attribute value. For
    example:
    
    	<pwmd>
    		<root name="a"></root>
    		<root name="b" target="a"></root>
    		<root name="c" target="b"></root>
    	</pwmd>
    
    Previouly, the root element "c" would contain the target attribute with
    the value of "a" because root element "b" would be resolved to root
    element "a". Now "c" will resolve to "a" only by resolving "b".

commit 65e4ed0eeb7cd124e4c2bd444661d903632ea74c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Feb 6 17:54:04 2010 -0500

    Fix for commit 9d13059 and wreckless 64-bit additions.
    
    Also fixed bad code for void* callback arguments.

commit 1c2509918ae193a9eda3bbc0ecdbd5eafd0e76e2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 17 08:30:39 2010 -0500

    Version 2.3.

commit e8edc8713c8aaebfc4945c74e45e984a73e8ecbe
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 17 08:19:24 2010 -0500

    Added the copyright year to --version.

commit 238b8d931fca33f7e486011e2ed5f40656a1fb6a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 17 08:18:06 2010 -0500

    Updated the copyright header for 2010.

commit 81debfbc2e6007aa1700dd30ebbbd7b13afb5775
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 17 08:11:07 2010 -0500

    --enable-quality compile time fix.

commit 6bd00710996a7253a4e4ccee0c85b416c3cc59f3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 17 07:32:15 2010 -0500

    Fixed the COPY command only copying the first child node and not the
    entire tree. Hrm.

commit 618b1d730306484ba59e776d136c5ca7fb76a493
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 9 08:48:43 2010 -0500

    Ported to libassuan 2.0. This version supports building a DSO so no
    in-tree libassuan is needed.

commit c893980df27ec96bd1a1e6479d89d19a3d4a3261
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Nov 27 08:57:51 2009 -0500

    Unset the DISPLAY and TERM environment variables just before forking.  A
    client should set these manually or configure ~/.pwmd/pinentry.conf. This
    fixes trying to use a pinentry which previously had a DISPLAY available
    in the environment which no longer exists.

commit ce4ac04e30eea2f817729627120791ebb12e69ed
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Aug 9 17:29:09 2009 -0400

    pth_join() the cancelled assuan command thread.

commit d92397c68b75bb5760d6bb6dfb59c89a77898c33
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jul 19 20:34:01 2009 -0400

    Version 2.2.

commit 33081850005c0ec5663544391acea2ac7d83a9c8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jul 13 21:06:52 2009 -0400

    Fixed pushing unencrypted files into the cache.

commit 6619b64475b7ff32b130f8ace01f7a7864bc0630
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jul 8 19:57:14 2009 -0400

    Version 2.1.

commit eabcb4960d0e6f8e1c28b93a46ed28a8bf0546d8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jul 8 19:56:38 2009 -0400

    Fixed caching files on startup.

commit 4d47f4c7ecee4e69f6843cf64337671ea48ad6e8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jul 5 20:32:07 2009 -0400

    Require libgcrypt 1.3.1 since this version adds support for the CAMELLIA
    ciphers.

commit 535c676d9eff9d106af792f60150e2f85c17904d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jul 3 20:30:48 2009 -0400

    Fixed an FD leak when debug_file was specified.

commit b821345cd78e0b4f08026ea9c9eff4b4a90acaa1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jul 3 17:17:57 2009 -0400

    Added the "debug_file" configuration parameter to log all protocol IO to the
    specified file.

commit 9d13059e79813a90212e0493278073fbe6c6b659
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jul 3 11:26:04 2009 -0400

    A few fixes for 64-bit machines.

commit efa6067ca6128fa12fa068ad841fcb6db5a86b8f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jul 2 20:04:02 2009 -0400

    Fixed converting an unencrypted data file.

commit a28279d9d2154d39edc8756eeb95f0f9d2fa1e33
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jul 1 22:41:19 2009 -0400

    Fixed importing and iterations.

commit 832f07fa6616997d1ac53bbc78f32668b94f6328
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jul 1 23:02:51 2009 -0400

    Fixed converting a data file.

commit 4ce3176390105d2629f2a736b8a8df7d93553636
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jul 1 20:58:07 2009 -0400

    Fail when gcry_check_version() does.
    
    gint and gchar fixes.

commit c942cda09a85d766b757ffd4537a23d1f828634e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jun 30 22:26:32 2009 -0400

    Added get_key_file_double(). Use this in places where needed rather than
    get_key_file_integer().

commit 832f4ce88757190fd29ec9bfd3f57099f7cab053
Author: me <bjk@luxsci.net>
Date:   Mon Jun 29 21:39:03 2009 -0400

    Fixed checking if the destination is a valid element path in the COPY
    command.
    
    Minor cleanups.

commit 30ef86e537d397e21e8318af4878b3c4d4355ba4
Author: me <bjk@luxsci.net>
Date:   Mon Jun 29 21:02:24 2009 -0400

    Fix for commit 52ff658.

commit b5de168bd479c64b149f83d88646ecefe4c879ce
Author: me <bjk@luxsci.net>
Date:   Mon Jun 29 20:59:27 2009 -0400

    Added the COPY command.

commit aec71025a69c107090d2b06ade9ba93fc51b0b3c
Author: me <bjk@luxsci.net>
Date:   Mon Jun 29 19:14:55 2009 -0400

    Added the RENAME command to rename a node.

commit 38e23ca1062246e9cf5ad82b20c554618e03704d
Author: me <bjk@luxsci.net>
Date:   Sun Jun 28 16:38:11 2009 -0400

    Fixed the logged rc of a command that fails at command_startup().

commit 52ff65843bf5c511845d05c717b2aa8f9fd03090
Author: me <bjk@luxsci.net>
Date:   Sun Jun 28 16:33:55 2009 -0400

    When a passphrase is used with the OPEN command and the specified file
    has already been cached, use the passphrase argument when trying to
    decrypt. This fixes a false positive that the OPEN command may succeed
    with the wrong specified passphrase.

commit 7869137dd80d957e595c8944f29e074ba7c48182
Author: me <bjk@luxsci.net>
Date:   Sun Jun 28 16:31:33 2009 -0400

    Added the "log_level" configuration parameter.

commit b2ca771f47434c961771f1298e6d0a249976b9b4
Author: me <bjk@luxsci.net>
Date:   Sat Jun 27 20:17:51 2009 -0400

    Fixed the magic file.

commit 0d5e77d15cc7bac4481135fd62a34756d9819fe6
Author: me <bjk@luxsci.net>
Date:   Sat Jun 27 18:02:32 2009 -0400

    Added specifying the cipher to use when doing a SAVE. This adds a new SET
    CIPHER option.
    
    This also adds a new "cipher" configuration file option.
    
    The default (AES256) is also used when importing and converting.

commit aacafd7912531283e5ecd40e98fefbadb9bfa16f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun May 24 18:23:51 2009 -0400

    Add an "age" attribute to the "pwmd" element after each SAVE.

commit e702204b3413cb493d8319485178dcd3e0ef9cdc
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue May 19 21:55:02 2009 -0400

    Fixed calculating the size of the crypto->inbuf when encrypting.

commit d929d74512069b8361be284320509efeff197a69
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Apr 26 08:59:43 2009 -0400

    Version 2.0.

commit bed56d46759cc0f83c9b1e7606429becc145d1e9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 25 20:13:12 2009 -0400

    Fix for commit 4b32921. Unlock the cache mutex.

commit a0c98b64708f58716a35ec131f91e990346790eb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 25 16:12:44 2009 -0400

    Use g_ascii_strcasecmp() and not g_strcmp0(). g_strcmp0() was added in
    later versions of libglib and really isn't needed.

commit b9a60d5213d3ad5f2bcee33816a75fa768f18f19
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 25 15:53:55 2009 -0400

    Updated po/.
    
    Truncated the debian/changelog.

commit 87f08f7ec42802ae06ef2e730755c1daea8ba82e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 25 15:52:19 2009 -0400

    Compare a valid passphrase against "<?xml ". Skip the version string
    just in case libxml2 changes the order of the attributes in a later
    version. I don't think theres a standard for the order of attributes.

commit ffeaf7825e157c1eb02a62f8c177182ecd06e6bf
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 25 15:39:08 2009 -0400

    Updated the documentation.

commit 76e73073686b47972f5e9453ad5985025818919d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 25 15:37:48 2009 -0400

    Fixed pinentry_timeout in a file section. Set this before forking the
    pinentry process.

commit aa63a85f30c41aa9b7e0f51e23ec6ad404f4adf9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 25 14:47:59 2009 -0400

    Added getopt_long.[ch].

commit e5cc744fd3e4268269b182f053d2515f7f7452fc
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 25 14:09:32 2009 -0400

    Prevent a memory leak when parsing pinentry.conf.

commit af7487549aa97a61f2f69e793a8f26fd0bdc6d2a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 25 13:39:17 2009 -0400

    Make sure the pth_msgport_t exists before trying to lock it's mutex in
    send_status_all().  Fixes deadlocks when a client is exiting and another
    is starting up.
    
    A few minor fixes and cleanups.

commit e3343becdd6b7f09eebd99ba2afa4511513956eb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 25 10:31:22 2009 -0400

    Use a mutex when accessing the client pth_msgport_t.

commit 00bd3192c2739d87b7b7041b0b8db4b8740ef42f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 25 09:55:35 2009 -0400

    Switched the CACHETIMEOUT seconds and filename arguments to keep
    consistancy with other commands. Also make sure the timeout is > -1.

commit 4b32921916566f7aad4fb45634e174e9eb26da1b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 25 09:50:21 2009 -0400

    Have ISCACHED check for a cache entry before the filesystem.

commit 64cf02d553246140384cde94ee63f397ec2f396f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 25 09:03:38 2009 -0400

    Require a C99 compiler.
    
    Fixed some -pedantic warnings.
    
    A couple of WITH_PINENTRY fixes.

commit aefb498a0b3b8bf08c431e86f1b120b5568b910d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 25 08:11:33 2009 -0400

    Match internal assuan protocol commands in command_startup(). Fixes
    writing an error after the client sends the BYE command.

commit eed44d395a30e7137755c199d0501cb306ded8ac
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Apr 24 20:25:12 2009 -0400

    Use assuan_register_pre_cmd_notify(). This is a patch to libassuan.

commit 272e50b58a45d76ed62df888e1ed7baaecce5776
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Apr 24 19:59:06 2009 -0400

    Include libassuan statically.

commit d4302153ffe6920df448ab51fadf437218f7593b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Apr 24 16:38:08 2009 -0400

    Removed obsolete error codes.

commit 0145c56f3b3fdfbce3b2161d9682d9d1b47356b9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Apr 23 22:35:03 2009 -0400

    Added configure --enable-acl. This will retain an ACL for a data file or
    inherit the ACL of the data_directory if a new file.

commit f1743231e6529a265fa39d5ab26d79f2466b481d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Apr 23 21:17:34 2009 -0400

    Updated GETCONFIG in the COMMANDS documentation.

commit 872df12cacc1575b66a19bb3b3670e94368b9cff
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Apr 23 21:04:06 2009 -0400

    Renamed SET parameters: PINENTRY -> ENABLE_PINENTRY,
    TIMEOUT -> PINENTRY_TIMEOUT, PATH -> PINENTRY_PATH.
    
    The configured values (from the rcfile or from a SET command) for
    "pinentry_timeout" and "enable_pinentry" are now file specific.

commit f3e5f400bfadf19b9c67033bb6fb59bddcee46b1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Apr 23 19:46:42 2009 -0400

    Added configuration parameter "pinentry_path".

commit 12e38b93252137837ca171be0e04f42c5f789138
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Apr 23 19:26:37 2009 -0400

    Removed option CLIENT. The sub-option NAME can be set with SET.

commit 31ce25291fcb35f954375672a1cbcf6cb5b50091
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Apr 22 22:15:38 2009 -0400

    Call a child prepare function during the pinentry fork() to release all
    inherited mutexes. Fixes a segfault in libpth at pth_ring_append().

commit c0b164794951f814dd749a05ca145931834dc8ee
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Apr 22 21:27:16 2009 -0400

    Fixed do_assuan_command() to cancel the callback thread in case it is
    cancelled itself.

commit 32cdff3e7a87d550ed39f27b89172cb06392574e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Apr 22 21:12:25 2009 -0400

    The VERSION command outputs the hexidecimal version rather than a
    string.

commit 8103fe2e47b58128786fe145d3f6757e0f241d69
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Apr 22 21:11:14 2009 -0400

    Lots of pth_cleanup_push()/pop() and pth_cancel_point() fixes and
    cleanups.

commit 657892545f117ceb02b6f1ac3924305cdd1b260d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Apr 21 21:47:45 2009 -0400

    Since cracklib uses locale specific strings, do the same when comparing
    pinentry quality strings. This whole scheme is kinda hokey. Need a
    better way.

commit e6ce8e80d57dfebcb3608056b2de24379fce991c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Apr 21 21:36:59 2009 -0400

    Added the SET and UNSET command which replace the OPTION command.
    
    SET ITERATIONS requires an open file.
    
    Setting a value to "NULL" won't work like it used to. Use UNSET instead.

commit 84bc1fbc2e8b4f46dba7e83e109620636359be63
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Apr 20 22:15:39 2009 -0400

    Forgot to destroy the pth_msgport_t. Fixed.

commit 86d26cd770c9fedf33c0739c412cba02ffb57306
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Apr 20 22:12:00 2009 -0400

    Use a pth_msgport_t for message passing. Also wait for an PTH_EVENT_MSG
    event in client_msg_thread().

commit 2450e839379f2495f8b17b79222d3f5baf64d964
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Apr 20 21:30:59 2009 -0400

    keepalive_thread() cleanup. Also fixes a segfault when doing a SIGHUP.

commit 9c4d412cf085934c52298de7216f871dbc249e94
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Apr 19 16:58:42 2009 -0400

    Fixed a libxml2 warning when converting a data file with -C.

commit e0427a3dff6317880dfb4721fa57f9f7d09608ac
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Apr 19 15:46:14 2009 -0400

    Fixed "GETCONFIG <filename> ITERATIONS" after "OPTION ITERATIONS" for an
    opened file.

commit 89822cfaee52165a35637e3b09aa8de76187a08c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Apr 19 15:34:30 2009 -0400

    Changed how "GETCONFIG ITERATIONS" works. If there is a file specified,
    and not the currently opened file, read the file header of the specified
    file and return the result. Otherwise, use the current setting of the
    opened file or the global setting if no file has been opened yet. This
    allows a client to determine if a pinentry is needed or not (the file is
    not encrypted: iterations=0).

commit 85ab3b266912a1ee26aa2d8e9b40482d401502e8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Apr 19 14:45:44 2009 -0400

    Flush the data buffer before sending the final XFER status message.

commit 1012c20b6d89d278e79f3040294135bc017b0506
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Apr 19 11:20:29 2009 -0400

    Changed the file header again.
    
    Added doc/magic for use with file(1).

commit 651ec65aa521433012f652294b6f090caacb3f8e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Apr 19 08:58:22 2009 -0400

    Fixed a memory leak in do_assuan_command().

commit 9afc18c0a1ec9fa13b79e89b8c7eef763bd07089
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Apr 19 08:44:11 2009 -0400

    Fixed "xfer_progress=0".

commit a3e82ae096ba8f8050167a1ca7d498cc10108609
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Apr 19 08:40:39 2009 -0400

    Added configuration parameter "xfer_progress" to specify the number of
    bytes (rounded to ASSUAN_LINELENGTH) before sending the XFER status
    message.

commit 7f4fb6e16f9f503587f03245b4f740c74c8ab89b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Apr 19 08:02:29 2009 -0400

    When doing an INQUIRE, append an event to wait for the FD to become
    writeable in client_thread().

commit 7478252f813e2437144a6142895ac38ba0d397cb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 18 22:21:16 2009 -0400

    All commands that send data use do_assuan_command() or xfer_data(). This
    allows a timeout to be set before the specified cb (thread) terminates.

commit 71b5ea2d586c9a8fdc6979dfd0a51205369f7988
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 18 20:25:55 2009 -0400

    The XFER status message is sent with the LIST, DUMP and XPATH command
    along with GET.

commit 8ed20dba4b3e64e382693e25f3e4aba7f159fb15
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 18 20:13:08 2009 -0400

    Log what socket this invokation is listening on.

commit d742035309ed37658ed3f1a12d421d66bb25b484
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 18 20:05:32 2009 -0400

    Initialize the pin mutex when converting (-C).

commit f2ee840b7a30cfd9342a09a5ad9818892a01b9bb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 18 19:53:30 2009 -0400

    Require automake 2.60.
    
    Use AC_USE_SYSTEM_EXTENTIONS().

commit b201c8580550b0b6a7d36b06679a86ee664080c6
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 18 19:13:24 2009 -0400

    Removed EPWMD_FILE_ACCESS.

commit 35e160c3ee1c9f5cadedd32e1411ad5c25564dc2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 18 19:10:53 2009 -0400

    Set the client name in the pinentry dialog (OPTION CLIENT NAME).

commit 2b616984871dbe7f1cd045c3c4ae728f17fa84f8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 18 18:26:17 2009 -0400

    Minor cleanup. Removed cleanup_crypto_handler().

commit 3fdcefeadc7ee958edeb8976cc32fafa0031a4bd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 18 13:30:28 2009 -0400

    No need to create an extra thread in client_msg_thread(). Call
    send_status() directly which already creates a new thread to do the
    actual sending of the status message letting other (client) threads do
    their work.

commit db9793cd7b66367703e58989d07bb5869ee4bbcb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 11 14:06:19 2009 -0400

    Added a new status message XFER for use with the GET command.

commit e748399b7ffc3f40f8de8ba32601b5dbf489771a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 4 09:30:40 2009 -0400

    When an option value string is NULL, reset it to the default value.

commit 158955814ea72e539968808d2bf6ed95e98b7780
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Apr 2 20:06:43 2009 -0400

    Let ISCACHED check for file existence with access(2). If an error occurs
    accessing the file return the errno.
    
    Also make sure the filename is a valid one with valid_filename().

commit e25cadd6ce19edc5bc96b2c29a9539887863d196
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Mar 21 16:33:24 2009 -0400

    Wait for the write_status_thread() to return (or timeout) in
    send_status() rather than waiting for a pipe FD to become readable.

commit 6c3e0a554576ae0caa0e183d98eaf798955b6a71
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Mar 21 15:47:24 2009 -0400

    Compare only "<?xml version=" in the decrypted document to determine
    whether the passphrase was correct. Newer versions of libxml now include
    an "encoding" attribute which prevents try_xml_decrypt() from
    succeeding after saving.

commit c932cc44b492eb4e10a395e7cd4300b5c39f0808
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Mar 21 15:34:39 2009 -0400

    Make client_msg_thread() joinable.

commit b9baba3c7861025040c59bf8ef25b98750fd3c5f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Mar 21 15:20:17 2009 -0400

    Use g_get_home_dir() instead.
    
    A couple of minor cleanups.

commit b6545f9d5cdb0997bcea14fbcc462d09535bb51c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Mar 19 22:09:15 2009 -0400

    Removed all tcp/remote/GnuTLS support. Remote connections can be made by
    using an SSH server and SSH client (libpwmd v6 (not yet released)).

commit 3b69656c9242542e15828081736fc4796e54632d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Mar 8 13:21:02 2009 -0400

    Fix tls.c compile-time warning.

commit 380459843b2ce77aaeee31ae6f1da66301e21305
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Mar 8 13:11:04 2009 -0400

    Dont link with -lrt or -lpthread

commit 147f9bb512220363a5d82fdb14a50330242247a6
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Mar 8 13:03:01 2009 -0400

    Removed acinclude.m4.

commit df2bce44795e44f9bda3036091597649cdc56649
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Mar 8 12:56:44 2009 -0400

    Check for EDEADLK in MUTEX_UNLOCK. It can be ignored since EDEADLK in
    this case only means that the mutex isn't locked.
    
    In cleanup_cb(), log the exit before freeing the client_thread_s.

commit a600049c8b087a5f490aecda91bec1a676e7c0a3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Mar 8 12:25:27 2009 -0400

    Wait for thread TID events which are triggered when a thread terminates
    while exiting.

commit 939f73cf7df85180f15f33d93a1b0dc7d5cde621
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Mar 8 11:48:53 2009 -0400

    Catch SIGABRT, but not SIGUSR2.

commit ee66b802da8bdca54bf7d6dc414c1145ead004fd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Mar 8 11:40:53 2009 -0400

    Check the return value from pth_spawn().

commit 75d105dbf2cd145bd32d0a59a8f343a6afd04623
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Mar 8 11:14:36 2009 -0400

    Minor cleanups.

commit fa0cebb9ded9a16344e3160f11585e0e01ee966c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Mar 8 10:54:38 2009 -0400

    Use thread-safe libgcrypt and libgpg-error functions. Only call the new
    _gpg_strerror() which is a wrapper for gpg_strerror_r(). The string is
    g_strdup()'d and freed when the thread terminates.

commit f673f3c713a666ce9a8ce19fba6f6506203f0029
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Mar 8 10:25:14 2009 -0400

    Dont write a log message in MUTEX_TRYLOCK.

commit 42feeb52c8c2206dedc557c57bf0c1b3de4884c9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Mar 8 10:19:28 2009 -0400

    Use MUTEX_TRYLOCK everywhere STATUS_LOCKED is sent. This changes how
    often those status messages are sent. Rather than once every second,
    send it only once and wait to acquire the mutex. It's quicker, since the
    lock can be obtained right away. The logic before was that if the client
    disconnected while waiting for a lock then there wouldn't be a way to
    terminate the thread. So use KEEPALIVE status messages instead to test
    the client connectivity; the thread can be cancelled while waiting for a
    mutex (pth_wait() in libpth is used), untested though.

commit a8ff587626be9799d328e78eba023a4453b6b35b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Mar 8 09:38:05 2009 -0400

    Fixed unlock_file_mutex() releasing the unlocked mutex (MUTEX_UNLOCK
    return value).

commit fdb28198d310cc194c8e28a386c1862bd09d5b0e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Mar 8 09:31:45 2009 -0400

    check the return of pth_mutex_acquire and pth_mutex_release in lock.h

commit 61b5da9c378d03f26ce5bc23e97bd1c5dd86f8e7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Mar 7 09:19:54 2009 -0500

    squash before commiting to master. this is the initial revert to v2
    pthread ported to pth.

commit 508485b9eabd7f944ae69cf736f349a83c78298f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Feb 25 19:44:00 2009 -0500

    Use "git log" not "git-log" in the Makefile 'changelog' target.

commit 528350a0063831e8ceff11286a5895b83241b0e9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Feb 24 20:08:09 2009 -0500

    Added OPTION LC_CTYPE and OPTION LC_MESSAGES. Both of these can also be
    set in ~/.pwmd/pinentry.conf.

commit 6d0f949c743a41205516611769b7e1412c66a28d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Feb 7 14:44:42 2009 -0500

    Fixed a typo in the previous commit. Destroy the cond, not the mutex.

commit 492a1358e1f80b87d1dd3f1dcccb83503789fa3f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Feb 7 14:34:11 2009 -0500

    Fixed keepalive_thread() to use a local condition and mutex.

commit 571c5becd68a9d52c5b5a0f91f177365fca0a0f8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Feb 7 14:01:35 2009 -0500

    Fixed aborting the connection when the configured keepalive value is set
    to 0. Use a default of 30 seconds in this case.

commit f5750bd6619ecb73babb6cb025b2548e8fa1dd03
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Feb 7 09:33:34 2009 -0500

    Moved client_msg_thread() and client_msg_sender_thread() to status.c.

commit 456926a6cef514b238006b9ba6583e77df254b93
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Feb 7 09:01:26 2009 -0500

    Created status.c.

commit c4489becd33af6988a0a5bc465535aa8755d5e4b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Feb 6 23:44:40 2009 -0500

    After sending a status message to send_status(), create a new thread
    that will do the actual call to assuan_send_status(). send_status() will
    then wait for the thread to write to a pipe(2) that contains the return
    code. This is needed because assuan_send_status() may hang during the
    write() to the client (the client has exited). A timeout is used to
    terminate the created thread and return an error. The timeout that is
    used is the same as the "keepalive" configuration parameter.

commit a43506fdd17406a33217c4138da1a8dd6ac3f7c4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Feb 6 22:01:17 2009 -0500

    Remove the exiting client from the client list as soon as possible so
    the cn_mutex can be released.

commit c35dd524280f50b668427c2ceac4de04f5535480
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Feb 6 22:00:55 2009 -0500

    Minor cleanups in mem.c.

commit 150f8dedb1aa568144c1b12785fb7ebaf0aaa14a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Feb 5 21:08:01 2009 -0500

    Lock the rcfile_mutex at each keyfileh access.

commit 4967247c372e6a01ce5af79bfb19a8f1ef182aa4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Feb 5 20:09:37 2009 -0500

    Don't lock the cn_mutex before cancelling the client message threads in
    cleanup_cb(); do it afterwards. Fixes mutex deadlocking.
    
    Fixed log_write() potentially showing the wrong file descriptor with the
    associated client name.
    
    Close the socket file descriptor on error when needed.

commit eb8ebcaa78abeb3e92565a4c79a9e7cf8a9b7925
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Feb 4 20:41:17 2009 -0500

    Fix for the previous commit that wouldn't terminate the client if a
    status message failed to get sent. Working on fixing some mutex
    deadlocks and this slipped in there.

commit b95fffc26c35a3d1aa3352ccd7e3b23a6645649d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Feb 4 19:48:16 2009 -0500

    Use a local mutex in client_msg_thread().
    
    Lock the msg_sender_mutex before calling pthread_create().
    
    Create client_msg_sender_thread() before client_msg_thread().

commit 9181d07969f583392a8fc5418bdeb792505615f1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Feb 2 20:47:12 2009 -0500

    Use a goffset rather than gsize for crypto->insize/outsize.

commit b654ce8c5194ffe0556c7ec7be1dd15966141f09
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Feb 2 20:29:53 2009 -0500

    Fixed status messages to use the new iteration type.

commit 3a2fb55e1903cb34bbee3afdbf00887d98388c7f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Feb 2 19:43:01 2009 -0500

    Fixed data file portability between various systems (untested, but it
    should be fine). This breaks data file compatibility with previous v2
    developments.

commit a54af70c02f730ab7f550b9bb3b3281c36dda74a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 29 20:05:41 2009 -0500

    A few more pthread_testcancel()'s. Should be the last of them.

commit fc618e08fbf77293e801be433dec976c55fa0267
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 29 19:27:15 2009 -0500

    Thread cancellation tests in do_compress() and do_decompress().

commit f358135cfc72cc087458d50392ca53fe8f71903b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 28 22:23:53 2009 -0500

    Don't send status messages to clients that are exiting. Fixes a hang
    with client_msg_thread() and clear_cache() which calls
    send_status_all(). The msg thread has already been terminated. It only
    affected new files that weren't SAVE'd before exit. But it's better to
    add a variable for later modifications that might have the same problem.

commit 55cbf105faac8ba03d61fbbcd0b6d391982134a3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 28 21:32:21 2009 -0500

    Fixed a segfault with the SAVE command when used with pinentry. Broke in
    commit fb0d289.

commit 5cb203140420db2bb4f317186b9a48faf190efb3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 28 21:20:05 2009 -0500

    More thread cancelation tests and handlers.

commit af95ecce28978ecfc4cfe896687c5ab6a66d665d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 27 20:29:42 2009 -0500

    Create a mutex for the custom memory functions. Fixes list corruption.

commit 65a104b30727cd7ef2630d1bd414cc0cba0a4fe2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 27 20:03:47 2009 -0500

    Create a new thread when reloading the rcfile.

commit fb0d2896f478da2d6cd7f2a46c9a9cfc78fe956c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 27 19:55:52 2009 -0500

    More thread cancellation tests (more to come) and thread cleanups. Set
    the main thread (in server_loop()) to disable cancellation.

commit 58e2fb64d32bf692096ea918bef11232922d2802
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jan 26 22:02:35 2009 -0500

    A couple more thread cancellation tests and cleanups.

commit c907cdbfa74881626148f90504fdf8c843691066
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jan 26 21:44:34 2009 -0500

    If the client thread terminates while a pinentry is running, terminate
    the pinentry process in cleanup_pinentry().
    
    Added a few pthread_testcancel() checks and thread cleanup handlers.

commit 4475fd7bab44ebf0a3eac3ab326d87026515404d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 25 17:13:15 2009 -0500

    Setup a cleanup handler in iterate_crypto_once() in case the thread gets
    canceled. The rest of the code needs this fixing too.

commit 70103e9a387fbfdde658956db64350e305607026
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 25 17:01:36 2009 -0500

    When encrypting/decrypting, don't do the whole thing in one go. Break up
    the input buffer into chunks so pthread_testcancel() can be called. This
    lets the client cleanup when a large document is being processed and the
    connection gets terminated.
    
    Fixed client_msg_sender_thread() to call pthread_exit() when
    send_status() fails.

commit 889ca8877960b2b2c5c8757046fc15b7e3434ffe
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 25 12:29:11 2009 -0500

    In cleanup_cb(), don't free cn->name until everything else is done.
    Fixed log_write() showing the freed pointer.

commit 2f990866e80c6b16218d888d1ebf66aebaa0b19d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 25 12:08:12 2009 -0500

    Better mutex locking and unlocking macros. Useful for debugging.

commit 32bf1985624c8a975558572d9d4e511f46162a59
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 25 09:56:43 2009 -0500

    Update the mtime in do_xml_encrypt().

commit d47436457c922f2e877f7c15299c8f9190280535
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 25 09:45:41 2009 -0500

    crypto->inbuf is set to the data to encrypt when passed to
    do_xml_encrypt().

commit b0692389899c7817e872d4def4672dbb4cf71358
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 25 08:34:16 2009 -0500

    Use gcry_... memory functions in do_compress() and do_decompress().

commit 1ee3046291976f9ef7c0674a4e0c3a148039aa21
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 24 22:22:25 2009 -0500

    Return GPG_ERR_ENOANO if the data file is not a regular file. This fixes
    commit dd85982 which would treat the symlink as a data file.

commit d6936d59621802aa3728de223021df4596c7100c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 24 16:26:47 2009 -0500

    A couple minor cache.c cleanups.

commit f91116b524f82b4038af74f7489049520d865cd7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 24 16:10:00 2009 -0500

    Fixed potentially not freeing all cache entries in cache_free().

commit 162171ea0fc81e95c551e06af8e749f099c1da9c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 24 15:46:55 2009 -0500

    Fixed status messages send with send_status_all() on FreeBSD (any maybe
    other) systems. Create a thread in send_status_all() that does the
    actual write() to the pipe. Then wait for that thread to exit. I think
    this fixes it because the scheduler is funky on FreeBSD and it gives
    client_msg_thread() a chance to read() the pipe. I could be wrong
    though. But it does seem to work.

commit 380aa56d0e31fddd33b9623139bfa17c7cec21cd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 24 12:33:53 2009 -0500

    Fixed tls_init() not initializing the SHA-1 hash size of the
    fingerprint which would result in an invalid fingerprint.

commit 5e729a090e0e4d108f358420305ca51c44816e2f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 24 12:05:32 2009 -0500

    Initialize libgcrypt properly by calling gcry_check_version().

commit 6fa8d8d471ef6c9b51b39f0599038fcfab86c8fa
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 24 10:21:41 2009 -0500

    Move initTlsParams() and deinitTlsParams() to tls.c

commit aa23ceda7a46b1f7bf4a579469cd27fc0af74a87
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 24 10:15:00 2009 -0500

    Added option "tcp_use_crl". When TRUE, ~/.pwmd/crl.pem will be used as
    the X509 CRL. This can be create with certtool or openssl. The default
    is FALSE.
    
    Do extra client certificate checks in tls_init() including CRL.

commit 86789a900d002a724a99be44a149d50a54b60c7d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 24 08:17:53 2009 -0500

    Set the signal mask before other threads are created. Fixes signaling on
    FreeBSD and probably most other systems.

commit ff8431ca35deee943b45c83e77581b8bd462176d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 23 21:39:14 2009 -0500

    Don't try and link with -lrt on systems other than Linux.

commit 84ab8c48bc65ed18a37ddbb95a6c2b4340ce0b33
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 23 21:35:49 2009 -0500

    Fixed a compile time error on FreeBSD.

commit 500d9c5b105c00f22574660ece99c61d16318614
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 23 21:35:25 2009 -0500

    Fixed a compile time warning on FreeBSD.

commit bd102bd710cc975d11f6e722611c2bb69c6c3f90
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 23 21:18:04 2009 -0500

    Remove old < v1.11 command line option -b.

commit 90c2c7efd12c3db9fb10e7dd314f188110e8bd14
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 23 21:15:29 2009 -0500

    Use PTHREAD_MUTEX_RECURSIVE not PTHREAD_MUTEX_RECURSIVE_NP.

commit f94819981a091f0c89edd94f6dc6729a93ad4447
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 23 21:14:52 2009 -0500

    Fixed some comple time conditionals.

commit f66c6bd311b74c5bbd90e96a50da81ed075d9bc5
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 23 21:08:49 2009 -0500

    Restore client->has_lock in cleanup_client().

commit 79c470278794a13396ef442f493f647d14ac6ee7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 23 20:47:27 2009 -0500

    Use a structure in file_cache_t to hold the file mutex. Since some
    systems (FreeBSD for example), use an anonymous structure for
    pthread_mutex_t, there isn't a way to allocate it. So allocate a
    structure to hold the mutex instead. Should be more portable now.

commit a339d78f984f5d708159f285e4cb3d6680a1bb88
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 23 19:28:28 2009 -0500

    The client must explicitly set OPTION PINENTRY if the client is a remote
    one in order for pinentry to be used. This is because the client may set
    the DISPLAY option without knowing what it's doing. The communication
    between the client X11 host and pinentry isn't encrypted unless the
    client and server host are setup to do something special.

commit 020d223e752784178d23c6f9edc848bc050d56a5
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 22 20:58:46 2009 -0500

    Don't write a log message when the cache mutex is locked. Only send a
    status messages to the client.

commit 407746d8eb890d3222e5a52e1d5ae2ff4462fcf4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 22 20:03:25 2009 -0500

    Really fix commit a7e15f9.

commit 3173be776708229e24fbf309f658f2f6bd745213
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 22 20:01:54 2009 -0500

    Revert "Fix for commit a7e15f9."
    
    This reverts commit 4d553a5367ec9786ccaeed358d187e4d93b7b33b.

commit 4d553a5367ec9786ccaeed358d187e4d93b7b33b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 22 19:34:07 2009 -0500

    Fix for commit a7e15f9.

commit f63c18926d56b4d505f43e323d2254dcdfacbc88
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 22 19:07:58 2009 -0500

    Restart the keepalive_thread() after receiving SIGHUP.

commit 38521295d35ea4706bce60ddf6c46dca69466202
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 21 21:51:22 2009 -0500

    Stop accepting TCP connections when shutting down and waiting for
    clients to disconnect.

commit 6fa67b02bdb15c52940c6c638d588ac9ba23e27a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 21 21:21:28 2009 -0500

    If MEM_DEBUG is defined then set the x... de/allocators to the standard
    memory allocators and override the linked library defaults. Simplifies
    things a bit.

commit 221f8d1097e2cbbad9eef1db966baf2124e8ba87
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 21 20:24:42 2009 -0500

    Use an SHA-1 fingerprint rather than MD5.

commit 4d8eb814e5975e5a619db5f5317b1c9e854d0d53
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 20 21:44:52 2009 -0500

    Fixed a segfault when TLS failed negotiation.

commit c416ed4cb200fba9e6f9ac1f45d561387e602608
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 20 21:07:57 2009 -0500

    Create the client_msg_thread and client_msg_sender_thread as joinable
    and wait for them to complete in cleanup_cb().

commit a239e306c728f9130a6fadd9dbc100aec669946a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 20 20:14:43 2009 -0500

    Only append unique status messages to the message queue.

commit 1fedc438745756e35763956f35244c9860c7dbf9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 20 20:02:43 2009 -0500

    If the current thread is calling send_status_all(), use it's
    client_msg_thread() instead of send_status() to prevent blocking (it may
    be a remote client).

commit a7e15f9596c7892905591f262cf1a472c4d91305
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 20 19:55:03 2009 -0500

    Make sure the msg mutex is unlocked before trying to destroy it.

commit 18ccdfe1da8e1e521c0c48c02b3f36dd3cef5cbe
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 18 12:19:24 2009 -0500

    Create a message queue that won't block send_status_all(). This creates
    a new client_msg_sender_thread() that gets signaled from
    client_msg_thread() after reading from the pipe and appending the
    message to the queue.

commit 09da95d65c0de4a90d3b46b04663e7a910abeed2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 18 10:24:39 2009 -0500

    Ported to pthread. cache_mutex and cn_mutex are now recursive mutexes.
    Since pthread doesn't have any message passing features like libpth did,
    status messages are now passed via a pipe between threads.
    send_status_all() may need to be changed to create a new thread to
    prevent blocking when sending to a remote client.

commit 2ee32d635b4bddcd4ebe8408d9acc69ab74645a3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jan 12 20:43:59 2009 -0500

    SIGHUP will stop or start the tcp_accept_thread() depending on the
    configuration.

commit 5d36980c7cb126bf1abd323ca8b4e37fb653c9d3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 10 09:07:38 2009 -0500

    Updated the copyright headers for 2009.

commit 5209d41e4aff1c786da284a609a9a817aa816b9d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 9 20:35:43 2009 -0500

    Fixed a pinentry segfault (hopefully) during cleanup of the pinentry
    thread.

commit 42ea8c42a1463a4f4cb94b6f9989c2ed9f1d7615
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 9 19:11:21 2009 -0500

    Allow other characters in the filename when using GETCONFIG.

commit a76ff5025456b34708c522f6f53130f085d0ab71
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 8 22:36:19 2009 -0500

    Moved COMMANDS to doc/.

commit 3d875ee5f6c4afdc0d5ff6ae4c22bb2c4f386e53
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 8 22:20:04 2009 -0500

    Return GPG_ERR_NO_VALUE instead of a syntax error from GETCONFIG when an
    unknown or unspecified parameter is requested.

commit e21352e31eec244eeaf8bf80a3a81e010dd945b4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 8 22:07:44 2009 -0500

    Re-add .flags to the new v2 file header.

commit b41a827fce04fd6dc336582b77d18bb3b44d0ab1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 8 21:49:06 2009 -0500

    Fixed a memory leak in pinentry_iterate().

commit 370fd1f8746078351c3fe79d260a74429194af66
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 8 21:22:19 2009 -0500

    Fixed starting up without an rcfile.

commit 88c637a690d16e9c2d510faa82ee3632bb831fff
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 8 20:53:56 2009 -0500

    Warn about errors opening a key_file while parsing the rcfile.

commit 1d046b472ad07193d4fd72757a2b116b17f5ca85
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 8 20:48:53 2009 -0500

    Fixed clear_cache() clearing all cache entries.

commit 30aa26f0e7f8d51e4215566a0254de6bb668b4ca
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 7 21:24:37 2009 -0500

    Fixed a memory leak create_dtd().

commit ba387ad0ae387f057135460951b6d427e583081b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 6 21:57:02 2009 -0500

    Fixed asking for a passphrase after opening a new file with a specified
    passphrase.

commit a523a1b29ede8e08dc3c4bac18ccb6eb4011c78f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 6 21:35:27 2009 -0500

    Fixed closing the wrong FD in cleanup_crypto() and disconnecting the
    client.

commit 0df78ee4b13e9721db1f7d13158c7a455cbf0717
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 6 20:26:13 2009 -0500

    Fixed SAVE with a passphrase specified in the command.
    
    Fail completely if OPEN is used with a file containing a "key_file"
    parameter. Even if a passphrase is specified in the command.

commit 12eec3112cc98a74a75f6df07eb8f110bf83f7c0
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 4 20:58:30 2009 -0500

    Close the cipher handle in crypto_cleanup();
    
    Call munlock() with the same size that mlock() used.

commit ddd5e4cf16dbdb72e463963102ff2597a40ee456
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 4 20:44:56 2009 -0500

    Fixed some compile-time warnings.

commit 0a824c2c83713d17cf1b153e0b28385e7c4b6a3f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 4 14:12:39 2009 -0500

    The "disable_list_and_dump" configuration parameter now affects the
    XPATH command too.

commit 9fb975717a2cdccf090be872b9a19b4c26908e09
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 4 13:52:48 2009 -0500

    When importing, converting and pushing files into the cache, don't ask
    for a passphrase more than once.
    
    A few other fixes for showing error messages on the command line.
    
    Show the file access error when pushing files into the cache.

commit 01e9c2a5ef6d930f69271f28e9fe4281a34f53d4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 4 13:02:37 2009 -0500

    Some code rearrangements. Getting ready to fix freeing client memory
    when disconnected unexpectedly.

commit d56778188a1988ef23afd785b405c3524a703c78
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Dec 23 21:36:17 2008 -0500

    Show the output filename and not stdout in the import notify string when
    using -I.

commit 2372b640c38ce96cd52f5fe0de52bbb2993e9eef
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Dec 23 21:24:12 2008 -0500

    Fixed a memory leak in do_cache_push(). The document wasn't getting
    freed after the decryption check.
    
    Fixed not showing some status messages to the console.
    
    Don't prefix the log_write() messages with "pwmd:". It's ugly.

commit 52e5c785c83d575a9e7a32a06f6a10636b74fc22
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 21 20:42:33 2008 -0500

    Handle STATUS_COMPRESS/DECOMPRESS/ENCRYPT/DECRYPT in send_status(). If
    there is no assuan ctx, then send it to log_write(). This allows for
    showing status messages when importing/converting data files from the
    command line.

commit 690b26ffbeb2f06360216950ea96d982548b22ca
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 21 20:11:12 2008 -0500

    Fixed the pinentry dialog showing the wrong filename when importing.

commit 2380dc0b234c4a4486c9c2efd08c586b131147b5
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 20 10:51:25 2008 -0500

    Fixed freeing "tcp_wait" in tcp_accept_thread() before parsing it.

commit 9dee759b9865dc3617a08f478c184f4163ef4bed
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 20 10:50:29 2008 -0500

    Added configuration parameter "cipher_suite".

commit 813a8b7409377b521397c9f64a78b529f70f1740
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Dec 19 19:49:30 2008 -0500

    Check the return value of pth_spawn().
    
    Fixed a couple compile-time warnings.

commit bb0d19b27cfc2fd299c9779c22be6a29460775c2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Dec 18 19:37:03 2008 -0500

    Updated the docs.

commit fe623d084e27ec0661bf6a148a91af8f2cb0414e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Dec 18 19:26:38 2008 -0500

    Use send_status() from CACHE_LOCK.

commit bfbd5ea991c1e57f944f0833b27ab71d5079ff32
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Dec 18 19:20:18 2008 -0500

    Set the thread name for other threads too.

commit 83b9b1b3abb6f8701921fe46176084feeffe6014
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Dec 17 21:56:34 2008 -0500

    Removed the unused file header variables. They can be added to a new
    header structure when needed.
    
    Made .version a guint.

commit 9c952fc702100faa05b388fc09613bf8a0e8e307
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Dec 17 21:44:50 2008 -0500

    Allow "GETCONFIG key" and "GETCONFIG key_file".

commit 9ba0a81afde9c59c47fea5bb7caa764ac9653fd7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Dec 12 21:19:15 2008 -0500

    Added command VERSION to return the version string with a data response.

commit 8c042ebad8dc9d41a5c3273fd1b634f47dfdde61
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Dec 12 19:12:20 2008 -0500

    Set the client FD to non-blocking in the BYE notifier. This will let
    assuan_process_next() in client_thread() return and terminate the
    thread. This is the proper fix for commit 77c4b5b.

commit fe1705221d9ac161e12296899834e042c65ec6fe
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 23 08:10:37 2008 -0500

    When "key_file" is specified in the configuration and the cache entry
    gets removed for some reason, the client must provide a key to use along
    with the OPEN or SAVE commands. If not specified, GPG_ERR_WRONG_KEY_USAGE
    is returned.
    
    This won't affect the "key" configuration parameter. It'll still try to
    use pinentry.

commit 97e31b57c9df9bd0467bb2a68886d717649670d0
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 22 21:14:55 2008 -0500

    Return a gboolean from validate_access().

commit cee4a88f614daca44f3e4dab7439c79ecd5d180c
Merge: b09992d 537b19a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 22 18:37:19 2008 -0500

    Merge branch 'v2'

commit 537b19a0f5d5a99d18ade6b550e3590da6e7b9b8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Nov 20 21:23:21 2008 -0500

    Use a temporary variable in reload_rcfile() in case something bad
    happens.

commit 87822c1af6e2794298ca8cf9f8d1c8f1b9e54864
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Nov 20 20:38:30 2008 -0500

    WITH_GNUTLS fixes.

commit 5d6b9b300f988eed0d92f9d53373fe08a2077930
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Nov 20 20:20:13 2008 -0500

    Revert "Set the client socket file descriptor to non-blocking. This fixes"
    
    This reverts commit 77c4b5b23a35ccd2f54a3b0c888fe72e4bd1c355.
    
    The problem was with the client when testing. The KEEPALIVE status
    message should terminate the thread correctly. Removing this commit
    speeds up new connections and other IO by a factor of about 2.

commit 61eac922f15c62ae69a4746028ee0504b43a8415
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Nov 20 19:56:11 2008 -0500

    Fix for commit 8f85846. Show the actual error description.

commit f74fb94dc7c1249e0b6165fb4e3d33e76d3c6f2a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Nov 20 19:26:45 2008 -0500

    Use _SC_PAGESIZE as the size argument to mlock().

commit 2218d767aad515e510fe88e1b88eeb0a5f51e01f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Nov 19 21:56:32 2008 -0500

    Revert "Fixed a leak in cache_free()."
    
    This reverts commit 769389af2c3b5b7580f1972c1b6baf1de6ba463a.
    
    Nevermind. Was thinking something else.

commit 769389af2c3b5b7580f1972c1b6baf1de6ba463a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Nov 19 21:42:58 2008 -0500

    Fixed a leak in cache_free().

commit 739a7a613bd1381295bb748a5a7c37c7b3c0f248
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Nov 19 21:27:32 2008 -0500

    Redid the file cache to use a GSList (singular linked list). It's alot
    easier to maintain and there is no limit on the number of files although
    each entry will use a full page.

commit e2da7e1f86b4150069bf52088258d3e31790ef08
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Nov 19 20:03:21 2008 -0500

    Moved read_hook() and write_hook() to tls.c.

commit 8f85846d2efed2b58a82e64c45418843e2870dc9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Nov 19 19:45:53 2008 -0500

    Use log_write() instead of warn[x] and fprintf(stderr, ...).

commit 5ccd0acab6ede01b7525c487d8ea6ebbd509a2ed
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Nov 18 21:01:52 2008 -0500

    Let the "key_file" configuration parameter work with SIGHUP file
    reloading.

commit f6955e5046e0d457ce4e958fa4667800c1046cc8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Nov 18 19:02:53 2008 -0500

    Revert "Fixed OPEN and SAVE to use the "key_file" if specified. If set
    and an"
    
    This reverts commit fad226bde47503b540e4b172fd58b12d234a1e11.
    
    After thinking about this feature, it doesn't really make sense to have
    it. If there was a key file specified in the configuration then it is
    read on startup and the file is then cached. If for some reason the
    cache timer were to expire the cache entry, this feature would allow the
    file to be re-cached with no interaction. So it's kinda pointless. Same
    goes for commit 3d40712.
    
    So if you have a key_file config entry and it gets removed from the
    cache, you'll have to restart pwmd for it to get cached again. This can
    be a problem for a remote client. Just be careful what cache commands
    you send.

commit 2080828ee85d7f711661e67b75c0964d7b11dbf4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Nov 18 19:02:16 2008 -0500

    Revert "Added OPTION KEYFILE. Setting to 0 will disable trying to read
    the key"
    
    This reverts commit 3d407127fc88960a82650d67caac765ac5589f3e.

commit 3d407127fc88960a82650d67caac765ac5589f3e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Nov 17 23:01:06 2008 -0500

    Added OPTION KEYFILE. Setting to 0 will disable trying to read the key
    from the configured key_file and use pinentry (if configured) instead.
    A log message will be written telling what the error was. This is a
    per-client option, not a per-file option (can't be set in the
    configuration file).
    
    "GETCONFIG key_file" now works. No reason not to.

commit fad226bde47503b540e4b172fd58b12d234a1e11
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Nov 17 21:56:58 2008 -0500

    Fixed OPEN and SAVE to use the "key_file" if specified. If set and an
    error occurred while trying to read the file, GPG_ERR_UNUSABLE_SECKEY
    will be returned to the client. "key_file" takes precedence over any
    pinentry use but specifying a key as a command argument (e.g., SAVE
    <key>) will work.

commit be72cbe2d87a1213c6c539ac029a47817aff2608
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Nov 17 20:39:55 2008 -0500

    Let -C use a keyfile with -k.

commit c465e7726aa5e4210e9067f3b709a7c42db357e1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 15 13:05:25 2008 -0500

    Fixed a couple of minor memory leaks.

commit 76f9c042c7ad4328236e0643d1bfcd7584c2681b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 15 12:51:11 2008 -0500

    Added configuration option "tcp_wait". Sets the time to wait for a new
    connection. Only affects the TCP socket. Kind of a hokey way to prevent
    DOS attacks.

commit 481438f848fc37f56cb92e5a43dd55d1656311b3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 15 12:28:01 2008 -0500

    Fixed SO_REUSEADDR.

commit 884c998c29ac0c3481dcf2d376348e48aeacd27a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 15 12:00:29 2008 -0500

    Added command line option -k to obtain the key from the specified file
    when importing.

commit c52675394e46e9a24091ad8a2024cd28c1072509
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 15 10:28:30 2008 -0500

    Don't change  "disable_list_and_dump" after reloading the configuration
    file.

commit eb30223bde2cdf8fae0d2051d3fea67ead002bfd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 15 09:56:31 2008 -0500

    Change the version string to 2.0-dev.

commit b09992d61687b9c7e1c67058d414f1fa92ab8ca5
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 15 09:07:59 2008 -0500

    Version 1.15.

commit 922543917601344731258e42dd255d1471e38316
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 15 08:07:48 2008 -0500

    Added command line option -k to specify a keyfile when importing.

commit 16b9b0487b35d71e56421fe3ddd72596b3fc7f28
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Nov 14 22:08:23 2008 -0500

    Change the visible "password" strings to "passphrase" to encourage users
    to use stronger "passwords".

commit 6f4fc9bb8bc2b8775f252716c66fd8734fc41e5f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Nov 14 21:40:47 2008 -0500

    Fixed a segfault when new_connection() failed. assuan_deinit_server()
    was getting called twice and referencing a NULL function pointer.

commit 19bd9824a66d0d5fcaf3710e2d95345b09520054
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Nov 14 21:28:27 2008 -0500

    Fixed a potential race condition with accept_thread() and
    client_thread(). If client thread exited for some reason before the
    cn_mutex was released, then the client list would contain an invalid
    thread.

commit 744db1763b2b33c4e2d997b10433e30df5d8c941
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Nov 14 20:55:03 2008 -0500

    Fixed a bug with -I. When no iterations was specified the configured
    value wasn't getting used and the output wasn't getting encrypted.

commit f00c78cea5adf293b9c01ad55c1955c42fa48f4f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Nov 14 20:24:52 2008 -0500

    Fixed showing newlines when prompting for a passphrase.

commit 0d432adb1ab45755dce8212061d1bc9ad9d79c8d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Nov 14 20:21:17 2008 -0500

    Added command line option -P to disable pinentry. This will override any
    configuration setting ("enable_pinentry"). May be useful when used with
    -I, -C or with cache pushing.

commit 3c44ad4d60b432a4bfb4c51102195d9160c094e1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Nov 13 20:29:57 2008 -0500

    Return the new EPWMD_FILE_ACCESS error code when the fingerprint in
    "tcp_access" is rejected. This lets the client know that it wasn't
    really a filesystem error, but an access error.

commit 80db87645e090fda0b624f28e8c758f168250ba1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Nov 12 21:54:56 2008 -0500

    Updated documentation.

commit bebea6d4e394e7a47317bbd9ecb12715cb3e670c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Nov 11 17:32:36 2008 -0500

    Renamed configuration parameter "access" to "tcp_access".

commit 2d2154b1b82551dca9cd327755061c1130219c9e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Nov 11 17:31:06 2008 -0500

    Added configuration parameter "tcp_require_key". If true, the client
    must provide the key to open the file even if the file is cached.

commit 82cff716c179c39e5d1642f52911b9376e2fc8e1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Nov 11 17:07:58 2008 -0500

    Added configuration parameter "access". This controls which client
    certificates can open what files.

commit 12d1d72df141cbd3e67a560436dcd20af0a6dde2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Nov 11 14:33:00 2008 -0500

    Show some information about a new remote connection.

commit ff3d2a9db4f40255c12a800eefdee845c1bc0564
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Nov 11 12:31:48 2008 -0500

    Fixed shutting down gnutls. Call gnutls_bye() from bye_notify() which is
    called when the BYE command is sent. It only makes sense to call it from
    here.

commit 24fc1bdf6005736f5f7579a2dc684ac39d104828
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Nov 10 21:42:58 2008 -0500

    A somewhat important fix for generating RSA key exchange parameters.

commit 5059f44aeb1959bef3ec4ef8a8795152a491987d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Nov 10 21:40:48 2008 -0500

    Some translation string fixes.

commit cbea8f336732ca0782026f362f0ac5ea544eff49
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Nov 10 20:19:52 2008 -0500

    Allow unicode filenames. The only characters not allowed are '/' and
    whitespace.

commit 81b4886d25bd00ae4036cac850dc61a741dc6ba7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Nov 10 20:16:45 2008 -0500

    Allow unicode filenames. The only characters not allowed are '/' and
    whitespace.

commit 614001eacc4aabc68500d0dacd694bab5952b2b3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 9 20:48:56 2008 -0500

    Fixed valid_xml_element() to check if the first character is a space.

commit c50971f0ca8c68c90ebecea380cb20342ba5b304
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 9 20:48:56 2008 -0500

    Fixed valid_xml_element() to check if the first character is a space.

commit dd859828c70b74606a993a7da2ae312e3f3f59e7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 9 20:48:28 2008 -0500

    Data files must be regular files and not a symbolic link. This lets the
    SAVE command work as expected when creating a backup file. If the file
    was a symbolic link to another (e.g., encrypted) partition, the backup
    would be saved in data_directory which may not have been encrypted. So
    specify data_directory instead of creating symbolic links.

commit ffc3ab9afdc1dc8ce7063f72daaebf2ad907d313
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 9 20:33:09 2008 -0500

    Data files must be regular files and not a symbolic link. This lets the
    SAVE command work as expected when creating a backup file. If the file
    was a symbolic link to another (e.g., encrypted) partition, the backup
    would be saved in data_directory which may not have been encrypted. So
    specify data_directory instead of creating symbolic links.

commit b165bddc557c6369678db904b87bfd62a21d0e57
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 9 11:01:59 2008 -0500

    Revert "Added configuration parameter "tcp_connection_limit". This
    specifies the"
    
    This reverts commit 570566c5a9bbf628942fa816b93d12a9df6d71d7.

commit 24344b6b51da097f53aa281e47ae94b231c15b47
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 9 10:53:11 2008 -0500

    Show compile time features in -v.

commit 1d61b3a940ba5b059ff4b7b76b1cd6fcbfb44852
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 9 10:23:02 2008 -0500

    Fixed a compile-time warning with --enable-quality.

commit 2afe3723775fdbd07c1fa77b25081dfb91c78b58
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 9 10:22:34 2008 -0500

    Show feature status before configure exits.

commit 2ff39fc7e752a6084f31ab946a7516775463cb57
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 9 08:46:34 2008 -0500

    Use $enableval in configure.ac. Fixes --disable-feature.

commit 277c85f9d0c0f3d66712275d73b09dbe39c515ef
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 9 08:49:43 2008 -0500

    Don't check for libgnutls when TCP isn't wanted.

commit 38cc00a0cb8ca39302d8097465b2f8030540d905
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 9 08:46:34 2008 -0500

    Use $enableval in configure.ac. Fixes --disable-feature.

commit 56ac9027492ebd57743f54d6bf362776cbada61c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 9 08:33:47 2008 -0500

    Fixed WITH_GNUTLS conditionals.

commit 570566c5a9bbf628942fa816b93d12a9df6d71d7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 8 16:17:48 2008 -0500

    Added configuration parameter "tcp_connection_limit". This specifies the
    maximum number of connections for a single host. When exceeded, the
    client is disconnected.

commit 6d1bdcd06654e0b44f815b7603a966827a50eb33
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 8 15:24:17 2008 -0500

    Purge pending messages before terminating the client thread.

commit a63115a00b754597da0e1574cb6eac0a860e5956
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 8 15:09:34 2008 -0500

    Make new clients have a priority of PTH_PRIO_STD and the
    (tcp_)accept_thread() PTH_PRIO_MIN. This lets DEAD threads terminate and
    not stack.

commit 995909db7a8d60a7385f6ff2a596f76c7648cbe7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 8 15:24:17 2008 -0500

    Purge pending messages before terminating the client thread.

commit 99b17b15631127cb657cd09a6b4b4672e9e65942
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 8 15:09:34 2008 -0500

    Make new clients have a priority of PTH_PRIO_STD and the
    (tcp_)accept_thread() PTH_PRIO_MIN. This lets DEAD threads terminate and
    not stack.

commit 485977a375f263d00dedb6546bc834e080ed1385
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 8 14:52:20 2008 -0500

    Fixed a segfault when new_connection() failed. assuan_deinit_server()
    was getting called twice and referencing a NULL function pointer.

commit 94e12733f474938859091d454986c85737943354
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 8 12:54:03 2008 -0500

    Require libassuan v1.0.5 or later.

commit e0991a9be56d3f19eff06a357674de9cf7338061
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 8 12:28:28 2008 -0500

    IPv6 support. Should be able to handle either IPv4 or IPv6
    transparently. It's untested though.

commit 506b620bd7a93195b6f6317bfd650203d7ebd3cf
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 8 10:17:28 2008 -0500

    Fixed the exit code with the -C command line option.

commit 0fb614ad893d93574606f78b96dbd026f94644dd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 8 10:15:08 2008 -0500

    When converting a data file with -C, update the DTD and document to use
    the document root "pwmd" and the old "account" element to "root".
    
    This will also use a the new DTD when creating a new document.

commit b8b2f2c1ddbe23b3308c71642b2df0a915acbe28
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Oct 29 20:05:13 2008 -0400

    Return gpg_strerror() from pwmd_strerror() when the actual error is not
    specific to pwmd.

commit eee80b9653a6b990f95a4efc12618d210fbe425c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Nov 5 21:25:48 2008 -0500

    For each client thread, create a msgport thread to handle status messages.
    This allows for status messages to be sent to the client during some long
    running commands (OPEN and SAVE with lots of iterations for example). Before,
    the status messages would stack until the command completed.

commit f14c313087293e2b807bcd700435478e7a1dc2ed
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Nov 5 21:15:10 2008 -0500

    For each client thread, create a msgport thread to handle status messages.
    This allows for status messages to be sent to the client during some long
    running commands (OPEN and SAVE with lots of iterations for example). Before,
    the status messages would stack until the command completed.

commit 5e1010b8d791e7920908b22604f6ff9002a936c3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Nov 5 19:56:27 2008 -0500

    Set the default encryption iterations to 1 rather than disabled.

commit 5141d634c3556329fc1034c64c822923eb356cd9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Nov 4 21:22:13 2008 -0500

    Updated the documentation.

commit dbb1ebb58e5b9973eeb8e8dad7717371a43702ee
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Nov 4 20:26:47 2008 -0500

    Fixed a minor potential segfault.

commit 9f1f4b5f064ad226b1eda5aa6194350c3026cc69
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Nov 4 20:00:48 2008 -0500

    Fixed a potential race condition with init_new_connection() and
    client_thread(). If client thread exited for some reason before the cn_mutex
    was released, then the client list would contain an invalid thread.

commit 7434aa2ef553f2721dbb5cb166c6b84d15e2f9a8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Oct 31 20:14:01 2008 -0400

    file_header.version fix. Determine the hex string at configure time.

commit f2c424d2c1a8d22e8994cd392e6a7292b7ec8fa7
Merge: 768d8d5 01a5afb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Oct 31 19:19:22 2008 -0400

    Merge branch 'gnutls' into v2

commit 768d8d52f4e33945aecf8b4656758455c44d9ddd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Oct 29 20:12:02 2008 -0400

    Fixed compile time warnings with --enable-quality.

commit 6e00c360238e5cdc98007d275c3a4c4d204db9e8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Oct 29 20:05:13 2008 -0400

    Return gpg_strerror() from pwmd_strerror() when the actual error is not
    specific to pwmd.

commit 65c5db44e644bce424a501d47512479837acaec8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Oct 29 20:03:47 2008 -0400

    Change the visible "password" strings to "passphrase" to encourage
    users to use stronger "passwords".

commit 01a5afbcc45e03df74f4d526a775d1fc9462b80e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Oct 28 19:55:29 2008 -0400

    Close the client file descriptor when TLS negotiation fails.

commit 77c4b5b23a35ccd2f54a3b0c888fe72e4bd1c355
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Oct 28 20:47:21 2008 -0400

    Set the client socket file descriptor to non-blocking. This fixes
    assuan_process_next() getting stuck when a client disconnects
    unexpectedly. Instead, assuan_process_next() will return 0 and the next
    KEEPALIVE status message, or FD event, will fail causing the thread to
    terminate.

commit 838b9b7761f64801d379c8eff1476a6afa559bff
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Oct 28 19:55:29 2008 -0400

    Close the client file descriptor when TLS negotiation fails.

commit a4419f4d576097194359e2fd85eac65ac6f56bd6
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Oct 28 19:46:47 2008 -0400

    Build fix for --disable-pinentry.

commit 327804080cb870b29fadfd1ba6b1e04cccc86dd0
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Oct 28 19:38:57 2008 -0400

    Fixed do_cache_push() with get_password().

commit dc7e509016f4e3463a5ab8fc7d7d008e3370ce4d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Oct 27 22:10:48 2008 -0400

    Fixed XML import to work with get_password().
    
    Make sure "iterations" is > 0 in set_rcfile_defaults().

commit 213c764eab0ace1500f5fb5f688cfd3c81c339d2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Oct 27 21:33:00 2008 -0400

    Fixed return code of get_input() when too many failed attempts were
    made.

commit 8f0a9e447d5219ff8599fcae2a5a8c0476ff95fb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Oct 27 21:17:49 2008 -0400

    Don't allow "-" as a filename with the OPEN command.

commit 80231374b89bf4b0ff89210b3ad4018db9919e91
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Oct 27 21:13:07 2008 -0400

    If the output filename -o is "-", write to stdout.

commit 7d88042cb4118c32af8ce04b226c42668d364132
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Oct 27 21:04:41 2008 -0400

    The -C and -I switch now require an -o switch to specify the output
    filename.
    
    do_xml_encrypt() will use mkstemp() to create the temporary file.

commit 4f24b80ae86a2496d710503b7e8441e6d2e6efeb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Oct 27 20:46:05 2008 -0400

    More passphrase input fixes.
    
    Use the passphrase and the iterations settings from the orignial file
    when converting.

commit 26f102fa95c12dbaa3d5c46aa2e2071672549390
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Oct 26 21:01:17 2008 -0400

    Experimental file header conversion (to version 2.0) via the new -C
    command line switch.  Some work needs to be done when using pinentry
    everywhere passphrase input is needed.

commit 95491367694e3680cb7ac228c00f61cdc89ba2e4
Merge: b65c5c7 ef58111
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Oct 26 13:19:20 2008 -0400

    Merge branch 'gnutls' into v2

commit ef58111b7c9c3e5e203f5d06944551c1cc825ddf
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Oct 25 21:13:03 2008 -0400

    Added configure option --enable-tcp to enable TCP/GnuTLS support. The
    default is disabled.

commit b65c5c7e5dd6ea0e12f2e55c0e81819e08ac25ea
Merge: 4165e89 64e1f09
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Sep 28 18:39:11 2008 -0400

    Merge branch 'gnutls' into v2

commit 64e1f09a5a7f8efbaffac604785aacbc9d3cef32
Merge: 832b7c0 26e0642
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Sep 28 18:38:47 2008 -0400

    Merge branch 'master' into gnutls

commit 26e06427772bfc7d9166bc31e0994ef7f5aa3c22
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Sep 28 17:56:08 2008 -0400

    Version 1.14.

commit 1eabc329d1b114969675010b2f593618862b4ed3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 27 17:49:32 2008 -0400

    Fixed an showing an invalid number of cache slots available in the
    CACHE status message.

commit 240bce8dad7023240278d3d80bc87fddbdf8b951
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 27 17:34:57 2008 -0400

    Fixed a FreeBSD compilation warning.

commit e2f0aee4ff361b1660f3b95c8c0b897778799fa2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 27 17:18:30 2008 -0400

    Satisfy autoscan.

commit d35bd895026ef77db1557535d239351d2fdd5e7c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Sep 26 20:52:06 2008 -0400

    Wrong URI shown in the README for git checkouts.

commit 3721dc70da6aa1c1ae95fb5b267360f2b5c4d20a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Sep 23 21:25:20 2008 -0400

    Updated COMMANDS.

commit daca94157f4b66baab2291894eca5c901c713cd4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Sep 23 20:32:28 2008 -0400

    Removed a couple of unused variables.

commit 4165e893f446cdfe48dc234072016dcbe6a85ba4
Merge: 968a06b 832b7c0
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Sep 23 20:26:57 2008 -0400

    Merge branch 'gnutls' into v2

commit 832b7c06e135416bc67e29e68aeeda3329a5703b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 20 10:57:40 2008 -0400

    fork() before generating key exchange parameters.

commit fdd4abacef92788c1013a1c1354eca18801c675c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 20 10:06:10 2008 -0400

    Look for the server certificate at ~/.pwmd/server-cert.pem and not
    ~/.pwmd/ca-cert.pem. ca-cert.pem is still required though.

commit 968a06b0d84fb5c26f3385947227bc43313146d0
Merge: ffff050 303448b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Sep 14 21:23:26 2008 -0400

    Merge branch 'gnutls' into v2

commit 303448b7d97dcb79df670736e9bc8f9dee611c1f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Sep 14 21:21:44 2008 -0400

    pth_cancel() the tcp_thread_tid when quitting.
    
    Set the correct thread name as tcp_accept.

commit ffff0509a9bee9edec91a84dfd561b0870c2feb7
Merge: 70663a9 3234167
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Sep 14 20:48:09 2008 -0400

    Merge branch 'gnutls' into v2

commit 32341670639196491857a24667f849085a9bf884
Merge: 46b006a aded929
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Sep 14 20:47:52 2008 -0400

    Merge branch 'master' into gnutls

commit aded9298bcde18aff4425d10e62ae9e0895a9f93
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Sep 14 20:35:55 2008 -0400

    Better handling of PTH_STATUS_FAILED from the client fd polling event.

commit 6e97bc04734769d2e48abb61a4af5715c78c4391
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Sep 14 09:27:52 2008 -0400

    When terminating pwmd, keep sending keepalive status messages to
    connected clients and let the cache timer keep working.

commit b2f2f9e8ef77564d1f47511ae2b5145fad607dac
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Sep 14 08:30:32 2008 -0400

    Use pth_event_status() instead of the deprecated pth_event_occurred().

commit 70663a99d332a92fe4a7aba98886697d12a5c535
Merge: 8829a5c 46b006a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 13 21:36:23 2008 -0400

    Merge branch 'gnutls' into v2

commit 46b006a86e07726d75905c58efe1edcd9a9a61e3
Merge: 6783b83 c221726
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 13 21:36:05 2008 -0400

    Merge branch 'master' into gnutls

commit c22172619d4ba320e3de742368e562ac8461983b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 13 16:01:36 2008 -0400

    Make sure pinentry support is enabled when --enable-quality is passed
    to configure.

commit d857169891278ce67c18f5da99075556929e4b3d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 13 15:53:09 2008 -0400

    Dont consider the pinentry TIMEOUT when SAVE'ing a file.

commit 8829a5c65b0f303f3baa63d12fd80f6642af8206
Merge: 982f770 6783b83
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 13 10:24:59 2008 -0400

    Merge branch 'gnutls' into v2

commit 6783b83ddf4d3483afaa62cec9110b2a140f9fc9
Merge: a23b522 10c7732
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 13 10:24:24 2008 -0400

    Merge branch 'master' into gnutls

commit 10c7732a2de46ff9afd164740d1e213afc769b14
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 13 10:08:09 2008 -0400

    --disable-pinentry build fix.

commit f95c410460a08221819dbb5cc56f98dabe486d83
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 13 10:00:42 2008 -0400

    Dont log EPWMD_NO_FILE.

commit 0c8691912839275d8a57cebd9ac19a3eafa4ef9c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 13 09:43:14 2008 -0400

    Append the thread ID to log messages if the thread name (OPTION CLIENT
    NAME) differs.

commit 982f77043c7db300aa4f5d5e5a8f6c08a7a25a94
Merge: 5440e67 a23b522
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Sep 7 11:54:15 2008 -0400

    Merge branch 'gnutls' into v2

commit a23b5228a3b4757f9b77374554e79e87222faa61
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Sep 7 11:51:12 2008 -0400

    Changed the default port to 6466. 5100 is some Yahoo! messenger thing.

commit 5440e6719f742389f153e5a45ad99e0457276e40
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 6 23:51:20 2008 -0400

    Broke compatibility with previous versions. This fixes the iteration
    bug in the file header. 0 means no encryption and 1 means 1 iteration.
    There will be either a utility or command line switch to pwmd that
    will convert a data file from previous versions to the new format.
    
    Added a few more fields to the file header:
        .version  /* the version of pwmd that saved this file */
        .flags    /* key, key file or both (TODO), and more
        .data     /* for future expansion
        .data2    /* for future expansion
    
    Also fixed data types passed to various functions.

commit 56781bdf027f88aebcaace92e2df5eae784747fe
Merge: c40491c 46cc584
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 6 21:38:29 2008 -0400

    Merge branch 'gnutls' into v2

commit 46cc584152ab76ac4f0fc2f78d0ecf0f4163b4f1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 6 20:34:57 2008 -0400

    Certificate authentication works. pwmd will require a client to send a
    certificate that has been signed by the certificate authority located in
    ~/.pwmd/ca-cert.pem. There is no Assuan tcp support yet, so libpwmd
    will have to wait. In the mean time, socat does work:
    
    socat openssl:host:port,cafile=ca-cert.pem,cert=client-cert.pem,key=client-key.pem -
    
    Be sure to keep the private key that generated ca-cert.pem secure.
    This is needed to sign client certificates. If compromised, an
    attacker will be able to connect from anywhere. Same goes for your
    client certificate and key, of course.

commit eae20018bdf880c9123a73c2323e6ce4c02e8988
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 6 14:47:34 2008 -0400

    Added tls.[ch].

commit c40491c7b7f843edfdf65128bfb34d86588811c1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 6 14:22:38 2008 -0400

    Fixed cache commands after a pinentry timeout was reached.

commit fe067ebfd1019d3db2ea68e75ffb568c6bf21ee1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Sep 5 21:53:21 2008 -0400

    Restore the thd pointer after cleaning up client_s. Fixes a potential
    segfault.

commit 43a01d1cefddcc7de803b24782651daaebd83b6c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Sep 5 21:53:21 2008 -0400

    Restore the thd pointer after cleaning up client_s. Fixes a potential
    segfault.

commit 947518cf1786426e6dc23366dcaa11e5d9d6d2bf
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Sep 4 21:54:57 2008 -0400

    Initial GNUTLS commit. Mostly layout. No handshaking is done yet.
    Pinentry is broken when connecting to the local socket.

commit 3dff4c823a53ba8ca62287476382812845a33be6
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Aug 19 19:15:23 2008 -0400

    Forgot to commit the Debian changelog in the v1.13 release.

commit 391e097b073f9c793d821e411ad1b69abb271e8f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Aug 17 18:41:33 2008 -0400

    Version 1.13.

commit ff484000b3ee53c5a76909e8ee9f682b7ac44543
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Aug 17 18:35:27 2008 -0400

    Fixed an uninitialized iteration variable which may lead to
    invalid DECRYPT status messages.

commit cb92d5a14edc3ecf563b2ca204704c1f74100bb5
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Aug 17 18:33:49 2008 -0400

    Parse ~/.pwmd/pinentry.conf even when adding a file from the command
    line.

commit 148ca6fb617d5b9299d831610cf2f9bcee461180
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Aug 17 17:49:37 2008 -0400

    Version 1.12.

commit 2b4a08837041ff4eacea027aa4db19241c0ad895
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jul 28 19:50:55 2008 -0400

    Fixed a segfault when adding files from the command line.

commit b88676613b999cd88995ef3df6bdf289e86e683a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jul 13 10:51:47 2008 -0400

    Added a note about the new GIT repository. Thanks repo.or.cz!

commit e97dab5210a4c5a2eee38a049e1980587934f3f9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jul 5 17:37:42 2008 -0400

    Version 1.11.

commit 7c30dc38cfcab9801e1cdd3bf62aa5e625c17f52
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jun 29 01:12:24 2008 -0400

    Added pinentry's password quality meter support. Requires cracklib2
    and --enable-quality passed to ./configure.

commit e1590a079363cd6f04ba16118745697b8b733a72
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jun 25 18:41:00 2008 -0400

    Updated the FSF address in the copyright header.

commit d7fac7ced49cbf9c9ac1fcf27fb533fe35e63afb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jun 21 19:09:50 2008 -0400

    Added configuration parameter "priority" to specify the niceness of
    pwmd.

commit 73f4f9e40b9d3133e9611e352bda1ed497da40d1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jun 21 09:20:51 2008 -0400

    Don't support pinentry older than 0.7.5. The error from pinentry is
    returned (GETINFO command) instead.

commit 95837349b5a8e6f07af875100a6c78ba3168302c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jun 21 08:29:28 2008 -0400

    Fixed some compiler warnings.

commit fa16e966e80481c2fea73a77b7ec77da48ee593b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jun 21 08:23:19 2008 -0400

    Use a mutex to lock pin->status.

commit 009a5e9461c94ad51ad118f4bc85af9d84697bb6
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jun 20 20:34:41 2008 -0400

    Fixed a race with killing the pinentry process and handling error
    codes returned from the sub-process.

commit 080d4c1a6299741a5af1dbe75e4833604495fac3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jun 20 19:44:51 2008 -0400

    Fixed the OPTION parser to return an error with invalid options when
    pinentry is enabled.

commit a5413b6936b115d409a94c66107127ac2c9e40e6
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jun 15 19:38:01 2008 -0400

    Added a note that both TTYNAME and TTYTYPE need to be set when
    pinentry is run from the console and no DISPLAY is set.

commit 3eed684b925fd9543127461f1d52e6f9d437f0e8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jun 15 19:32:05 2008 -0400

    Fixed pinentry when used without DISPLAY.

commit c903bfd363e56119d134f1787288ef2b65d2f37b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jun 15 19:13:44 2008 -0400

    Fixed showing GPG_ERR_TIMEOUT to client when the pinentry times out.
    
    Some code rearrangements. Move most pinentry stuff to pinentry.c.

commit ea3d038ceea51ee376352005e683f0950a7a22a3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jun 15 17:29:34 2008 -0400

    Re-add -b command line option which does nothing but keep it for
    compatibility.

commit 1c063b729cc26ddcfabb12868b1e6255d22be34a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jun 15 17:08:17 2008 -0400

    Fix for commit 9e2a140. reset_pinentry() was clearing pin->pin_pid
    before the timeout thread terminated and was killing server process.
    
    Fixed a memory leak.

commit 0bfbdb67ead40bc829732f55626250719955c1f6
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jun 15 14:14:36 2008 -0400

    Switched signal SIGUSR1 and SIGHUP. SIGHUP is more commonly used to
    reload configuration files.

commit 9e2a1407908af8f5f89ccd351ad6365d765cfbfd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jun 15 12:25:46 2008 -0400

    Added protocol OPTION TIMEOUT to specify the number of seconds before
    the pinentry dialog terminates while waiting for a password. This also
    adds a new configuration parameter "pinentry_timeout". The default is
    20 seconds.

commit 61b00b4465eedd00288281d1e487912023f578d1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jun 15 08:50:17 2008 -0400

    pwmd will daemonize by default. This removes command line option -b
    and adds -n to prevent forking.

commit 9d45519c7c3a9692a4a0a65004da7ec7fb778f77
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Apr 6 12:49:15 2008 -0400

    Version 1.10.

commit 2f129758038a8c8f05de4c2bf10031135fd86e64
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Apr 5 12:33:58 2008 -0400

    Forgot to add status.h to GIT. Fixed.

commit 18c3ab7ce4102781734f56f5d0375d800ec25c0a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Mar 19 21:25:33 2008 -0400

    Busy-loop lock_pin_mutex() to send LOCKED status messages like
    lock_file_mutex() does.

commit 25e4596725b539b293e7dca2c0709807f43370de
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Mar 19 21:02:22 2008 -0400

    Call assuan_register_post_cmd_notify() from register_commands().

commit 8bc083add89fb4a6e372c857cce43cb9cb522928
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Mar 19 20:58:57 2008 -0400

    Don't iterate through the memlist twice when calling xfree().

commit 0809d5f368fe210b622c0836880734d62ae87661
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Mar 14 21:25:09 2008 -0400

    ATTR LIST now separates the attribute name and value with a space
    rather than a TAB.

commit 486e85962bc24cb020a80a446e37a172e7ca7de7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Mar 8 16:01:12 2008 -0500

    Make sure OPTION ITERATIONS is >= -1.

commit 3bc1d0b1be3f2a9147256e03f44ef3f6acd35506
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Mar 8 11:38:33 2008 -0500

    Version 1.9.

commit 6278b03cca4dfbc1110d47cc200c3ce1ae299aa9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Mar 5 19:41:13 2008 -0500

    Send the LOCKED status message once per second (rather than a half
    second). This should be good enough to let the client know whats
    happening. If the client disconnects before the timeout expires and
    the lock is released, the command will fail from the next status
    message or command result being undeliverable.

commit 36c1fe69017263df799a158bb774115bc57e97d5
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Mar 4 22:06:01 2008 -0500

    Don't set the iterations configuration parameter when the file is a
    new one in open_command_finalize().

commit d8672f1df2aaa12b0262766573f5cc98dcb76138
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Mar 4 21:57:56 2008 -0500

    Convert the GETCONFIG parameter name to lower case.

commit 55200a520eb395565152a4c3615e8bcb43ebc0a1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Mar 4 21:56:46 2008 -0500

    Fixed the "key" and "key_file" configuration parameters being shown
    with the GETCONFIG command when a filename was specified.

commit 79a225a38bb4280c37ea6063279a2ffce65b218a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Mar 4 18:55:57 2008 -0500

    Also send the CONFIG status message when the file header iterations
    differs from the configuration value.

commit 4d442844325b7cf87cf5c03f7d4df2a04433ec29
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Mar 3 19:12:25 2008 -0500

    Send the total number of iterations with the ENCRYPT and DECRYPT
    status messages. This can make it easier for a client to do use things
    like progress bars when the number of iterations differs from the
    configuration value (no file is open yet, and the file header contains
    the actual number of iterations).
    
    Also set the "iterations" configuration parameter after a successful
    OPEN. This will keep the iteration setting for the next SAVE. To
    change it, use OPTION ITERATIONS. The original configuration value is
    now only used for new files.

commit f0034bfcc65192b91ea83e92f83dffb5608a5d4c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Mar 2 20:20:26 2008 -0500

    Zero out the contents of the temporary key with the OPEN and SAVE
    commands.

commit cc4f5c6a0e6b36c5b603759f7e095b6c299684ba
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Mar 2 20:04:00 2008 -0500

    Fix for commit 9900db8 and a segfault in the PTH_EVENT_FUNC callback.
    The callback uses it's own stack space which messes up access to the
    client data. So we'll busy loop on pth_mutex_acquire() until the lock
    can be obtained and send status messages from there instead.

commit 68a9764b821a064f6f8a815245b87305d80a64a9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Mar 2 20:03:36 2008 -0500

    Include locale.h when ENABLE_NLS = 1.

commit 9900db8c8b9cd9e0c839420db8ff07642fa305a4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Mar 2 10:44:37 2008 -0500

    Use an event in lock_file_mutex() to test if the client is still
    connected. Fixes terminating the client thread that was waiting for
    the lock but disconnected unexpectedly.

commit 7f2af6865870732ea9ae51f8b64685d44656a302
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Mar 2 08:17:59 2008 -0500

    Added the GETPID command to retrieve the PID of the daemon.

commit 24581f60f4a0fc2af1325876138858826d11cf6b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Mar 2 08:02:11 2008 -0500

    Don't require an opened file with OPTION ITERATIONS and send the
    CONFIG status message to all clients and not just the current one.

commit 71379fabbbfecd4706ebcde1a209a5e4a0f96289
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Mar 1 11:27:33 2008 -0500

    Version 1.8.

commit 8c9f8d7f6ad3e1fb76d8e8d38596c49e8cff74fb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Feb 28 20:10:42 2008 -0500

    Added OPTION ITERATIONS to set the encryption iterations for the
    current file. This will also send the CONFIG status message.

commit abf3438f20dc90fb5ede0906bca78c99304721c4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Feb 26 20:19:23 2008 -0500

    Added the CLIENTS status message to show how many connected clients
    there are. This is sent to every client after every new connection or
    after a client disconnects.

commit bc8c55472c7920f7ba414c8fc74676560940fe82
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Feb 26 18:33:23 2008 -0500

    Use pth_msgport_put() for the current thread too.

commit 9b25904e7435d201ff4faf1df5b327c04938e10e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Feb 25 23:10:46 2008 -0500

    Use a timeout event in server_loop() to send the KEEPALIVE status
    message which uses a pth_msgport_t via send_status_all(). This removes
    keepalive_thread() which can make pth_yield() more responsive when
    encrypting/decrypting.

commit 78e9d8bfe0421bd046a33153c8e299c0bdaba649
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Feb 25 22:09:55 2008 -0500

    Use a pth_msgport_t event instead of signals in child_thread() to send
    status messages to the client. This removes the SIGUSR2 and SIGALRM
    signal events.

commit 7b7b138e0162bdbb1eca8894766dcdc19f399fe8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Feb 25 20:39:02 2008 -0500

    Use pth_cleanup_push() to set a callback to cleanup the client data
    after the client thread terminates. This removes the cleanup_thread
    which lets the client cleanup immediately after termination rather
    than the cleanup_thread interval.

commit c0e8525415e1996df206cca2a34d2df9d8080207
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Feb 25 19:59:47 2008 -0500

    Added the CONFIG status message which is sent after the configuration
    file has been reloaded.

commit 3106ec97a0f3d3bb9e7a6d452ac6d47648933e25
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Feb 23 10:16:04 2008 -0500

    Configuration parameters "iterations" and "iteration_progress" fixed
    so they can be used in a file section.

commit bac89c2696e1f7d042cb496158b9dddb7674f04a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Feb 23 09:49:51 2008 -0500

    Updated manual page.

commit fb31bcbdc51530101d7e3e8d11cd59fd9cee3fcb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Feb 20 22:19:28 2008 -0500

    Added command line option -i to specify the number of encryption
    iterations when importing with -I.

commit c64c4670a7a23e7299338e88a002cc0670aa9b70
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Feb 17 11:36:21 2008 -0500

    Let the GETCONFIG command take a file argument. This fixes retrieving
    values for files that aren't opened yet.

commit bf7dae72de784fb5e940b76efb88d40ebd8eada0
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Feb 16 17:11:51 2008 -0500

    Version 1.7.

commit b3c9b9cf072a5eb5f46193cf23009789e21ba31a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Feb 16 01:20:25 2008 -0500

    Added the LOCK and UNLOCK commands. LOCK will lock the file mutex and
    prevent other clients with the same open file from sending non-cache
    related commands until UNLOCK is sent from the same client that sent
    LOCK.
    
    So if you are in the middle of modifying some existing data and you
    have a client that needs the same data, this can prevent old data
    being sent to the other client and can also prevent
    EPWMD_FILE_MODIFIED errors.

commit 5de2859eff2faa541d35e0ff8ce887ba5206037f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Feb 10 18:47:20 2008 -0500

    If there is no DISPLAY environment variable when pwmd is first ran but
    later set in ~/.pwmd/pinentry.conf, use the --display command line
    option to pinentry. Fixes X11 pinentry falling back to curses.

commit 90244bbab249e0c6f30cb3f95070e46bcd3538c4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Feb 10 14:59:31 2008 -0500

    Fixed freeing an invalid xmlErrorPtr when EPWMD_LIBXML was returned as
    a failure.

commit 8a62782d3668adf6154b0b2a09b197c3b6a65f73
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 27 10:39:47 2008 -0500

    Version 1.6.

commit b31574fc3814bab8ec59009d1543cd5d27172f12
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 23 20:24:22 2008 -0500

    Out of memory check in import_command_finalize().

commit 6fc9a5731fbf64bf893836d4ebb0631768a99487
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 23 20:08:14 2008 -0500

    Fixed the IMPORT command to overwrite an existing node of the same
    name as the root node of the imported content.

commit 38fae302156a5f509fb64786eb286acadead613c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 22 19:33:50 2008 -0500

    Updated TODO.

commit 54f5fec8eb1e4b3b74a1585d9bcc225912453e4d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jan 21 19:57:20 2008 -0500

    Fix for the previous commit. Don't modify the config default for the
    file. Only for this session.

commit 13fe5e0ee502d5d901715f7fe4c4d0cb4f94ccee
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 20 14:40:53 2008 -0500

    Fixed OPTION PINENTRY when a file hasn't been opened yet. Don't set
    the "global" configuration section because it affects other files.

commit b0186326de64ccd6e5f8164c8625e013e4ecfc50
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 20 10:57:08 2008 -0500

    Added a note about a child node of the same name as the new content of
    the IMPORT command.

commit 2f46c069ac3524a1a43c4be996c69116a4d4710b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 12 17:28:53 2008 -0500

    When the pinentry process dies unexpectedly, set the error to
    GPG_ERR_CANCELED rather than GPG_ERR_ASS_CANCELED.

commit 05e5bf4660adb161726be152f57f80d8c284d81a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 12 14:58:31 2008 -0500

    Version 1.5.

commit 38b38990f330718aed43525b9a6c5261f3bbcd9a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 12 14:45:13 2008 -0500

    Fixed a segfault in xml_error_cb().

commit b9f6f42aa61a6f95d6ffc1edda33a56b71e85bb9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 10 21:22:58 2008 -0500

    Fixed EPWMD_LIBXML_ERROR error descriptions. In client_thread(), when
    assuan_process_next() fails, call send_error() rather than
    assuan_process_done(). Also keep the first error that libxml reports
    which will be the one sent to the client.

commit 6c6b3dc04701401da585ab3baabb9d0caf1abf40
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 10 20:46:04 2008 -0500

    IMPORT: make sure the element path is valid.

commit 1ab6ef826b226bc04c5b5615c1f83eff33c1efee
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 10 20:22:32 2008 -0500

    Added the IMPORT command to import real XML data and append this data
    as a child of the specified element path. This command uses the
    INQUIRE server response like the STORE command does.

commit 1e6fa024f4145253676a79482fc388b86c15c8be
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 8 20:27:27 2008 -0500

    Updated docs.

commit ddaa8a04fe0e62ed08f87a1469f7e79cdf67df60
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 8 19:44:51 2008 -0500

    Replaced occurrences of 'error' with 'rc' since an error() function
    exists and is shorter too.

commit ddb7b8869252ee6e80d4e5be99a4f69ab7f492b9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jan 7 20:30:42 2008 -0500

    When there is a value specified with the XPATH command, reverse the
    order of processing as recommended by the libxml2 xpath2.c example to
    fix xmlNodeSetContent() from overwriting things.

commit 6b48485009a4b661f0755d0cb81ea003a9de08f3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jan 7 20:16:38 2008 -0500

    Added the XPATH command. The first argument is an XPath expression and
    the second, which is optional, is a value to set to the result of the
    expression. If no value is specified, the result of the expression
    will be sent to the client (if any). Otherwise, the result is set to
    the value argument and the document is updated.
    
    Note that this command isn't well tested, but it seems to work. :)

commit d4fb4588d62d120f05ddb31fe5d523fee34635ba
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jan 7 18:54:07 2008 -0500

    Call xmlInitParser() in client_thread() and xmlCleanupParser() before
    exiting the daemon.

commit 4f8a8b864518d4c658e7c627976f2bec0d7fe36e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 6 21:35:56 2008 -0500

    Don't close the client file descriptor in remove_connection().
    assuan_deinit_server() will do it. This fixes IPC read/write errors
    and a race condition with cleanup_thread().
    
    unlink() socketpath in serverloop() when waiting for clients to
    disconnect to prevent new client from connecting.
    
    Use g_snprintf() and not snprintf() for portability.

commit 33ad2264899a00cb8faf1c39bbda79c093a7c1e6
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 6 20:22:08 2008 -0500

    unlink() the temporary file on failure.
    
    Added a note about the cheesy S_IWUSR test. What if the data file has
    an ACL? The owner doesn't absolutely need write access. I'd rather not
    add a libacl dependency to determine if it does. If you do need this
    though, let me know.

commit cd0c6e793446a25254ebd9c13ecdbe707cabe72a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 6 20:09:04 2008 -0500

    If the data file isn't user writable, don't attempt to write the file,
    return an error instead.

commit 38a309bbde647fdc4e7f5724dc40b5ebd485273a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 6 19:48:45 2008 -0500

    Added the "backup" configuration parameter. When "true", the default,
    a backup of the data file will be kept in the data_directory with the
    ".backup" data file extension.

commit 9c07d8252a6d547300ecb668165b56b87cbc7d61
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 6 09:58:33 2008 -0500

    Use g_strlcpy() rather than strncpy().

commit 5dbe5724e76ef4e43eb46b27299cdacc8a7bf616
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 5 12:26:10 2008 -0500

    Version 1.4.

commit 8c50f975d296946989cd49f24fc4d7278102044c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 4 20:20:14 2008 -0500

    Only allow one instance of pinentry. Use a mutex to ensure it.

commit 4059e203edd82b41a3a5eddfeb046ea5b2c72fb7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 4 19:15:50 2008 -0500

    Return xmlGetProp() from node_has_attribute(). This allocates an
    xmlChar *.
    
    More out-of-core checks.

commit a8d65e96432e0ef47302e040523563c84d150e48
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 4 17:51:54 2008 -0500

    REALPATH bugfix for literal elements and realpath_elements_cb() will
    also resolve the path-so-far, and is cleaner.

commit 88415c616f45f4432f757d30fc8b04fff0da8014
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 2 20:00:19 2008 -0500

    Free the client data when pinentry fails from the OPEN command.

commit de763db66a2ba509baad51402a40ecc6cfd4d0e1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 2 19:40:56 2008 -0500

    Fixed disconnecting the client when the pinentry process dies
    unexpectedly.

commit e095782b35e3ab6afbf4226b46c63398ffa29b00
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 2 18:37:27 2008 -0500

    Fixed a null pointer reference which could lead to a segfault.

commit c333e0f51d6b9b57e5f0b6029a9caf67f7e2bd35
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 2 18:13:28 2008 -0500

    Assign the file descriptor before spawning client_thread().
    
    Renamed socket_thread() to accept_thread().

commit 59b05c8bc31982a8b3b1012cb84601cfb4216bf6
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 1 20:19:31 2008 -0500

    Update the log settings (path, enabled, etc) on each file reload.
    
    Fixed print_fmt() to be thread safe.
    
    Cleanups. Added misc.[ch].

commit 1407a32f6c1edcfb198f1d95b0519d99aa03a5e9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 1 18:04:50 2008 -0500

    Only include xdump() if DEBUG is defined.

commit 86cc8e232dba748c3b058171b26e9e953b0e6a38
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 1 17:52:46 2008 -0500

    Fixed a couple memory leaks.

commit f5baeb0059c12db45030bbcbf054ac6edb82cae9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 1 17:15:43 2008 -0500

    Fixed corruption of the connection list. Lock the cn_mutex in
    send_cache_status_all().

commit a30e9e427f9523bdbb86faf9ad35b58fa69269bf
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 1 16:57:57 2008 -0500

    Prepend memory elements rather than appending them to the list.
    Finding the element to free is quicker since it's closer to the
    beginning of the list and there's no need to find the end of the list
    when creating a new element.

commit a3e6781ba07577860ab7eb023b0d30126a71a75c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 1 16:01:41 2008 -0500

    Changed some error codes.

commit 62564a0fdcef05c9a2607332f02b2260a6e319cd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 1 15:22:56 2008 -0500

    ATTR SET TARGET fix for complex targets.

commit d6c7b7c5deedfd52d25afa5ebd2c77120bb7aac3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 1 14:25:27 2008 -0500

    Updated TODO.

commit 20fc0dc1371bf4f62780d048e74776990e714d1b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 1 14:13:32 2008 -0500

    Changed the "default" configuration section to "global".

commit d01e46279c12c22b041b946d3cc7c72784658343
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 1 12:22:15 2008 -0500

    Updated the copyright header.

commit 1c689d6a24fe73752837264216e99b65644fda65
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 1 12:12:25 2008 -0500

    Free all clients in the child process after pth_fork().

commit c06ea23f24c1959ce00b514666cb580f56b1857a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 1 11:01:58 2008 -0500

    Another LIST output fix. This one fixes complex target recursion and
    simplifies things.

commit ac9bc6783b8feea02ed1863b0d8f281f0e6200ff
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Dec 31 16:57:03 2007 -0500

    Fixed some lintian warnings for the Debian package.

commit dda86129c066011a6175c2db1db54eb410898263
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 30 18:55:17 2007 -0500

    When "enable_pinentry" is TRUE, use pinentry for getting the password
    for files listed on the command line or with "cache_push".

commit 77c3b6e335544e42e941e799b792a192f980f670
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 30 17:42:02 2007 -0500

    Fix for the previous commit. When OPTION PINENTRY is changed, update
    the key file handle to the new value. The key file value may be for
    the "default" or the already OPEN file.

commit 3b7c0b081dd1bae3826f651fb3598a666a5d03ee
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 30 10:46:48 2007 -0500

    Allow "enable_pinentry" in a file section in the configuration file.

commit 0e6004fe77aabb2d469e2d54427254d9c11243e0
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 30 10:39:42 2007 -0500

    Added a note about empty keys and pinentry to COMMANDS.

commit c71823e8991310c24c062f15efcf3daad92a9dd2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 30 10:20:27 2007 -0500

    Don't call send_cache_status_all() from cachetimeout_command(). Let
    cache_adjust_timer() do it.
    
    Fixed resetting the cache timeout for a file that was re-opened
    before the timer expired.

commit d4dbf5082142c89138bc10c6e8794b17331b4c0d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 30 09:40:13 2007 -0500

    Set cancellation points in keepalive_thread() and client_thread() and
    don't catch SIGALRM in keepalive_thread() anymore.

commit 77471a21e51a822a200df741088996d022511a2e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Dec 26 19:56:08 2007 -0500

    Fixed handling of not-found elements with the LIST command.
    
    Some code rearrangements.

commit 970cf329f705b2ff51fec026b75592da32bcc052
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Dec 25 21:50:33 2007 -0500

    In previous versions, the LIST command would output both literal and
    non-literal element trees when no literal was specified in the root
    element. Now the literal character needs to be specified. This changes
    how root elements are listed when no element path is specified. If the
    root element contains a "target" attribute, the element won't be
    prefixed with a literal '!' character and both forms will be output:
    
        c> LIST
        s> !A
        s> A
        s> !B
        c> LIST !A
        s> !A
        s> ...
    
    This keeps the output consistent as when specifying an element path.

commit 7e1cc620daf68009e660e3d2c76b38bbca2c6cfa
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Dec 25 21:30:42 2007 -0500

    Fixed the LIST command. It's somewhat faster and cleaner. It resolves
    target elements immediately when found and doesn't require any
    duplicate searching anymore.

commit 07cb1b8d55452aea59048263d7d0f2176fa8262c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Dec 25 15:53:21 2007 -0500

    Use xmlDocGetRootElement() and xmlNodeGetContent() in list_accounts()
    to prevent some errors.

commit cb8edf9792e36ba70451debda6f8ec085cadc1b3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Dec 24 10:43:43 2007 -0500

    Renamed adjust_cache_time_thread() to adjust_timer_thread() and
    updated COMMANDS to include a DESIGN section.

commit 7e6894baef428f6e9c8f262933b4f668b1ccd939
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Dec 24 09:28:56 2007 -0500

    Include src/cache.h in po/POTFILES.in.

commit 1fd3ec80976b7974ce2d89fac1314b809f8df810
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Dec 24 07:44:03 2007 -0500

    Set pinentry options by using the pinentry OPTIONs and not command
    line switches.

commit 1231d3062eacce7fd44b7862f24963874a8dfffe
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 23 15:36:21 2007 -0500

    "key_file" may now have an empty file as a value.

commit e8a34f9bfde58768b77bf36aa51b75cc5aaf1c63
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 23 13:40:16 2007 -0500

    Fixed pinentry_fork() freeing an invalid result on error.

commit 84a442916bb84202ebc0ff121d354779657af696
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 23 09:39:39 2007 -0500

    Removed "OPTION TIMEOUT". Need to wait for pinentry to support a
    --timeout option because there isn't a way to terminate the pinentry
    process after the pth_fork()'ed thread exits. I have a patch ready for
    the Curses and GTK2 pinentry but it hasn't been included upstream
    (need GTK1 and QT patches, maybe?).

commit 29e67062cba592a9dab329e035e937e5a8fce641
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 23 09:31:10 2007 -0500

    Changed the default zlib buffer size to 65536.

commit 673e88cf029eb0219f5b6989d5e57f839ab6771f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 23 08:58:12 2007 -0500

    Another STORE command fix to hopefully fix what commit a118653 was
    supposed to.

commit 25a50d35cf7ef98aadfbaa7f5fd196cf1c7537f5
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 22 12:19:10 2007 -0500

    Fixed a file descriptor leak in pinentry_fork().
    
    Removed assuan-errors.h. I don't know what I was thinking.

commit a118653dc23cd2af52563a29fd3df1cfd00f68ad
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 22 08:11:24 2007 -0500

    Fixed finding elements that were outside the current element tree. For
    example:
    
        <a><b/><c>value</c></a>
    
        STORE a b c new_value
    
    Would store "new_value" in <a><c> and not <a><b><c>.

commit 38f3e38f1d1b216d4dad02227cc49f416bb9e625
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Dec 20 20:23:38 2007 -0500

    Fixed storing values in an "account" root element. The element tree no
    longer needs to be duplicated because xmlNodeSetContent() is used in
    the XML_TEXT_NODE. xmlNodeAddContent() also fixes this for new
    content.
    
    The GET command also uses the new find_text_node() function to find
    the text node associated with the requested element.

commit c4bfce7ba2e5e601f8c76617297666a16f9c564f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Dec 17 18:24:48 2007 -0500

    Wait for the pinentry process to die in pth_waitpid(). Don't pass the
    WNOHANG flag. Fixes zombie processes. pth_waitpid() was sometimes
    getting called before the child process exited.

commit 61ac2e1ae89e13cecbac56815192325bccd1416e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 16 21:02:23 2007 -0500

    Define PWMD_ERR_SOURCE as GPG_ERR_SOURCE_USER_1 and use it.
    
    Added a code flow diagram in COMMANDS.

commit 4ce57b40f592128bb3a93068451de5eca61573e9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Dec 14 21:00:44 2007 -0500

    Added src/assuan-errors.h to the archive.

commit de95c2d75cdaed309fe0554a6c5a78a50b9409b4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Dec 14 21:00:21 2007 -0500

    Fixed parse error in debian/control.

commit 29f1d162beaaa860a3e758005da8165ca19b04cb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Dec 14 20:26:08 2007 -0500

    Some --disable-pinentry compile time fixes.

commit 71036c739a866c1f5f4eab5039b5e30ee9ab4ced
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Dec 14 19:58:18 2007 -0500

    Fixed empty passwords and iterations == -1 with xml_import() and
    do_cache_push().

commit 49e0c1ba8cc69ad07e88b078a5bb8c50d8beb5bd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Dec 14 19:19:13 2007 -0500

    Don't require a key when iterations == -1.

commit 033d0cb44361e289c4469771eb59f1bb69672aab
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Dec 13 20:53:09 2007 -0500

    Make sure client->pinentry->filename is set in save_command() before
    calling pinentry_fork().

commit aa3ee4d06a8205edce8398916a00f2a8c1bc552e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Dec 13 20:37:17 2007 -0500

    Allow empty passwords. Removes EPWMD_KEY.

commit 99b17bf92d27ade6370c3d7818a7d1c45d3d24e9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Dec 13 20:16:21 2007 -0500

    Don't call assuan_process_done() in client_thread() again after the
    pinentry finalize callback returns.

commit 35723d2c2cdfec485540a7455a47a1495f7615aa
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Dec 13 20:03:27 2007 -0500

    Retry pinentry if EPWMD_KEY was returned (empty key).

commit ae2014fdd8c159eb026124fb817f5213d3db2960
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Dec 12 21:46:25 2007 -0500

    When using pinentry to retrieve a key with the SAVE command, confirm
    the entered key and loop until the keys match or until Cancel is
    selected.

commit fd7ab6b71ec6703db27ce12aaa24b75792bb2393
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Dec 12 21:20:39 2007 -0500

    Better DESC strings when using the OPEN and SAVE commands with
    pinentry.

commit 807f8a43a1939956a06b8a4fdb0666e1675da41b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Dec 12 20:58:18 2007 -0500

    Return ASSUAN_Invalid_Value if no DISPLAY and TTYTYPE is set.
    Pinentry will segfault if no ttytype is set.

commit 4e8c693fd3ca06c1335762e697149305b256fbbc
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Dec 12 20:50:31 2007 -0500

    Return ASSUAN_Invalid_Value if no TTYNAME or DISPLAY is set.

commit 31e2a185c1c393e0a78acb399e1ec3b1f83986ce
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Dec 12 20:03:03 2007 -0500

    Fixed DISPLAY being unset but a setting in pinentry.conf failing.

commit 07cc4d8a3a661b1d6766a15a237294494cc294f8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Dec 12 19:18:05 2007 -0500

    Prefix each log message with PTH_ATTR_NAME. This is set to the pointer
    value for each new connection and may be changed with OPTION CLIENT
    NAME=VALUE.

commit e94e5beb25511acf91d95b3682e7d30becdc0738
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Dec 12 18:28:36 2007 -0500

    Look for ~/.pwmd/pinentry.conf rather than ~/.pwmd/env. 'env' isn't
    really environment settings.

commit 64fdedf9f453f5a44f6f1b622dcfb6cd137479fe
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Dec 11 20:57:38 2007 -0500

    Added a new OPTION "CLIENT". ATM it only contains one sub-option
    "NAME" which sets the textual name associated with the thread ID.
    Useful for debugging a connection log.
    
    Fixed whitespace and NULL terminating pinentry option values.

commit c6538cb8a7ba746f88ebc6d2e60ab70987bf8368
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Dec 11 19:14:34 2007 -0500

    When the pwmd client process does with SIGTERM, set the pinentry error
    to GPG_ERR_ASS_CANCELED.

commit 10040569e6c03a2b03544adcf9455da9093abfa6
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Dec 11 18:53:23 2007 -0500

    Added ~/.pwmd/env support like libpwmd has. It contains pinentry
    NAME=VALUE settings TTYNAME, TTYTYPE, DISPLAY and PATH which are the
    defaults for each new client.

commit 0d0f9d00bfbe9e6cf74d8a8b29e6e62d0c79b26e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Dec 10 21:53:18 2007 -0500

    Updated docs.

commit 2b2d5c571043ac378fae059c5ea13eb2442dfb5b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Dec 10 21:11:26 2007 -0500

    Don't unlock_file_mutex() until pinentry is finished.

commit 0f2f36bc8893a129753a6a7f145ba6a306c1b813
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Dec 10 21:01:22 2007 -0500

    When the "iterations" configuration parameter is set to -1, no
    encryption is done. Only compression if enabled. The default is still
    0 (1 iteration) to keep file compatibility with previous versions.

commit e6beb0d3b036cde5392b99b58d1b332d89ac1b37
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Dec 10 20:30:12 2007 -0500

    Added configuration parameter "enable_pinentry" and OPTION PINENTRY to
    enable or disable using pinentry to retrieve keys. When disabled,
    EPWMD_KEY is returned. The default is enabled.

commit 2b596b2b853e5a3a07d210781bc7a6368362279e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Dec 10 19:50:53 2007 -0500

    Fixed OPTION TIMEOUT=N. The pinentry process will terminate after the
    set amount of seconds and the command will return GPG_ERR_TIMEOUT.

commit b66d9082ab11c81421e5e4b70d03c2f1d5c91231
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 9 21:51:39 2007 -0500

    Free client data in the child process. It's duplicated after the
    fork() and may be left in memory.

commit 0497ce00b311826e94ed07aada2887f29922f252
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 9 21:21:34 2007 -0500

    Have open_command() fail if pinentry_fork() fails for some reason.

commit 24b208ce7e4d7db968161fcb0e52fa552859bf9b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 9 21:10:20 2007 -0500

    Fixed pinentry with the SAVE command. Use a callback for finalizing
    both the OPEN and SAVE commands.

commit 7c2954dcd2642fc36563841d7ae8055736650fdd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 9 20:43:09 2007 -0500

    Use pth_write() in pinentry_fork().
    
    Call pth_waitpid() in cleanup_thread() to prevent zombie processes.
    
    Added cleanup_pinentry() to disconnect a pinentry and free pinentry
    strings.

commit 0532e5464823926f26f8ee9a56731be236ec5179
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 9 20:02:09 2007 -0500

    Added OPTION command parameters: TTYNAME, TTYTYPE, DISPLAY, PATH,
    TITLE, DESC and PROMPT to set pinentry settings.

commit e1411ce4ff3cd8c08d7d735362e8dc08d22038c9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 9 17:16:17 2007 -0500

    Forgot to add assuan-errors.h. Fixed.

commit 95fea44bc923f6239d76548dba6229afea6b2feb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 9 15:09:31 2007 -0500

    Use pth_fork().

commit eaefdeb6c83af41ea819294be7b2db9fa8a90cf1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 9 14:56:13 2007 -0500

    Use libassuan error codes when communicating with pinentry. Borrowed
    _assuan_error() from assuan-errors.c in libassuan 1.0.4 SVN277.

commit f260164eba7a6240e826dc81441ed405cc403d35
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 9 14:09:24 2007 -0500

    Launching pinentry now works.

commit 0193adf2a0965d503a1df1a11571bdb0214d3c96
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 9 13:30:10 2007 -0500

    Beginnings of pinentry support in pwmd. This will remove the forking
    in libpwmd. Pinentry options will be set with the OPTION protocol
    command.

commit a8bc4fb78182afb0c9b6a7587a43a9ace824ed53
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Dec 6 20:25:21 2007 -0500

    Fixed the REALPATH command showing too many literal characters when a
    target attribute element contained literals itself.
    
    Some minor code cleanups.

commit b559a6e053769648daea1151b210cfe0fb53825b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Dec 6 19:36:00 2007 -0500

    Fixed creating an empty account with an invalid name.

commit 0d4e36f1cf089449877a3497adb548590d5ece12
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Dec 6 19:25:16 2007 -0500

    When creating element with the target attribute, trim the literal
    character in element names.

commit d103857c0f94c2ee40d6a41cd312d5e782331f7c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Dec 6 19:03:21 2007 -0500

    Don't create any elements of an element path that contains an
    invalid element name.

commit 90deda09f4a209cefb96fd200224c1fa3c909688
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Dec 6 18:06:21 2007 -0500

    Another INQUIRE fix for the STORE command. This is basically the same
    as commit 896c894. Don't call assuan_process_done() from within the
    callback. I wasn't thinking right when error codes got fixed in SVN
    libassuan.

commit ba411c67d6b5cd387df1ed6453a23aadd8b7ccdc
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Nov 27 21:17:00 2007 -0500

    Include the thread id in the client (dis)connect log message.

commit 0b345d4b51362600a255be200c37b9e694dbd95a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Nov 26 17:28:02 2007 -0500

    Added /usr/local/share/aclocal to the list of m4 locations.

commit 42bb698fbf53152b4d53d383f09cc436ddc3cb42
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 25 20:45:16 2007 -0500

    Use AC_GNU_SOURCE to define _GNU_SOURCE.

commit f072f79c9598066e616ca77f40f7a98abb7503f2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 24 15:35:34 2007 -0500

    Updated README and NEWS.

commit 69539e419b4a490911a953731157e9b124379b80
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 24 15:35:25 2007 -0500

    Regenerated po/pwmd.pot.

commit 1c46ffd59e38a211721d136cfe03d7cea0bdce5d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 24 15:33:33 2007 -0500

    Require libpth2.

commit d4ec283527f2c3b007da4e05b7bd9346fc8f20fb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 24 15:09:59 2007 -0500

    Fixed incrementing the file mutex refcount.

commit 7099663e93c9920af2512955a5622efa5fe60e23
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 24 14:24:48 2007 -0500

    Fixed sending CACHE status messages.

commit 4ca738a89bbf0bd684a41463efcd94da666157b6
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 24 14:10:23 2007 -0500

    Ignore SIGPIPE completely (SIG_IGN).

commit c7eb61515bad89e52265fd357a53e31d6bd9bb30
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 24 14:09:45 2007 -0500

    Each cache slot now contains a mutex. This mutex is locked in the OPEN
    and SAVE commands and released after the command ends. This fixes the
    cache mutex being locked for long periods of time and having
    adjust_cache_time_thread() spawn threads that stacked until the cache
    mutex was released.
    
    The file_cache_t also contains a new member .refcount. This keeps
    track of how many clients are using this slot so the cache modifying
    commands don't overwrite the mutex.

commit 88ee6e7b0f3c45318dc7283d9753cab6c55c52f9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Nov 23 13:35:35 2007 -0500

    Assuan now returns an error code from the inquire callback so this
    makes things simpler.

commit 46ea119b939626046b8ba5f1ac4c72b270ca8a52
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Nov 23 08:31:04 2007 -0500

    Another keepalive_thread() fix. Don't exit the thread if the
    "keepalive" configuration parameter is <= 0. Instead, act like it was
    set to 1 so when the configuration changes again it has a chance to
    timeout again.

commit 2763f01a89b2023dbde7563749fe2fcdbe5bf598
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Nov 22 20:11:57 2007 -0500

    Log mlock() failures rather than printing to stderr.

commit 88426b91a63550ed42c89b62d9df262a82f94cf9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Nov 22 19:02:21 2007 -0500

    Fixed keepalive_thread() to check the "keepalive" configuration
    parameter at each iteration. Fixes rcfile reloading.

commit 8c2e1fd41fa0b595dfc9b599f76a6f0be2429c8a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Nov 21 20:36:17 2007 -0500

    A couple UTF8 fixes. Don't calculate bytes as characters.

commit 412322fe3bb705010d797b88b4b85f41b23bd15b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Nov 21 19:47:57 2007 -0500

    Fixed some non-thread-safe variables.

commit 6637261cb42552bfcd6057794c308e98d4b003ce
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Nov 21 19:06:17 2007 -0500

    Signal cleanups.

commit c89dd3bb2e633d34cf0de6eb3f7259d86718b390
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Nov 21 18:21:24 2007 -0500

    Append the username to the init log message. Useful when syslog
    logging is enabled.

commit e8c83a8172e3c5c6d34cfff9008ffc3bbc99fea7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Nov 20 20:25:34 2007 -0500

    Fixed catching SIGABRT.

commit 790db708544b77e42e25927f011719f08b03282d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Nov 20 20:19:51 2007 -0500

    Fixed setting initial thread attributes for the socket thread.

commit 893e9a6210aba6f220db17c93deeb7f1627e9050
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Nov 20 20:03:03 2007 -0500

    If there's an error while sending the KEEPALIVE status message, raise
    SIGQUIT to the client thread to signal to exit.

commit 9195852c3efe4a5a018e1a52f3a5d72b696b98c5
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Nov 20 19:14:51 2007 -0500

    Added configuration parameter "keepalive". This specifies the
    interval, in seconds, to send the new KEEPALIVE status message.
    
    All client cleanup including XML stuff has moved from client_thread()
    to remove_connection().

commit 56aa0d4835db6b3cf6e6f9440570bf063ee412ca
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Nov 20 18:02:14 2007 -0500

    Fixed checking for setrlimit() and mlockall() which was removed during
    a cleanup.

commit 497d8db5d63e43f4ac76b24698d38ab22891bab8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 18 20:23:00 2007 -0500

    Ignore SIGPIPE in all threads. It was being caught but nothing done
    with it except logging.

commit d8968bff5aebd35f454d7c7e91d1975fc8883027
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 18 19:49:21 2007 -0500

    Added RESET command handling. It'll free all the resources of the
    document and act like a new connection without any open file.

commit aac0168eb56f01509bc6ab7072d6a580256f194e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 18 19:19:49 2007 -0500

    Save the error from store_command_finalize() so those errors can be
    handled correctly in client_thread(). assuan_process_next() doesn't
    hold the return value for the inquire callback.

commit a0d633955584e7afafc6fe755e5dcdc756c8d904
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 17 12:07:51 2007 -0500

    Updated to work with libassuan 1.0.4 (STORE command).

commit 8c7596b974dc247db6f2ad03c59d4747be810f88
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 17 11:45:51 2007 -0500

    Require libassua 1.0.4 which fixes some important bugs. Not released
    yet.

commit 342b31c9beb1f33581e69bd581bbb9513b681425
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Nov 15 20:12:12 2007 -0500

    Log which signal was caught like before.

commit d1fee19cce8a6584cf95bb4ad22f945910984ddb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Nov 15 20:02:24 2007 -0500

    Updated COMMANDS and NEWS.

commit ed27f8c7bc18b91ae9d0a2963368ebe2da36389d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Nov 15 20:01:54 2007 -0500

    Satisfy autoscan.

commit 7c984ce362ffaa1a2c2002e7d68c0a83549cd833
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Nov 14 20:14:37 2007 -0500

    Added a 'configure' message about zlib version.

commit 1553af3012156bc34e36e6d8fa069b84cb89368f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Nov 14 19:36:03 2007 -0500

    Fixed setrlimit() and core dumps. It was disabled for debugging.
    
    Removed libxml memory init stuff from xml_import(). It's already setup
    in main().
    
    Call mlockall() after the glib key file parser if configured to.

commit cac150b64b33e7b88d350859778f6a48c3175184
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Nov 13 21:32:13 2007 -0500

    Fixed creating new account names will invalid characters in the name.

commit 896c894f3e9232cfcee0208f0fd5b837c2d138b2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Nov 13 20:09:03 2007 -0500

    Fixed the STORE command. Don't call assuan_process_done() from within
    store_command_finalize() which is called from assuan_process_next().
    Wait for assuan_process_next() to return first.
    
    Fixed a typo in log_write() which fixes commit 9da3dee. Logging to
    syslog really works now.

commit 87ea44fd6a9741aad314e98c1c5a4a588c0f0d89
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Nov 12 19:03:51 2007 -0500

    Removed acinclude.m4.

commit a79a59892d18dda0f0a35a048ee5bc00522ded25
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Nov 12 18:59:00 2007 -0500

    Regenerated po/pwmd.pot

commit 12997c2877ebef64b29ed591fe0bc5d5c07a0408
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Nov 12 18:58:11 2007 -0500

    Updated NEWS, README and the Debian package description (again).

commit 9da3dee653c9ac9cc24f573e2deb6b7fdbdde3d5
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Nov 12 18:42:01 2007 -0500

    Fixed logging to syslog when daemonized and enable_logging=false.

commit eaf55983b6fdeb212ed6c9f7823d63cc5d123d2e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Nov 12 18:30:59 2007 -0500

    Renamed shm_data to key_cache.
    
    More error checking in client_thread().

commit b5e4c1c1ac3281decb81280640848eb8b61e434f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Nov 12 18:22:22 2007 -0500

    Reuse gpg-error error codes more often.

commit 041688da8d95facb443fc10755e2e07f885aee7a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 11 22:11:48 2007 -0500

    Updated Debian package description.
    
    Added 'changelog' dependency to the 'deb' Makefile target.

commit 27929564cbe78dcab8014200de7ce758515c6e29
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 11 20:13:26 2007 -0500

    Fixed sending multiple CACHE status messages to clients and also
    sending CACHE status messages after a SAVE.

commit ede163d10956862dd1de232a88460a89e78bc133
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 11 18:33:34 2007 -0500

    When the timer expires and a new thread is spawned to update the
    cache, set the priority to PTH_PRIO_MAX. When another client is
    waiting for the cache lock these threads will be processed first to
    minimize the timeout threads stacking.

commit 4177df33674b7e184e23603b2fb60a80a584b108
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 11 18:28:59 2007 -0500

    No longer use a pth_rwlock_t but a pth_mutex_t.

commit 01d662a3abb22473aa2a408bce462e9a20a9a512
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 11 14:25:49 2007 -0500

    Added configuration parameter "syslog" to enable logging to syslog
    with facility LOG_DAEMON and priority LOG_INFO. The default is false.

commit c7e0e2fab1082b6a2f8c4f5b9b503e2c6004906b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 11 13:44:08 2007 -0500

    No need to set the socket fd to non-blocking because it's in it's own
    thread.

commit c9a8fbbacfdfa6de248468cb80db5786987aeac0
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 11 13:33:57 2007 -0500

    Set quit=1 in socket_thread() in case pth_accept() failed even when
    not terminating.

commit 8c087f026cbf0665be8625b55a19a968e4e50949
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 11 13:28:42 2007 -0500

    Thread attributes are copied in pth_spawn() so it's safe to reuse the
    attr object.
    
    Reset a connection thread priority to standard in socket_thread()
    because threads inherit attributes.
    
    Be nicer about terminating the socket_thread. Check for an exception
    in the event and terminate the thread if theres an pth_accept() error.
    This will occur when a terminating signal is sent which closes the
    socket file descriptor.
    
    Added xdump() to mem.c which shows not-freed pointers which is enabled
    when DEBUG is defined.

commit 8a57f7cf97658833d8f0d69dc18684cdfbd01ed9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 11 08:36:05 2007 -0500

    If assuan_inquire_ext() fails, return send_error(). Otherwise return
    only 0. Fixes error messages.

commit b13b51ef8f5ba9943299e6a897d1c64117ed2d14
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 11 08:29:51 2007 -0500

    A couple cleanups.
    
    The STORE command is broken. This is a bug with libassuan I think. The
    server will segfault after a client disconnects do to an invalid
    free() in libassuan.

commit 2cdaef7529601066e446164995ee42513170b28e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 10 15:44:58 2007 -0500

    Fixed assuan_process_next() reading a not ready file descriptor after
    send_cache_status().

commit 640ca4a8906fd85e07a01f7d7e26699ef3fd3e9f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 10 13:49:19 2007 -0500

    Ported to libPth. This removes the --disable-locking configure option
    and makes libpth a requirement. Has the same functionality as pthread,
    but is more portable.
    
    When the file/key cache is modified, send the cache status to each
    connected client.

commit 4decf1af7a54e2c3e48be61e51b274ba6a6a79db
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Oct 25 11:59:50 2007 -0400

    Version 1.3.

commit f5f6552ff39fb374c927b720490461d8b55707c3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Oct 25 11:54:49 2007 -0400

    Non Linux 2.6 systems need to specify --disable-locking to configure.
    If an unsupported system is known to have a complete pthread_mutex_t,
    edit config.h and set WORKING_PTHREADS to 1. This is to make sure the
    user knows about locking.

commit 739a16c96ee00544ec6d69786331f98b1a24c9ee
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Oct 24 08:42:22 2007 -0400

    Make the pthread_mutex_t configure test fail on gcc warnings.

commit c22a010fbb7a51e5e8a47feac95b9b7805004d5f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Oct 22 21:37:55 2007 -0400

    Updated README.

commit 351b640b8bb56e0aa724f10555d02a0957e66645
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Oct 22 20:19:26 2007 -0400

    Updated NEWS.

commit 345104a248a4b9840aa37570e8eb6d33b25215d1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Oct 22 20:03:45 2007 -0400

    Added configuration parameter --disable-locking for systems that don't
    have a complete pthread_mutex_t data type. A complete data type is
    required because the mutex is stored in shared memory and a pointer
    won't work. FreeBSD and probably others have this problem. I'll
    probably end up rewriting pwmd to use multi-threading exclusively so
    this won't be a problem anymore. Until then, for systems that have
    this limitation, the chances of data file corruption are increased
    quite a bit if two processes have the same file open and both try to
    write. This also affects the key cache when two processes want to
    change the key when saving.

commit 3d9a2c328b8459265558a54f9b5430e2e75cecb2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Oct 21 11:12:56 2007 -0400

    Added configuration parameter "socket_perms". This will override any
    umask setting for the socket.

commit 8c123a4c91dc1467906ce7456fa67d10504a5c93
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Oct 21 07:31:12 2007 -0400

    After saving the temporary file and renaming it to the original,
    restore the permissions of the original.

commit 784ab94a9529e22b071ffe7fd29e2fb23fdb1ccc
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Oct 18 20:48:31 2007 -0400

    Call setsid() after fork() when running in the background.

commit aa8166dd4a622487b2a6edb43049175e46c09608
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Oct 16 20:15:38 2007 -0400

    Show the function which called MUTEX_LOCK in the log file when the
    mutex is LOCKED.

commit eeebb79815a2e5f0f829092c1c6caf2d6a5fb96e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Oct 16 20:06:22 2007 -0400

    Call fsync() after write() in save_command() to make sure the data is
    written to disk.

commit 0c50eeed1f5c03073ff7927c65f6fdf08b5dd220
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Oct 16 17:59:44 2007 -0400

    Removed EPWMD_FILE_NOT_FOUND.

commit 0ddfede7f97760f3a55620bdfeca3797fc904409
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Oct 14 08:11:11 2007 -0400

    Make sure the data file is intact if the process is interrupted while
    saving by saving to a temporary file then renaming it to the data
    file.

commit 84355f44e8fe8ab61c144d757c31ddd6ace31150
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Oct 13 12:18:38 2007 -0400

    Version 1.2.

commit 6f3e8da219581ae199a14f5e68364b9314f16ccd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Oct 10 20:26:58 2007 -0400

    Removed Valgrind stuff. It wasn't working with the custom allocators.
    Use -DMEM_DEBUG to use the standard allocators with Valgrind.

commit b7055b02a3ef6613835f542ca2ef82716a24a03c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Oct 10 20:11:48 2007 -0400

    Use sigaction(2) in the parent process. A child process no longer
    calls log_write() from it's signal handler or right before exit.
    Instead the parent process logs the pid and exit status.

commit f254eb903e7c4df3ece8b4562c649e9dc9385a12
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Oct 10 19:52:01 2007 -0400

    Catch SIGPIPE in the child process. This fixes the parent process
    obtaining a lock after the child dies unexpectedly.

commit a3fe374da9f2a6c4bcfd5e24cef38bb405d1e40e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Oct 10 17:59:21 2007 -0400

    Updated docs.

commit 811b4e255f4906805ff3eeae05506a05a05be221
Merge: 4ca5bba 25dc722
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Oct 8 20:18:36 2007 -0400

    Merge branch 'pthreads'

commit 25dc72219188b92564a83646daa789965ca0d70e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Oct 8 20:06:13 2007 -0400

    Call MUTEX_UNLOCK after a child process catches a signal.
    
    Write a log message when a signal is caught and the mutex is locked.

commit ca52ca7c0e8b01d45277909914b361968bf04db7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Oct 8 19:15:46 2007 -0400

    Fixed MUTEX_TRYLOCK. I misread the docs.

commit b117a6039bb5cf4fab41cd4857ad6709ab95d198
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Oct 8 19:07:51 2007 -0400

    Make sure the mutex has been locked by the current process before
    unlocking it.

commit 4ca5bba72d08df25471a53fe86783e2e4640bc1b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Oct 7 12:07:31 2007 -0400

    Make zlib a requirement. Version 1.2.2.1 or later is needed because of
    the gzip header.

commit afe239a6472b901af0b6c47f81a9991ee0d112d8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Oct 7 10:45:21 2007 -0400

    Added status message "LOCKED". This is sent when a command that wants
    to lock the key cache is unable to. It is sent only once and the
    command will wait until the lock can be obtained.

commit 3589eecdb4025e6dcbb03422bbff9249fe280980
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Oct 6 21:50:12 2007 -0400

    Updated NEWS.

commit a55e100b563637c6bb574471529756151be0bb83
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Oct 6 21:45:24 2007 -0400

    Fixed send_cache_status() sending the wrong total.

commit 225b956561c0c2cd07b586e2a8110a67cf2ede7e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Oct 6 21:19:05 2007 -0400

    The file cache is now locked with a mutex to prevent other processes
    from modifying it. It's only locked when commands that affect the
    cached are used and unlock afterwards.

commit 589dab51269037e2d319e821da9bb89b6827d859
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 29 13:26:11 2007 -0400

    Version 1.1.

commit 6a5fa88691837ea5f4ac5ad498356f7e57c82bf5
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 29 09:33:35 2007 -0400

    Return EPWMD_BADKEY when do_decompress fails with an incorrect header.

commit 0ec8f66ff469046e51e741b42db3fa91e7fd7643
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Sep 28 19:54:06 2007 -0400

    Check the return values of read() and write().

commit 700093c04d1cce5b9b7a75b71c7afc3af396fc2b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Sep 27 19:09:40 2007 -0400

    Always write a gzip header even if compression is disabled.

commit 76bedb8171043d3362e082032f668e246320a58f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Sep 27 19:01:37 2007 -0400

    Regenerated pwmd.pot.

commit 3ef3dc177051466608e2919a6b009c02e76db538
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Sep 27 19:00:19 2007 -0400

    Fixed a memory leak.

commit 0b22651f32c14909d3d3d2bbf11a4f2c51ecbb49
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Sep 27 18:37:47 2007 -0400

    Send the version in the hello line.

commit 0fcd78a080faf0d5073706f22925a5fdb49f1f18
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Sep 27 17:57:12 2007 -0400

    Fix for commit 38ddfa0. Modify the element but only if called from the
    LIST command. I knew there was a reason for it. :)

commit e1463aece1c5cdd8b7a19da11663f15243619188
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Sep 26 20:55:38 2007 -0400

    Fix for commit e2067d9 and sending SIGUSR1.

commit e080e14c21ed5d59448bbecc4fb43ed21a8054c2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Sep 26 20:22:12 2007 -0400

    Fixed checking the return of mmap(). MAP_FAILED and not NULL.

commit e2067d9f9651f88c0ca47a2767afe7a45d575ee3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Sep 26 20:17:48 2007 -0400

    If a key is specified in the configuration file with "key=value",
    clear the contents of the key after parsing.

commit 4bb67274dcde57227c18c473e48ab5ec93ad8fab
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Sep 26 20:01:48 2007 -0400

    Updated TODO.

commit f0b6d0cde3aa400b5f0c665b0a429ab825a63f7f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Sep 26 19:23:45 2007 -0400

    Updated NEWS.

commit b0cc206e13d0dc7834cede6134e26a35c0f10ca4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Sep 26 19:08:19 2007 -0400

    In commit 6d60398 I added a note to KnownBugs about realloc() using
    free() before the contents are cleared. This isn't true because
    xrealloc() doesn't call realloc() at all. It's less efficient but more
    secure.

commit 4ad96e238bab3b99cc1d9cad4c595568a16cd17e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Sep 26 19:04:41 2007 -0400

    Fixed compressed data corruption. I misunderstood the docs about
    .total_in and .total_out. For the decompression status message the
    size of the document is stored in the comment field of the gzip header
    when compressing.

commit 71b93b9e5299717668e11b10b90ac8f3589fdb89
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Sep 25 22:04:26 2007 -0400

    Added a note about status messages to COMMANDS.

commit 6d60398344d1c59ead1125b926c61fcf0cc298b1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Sep 25 21:48:26 2007 -0400

    Updated docs.

commit b2130712d2b852735d97dc445577c72f851fa575
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Sep 25 21:37:36 2007 -0400

    Default to disable_mlockall=true.

commit 94ca056d96a1fdf95bc6f5742a05ac07c33f20a4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Sep 25 21:23:06 2007 -0400

    More out of memory checking.

commit 48619a49d885d29f065ebe37099360bbe2bd0a4e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Sep 25 20:35:53 2007 -0400

    Fixed the ENCRYPT and DECRYPT status messages to be sent after
    iteration_progress iterations and not before. Also send "0" at the
    beginning of encrypt or decrypt so the client knows what's happening
    if iteration_progress is set really high.

commit 4f8b937a142814d2737efb5cc818463eebfcdb12
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Sep 25 20:09:28 2007 -0400

    Changed the PROGRESS status message to either ENCRYPT or DECRYPT.

commit f1a88db32fed1f5fae9e999eb9afa1ddcd3bb2c2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Sep 25 20:07:14 2007 -0400

    COMPRESS and DECOMPRESS status message fixes.

commit f87a4724c29363fe3d4cea96bd4fc995e6e5b19a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Sep 24 21:08:03 2007 -0400

    Added the COMPRESS and DECOMPRESS status messages. Both output the
    number of bytes processed so far along with the total number of bytes
    to be processed. The frequency of the output is determined by the new
    zlib_bufsize configuration parameter which sets the input and output
    buffer chunk size. Note that COMPRESS shows the number of uncompressed
    bytes in the document while DECOMPRESS shows the number of processed
    compressed bytes.

commit 1e577f92a2e1c0574c4e8126c9859d7c50677733
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Sep 23 20:38:20 2007 -0400

    Removed EPWMD_TRAILING_ELEMENT from pwmd_error.h.

commit 38ddfa0ccaaf81a15093b4d3003c9b1428064072
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Sep 23 20:17:52 2007 -0400

    Don't modify the target value from the command input when creating a
    target attribute. This fixes creating the target value and when the
    actual target was changed the literal element path to the target was
    being used. If the literal path is needed, the literal path should be
    specified in the command. For example:
    
        attr set target some<TAB>path dest<TAB>path
        attr set target dest<TAB>path some<TAB>otherpath
    
    Then "some<TAB>path" used to point to "dest<TAB>path" rather than follow
    the target of "dest<TAB>path" because no target attribute was found in
    "dest<TAB>path" originally and was modifying each element in the target
    value of "some<TAB>path" to be a literal element.

commit 076f942d51fdd9253b8857646c4c93d597612beb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Sep 23 19:51:28 2007 -0400

    More checks of return values from memory allocating functions.

commit 0933f136dcfecb0c041681c3349e8b49300a6078
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Sep 23 15:43:08 2007 -0400

    Fixed disable_mlockall when importing XML.

commit f5d8080cc62cbbb0a88148d3db5125c2317cc94a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 22 09:35:12 2007 -0400

    Fixed checking disable_mlock and using boolean values.

commit 2e3807961bd990529f19be0cc15fc979010354c1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Sep 22 09:25:11 2007 -0400

    Fixed resetting disable LIST and DUMP when the configuration file was
    reread after sending SIGUSR1.

commit f1c3a3195ce338e1109dd57e9511e11efaf19e25
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Sep 21 21:21:45 2007 -0400

    Include config.h in mem.c so gettext.h can be preprocessed correctly.

commit 3a96009e00d043e3abe29ef4459e5681e2dcb7b7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Sep 21 21:01:43 2007 -0400

    Added configuration parameter "recursion_depth". This specifies the
    maximum number of recursions when an element contains a "target"
    attribute. When exceeded, the command will fail and return EPWMD_LOOP.
    The default is 20 but can be changed at compile time. Setting to 0
    disables detection completely.

commit 53ade85202f8f31ff5d9fbe4acd10cc03b0b86b7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Sep 3 10:53:51 2007 -0400

    Version 1.0.

commit 0909f5f29eee2972d34f51f5d48d6c3ae7a2b503
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Aug 30 20:57:34 2007 -0400

    Updated docs.

commit dc3496ccd0692c9f42ee44ae93573221aef3a332
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Aug 30 20:43:28 2007 -0400

    Changed the priority from extra to optional.
    
    Recommends libpwmd.
    
    Updated the description.
    
    Removed TODO from the debian package.

commit 8074b7385d5a1e5e7b48647d4bad0e99283da606
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Aug 30 20:14:03 2007 -0400

    The CLEARCACHE command always succeeds even if the file isn't found.

commit 965710d8dc2d281ab299e0723c9160fa03443181
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Aug 29 18:39:04 2007 -0400

    Fixed a minor memory leak.

commit 37294f0049e38c17abc39ada2712f3054bf7b768
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Aug 29 17:58:45 2007 -0400

    Allow a literal '!' when creating a new account.

commit e8c5f7440ccd38f07b6105f8e8baf410067bcc5e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Aug 29 17:47:00 2007 -0400

    Fixed trimming the last character of the key_file when there was no
    newline.
    
    A couple cleanups.

commit 5a494640747330d8f4840f1aebba6eba9dbfc210
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Aug 29 17:12:17 2007 -0400

    Create and bind to the socket AFTER adding any files to the cache on
    startup. Prevents keeping the socket around when aborted.

commit 9bde46382ac3556848fb90a57c6173461bf0be7b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Aug 28 20:13:38 2007 -0400

    Share decryption code with OPEN and cache_push.

commit 14668a49423ec51c2bdf93077621c040c8eb5408
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Aug 28 18:56:26 2007 -0400

    Check for HAVE_ZLIB_H rather than HAVE_LIBZ.

commit aabb23b6952c9f5cbe67506170fbb9f3596e7bad
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Aug 16 21:12:07 2007 -0400

    Don't check for file existence with CACHETIMEOUT.

commit b225a70bc7938b546de5a1b0a31f19bb772159e3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Aug 15 16:43:29 2007 -0400

    Removed the EXISTS command. Let the client check for file existence
    itself using "GETCONFIG data_directory" to build the path.

commit b5f94f74063299326db86f9ad5c148d6771c0d93
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Aug 14 19:33:54 2007 -0400

    Don't append a newline to the last line of LIST output.

commit 20ee94441732ba0b219eb1a3f64afcff02d4802b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Aug 14 18:36:21 2007 -0400

    Added the EXISTS command which checks if the specified file is
    readable. The ISCACHED command will no longer return
    EPWMD_FILE_NOT_FOUND at any time. It only checks the file cache and
    not the file system. This fixes determining whether a new file has a
    cached password which may have been specified with the OPEN command.

commit 6fedbd04c154e406e46b74c0aff4c6f7c17647f8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Aug 14 17:36:44 2007 -0400

    Fixed saving an empty password to the cache.

commit 182dd4cb70f8a4d15acbe17ae5657d8bf43af3ae
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Aug 11 12:44:28 2007 -0400

    Version 0.12.

commit 363cdfc36d19cc06420254e8c6eea6e354011272
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Aug 11 12:13:33 2007 -0400

    Fixed some compile-time warnings about signedness.

commit 54da20ba2304751c7c8da5083cff52cd6b60365f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Aug 11 09:44:17 2007 -0400

    Don't run dch when doing 'make version'.

commit c54e0e68ee6658a4a0db3fcfd4380026639ea8d4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Aug 11 09:25:19 2007 -0400

    Fixed using a cache slot when a file was opened, then deleted then a
    new file created with the same name.

commit 7a06e32615e3f8c7766e57b9f98987da109f8d12
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Aug 11 09:13:43 2007 -0400

    Don't sort the output of the LIST command.

commit 556b46cfc40c92daaed12b6997fa5925b573d22c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Aug 11 08:52:07 2007 -0400

    Updated NEWS.

commit dd4caf837113f0c27b5259dde10da4df9e93a4f4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Aug 11 08:41:13 2007 -0400

    Fixed showing the last iteration status message.

commit 7365182ee1103936bd8bb4fd2ac464fc09d3252f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Aug 11 00:07:28 2007 -0400

    Updated COMMANDS and TODO.

commit c80c37e917914490bb4b133905a60e8d35ad7a65
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Aug 11 00:04:11 2007 -0400

    Fixed valid_xml_element(). It now checks if the first character is a
    punctuation or digit. Also checks if the entire element contains
    white space.

commit 7a4f0e41e6510848e1066dbd588ccc7a99414a56
Merge: cbdf5a7 d2d2aca
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Aug 10 23:49:00 2007 -0400

    Merge branch 'unicode'

commit cbdf5a79fb7ff0e933e257b810e257e0dca3dd96
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Aug 10 23:26:10 2007 -0400

    Fixed a few memory leaks.

commit 21f6771e767c0ae3285720a95c6a1b5225159534
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Aug 10 23:30:05 2007 -0400

    Added --enable-mem-debug to configure. When enabled, define MEM_DEBUG
    and use the standard memory (de)allocators.
    
    do_xml_encrypt() will realloc() the existing xml data to the new size
    required by gcrypt rather than duplicating it and wasting memory.
    
    A few cleanups.

commit 56645669de56b52dccf061d4d54651978c77283a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Aug 10 22:14:22 2007 -0400

    Files to be pushed into the cache weren't being decompressed. Fixed.
    
    Imported files weren't being compressed. Fixed.

commit 64f23f311b23660d1a49817be343f939dabeecf2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Aug 6 20:01:02 2007 -0400

    Return GPG_ERR_COMP_ALGO from save_command when do_compress() fails.

commit bc35a03bd0263137124d638b1920c750e36b3787
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Aug 10 21:52:41 2007 -0400

    Free the resources used by zlib on failure.

commit 4300178bd0ac4f4127c1fcf3ee7f9a8501940c74
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Aug 6 21:45:07 2007 -0400

    Inherit SIGUSR1 from the server process so configuration file
    reloading works.

commit c1d2af5b7d78cd32bf0d0de60f5b0c3194582f09
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Aug 5 21:16:29 2007 -0400

    send_cache_status() now only prints the number of used and available
    slots without anything else. This makes is easier for clients to
    parse.

commit fe0f4f1c300871ba74eeb82f1e188394cd961786
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Aug 5 20:49:55 2007 -0400

    Fixed de/compression eating up memory.

commit a7fe592452ce787cf244077ea97118da28ee4a34
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Aug 5 20:21:54 2007 -0400

    When sending a progress status message associated with the OPEN or
    SAVE commands, send the number of iterations so far. The client can
    calculate the percentage or whatever by using the GETCONFIG command.

commit d2d2acab7db8b76eee40528b65daaa836bbbd034
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Aug 5 19:55:02 2007 -0400

    Forgot to add gettext.h, fixed.

commit a7aa8d6181a41e4f92c946615319c696b7b122fd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Aug 5 19:45:50 2007 -0400

    Added gettext support.

commit dd19ca10bbc5ac8a9e794bf59b2a7cbbfd0fc718
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Aug 5 10:46:23 2007 -0400

    Strip the first '!' of a new element. If there's a following '!', it's
    an error.

commit 49822c6c19a61e4c2839a7df544c83e190af54fa
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Aug 5 10:23:51 2007 -0400

    Removed the gunichar stuff. It was only being used to test for the
    literal '!' character which is valid UTF-8 because it's < 0x7F. This
    might need fixing if other languages use '!' as the first character of
    an element name (?).
    
    There is no restriction on element names anymore. libxml doesn't seem
    to care what they are so pwmd wont either.

commit 1873fa8b67cf0f2a0ef9ab1d50dfd6ab301bf5a7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Aug 4 15:01:56 2007 -0400

    Added debian/ to the .tar.gz archive.
    
    Version 0.11.

commit 5650344192279b4e1d9a6e621184dee32310981b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Aug 4 14:36:17 2007 -0400

    Don't pass O_SYNC to open() in log_write(). Use fsync() before close()
    instead because it's more portable.

commit 276250ab422ff6fcfea7afde15e142e072e0c692
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Aug 3 21:41:27 2007 -0400

    Added the "compression_level" configuration parameter.

commit 7f3cd5d0b1e43f52d68a043b62465bc245a7a1e0
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Aug 3 21:10:07 2007 -0400

    Fixed setting the xml length after de/compression. Actually compresses
    now.

commit 18dab952ac990c6c3b83aa3d44646c90c88987dd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Aug 3 19:53:51 2007 -0400

    Added zlib compression of data files. Data files from previous
    versions can still be opened, but will be compressed after the next
    SAVE.

commit b16d6d7026511631100a0d54fb58126664d74d22
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Aug 3 16:47:01 2007 -0400

    Made contains_whitespace() utf8 friendly.

commit 1752d508b7dc29b530aac018eeb9b47779d21c8e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Aug 3 16:08:20 2007 -0400

    When LIST'ing accounts, sort the output.

commit 36a46fdc76016d1170dd2e73fc2361610e2863c5
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Aug 3 15:25:06 2007 -0400

    Use g_utf8_collate[_key]() where necessary.

commit 8aa90e96da49a0b52d77b80b7e8451197318f4c7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Aug 2 20:29:14 2007 -0400

    Updated docs.

commit b6c3508abc3b84c4003a44afae815d1a1310a001
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Aug 2 19:56:53 2007 -0400

    Rewrote how finding elements is done. We no longer use an
    xmlTextReader; instead access the xmlDoc tree directly.
    
    The STORE command can now store empty elements or remove the content
    of an element by setting the value to '!'. It can now also store a
    value to an element while keeping any children and can store content
    to the account root element.
    
    GET will return EPWMD_EMTPY when an element doesn't have any content.
    
    Each element in an element path can be prefixed with the literal '!'
    string. This allows for following targets in child elements and not
    just the account element.
    
    The LIST command now supports the "target" attribute.

commit f2980c56ffe653c2c5ba74f2e6275f7724c87ec5
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jul 27 18:21:49 2007 -0400

    Flush the stderr file stream after writing a log message and pass
    O_SYNC to open(2) if a logfile is being used.

commit 1ee60b1b94e4cd72f2e9bc8c85727d87c5422110
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jul 15 20:54:28 2007 -0400

    Fixed a bashism in autogen.sh.

commit 617c6779df52a1e70e6bdf3cc29cc4339042f2ef
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jul 15 20:44:19 2007 -0400

    Renamed PROTOCOL to COMMANDS. assuan is the protocol, not pwmd.

commit 43077387e6b9738972a5d82f880e8c0ed35ae1d4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jul 15 20:40:55 2007 -0400

    Added the GETCONFIG command. This will return the configuration value
    for the specified parameter. If a client hasn't yet opened a file on
    the server or the file doesn't have an associated value, then the
    default value will be returned.

commit 4c6710a757001c47c93b3ba492e78d84a90db762
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jul 15 19:39:51 2007 -0400

    When a new file was opened then the client quit without saving, a
    cache slot was being used. Fixed.

commit 5dd9f02e105ed8d0890011078b98b22ec280d6ee
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jul 14 12:46:02 2007 -0400

    Version 0.10.

commit 505974478954d41bfac70ca8cf865ec47dfc12e7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jul 14 07:44:00 2007 -0400

    xpanic() doesn't require -DDEBUG

commit 41ea13582cba78016e03e5335145efd9fdcf6d2a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jul 13 20:45:44 2007 -0400

    Fixed iteration_progress and sending duplicate status messages.

commit 1031f16bdf0aeb38d81a9c8da3441cfd20cc6bc6
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jul 13 20:26:15 2007 -0400

    Updated TODO.

commit aab7feb3a1cfd2a245307626724441e5114cbc51
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jul 13 20:17:55 2007 -0400

    Added a 'deb' Makefile target.

commit c21037c065da3dfd33a3e71672605bf3a9c8cd61
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jul 13 20:14:56 2007 -0400

    Updated Makefile.am to include config.example.

commit f02f2dbf00d6008ab3836fce04e571fd374a6629
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jul 13 19:30:20 2007 -0400

    Added ChangeLog to the Debian archive.

commit 2a3d1376f8a6166d277d0cad420d4353a7db0b9f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jul 13 18:17:25 2007 -0400

    Compile will Valgrind support even when DEBUG is not defined. The
    overhead is not much according to the docs.
    
    Added valgrind.h to GIT.

commit 8f2e60261ce807dbde4cc86dce55b9740153ae65
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jul 12 21:47:43 2007 -0400

    Fixed a bug with xcalloc(). size should be nmemb * size.
    
    Added valgrind.h. Valgrind won't work correctly by itself with custom
    memory allocators. Although it doesn't seem to be working anyway with
    the provided macros.

commit def606dfbbbee279970c236f554b277f1e999b1d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jul 12 20:12:33 2007 -0400

    chdir() to the data directory. This simplifies the open_command(),
    save_command() and file_modified().

commit f6469dedcb026b0b732f937ac3eee5b617790c5b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jul 12 20:00:50 2007 -0400

    Do the -I import as soon as possible without creating the socket and
    shared memory.

commit bd04469b7c846fb9703ef66e3585a82bcc08993b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jul 12 19:47:24 2007 -0400

    Documentation updates.

commit 29f2df633572cb21856e66295b4f2d875a6c3098
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jul 11 21:39:23 2007 -0400

    When the server process is terminated, wait for the children to exit
    before the parent does. This keeps the shared memory around until it's
    done being used. This fixes clients writing to the unmapped shared
    memory.

commit 2923ee872a1750e070fb5942f9f8a779864f8a85
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jul 11 20:12:07 2007 -0400

    Don't log SIGCHLD from the parent process.

commit d8d9f2fa6943955201f75a14da2ad0396d912923
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jul 11 20:07:13 2007 -0400

    Ignore SIGALRM when a quitting signal is received.

commit 8d4dd47eb8e16b06b1e1beed1332713b1069be23
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jul 11 19:52:16 2007 -0400

    send_cache_status() on open_command() failure fix.

commit e482132349a1b6836a93466f14137062ddd0480e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jul 11 19:39:12 2007 -0400

    When the OPEN, CLEARCACHE or CACHETIMEOUT commands succeed, a status
    message with the CACHE keyword is sent to the client showing the
    available and total cache slots.

commit 45304a86728c6f833c98a8de42ffd538ce6cdab5
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jul 10 18:28:07 2007 -0400

    Updated NEWS.

commit 0b6ab438c9e288558044c80d13a7ba41e665799f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jul 8 20:15:55 2007 -0400

    Catch SIGTERM and SIGABRT in the child process. Ignore the others that
    are inherited from the server.

commit 300526f51b02288d0d7654260915579ac2f1a254
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jul 8 15:05:18 2007 -0400

    Some portability fixes:
        Check for the mmap() MAP_ANONYMOUS flag and use MAP_ANON if it's
        not available (FreeBSD 4.1).
    
        Define MMAP_ANONYMOUS_SHARED by default. If it's Linux < 2.4
        undefine it.
    
        Include both <sys/types.h> and <sys/stat.h>.

commit eff994ca4baf9883515f5cf7263dbd653ee18482
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jul 7 22:57:59 2007 -0400

    Updated debian/copyright.

commit 93f21913cbfe5324f091260e1f047551b718957b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jul 7 20:17:35 2007 -0400

    Updated NEWS.

commit a8bdf8fc0f13694a583e5fa52e4a74a37c9402f7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jul 7 20:04:48 2007 -0400

    Fixed find_elements() and find_element(). find_element() will make
    sure the element is a child of the previous found element and not just
    of the same name and depth.

commit 775664847b3e8e870ecc572eefe46b31e3dbd370
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jul 7 19:45:56 2007 -0400

    Fixed list_command() not setting the error description on failure in
    some places.

commit 3d141042944455ef581c41fba17274701d655643
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jul 7 19:28:16 2007 -0400

    Added the REALPATH protocol command. This will resolve all "target"
    attributes for every element in the specified element path and
    print the result.

commit f31c3a504a18cd94f8a052cfa481066a7898ea9e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jul 7 10:51:00 2007 -0400

    Updated TODO.

commit 04c984a796f820bdd308fda396188da14ab36261
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jul 6 21:15:29 2007 -0400

    Fixed compile time warning.

commit 0e1a4f2dbd21abf13ea5611d3d26134ba191ed13
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jul 5 17:22:10 2007 -0400

    When disable_list_and_dump is set, return GPG_ERR_NOT_IMPLEMENTED
    rather than EPWMD_EMPTY_ELEMENT.

commit e4bda78383510f74393567a59032ee0ea8ad4c2c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jul 4 17:30:00 2007 -0400

    Fixed find_node() being case insensitive.
    
    Ditto for attribute_delete() and the "name" attribute.

commit 744bd4280a14a0124e0167c6c303457546023a27
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jul 4 15:39:40 2007 -0400

    Also allow '.', '_' and '-' in filenames.

commit ffd3f163283e72c361d6f1051c5d1daa189534db
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jul 3 20:59:25 2007 -0400

    Updated NEWS.

commit e4d1b6772f90b4da76215e0c2b858b0fbfa9e056
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jul 3 20:36:26 2007 -0400

    Fixed a FPE with iteration progress.

commit ee9db63963bb78307eeba58ef10ccef94e033b33
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jul 3 19:56:40 2007 -0400

    Sending SIGUSR1 to pwmd will reload the configuration file.

commit 04ef5d12f991e1a8fcca541eef24a7a9f5b224f2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jul 3 19:36:30 2007 -0400

    Added configuration parameter "iteration_progress". pwmd will send the
    client a status message showing the percent of iterations that are
    complete while encrypting or decrypting a data file. The default is 0
    which disables sending status messages.

commit 11abe698e7e16bc3d6efb5e55936b4fd531350dd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jul 2 21:52:37 2007 -0400

    Updated config.example.

commit 3cb106283ddb2d2d3cfc21b19214c930bf4aeb52
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jul 2 21:42:54 2007 -0400

    Added command line option -b to make pwmd a background process.
    
    Fixed log_write() to write to stderr when in the foreground.

commit e8afcc569c92c51b9a4f22a83f85b5950e10adbf
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jul 2 21:14:00 2007 -0400

    Clear memlist and the file cache on SIGABRT.

commit 44597c825dcc2b363289b3c58ee4a6e6cb61c0be
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jul 2 19:47:21 2007 -0400

    Updates NEWS.

commit 3da533d931cc71542f246d2aac6919a53a2cd420
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jul 2 19:00:24 2007 -0400

    The configuration parameters 'key' and 'key_file' now make sure the
    correct key is specified like 'cache_push' does and warn if it isn't.
    
    Fixed an incorrect free() in get_input().
    
    Zero out the password buffer from get_password().

commit 6670627ae27674d972c3333d750fcbe862949567
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jul 2 17:55:17 2007 -0400

    Make sure all configuration settings have a (default) value. This
    fixes enable_logging when no log_path was set, for example.

commit 1cb5b0b5b45aac30f40053e1d85b60a23a15b724
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jul 2 17:32:32 2007 -0400

    The configuration file is looked for in ~/.pwmd/config by default. The
    default data directory is ~/.pwmd/data and the default log file is
    ~/.pwmd/log. This prevents trying to open these non-data files.

commit 9939200892722ee5c8eb20ef6d222d5c42473eeb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jul 2 17:05:48 2007 -0400

    Make sure filenames in cache_push contain valid characters.

commit ae430d1f13821df70f2cf6271d6bbd12e96fc943
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jul 2 16:38:01 2007 -0400

    Remaining command line arguments are files to add to the cache like
    cache_push does.

commit ad038e9eb7234cb19af1b32e812622ef2775cc3a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jul 1 10:35:11 2007 -0400

    Fixed descriptions of libgpg-error errors.

commit 865eda84770debe0ed9ffb743c6b0f0f1209557f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jul 1 09:49:21 2007 -0400

    open_command() should return send_error() after parse_xml(). Fixed.

commit c3c8dbda3293f7eb3d33943afa5f088b3e6eab07
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jun 30 15:40:39 2007 -0400

    Version 0.9.

commit f969029754637371c535dd4c87e9658737b849a7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jun 30 12:21:56 2007 -0400

    Fixed the LIST command to only show literal elements for now. Should
    have been included in commit 9bd67f4.

commit 22e4bc9a227dce4ada196541e641be231f157a7b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jun 30 11:22:53 2007 -0400

    Close the client file descriptor after fork().
    
    Don't log the client's file descriptor.
    
    Close stdin, stderr and stdout before the server loop.

commit c54e014f475168f046124fb63d78622dc385c918
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jun 30 10:25:18 2007 -0400

    Updated docs.

commit 8502ce2589b02d595de72edf60c27373b224b025
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jun 30 10:23:38 2007 -0400

    Added command line option -D and configuration parameter
    "disable_list_and_dump". This will disable use of the LIST and DUMP
    commands. When a client sends one of these, EPWMD_EMPTY_ELEMENT is
    returned.

commit ac871eca544bd8fc256e40b20cf8ee0470a935a5
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jun 29 17:48:02 2007 -0400

    Check the return value of assuan_send_data().

commit 9bd67f4abcf53d4ee6a7efc6036c0d8763864679
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jun 29 21:17:04 2007 -0400

    Fixed is_literal_req() to return FALSE if 'req' is not literal.
    find_elements() and find_account() make more sense now.

commit 6144870db64310d7a41bf8d2e18d153bc7c5889d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jun 28 21:14:48 2007 -0400

    Updates.

commit f7b2690efe6aede6f69aa856bf5e439c9a6fc3eb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jun 28 20:13:12 2007 -0400

    Rewrote the "target" attribute. GET, STORE, DELETE and ATTR now
    support it unless the element path is prefixed with a '!'. The LIST
    command doesn't anymore.
    
    Removed EPWMD_ROOT_TEXT_ELEMENT. STORE will return
    EPWMD_COMMAND_SYNTAX instead.

commit 49eebdf7175f10b8a6b8d8daac551f870dac579e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jun 27 21:05:43 2007 -0400

    The Assuan protocol is now used for socket communication. This
    requires libassuan and libgpg-error. Of course this will affect error
    reporting and error codes. The errors returned are error codes used by
    libgpg-error. They are the GPG_ERR_USER_N codes when no standard GPG
    error will do (non-key and syntax related errors).
    
    Some protocol commands have also changed:
    
        HELP  - has been removed
    
        CACHE - It's subcommands CLEARCACHE, CACHETIMEOUT and ISCACHED
    	    have been made into their own protocol commands. The CACHE
    	    command itself and RESETCACHE (also the
    	    cache_reset_timeout configuration parameter) have been
    	    removed.
    
        STORE - First the client sends just the STORE command by itself,
    	    then after a INQUIRE server response the client sends:
    
    	    D <element path>
    
    	    This is part of the Assuan protocol so a client can send
    	    more than 1000 bytes (the maximum protocol command line
    	    length).
    
        OPEN  - A client can open another file without reconnecting to the
    	    server. If the OPEN of the new file fails, then no file
    	    will be open at all. Also, when a key is specified when
    	    opening a new (non-existant) file, both the file and key
    	    will be stored in the cache. Before you had to SAVE before
    	    the key was added.
    
    Some bugfixes that I should have cherry-picked to avoid a large commit
    but got carried away:
    
    All non-cache related commands will check if the file has been
    modified before continueing.
    
    Fixed a double free() in the LIST command.
    
    Zero out the shared memory on exit.
    
    Don't unlink() a socket or other file that wasn't created by pwmd.
    
    Zero out the temporary file_cache_t variables after use.o
    
    When a file was known not to be cached because of an empty key but
    still had a slot used for the same file, a new slot was being used.
    Fixed.
    
    Added debianization stuff.

commit 70754ff7c5f2363319d37b8ab9077bf315b1d61d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Feb 10 10:43:07 2007 -0500

    Don't colorize git-log output.
    
    Fixed doc/pwmdrc and TRUE or FALSE values.
    
    Version 0.8.

commit 90f97b68b84df4a847cfe7e9f84d04f2399a5e32
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Feb 10 10:21:49 2007 -0500

    Split pwmd and libpwmd into their own projects.

commit 7e584a21b32cf4c17502aa7d3bc94197262cf383
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Feb 6 21:23:27 2007 -0500

    Use AM_PATH_XML2().

commit 03dcb8c366bd38ec2dc5fc6a28fd39e82a70ceb7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Feb 6 21:04:32 2007 -0500

    Added PWMD_OPTION_PINENTRY_PATH.

commit 164b6e489d90e18b5ccd299bddaa888094b88ab7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Feb 6 20:46:19 2007 -0500

    Fail if there is no DISPLAY or ttyname().

commit 8fa3cee66e4b9e1ddf8926222b4a58221616fb5c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Feb 6 20:39:31 2007 -0500

    Set 'error' to EPWMD_ERROR when --disable-pinentry is specified.
    
    Updated docs.

commit 43bc25280248ee3be95864234c751c9944a3dcd9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Feb 6 20:28:06 2007 -0500

    Added --disable-pinentry to configure.ac. When specified, the
    PWMD_OPTION_PINENTRY (or the depreciated PWMD_OPTION_USEAGENT)
    PWMD_SETOPT command will return PWMD_ERROR from pwmd_command() and set
    'error' to 0.

commit 5922a62ab5ca44d4ae7bb92c14df00189e7d1104
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Feb 6 19:24:48 2007 -0500

    gpg-agent(1) is no longer used. The password is gotten from
    pinentry(1) via libassuan. PWMD_OPTION_PINENTRY should be used instead
    of PWMD_OPTION_USEAGENT.

commit 9d432a9bd2c3a6b37aab42438e2854b52f052e5e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Feb 5 08:04:51 2007 -0500

    Added PWMD_OPTION_PASSWORD_FUNC and PWMD_OPTION_PASSWORD_DATA to
    specify a custom password retrieval function.

commit 4fe7392c2101f6e19cba705740ba29cc7bcd4d42
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Feb 3 10:54:43 2007 -0500

    Version 0.7/2.0.2.

commit 5cfb770b3a38bc3cd8ffb61b43af530c20dbb51f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Feb 3 10:23:56 2007 -0500

    Added a libpwmd manual page.

commit 1dbffc3e55707347bb9e31c208a452bf062106f2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Feb 2 20:51:25 2007 -0500

    Updates.

commit 4bc97dabdc271dc4776fb9c3ef6f8088b10b15a7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Feb 2 20:48:39 2007 -0500

    Don't be case insensitive with the "name" and "target" attributes.
    
    If the GET protocol command account elements is prefixed with a '!'
    and the element path contains a "target" attribute then the result
    will be the value of the real element path and not the target:
    
        GET [!]account<TAB>element[...]

commit 9e8b7e2aa09491425b27e1bd30ff7d72bca66598
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Feb 2 19:36:47 2007 -0500

    Don't show element values with -DDEBUG.

commit 252670e14997defe321277014c34f4bc3f3704ac
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 31 22:06:12 2007 -0500

    Added support for "cache_reset_timeout" and the OPEN command.

commit 068ea4e29d098535bdf051a56b194ac44e295e0a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 31 21:45:24 2007 -0500

    Removed .elapsed from file_cache_t. Deincrement .when.
    
    Zero out an unused slot before adding to it.

commit 6ad67a50de1729091293e21946bb7a0e165c7667
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 31 21:20:13 2007 -0500

    Added CACHE RESET and CACHE RESETALL. RESETALL will clear only the key
    for all cached files and RESET will clear only the key for the
    specified file.

commit d8c3a2e2b96cb30f68a0d863c6ca7e1d76322127
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 31 20:35:46 2007 -0500

    Fixed the CACHE CLEAR|CLEARALL command. Now restores the timeout for a
    cached file.

commit dd79ecd585c9c51ccf17896aae85de8bb1063a8a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 31 20:16:52 2007 -0500

    Removed a debugging line.

commit 2b98ee2ed5a65dcfa40b6188e6743b032fca0554
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 31 19:40:18 2007 -0500

    Fixed "cache_timeout" with "key" and "key_file".
    
    Added "cache_reset_timeout" to reset the cache timer after a SAVE
    command.

commit 72ecc9b74e2c7b6204d17072b2ea90599c30e550
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 31 18:56:40 2007 -0500

    cache_push and file path bugfix.
    
    Initialize the glib memory allocators in main(). Doesn't seem to break
    anything.
    
    If theres a failure before fork() that should exit, close the socket
    and shm_data.
    
    Added two new configuration options "key" and "key_file" to specify
    the key for a file. Works with cache_push too.

commit 9b80c42eacb1ae804058e6e017b5c866415e7f53
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 28 09:42:07 2007 -0500

    Update.

commit 33e50c50f69cfba61cfe61c54be31ce994bfabd4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 27 22:26:20 2007 -0500

    Removed the unused pwmd_list_free().

commit 24de99461934fa8a5b6ccb15d915d7547ada756c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 27 20:35:11 2007 -0500

    Forgot to add libpwmd.pc.in. Fixed.

commit ae4869a1adfc125377410f22519b79af2339fc6f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 27 07:53:27 2007 -0500

    Version 0.6/2.0.1.

commit 406b465e540e8c7533837ca13cba9331fd5bdcf5
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 27 07:48:03 2007 -0500

    g++ compiling fix.

commit 9cbd8aa1223bb6480c417c1572b7f8eac95a2bbb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 25 20:07:56 2007 -0500

    Don't include libpwmd.pc in the archive. It's generated from
    libpwmd.pc.in.
    
    Version updates.

commit 044a8ebea725e2bab91f4ac53c272119a3445125
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 25 19:03:06 2007 -0500

    Set the title and description strings when using gpg-agent.

commit 0461ed45d0df02dcebf8b11c39b0d0678f981318
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 25 19:02:34 2007 -0500

    Make sure the result exists before checking for an empty string.

commit dad5ddad8b3e3ab408bd2aa7fd5e22a19c240bcd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 25 19:52:47 2007 -0500

    Restore the working directory after connecting to the socket.

commit 4557132100d5553f549dd9335642f3b3ae96b2b5
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 25 18:38:43 2007 -0500

    Update.

commit 4ea8a4037ef4987cb56b2559790ef33c172160e3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 25 18:36:39 2007 -0500

    Don't chdir() to the data directory. Build the file path from the
    data_directory configuration option.
    
    Fixed the wrong errno string being displayed for some functions.

commit 0a614f5ac71e1dacf3b8eb2f1cb4331e1e20eda3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 25 18:16:52 2007 -0500

    Updates.

commit 44f0c1db1a07e5163da7f5933144beb34b109d51
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 24 21:06:12 2007 -0500

    Clarified some prototypes.

commit 8af4fd70c6d893235f4cf5d9f8d48160b9de7f5e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 24 21:00:34 2007 -0500

    Exit if a configuration file was specified on the command line and an
    error occured while trying to parse it.
    
    Free the key file data on exit.

commit c237c1eccbaab19c875467bb4b6797790c1f4740
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 24 20:51:34 2007 -0500

    Check for alarm in configure.ac.
    
    Forgot to remove some debugging stuff. Fixed.

commit 41ff826136851a6a079bd3e45c88ec4877c2356a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 24 20:41:34 2007 -0500

    Reword some stuff.

commit 3c62a282dcdf2bb5919ac1ace86ee89a296df109
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 24 20:35:10 2007 -0500

    Use [filename]->iterations setting with the SAVE command.

commit 461ccca60865eb592dd9f19fd719b76f809a7c91
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 24 20:26:37 2007 -0500

    Added CACHE TIMEOUT to clear a key after the specified amount of
    seconds. -1 will disable. This adds a new configuration parameter
    "cache_timeout" which may now be specified in the global [default] or
    the new [filename] sections where "filename" is a file located in the
    pwmd data directory.
    
    Fix for the SAVE command not getting parsed properly.

commit 21180625330dad7944a331b725802a94d99afdcd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 20 22:03:59 2007 -0500

    Fix for the LIST command with an element path and going past the
    closing element.

commit cb8e781b745f2aaaac634046d7cfcfd15d96558a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 20 13:34:50 2007 -0500

    Version 0.5/2.0.0.

commit 9d3cf81263533fd75e526012e2af40b5ab2ee0fd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 20 11:34:04 2007 -0500

    Fixed a typo with install-data-hook and make sure ${libdir}/pkgconfig
    is owner writeable which fixes 'make distcheck'.

commit 02fe3b039ddd54409f3932f2bbb5b3cd6295106a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 20 11:18:13 2007 -0500

    Updates.

commit 0388955445edee9e7b84800cfbde7e377b4bd542
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 20 11:11:19 2007 -0500

    Added a note about element values with newline or tab characters.

commit e85f5e0faa8e664cd9a8eabae3e74ff9e0195532
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 20 11:06:17 2007 -0500

    Removed pwmd_base64_encode()/decode() from the library. Let the client
    do it.

commit 412c3be4eff4b33a4599dfb3c8d0fa36b2ca135b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 20 10:33:56 2007 -0500

    Close file descriptors 0, 1 and 2 before the daemon loop.
    
    Reset signals SIGINT, SIGCHLD and SIGHUP to their defaults in the
    child process.
    
    Fixed log_write() and writing to stdout/stderr when daemonized.
    
    libxml and other noteworthy errors are written to the log.

commit 7b59a0ef8c8f105185a4972cfc915dcb30c73ac8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 19 22:53:09 2007 -0500

    Update.

commit 4bf51ed2a8cea1f7fb63757296ab2bc8e11ac141
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 19 22:50:31 2007 -0500

    Updates.

commit bcfcc6a133bd1a580820ecd7bf4fa48fa2df8f19
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 19 22:04:26 2007 -0500

    xml_import(): call xmlFreeDoc().

commit f42be0796aa97f6b305937f49f4a854d32e5e6af
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 19 21:59:37 2007 -0500

    Require the "name" attribute for the account element in the DTD.

commit 4e224f78413b2bfb8d056e250b3018733899748d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 19 21:51:14 2007 -0500

    Updates.

commit 9c92e638cc0079d5146f4298f25cf77bbc606879
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 19 21:45:52 2007 -0500

    Manual page update.

commit 54930a96442d31216c5d9294d050a3ee7bade5f0
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 19 21:39:54 2007 -0500

    Fixed two off-by-one errors. Thanks Valgrind.

commit ecea6f21457edf1de4f2a0866801155a23489ad3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 19 21:28:04 2007 -0500

    Added -I command line option to import an XML file prompting for a
    password to encrypt with. The encrypted data will be written to
    stdout. The iterations configuration parameter will also be used.
    
    The password prompt is written to stderr.

commit b51947cf47c28f1eaeb41cd373028951f2196fe8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 19 19:22:40 2007 -0500

    cache_push with an invalid password bugfix. The file descriptor was
    getting close()ed and also needed to be "rewinded".

commit 35b3c14f391947a6af6ac91e74d0dadd01fb6b2f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 19 18:52:17 2007 -0500

    Updates.

commit b36f5682a4984414953cf456a189205ead5a446d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 19 18:17:33 2007 -0500

    Added EPWMD_FILE_MODIFIED. When the SAVE command tries to save to the
    filename with a mtime newer than the OPEN mtime.

commit dcca382fada8de4fa88e231ca1235c94173eebc9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 18 22:45:03 2007 -0500

    configure.ac cleanup.

commit a6faa6119e678952ded94b9db7a36b1c973ff219
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 18 22:44:46 2007 -0500

    Added uninstall-hook to remove libpwmd.pc.

commit 86166dcc478839dd65b0d5e8b7d9085395405d06
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 18 22:20:05 2007 -0500

    install-data-hook fix.

commit f84bdded14a41cff55e68023fdb38d418776ce3c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 18 21:49:17 2007 -0500

    Trim down the DTD for only required elements.

commit 6b0a1c773c3688521de937d48f90a8704f6555e1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 18 21:40:50 2007 -0500

    Don't require -a or -p with pwmc. The file may be cached on the
    server.

commit a138e9aaba904d7b8fc28839b709cc40e5acf641
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 18 19:01:29 2007 -0500

    Install a pkg-config meta file to $libdir/pkgconfig.

commit fe8ce3c87c31fbd7919fb84ae0ee0681f8d38ceb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 17 22:26:46 2007 -0500

    Update NEWS.

commit a289f1a672f54061e2988c24b651c1529176090c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 17 22:21:10 2007 -0500

    Updated NEWS.

commit 517435b1442a88394d602440e303cc1dad1cfc96
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 17 22:07:56 2007 -0500

    Added pwmc.1.

commit db5c899f4a4ea580942346e2308d4de2aad682c1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 17 21:56:27 2007 -0500

    Update command line usage.

commit 528dc66cea26160092bf1db499d64f210170a093
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 17 21:50:47 2007 -0500

    Write an pwmd_command() error to stderr.

commit 97082395ad3311b24113d411254ac17b54be4049
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 17 21:43:50 2007 -0500

    Added -E to exit after a command error.

commit 372f1f48ae9bbbfe63b8ace3dab6dcd4c3ca73d1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 17 21:39:29 2007 -0500

    Fixed setting result to an empty value (but not NULL);

commit 50b72a29b1cc3155fa3386c1a90252cfab44ca55
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 17 21:35:58 2007 -0500

    Clear the contents of the input buffer before free()ing.

commit ad5b286e06d248a4bd3ed0d32fadbb6ea060b682
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 17 21:29:17 2007 -0500

    Fix for protocol command lengths > 8196.

commit 01ab5b278a15341bf3304f10cb0721a84d5741c0
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 17 20:54:49 2007 -0500

    Fixed segfault with a NULL result from protocol parser.

commit 324bf575a057f47293a42d1e637ac5ae7648ce3c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 17 20:45:22 2007 -0500

    Fixed PWMD_SAVE with gpg-agent.

commit aa7c1f3b78e241df7a6633ae964327199f3217c8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 17 18:55:31 2007 -0500

    Removed most PWMD_* commands. The remaining ones are PWMD_SETOPT,
    PWMD_OPEN, PWMD_SAVE and the new PWMD_COMMAND to send a protocol
    command with arguments. It's alot simpler to use and doesn't require
    a library update if a new protocol command is added.

commit 49197f39fe724e5b742869901d594f2858605a1c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 16 22:45:20 2007 -0500

    Added a simpler client than example client. It's more of a utility. It
    reads stdin for protocol commands and prints the result (if any).
    Installs to PREFIX/bin.

commit 10ab90bfc7d288d546e4ad797f332a45d1d7eaa2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 16 22:24:58 2007 -0500

    Added PWMD_RAW to send a raw protocol command. The result will be of
    type char*.

commit a6057d0d79984acbc22af6aa7f80686e998bfef8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 16 21:38:50 2007 -0500

    Write a structure to the data file which specifies the iterations and
    IV. This lets you open a file that had a different iteration setting
    than the current setting. Breaks file compatibiliy with previous
    versions.

commit 52256e4ce07bda6aecfe96dcb506c8f9037bdad6
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 14 22:08:28 2007 -0500

    If PWMD_OPTION_USEAGENT is set when PWMD_SAVE is invoked, use the
    cached key if available.

commit a44c4b0a5de0a16dc549978e1748045e6ae67ae2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 14 21:24:39 2007 -0500

    Make sure the file cache is cleared on startup.
    
    If a file size is 0 then CACHE ISCACHED will return
    EPWMD_FILE_NOT_FOUND.

commit 9a67383ea9e45945528a227bd49a8dbaeac9e52c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 14 20:40:30 2007 -0500

    Make sure the file exists before looking in the file cache.

commit b0c0e9dc19df0519e0010f15843e5e1c6fbc1090
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 14 10:10:54 2007 -0500

    Version 0.4/1.0.1.

commit 7dfb077a32ecd7a07367880fb90e11855cb6c07e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 13 21:23:31 2007 -0500

    Lost EPWMD_ATTR_NOT_FOUND somehow. Re-added.

commit 75caed97f40d2475a0f2403b30bc48d656be7df2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 13 19:15:15 2007 -0500

    Fixed a double free().

commit 37a9b6f5ca0e6095c31ef83a3995acf3053eaac4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 13 18:54:38 2007 -0500

    Call va_end() after a command.

commit 6260cee91ba7a3c2ac20048c8fd8835fb88d379d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 13 18:14:27 2007 -0500

    Make sure error is the errno of the failed call in pwmd_connect().

commit 17d33be43b323c4370751cd5a9e73e7ddd7ba44b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 13 15:20:10 2007 -0500

    Updates.

commit c9ca71dabfc7f290261ccdfc90bfed749ed40043
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 13 14:35:59 2007 -0500

    memlist_remove() leak fix.

commit 4c44913486a5c9ee9fce9549891b4ae57863b075
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 13 13:58:25 2007 -0500

    Manual page update.

commit ac8c0460f8e301a98a0e852eeb306b3b0cadb91d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 13 13:51:00 2007 -0500

    Fixed a double free().

commit e8ebb647126dca7c71ebfd6d7dd8aef073f08456
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 13 13:39:59 2007 -0500

    Update NEWS.

commit 3844fbff7ef47b1943122bfc19c396b0cb64270a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 13 13:36:31 2007 -0500

    Call fsync() in log_write().

commit a302f9c54f28ec3618ce67557d5b64cb922cac85
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 13 13:32:41 2007 -0500

    The memory allocators have been redone to use a linked list like
    before but without the Glib dependency. This allows for Glib to use
    the new memory functions.
    
    Add xcalloc().

commit 30ec82afae700d4a4d7d3ac6d9eff2816109906a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 13 12:14:55 2007 -0500

    Added "iterations" configuration parameter which will encrypt the data
    N+1 times. The default is 0.

commit 23efe175c83b0ea1dac60ecf35ef71037e02a073
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 13 09:37:29 2007 -0500

    open_command() and save_command() cleanup.

commit 93da35e07910fb38f8c1ab40175bb57e0f01a3ba
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 12 21:45:15 2007 -0500

    Update cache_push to use SHA256.

commit 9b0baad3c83ac605912b033840c2b553c5749cb8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 12 20:42:40 2007 -0500

    Update NEWS.

commit 8baf2f67c6e52298693f4608993f26e87ffb8f2c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 12 20:39:55 2007 -0500

    Protocol parser fix for an "invalid write". Thanks Valgrind.
    
    Clear the server IO buffer before free()'ing.
    
    Fixed some memory leaks. Thanks Valgrind.

commit 67b69ace11a15b35ea24385ec31fb936ca2ca5b6
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 12 18:43:41 2007 -0500

    Renamed the xml* memory functions to x*.
    
    client->xml should use gcry_malloc() and gcry_free(). Fixes memory
    corruption.
    
    Added assersion to make sure the memory pointer is in the list even
    without debugging.

commit ebda53008c0c2bd6ac8d53bc395d41e35f30e914
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 11 22:14:14 2007 -0500

    NEWS updates.

commit 3c59d25e1c2b49256647d79e5804eead319bbcf7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 11 22:10:48 2007 -0500

    Added pwmd_list_free() to free a list result.

commit ce14385646a4ced86ff235859a91bf80a1b503c0
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 11 21:36:54 2007 -0500

    Rename get_elements() to find_elements().

commit a36631169510fdc334bb3d2923dc2a6cb6d7a1e9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 11 20:45:17 2007 -0500

    Update PWMD_LIST_ACCOUNT docs.

commit d533541ad6ef86d4ec5be8c0ecc67c455144e424
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 11 20:41:43 2007 -0500

    The LIST protocol command can now take an element path as an argument.

commit 510e045e95a070a9361db18523ba507800167b40
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 11 20:11:18 2007 -0500

    Fixed invalid free(). The memory was allocated with gcry_malloc().

commit a2af13ddd4944600a39519adf2e6b404f2dae476
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 10 22:33:40 2007 -0500

    Let gcrypt use the custom libXML memory allocators.
    
    Fixed another memory leak.
    
    On my machine I get a core dump do to an invalid free():
    *** glibc detected *** double free or corruption (!prev): 0x08059318 ***
    
    gdb backtrace shows this to be in list_command at pwmd.c:608.
    
    I did a 'dd if=/dev/mem of=/dev/null ibs=1' and I get a bad address
    error from 'dd'. I might have a bad SIMM. I'll see about it. I didn't
    find a problem in the code.

commit c0c872653431a6ae3c7958495d937f0fbb5d4b11
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 10 21:05:03 2007 -0500

    Added libXML memory handlers: xmlfree(), xmlmalloc(), xmlrealloc() and
    xmlstrdup(). xmlfree() and xmlrealloc() will clear the contents of
    memory before free()'ing.

commit 22bbdf29f51ca86d79b9778a05de07a30382395d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 10 19:19:55 2007 -0500

    Use AES256 for encrypting and SHA256 for the key hash. This breaks
    compatibility with data files.

commit b915489cdad54201297c566705af09d61fe78332
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Jan 10 18:33:46 2007 -0500

    Fix for compiling the library with g++.

commit d7794f773c7de3bc3067c9e25caf9c005eeac358
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 9 21:32:37 2007 -0500

    Fixed some memory leaks and free()'d some unused memory.

commit 208accb0f3ca5ab48f2bbee1c52860cde4ffb20e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 9 20:23:52 2007 -0500

    Fixed closing file descriptors. g_io_channel_shutdown() doesn't seem
    to be working so shutdown() and close() will do.

commit 5ac800320b1a4f08ea8d6128081cf76c1a41e97a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 9 19:01:46 2007 -0500

    Added PWMD_ATTR_GET.
    
    Brain hemmorage with pwmd_base64_decode() on the previous
    modification. Don't null terminate the g_base64_decode() value. Take
    another argument of *size.
    
    Some libpwmd.h doc fixes.

commit 9bf8a465551896880268bbcbc54b1c0e767a19ee
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jan 8 23:23:23 2007 -0500

    Linux 2.4+ supports mmap() with both the MAP_ANONYMOUS and MAP_SHARED
    flags. This won't create a file in /dev/shm. Might be implemented on
    other OS's too.

commit 78ef3ccd3ea5aa113d16230d4d5cfabdc1efe8d3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jan 8 21:21:42 2007 -0500

    Close the shm file descriptor after mmap()'ing.

commit 0cdb023dbb1e0cce985d105c49a345aa0c28d736
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jan 8 20:12:13 2007 -0500

    Format the output of the DUMP command.

commit f9cce056a9951e03f62f9115af1bf76e6f5caf56
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jan 8 20:06:45 2007 -0500

    Added ATTR GET to get an attribute value from an element path.

commit 6c5221593ecbcae79926055f67bb2e0384e7f98f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Jan 7 08:52:42 2007 -0500

    Version 0.3.

commit 8bb0fe8bec018aa89a14d21168e38f0b2764c7fb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 6 18:49:38 2007 -0500

    Manual page update.

commit 992f38a8375143a297fe0b55704850bb9ef943b8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 6 18:22:13 2007 -0500

    Updated NEWS.

commit ef2ada377b1d2b0ad0dadde51d14b9c41a0b6be2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 6 17:48:40 2007 -0500

    Added libpwmd/NEWS.
    
    Added a changelog Makefile target.

commit 7a9dd8b8f1296f93dad94a5530b04aa5461c15e8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 6 16:05:36 2007 -0500

    Make sure the wanted file is a regular file or link.
    
    Update protocol errors in libpwmd.

commit 992e8550c5dfbdc39bee56efabf71332974798a1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 6 15:31:34 2007 -0500

    Update PROTOCOL.
    
    Check for termios.h.

commit e0d8bf19a30a35ab9cf0ecc5eeb297e39964d334
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 6 15:24:07 2007 -0500

    Update for the OPEN and SAVE protocol commands. They won't be base 64
    decoded on the server.

commit a2feb4112afe9bbea678a15c7f79e4ced1a68cba
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 6 15:09:14 2007 -0500

    Dont created an rcfile if it doesn't exist. Let it be up to the user
    if the defaults aren't good enough.
    
    Clear the key after get_input().

commit 77ddcc8128741bdd54c40c96f9eebf868b1cc5f7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 6 14:55:53 2007 -0500

    The OPEN and SAVE commands, when provided with a key, will no longer
    base 64 encode them. The MD5 hash will be created from the rest of the
    protocol command argument.
    
    All command-line options have been moved to a configuration file
    stored in ~/.pwmdrc by default. Use -f to specify an alternate
    rcfile.
    
    Added a rcfile option 'cache_push' which takes a list of filenames
    separated by a comma, to add to the file cache upon startup. The
    password or key for each file will be read from stdin.
    
    Added example config file doc/pwmdrc.

commit c184a8dae4e128270aa5a8c5da21558f2a9c57dd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 6 10:42:53 2007 -0500

    Fix for opening an empty file.

commit 4ad64ec93118c181d8ba278b98b104af8334d2d7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 6 10:37:24 2007 -0500

    Fix possible memory leak.

commit 73cfd2fa7f14630e0e860339d096f5c91b3b28c7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 6 09:27:26 2007 -0500

    Fix for pwmd_base64_decode(). g_base64_decode() doesn't NULL terminate
    the return value.

commit f0437d75fa2c6d56a413538953c6b6e3be2283d2
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 6 09:17:20 2007 -0500

    Added a note in libpwmd.h about base 64 values and the STORE command.
    
    Update the example client to use base 64 encoded values.

commit 757b78d766ba2c9c4a142be45de9b0835c0d5a5c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 6 09:12:16 2007 -0500

    The STORE command wont base 64 encode the data. Leave that up to the
    client.

commit cb0f5bbd6ec2437609eb9b12cd77ab5fdf6670ad
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 6 08:07:00 2007 -0500

    send_to_daemon() cleanup.

commit 69b61c68da7fe5c6aebf75e982cd518d76aeae35
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 6 00:12:54 2007 -0500

    Satisfy autoscan.

commit f3651170b52233613b0593dbf8a4b5ab99030282
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Jan 6 00:08:45 2007 -0500

    Added 'version' Makefile target.

commit 0183ff3a232774a135b0b35786216929b0fcab1c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 5 23:07:45 2007 -0500

    Only show element values in the LIST command if DEBUG is defined.
    
    Fix for the OPEN command when specifying an invalid (base64) key.
    
    Don't show NULL content with the GET command.

commit 3a343300e8df8186960eb6cb5fcca7f0e2916d30
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 5 22:36:28 2007 -0500

    Manual page update.

commit e193d945e3db5c8ab4483178115e8890a32563d0
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 5 22:28:33 2007 -0500

    Versioning was wrong for libtool's -version-info flag. This should fix
    it.

commit 4de7d5fabe5a43b2037933c94c6999b746be96ff
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 5 22:07:38 2007 -0500

    Update copyright.

commit 42572c53ac31ffa6102d2ae4151dfe7b39af27a4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 5 21:53:52 2007 -0500

    Fixed freeing the xmlTextReaderPtr.

commit f474565aad48195be3f28c3453309b0aa289c13e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 5 21:37:59 2007 -0500

    Let ATTR LIST show the "name" attribute for all elements.

commit 7551f068d9789cdcc84a2c674eff946df1500c6f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 5 21:24:51 2007 -0500

    Fix the LIST command showing an error when TARGET doesn't exist.

commit b2d07535a4cc9481d9b0822a1773458324a1aa21
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Jan 5 21:17:14 2007 -0500

    Prevent showing any TEXT value for an element with a TARGET attribute
    when using the LIST command.

commit bb545c1da28d742ecc4d3ce8ff64a1e9394bba8f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 4 22:51:15 2007 -0500

    Updates for the new ATTR command.

commit 172ce6df124243d1e882bc41883534c557d6efd9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 4 22:51:01 2007 -0500

    Fix for the DELETE command checking the wrong return value from
    find_elements().

commit f76580a8d7b8219ae71e160516fbd479f78f59cc
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 4 21:31:24 2007 -0500

    Fix segfault when trying to free the input buffer when quitting.

commit 09b92056905093e9b57e4813e5fe5f030ebda303
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 4 21:29:17 2007 -0500

    DUMP - make sure there is a file open.

commit f7c800b1ebf376e8300c2230b2671ecce8e1a625
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 4 21:24:15 2007 -0500

    Fix for the LIST command going past the end of the specified account
    when a TARGET attribute exists in an element and the TARGET is after
    the specified account in the document.
    
    Fix for the LIST command and showing an ERR response when a TARGET
    doesn't exist. It'll just ignore the error.

commit e8d05b263ed736bd37065c367861516eb5cf6eec
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 4 21:05:02 2007 -0500

    Added the DUMP command which shows the in memory document.

commit e9d465dc00673029069fee10393e03ba024959a5
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Jan 4 20:48:06 2007 -0500

    Added the TARGET attribute (was going to be VALUE, but TARGET makes
    more sense). Read PROTOCOL for more information.

commit b9300ca4ebd9c9f5e178725a98bc4e7720bc0fb7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Jan 2 22:05:41 2007 -0500

    Renamed the SETATTR command to ATTR which adds three new subcommands
    SET, DELETE and LIST. Read PROTOCOL for more information. Note that
    the VALUE attribute isn't done yet.
    
    Added protocol error EPWMD_ATTR_NOT_FOUND.
    
    get_elements() (if successful) will position the xmlTextReader handle
    at the wanted element and not the element content node.
    
    client->outbuf is now a gchar **. Kinda like a queue but not really
    as all the data is sent in the same function. It just makes it easier
    for the BEGIN response code in some places.

commit 12518e3dd5ec3f9726446666bfec8a9e07321eb5
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jan 1 21:52:14 2007 -0500

    Better element name validation. Namespaces in element names are broken
    though.

commit b799934b2e3c5730447b1ee14b9cfadbb89e1788
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jan 1 21:41:14 2007 -0500

    Lots of code reorganization. Move all protocol commands to commands.c
    and pass each command a (struct client_s) and (char **) for the
    request.

commit 9b90c1b53596c5d40a6f273494776737d4669833
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Jan 1 08:23:13 2007 -0500

    Remove home directory lookups in the example client and pass NULL if
    no socket path was specified (-s).

commit bdcd3f6b036f9f47f892d3c600885cda4263dbc7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 31 09:27:44 2006 -0500

    Version 0.2.

commit f57cdd69f7f3a26e0c07607845ea987b1856e389
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 31 09:21:49 2006 -0500

    Added NEWS.

commit 8d3aa4da153256148ea93a9413843e9256b9539d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 31 08:04:18 2006 -0500

    Added doc/ and pwmd manual page.

commit 154a086580844cfb2d26b9af0f0984a443d48046
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 31 07:57:04 2006 -0500

    -l path fix.
    
    Added SIGHUP handler to reset the file cache.

commit 4ee9989cea266688507e2e296029125b831d8935
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 31 07:02:29 2006 -0500

    Update docs.

commit 932ece28b50d52d16b2fd6ba534a2da096da7d53
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 30 20:56:46 2006 -0500

    Update PWMD_OPEN.

commit f55b28ebd9df0c4f75fc1e562a1010733310ba7c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 30 20:53:56 2006 -0500

    Dont include assuan.h in libpwmd.h and change pwm->ctx to void *.

commit a0d8e717887a83dc1986738805dc24dae6920815
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 30 17:40:42 2006 -0500

    If pwmd_connect() is passed a NULL path to the socket, open the
    default of ~/.pwmd/socket.

commit ae4b055549356e3d6496fab36ac0ff13ffb7bc49
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 30 17:11:16 2006 -0500

    Put the protocol error codes in libpwmd.h (oops).

commit 9ff40ff694e86d6d9124cc3c94508d3e9b84c079
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 30 14:28:41 2006 -0500

    Satisfy autoscan.

commit 2b87f3ae9e97f3a2e222846b2e1db53c3ed2e3cd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 30 13:22:14 2006 -0500

    Have pwmd_command() return EPMD_KEY when there is no key found or the
    key is blank.
    
    Check the file cache when not using gpg-agent too.

commit d15a5fbfb21fa283c6daf022b6cab9064c42f546
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 30 13:01:56 2006 -0500

    Return EPWMD_ERROR when in unknown error occurs from pwmd_command().
    
    Return EPWMD_BADKEY when no password has been set and not using
    gpg-agent.

commit d555db61fb09d0c79bc50f67f4afc2394e7dc141
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 30 11:37:01 2006 -0500

    Added KnownBugs.

commit 4dbfc232e68e7e5887768c364a3880eace70ddb5
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 30 11:15:03 2006 -0500

    Check for assuan.h.
    
    Satisfy autoscan.
    
    Updates to docs.

commit 9f653a747bc302d17ae6e9086840c6fdbe30d5bb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 30 08:27:31 2006 -0500

    pwmd_command() will return PWMD_AGENT_ERROR and set error to -1 if
    gpg-agent fails for any reason.
    
    Fix segfault when GPG_AGENT_INFO isn't set.
    
    Return PWMD_PERROR and set error to EPWMD_BADKEY if there is an empty
    password from gpg-agent.

commit 9151cc42cc67fef8294018f63bcdadb80a06024d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 30 08:04:45 2006 -0500

    Add pwmd_error.[ch] to the repository.

commit 71123560c2d097dfabdfca4de69bded9df56f83b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 30 08:00:55 2006 -0500

    Fixed the file caching functions. They would read past the shm_data
    pointer. Thanks Valgrind.

commit ebb0fdd7d487a55808da9dfc1b596436a8a380a7
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Dec 29 19:36:17 2006 -0500

    Have pwmd_command() set error argument to the protocol error code when
    returning PWMD_PERROR. pwmd_strerror() can be used to get the protocol
    error string.
    
    More error checking.
    
    Updated exampleclient.c.
    
    Reset the password on gpg-agent as soon as possible and only use
    pwmd's cache. This removes PWMD_OPTION_CLEARPASSWORD.

commit b6377e7694905159593ebb3d841fa710c0aee7a6
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Dec 29 19:31:30 2006 -0500

    CACHE ISCACHED will check for actuall file existence and return
    EPWMD_FILE_NOT_FOUND if access(2) fails. If the file does exist, it is
    checked for in the cache as usual and EPWMD_CACHE_NOT_FOUND is
    returned if the file is not cached.

commit 5ff6c50486c36ade35952aefc2b78b9ba6f161db
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Dec 28 23:49:12 2006 -0500

    Removed some unused variables.
    
    Update client_help().

commit 5b8b19893b9b4dd75a4cad6eefe90270011e7260
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Dec 28 23:31:22 2006 -0500

    Fixed some commenting.
    
    Changed EPWMD_FILE_OPEN to EPWMD_NO_FILE.
    
    Decrement EPWMD_MAX.

commit 1c30a38f1b9529fe1e373f0cd4948cbe75e86bff
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Dec 28 22:51:57 2006 -0500

    Show how many slots are available in the log upon startup.

commit 5682ff28cd996c4a110a1432ce05b7afe1eefe4d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Dec 28 22:47:02 2006 -0500

    All server responses that are ERR append a three digit error code and
    description of the error.
    
    Fix for the DELETE command. The entire element tree would be deleted
    if a non-existant element was specified.
    
    Fix for the GET command and finding elements in other accounts with
    the same element name.

commit faee47265df2c72b51023c66411d9478974f382b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Dec 27 23:07:30 2006 -0500

    The name of the file to pass to shm_open() is pwmd.<uid>.
    
    Added O_EXCL to shm_open() flags.

commit c2383348b9796dcd201cbb65f08267a8e319971d
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Dec 27 22:48:30 2006 -0500

    Update docs.

commit 1411757afb264c644b6fdd7d86f291cd05484074
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Dec 27 22:36:07 2006 -0500

    Added libpwmd/TODO to the repository.

commit 7eaa57482dd7ad1118f7e1a7d4f36b05bb72e318
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Dec 27 22:30:48 2006 -0500

    Readd exampleclient.c to the repository.

commit d65f371c1a8797f5061bcd78d25b57dc69cffafb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Dec 27 22:25:34 2006 -0500

    Add libassuan stuff borrowed from GnuPG to the repository.

commit 127d05e67e67e02a881621d094b0eb819ff41df5
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Dec 27 22:18:20 2006 -0500

    Added the PWMD_CACHE command to the library.
    
    Updated exampleclient to use caching.
    
    Use libassuan.m4 to find libassuan.
    
    Added custom titles, prompts and descriptions to the pinentry program
    which can be set via PWMD_SETOPT.

commit e228f750359af383289c6c7afb658ab492693fd6
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Dec 27 20:58:39 2006 -0500

    Use glib data types where possible.
    
    Fix for MCL_FUTURE compile time error. Hrm.

commit 150843dbaef54ac7e7cadbcb69f4e3b2d4adf6e1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Dec 27 20:07:52 2006 -0500

    Fix for file caching. Each file is now a slot in the mlock()'ed memory
    region. There may be a hole in the region in the old method of
    "counting" files which would give false results.
    
    Removed unused/unnecessary code.

commit 74921a06d56027d91a5e1d077ae7ef73f838a126
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Wed Dec 27 00:15:08 2006 -0500

    Updates to PROTOCOL definition.

commit 6196f6ad0f94339df3572deac75c49b0978ebb67
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Dec 26 22:56:16 2006 -0500

    Added protocol command 'CACHE' with three subcommands:
    
        clearall - clears the entire cache
        clear    - the next argument is a filename
        iscached - tests if a file (the next argument) is cached

commit 651b9db18990b3f1887f822b63af7cf68fe92529
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Dec 26 21:40:20 2006 -0500

    Added command line option -l to specify a log file and enable logging.

commit 9c44b9d58999724d5af5226ff64f273194cf4eb4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Dec 26 20:34:56 2006 -0500

    mlockall() is enabled by default. Use -M to disable.
    
    Added command line option -C to specify the file and password cache
    size.

commit 1a701017e068606d867aadc210e5f0ee5de64eae
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Tue Dec 26 20:04:45 2006 -0500

    The file cache key and filename are stored as MD5 hashes.

commit d722ea2932a5a06babdd0f810cffc17d11d7c07a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Dec 25 18:08:46 2006 -0500

    Added support for caching passwords. If the OPEN command is used
    without the <key> argument then the cache is checked for a
    matching filename and that key is used. The SAVE is used the same way
    unless a filename is specified, then the password will be updated in
    the cache.
    
    There is a new command-line option -M to call mlockall(). This makes
    ALL future memory allocations for the daemon be in RAM rather than
    virtual memory. The cache itself is always mlock()'ed if mlock() is
    available.

commit eb4ccb909d517719ee361a7e5e37a9287f160d8a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Dec 25 00:49:33 2006 -0500

    Updates.

commit 6cf1d15a1e6c2db2148e8c90da0616c06bcfb287
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Dec 25 00:28:14 2006 -0500

    Changed command PWMD_SET to PWMD_SETATTR.
    
    Now links to libassuan and works with gpg-agent. Still somewhat
    useless as the password isn't cached between connections. This also
    adds a new command PWMD_SETOPT and changes the behavior of the
    PWMD_OPEN and PWMD_SAVE commands. Read libpwmd.h for details.

commit cf22f962c021f9cb1047821f6ba11f89510eff61
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Mon Dec 25 00:23:11 2006 -0500

    Changed command 'set' to 'setattr'.

commit 04b831ba0fd771845e26ed4b1abf674b8c51c141
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 24 09:49:44 2006 -0500

    Fix compiler warnings and use g_ascii_strcasecmp() for strings comparisons.

commit 30015e5312be8f06e0133452966a362a4ac4bb8f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 24 09:25:27 2006 -0500

    Make sure element names dont contain whitespace.
    
    PWMD_STORE wont overwrite an existing account.

commit f8d8e33b8a67ba12eca840050a9d70d315bee11a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 24 09:20:25 2006 -0500

    Show the result of PWMD_SET failure.

commit a707fdcba9d359841c1d2986ef4d68e2beb4058f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 24 07:49:56 2006 -0500

    Added INSTALL to the archive.

commit 7ed09602281dfedef20dddcf74f40ac4716b2fe6
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 24 07:45:34 2006 -0500

    Statically link sampleclient to libpwmd.

commit aa3b6a8717f657fa15294a73232121d3bc4223ad
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 24 07:35:44 2006 -0500

    Update docs.
    
    Add ChangeLog to the archive.
    
    Add -s to sampleclient to specify the socket path.
    
    Add PWMD_SAVE test to sample client and update PWMD_OPEN to use a
    password if the file exists.

commit cec8da9e33921d36b5ed4c040c19158b51824314
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 23 23:34:28 2006 -0500

    Fix killing off the daemon.

commit 8aad48633a73cd71faf9a55f61ea7e1399637fcd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 23 23:19:32 2006 -0500

    Fix the result when there's an error.
    
    Fix a couple memory leaks.
    
    Fix the socket path in pwmd_connect(). Now it's the real socket path
    and not a directory.
    
    Redo va_args in pwmd_command(). Misread the manpage.
    
    Fix the PWMD_OPEN command with a password.
    
    The PWMD_SAVE command takes NULL as the password to specify gpg-agent
    use. If non-NULL, the it's the password to use.
    
    Added sampleclient.c.

commit ed9772db91b47374fc477d7b5a615adc4e400471
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 23 21:18:32 2006 -0500

    Updates for the libgcrypt commit.

commit a780ba3b96486a8937143aa811190284d42d5e66
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 23 20:04:03 2006 -0500

    Show the bind() error when the socket exists.

commit f9ab1c6b391070e624f471a94ff36d4c64227ccf
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 23 19:59:09 2006 -0500

    Added command line option -s to specify the socket location.

commit 516af2113bf15d6623ebfa97d5ddcebc685e9efb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 23 18:39:24 2006 -0500

    DTD update. Changed host to hostname and added sslfingerprint.

commit c162cf7f46fedbe2be3ec78997202ed6be689965
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 23 18:32:16 2006 -0500

    Updates.

commit 5c06ae86ca976bb7870f1952e864391c222e9577
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 23 18:06:45 2006 -0500

    Removed GnuPG support. The XML file is encrypted via libgcrypt with an
    AES128-cbc key. This changes the open and save commands. The open
    command needs a filename and an optional base64 encoded key. New files
    wont need the key. The save command needs a base64 encoded key as an
    argument.
    
    Fixed some memory leaks and compilation warnings.
    
    If debugging is disabled set the coredump file size to 0 for better
    security.
    
    Code and doc cleanups.

commit 0bb079bf4db7024064622951aceab8c88547140b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 23 18:00:38 2006 -0500

    Small cleanup.

commit acbdbf75c8e2907f68fda66d8f30875ec6cc2b7e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Dec 22 19:06:41 2006 -0500

    Fix for the PWMD_SET command.

commit f38a9ef36fe03e5a5574a028842d132bf9e588b0
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Dec 22 18:56:38 2006 -0500

    The pwmd_command() now takes a variable number of arguments for a command.

commit 12c458d51cfa9c0feca256e7b1d06829ad174eb4
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Thu Dec 21 18:53:36 2006 -0500

    Updates.

commit c0bc75961f074cb19202dcb1274d092e9db9862e
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 17 15:26:09 2006 -0500

    Temporary fix for 100% CPU usage after the client connects. For some
    reason poll() from glib2 acts as though it's a non-blocking file
    descriptor or something and source_check() and source_prepare() get
    stuck in a loop until data is ready on the socket.

commit 7c8acaa8d26e5549f57879b6b8c3e06b9499263a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 17 15:12:40 2006 -0500

    Updates.

commit e7bf4248bac2ed6d4620f707b7844d6ceb7af980
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 17 15:02:42 2006 -0500

    Require glib2 for base64 decoding which adds pwmd_base64_decode().
    
    If there is no filename with the PWMD_OPEN command then use "default"
    as the filename.

commit c1211cb68b6ecedc9a3046718384c62fba945e1a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 16 14:14:21 2006 -0500

    Fix the GET command result.

commit 5e6c9e6773b2601a7735d9c2c97c481a0beba8fb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 16 14:02:29 2006 -0500

    Added libpwmd.

commit 8f989caa1e441ae65ff1cccd8da8cb182ba094a6
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 10 14:25:33 2006 -0500

    Updates.

commit 9e55c6a309ced715c92bda37fad8649f69fbb475
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 10 14:01:57 2006 -0500

    Check for GPG_AGENT_INFO in the env.
    
    Cleanups.

commit 66dcb38cebb6fe26a8851d619ae6b9968dc24004
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 10 13:39:18 2006 -0500

    Warn if gpg cannot be found in the PATH.

commit 46f793a8012b85a42c9b3efa6f43e35fa1bcbdcb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 10 13:17:33 2006 -0500

    Elements are separated by a <TAB> and not a "/". This allows for URL's
    as an element name.
    
    Added command "delete" to delete an element or account. The "store"
    command no longer does this.

commit f733f822dcba26c0fde1071907dd4d07514f7495
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 10 10:48:35 2006 -0500

    The list command supports showing elements of the account if an
    account name is specified. Values are also shown and are separated by
    a tab character.
    
    The response codes OK, ERR and BEGIN now have a single space appended
    to the code (\nOK \n"). This is to avoid protocol parser problems in
    the (future) library.

commit 8235f0d5cadaf8c73806a6d6ed9b64b2e6472bb8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 9 10:32:25 2006 -0500

    Satisfy autoscan.

commit e793066dc5221b89bf2f27d0171d8b2cd841c94c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 3 15:45:19 2006 -0500

    Base64 encode and decode element values.

commit 1cff9e5cb15986f2573437ecf724cd4965b56c54
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 3 15:37:57 2006 -0500

    Fix for the set command.

commit a5e94681f85955969350dfcf347488d7ddd44676
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 3 15:34:57 2006 -0500

    Fix help output.

commit a779b4be34f3aa354730c3828b44b9429dcf0f78
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 3 15:28:29 2006 -0500

    Added command line option -r to specify the root directory.

commit cacbfa0a2d6ab1a2d211808fd79542df95494407
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 3 13:07:53 2006 -0500

    Fix for the store command.
    
    Fix for creating elements in the document root.
    
    Tell if the store command failed.
    
    Must now explicitly 'save' after modifications.

commit 97af2fd70ed5dbba9147d3bbc4ad593224f9243f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 3 12:44:26 2006 -0500

    Fix for the list command.

commit f189e6a8f7734f3e2e1bfe3d544948d83727b1e1
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Dec 3 12:11:40 2006 -0500

    Port to Glib2. And introduce more bugs.

commit ef50fba8f04185190d91964e592cee7169f019bd
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 2 15:39:59 2006 -0500

    Added the 'set' command. Currenly only changes the name of the account.
    
    Added the 'save' command. This will commit all changes to an account
    and write to the opened file.

commit 7900da8228d7ff25e559deb9fde56416b1291f3f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 2 14:12:14 2006 -0500

    DTD fix for new files.
    
    Removed unused code.

commit 624ebecef582975b8df80d56b8e3a6505643cbff
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Dec 2 13:59:11 2006 -0500

    Dont show what element failed when an ERR occurs.
    
    Some redoing of the store command. Dont use the xmlwriter API anymore,
    work with the linked list from doc->children etc.
    
    Fix modifying existing nodes.
    
    DTD updates. The account name is an attribute of the 'account' node.

commit fdcc67ac9e40d5df72c70e8cfdf0a19ff24ad8c9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 26 13:09:05 2006 -0500

    Updates.

commit fabfcd2c8fe84499066688ebdde956e3bd99bd33
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 26 12:56:50 2006 -0500

    Change cl->req to a type of char.
    
    Some cleanups.

commit 1fd29d68b9f8a90d5b1da9168910146f406fa71b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 26 12:30:00 2006 -0500

    Added the "list" command which lists accounts from the opened file.
    
    Can delete elements from an account by trailing the element with a "/".

commit d2245d125d0cec22692d64c51036874e062771d9
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 25 14:27:35 2006 -0500

    Fix the 'store' command and gpg.

commit 2a4fe269d2d4e7aaaef47dcafc4b348d19610feb
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 25 13:31:51 2006 -0500

    Create a new file if the file doesn't exists.

commit baf0aaa42f06a151a1a051edadff8f0d7dfe7553
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 25 13:12:45 2006 -0500

    Some filename safety checks.

commit c41aa40ff174be97b8b1e8672af9640f39ebf3e3
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 25 12:57:12 2006 -0500

    Fix for the 'get' command: sub-elements in the current element and no
    element specified after the account.

commit 7f6cebdb5c3acdba8941533443e3cf2fe9db8eae
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 25 12:28:09 2006 -0500

    Changed the 'auth' command to 'open'.
    
    Updated the command help text.

commit bd7c5befc8c114a3c2d7c879f059a96ddd38eb98
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Fri Nov 24 19:27:22 2006 -0500

    Protocol is similar to that of gpg-agent.
    
    The daemon listens on a socket and opens a file via the 'auth' command which
    is stored in ~/.pwmd via gpg-agent and a pinentry proggy.
    
    Added the 'store' command which is buggy.

commit 3e9335bf502c67e32056124f512b60fad5c216bc
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 18 11:33:50 2006 -0500

    Keep the socket and data file in ~/.pwmd.

commit 5e9b71453c4a10e5adfc3c60215206898d98fccf
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 18 10:58:27 2006 -0500

    Remove the socket before exiting.

commit b88c3644761295870a991b34b4a5d3b205f45c90
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 18 10:55:29 2006 -0500

    Only use a socket to connect to for security reasons. I may add
    network support later after I figure out a way to associate files with
    usernames securely. A socket will be created as ~/.pwmd. Clients
    should connect to the socket.

commit 3adfdefedb9c93a1b5e0a8ab2d174cf63f520ffe
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 12 15:19:40 2006 -0500

    Look for the data file in ~/.pwm/data.xml.gpg. ~ is the home directory
    of the username of the auth command. If run as root, setuid() to user
    before reading the data file.

commit d7af5298a168f2e7b1a337b53afecdf8c41f6bab
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 12 14:16:45 2006 -0500

    Fix possible segfault and memory leak.

commit 3b997b3fae73ad60ee05d3aa11749b1ac1932705
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 12 14:06:33 2006 -0500

    Explain this thingy.

commit 9f31350eaa49dcbd21ea4e161243e12a667ca7b8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 12 13:56:46 2006 -0500

    The daemon code is no longer needed. We'll use only the server and
    gpg-agent to keep tabs on the password. This is also good because a
    pin-entry program may be used to obtain the password.
    
    ATM the data file should be encrypted as gpg is called via popen() to
    decrypted it.

commit 044dbba9871cbdce560e27c37438f2ca8273fe50
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 12 11:02:46 2006 -0500

    More consistant protocol output. Read PROTOCOL for more info.

commit b95a45d3878bad2d894cd4f808a60e116606b01b
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 12 10:29:59 2006 -0500

    Fix 'get' and authentication.

commit 61c0dd651493e60e94ec62b33174d66ebe037ee5
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 12 10:00:06 2006 -0500

    Move the XML stuff to xml.[ch].

commit af28510a496df40308cbbab471aeb8db00558a30
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 12 09:41:32 2006 -0500

    Fix zombie processes.
    
    select() when sending writing to a socket.

commit 7f5a43cf590bdb09bb8d25423a72122579aed270
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 11 13:23:08 2006 -0500

    Changed the default port to 1024.

commit 110028f35af54e9e33b339268da6731edae1fdb8
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 11 12:47:07 2006 -0500

    Create pwm*.h
    
    Insert GPL header.

commit 4e4f1a74a753371de1d9179241fadad15aa98612
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 11 12:39:13 2006 -0500

    Add write_dtd(). Unused ATM.

commit 60687c87a1e2718c8fd827b186704486fe17ab35
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 11 12:34:59 2006 -0500

    Just some notes on what needs to be done.

commit d3da6fee22ad1dc80930d66b8e556765d4de185a
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 11 12:11:45 2006 -0500

    Update command line usage and options.

commit a711fca0c33e068c9938dabd8c18120e6d562c8f
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 11 12:01:11 2006 -0500

    Renamed the ~/.acct socket to ~/.pwmd and chmod 0700 it.
    
    configure.ac fix.

commit 4d9c7e811388064dc60ed23a58831d6006fb424c
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sat Nov 11 11:54:41 2006 -0500

    autoconf'd.
    
    Server fixes.
    
    Started the daemon code which connects to a server. Test it by connecting to the daemon via the socat command.

commit 8cccfbb53c266f9138ab4f8ec1ea72d68df04721
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 5 15:42:15 2006 -0500

    Fix the "get" command.

commit 8cf3dbfce3fa7f9dae44f5528738739524c11297
Author: Ben Kibbey <bjk@luxsci.net>
Date:   Sun Nov 5 15:38:55 2006 -0500

    Initial commit.