Check for memory allocation failure in COPY and MOVE.
[pwmd.git] / NEWS
blob5072ad93791e3e64859170935846e01e6fd6bf28
1 PWMD v2.12
2 ----------
3 This version changes how the elements are accessed and breaks data file
4 compatibility with previous versions. Conversion is done automatically unless
5 you have elements in your data file name "element" or attributes named "_name".
6 The reason for the change is that the XML parser doesn't like commonly used
7 characters in element names (for example, an email address or digit as the
8 first character). So the solution is to use an attribute to store the name of
9 the element and let the actual element be generic. All elements in your data
10 file will be renamed to "element" with an attribute "_name" being the original
11 element name. Be sure to make a backup copy of your data file. I hope you find
12 the change worth it.
14 Fixed creating element paths that had children of the same name as the parent.
16 Added the MOVE command. This will move an element path to another location in
17 the document. Faster than a COPY/DELETE.
19 Added client option RC_ON_LOCKED. If set, rather than sending a status message
20 when the file mutex is locked, an error code will be sent instead; stopping
21 the command.
24 PWMD v2.11
25 ----------
26 Another fix for the COPY command. This one fixes copy siblings of the source
27 element and also fixes references to a free'd pointer.
30 PWMD v2.10
31 ----------
32 Added command XPATHATTR. This will operate on attributes of the expression
33 nodeset.
35 XPATH now return GPG_ERR_ELEMENT_NOT_FOUND when the expression doens't match
36 any elements. It used to return GPG_ERR_NO_VALUE.
38 ATTR SET no longer requires a value.
40 GPG_ERR_NO_VALUE is returned from ATTR GET for attributes without a value.
43 PWMD v2.9
44 ----------
45 Don't require libassuan 2.0 anymore. Use the static library included in the
46 archive like was done before pwmd 2.2. This is needed for use with libpwmd
47 and fixes a bug with libgpg-error return codes.
49 Fixed another stupid bug with the RENAME command.
51 Added SET option LOCK_ON_OPEN to lock the file mutex after a successful OPEN
52 as if the LOCK command had been sent.
54 Added the LS protocol command to list files in data_directory.
57 PWMD v2.8
58 ----------
59 Fixed the RENAME command to handle target attributes and ambiguities.
61 Unicode fixes.
63 Fixed validating element names.
66 PWMD v2.7
67 ----------
68 Fixed the COPY command to handle root elements and to copy attributes too.
70 Fixed the RENAME command to overwrite an existing element tree of the same
71 value.
73 Since Valgrind and dmalloc don't like PTH threads --enable-debug now prints
74 out a backtrace of each allocation so finding memory leaks is easier/possible.
75 The output of xdump() shows non-freed pointers which can be found in the
76 backtrace output then processed through addr2line to find where it occured.
78 Fixed a few memory leaks.
80 Fixed handling of SIGABRT.
83 PWMD v2.6
84 ----------
85 Fixed a nasty bug that may have existed in all previous versions that would
86 cause a segfault do to an invalid return value from pth_exit().
88 The default keepalive is now 0 or disabled. It was added during testing of
89 remote connections over TLS and kept for use with libpwmd and SSH connections.
90 The development version of libssh2 has connection timeout support so there
91 really isn't any reason for doing keepalives in pwmd. This also fixes longer
92 running processes linked with libpwmd that keep a connection open but do not
93 parse status messages. pwmd would therefore kill the connection.
96 PWMD v2.5
97 ----------
98 New configuration parameter "allowed" to specify which users are allowed to
99 connect to the unix domain socket. The default is the invoking user only.
101 Fixed the IMPORT command to let it handle "target" attributes properly.
103 Let "disable_list_and_dump" be resetable during SIGHUP but only if not
104 permissive (TRUE).
107 PWMD v2.4
108 ----------
109 Reworked the IMPORT command to let it create root elements. The syntax has
110 changed to have the content as the first argument and the element path, if
111 any, as the remaining arguments after the content which is now TAB, rather
112 than space, separated.
114 Changed how the "target" attribute value is stored in the document.  Rather
115 than storing the resolved destination argument, first check to see if the
116 element path (which may contain other target attributes) is valid then store
117 the specified path as the "target" attribute value.
119 A few bugfixes. See ChangeLog for details.
122 PWMD v2.3
123 ----------
124 The DISPLAY and TERM environment variables are unset just before entering the
125 server loop. Clients wanting to use pinentry must set these options manually
126 or configure ~/.pwmd/pinentry.conf. This fixes pwmd using these variables
127 which may no longer be valid.
129 Ported to libassuan 2.0. There is no longer a static libassuan included in the
130 archive since this version supports building a DSO.
132 Fixed the COPY command copying only the the first element of the tree. How'd
133 that happen?
136 PWMD v2.2
137 ----------
138 Bugfix for pushing non-encrypted files into the cache.
141 PWMD v2.1
142 ----------
143 A new GnuPG key is being used to sign releases and git tags. The new key-id is
144 0xB140DCE2. The old key-id 0xF2B33BEF should be considered revoked do to a
145 data loss (not pwmd's fault, though).
147 Added an "age" attribute to the document element. This attribute is updated to
148 the time of the last SAVE.
150 Added support for using different ciphers when saving a data file. This adds a
151 new configuration parameter "cipher" and also adds a new option "SET CIPHER".
152 See the manual page for supported ciphers.
154 Added a new configuration parameter "log_level".
156 Added the RENAME command to rename an element.
158 Added the COPY command to copy an element tree to an element path.
160 Always use the passphrase specified with the OPEN command, if any, even when
161 the (encrypted) file has been cached.
163 Fixed converting an unencrypted data file.
165 A few portability fixes for 64-bit machines.
167 Added configuration parameter "debug_file" to log all protocol IO to the
168 specified file.
171 PWMD v2.0
172 ----------
173 This version breaks data file compatibility with previous versions but has an
174 option to convert your existing data file to the new format. See the manual
175 page about the --convert command line switch. Future versions that have data
176 file changes shouldn't have this problem.
178 Requires a C99 compiler.
180 libassuan is included statically. There is no longer an external dependency.
182 Better handling of unexpected client disconnects and status messages.
184 Added new protocol command VERSION.
186 Added new protocol commands SET and UNSET. SET replaces the old OPTION
187 command. UNSET resets an option to its default value.
189 Pinentry is used when importing, converting and pushing files from the command
190 line. It can also be disabled to use regular terminal input.
192 The file cache is a GSList rather than a mmap()'ed page of memory. This allows
193 for an unlimited number of data files but changes the CACHE status message to
194 only show the number of cached files and not any total.
196 Removed EPWMD_MAX_SLOTS, EPWMD_ERROR and EPWMD_ELOOP.
198 Added new XFER status message. This is sent after every ASSUAN_LINELENGTH
199 bytes when tranferring data lines. This adds a new configurations parameter
200 "xfer_progress".
202 Option ACL (Access Control List) support. When --enable-acl is passed to
203 configure, data files with an ACL will be retained after a SAVE or inherited
204 from the data_directory if new.
206 The ISCACHED command now checks for file existance. Returns GPG_ERR_NOT_FOUND
207 if it exists but not found in the file cache or an errno from access(2).
209 Renamed a few SET (old OPTION command) parameters to match the rcfile
210 parameter names so GETCONFIG will work better:
211         PINENTRY -> ENABLE_PINENTRY
212         TIMEOUT  -> PINENTRY_TIMEOUT
213         PATH     -> PINENTRY_PATH
215 Removed the old CLIENT option. The old NAME sub-option can be set with SET
216 NAME=VALUE.
218 Changed how GETCONFIG handles per-session option changes for some options. If
219 no file is specified and the specified option was previouly SET, then the SET
220 value is returned. Else the option for the specified file is read from the
221 configuration file.
223 GETCONFIG <filename> ITERATIONS will read the file header of the specified
224 file. Useful if using a local pinentry and you need to determine if a filename
225 is encrypted or not.
227 SET ITERATIONS requires an open file.
229 The configuration parameters "pinentry_timeout" and "enable_pinentry" can now
230 be set per-file in the configuration file.
232 Can now use both short and long command line options.
234 The CACHETIMEOUT command has had its arguments flipped to keep consistancy
235 with other commands: CACHETIMEOUT <filename> <seconds>