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