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