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: