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