Fix setting of default homedir for Wince
[gnupg.git] / dirmngr / ChangeLog
1 2011-01-25  Werner Koch  <wk@g10code.com>
2
3         * dirmngr.c (handle_connections): Rewrite loop to use pth-select
4         so to sync timeouts to the full second.
5         (pth_thread_id): New.
6         (main) [W32CE]: Fix setting of default homedir.
7
8         * ldap-wrapper.c (ldap_wrapper_thread): Sync to the full second.
9         Increate pth_wait timeout from 1 to 2 seconds.
10
11 2011-01-20  Werner Koch  <wk@g10code.com>
12
13         * server.c (release_ctrl_keyservers): New.
14         (cmd_keyserver, cmd_ks_seach, cmd_ks_get, cmd_ks_put): New.
15         * dirmngr.h (uri_item_t): New.
16         (struct server_control_s): Add field KEYSERVERS.
17         * ks-engine-hkp.c: New.
18         * ks-engine.h: New.
19         * ks-action.c, ks-action.h: New.
20         * server.c: Include ks-action.h.
21         (cmd_ks_search): New.
22         * Makefile.am (dirmngr_SOURCES): Add new files.
23
24 2011-01-19  Werner Koch  <wk@g10code.com>
25
26         * dirmngr.c (main): Use es_printf for --gpgconf-list.
27
28 2010-12-14  Werner Koch  <wk@g10code.com>
29
30         * cdb.h (struct cdb) [W32]: Add field CDB_MAPPING.
31         * cdblib.c (cdb_init) [W32]: Save mapping handle.
32         (cdb_free) [W32]: Don't leak the mapping handle from cdb_init by
33         using the saved one.
34
35         * crlcache.c (crl_cache_insert): Close unused matching files.
36
37         * dirmngr.c (main) [W32CE]: Change homedir in daemon mode to /gnupg.
38
39 2010-12-07  Werner Koch  <wk@g10code.com>
40
41         * dirmngr.c (TIMERTICK_INTERVAL) [W32CE]: Change to 60s.
42
43 2010-11-23  Werner Koch  <wk@g10code.com>
44
45         * Makefile.am (dirmngr_LDFLAGS): Add extra_bin_ldflags.
46         (dirmngr_client_LDFLAGS): Ditto.
47
48 2010-10-21  Werner Koch  <wk@g10code.com>
49
50         * dirmngr.c (main): Changed faked system time warning
51
52 2010-10-15  Werner Koch  <wk@g10code.com>
53
54         * Makefile.am (CLEANFILES): Add no-libgcrypt.c.
55
56 2010-09-16  Werner Koch  <wk@g10code.com>
57
58         * validate.c (validate_cert_chain): Use GPG_ERR_MISSING_ISSUER_CERT.
59
60 2010-08-13  Werner Koch  <wk@g10code.com>
61
62         * Makefile.am (dirmngr_SOURCES): Add w32-ldap-help.h.
63
64         * dirmngr_ldap.c (fetch_ldap): Call ldap_unbind.
65
66         * w32-ldap-help.h: New.
67         * dirmngr_ldap.c [W32CE]: Include w32-ldap-help.h and use the
68         mapped ldap functions.
69
70 2010-08-12  Werner Koch  <wk@g10code.com>
71
72         * crlcache.c (update_dir, crl_cache_insert): s/unlink/gnupg_remove/.
73
74         * dirmngr.c (dirmngr_sighup_action): New.
75
76         * server.c (cmd_killdirmngr, cmd_reloaddirmngr): New.
77         (struct server_local_s): Add field STOPME.
78         (start_command_handler): Act on STOPME.
79
80 2010-08-06  Werner Koch  <wk@g10code.com>
81
82         * dirmngr.c (JNLIB_NEED_AFLOCAL): Define macro.
83         (main): Use SUN_LEN macro.
84         (main) [W32]: Allow EEXIST in addition to EADDRINUSE.
85
86 2010-08-05  Werner Koch  <wk@g10code.com>
87
88         * server.c (set_error, leave_cmd): New.
89         (cmd_validate, cmd_ldapserver, cmd_isvalid, cmd_checkcrl)
90         (cmd_checkocsp, cmd_lookup, cmd_listcrls, cmd_cachecert): Use
91         leave_cmd.
92         (cmd_getinfo): New.
93         (data_line_cookie_write, data_line_cookie_close): New.
94         (cmd_listcrls): Replace assuan_get_data_fp by es_fopencookie.
95
96         * misc.c (create_estream_ksba_reader, my_estream_ksba_reader_cb): New.
97         * certcache.c (load_certs_from_dir): Use create_estream_ksba_reader.
98         * crlcache.c (crl_cache_load): Ditto.
99
100 2010-08-03  Werner Koch  <wk@g10code.com>
101
102         * dirmngr_ldap.c (pth_enter, pth_leave) [USE_LDAPWRAPPER]: Turn
103         into functions for use in a 'for' control stmt.
104
105 2010-07-26  Werner Koch  <wk@g10code.com>
106
107         * dirmngr_ldap.c (print_ldap_entries): Remove special fwrite case
108         for W32 because that is now handles by estream.
109
110 2010-07-25  Werner Koch  <wk@g10code.com>
111
112         * Makefile.am (dirmngr_SOURCES) [!USE_LDAPWRAPPER]: Build
113         ldap-wrapper-ce.
114         * ldap-wrapper-ce.c: New.
115
116         * dirmngr_ldap.c (opt): Remove global variable ...
117         (my_opt_t): ... and declare a type instead.
118         (main): Define a MY_OPT variable and change all references to OPT
119         to this.
120         (set_timeout, print_ldap_entries, fetch_ldap, process_url): Pass
121         MYOPT arg.
122
123 2010-07-24  Werner Koch  <wk@g10code.com>
124
125         * dirmngr_ldap.c (main): Init common subsystems.  Call
126         es_set_binary.
127
128 2010-07-19  Werner Koch  <wk@g10code.com>
129
130         * dirmngr.c: Include ldap-wrapper.h.
131         (launch_reaper_thread): Move code to ...
132         * ldap-wrapper.c (ldap_wrapper_launch_thread): .. here.  Change
133         callers.
134         (ldap_wrapper_thread): Rename to ...
135         (wrapper_thread): this and make local.
136
137         * ldap.c (destroy_wrapper, print_log_line)
138         (read_log_data, ldap_wrapper_thread)
139         (ldap_wrapper_wait_connections, ldap_wrapper_release_context)
140         (ldap_wrapper_connection_cleanup, reader_callback, ldap_wrapper):
141         Factor code out to ...
142         * ldap-wrapper.c: new.
143         (ldap_wrapper): Make public.
144         (read_buffer): Copy from ldap.c.
145         * ldap-wrapper.h: New.
146         * Makefile.am (dirmngr_SOURCES): Add new files.
147
148 2010-07-16  Werner Koch  <wk@g10code.com>
149
150         * http.c, http.h: Remove.
151
152         * dirmngr-err.h: New.
153         * dirmngr.h: Include dirmngr-err.h instead of gpg-error.h
154
155         * cdblib.c: Replace assignments to ERRNO by a call to
156         gpg_err_set_errno.  Include dirmngr-err.h.
157         (cdb_free) [__MINGW32CE__]: Do not use get_osfhandle.
158
159         * dirmngr.c [!HAVE_SIGNAL_H]: Don't include signal.h.
160         (USE_W32_SERVICE): New.  Use this to control the use of the W32
161         service system.
162
163 2010-07-06  Werner Koch  <wk@g10code.com>
164
165         * dirmngr.c (main): Print note on directory name changes.
166
167         Replace almost all uses of stdio by estream.
168
169         * b64dec.c, b64enc.c: Remove.  They are duplicated in ../common/.
170
171 2010-06-28  Werner Koch  <wk@g10code.com>
172
173         * dirmngr_ldap.c (my_i18n_init): Remove.
174         (main): Call i18n_init instead of above function.
175
176         * dirmngr-client.c (my_i18n_init): Remove.
177         (main): Call i18n_init instead of above function.
178
179         * Makefile.am (dirmngr_LDADD): Add ../gl/libgnu.
180         (dirmngr_ldap_LDADD, dirmngr_client_LDADD): Ditto.
181
182 2010-06-09  Werner Koch  <wk@g10code.com>
183
184         * i18n.h: Remove.
185
186         * Makefile.am (no-libgcrypt.c): New rule.
187
188         * exechelp.h: Remove.
189         * exechelp.c: Remove.
190         (dirmngr_release_process): Change callers to use the gnupg func.
191         (dirmngr_wait_process): Likewise.
192         (dirmngr_kill_process): Likewise.  This actually implements it for
193         W32.
194         * ldap.c (ldap_wrapper): s/get_dirmngr_ldap_path/gnupg_module_name/.
195         (ldap_wrapper_thread): Use gnupg_wait_process and adjust for
196         changed semantics.
197         (ldap_wrapper): Replace xcalloc by xtrycalloc.  Replace spawn
198         mechanism.
199
200         * server.c (start_command_handler): Remove assuan_set_log_stream.
201
202         * validate.c: Remove gcrypt.h and ksba.h.
203
204         * ldapserver.c: s/util.h/dirmngr.h/.
205
206         * dirmngr.c (sleep) [W32]: Remove macro.
207         (main): s/sleep/gnupg_sleep/.
208         (pid_suffix_callback): Change arg type.
209         (my_gcry_logger): Remove.
210         (fixed_gcry_pth_init): New.
211         (main): Use it.
212         (FD2INT): Remove.
213
214 2010-06-08  Werner Koch  <wk@g10code.com>
215
216         * misc.h (copy_time): Remove and replace by gnupg_copy_time which
217         allows to set a null date.
218         * misc.c (dump_isotime, get_time, get_isotime, set_time)
219         (check_isotime, add_isotime): Remove and replace all calls by the
220         versions from common/gettime.c.
221
222         * crlcache.c, misc.c, misc.h: s/dirmngr_isotime_t/gnupg_isotime_t/.
223         * server.c, ldap.c: Reorder include directives.
224         * crlcache.h, misc.h: Remove all include directives.
225
226         * certcache.c (cmp_simple_canon_sexp): Remove.
227         (compare_serialno): Rewrite using cmp_simple_canon_sexp from
228         common/sexputil.c
229
230         * error.h: Remove.
231
232         * dirmngr.c: Remove transitional option "--ignore-ocsp-servic-url".
233         (opts): Use ARGPARSE macros.
234         (i18n_init): Remove.
235         (main): Use GnuPG init functions.
236
237         * dirmngr.h: Remove duplicated stuff now taken from ../common.
238
239         * get-path.c, util.h: Remove.
240
241         * Makefile.am: Adjust to GnuPG system.
242         * estream.c, estream.h, estream-printf.c, estream-printf.h: Remove.
243
244 2010-06-07  Werner Koch  <wk@g10code.com>
245
246         * OAUTHORS, ONEWS, ChangeLog.1: New.
247
248         * ChangeLog, Makefile.am, b64dec.c, b64enc.c, cdb.h, cdblib.c
249         * certcache.c, certcache.h, crlcache.c, crlcache.h, crlfetch.c
250         * crlfetch.h, dirmngr-client.c, dirmngr.c, dirmngr.h
251         * dirmngr_ldap.c, error.h, estream-printf.c, estream-printf.h
252         * estream.c, estream.h, exechelp.c, exechelp.h, get-path.c, http.c
253         * http.h, i18n.h, ldap-url.c, ldap-url.h, ldap.c, ldapserver.c
254         * ldapserver.h, misc.c, misc.h, ocsp.c, ocsp.h, server.c, util.h
255         * validate.c, validate.h: Imported from the current SVN of the
256         dirmngr package (only src/).
257
258 2010-03-13  Werner Koch  <wk@g10code.com>
259
260         * dirmngr.c (int_and_ptr_u): New.
261         (pid_suffix_callback): Trick out compiler.
262         (start_connection_thread): Ditto.
263         (handle_connections): Ditto.
264
265 2010-03-09  Werner Koch  <wk@g10code.com>
266
267         * dirmngr.c (set_debug): Allow numerical values.
268
269 2009-12-15  Werner Koch  <wk@g10code.com>
270
271         * dirmngr.c: Add option --ignore-cert-extension.
272         (parse_rereadable_options): Implement.
273         * dirmngr.h (opt): Add IGNORED_CERT_EXTENSIONS.
274         * validate.c (unknown_criticals): Handle ignored extensions.
275
276 2009-12-08  Marcus Brinkmann  <marcus@g10code.de>
277
278         * dirmngr-client.c (start_dirmngr): Convert posix FDs to assuan fds.
279
280 2009-11-25  Marcus Brinkmann  <marcus@g10code.de>
281
282         * server.c (start_command_handler): Use assuan_fd_t and
283         assuan_fdopen on fds.
284
285 2009-11-05  Marcus Brinkmann  <marcus@g10code.de>
286
287         * server.c (start_command_handler): Update use of
288         assuan_init_socket_server.
289         * dirmngr-client.c (start_dirmngr): Update use of
290         assuan_pipe_connect and assuan_socket_connect.
291
292 2009-11-04  Werner Koch  <wk@g10code.com>
293
294         * server.c (register_commands): Add help arg to
295         assuan_register_command.  Change all command comments to strings.
296
297 2009-11-02  Marcus Brinkmann  <marcus@g10code.de>
298
299         * server.c (reset_notify): Take LINE argument, return gpg_error_t.
300
301 2009-10-16  Marcus Brinkmann  <marcus@g10code.com>
302
303         * Makefile.am: (dirmngr_LDADD): Link to $(LIBASSUAN_LIBS) instead
304         of $(LIBASSUAN_PTH_LIBS).
305         * dirmngr.c: Invoke ASSUAN_SYSTEM_PTH_IMPL.
306         (main): Call assuan_set_system_hooks and assuan_sock_init.
307
308 2009-09-22  Marcus Brinkmann  <marcus@g10code.de>
309
310         * dirmngr.c (main): Update to new Assuan interface.
311         * server.c (option_handler, cmd_ldapserver, cmd_isvalid)
312         (cmd_checkcrl, cmd_checkocsp, cmd_lookup, cmd_loadcrl)
313         (cmd_listcrls, cmd_cachecert, cmd_validate): Return gpg_error_t
314         instead int.
315         (register_commands): Likewise for member HANDLER.
316         (start_command_handler): Allocate context with assuan_new before
317         starting server.  Release on error.
318         * dirmngr-client.c (main): Update to new Assuan interface.
319         (start_dirmngr): Allocate context with assuan_new before
320         connecting to server.  Release on error.
321
322 2009-08-12  Werner Koch  <wk@g10code.com>
323
324         * dirmngr-client.c (squid_loop_body): Flush stdout.  Suggested by
325         Philip Shin.
326
327 2009-08-07  Werner Koch  <wk@g10code.com>
328
329         * crlfetch.c (my_es_read): Add explicit check for EOF.
330
331         * http.c (struct http_context_s): Turn IN_DATA and IS_HTTP_0_9 to
332         bit fields.
333         (struct cookie_s): Add CONTENT_LENGTH_VALID and CONTENT_LENGTH.
334         (parse_response): Parse the Content-Length header.
335         (cookie_read): Handle content length.
336         (http_open): Make NEED_HEADER the semi-default.
337
338         * http.h (HTTP_FLAG_IGNORE_CL): New.
339
340 2009-08-04  Werner Koch  <wk@g10code.com>
341
342         * ldap.c (ldap_wrapper_thread): Factor some code out to ...
343         (read_log_data): ... new.  Close the log fd on error.
344         (ldap_wrapper_thread): Delay cleanup until the log fd is closed.
345         (SAFE_PTH_CLOSE): New.  Use it instead of pth_close.
346
347 2009-07-31  Werner Koch  <wk@g10code.com>
348
349         * server.c (cmd_loadcrl): Add option --url.
350         * dirmngr-client.c (do_loadcrl): Make use of --url.
351
352         * crlfetch.c (crl_fetch): Remove HTTP_FLAG_NO_SHUTDOWN.  Add
353         flag HTTP_FLAG_LOG_RESP with active DBG_LOOKUP.
354
355         * http.c: Require estream.  Remove P_ES macro.
356         (write_server): Remove.
357         (my_read_line): Remove.  Replace all callers by es_read_line.
358         (send_request): Use es_asprintf.  Always store the cookie.
359         (http_wait_response): Remove the need to dup the socket.  USe new
360         shutdown flag.
361         * http.h (HTTP_FLAG_NO_SHUTDOWN): Rename to HTTP_FLAG_SHUTDOWN.
362
363         * estream.c, estream.h, estream-printf.c, estream-printf.h: Update
364         from current libestream.  This is provide es_asprintf.
365
366 2009-07-20  Werner Koch  <wk@g10code.com>
367
368         * dirmngr.c (pid_suffix_callback): New.
369         (main): Use log_set_pid_suffix_cb.
370         (start_connection_thread): Put the fd into the tls.
371
372         * ldap.c (ldap_wrapper_thread): Print ldap worker stati.
373         (ldap_wrapper_release_context): Print a debug info.
374         (end_cert_fetch_ldap): Release the reader.  Might fix bug#999.
375
376 2009-06-17  Werner Koch  <wk@g10code.com>
377
378         * util.h: Remove unused dotlock.h.
379
380 2009-05-26  Werner Koch  <wk@g10code.com>
381
382         * ldap.c (ldap_wrapper): Show reader object in diagnostics.
383         * crlcache.c (crl_cache_reload_crl): Ditto.  Change debug messages
384         to regular diagnostics.
385         * dirmngr_ldap.c (print_ldap_entries): Add extra diagnostics.
386
387 2009-04-03  Werner Koch  <wk@g10code.com>
388
389         * dirmngr.h (struct server_local_s): Move back to ...
390         * server.c (struct server_local_s): ... here.
391         (get_ldapservers_from_ctrl): New.
392         * ldapserver.h (ldapserver_iter_begin): Use it.
393
394 2008-10-29  Marcus Brinkmann  <marcus@g10code.de>
395
396         * estream.c (es_getline): Add explicit cast to silence gcc -W
397         warning.
398         * crlcache.c (finish_sig_check): Likewise.
399
400         * dirmngr.c (opts): Add missing initializer to silence gcc
401         -W warning.
402         * server.c (register_commands): Likewise.
403         * dirmngr-client.c (opts): Likewise.
404         * dirmngr_ldap.c (opts): Likewise.
405
406         * dirmngr-client.c (status_cb, inq_cert, data_cb): Change return
407         type to gpg_error_t to silence gcc warning.
408
409 2008-10-21  Werner Koch  <wk@g10code.com>
410
411         * certcache.c (load_certs_from_dir): Accept ".der" files.
412
413         * server.c (get_istrusted_from_client): New.
414         * validate.c (validate_cert_chain): Add new optional arg
415         R_TRUST_ANCHOR.  Adjust all callers
416         * crlcache.c (crl_cache_entry_s): Add fields USER_TRUST_REQ
417         and CHECK_TRUST_ANCHOR.
418         (release_one_cache_entry): Release CHECK_TRUST_ANCHOR.
419         (list_one_crl_entry): Print info about the new fields.
420         (open_dir, write_dir_line_crl): Support the new U-flag.
421         (crl_parse_insert): Add arg R_TRUST_ANCHOR and set it accordingly.
422         (crl_cache_insert): Store trust anchor in entry object.
423         (cache_isvalid): Ask client for trust is needed.
424
425         * crlcache.c (open_dir): Replace xcalloc by xtrycalloc.
426         (next_line_from_file): Ditt.  Add arg to return the gpg error.
427         Change all callers.
428         (update_dir): Replace sprintf and malloc by estream_asprintf.
429         (crl_cache_insert): Ditto.
430         (crl_cache_isvalid): Replace xmalloc by xtrymalloc.
431         (get_auth_key_id): Ditto.
432         (crl_cache_insert): Ditto.
433
434         * crlcache.c (start_sig_check): Remove HAVE_GCRY_MD_DEBUG test.
435         * validate.c (check_cert_sig): Ditto.  Remove workaround for bug
436         in libgcrypt 1.2.
437
438         * estream.c, estream.h, estream-printf.c, estream-printf.h: Update
439         from current libestream (svn rev 61).
440
441 2008-09-30  Marcus Brinkmann  <marcus@g10code.com>
442
443         * get-path.c (get_dirmngr_ldap_path): Revert last change.
444         Instead, use dirmngr_libexecdir().
445         (find_program_at_standard_place): Don't define for now.
446
447 2008-09-30  Marcus Brinkmann  <marcus@g10code.com>
448
449         * get-path.c (dirmngr_cachedir): Make COMP a pointer to const to
450         silence gcc warning.
451         (get_dirmngr_ldap_path): Look for dirmngr_ldap in the installation
452         directory.
453
454 2008-08-06  Marcus Brinkmann  <marcus@g10code.com>
455
456         * dirmngr.c (main): Mark the ldapserverlist-file option as
457         read-only.
458
459 2008-07-31  Werner Koch  <wk@g10code.com>
460
461         * crlcache.c (start_sig_check) [!HAVE_GCRY_MD_DEBUG]: Use
462         gcry_md_start_debug
463
464 2008-06-16  Werner Koch  <wk@g10code.com>
465
466         * get-path.c (w32_commondir): New.
467         (dirmngr_sysconfdir): Use it here.
468         (dirmngr_datadir): Ditto.
469
470 2008-06-12  Marcus Brinkmann  <marcus@g10code.de>
471
472         * Makefile.am (dirmngr_SOURCES): Add ldapserver.h and ldapserver.c.
473         * ldapserver.h, ldapserver.c: New files.
474         * ldap.c: Include "ldapserver.h".
475         (url_fetch_ldap): Use iterator to get session servers as well.
476         (attr_fetch_ldap, start_default_fetch_ldap): Likewise.
477         * dirmngr.c: Include "ldapserver.h".
478         (free_ldapservers_list): Removed.  Change callers to
479         ldapserver_list_free.
480         (parse_ldapserver_file): Use ldapserver_parse_one.
481         * server.c: Include "ldapserver.h".
482         (cmd_ldapserver): New command.
483         (register_commands): Add new command LDAPSERVER.
484         (reset_notify): New function.
485         (start_command_handler): Register reset notify handler.
486         Deallocate session server list.
487         (lookup_cert_by_pattern): Use iterator to get session servers as well.
488         (struct server_local_s): Move to ...
489         * dirmngr.h (struct server_local_s): ... here.  Add new member
490         ldapservers.
491
492 2008-06-10  Werner Koch  <wk@g10code.com>
493
494         Support PEM encoded CRLs.  Fixes bug#927.
495
496         * crlfetch.c (struct reader_cb_context_s): New.
497         (struct file_reader_map_s): Replace FP by new context.
498         (register_file_reader, get_file_reader): Adjust accordingly.
499         (my_es_read): Detect Base64 encoded CRL and decode if needed.
500         (crl_fetch): Pass new context to the callback.
501         (crl_close_reader): Cleanup the new context.
502         * b64dec.c: New.  Taken from GnuPG.
503         * util.h (struct b64state): Add new fields STOP_SEEN and
504         INVALID_ENCODING.
505
506 2008-05-26  Marcus Brinkmann  <marcus@g10code.com>
507
508         * dirmngr.c (main) [HAVE_W32_SYSTEM]: Switch to system
509         configuration on gpgconf related commands, and make all options
510         unchangeable.
511
512 2008-03-25  Marcus Brinkmann  <marcus@g10code.de>
513
514         * dirmngr_ldap.c (print_ldap_entries): Add code alternative for
515         W32 console stdout (unused at this point).
516
517 2008-03-21  Marcus Brinkmann  <marcus@g10code.de>
518
519         * estream.c (ESTREAM_MUTEX_DESTROY): New macro.
520         (es_create, es_destroy): Use it.
521
522 2008-02-21  Werner Koch  <wk@g10code.com>
523
524         * validate.c (check_cert_sig) [HAVE_GCRY_MD_DEBUG]: Use new debug
525         function if available.
526
527         * crlcache.c (abort_sig_check): Mark unused arg.
528
529         * exechelp.c (dirmngr_release_process) [!W32]: Mark unsed arg.
530
531         * validate.c (is_root_cert): New.  Taken from GnuPG.
532         (validate_cert_chain): Use it in place of the simple DN compare.
533
534 2008-02-15  Marcus Brinkmann  <marcus@g10code.de>
535
536         * dirmngr.c (main): Reinitialize assuan log stream if necessary.
537
538         * crlcache.c (update_dir) [HAVE_W32_SYSTEM]: Remove destination
539         file before rename.
540         (crl_cache_insert) [HAVE_W32_SYSTEM]: Remove destination file
541         before rename.
542
543 2008-02-14  Marcus Brinkmann  <marcus@g10code.de>
544
545         * validate.c (check_cert_policy): Use ksba_free instead of xfree.
546         (validate_cert_chain): Likewise.  Free SUBJECT on error.
547         (cert_usage_p): Likewise.
548
549         * crlcache.c (finish_sig_check): Undo last change.
550         (finish_sig_check): Close md.
551         (abort_sig_check): New function.
552         (crl_parse_insert): Use abort_sig_check to clean up.
553
554         * crlcache.c (crl_cache_insert): Clean up CDB on error.
555
556 2008-02-13  Marcus Brinkmann  <marcus@g10code.de>
557
558         * crlcache.c (finish_sig_check): Call gcry_md_stop_debug.
559         * exechelp.h (dirmngr_release_process): New prototype.
560         * exechelp.c (dirmngr_release_process): New function.
561         * ldap.c (ldap_wrapper_thread): Release pid.
562         (destroy_wrapper): Likewise.
563
564         * dirmngr.c (launch_reaper_thread): Destroy tattr.
565         (handle_connections): Likewise.
566
567 2008-02-12  Marcus Brinkmann  <marcus@g10code.de>
568
569         * ldap.c (pth_close) [! HAVE_W32_SYSTEM]: New macro.
570         (struct wrapper_context_s): New member log_ev.
571         (destroy_wrapper): Check FDs for != -1 rather than != 0.  Use
572         pth_close instead of close.  Free CTX->log_ev.
573         (ldap_wrapper_thread): Rewritten to use pth_wait instead of
574         select.  Also use pth_read instead of read and pth_close instead
575         of close.
576         (ldap_wrapper): Initialize CTX->log_ev.
577         (reader_callback): Use pth_close instead of close.
578         * exechelp.c (create_inheritable_pipe) [HAVE_W32_SYSTEM]: Removed.
579         (dirmngr_spawn_process) [HAVE_W32_SYSTEM]: Use pth_pipe instead.
580         * dirmngr_ldap.c [HAVE_W32_SYSTEM]: Include <fcntl.h>.
581         (main) [HAVE_W32_SYSTEM]: Set mode of stdout to binary.
582
583 2008-02-01  Werner Koch  <wk@g10code.com>
584
585         * ldap.c: Remove all ldap headers as they are unused.
586
587         * dirmngr_ldap.c (LDAP_DEPRECATED): New, to have OpenLDAP use the
588         old standard API.
589
590 2008-01-10  Werner Koch  <wk@g10code.com>
591
592         * dirmngr-client.c: New option --local.
593         (do_lookup): Use it.
594
595         * server.c (lookup_cert_by_pattern): Implement local lookup.
596         (return_one_cert): New.
597         * certcache.c (hexsn_to_sexp): New.
598         (classify_pattern, get_certs_bypattern): New.
599
600         * misc.c (unhexify): Allow passing NULL for RESULT.
601         (cert_log_subject): Do not call ksba_free on an unused variable.
602
603 2008-01-02  Marcus Brinkmann  <marcus@g10code.de>
604
605         * Makefile.am (dirmngr_LDADD, dirmngr_ldap_LDADD)
606         (dirmngr_client_LDADD): Add $(LIBICONV).  Reported by Michael
607         Nottebrock.
608
609 2007-12-11  Werner Koch  <wk@g10code.com>
610
611         * server.c (option_handler): New option audit-events.
612         * dirmngr.h (struct server_control_s): Add member AUDIT_EVENTS.
613
614 2007-11-26  Marcus Brinkmann  <marcus@g10code.de>
615
616         * get-path.c (dirmngr_cachedir): Create intermediate directories.
617         (default_socket_name): Use CSIDL_WINDOWS.
618
619 2007-11-21  Werner Koch  <wk@g10code.com>
620
621         * server.c (lookup_cert_by_pattern): Add args SINGLE and CACHE_ONLY.
622         (cmd_lookup): Add options --single and --cache-only.
623
624 2007-11-16  Werner Koch  <wk@g10code.com>
625
626         * certcache.c (load_certs_from_dir): Also log the subject DN.
627         * misc.c (cert_log_subject): New.
628
629 2007-11-14  Werner Koch  <wk@g10code.com>
630
631         * dirmngr-client.c: Replace --lookup-url by --url.
632         (main): Remove extra code for --lookup-url.
633         (do_lookup): Remove LOOKUP_URL arg and use the
634         global option OPT.URL.
635
636         * server.c (has_leading_option): New.
637         (cmd_lookup): Use it.
638
639         * crlfetch.c (fetch_cert_by_url): Use GPG_ERR_INV_CERT_OBJ.
640         (fetch_cert_by_url): Use gpg_error_from_syserror.
641
642 2007-11-14  Moritz  <moritz@gnu.org>  (wk)
643
644         * dirmngr-client.c: New command: --lookup-url <URL>.
645         (do_lookup): New parameter: lookup_url.  If TRUE, include "--url"
646         switch in LOOKUP transaction.
647         (enum): New entry: oLookupUrl.
648         (opts): Likewise.
649         (main): Handle oLookupUrl.  New variable: cmd_lookup_url, set
650         during option parsing, pass to do_lookup() and substitute some
651         occurences of "cmd_lookup" with "cmd_lookup OR cmd_lookup_url".
652         * crlfetch.c (fetch_cert_by_url): New function, uses
653         url_fetch_ldap() to create a reader object and libksba functions
654         to read a single cert from that reader.
655         * server.c (lookup_cert_by_url, lookup_cert_by_pattern): New
656         functions.
657         (cmd_lookup): Moved almost complete code ...
658         (lookup_cert_by_pattern): ... here.
659         (cmd_lookup): Support new optional argument: --url.  Depending on
660         the presence of that switch, call lookup_cert_by_url() or
661         lookup_cert_by_pattern().
662         (lookup_cert_by_url): Heavily stripped down version of
663         lookup_cert_by_pattern(), using fetch_cert_by_url.
664
665 2007-10-24  Marcus Brinkmann  <marcus@g10code.de>
666
667         * exechelp.c (dirmngr_spawn_process): Fix child handles.
668
669 2007-10-05  Marcus Brinkmann  <marcus@g10code.de>
670
671         * dirmngr.h: Include assuan.h.
672         (start_command_handler): Change type of FD to assuan_fd_t.
673         * dirmngr.c: Do not include w32-afunix.h.
674         (socket_nonce): New global variable.
675         (create_server_socket): Use assuan socket wrappers.  Remove W32
676         specific stuff.  Save the server nonce.
677         (check_nonce): New function.
678         (start_connection_thread): Call it.
679         (handle_connections): Change args to assuan_fd_t.
680         * server.c (start_command_handler): Change type of FD to assuan_fd_t.
681
682 2007-09-12  Marcus Brinkmann  <marcus@g10code.de>
683
684         * dirmngr.c (main): Percent escape pathnames in --gpgconf-list output.
685
686 2007-08-27  Moritz Schulte  <moritz@g10code.com>
687
688         * src/Makefile.am (AM_CPPFLAGS): Define DIRMNGR_SOCKETDIR based on
689         $(localstatedir).
690         * src/get-path.c (default_socket_name): Use DIRMNGR_SOCKETDIR
691         instead of hard-coded "/var/run/dirmngr".
692
693 2007-08-16  Werner Koch  <wk@g10code.com>
694
695         * get-path.c (get_dirmngr_ldap_path): Make PATHNAME const.
696
697         * dirmngr.c (my_ksba_hash_buffer): Mark unused arg.
698         (dirmngr_init_default_ctrl): Ditto.
699         (my_gcry_logger): Ditto.
700         * dirmngr-client.c (status_cb): Ditto.
701         * dirmngr_ldap.c (catch_alarm): Ditto.
702         * estream-printf.c (pr_bytes_so_far): Ditto.
703         * estream.c (es_func_fd_create): Ditto.
704         (es_func_fp_create): Ditto.
705         (es_write_hexstring): Ditto.
706         * server.c (cmd_listcrls): Ditto.
707         (cmd_cachecert): Ditto.
708         * crlcache.c (cache_isvalid): Ditto.
709         * ocsp.c (do_ocsp_request): Ditto.
710         * ldap.c (ldap_wrapper_thread): Ditto.
711         * http.c (http_register_tls_callback): Ditto.
712         (connect_server): Ditto.
713         (write_server) [!HTTP_USE_ESTREAM]: Don't build.
714
715 2007-08-14  Werner Koch  <wk@g10code.com>
716
717         * get-path.c (dirmngr_cachedir) [W32]: Use CSIDL_LOCAL_APPDATA.
718
719 2007-08-13  Werner Koch  <wk@g10code.com>
720
721         * dirmngr.c (handle_connections): Use a timeout in the accept
722         function.  Block signals while creating a new thread.
723         (shutdown_pending): Needs to be volatile as also accessed bt the
724         service function.
725         (w32_service_control): Do not use the regular log fucntions here.
726         (handle_tick): New.
727         (main): With system_service in effect use aDaemon as default
728         command.
729         (main) [W32]: Only temporary redefine main for the sake of Emacs's
730         "C-x 4 a".
731
732         * dirmngr-client.c (main) [W32]: Initialize sockets.
733         (start_dirmngr): Use default_socket_name instead of a constant.
734         * Makefile.am (dirmngr_client_SOURCES): Add get-path.c
735
736 2007-08-09  Werner Koch  <wk@g10code.com>
737
738         * dirmngr.c (parse_ocsp_signer): New.
739         (parse_rereadable_options): Set opt.ocsp_signer to this.
740         * dirmngr.h (fingerprint_list_t): New.
741         * ocsp.c (ocsp_isvalid, check_signature, validate_responder_cert):
742         Allow for several default ocscp signers.
743         (ocsp_isvalid): Return GPG_ERR_NO_DATA for an unknwon status.
744
745         * dirmngr-client.c: New option --force-default-responder.
746
747         * server.c (has_option, skip_options): New.
748         (cmd_checkocsp): Add option --force-default-responder.
749         (cmd_isvalid): Ditto.  Also add option --only-ocsp.
750
751         * ocsp.c (ocsp_isvalid): New arg FORCE_DEFAULT_RESPONDER.
752
753         * dirmngr.c: New option --ocsp-max-period.
754         * ocsp.c (ocsp_isvalid): Implement it and take care that a missing
755         next_update is to be ignored.
756
757         * crlfetch.c (my_es_read): New.  Use it instead of es_read.
758
759         * estream.h, estream.c, estream-printf.c: Updated from current
760         libestream SVN.
761
762 2007-08-08  Werner Koch  <wk@g10code.com>
763
764         * crlcache.c (crl_parse_insert): Hack to allow for a missing
765         nextUpdate.
766
767         * dirmngr_ldap.c (print_ldap_entries): Strip the extension from
768         the want_attr.
769
770         * exechelp.c (dirmngr_wait_process): Reworked for clear error
771         semantics.
772         * ldap.c (ldap_wrapper_thread): Adjust for new
773         dirmngr_wait_process semantics.
774
775 2007-08-07  Werner Koch  <wk@g10code.com>
776
777         * get-path.c (default_socket_name) [!W32]: Fixed syntax error.
778
779         * ldap.c (X509CACERT, make_url, fetch_next_cert_ldap): Support
780         x509caCert as used by the Bundesnetzagentur.
781         (ldap_wrapper): Do not pass the prgtram name as the first
782         argument.  dirmngr_spawn_process takes care of that.
783
784 2007-08-04  Marcus Brinkmann  <marcus@g10code.de>
785
786         * dirmngr.h (opt): Add member system_service.
787         * dirmngr.c (opts) [HAVE_W32_SYSTEM]: New entry for option
788         --service.
789         (DEFAULT_SOCKET_NAME): Removed.
790         (service_handle, service_status,
791         w32_service_control) [HAVE_W32_SYSTEM]: New symbols.
792         (main) [HAVE_W32_SYSTEM]: New entry point for --service.  Rename
793         old function to ...
794         (real_main) [HAVE_W32_SYSTEM]: ... this.  Use default_socket_name
795         instead of DEFAULT_SOCKET_NAME, and similar for other paths.
796         Allow colons in Windows socket path name, and implement --service
797         option.
798         * util.h (dirmngr_sysconfdir, dirmngr_libexecdir, dirmngr_datadir,
799         dirmngr_cachedir, default_socket_name): New prototypes.
800         * get-path.c (dirmngr_sysconfdir, dirmngr_libexecdir)
801         (dirmngr_datadir, dirmngr_cachedir, default_socket_name): New
802         functions.
803         (DIRSEP_C, DIRSEP_S): New macros.
804
805 2007-08-03  Marcus Brinkmann  <marcus@g10code.de>
806
807         * get-path.c: Really add the file this time.
808
809 2007-07-31  Marcus Brinkmann  <marcus@g10code.de>
810
811         * crlfetch.c: Include "estream.h".
812         (crl_fetch): Use es_read callback instead a file handle.
813         (crl_close_reader): Use es_fclose instead of fclose.
814         (struct file_reader_map_s): Change type of FP to estream_t.
815         (register_file_reader, crl_fetch, crl_close_reader): Likewise.
816         * ocsp.c: Include "estream.h".
817         (read_response): Change type of FP to estream_t.
818         (read_response, do_ocsp_request): Use es_* variants of I/O
819         functions.
820
821         * http.c: Include <pth.h>.
822         (http_wait_response) [HAVE_W32_SYSTEM]: Use DuplicateHandle.
823         (cookie_read): Use pth_read instead read.
824         (cookie_write): Use pth_write instead write.
825
826 2007-07-30  Marcus Brinkmann  <marcus@g10code.de>
827
828         * ldap-url.c (ldap_str2charray): Fix buglet in ldap_utf8_strchr
829         invocation.
830
831 2007-07-27  Marcus Brinkmann  <marcus@g10code.de>
832
833         * estream.h, estream.c: Update from recent GnuPG.
834
835         * get-path.c: New file.
836         * Makefile.am (dirmngr_SOURCES): Add get-path.c.
837         * util.h (default_homedir, get_dirmngr_ldap_path): New prototypes.
838         * dirmngr.c (main): Use default_homedir().
839         * ldap-url.h: Remove japanese white space (sorry!).
840
841 2007-07-26  Marcus Brinkmann  <marcus@g10code.de>
842
843         * ldap.c (pth_yield): Remove macro.
844
845         * ldap.c (pth_yield) [HAVE_W32_SYSTEM]: Define to Sleep(0).
846
847         * dirmngr_ldap.c [HAVE_W32_SYSTEM]: Do not include <ldap.h>, but
848         <winsock2.h>, <winldap.h> and "ldap-url.h".
849         * ldap.c [HAVE_W32_SYSTEM]: Do not include <ldap.h>, but
850         <winsock2.h> and <winldap.h>.
851
852         * ldap-url.c: Do not include <ldap.h>, but <winsock2.h>,
853         <winldap.h> and "ldap-url.h".
854         (LDAP_P): New macro.
855         * ldap-url.h: New file.
856         * Makefile.am (ldap_url): Add ldap-url.h.
857
858         * Makefile.am (ldap_url): New variable.
859         (dirmngr_ldap_SOURCES): Add $(ldap_url).
860         (dirmngr_ldap_LDADD): Add $(LIBOBJS).
861         * ldap-url.c: New file, excerpted from OpenLDAP.
862         * dirmngr.c (main) [HAVE_W32_SYSTEM]: Avoid the daemonization.
863         * dirmngr_ldap.c: Include "util.h".
864         (main) [HAVE_W32_SYSTEM]: Don't set up alarm.
865         (set_timeout) [HAVE_W32_SYSTEM]: Likewise.
866         * ldap.c [HAVE_W32_SYSTEM]: Add macros for setenv and pth_yield.
867         * no-libgcrypt.h (NO_LIBGCRYPT): Define.
868         * util.h [NO_LIBGCRYPT]: Don't include <gcrypt.h>.
869
870 2007-07-23  Marcus Brinkmann  <marcus@g10code.de>
871
872         * Makefile.am (dirmngr_SOURCES): Add exechelp.h and exechelp.c.
873         * exechelp.h, exechelp.c: New files.
874         * ldap.c: Don't include <sys/wait.h> but "exechelp.h".
875         (destroy_wrapper, ldap_wrapper_thread,
876         ldap_wrapper_connection_cleanup): Use dirmngr_kill_process instead
877         of kill.
878         (ldap_wrapper_thread): Use dirmngr_wait_process instead of
879         waitpid.
880         (ldap_wrapper): Use dirmngr_spawn_process.
881
882 2007-07-20  Marcus Brinkmann  <marcus@g10code.de>
883
884         * certcache.c (cert_cache_lock): Do not initialize statically.
885         (init_cache_lock): New function.
886         (cert_cache_init): Call init_cache_lock.
887
888         * estream.h, estream.c, estream-printf.h, estream-printf.c: New
889         files.
890         * Makefile.am (dirmngr_SOURCES): Add estream.c, estream.h,
891         estream-printf.c, estream-printf.h.
892
893         * http.c: Update to latest version from GnuPG.
894
895         * Makefile.am (cdb_sources)
896         * cdblib.c: Port to windows (backport from tinycdb 0.76).
897
898         * crlcache.c [HAVE_W32_SYSTEM]: Don't include sys/utsname.h.
899         [MKDIR_TAKES_ONE_ARG]: Define mkdir as a macro for such systems.
900         (update_dir, crl_cache_insert) [HAVE_W32_SYSTEM]: Don't get uname.
901         * server.c (start_command_handler) [HAVE_W32_SYSTEM]: Don't log
902         peer credentials.
903
904         * dirmngr.c [HAVE_W32_SYSTEM]: Do not include sys/socket.h or
905         sys/un.h, but ../jnlib/w32-afunix.h.
906         (sleep) [HAVE_W32_SYSTEM]: New macro.
907         (main) [HAVE_W32_SYSTEM]: Don't mess with SIGPIPE.  Use W32 socket
908         API.
909         (handle_signal) [HAVE_W32_SYSTEM]: Deactivate the bunch of the
910         code.
911         (handle_connections) [HAVE_W32_SYSTEM]: don't handle signals.
912
913 2006-11-29  Werner Koch  <wk@g10code.com>
914
915         * dirmngr.c (my_strusage): Use macro for the bug report address
916         and the copyright line.
917         * dirmngr-client.c (my_strusage): Ditto.
918         * dirmngr_ldap.c (my_strusage): Ditto.
919
920         * Makefile.am: Do not link against LIBICONV.
921
922 2006-11-19  Werner Koch  <wk@g10code.com>
923
924         * dirmngr.c: Include i18n.h.
925
926 2006-11-17  Werner Koch  <wk@g10code.com>
927
928         * Makefile.am (dirmngr_LDADD): Use LIBASSUAN_PTH_LIBS.
929
930 2006-11-16  Werner Koch  <wk@g10code.com>
931
932         * server.c (start_command_handler): Replaced
933         assuan_init_connected_socket_server by assuan_init_socket_server_ext.
934
935         * crlcache.c (update_dir): Put a diagnostic into DIR.txt.
936         (open_dir): Detect invalid and duplicate entries.
937         (update_dir): Fixed search for second field.
938
939 2006-10-23  Werner Koch  <wk@g10code.com>
940
941         * dirmngr.c (main): New command --gpgconf-test.
942
943 2006-09-14  Werner Koch  <wk@g10code.com>
944
945         * server.c (start_command_handler): In vebose mode print
946         information about the peer.  This may later be used to restrict
947         certain commands.
948
949 2006-09-12  Werner Koch  <wk@g10code.com>
950
951         * server.c (start_command_handler): Print a more informative hello
952         line.
953         * dirmngr.c: Moved config_filename into the opt struct.
954
955 2006-09-11  Werner Koch  <wk@g10code.com>
956
957         Changed everything to use Assuan with gpg-error codes.
958         * maperror.c: Removed.
959         * server.c (map_to_assuan_status): Removed.
960         * dirmngr.c (main): Set assuan error source.
961         * dirmngr-client.c (main): Ditto.
962
963 2006-09-04  Werner Koch  <wk@g10code.com>
964
965         * crlfetch.c (crl_fetch): Implement HTTP redirection.
966         * ocsp.c (do_ocsp_request): Ditto.
967
968         New HTTP code version taken from gnupg svn release 4236.
969         * http.c (http_get_header): New.
970         (capitalize_header_name, store_header): New.
971         (parse_response): Store headers away.
972         (send_request): Return GPG_ERR_NOT_FOUND if connect_server failed.
973         * http.h: New flag HTTP_FLAG_NEED_HEADER.
974
975 2006-09-01  Werner Koch  <wk@g10code.com>
976
977         * crlfetch.c (register_file_reader, get_file_reader): New.
978         (crl_fetch): Register the file pointer for HTTP.
979         (crl_close_reader): And release it.
980
981         * http.c, http.h: Updated from GnuPG SVN trunk.  Changed all users
982         to adopt the new API.
983         * dirmngr.h: Moved inclusion of jnlib header to ...
984         * util.h: .. here.  This is required becuase http.c includes only
985         a file util.h but makes use of log_foo. Include gcrypt.h so that
986         gcry_malloc et al are declared.
987
988 2006-08-31  Werner Koch  <wk@g10code.com>
989
990         * ocsp.c (check_signature): Make use of the responder id.
991
992 2006-08-30  Werner Koch  <wk@g10code.com>
993
994         * validate.c (check_cert_sig): Workaround for rimemd160.
995         (allowed_ca): Always allow trusted CAs.
996
997         * dirmngr.h (cert_ref_t): New.
998         (struct server_control_s): Add field OCSP_CERTS.
999         * server.c (start_command_handler): Release new field
1000         * ocsp.c (release_ctrl_ocsp_certs): New.
1001         (check_signature): Store certificates in OCSP_CERTS.
1002
1003         * certcache.c (find_issuing_cert): Reset error if cert was found
1004         by subject.
1005         (put_cert): Add new arg FPR_BUFFER.  Changed callers.
1006         (cache_cert_silent): New.
1007
1008         * dirmngr.c (parse_rereadable_options): New options
1009         --ocsp-max-clock-skew and --ocsp-current-period.
1010         * ocsp.c (ocsp_isvalid): Use them here.
1011
1012         * ocsp.c (validate_responder_cert): New optional arg signer_cert.
1013         (check_signature_core): Ditto.
1014         (check_signature): Use the default signer certificate here.
1015
1016 2006-06-27  Werner Koch  <wk@g10code.com>
1017
1018         * dirmngr-client.c (inq_cert): Take care of SENDCERT_SKI.
1019
1020 2006-06-26  Werner Koch  <wk@g10code.com>
1021
1022         * crlcache.c (lock_db_file): Count open files when needed.
1023         (find_entry): Fixed deleted case.
1024
1025 2006-06-23  Werner Koch  <wk@g10code.com>
1026
1027         * misc.c (cert_log_name): New.
1028
1029         * certcache.c (load_certs_from_dir): Also print certificate name.
1030         (find_cert_bysn): Release ISSDN.
1031
1032         * validate.h: New VALIDATE_MODE_CERT.
1033         * server.c (cmd_validate): Use it here so that no policy checks
1034         are done.  Try to validated a cached copy of the target.
1035
1036         * validate.c (validate_cert_chain): Implement a validation cache.
1037         (check_revocations): Print more diagnostics.  Actually use the
1038         loop variable and not the head of the list.
1039         (validate_cert_chain): Do not check revocations of CRL issuer
1040         certificates in plain CRL check mode.
1041         * ocsp.c (ocsp_isvalid): Make sure it is reset for a status of
1042         revoked.
1043
1044 2006-06-22  Werner Koch  <wk@g10code.com>
1045
1046         * validate.c (cert_use_crl_p): New.
1047         (cert_usage_p): Add a mode 6 for CRL signing.
1048         (validate_cert_chain): Check that the certificate may be used for
1049         CRL signing.  Print a note when not running as system daemon.
1050         (validate_cert_chain): Reduce the maximum depth from 50 to 10.
1051
1052         * certcache.c (find_cert_bysn): Minor restructuring
1053         (find_cert_bysubject): Ditto.  Use get_cert_local when called
1054         without KEYID.
1055         * crlcache.c (get_crlissuer_cert_bysn): Removed.
1056         (get_crlissuer_cert): Removed.
1057         (crl_parse_insert): Use find_cert_bysubject and find_cert_bysn
1058         instead of the removed functions.
1059
1060 2006-06-19  Werner Koch  <wk@g10code.com>
1061
1062         * certcache.c (compare_serialno): Silly me. Using 0 as true is
1063         that hard; tsss. Fixed call cases except for the only working one
1064         which are both numbers of the same length.
1065
1066 2006-05-15  Werner Koch  <wk@g10code.com>
1067
1068         * crlfetch.c (crl_fetch): Use no-shutdown flag for HTTP.  This
1069         seems to be required for "IBM_HTTP_Server/2.0.47.1 Apache/2.0.47
1070         (Unix)".
1071
1072         * http.c (parse_tuple): Set flag to to indicate no value.
1073         (build_rel_path): Take care of it.
1074
1075         * crlcache.c (crl_cache_reload_crl): Also iterate over all names
1076         within a DP.
1077
1078 2005-09-28  Marcus Brinkmann  <marcus@g10code.de>
1079
1080         * Makefile.am (dirmngr_LDADD): Add @LIBINTL@ and @LIBICONV@.
1081         (dirmngr_ldap_LDADD): Likewise.
1082         (dirmngr_client_LDADD): Likewise.
1083
1084 2005-09-12  Werner Koch  <wk@g10code.com>
1085
1086         * dirmngr.c: Fixed description to match the one in gpgconf.
1087
1088 2005-06-15  Werner Koch  <wk@g10code.com>
1089
1090         * server.c (cmd_lookup): Take care of NO_DATA which might get
1091         returned also by start_cert_fetch().
1092
1093 2005-04-20  Werner Koch  <wk@g10code.com>
1094
1095         * ldap.c (ldap_wrapper_wait_connections): Set a shutdown flag.
1096         (ldap_wrapper_thread): Handle shutdown in a special way.
1097
1098 2005-04-19  Werner Koch  <wk@g10code.com>
1099
1100         * server.c (get_cert_local, get_issuing_cert_local)
1101         (get_cert_local_ski): Bail out if called without a local context.
1102
1103 2005-04-18  Werner Koch  <wk@g10code.com>
1104
1105         * certcache.c (find_issuing_cert): Fixed last resort method which
1106         should be finding by subject and not by issuer. Try to locate it
1107         also using the keyIdentifier method.  Improve error reporting.
1108         (cmp_simple_canon_sexp): New.
1109         (find_cert_bysubject): New.
1110         (find_cert_bysn): Ask back to the caller before trying an extarnl
1111         lookup.
1112         * server.c (get_cert_local_ski): New.
1113         * crlcache.c (crl_parse_insert): Also try to locate issuer
1114         certificate using the keyIdentifier.  Improved error reporting.
1115
1116 2005-04-14  Werner Koch  <wk@g10code.com>
1117
1118         * ldap.c (start_cert_fetch_ldap): Really return ERR.
1119
1120 2005-03-17  Werner Koch  <wk@g10code.com>
1121
1122         * http.c (parse_response): Changed MAXLEN and LEN to size_t to
1123         match the requirement of read_line.
1124         * http.h (http_context_s): Ditto for BUFFER_SIZE.
1125
1126 2005-03-15  Werner Koch  <wk@g10code.com>
1127
1128         * ldap.c: Included time.h.  Reported by Bernhard Herzog.
1129
1130 2005-03-09  Werner Koch  <wk@g10code.com>
1131
1132         * dirmngr.c: Add a note to the help listing check the man page for
1133         other options.
1134
1135 2005-02-01  Werner Koch  <wk@g10code.com>
1136
1137         * crlcache.c (crl_parse_insert): Renamed a few variables and
1138         changed diagnostic strings for clarity.
1139         (get_issuer_cert): Renamed to get_crlissuer_cert. Try to locate
1140         the certificate from the cache using the subject name.  Use new
1141         fetch function.
1142         (get_crlissuer_cert_bysn): New.
1143         (crl_parse_insert): Use it here.
1144         * crlfetch.c (ca_cert_fetch): Changed interface.
1145         (fetch_next_ksba_cert): New.
1146         * ldap.c (run_ldap_wrapper): Add arg MULTI_MODE.  Changed all
1147         callers.
1148         (start_default_fetch_ldap): New
1149         * certcache.c (get_cert_bysubject): New.
1150         (clean_cache_slot, put_cert): Store the subject DN if available.
1151         (MAX_EXTRA_CACHED_CERTS): Increase limit of cachable certificates
1152         to 1000.
1153         (find_cert_bysn): Loop until a certificate with a matching S/N has
1154         been found.
1155
1156         * dirmngr.c (main): Add honor-http-proxy to the gpgconf list.
1157
1158 2005-01-31  Werner Koch  <wk@g10code.com>
1159
1160         * ldap.c: Started to work on support for userSMIMECertificates.
1161
1162         * dirmngr.c (main): Make sure to always pass a server control
1163         structure to the caching functions.  Reported by Neil Dunbar.
1164
1165 2005-01-05  Werner Koch  <wk@g10code.com>
1166
1167         * dirmngr-client.c (read_pem_certificate): Skip trailing percent
1168         escaped linefeeds.
1169
1170 2005-01-03  Werner Koch  <wk@g10code.com>
1171
1172         * dirmngr-client.c (read_pem_certificate): New.
1173         (read_certificate): Divert to it depending on pem option.
1174         (squid_loop_body): New.
1175         (main): New options --pem and --squid-mode.
1176
1177 2004-12-17  Werner Koch  <wk@g10code.com>
1178
1179         * dirmngr.c (launch_ripper_thread): Renamed to launch_reaper_thread.
1180         (shutdown_reaper): New.  Use it for --server and --daemon.
1181         * ldap.c (ldap_wrapper_wait_connections): New.
1182
1183 2004-12-17  Werner Koch  <wk@g10code.com>
1184
1185         * Makefile.am (dirmngr_ldap_LDADD): Adjusted for new LDAP checks.
1186
1187 2004-12-16  Werner Koch  <wk@g10code.com>
1188
1189         * ldap.c (ldap_wrapper): Peek on the output to detect empty output
1190         early.
1191
1192 2004-12-15  Werner Koch  <wk@g10code.com>
1193
1194         * ldap.c (ldap_wrapper): Print a diagnostic after forking for the
1195         ldap wrapper.
1196         * certcache.h (find_cert_bysn): Add this prototype.
1197         * crlcache.c (start_sig_check): Write CRL hash debug file.
1198         (finish_sig_check): Dump the signer's certificate.
1199         (crl_parse_insert): Try to get the issuing cert by authKeyId.
1200         Moved certificate retrieval after item processing.
1201
1202 2004-12-13  Werner Koch  <wk@g10code.com>
1203
1204         * dirmngr_ldap.c (catch_alarm, set_timeout): new.
1205         (main): Install alarm handler. Add new option --only-search-timeout.
1206         (print_ldap_entries, fetch_ldap): Use set_timeout ();
1207         * dirmngr.h: Make LDAPTIMEOUT a simple unsigned int.  Change all
1208         initializations.
1209         * ldap.c (start_cert_fetch_ldap, run_ldap_wrapper): Pass timeout
1210         option to the wrapper.
1211         (INACTIVITY_TIMEOUT): Depend on LDAPTIMEOUT.
1212         (run_ldap_wrapper): Add arg IGNORE_TIMEOUT.
1213         (ldap_wrapper_thread): Check for special timeout exit code.
1214
1215         * dirmngr.c: Workaround a typo in gpgconf for
1216         ignore-ocsp-service-url.
1217
1218 2004-12-10  Werner Koch  <wk@g10code.com>
1219
1220         * ldap.c (url_fetch_ldap): Use TMP and not a HOST which is always
1221         NULL.
1222         * misc.c (host_and_port_from_url): Fixed bad encoding detection.
1223
1224 2004-12-03  Werner Koch  <wk@g10code.com>
1225
1226         * crlcache.c (crl_cache_load): Re-implement it.
1227
1228         * dirmngr-client.c: New command --load-crl
1229         (do_loadcrl): New.
1230
1231         * dirmngr.c (parse_rereadable_options, main): Make --allow-ocsp,
1232         --ocsp-responder, --ocsp-signer and --max-replies re-readable.
1233
1234         * ocsp.c (check_signature): try to get the cert from the cache
1235         first.
1236         (ocsp_isvalid): Print the next and this update times on time
1237         conflict.
1238
1239         * certcache.c (load_certs_from_dir): Print the fingerprint for
1240         trusted certificates.
1241         (get_cert_byhexfpr): New.
1242         * misc.c (get_fingerprint_hexstring_colon): New.
1243
1244 2004-12-01  Werner Koch  <wk@g10code.com>
1245
1246         * Makefile.am (dirmngr_LDADD): Don't use LDAP_LIBS.
1247
1248         * validate.c (validate_cert_chain): Fixed test; as written in the
1249         comment we want to do this only in daemon mode.  For clarity
1250         reworked by using a linked list of certificates and include root
1251         and tragte certificate.
1252         (check_revocations): Likewise.  Introduced a recursion sentinel.
1253
1254 2004-11-30  Werner Koch  <wk@g10code.com>
1255
1256         * crlfetch.c (ca_cert_fetch, crl_fetch_default): Do not use the
1257         binary prefix as this will be handled in the driver.
1258
1259         * dirmngr_ldap.c: New option --log-with-pid.
1260         (fetch_ldap): Handle LDAP_NO_SUCH_OBJECT.
1261         * ldap.c (run_ldap_wrapper, start_cert_fetch_ldap): Use new log
1262         option.
1263
1264
1265 2004-11-25  Werner Koch  <wk@g10code.com>
1266
1267         * Makefile.am (dirmngr_ldap_CFLAGS): Added GPG_ERROR_CFLAGS.
1268         Noted by Bernhard Herzog.
1269
1270 2004-11-24  Werner Koch  <wk@g10code.com>
1271
1272         * ldap.c (ldap_wrapper): Fixed default name of the ldap wrapper.
1273
1274         * b64enc.c (b64enc_start, b64enc_finish): Use standard strdup/free
1275         to manage memory.
1276
1277         * dirmngr.c: New options --ignore-http-dp, --ignore-ldap-dp and
1278         --ignore-ocsp-service-url.
1279         * crlcache.c (crl_cache_reload_crl): Implement them.
1280         * ocsp.c (ocsp_isvalid): Ditto.
1281
1282 2004-11-23  Werner Koch  <wk@g10code.com>
1283
1284         * ldap.c (ldap_wrapper_thread, reader_callback, ldap_wrapper):
1285         Keep a timestamp and terminate the wrapper after some time of
1286         inactivity.
1287
1288         * dirmngr-client.c (do_lookup): New.
1289         (main): New option --lookup.
1290         (data_cb): New.
1291         * b64enc.c: New. Taken from GnuPG 1.9.
1292         * no-libgcrypt.c (gcry_strdup): Added.
1293
1294         * ocsp.c (ocsp_isvalid): New arg CERT and lookup the issuer
1295         certificate using the standard methods.
1296
1297         * server.c (cmd_lookup): Truncation is now also an indication for
1298         error.
1299         (cmd_checkocsp): Implemented.
1300
1301         * dirmngr_ldap.c (fetch_ldap): Write an error marker for a
1302         truncated search.
1303         * ldap.c (add_server_to_servers): Reactivated.
1304         (url_fetch_ldap): Call it here and try all configured servers in
1305         case of a a failed lookup.
1306         (fetch_next_cert_ldap): Detect the truncation error flag.
1307         * misc.c (host_and_port_from_url, remove_percent_escapes): New.
1308
1309 2004-11-22  Werner Koch  <wk@g10code.com>
1310
1311         * dirmngr_ldap.c (main): New option --proxy.
1312         * ocsp.c (do_ocsp_request): Take care of opt.disable_http.
1313         * crlfetch.c (crl_fetch): Honor the --honor-http-proxy variable.
1314         (crl_fetch): Take care of  opt.disable_http and disable_ldap.
1315         (crl_fetch_default, ca_cert_fetch, start_cert_fetch):
1316         * ldap.c (run_ldap_wrapper): New arg PROXY.
1317         (url_fetch_ldap, attr_fetch_ldap, start_cert_fetch_ldap): Pass it.
1318
1319         * http.c (http_open_document): Add arg PROXY.
1320         (http_open): Ditto.
1321         (send_request): Ditto and implement it as an override.
1322
1323         * ocsp.c (validate_responder_cert): Use validate_cert_chain.
1324
1325         * Makefile.am (AM_CPPFLAGS): Add macros for a few system
1326         directories.
1327         * dirmngr.h (opt): New members homedir_data, homedir_cache,
1328         ldap_wrapper_program, system_daemon, honor_http_proxy, http_proxy,
1329         ldap_proxy, only_ldap_proxy, disable_ldap, disable_http.
1330         * dirmngr.c (main): Initialize new opt members HOMEDIR_DATA and
1331         HOMEDIR_CACHE.
1332         (parse_rereadable_options): New options --ldap-wrapper-program,
1333         --http-wrapper-program, --disable-ldap, --disable-http,
1334         --honor-http-proxy, --http-proxy, --ldap-proxy, --only-ldap-proxy.
1335         (reread_configuration): New.
1336
1337         * ldap.c (ldap_wrapper): Use the correct name for the wrapper.
1338
1339         * crlcache.c (DBDIR_D): Make it depend on opt.SYSTEM_DAEMON.
1340         (cleanup_cache_dir, open_dir, update_dir, make_db_file_name)
1341         (crl_cache_insert, create_directory_if_needed): Use opt.HOMEDIR_CACHE
1342
1343         * validate.c (check_revocations): New.
1344         * crlcache.c (crl_cache_isvalid): Factored most code out to
1345         (cache_isvalid): .. new.
1346         (crl_cache_cert_isvalid): New.
1347         * server.c (cmd_checkcrl): Cleaned up by using this new function.
1348         (reload_crl): Moved to ..
1349         * crlcache.c (crl_cache_reload_crl): .. here and made global.
1350
1351         * certcache.c (cert_compute_fpr): Renamed from computer_fpr and
1352         made global.
1353         (find_cert_bysn): Try to lookup missing certs.
1354         (cert_cache_init): Intialize using opt.HOMEDIR_DATA.
1355
1356
1357 2004-11-19  Werner Koch  <wk@g10code.com>
1358
1359         * dirmngr-client.c (status_cb): New.  Use it in very verbose mode.
1360
1361         * server.c (start_command_handler): Malloc the control structure
1362         and properly release it.  Removed the primary_connection
1363         hack. Cleanup running wrappers.
1364         (dirmngr_status): Return an error code.
1365         (dirmngr_tick): Return an error code and detect a
1366         cancellation. Use wall time and not CPU time.
1367         * validate.c (validate_cert_chain): Add CTRL arg and changed callers.
1368         * crlcache.c (crl_cache_isvalid):
1369         * crlfetch.c (ca_cert_fetch, start_cert_fetch, crl_fetch_default)
1370         (crl_fetch): Ditto.
1371         * ldap.c (ldap_wrapper, run_ldap_wrapper, url_fetch_ldap)
1372         (attr_fetch_ldap, start_cert_fetch_ldap): Ditto.
1373         (ldap_wrapper_release_context): Reset the stored CTRL.
1374         (reader_callback): Periodically call dirmngr_tick.
1375         (ldap_wrapper_release_context): Print an error message for read
1376         errors.
1377         (ldap_wrapper_connection_cleanup): New.
1378
1379 2004-11-18  Werner Koch  <wk@g10code.com>
1380
1381         * dirmngr.c (main): Do not cd / if not running detached.
1382
1383         * dirmngr-client.c: New options --cache-cert and --validate.
1384         (do_cache, do_validate): New.
1385         * server.c (cmd_cachecert, cmd_validate): New.
1386
1387         * crlcache.c (get_issuer_cert): Make use of the certificate cache.
1388         (crl_parse_insert): Validate the issuer certificate.
1389
1390         * dirmngr.c (handle_signal): Reinitialize the certificate cache on
1391         a HUP.
1392         (struct opts): Add --homedir to enable the already implemented code.
1393         (handle_signal): Print stats on SIGUSR1.
1394
1395         * certcache.c (clean_cache_slot, cert_cache_init)
1396         (cert_cache_deinit): New.
1397         (acquire_cache_read_lock, acquire_cache_write_lock)
1398         (release_cache_lock): New.  Use them where needed.
1399         (put_cert): Renamed from put_loaded_cert.
1400         (cache_cert): New.
1401         (cert_cache_print_stats): New.
1402         (compare_serialno): Fixed.
1403
1404 2004-11-16  Werner Koch  <wk@g10code.com>
1405
1406         * Makefile.am (AM_CPPFLAGS): Define DIRMNGR_SYSCONFDIR and
1407         DIRMNGR_LIBEXECDIR.
1408
1409         * misc.c (dump_isotime, dump_string, dump_cert): New.  Taken from
1410         gnupg 1.9.
1411         (dump_serial): New.
1412
1413 2004-11-15  Werner Koch  <wk@g10code.com>
1414
1415         * validate.c: New. Based on gnupg's certchain.c
1416
1417         * ldap.c (get_cert_ldap): Removed.
1418         (read_buffer): New.
1419         (start_cert_fetch_ldap, fetch_next_cert_ldap)
1420         (end_cert_fetch_ldap): Rewritten to make use of the ldap wrapper.
1421
1422 2004-11-12  Werner Koch  <wk@g10code.com>
1423
1424         * http.c (insert_escapes): Print the percent sign too.
1425
1426         * dirmngr-client.c (inq_cert): Ignore "SENDCERT" and
1427         "SENDISSUERCERT".
1428
1429         * server.c (do_get_cert_local): Limit the length of a retruned
1430         certificate.  Return NULL without an error if an empry value has
1431         been received.
1432
1433         * crlfetch.c (ca_cert_fetch): Use the ksba_reader_object.
1434         (setup_funopen, fun_reader, fun_closer): Removed.
1435
1436         * crlcache.c (get_issuer_cert): Adjust accordingly.
1437
1438         * ldap.c (attr_fetch_ldap_internal, attr_fetch_fun_closer)
1439         (attr_fetch_fun_reader, url_fetch_ldap_internal)
1440         (get_attr_from_result_ldap): Removed.
1441         (destroy_wrapper, print_log_line, ldap_wrapper_thread)
1442         (ldap_wrapper_release_context, reader_callback, ldap_wrapper)
1443         (run_ldap_wrapper): New.
1444         (url_fetch_ldap): Make use of the new ldap wrapper and return a
1445         ksba reader object instead of a stdio stream.
1446         (attr_fetch_ldap): Ditto.
1447         (make_url, escape4url): New.
1448
1449 2004-11-11  Werner Koch  <wk@g10code.com>
1450
1451         * dirmngr.c (launch_ripper_thread): New.
1452         (main): Start it wheere appropriate.  Always ignore SIGPIPE.
1453         (start_connection_thread): Maintain a connection count.
1454         (handle_signal, handle_connections): Use it here instead of the
1455         thread count.
1456
1457         * crlcache.c (crl_cache_insert): Changed to use ksba reader
1458         object.  Changed all callers to pass this argument.
1459
1460 2004-11-08  Werner Koch  <wk@g10code.com>
1461
1462         * dirmngr_ldap.c: New.
1463
1464         * crlcache.c (crl_cache_init): Don't return a cache object but
1465         keep it module local.  We only need one.
1466         (crl_cache_deinit): Don't take cache object but work on existing
1467         one.
1468         (get_current_cache): New.
1469         (crl_cache_insert, crl_cache_list, crl_cache_load): Use the global
1470         cache object and removed the cache arg.  Changed all callers.
1471
1472         * dirmngr-client.c: New option --ping.
1473
1474         * dirmngr.c (main): New option --daemon. Initialize PTH.
1475         (handle_connections, start_connection_thread): New.
1476         (handle_signal): New.
1477         (parse_rereadable_options): New. Changed main to make use of it.
1478         (set_debug): Don't bail out on invalid debug levels.
1479         (main): Init the crl_chache for server and daemon mode.
1480
1481         * server.c (start_command_handler): New arg FD.  Changed callers.
1482
1483 2004-11-06  Werner Koch  <wk@g10code.com>
1484
1485         * server.c (map_assuan_err): Factored out to ..
1486         * maperror.c: .. new file.
1487         * util.h: Add prototype
1488
1489 2004-11-05  Werner Koch  <wk@g10code.com>
1490
1491         * no-libgcrypt.c: New, used as helper for dirmngr-client which
1492         does not need libgcrypt proper but jnlib references the memory
1493         functions.  Taken from gnupg 1.9.12.
1494
1495         * dirmngr.h: Factored i18n and xmalloc code out to ..
1496         * i18n.h, util.h: .. New.
1497
1498         * dirmngr-client.c: New.  Some code taken from gnupg 1.9.12.
1499         * Makefile.am (bin_PROGRAMS) Add dirmngr-client.
1500
1501 2004-11-04  Werner Koch  <wk@g10code.com>
1502
1503         * src/server.c (get_fingerprint_from_line, cmd_checkcrl)
1504         (cmd_checkocsp): New.
1505         (register_commands): Register new commands.
1506         (inquire_cert_and_load_crl): Factored most code out to ..
1507         (reload_crl): .. new function.
1508         * src/certcache.h, src/certcache.c: New.
1509         * src/Makefile.am (dirmngr_SOURCES): Add new files.
1510
1511 2004-11-04  Werner Koch  <wk@g10code.com>
1512
1513         Please note that earlier entries are found in the top level
1514         ChangeLog.
1515         [Update after merge with GnuPG: see ./ChangeLog.1]
1516
1517
1518  Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010,
1519            2011 Free Software Foundation, Inc.
1520
1521  This file is free software; as a special exception the author gives
1522  unlimited permission to copy and/or distribute it, with or without
1523  modifications, as long as this notice is preserved.
1524
1525  This file is distributed in the hope that it will be useful, but
1526  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1527  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.