1f0d21b1739ff8ac0886f60c229c23e0914c771a
[gpgme.git] / gpgme / ChangeLog
1 2001-11-15  Marcus Brinkmann  <marcus@g10code.de>
2
3         * decrypt.c (command_handler): Fix last change.
4
5 2001-11-15  Marcus Brinkmann  <marcus@g10code.de>
6
7         * verify.c (_gpgme_release_verify_result): Rename RES to RESULT.
8         Rename R2 to NEXT_RESULT.
9         (intersect_stati): Rename RES to RESULT.
10         (gpgme_get_sig_status): Likewise.  Do not check return_type, but
11         the member verify of result.
12         (gpgme_get_sig_key): Likewise.
13
14         * sign.c (_gpgme_release_sign_result): Rename RES to RESULT.  If
15         RESULT is zero, return.
16         (sign_status_handler, command_handler): Do not check return_type,
17         but the member sign of result.
18         (gpgme_op_sign): Likewise.  Drop assertion.
19
20         * encrypt.c (_gpgme_release_encrypt_result): Rename RES to RESULT.
21         If RESULT is zero, return.
22         (encrypt_status_handler): Do not check return_type, but the member
23         encrypt of result.
24         (gpgme_op_encrypt): Likewise.  Drop assertion.
25
26         * decrypt.c (_gpgme_release_decrypt_result): Rename RES to RESULT.
27         (create_result_struct): Do not set result_type.
28         (command_handler, decrypt_status_handler): Do not check
29         return_type, but the member decrypt of result.
30         (gpgme_op_decrypt): Likewise.  Drop assertion.
31
32         * context.h (enum ResultType): Removed.
33         (struct gpgme_context_s): Remove member result_type.
34         (struct result): Replaces union result.
35         * gpgme.c: Include string.h.
36         (_gpgme_release_result): Release all members of c->result, which
37         is now a struct.  Zero out all members of the struct afterwards.
38
39 2001-11-11  Marcus Brinkmann  <marcus@g10code.de>
40
41         * rungpg.c (_gpgme_gpg_release): Release GPG->cmd.cb_data.
42         Release all members of the list GPG->arglist.
43         Reported by Michael Schmidt <mschmidt@cs.uni-sb.de>.
44
45 2001-11-02  Marcus Brinkmann  <marcus@g10code.de>
46
47         * rungpg.c (pipemode_copy): Change type of NBYTES to size_t.
48
49         * key.c: Include string.h.
50         * data.c: Likewise.
51         * recipient.c: Likewise.
52
53 2001-10-29  Marcus Brinkmann  <marcus@g10code.de>
54
55         * context.h: New member signers_len.
56         * signers.c (gpgme_signers_clear): Require that signers are
57         non-NULL with assertion.  Use signers_len to determine how much
58         keys to release.  Add documentation.
59         (gpgme_signers_add): Use signers_len to determine if the buffer is
60         large enough.  Use xtryrealloc rather than xtrymalloc and copying.
61         Add documentation.
62         (gpgme_signers_enum): Use signers_len to determine if key is
63         available.  Add documentation.
64
65 2001-10-22  Marcus Brinkmann  <marcus@g10code.de>
66
67         * data.c (_gpgme_data_append): Check if LENGTH is smaller than
68         ALLOC_CHUNK, not DH->length.
69
70 2001-10-17  Marcus Brinkmann  <marcus@g10code.de>
71
72         * gpgme.c (gpgme_set_protocol): Fix last change.
73
74 2001-10-15  Werner Koch  <wk@gnupg.org>
75
76         * gpgme.h (GpgmeProtocol): New.
77         * gpgme.c (gpgme_set_protocol): New.
78
79 2001-09-26  Werner Koch  <wk@gnupg.org>
80
81         * gpgme.c (gpgme_set_passphrase_cb): Ignore a NULL context.
82         (gpgme_set_progress_cb): Ditto. Suggested by Mark Mutz.
83
84 2001-09-17  Werner Koch  <wk@gnupg.org>
85
86         * keylist.c (finish_key): Shortcut for no tmp_key.  Changed all
87         callers to use this function without a check for tmp_key.
88         
89         * keylist.c (gpgme_op_keylist_next): Reset the key_cond after
90         emptying the queue.  Bug reported by Stéphane Corthésy.
91
92 2001-09-12  Werner Koch  <wk@gnupg.org>
93
94         * data.c (gpgme_data_rewind): Allow rewind for callbacks.
95
96 2001-09-07  Werner Koch  <wk@gnupg.org>
97
98         * rungpg.h: Add NO_RECP.
99         * encrypt.c (encrypt_status_handler): Take on No_RECP.
100         (gpgme_op_encrypt): Better error return.
101
102         * verify.c (verify_status_handler): Take on NODATA.
103
104 2001-09-03  Werner Koch  <wk@gnupg.org>
105
106         * rungpg.h: Added STATUS_INV_RECP.
107         * gpgme.c (_gpgme_release_result): Add support for new
108         EncryptResult object.
109         * encrypt.c (append_xml_encinfo): New.
110         (encrypt_status_handler): Add some status parsing.
111         (_gpgme_release_encrypt_result): New.
112
113 2001-08-29  Werner Koch  <wk@gnupg.org>
114
115         * recipient.c (gpgme_recipients_release): Free the list.  By Timo.
116
117         * keylist.c (keylist_colon_handler): Do a finish key if we receive
118         an EOF here.  This is probably the reason for a lot of bugs
119         related to keylisting.  It is so obvious.  Kudos to Enno Cramer
120         for pointing that out. 
121
122 2001-08-28  Werner Koch  <wk@gnupg.org>
123
124         * gpgme.c, gpgme.h (gpgme_get_op_info): New.
125         (_gpgme_set_op_info): New. 
126         (_gpgme_release_result): Reset the op_info here.
127         * sign.c (append_xml_siginfo): New.
128         (sign_status_handler): Store the sig create information.
129
130 2001-07-31  Werner Koch  <wk@gnupg.org>
131
132         * encrypt.c (gpgme_op_encrypt): Hack to detect no valid recipients.
133
134 2001-07-30  Werner Koch  <wk@gnupg.org>
135
136         * gpgme.c (gpgme_get_armor,gpgme_get_textmode): New.
137
138         * rungpg.c (build_argv): Disable armor comments
139         * w32-io.c (build_commandline): Need to add quotes here
140
141 2001-07-24  Werner Koch  <wk@gnupg.org>
142
143         * data.c (gpgme_data_read): Add a a way to return the available bytes.
144
145 2001-07-23  Werner Koch  <wk@gnupg.org>
146
147         * util.c: Removed stpcpy() because we use the version from jnlib.
148
149 2001-07-19  Werner Koch  <wk@gnupg.org>
150
151         * mkstatus: Define the collating sequence for sort.
152
153 2001-06-26  Werner Koch  <wk@gnupg.org>
154
155         * rungpg.h: Add STATUS_UNEXPECTED as suggested by Timo.
156
157 2001-06-15  Werner Koch  <wk@gnupg.org>
158
159         * keylist.c (set_userid_flags): Fixed the assigned values. Kudos
160         to Timo for pointing this out.
161
162 2001-06-01  Werner Koch  <wk@gnupg.org>
163
164         * debug.c (_gpgme_debug_begin): Fixed a /tmp race.  Noted by
165         Johannes Poehlmann.
166
167 2001-05-28  Werner Koch  <wk@gnupg.org>
168
169         * version.c (gpgme_check_engine): Stop version number parsing at
170         the opening angle and not the closing one.  By Tommy Reynolds.
171
172 2001-05-01  José Carlos García Sogo <jose@jaimedelamo.eu.org>
173
174         * encrypt.c (gpgme_op_encrypt_start): Deleted the assert ( !c->gpg )
175         line, because it gave an error if another operation had been made 
176         before using the same context.
177         
178         * decrypt.c (gpgme_op_decrypt_start): The same as above. Also added 
179         one line to release the gpg object in the context (if any).
180         
181 2001-04-26  Werner Koch  <wk@gnupg.org>
182
183         * key.c, key.h (_gpgme_key_cache_init): New.
184         (_gpgme_key_cache_add): New.
185         (_gpgme_key_cache_get): New.
186         * version.c (do_subsystem_inits): Init the cache.
187         * keylist.c (finish_key): Put key into the cache
188         * verify.c (gpgme_get_sig_key): First look into the cache.
189
190 2001-04-19  Werner Koch  <wk@gnupg.org>
191
192         * keylist.c (parse_timestamp): Adjusted for the changed
193         --fixed-list-mode of gpg 1.0.4h.
194
195 2001-04-05  Werner Koch  <wk@gnupg.org>
196
197         * verify.c (gpgme_op_verify_start): Enabled pipemode for detached sigs.
198
199 2001-04-04  Werner Koch  <wk@gnupg.org>
200
201         * w32-io.c (_gpgme_io_select): Don't select on the writer if there
202         are still bytes pending.  Timo found this not easy to track down
203         race condition. 
204
205 2001-04-02  Werner Koch  <wk@gnupg.org>
206
207         * gpgme.h: Add GPGME_ATTR_KEY_{EXPIRED,DISABLED}.
208         * key.c (gpgme_key_get_ulong_attr): And return those attribs.
209
210         * verify.c (gpgme_get_sig_key): Set keyliosting mode depending on 
211         the mode set in the current context.  Suggested by Timo.
212
213         * key.c (gpgme_key_get_ulong_attr): Return can_certify and not
214         can_encrypt. By Timo.
215
216 2001-03-30  Werner Koch  <wk@gnupg.org>
217
218         * debug.c (debug_init): Allow to specify a debug file.
219         (_gpgme_debug_level): New.
220
221         * posix-io.c (_gpgme_io_read, _gpgme_io_write): Print output.
222         (_gpgme_io_select): Debug only with level > 2.
223
224 2001-03-15  Werner Koch  <wk@gnupg.org>
225
226         * rungpg.c: Included time.h.
227
228         * key.h: New keyflags for capabilities.
229         * keylist.c (set_mainkey_capability, set_subkey_capability): New.
230         (keylist_colon_handler): Parse them.
231         * gpgme.h: New attribute values for capabilties.
232         * key.c (gpgme_key_get_string_attr): Return them.
233         (capabilities_to_string): New.
234         (gpgme_key_get_ulong_attr): Return the global caps.
235
236 2001-03-14  Werner Koch  <wk@gnupg.org>
237
238         * w32-io.c (destroy_reader,destroy_writer): Fixed syntax error. 
239         Thanks to Jan Oliver Wagner.
240
241 2001-03-13  Werner Koch  <wk@gnupg.org>
242
243         * context.h: Add invalid and revoke flags to user_id structure.
244         * keylist.c (gpgme_op_keylist_start): Use --fixed-list-mode.
245         (keylist_colon_handler): Adjust for that.
246         (set_userid_flags): New. 
247         (set_mainkey_trust_info): Handle new key invalid flag
248         (set_subkey_trust_info): Ditto.
249         * gpgme.h: Add new attributes for key and user ID flags.
250         * key.c (_gpgme_key_append_name): Init these flags
251         (gpgme_key_get_as_xml): Print them.
252         (one_uid_as_xml): New helper for above.
253         (gpgme_key_get_string_attr, gpgme_key_get_ulong_attr):
254         Return the new attributes.  Enhanced, so that subkey information
255         can be returned now.
256
257 2001-02-28  Werner Koch  <wk@gnupg.org>
258
259         * w32-io.c (destroy_reader): Set stop_me flag.
260         (writer,create_writer,destroy_writer,find_writer,kill_writer): New.
261         (_gpgme_io_write): Use a writer thread to avaoid blocking.
262         (_gpgme_io_close): Cleanup a writer thread
263         (_gpgme_io_select): Repalce tthe faked wait on writing by a real
264         waiting which is now possible due to the use of a writer thread.
265
266 2001-02-20  Werner Koch  <wk@gnupg.org>
267
268         * w32-io.c (destroy_reader,kill_reader): New. 
269         (create_reader, reader): Add a new event to stop the thread.
270         (_gpgme_io_close): Kill the reader thread.
271
272         * posix-io.c (_gpgme_io_select): Handle frozen fds here. 
273         * 32-io.c (_gpgme_io_select): Ditto. Removed a bunch of unused code.
274
275         * wait.c: Reworked the whole thing.
276         * rungpg.c (_gpgme_gpg_new): Init pid to -1.
277         (_gpgme_gpg_release): Remove the process from the wait queue.
278
279 2001-02-19  Werner Koch  <wk@gnupg.org>
280
281         * w32-io.c (_gpgme_io_set_close_notify): New.
282         (_gpgme_io_close): Do the notification.
283
284         * posix-io.c (_gpgme_io_select): Use a 1 sec timeout and not 200
285         microseconds.
286
287         * wait.c (remove_process): Don't close the fd here.
288         (do_select): Set the fd to -1 and remove the is_closed flag everywhere.
289         (_gpgme_wait_on_condition): Remove the assert on the queue and
290         break out if we could not find the queue.  The whole thing should
291         be reworked.
292
293         * posix-io.c (_gpgme_io_set_close_notify): New.
294         (_gpgme_io_close): Do the notification.
295
296         * rungpg.c (close_notify_handler): New. 
297         (_gpgme_gpg_new): Register a callback for the fd.
298         (_gpgme_gpg_set_colon_line_handler): Ditto.
299         (build_argv): Ditto
300
301 2001-02-13  Werner Koch  <wk@gnupg.org>
302
303         * rungpg.c (struct reap_s): Replaced pid_t by int.
304
305         * types.h: Add ulong typedef.
306
307         * rungpg.c (do_reaping,_gpgme_gpg_housecleaning): New.
308         (_gpgme_gpg_release): Reap children.
309         * io.h, posix-io.c (_gpgme_io_kill): New.
310         * w32-io.c (_gpgme_io_kill): New (dummy).
311
312         * keylist.c (gpgme_op_keylist_start): Cancel a pending request.
313
314         * posix-io.c (_gpgme_io_read): Add some debug output. 
315         (_gpgme_io_write): Ditto.
316         (_gpgme_io_select): Increased the timeout.
317
318 2001-02-12  Werner Koch  <wk@gnupg.org>
319
320         Enhanced the signature verification, so that it can how handle
321         more than one signature and is able to return more information on 
322         the signatures.
323         * verify.c (gpgme_get_sig_key): New.
324         (gpgme_get_sig_status): New.
325
326         * gpgme.h: Add stdio.h. 
327         (GpgmeSigStat): New status DIFF.
328
329 2001-02-01  Werner Koch  <wk@gnupg.org>
330
331         * w32-io.c (set_synchronize): Add EVENT_MODIFY_STATE.  Add Debug
332         code to all Set/ResetEvent().
333
334         * rungpg.c (read_status): Check for end of stream only if we have
335         an r.  By Timo.
336
337 2001-01-31  Werner Koch  <wk@gnupg.org>
338
339         * wait.c (_gpgme_wait_on_condition): Removed all exit code processing.
340         (propagate_term_results,clear_active_fds): Removed.
341         (count_active_fds): Renamed to .. 
342         (count_active_and_thawed_fds): .. this and count only thawed fds. 
343
344         * rungpg.c (gpg_colon_line_handler): Return colon.eof and not
345         status.eof ;-)
346
347 2001-01-30  Werner Koch  <wk@gnupg.org>
348
349         * w32-io.c (_gpgme_io_spawn): Use the supplied path arg.
350
351         * version.c (get_engine_info): Return better error information.
352
353         * posix-util.c, w32-util.c: New.
354         (_gpgme_get_gpg_path): New, suggested by Jan-Oliver.
355         * rungpg.c (_gpgme_gpg_spawn): Use new function to get GPG's path.
356
357         * signers.c (gpgme_signers_add): Ooops, one should test code and
358         not just write it; the newarr was not assigned.  Thanks to José
359         for pointing this out.  Hmmm, still not tested, why shoudl a coder
360         test his fix :-)
361
362         * w32-io.c: Does now use reader threads, so that we can use
363         WaitForMultipleObjects. 
364         * sema.h, posix-sema.c, w32-sema.c: Support for Critcial sections.
365         Does currently only work for W32.
366
367         * debug.c, util.h : New. Changed all fprintfs to use this new
368         set of debugging functions.
369
370 2001-01-23  Werner Koch  <wk@gnupg.org>
371
372         * data.c (_gpgme_data_release_and_return_string): Fixed string
373         termination.
374
375 2001-01-22  Werner Koch  <wk@gnupg.org>
376
377         * delete.c: New.
378
379         * signers.c: New.
380         * key.c (gpgme_key_ref, gpgme_key_unref): New.
381         * sign.c (gpgme_op_sign_start): Allow the use of other keys.
382
383         * version.c (gpgme_get_engine_info,gpgme_check_engine): New.
384         * rungpg.c (_gpgme_gpg_set_simple_line_handler): New.
385
386 2001-01-05  Werner Koch  <wk@gnupg.org>
387
388         * data.c (gpgme_data_rewind): Allow to rewind data_type_none.
389
390
391  Copyright 2001 g10 Code GmbH
392
393  This file is free software; as a special exception the author gives
394  unlimited permission to copy and/or distribute it, with or without
395  modifications, as long as this notice is preserved.
396
397  This file is distributed in the hope that it will be useful, but
398  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
399  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
400