The Assuan protocol is now used for socket communication. This
commit49eebdf7175f10b8a6b8d8daac551f870dac579e
authorBen Kibbey <bjk@luxsci.net>
Thu, 28 Jun 2007 01:05:43 +0000 (27 21:05 -0400)
committerBen Kibbey <bjk@luxsci.net>
Thu, 28 Jun 2007 01:05:43 +0000 (27 21:05 -0400)
treebc208730d7799438db71f22b9b67b9d92b976297
parent70754ff7c5f2363319d37b8ab9077bf315b1d61d
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.
27 files changed:
NEWS
PROTOCOL
README
TODO
configure.ac
debian/changelog [new file with mode: 0644]
debian/compat [new file with mode: 0644]
debian/control [new file with mode: 0644]
debian/copyright [new file with mode: 0644]
debian/docs [new file with mode: 0644]
debian/rules [new file with mode: 0755]
doc/pwmd.1
doc/pwmdrc
src/Makefile.am
src/cache.c [new file with mode: 0644]
src/cache.h [copied from src/pwmd.h with 53% similarity]
src/commands.c
src/commands.h [copied from src/pwmd.h with 64% similarity]
src/common.h
src/mem.c [new file with mode: 0644]
src/mem.h [copied from src/pwmd.h with 65% similarity]
src/pwmd.c
src/pwmd.h
src/pwmd_error.c
src/pwmd_error.h
src/xml.c
src/xml.h