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