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