A merged changes
[gnupg.git] / common / ChangeLog
1 2010-11-04  Werner Koch  <wk@g10code.com>
2
3         * logging.c (do_logv) [W32]: Don't set a default log stream if the
4         registry entry is empty.
5
6 2010-10-27  Werner Koch  <wk@g10code.com>
7
8         * gettime.c (gnupg_get_isotime): Compare to (time_t)-1.
9         (epoch2isotime): Ditto.
10         (IS_INVALID_TIME_T): New.
11         (asctimestamp): Use lNew macro.
12         (strtimestamp, isotimestamp): Ditto.  Use snprintf.
13
14 2010-10-25  Werner Koch  <wk@g10code.com>
15
16         * logging.c (do_log): Rename to log_log and make global.
17
18 2010-10-20  Werner Koch  <wk@g10code.com>
19
20         * i18n.c (i18n_init) [USE_SIMPLE_GETTEXT]: Call textdomain.
21
22 2010-10-14  Werner Koch  <wk@g10code.com>
23
24         * asshelp.c (start_new_gpg_agent): Print a notice once the agent
25         has been started.
26         (start_new_dirmngr): Likewise.
27
28 2010-10-13  Werner Koch  <wk@g10code.com>
29
30         * miscellaneous.c (parse_version_number, parse_version_string)
31         (gnupg_compare_version): New.
32
33 2010-10-04  Werner Koch  <wk@g10code.com>
34
35         * gettime.c (asctimestamp) [W32CE]: Do not print the timezone.
36
37 2010-09-30  Werner Koch  <wk@g10code.com>
38
39         * util.h (GPG_ERR_FULLY_CANCELED): Add replacement.
40
41 2010-09-17  Werner Koch  <wk@g10code.com>
42
43         * http.c (INADDR_NONE): Provide fallback.
44         * logging.c (INADDR_NONE): Ditto.
45
46 2010-09-16  Werner Koch  <wk@g10code.com>
47
48         * util.h: Add GPG_ERR_MISSING_ISSUER_CERT.
49         * status.c (get_inv_recpsgnr_code): Ditto.
50
51 2010-09-13  Werner Koch  <wk@g10code.com>
52
53         * homedir.c (gnupg_bindir) [W32CE]: Change to bin/.
54         (gnupg_libexecdir) [W32]: Call gnupg_bindir.
55         (gnupg_libdir, gnupg_datadir, gnupg_localedir) [W32]: Simplify by
56         using xstrconcat.
57         (gnupg_module_name): Ditto.
58         (w32_rootdir): Strip a trailing "bin".
59
60 2010-09-02  Werner Koch  <wk@g10code.com>
61
62         * util.h (GPG_ERR_NOT_INITIALIZED): Define if not defined.
63
64 2010-09-01  Marcus Brinkmann  <marcus@g10code.de>
65
66         * estream.c (_es_set_std_fd): Disable debug output.
67
68 2010-08-26  Werner Koch  <wk@g10code.com>
69
70         * estream.c (es_convert_mode): Rename to parse_mode.
71         (parse_mode): Add arg R_CMODE and parse key value pairs.  Use Use
72         664 as the default mode.  Change callers.
73         (ES_DEFAULT_OPEN_MODE): Remove.
74         (es_fopen, do_fpopen, do_w32open, es_freopen): Support a creation
75         mode.
76         (es_func_file_create): Rename to func_file_create and add arg CMODE.
77         (es_func_fd_create): Rename to func_fd_create.
78         (es_func_fp_create): Rename to func_fp_create.
79         (es_list_add): Rename to do_list_add.
80         (es_list_remove): Rename to do_list_remove.
81         (es_list_iterate): Rename to do_list_iterate.
82         (es_pth_read): Rename to do_pth_read.
83         (es_deinit): Rename to do_deinit.
84         (es_init_do): Rename to do_init.
85         (es_func_mem_create): Rename to func_mem_create.
86
87 2010-08-23  Werner Koch  <wk@g10code.com>
88
89         * exechelp-w32ce.c: Rewrite all spawn stuff.
90
91         * exechelp-w32.c (close_all_fds) [W32]: Make it a dummy function.
92
93         * estream.c (es_onclose): New.
94         (notify_list_t, onclose): New.
95         (struct estream_internal): Add field ONCLOSE.
96         (es_initialize, es_deinitialize): Manage new field.
97         (do_close): Call onclose notify functions.
98
99 2010-08-20  Werner Koch  <wk@g10code.com>
100
101         * exechelp-w32.c (create_inheritable_pipe): Change arg to HANDLE.
102
103         * estream.h (es_sysopen_t): New.
104         * estream.c (es_func_w32_create, es_func_w32_read)
105         (es_func_w32_write, es_func_w32_seek, es_func_w32_destroy)
106         (estream_functions_w32, estream_cookie_fd): New.  Only for W32.
107         (es_sysopen, es_sysopen_nc): New.
108         (do_w32open, do_sysopen): New.
109         (es_syshd, es_syshd_unlocked): New.
110         (struct estream_internal): Replace filed FD by SYSHD.
111         (es_initialize): Clear SYSHD_VALID.
112         (map_w32_to_errno): New.
113         (es_get_fd): Remove.
114         (es_fileno_unlocked): Re-implement using es_syshd.
115         (es_initialize, es_create): Replace arg FD by SYSHD.
116         (es_fopen, es_mopen, es_fopenmem, do_fdopen, do_fpopen)
117         (es_tmpfile): Use SYSHD instead of FD.
118         (es_destroy): Rename to do_close.
119
120 2010-08-19  Werner Koch  <wk@g10code.com>
121
122         * exechelp-posix.c (create_pipe_and_estream): New.
123         (gnupg_spawn_process): Rework this function and its calling
124         convention; it is not used anyway.
125         * exechelp-w32.c (gnupg_spawn_process): Ditto.
126
127 2010-08-18  Werner Koch  <wk@g10code.com>
128
129         * logging.c (writen): Add arg IS_SOCKET.
130         (fun_writer): Pass the is_socket flag.
131         (do_logv) [W32]: Allow for a default log stream
132
133         * estream.c (struct estream_internal): Remove obsolete fields
134         PRINT_FP, PRINT_ERRNO, PRINT_ERR and all remaining code cruft.
135
136 2010-08-16  Werner Koch  <wk@g10code.com>
137
138         * estream.c (es_printf_unlocked, es_printf): New.
139
140         * asshelp.c (lock_agent_t): Rename to lock_spawn_t.
141         (lock_agent_spawning, unlock_agent_spawning): Factor code out to ...
142         (lock_spawning, unlock_spawning): .. new.
143         (start_new_gpg_agent): Make more use of ERRSOURCE.
144         (start_new_dirmngr): New.
145
146 2010-08-13  Werner Koch  <wk@g10code.com>
147
148         * Makefile.am (audit-events.h, status-codes.h): Fix srcdir problem
149         amd depend on Makefile.am instead of Makefile.
150
151 2010-08-12  Werner Koch  <wk@g10code.com>
152
153         * sysutils.c (gnupg_remove) [W32CE]: Fix returned error.
154
155 2010-08-09  Werner Koch  <wk@g10code.com>
156
157         * logging.c (WITH_IPV6): New macro.
158         (parse_portno): New.  From libassuan.
159         (fun_writer): Support TCP logging on all platforms.
160         (sock_close): New.
161
162 2010-08-06  Werner Koch  <wk@g10code.com>
163
164         * homedir.c (dirmngr_socket_name) [W32CE]: Base on default homedir.
165         (gnupg_cachedir) [W32CE]: Drop drive letter.
166
167         * http.c (http_open_document): Rename to _http_open_document and
168         add arg ERRSOURCE.  Pass ERRSOURCE to all called funcs.
169         (http_wait_response, http_open, http_parse_uri): Likewise.
170         (do_parse_uri, parse_response, store_header): Change to return an
171         gpg_err_code_t.  Change callers.
172         (send_request): Add arg ERRSOURCE.  Change callers.
173         * http.h (http_open_document, http_wait_response, http_open)
174         (http_parse_uri): Define as macro.
175
176 2010-08-05  Werner Koch  <wk@g10code.com>
177
178         * estream.h (es_asprintf, es_vasprintf): Add lost prototyps.
179
180         * http.c: Require estream and make HTTP_USE_ESTREAM obsolete.  It
181         make the code unreadable and we require estream anyway for GnuPG.
182         (http_wait_response): Get use of cookies right.
183         (send_request): s/xtryasprintf/es_asprintf/ to allow standalone
184         use of the code.
185         (insert_escapes, connect_server): s/sprintf/snprintf/.
186         (parse_response): s/my_read_line/es_read_line/.
187         (my_read_line): Remove.
188         (write_server): Use pth_write.
189
190 2010-07-26  Werner Koch  <wk@g10code.com>
191
192         * estream.c (es_func_fp_write) [W32]: Write smaller chunks.
193
194 2010-07-25  Werner Koch  <wk@g10code.com>
195
196         * argparse.c (initialize): Use ARGPARSE_PRINT_WARNING constant.
197
198 2010-07-24  Werner Koch  <wk@g10code.com>
199
200         * estream.c (es_set_binary): New.
201
202 2010-07-19  Werner Koch  <wk@g10code.com>
203
204         * utf8conv.c (utf8_to_wchar): s/malloc/jnlib_malloc/.
205
206 2010-07-16  Werner Koch  <wk@g10code.com>
207
208         * http.h (HTTP_FLAG_IGNORE_CL): Add flag .
209         * http.c (WITHOUT_GNU_PTH): Test macro for Pth support.
210         (http_parse_uri): s/xcalloc/xtrycalloc/.
211         (send_request): Replace of discrete allocation and sprintf by
212         xtryasprintf.
213         (http_wait_response): Replace HTTP_FLAG_NO_SHUTDOWN by
214         HTTP_FLAG_SHUTDOWN to change the default to no shutdown.
215         (cookie_read) [HAVE_PTH]: Use pth_read.
216         (longcounter_t): New.
217         (struct cookie_s): Add support for content length.  Turn flag
218         fields into bit types.
219         (parse_response): Parse content length header.
220         (cookie_read): Take care of the content length.
221
222 2010-07-08  Werner Koch  <wk@g10code.com>
223
224         * estream.c (estream_functions_file): Remove and replace by
225         identical estream_functions_fd.
226
227 2010-07-06  Werner Koch  <wk@g10code.com>
228
229         * util.h (b64state): Add field STREAM.
230         * b64enc.c (b64enc_start): Factor code out to ..
231         (enc_start): new.
232         (b64enc_start_es, my_fputs): New.
233         (b64enc_write, b64enc_finish): Support estream.
234
235 2010-06-24  Werner Koch  <wk@g10code.com>
236
237         * asshelp.c (lock_agent_spawning) [W32]: Use CreateMutexW.
238         (start_new_gpg_agent): Use HANG option for gnupg_wait_progress.
239         Fixes regression from 2010-06-09.
240
241 2010-06-21  Werner Koch  <wk@g10code.com>
242
243         * util.h (xfree_fnc): New.
244
245 2010-06-18  Werner Koch  <wk@g10code.com>
246
247         * util.h (GPG_ERR_MISSING_KEY) [!GPG_ERR_MISSING_KEY]: New.
248
249         * sexputil.c (make_canon_sexp_pad): Add arg SECURE.
250
251 2010-06-17  Werner Koch  <wk@g10code.com>
252
253         * sexputil.c (make_canon_sexp_pad): New.
254
255 2010-06-14  Werner Koch  <wk@g10code.com>
256
257         * membuf.c (put_membuf): Add shortcut for !LEN.
258
259 2010-06-11  Marcus Brinkmann  <marcus@g10code.de>
260
261         * sysutils.c (translate_sys2libc_fd): Revert last change.
262         (translate_sys2libc_fd_int): Revert last change.
263
264 2010-06-10  Marcus Brinkmann  <marcus@g10code.de>
265
266         * sysutils.c (translate_sys2libc_fd) [HAVE_W32CE_SYSTEM]:
267         Implement.
268         (translate_sys2libc_fd_int) [HAVE_W32CE_SYSTEM]: Don't call
269         translate_sys2libc_fd.
270
271         * estream.c (_es_get_std_stream): Fix cut&paste bug.
272
273 2010-06-09  Werner Koch  <wk@g10code.com>
274
275         * exechelp-posix.c, exechelp-w32.c
276         * exechelp-w32ce.c (gnupg_wait_process): Add new arg HANG.  Change
277         all callers.
278         (gnupg_release_process): New.  Use it after all calls to
279         gnupg_wait_process.
280
281         * util.h (GNUPG_MODULE_NAME_DIRMNGR_LDAP): New.
282         * homedir.c (gnupg_cachedir): New.
283         (w32_try_mkdir): New.
284         (dirmngr_socket_name): Change standard socket name.
285         (gnupg_module_name): Support GNUPG_MODULE_NAME_DIRMNGR_LDAP.
286
287         * logging.c (log_set_get_tid_callback): Replace by ...
288         (log_set_pid_suffix_cb): .. new.
289         (do_logv): Change accordingly.
290
291 2010-06-08  Marcus Brinkmann  <marcus@g10code.de>
292
293         * Makefile.am (AM_CFLAGS): Add $(LIBASSUAN_CFLAGS).
294         (t_common_ldadd): Add $(LIBASSUAN_LIBS).
295         * sysutils.c: Include <assuan.h>.
296         (translate_sys2libc_fd_int): Cast to silence gcc warning.
297         * iobuf.c: Include <assuan.h>
298         (translate_file_handle): Fix syntax error.
299
300 2010-06-08  Werner Koch  <wk@g10code.com>
301
302         * iobuf.c (translate_file_handle) [W32CE]: Handle rendezvous ids.
303
304 2010-06-07  Werner Koch  <wk@g10code.com>
305
306         * sysutils.c [W32CE]: Finish pipe creation.
307
308         * estream.c (es_fname_get, es_fname_set): New.
309         (fname_set_internal): New.
310         (struct estream_internal): Add fields printable_fname and
311         printable_fname_inuse.
312         (_es_get_std_stream): Set stream name.
313         (es_fopen, es_freopen, es_deinitialize): Set fname.
314
315         * exechelp-posix.c (gnupg_spawn_process): Allow passing INFILE or
316         OUTFILE as NULL.
317         * exechelp-w32.c (gnupg_spawn_process): Ditto.
318         * exechelp-w32ce.c (gnupg_spawn_process): Return an error for
319         INFILE or OUTFILE passed as NULL.
320
321 2010-06-01  Werner Koch  <wk@g10code.com>
322
323         * logging.c (log_get_stream): Make sture a log stream is available.
324
325 2010-05-30  Werner Koch  <wk@g10code.com>
326
327         * init.c (writestring_via_estream): New.
328         (init_common_subsystems): Register with argparse.
329
330         * argparse.c (argparse_register_outfnc): New.
331         (writestrings, flushstrings): New.  Use them instead of stdout or
332         stderr based functions.
333
334 2010-05-04  Werner Koch  <wk@g10code.com>
335
336         * estream.c (_es_get_std_stream): Re-use registered standard fds.
337         (IS_INVALID_FD, ESTREAM_SYS_YIELD): New.
338         (es_func_fd_read, es_func_fd_write, es_func_fd_seek)
339         (es_func_fd_destroy): Implement a dummy stream.
340
341         * exechelp-w32ce.c (build_w32_commandline): Add args FD0_ISNULL
342         and FD1_ISNULL.  Remove arg PGMNAME.  Change callers.
343         (gnupg_spawn_process_detached): Implement.
344         (gnupg_spawn_process_fd): Implement one special case for now.
345
346 2010-05-03  Werner Koch  <wk@g10code.com>
347
348         * asshelp.c (lock_agent_spawning, unlock_agent_spawning): New.
349         (start_new_gpg_agent): Test for configured standard socket and
350         try to fire up the agent in this case.
351
352         * exechelp-posix.c (gnupg_wait_process): Do not log a message if
353         EXITCODE is given.
354         (gnupg_spawn_process_detached): Do not reuse PID for the second fork.
355
356 2010-04-26  Werner Koch  <wk@g10code.com>
357
358         * utf8conv.c (load_libiconv) [W32CE]: No libiconv warning
359
360         * init.c (init_common_subsystems) [W32CE]: Register the sleep
361         function before es_init.
362
363 2010-04-20  Werner Koch  <wk@g10code.com>
364
365         * estream.c (es_deinit): New.
366         (es_init_do): Install atexit handler to flush all streams.
367
368         * Makefile.am (common_sources): Add gettime.h.
369
370 2010-04-20  Marcus Brinkmann  <marcus@g10code.de>
371
372         * logging.c (do_log_ignore_arg): New helper function.
373         (log_string): Use it to remove ugly volatile hack that causes gcc
374         warning.
375         (log_flush): Likewise.
376         * sysutils.c (gnupg_unsetenv) [!HAVE_W32CE_SYSTEM]: Return something.
377         (gnupg_setenv) [!HAVE_W32CE_SYSTEM]: Likewise.
378         * pka.c (get_pka_info): Solve strict aliasing rule violation.
379         * t-exechelp.c (test_close_all_fds): Use dummy variables to
380         silence gcc warning.
381
382 2010-04-15  Werner Koch  <wk@g10code.com>
383
384         * util.h: Factor time related functions out to ...
385         * gettime.h: New.
386         (gnupg_copy_time): Move to ...
387         * gettime.c (gnupg_copy_time): New.
388
389         * sysutils.c (gnupg_setenv) [!W32CE]: Add missing return.
390         (gnupg_unsetenv) [!W32CE]: Add missing return.
391
392 2010-04-14  Werner Koch  <wk@g10code.com>
393
394         * Makefile.am (noinst_LIBRARIES) [W32CE]: Exclude libsimple-pwquery.
395
396         * w32help.h (umask) [W32CE]: New.
397
398         * sysutils.c (_gnupg_isatty): New.
399         * util.h (gnupg_isatty): New.
400
401         * asshelp.c (setup_libassuan_logging): Read ASSUAN_DEBUG envvar.
402         (my_libassuan_log_handler): Use it.
403         * sysutils.c (_gnupg_getenv): Implement ASSUAN_DEBUG.
404
405 2010-04-08  Werner Koch  <wk@g10code.com>
406
407         * w32help.h (_setmode, setmode) [W32CE]: Provide prototype and
408         macro.
409
410 2010-04-07  Werner Koch  <wk@g10code.com>
411
412         * mischelp.c (timegm): Replace unsetenv/putenv by gnupg_unsetenv.
413
414         * sysutils.c: Include setenv.h.
415         (gnupg_setenv, gnupg_unsetenv): New.
416
417
418 2010-04-06  Werner Koch  <wk@g10code.com>
419
420         * sysutils.c (gnupg_mkdir): New.
421
422 2010-03-29  Werner Koch  <wk@g10code.com>
423
424         * init.c (sleep_on_exit): Change to 400ms.
425
426 2010-03-25  Werner Koch  <wk@g10code.com>
427
428         * init.c (sleep_on_exit) [W32CE]: New.
429         (init_common_subsystems): Call it.
430
431 2010-03-24  Werner Koch  <wk@g10code.com>
432
433         * stringhelp.c (change_slashes, compare_filenames): Replace
434         HAVE_DRIVE_LETTERS by HAVE_DOSISH_SYSTEM.
435         (make_basename, make_dirname): Detect backslashes and drive
436         letters separately.
437
438         * dotlock.c (make_dotlock, create_dotlock, release_dotlock): Use
439         LockFileEx and UnlockFileEx to support W32CE.
440
441         * ttyio.c (USE_W32_CONSOLE): Replace all _WIN32 by this.
442         (init_ttyfp) [W32CE]: Use stderr.
443
444         * iobuf.c (FD_FOR_STDIN, FD_FOR_STDOUT) [W32CE]: Use estream.
445         (translate_file_handle) [W32CE]: Remove handle translation.
446
447 2010-03-23  Werner Koch  <wk@g10code.com>
448
449         * sysutils.c (gnupg_remove): New.
450
451 2010-03-22  Werner Koch  <wk@g10code.com>
452
453         * exechelp-w32ce.c (build_w32_commandline): Replace by code from
454         libassuan.
455         (create_inheritable_pipe): Use _assuan_w32ce_prepare_pipe.
456         (build_w32_commandline_copy, do_create_pipe): Remove.
457
458         * exechelp-posix.c (gnupg_spawn_process): Change to use estream
459         also for INFILE and STATUSFILE.
460         * exechelp-w32.c (gnupg_spawn_process): Ditto.
461
462 2010-03-22  Werner Koch  <wk@g10code.com>
463
464         * exechelp.c: Remove after factoring all code out to ...
465         * exechelp-posix.c, exechelp-w32.c, exechelp-w32ce.c:  .. new.
466
467         * exechelp.c (create_inheritable_pipe_r)
468         (create_inheritable_pipe_w): Fold both into ...
469         (create_inheritable_pipe): .. New.  Change callers to use this.
470         (gnupg_create_inbound_pipe, gnupg_create_outbound_pipe): Factor
471         code out to ...
472         (do_create_pipe): .. New.
473
474         * init.c (parse_std_file_handles): Change to use rendezvous ids.
475
476 2010-03-15  Werner Koch  <wk@g10code.com>
477
478         * init.c (init_common_subsystems): Add args ARGCP and
479         ARGVP.  Change all callers to provide them.
480         (parse_std_file_handles): New.
481
482         * t-sysutils.c (rewind) [W32CE]: Provide a replacement.
483
484         * Makefile.am (module_tests) [W32CE]: Don't build t-exechelp for now.
485
486         * sysutils.c (gnupg_allow_set_foregound_window) [W32CE]: Don't
487         call AllowSetForegroundWindow.
488
489         * logging.c (isatty) [W32CE]: New.
490         (fun_writer, set_file_fd): Use estream even for the internal error
491         messages.
492         (log_string, log_flush): Make DUMMY_ARG_PTR static.
493
494 2010-03-15  Werner Koch  <wk@g10code.com>
495
496         * asshelp.c (send_pinentry_environment) [!HAVE_SETLOCALE]: Do not
497         define OLD_LC.
498         * http.c (connect_server) [!USE_DNS_SRV]: Mark SRVTAG unused.
499         * dns-cert.c (get_dns_cert) [!USE_DNS_CERT]: Mark args unused.
500         * pka.c (get_pka_info): Ditto.
501
502         * signal.c (pause_on_sigusr): Remove.  It was used in ancient gpg
503         version with shared memory IPC.  Last caller removed on 2006-04-18.
504         (do_block) [W32]: Mark arg unused.
505
506         * exechelp.c (w32_open_null): Use CreateFileW.
507
508         * init.c (init_common_subsystems): Add args ARGCP and ARGVP.
509         Change all callers to pass them.
510
511         * logging.c (S_IRGRP, S_IROTH, S_IWGRP, S_IWOTH) [W32]: New.
512         (fun_writer, set_file_fd) [W32]: Disable socket code.
513
514         * localename.c: Include gpg-error.h.
515
516         * util.h (GPG_ERR_NOT_ENABLED): Remove this temporary definition.
517
518 2010-03-12  Werner Koch  <wk@g10code.com>
519
520         * status.h (STATUS_ENTER): New.
521
522         * ttyio.c (tty_fprintf): Change to use estream.
523
524         * miscellaneous.c (print_utf8_string): Rename to print_utf8_buffer
525         and change FP arg to an estream.  Change all callers.
526         (print_utf8_string2): Ditto; new name is to print_utf8_buffer2.
527
528 2010-03-11  Werner Koch  <wk@g10code.com>
529
530         * miscellaneous.c (print_string): Remove.
531
532         * estream.c (es_setvbuf): Fix parameter check.
533         (es_set_buffering): Allow a SIZE of 0.
534         * asshelp.c (setup_libassuan_logging, my_libassuan_log_handler): New.
535         * logging.c (do_logv): Add arg IGNORE_ARG_PTR.  Change all callers.
536         (log_string): New.
537         (log_flush): New.
538         (set_file_fd): Simplify by using estreams es_stderr.
539
540         * estream.h (es_stdout, es_stderr, es_stdin): New.
541
542 2010-03-10  Werner Koch  <wk@g10code.com>
543
544         * estream.c (es_func_fp_read, es_func_fp_write, es_func_fp_seek)
545         (es_func_fp_destroy): Allow a NULL FP to implement a dummy stream.
546         (do_fpopen): Ditto.
547         (es_vfprintf_unlocked): New.
548         (es_fprintf_unlocked): Make public.
549         (es_fputs_unlocked): New.
550
551         * logging.h: Replace FILE* by estream_t.
552         * logging.c: Remove USE_FUNWRITER cpp conditional because we now
553         use estream.
554         (my_funopen_hook_ret_t, my_funopen_hook_size_t): Replace by
555         ssize_t.
556         (log_get_stream): Change to return an estream_t.
557         (set_file_fd): Always close the log stream because it can't be
558         assigned to stderr or stdout directly.  Use a dummy estream as
559         last resort log stream.
560         (log_test_fd, log_get_fd): Use es_fileno.
561         (log_get_stream): Assert that we have a log stream.
562         (do_logv): Use estream functions and lock the output.
563
564 2010-03-10  Werner Koch  <wk@g10code.com>
565
566         * util.h: Replace jnlib path part by common.
567         (snprintf): Use the replacement macro on all platforms.
568
569         * Makefile.am (jnlib_sources): New.
570         (libcommon_a_SOURCES, libcommonpth_a_SOURCES): Add jnlib_sources.
571         (jnlib_tests): New.
572         (noinst_PROGRAMS, TESTS): Add jnlib_tests.
573         (t_common_ldadd): Remove libjnlib.a.
574
575         * README.jnlib, ChangeLog.jnlib, libjnlib-config.h, argparse.c
576         * argparse.h, dotlock.c, dotlock.h, dynload.h, logging.c
577         * logging.h, mischelp.c, mischelp.h, stringhelp.c, stringhelp.h
578         * strlist.c, strlist.h, types.h, utf8conv.c, utf8conv.h
579         * w32-afunix.c, w32-afunix.h, w32-reg.c, w32help.h, xmalloc.c
580         * xmalloc.h, t-stringhelp.c, t-support.c, t-support.h
581         * t-timestuff.c, t-w32-reg.c: Move from jnlib to here.
582
583         * init.c: Remove "estream.h".
584         * util.h: Include "estream.h".
585
586         * xasprintf.c, ttyio.c: Remove "estream-printf.h".
587
588 2010-03-08  Werner Koch  <wk@g10code.com>
589
590         * exechelp.c [!HAVE_SIGNAL_H]: Do not include signal.h.
591         (DETACHED_PROCESS, CREATE_NEW_PROCESS_GROUP) [W32CE]: Provide stubs.
592
593         * iobuf.h (iobuf_ioctl_t): New.  Use the new macros instead of the
594         hard wired values.
595         * iobuf.c (iobuf_append): Remove.
596         (iobuf_fdopen): Factor code out to ...
597         (do_iobuf_fdopen): ... new.
598         (iobuf_fdopen_nc): New.
599         (iobuf_open_fd_or_name): Implement using iobuf_fdopen_nc.
600
601         * iobuf.c (INVALID_FD): Replace by GNUPG_INVALID_FD.
602         (fp_or_fd_t): Replace by gnupg_fd_t.
603         (my_fileno): Replace by the FD2INT macro.
604         (FILEP_OR_FD_FOR_STDIN, FILEP_OR_FD_FOR_STDOUT): Rename to
605         FD_FOR_STDIN, FD_FOR_STDOUT.
606         (file_filter): Make full use of FD_FOR_STDIN.
607         (USE_SETMODE): Remove.  Not needed without stdio.
608         (my_fopen_ro, my_fopen): Replace unneeded macros.
609
610         * iobuf.c [FILE_FILTER_USES_STDIO]: Remove all code.  It has not
611         been used for a long time.
612
613         * exechelp.h: Include "estream.h".
614
615         * exechelp.c (gnupg_spawn_process): Change OUTFILE to an estream_t.
616
617 2010-03-02  Werner Koch  <wk@g10code.com>
618
619         * estream.c, estream.h, estream-printf.c, estream-printf.h: Update
620         from libestream.
621
622 2010-03-01  Werner Koch  <wk@g10code.com>
623
624         * signal.c [!HAVE_SIGNAL_H]: Don't include signal.h.
625
626         * iobuf.c (direct_open) [W32CE]: Make filename to wchar_t.
627         (iobuf_cancel) [W32CE]: Use DeleteFile.
628
629         * gettime.c (dump_isotime): Use "%s" to print "none".
630
631         * homedir.c (standard_homedir) [W32CE]: Use wchar_t to create the
632         directory.
633         (w32_rootdir) [W32CE]: Likewise.
634
635         * sysutils.c (translate_sys2libc_fd) [W32CE]: Add support.
636         (gnupg_tmpfile) [W32CE]: Ditto.
637         (_gnupg_getenv) [W32CE]: New.
638
639         * util.h (getpid, getenv) [W32CE]: New.
640
641         * i18n.c (i18n_switchto_utf8)
642         (i18n_switchback) [USE_SIMPLE_GETTEXT]: Use new function from
643         libgpg-error which supports proper restoring.
644
645         * sysutils.c (get_session_marker): Simplified by using gcrypt.
646
647 2009-12-08  Marcus Brinkmann  <marcus@g10code.de>
648
649         * Makefile.am (audit-events.h, status.h) [!MAINTAINER_MODE]: No
650         longer include these rules if not in maintainer mode.
651
652 2009-12-08  Werner Koch  <wk@g10code.com>
653
654         * userids.h, userids.c: New.
655         (classify_user_id): Merged from similar fucntions in sm/ and g10/.
656
657         * dns-cert.c (get_dns_cert): Add support for ADNS.
658
659 2009-12-08  Marcus Brinkmann  <marcus@g10code.de>
660
661         * asshelp.c (start_new_gpg_agent): Convert posix FD to assuan FD.
662
663         * asshelp.c (start_new_gpg_agent) [HAVE_W32_SYSTEM]: Add missing
664         argument in assuan_socket_connect invocation.
665         * iobuf.c (iobuf_open_fd_or_name): Fix type of FD in function
666         declaration.
667
668 2009-12-07  Werner Koch  <wk@g10code.com>
669
670         * pka.c (get_pka_info): Add support for ADNS.
671         * src.v (getsrv): Add support for ADNS.
672
673         * srv.c (getsrv): s/xrealloc/xtryrealloc/.
674
675 2009-12-04  Werner Koch  <wk@g10code.com>
676
677         * Makefile.am (audit-events.h, status-codes.h): Create files in
678         the source dir.  Fixes bug#1164.
679
680 2009-12-02  Werner Koch  <wk@g10code.com>
681
682         * audit.c (proc_type_decrypt, proc_type_sign): Implemented.
683         (proc_type_verify): Print hash algo infos.
684         * audit.h (AUDIT_DATA_CIPHER_ALGO, AUDIT_BAD_DATA_CIPHER_ALSO)
685         (AUDIT_NEW_RECP, AUDIT_DECRYPTION_RESULT, AUDIT_RECP_RESULT)
686         (AUDIT_ATTR_HASH_ALGO, AUDIT_SIGNED_BY, AUDIT_SIGNING_DONE):
687
688 2009-11-05  Marcus Brinkmann  <marcus@g10code.de>
689
690         * asshelp.c (start_new_gpg_agent): Update use of
691         assuan_socket_connect and assuan_pipe_connect.
692
693 2009-11-02  Marcus Brinkmann  <marcus@g10code.de>
694
695         * get-passphrase.c (default_inq_cb, membuf_data_cb): Change return
696         type to gpg_error_t.
697
698 2009-10-28  Werner Koch  <wk@g10code.com>
699
700         * status.h (STATUS_MOUNTPOINT): New.
701
702 2009-10-16  Marcus Brinkmann  <marcus@g10code.com>
703
704         * Makefile.am (libcommon_a_CFLAGS): Use LIBASSUAN_CFLAGS instead
705         of LIBASSUAN_PTH_CFLAGS.
706
707 2009-10-13  Werner Koch  <wk@g10code.com>
708
709         * exechelp.c (gnupg_kill_process): New.
710
711 2009-09-29  Werner Koch  <wk@g10code.com>
712
713         * exechelp.c (create_inheritable_pipe): Rename to
714         create_inheritable_pipe_w.
715         (create_inheritable_pipe_r): New.
716         (gnupg_create_outbound_pipe): New.
717
718         * iobuf.h: Include "sysutils.h"
719
720         * iobuf.c (iobuf_open_fd_or_name): New.
721         (iobuf_get_fname_nonnull): New.
722
723 2009-09-23  Marcus Brinkmann  <marcus@g10code.de>
724
725         * asshelp.c (start_new_gpg_agent): Allocate assuan context before
726         starting server.
727
728 2009-09-03  Werner Koch  <wk@g10code.com>
729
730         Update from libestream:
731         * estream-printf.c: Include stdint.h only if HAVE_STDINT_H is
732         defined.
733         * estream-printf.c: Remove all test code.  Use macro DEBUG instead
734         of TEST for debugging.
735         * estream-printf.c (pr_float): Make buffer larger for silly high
736         numbers.
737
738 2009-08-11  David Shaw  <dshaw@jabberwocky.com>
739
740         * ttyio.h, ttyio.c (tty_enable_completion): Some ifdefs around
741         HAVE_LIBREADLINE to allow building when readline isn't available.
742
743 2009-08-06  Werner Koch  <wk@g10code.com>
744
745         * status.h (STATUS_INV_SGNR, STATUS_NO_SGNR): New.
746         * status.c (get_inv_recpsgnr_code): New.
747
748 2009-07-23  David Shaw  <dshaw@jabberwocky.com>
749
750         * srv.c (getsrv): Fix type-punning warning.
751
752 2009-07-23  Werner Koch  <wk@g10code.com>
753
754         * util.h (GPG_ERR_NOT_ENABLED): New.
755         * audit.h (enum): Add AUDIT_CRL_CHECK.
756         * audit.c (proc_type_verify): Show CRL check result.
757
758 2009-07-06  Werner Koch  <wk@g10code.com>
759
760         * get-passphrase.c (struct agentargs): Add SESSION_ENV and remove
761         obsolete args.
762         (gnupg_prepare_get_passphrase): Ditto.
763
764         * session-env.c, session-env.h: New.
765         * t-session-env.c: New.
766         * Makefile.am (common_sources, module_tests): Add them.
767         * asshelp.h: Include "session-env.h"
768         * asshelp.c (send_one_option): Add arg PUTENV.
769         (send_pinentry_environment): Replace most args by SESSION_ENV and
770         rewrite fucntion.
771         (start_new_gpg_agent): Likewise.
772
773         * t-exechelp.c (test_close_all_fds): Remove debug code.
774
775 2009-07-01  Werner Koch  <wk@g10code.com>
776
777         * sexputil.c (get_pk_algo_from_canon_sexp): New.
778
779 2009-06-29  Werner Koch  <wk@g10code.com>
780
781         * estream.c (BUFFER_ROUND_TO_BLOCK): Remove unused macro.
782         (es_func_mem_write): Rewrite reallocation part.
783
784         * estream.c (es_write_sanitized_utf8_buffer): Typo typo fix.
785
786 2009-06-25  Werner Koch  <wk@g10code.com>
787
788         * estream.c (es_write_sanitized_utf8_buffer): Typo fix.
789
790 2009-06-24  Werner Koch  <wk@g10code.com>
791
792         * estream.c (es_read_line): In the malloc error case, set
793         MAX_LENGTH to 0 only if requested.
794         * xreadline.c (read_line): Ditto.
795         * estream.c (es_write_sanitized_utf8_buffer): Pass on error from
796         es_fputs.
797         * sexputil.c (get_rsa_pk_from_canon_sexp): Check for error after
798         the loop.  Reported by Fabian Keil.
799
800 2009-06-22  Werner Koch  <wk@g10code.com>
801
802         * estream.c (es_pth_read, es_pth_write) [W32]: New.
803         (ESTREAM_SYS_READ, ESTREAM_SYS_WRITE) [HAVE_PTH]: Use them.
804
805 2009-06-03  Werner Koch  <wk@g10code.com>
806
807         * estream.c (es_convert_mode): Rewrite and support the "x" flag.
808
809 2009-05-28  David Shaw  <dshaw@jabberwocky.com>
810
811         From 1.4:
812
813         * http.h, http.c (send_request) Pass in a STRLIST for additional
814         headers.  Change all callers.
815
816 2009-05-27  David Shaw  <dshaw@jabberwocky.com>
817
818         From 1.4:
819
820         * http.h, http.c (send_request): Pass in srvtag and make its
821         presence sufficient to turn the feature on.
822         (http_open): From here.
823         (http_document): And here.
824
825         * srv.c (getsrv): Raise maximum packet size to 2048, as PACKETSZ
826         is too small these days.
827
828 2009-05-22  Werner Koch  <wk@g10code.com>
829
830         * ttyio.c (tty_cleanup_after_signal): New.
831
832 2009-05-19  Werner Koch  <wk@g10code.com>
833
834         * simple-pwquery.c (agent_open): Use SUN_LEN
835         (JNLIB_NEED_AFLOCAL): Define and include mischelp.h.
836
837 2009-05-07  Werner Koch  <wk@g10code.com>
838
839         * sexputil.c (get_rsa_pk_from_canon_sexp): New.
840         * t-sexputil.c (test_make_canon_sexp_from_rsa_pk): Extend the test.
841
842 2009-04-28  Werner Koch  <wk@g10code.com>
843
844         * sexputil.c (make_canon_sexp_from_rsa_pk): New.
845         * t-sexputil.c (test_make_canon_sexp_from_rsa_pk): New.
846
847 2009-04-01  Werner Koch  <wk@g10code.com>
848
849         * iobuf.c: Port David's changes from 1.4:
850         (fd_cache_invalidate): Pass return code from close back.
851         (direct_open, iobuf_ioctl): Check that return value.
852         (fd_cache_synchronize): New.
853         (iobuf_ioctl): Add new sub command 4 (fsync).
854
855         * iobuf.c (fd_cache_strcmp): New. Taken from 1.4.
856         (fd_cache_invalidate, fd_cache_close, fd_cache_open):  Use it.
857
858         * exechelp.c (gnupg_spawn_process): Implement new flag bit 6.
859         * sysutils.c (gnupg_allow_set_foregound_window): Allow the use of
860         ASFW_ANY.
861
862         * membuf.c (put_membuf, get_membuf): Wipe memory on out of core.
863
864 2009-03-31  Werner Koch  <wk@g10code.com>
865
866         * percent.c (percent_unescape, percent_plus_unescape): New.
867         (percent_plus_unescape_inplace, percent_unescape_inplace): New.
868         (do_plus_or_plain_unescape, count_unescape, do_unescape): New.
869         (do_unescape_inplace): New.
870         * t-percent.c (test_percent_plus_escape): Test percent_plus_unescape.
871
872         * get-passphrase.c, get-passphrase.h: New.
873         * Makefile.am (without_pth_sources): New.
874
875 2009-03-18  Werner Koch  <wk@g10code.com>
876
877         * exechelp.c: Include sys/resource.h and sys/stat.h.
878         (get_max_open_fds): New.
879         (do_exec): Use it.
880         (get_all_open_fds): New.
881         (close_all_fds): New.
882         (do_exec): Use close_all_fds.
883         * t-exechelp.c: New.
884
885 2009-03-13  David Shaw  <dshaw@jabberwocky.com>
886
887         * http.c (do_parse_uri): Properly handle IPv6 literal addresses as
888         per RFC-2732.  Adapted from patch by Phil Pennock.
889
890 2009-03-12  Werner Koch  <wk@g10code.com>
891
892         * gettime.c: Include i18n.h.
893         (dump_isotime): New.
894
895 2009-03-06  Werner Koch  <wk@g10code.com>
896
897         * sexputil.c (make_canon_sexp): New.
898
899 2009-03-03  Werner Koch  <wk@g10code.com>
900
901         * exechelp.c (do_exec): Make sure that /dev/null connected FDs are
902         not closed.
903
904 2009-01-19  Werner Koch  <wk@g10code.com>
905
906         * audit.c (writeout_li): Translate a few more result strings.
907         Fixes bug#970.
908
909         * convert.c (hex2str): Fix optimization to append a nul character.
910
911 2008-12-05  Werner Koch  <wk@g10code.com>
912
913         * percent.c, t-percent.c: New.
914
915         * exechelp.c (gnupg_spawn_process, gnupg_spawn_process_fd)
916         (gnupg_spawn_process_detached) [W32]: Remove debug output.
917
918 2008-11-20  Werner Koch  <wk@g10code.com>
919
920         * audit.c (writeout_li): Translate OKTEXT.
921
922 2008-11-04  Werner Koch  <wk@g10code.com>
923
924         * i18n.c (i18n_init) [USE_SIMPLE_GETTEXT]: Adjust for changed
925         w32-gettext.c.
926         * homedir.c (gnupg_localedir): New.
927
928 2008-10-20  Werner Koch  <wk@g10code.com>
929
930         * http.c (http_register_tls_callback) [!HTTP_USE_GNUTLS]: Mark
931         unused arg.
932         * localename.c (do_nl_locale_name): Ditto.
933         * audit.c (event2str): Silent gcc warning.
934         * sysutils.c (translate_sys2libc_fd): Mark unused arg.
935         (translate_sys2libc_fd_int): Ditto.
936         * iobuf.c (translate_file_handle): Ditto.
937         * asshelp.c (send_one_option): Ditto.
938         * exechelp.c (gnupg_spawn_process): Ditto.
939         * signal.c (got_usr_signal): Ditto
940         * estream.c (es_func_fd_create) [!W32]: Ditto.
941         (es_func_fp_create) [!W32]: Ditto.
942         (es_write_hexstring): Ditto.
943         (dummy_mutex_call_void, dummy_mutex_call_int) [HAVE_PTH]: New.
944         (ESTREAM_MUTEX_LOCK, ESTREAM_MUTEX_UNLOCK, ESTREAM_MUTEX_TRYLOCK)
945         (ESTREAM_MUTEX_INITIALIZE) [HAVE_PTH]: Use dummy calls so to mark
946         unused arg.
947
948 2008-10-19  Werner Koch  <wk@g10code.com>
949
950         * estream-printf.c (estream_vsnprintf): Fix return value.
951         (check_snprintf): Add a new test.
952         (one_test) [W32]: Disable test.
953
954 2008-10-17  Werner Koch  <wk@g10code.com>
955
956         * util.h (snprintf) [W32]: Redefine to estream_snprintf.
957
958 2008-09-03  Werner Koch  <wk@g10code.com>
959
960         * convert.c (hex2str): New.
961         (hex2str_alloc): New.
962         * t-convert.c (test_hex2str): New.
963
964 2008-08-19  Werner Koch  <wk@g10code.com>
965
966         * iobuf.c: Avoid passing a NULL (iobuf_t)->desc to the log
967         function.  Should in general never be NULL, but well.  Reported by
968         M. Heneka.
969
970 2008-06-26  Werner Koch  <wk@g10code.com>
971
972         * estream.c (es_write_sanitized): Loose check for control
973         characters to better cope with utf-8.  The range 0x80..0x9f is
974         nowadays not anymore accidently used for control charaters.
975
976 2008-06-25  Marcus Brinkmann  <marcus@g10code.de>
977
978         Revert last three changes related to handle translation.
979         * sysutils.c:
980         (FD_TRANSLATE_MAX, fd_translate, fd_translate_len)
981         (translate_table_init, translate_table_lookup): Removed.
982         * iobuf.c (check_special_filename): Do not use
983         translate_table_lookup.
984         * sysutils.h (translate_table_init, translate_table_lookup):
985         Remove prototypes.
986
987 2008-06-19  Werner Koch  <wk@g10code.com>
988
989         * sysutils.c: Remove <ctype.h>.
990         (fd_translate_max): Use macro for the size.
991         (translate_table_init): Protect read against EINTR and replace
992         isspace by spacep.
993
994 2008-06-18  Marcus Brinkmann  <marcus@g10code.de>
995
996         * sysutils.c (TRANS_MAX): Bump up to 350 to be on the safe side.
997
998         * sysutils.h (translate_table_init, translate_table_lookup): New
999         prototypes.
1000         * sysutils.c: Include <ctype.h>.
1001         (FD_TRANSLATE_MAX): New macro.
1002         (fd_translate, fd_translate_len): New static variables.
1003         (translate_table_init, translate_table_lookup): New functions.
1004         (translate_sys2libc_fd_int): Translate file descriptor.
1005         * iobuf.c (check_special_filename): Translate handle values from
1006         special filenames.
1007
1008 2008-06-16  Werner Koch  <wk@g10code.com>
1009
1010         * homedir.c (w32_commondir): New.
1011         (gnupg_sysconfdir): Use it.
1012
1013 2008-06-09  Werner Koch  <wk@g10code.com>
1014
1015         * b64dec.c: New.
1016
1017 2008-06-05  Werner Koch  <wk@g10code.com>
1018
1019         * util.h (gnupg_copy_time): Replace strcpy by memcpy.
1020
1021 2008-05-26  Werner Koch  <wk@g10code.com>
1022
1023         * asshelp.c (send_one_option, send_pinentry_environment): use
1024         xfree and xtrystrdup.
1025
1026         * i18n.c (i18n_switchto_utf8) [USE_SIMPLE_GETTEXT]: Return NULL.
1027
1028         * homedir.c (gnupg_module_name): Add
1029         GNUPG_MODULE_NAME_CONNECT_AGENT and GNUPG_MODULE_NAME_GPGCONF.
1030
1031 2008-04-21  Werner Koch  <wk@g10code.com>
1032
1033         * http.c (http_wait_response) [W32]: Use DuplicateHandle because
1034         it is a socket.
1035         (cookie_read) [W32]: Use recv in place of read.
1036
1037 2008-04-08  Werner Koch  <wk@g10code.com>
1038
1039         * i18n.c (i18n_switchto_utf8, i18n_switchback)
1040         [USE_SIMPLE_GETTEXT]: Implement.
1041
1042 2008-04-07  Werner Koch  <wk@g10code.com>
1043
1044         * b64enc.c (b64enc_start): Detect PGP mode.
1045         (b64enc_finish): Write PGP CRC.
1046         * util.h (struct b64state): Add field CRC.
1047         * t-b64.c: New.
1048
1049         * pka.c (get_pka_info): Use xtrymalloc and check result.
1050
1051 2008-03-25  Werner Koch  <wk@g10code.com>
1052
1053         * localename.c: Strip all W32 code.  Include w32help.h.
1054         (gnupg_messages_locale_name) [W32]: Use the gettext_localename.
1055
1056 2008-03-17  Werner Koch  <wk@g10code.com>
1057
1058         * iobuf.c (IOBUF_BUFFER_SIZE): Actually use this macro.
1059
1060         * simple-pwquery.c (agent_send_all_options): Fix last change.
1061
1062 2008-03-06  Werner Koch  <wk@g10code.com>
1063
1064         * simple-pwquery.c (agent_send_all_options): Add support for
1065         XAUTHORITY and PINENTRY_USER_DATA.
1066
1067 2008-02-15  Marcus Brinkmann  <marcus@g10code.de>
1068
1069         * exechelp.c (gnupg_spawn_process_fd): Add flag DETACHED_PROCESS
1070         unconditionally (required for all callers at the moment).
1071
1072 2008-02-14  Werner Koch  <wk@g10code.com>
1073
1074         * sysutils.c (gnupg_allow_set_foregound_window): New.
1075         (WINVER) [W32]: Define.
1076
1077 2008-01-31  Werner Koch  <wk@g10code.com>
1078
1079         * audit.c (audit_print_result): Make sure that the output is
1080         always UTF8.
1081
1082 2008-01-27  Werner Koch  <wk@g10code.com>
1083
1084         * exechelp.c (gnupg_spawn_process): Add arg FLAGS and changed all
1085         callers to pass 0 for it.
1086
1087 2007-12-13  Werner Koch  <wk@g10code.com>
1088
1089         * sexputil.c (hash_algo_from_sigval): New.
1090         * t-sexputil.c: New.
1091         * Makefile.am (module_tests): Add it.
1092
1093 2007-12-11  Werner Koch  <wk@g10code.com>
1094
1095         * asshelp.c (send_pinentry_environment): Allow using of old
1096         gpg-agents not capabale of the xauthority and pinentry_user_data
1097         options.
1098
1099 2007-12-04  Werner Koch  <wk@g10code.com>
1100
1101         * Makefile.am (t_helpfile_LDADD, module_maint_tests): New.
1102         * t-helpfile.c: New.
1103         * helpfile.c: New.
1104         * membuf.h (is_membuf_ready, MEMBUF_ZERO): New.
1105         * localename.c: New.  Taken from gettext with modifications as done
1106         for GpgOL.  Export one new function.
1107         * util.h (gnupg_messages_locale_name, gnupg_get_help_string): Added.
1108
1109         * sysutils.c (gnupg_reopen_std): New.  Taken from ../g10/gpg.c.
1110
1111 2007-11-27  Werner Koch  <wk@g10code.com>
1112
1113         * Makefile.am (CLEANFILES): New.
1114
1115         * homedir.c (dirmngr_socket_name): Use CSIDL_WINDOWS.
1116
1117 2007-11-15  Werner Koch  <wk@g10code.com>
1118
1119         * asshelp.c (send_pinentry_environment): Add args XAUTHORITY and
1120         PINENTRY_USER_DATA.
1121         (start_new_gpg_agent): Ditto.
1122
1123 2007-11-07  Werner Koch  <wk@g10code.com>
1124
1125         * status.h: New.
1126         * errors.h: Remove.
1127
1128 2007-11-05  Werner Koch  <wk@g10code.com>
1129
1130         * audit.c, audit.h: New.
1131         * Makefile.am: Add rules to build audit-events.h.
1132         * exaudit.awk: New.
1133         * mkstrtable.awk: New.  Taken from libgpg-error.
1134
1135 2007-10-19  Werner Koch  <wk@g10code.com>
1136
1137         * i18n.c (i18n_switchto_utf8, i18n_switchback): New.
1138
1139 2007-10-01  Werner Koch  <wk@g10code.com>
1140
1141         * sysutils.h (FD2INT, INT2FD): New.
1142
1143 2007-09-21  Werner Koch  <wk@g10code.com>
1144
1145         * homedir.c (default_homedir): Make registry work.  Reported by
1146         Marc Mutz.
1147
1148 2007-08-29  Werner Koch  <wk@g10code.com>
1149
1150         * exechelp.c (gnupg_wait_process): Add arg EXITCODE.  Changed all
1151         callers.
1152         (gnupg_create_inbound_pipe): New.
1153         * util.h (GNUPG_MODULE_NAME_GPGSM, GNUPG_MODULE_NAME_GPG): New.
1154         * homedir.c (gnupg_module_name): Add them
1155
1156 2007-08-28  Werner Koch  <wk@g10code.com>
1157
1158         * gettime.c (check_isotime, add_isotime): New.  Originally written
1159         for DirMngr by me.
1160         (add_days_to_isotime): New.
1161         (date2jd, jd2date, days_per_month, days_per_year): New. Taken from
1162         my ancient (1988) code used in Wedit (time2.c).
1163
1164 2007-08-27  Werner Koch  <wk@g10code.com>
1165
1166         * util.h (GNUPG_MODULE_NAME_CHECK_PATTERN): New.
1167         * homedir.c (gnupg_module_name): Add it.
1168         * exechelp.c (w32_fd_or_null) [W32]: New.
1169         (gnupg_spawn_process_fd): New.
1170         (gnupg_wait_process) [W32]: Close the handle after if the process has
1171         returned.
1172
1173 2007-08-22  Werner Koch  <wk@g10code.com>
1174
1175         Updated estream from libestream.
1176
1177         * estream.c (mem_malloc, mem_realloc, mem_free): New.  Use them
1178         instead of the ES_MEM_foo.
1179         * estream.c (estream_cookie_mem): Remove members DONT_FREE,
1180         APPEND_ZERO, PTR and SIZE.  Add MEMORY_LIMIT.  Put GROW into a new
1181         FLAGS struct.
1182         (es_func_mem_create): Remove APPEND_ZERO, DONT_FREE, PTR and
1183         SIZE.  Add MEMORY_LIMIT.
1184         (es_func_mem_write, es_func_mem_seek, es_func_mem_destroy): Revamp.
1185         (es_open_memstream): Change API to just take a memory limit and a
1186         mode argument.  Rename to ..
1187         (es_fopenmem): .. this.
1188         (HAVE_W32_SYSTEM) [_WIN32]: Define if not defined.
1189         (tmpfd) [W32]: Implement directly using the W32 API.
1190         (es_fgets): Rewrite without using doreadline.
1191
1192 2007-08-21  Werner Koch  <wk@g10code.com>
1193
1194         * sysutils.c (gnupg_tmpfile): New.
1195         * t-sysutils.c: New.
1196         * Makefile.am (module_tests): Add t-sysutils.
1197
1198 2007-08-20  Werner Koch  <wk@g10code.com>
1199
1200         * exechelp.c [W32]: Redefine X_OK to F_OK.
1201
1202 2007-08-16  Werner Koch  <wk@g10code.com>
1203
1204         * Makefile.am (t_convert_DEPENDENCIES): Remove
1205         ($(PROGRAMS)): Remove.
1206         (t_common_ldadd): Use libcommon.a and not the macro.
1207
1208 2007-08-14  Werner Koch  <wk@g10code.com>
1209
1210         * homedir.c (dirmngr_socket_name): New.
1211
1212 2007-08-07  Werner Koch  <wk@g10code.com>
1213
1214         * tlv.c, tlv.h: Move from ../scd/.
1215         * tlv.c (parse_sexp, parse_ber_header): Add ERRSOURCE arg and prefix
1216         name with a _.
1217         * tlv.h: Use macro to convey ERRSOURCE.
1218
1219 2007-08-02  Werner Koch  <wk@g10code.com>
1220
1221         * gc-opt-flags.h: New.
1222
1223 2007-08-01  Werner Koch  <wk@g10code.com>
1224
1225         * estream-printf.c (read_dummy_value): Removed as it is useless now.
1226         (read_values): Remove check on !vaargs which is not anymore needed
1227         and anyway not portable.  Reported by Peter O'Gorman.
1228
1229 2007-07-16  Werner Koch  <wk@g10code.com>
1230
1231         * estream.c (es_func_file_create): Clear NO_CLOSE flag.
1232
1233 2007-07-12  Werner Koch  <wk@g10code.com>
1234
1235         * sysutils.h (gnupg_fd_t): New.
1236         * sysutils.c (translate_sys2libc_fd): Use that type instead of int.
1237         (translate_sys2libc_fd_int): New.
1238
1239 2007-07-09  Werner Koch  <wk@g10code.com>
1240
1241         * t-gettime.c (test_isotime2epoch): Use time_t and not u32.
1242
1243 2007-07-05  Werner Koch  <wk@g10code.com>
1244
1245         * t-gettime.c: New.
1246         * gettime.c (isotime2epoch, epoch2isotime): New.
1247
1248 2007-07-04  Werner Koch  <wk@g10code.com>
1249
1250         * estream.c (es_init_do): Do not throw an error if pth has already
1251         been initialized.
1252
1253 2007-06-26  Werner Koch  <wk@g10code.com>
1254
1255         * Makefile.am ($(PROGRAMS)): New.
1256
1257         * util.h (init_common_subsystems): Moved to ..
1258         * init.h: .. New.
1259         * util.h: Include init.h.
1260
1261         * homedir.c (standard_homedir): New.
1262         (default_homedir) [W32]: Reimplemented in terms of
1263         standard_homedir.  Fixed memory leak.
1264
1265 2007-06-25  Werner Koch  <wk@g10code.com>
1266
1267         * iobuf.c: Add more documentation and slighly restructured macro
1268         defintion for better readability.
1269         (FILEP_OR_FD): Rename to fp_or_fd_t.
1270         (CLOSE_CACHE): Rename to close_cache_t.
1271
1272         * sysutils.c (translate_sys2libc_fd): New using the code from iobuf.c.
1273         * iobuf.c: Include sysutils.h.
1274         (iobuf_translate_file_handle): Remove.
1275         (translate_file_handle): Use new function.
1276
1277         * estream-printf.c [TEST]: Header including fixes.
1278         (do_format): Do not append a trailing Nul.  This avoids spurious
1279         Nuls in the es_printf output.
1280         (estream_vsnprintf, estream_vasprintf): Take this in account.
1281
1282         * estream.h (struct es__stream): Change FLAGS to a bit structure.
1283         (ES__FLAG_WRITING): Replace by a bit from FLAGS.  * estream.c
1284         (struct estream_internal): Rename FLAGS to MODEFLAGS so that they
1285         are not confused with the estream flags.
1286         (es_initialize, es_create): Add arg MODEFLAGS so that we can setup
1287         the intial writemode.  Changed all callers to pass them.
1288         (es_convert_mode): Set O_BINARY.
1289         (es_func_fd_create, es_func_fp_create, es_func_file_create) [W32]:
1290         Call setmode if requested.
1291
1292 2007-06-24  Werner Koch  <wk@g10code.com>
1293
1294         * estream.c (do_fpopen, es_fpopen, es_fpopen_nc): New.
1295         (es_func_fp_create, es_func_fp_read, es_func_fp_write)
1296         (es_func_fp_seek, es_func_fp_destroy): New.
1297
1298 2007-06-22  Werner Koch  <wk@g10code.com>
1299
1300         * estream.c (es_fdopen): Factored code out to..
1301         (do_fdopen): .. new.
1302         (es_fdopen_nc): New.
1303         (estream_cookie_fd): Add field NO_CLOSE.
1304         (es_func_fd_create): Add arg NO_CLOSE and changed all callers.
1305         (es_func_fd_destroy): Handle the new flag.
1306
1307         * homedir.c (gnupg_libexecdir) [W32]: Factor code out to ..
1308         (w32_rootdir): .. new.
1309         (gnupg_sysconfdir, gnupg_libdir, gnupg_datadir) [W32]: Return
1310         name based on w32_rootdir().
1311
1312 2007-06-21  Werner Koch  <wk@g10code.com>
1313
1314         * membuf.h (get_membuf_len): New.
1315
1316         * membuf.c (init_membuf_secure): Really allocate in secure memory.
1317         (put_membuf_str): New.
1318
1319         * ttyio.c (tty_getf): New.
1320
1321         * util.h (ctrl_t): Declare it here.
1322
1323         * asshelp.c (start_new_gpg_agent): New.  Based on code from
1324         ../sm/call-agent.c
1325
1326 2007-06-20  Werner Koch  <wk@g10code.com>
1327
1328         * sysutils.c (gnupg_sleep): New.
1329         * sysutils.h [W32]: Remove _sleep wrapper.  Changed all callers to
1330         use gnupg_sleep.
1331
1332         * exechelp.c (build_w32_commandline_copy): New.
1333         (build_w32_commandline): Factored some code out to new function
1334         and correctly process a PGMNAME with spaces.
1335         (gnupg_spawn_process_detached) [W32]: Implement.
1336
1337 2007-06-14  Werner Koch  <wk@g10code.com>
1338
1339         * simple-pwquery.h (MAP_SPWQ_ERROR_IMPL): New.
1340         (SPWQ_NO_PIN_ENTRY): New.
1341         * simple-pwquery.c (simple_pw_set_socket): New.
1342         (agent_open): Use it if GPG_AGENT_INFO is not set.
1343         (simple_pwquery): Extended to allow returning of otehyr error codes.
1344
1345         * util.h (GNUPG_MODULE_NAME_AGENT, GNUPG_MODULE_NAME_PINENTRY)
1346         (GNUPG_MODULE_NAME_SCDAEMON, GNUPG_MODULE_NAME_DIRMNGR)
1347         (GNUPG_MODULE_NAME_PROTECT_TOOL): New.
1348         * homedir.c (gnupg_module_name): New.
1349         (gnupg_bindir): New.
1350
1351 2007-06-12  Werner Koch  <wk@g10code.com>
1352
1353         * homedir.c (gnupg_sysconfdir): New.
1354         (gnupg_libexecdir): New.  Taken from g10/misc.c:get_libexecdir.
1355         (gnupg_datadir): New.
1356         (gnupg_libdir): New.
1357
1358         * http.c (connect_server) [W32]: Do not call init_sockets if
1359         HTTP_NO_WSASTARTUP is defined.
1360
1361         * init.c: New.
1362
1363         * estream.c (es_init_do): Init stream lock here because we can't
1364         use a static initialization with W32pth.
1365
1366 2007-06-11  Werner Koch  <wk@g10code.com>
1367
1368         * Makefile.am (t_common_ldadd): Use libcommonstd macro.
1369
1370 2007-06-06  Werner Koch  <wk@g10code.com>
1371
1372         * Makefile.am: Include am/cmacros.am.
1373
1374         * sysutils.h [W32]: Remove prototypes for the registry access.
1375         * w32reg.c:  Move to ../jnlib/w32-reg.c.
1376
1377         * i18n.c (i18n_init): New.
1378
1379         * simple-gettext.c: Remove.
1380
1381         * iobuf.c (iobuf_get_filelength): Rename SIZE to EXSIZE to silent
1382         shadowing warning.
1383
1384 2007-06-04  Werner Koch  <wk@g10code.com>
1385
1386         * http.c [W32]: Include unistd.h also in this case.
1387         (write_server) [W32]: Fixed error code.
1388         (init_sockets): Fixed syntax error.
1389         (cookie_close): Replace close by sock_close macro.
1390
1391         * estream.c [w32]: Do not init Mutex.
1392
1393         * Makefile.am (common_sources) [USE_SNS_SRV]: Build srv.c only
1394         when needed.
1395
1396         * ttyio.c (init_ttyfp) [W32]: Do not use TTYFP.
1397
1398         * util.h: Include ../jnlib/dynload.h.
1399
1400         * dynload.h:  Move to ../jnlib.
1401
1402 2007-05-30  Werner Koch  <wk@g10code.com>
1403
1404         * estream.c (MEM_FREE, MEM_ALLOC, MEM_REALLOC): Prefix with ES_ as
1405         windows.h also has such definitions,
1406
1407 2007-05-15  Werner Koch  <wk@g10code.com>
1408
1409         * util.h: Do not include gnulib's vasprintf.  Redefine asprintf
1410         and vasprintf.
1411
1412         * xasprintf.c (xasprintf, xtryasprintf): Use estream_vasprintf.
1413
1414         * estream-printf.h, estream-printf.c: New.  Taken from current
1415         libestream SVN.
1416         * Makefile.am (common_sources): Add them.
1417
1418 2007-05-14  Werner Koch  <wk@g10code.com>
1419
1420         * sexp-parse.h (smklen): New.
1421         * sexputil.c: Include sexp-parse.h.
1422         (make_simple_sexp_from_hexstr): Replace sprintf by smklen.
1423
1424 2007-05-07  Werner Koch  <wk@g10code.com>
1425
1426         * signal.c (got_fatal_signal): Protect SIG from being clobbered by
1427         a faulty signal implementaion.  Suggested by James Juran.
1428
1429 2007-04-25  Werner Koch  <wk@g10code.com>
1430
1431         * i18n.h (ngettext): New.
1432         * simple-gettext.c (ngettext): New.
1433
1434 2007-04-20  Werner Koch  <wk@g10code.com>
1435
1436         * miscellaneous.c (my_gcry_logger, my_gcry_outofcore_handler):
1437         Moved from gpg-agent to here.
1438         (my_gcry_fatalerror_handler): new.
1439         (setup_libgcrypt_logging): New.
1440
1441 2007-03-19  Werner Koch  <wk@g10code.com>
1442
1443         * miscellaneous.c (print_hexstring): New.
1444         * estream.c (es_fprintf_unlocked): New.
1445         (es_write_sanitized): New.
1446         (es_write_hexstring): New.
1447         (es_write_sanitized_utf8_buffer) [GNUPG_MAJOR_VERSION]: New.
1448
1449 2007-03-09  David Shaw  <dshaw@jabberwocky.com>
1450
1451         From STABLE-BRANCH-1-4
1452
1453         * http.c (do_parse_uri): Remove the hkp port 11371 detection.  We
1454         implement hkp in the keyserver handler, and the support here makes
1455         it appear like a bad hkp request actually succeeded.
1456
1457 2007-01-31  Werner Koch  <wk@g10code.com>
1458
1459         * Makefile.am (t_common_ldadd): Add LIBINCONV and LIBINTL.
1460
1461 2007-01-25  Werner Koch  <wk@g10code.com>
1462
1463         * simple-pwquery.c (simple_pwquery): New arg OPT_CHECK.
1464
1465 2006-12-13  David Shaw  <dshaw@jabberwocky.com>
1466
1467         * Makefile.am (AM_CPPFLAGS): Include intl/ so we can reference the
1468         built-in headers.
1469
1470 2006-11-23  Werner Koch  <wk@g10code.com>
1471
1472         * http.c: Include i18n.h
1473
1474 2006-11-21  Werner Koch  <wk@g10code.com>
1475
1476         * estream.c: Remove explicit Pth soft mapping diabling becuase it
1477         is now done in config.h.
1478
1479 2006-11-15  Werner Koch  <wk@g10code.com>
1480
1481         * estream.c: Disabled Pth soft mapping.
1482         (my_funopen_hook_ret_t): New.
1483         (print_fun_writer): Use it here.
1484
1485         * iobuf.c (fd_cache_close): Use %d instead of %p for debug output.
1486
1487 2006-11-03  Werner Koch  <wk@g10code.com>
1488
1489         * Makefile.am (t_convert_DEPENDENCIES): Add libcommon.  From
1490         Gentoo.
1491
1492 2006-10-24  Marcus Brinkmann  <marcus@g10code.de>
1493
1494         * Makefile.am (libcommon_a_CFLAGS): Add $(LIBASSUAN_CFLAGS).
1495         (libsimple_pwquery_a_CFLAGS): New variable.
1496
1497 2006-10-20  Werner Koch  <wk@g10code.com>
1498
1499         * convert.c (hex2bin): New.
1500
1501 2006-10-17  Werner Koch  <wk@g10code.com>
1502
1503         * estream.c (struct estream_internal, es_initialize)
1504         (es_deinitialize, print_fun_writer, es_print): New and modified
1505         functions to avoid tempfiles for printf style printing.
1506
1507         * Makefile.am (libcommonpth_a_SOURCES): New. We now build a secon
1508         version of the library with explicit Pth support.
1509         * exechelp.c, estream.c: Make use of WITHOUT_GNU_PTH.
1510
1511 2006-10-08  Werner Koch  <wk@g10code.com>
1512
1513         * gpgrlhelp.c: Trun all functions into dummies if readline is not
1514         available.
1515
1516 2006-10-06  Werner Koch  <wk@g10code.com>
1517
1518         * Makefile.am (AM_CFLAGS): Use PTH version of libassuan.
1519
1520         * util.h (GNUPG_GCC_A_SENTINEL): Defined for gcc >= 4.
1521
1522 2006-10-04  David Shaw  <dshaw@jabberwocky.com>
1523
1524         * gpgrlhelp.c: readline requires stdio.h.
1525
1526 2006-10-04  Werner Koch  <wk@g10code.com>
1527
1528         * membuf.c (init_membuf_secure): New.
1529         (put_membuf): Make sure that ERRNO is set even if the underlying
1530         malloc code does not work properly.
1531         (get_membuf): Set ERRNO on error.
1532         (get_membuf): Allow to pass LEN as NULL.
1533
1534 2006-10-02  Werner Koch  <wk@g10code.com>
1535
1536         * iobuf.c (iobuf_unread): Removed.  This code is not required.
1537         Also removed the entire unget buffer stuff.
1538
1539 2006-09-27  Werner Koch  <wk@g10code.com>
1540
1541         * util.h: Do not include strsep.h and strpbrk.h.
1542         (isascii): Removed as it is now in jnlib.
1543
1544         * iobuf.c (pop_filter, underflow, iobuf_close): Free the unget
1545         buffer.
1546
1547 2006-09-27  Florian Weimer <fweimer@bfk.de>  (wk)
1548
1549         * iobuf.c (iobuf_unread): New.
1550
1551 2006-09-22  Werner Koch  <wk@g10code.com>
1552
1553         * i18n.h: Changed license to an all permissive one.
1554
1555         * ttyio.c (tty_get): We need to use readline too.  Added two more
1556         hooks.
1557
1558 2006-09-21  Werner Koch  <wk@g10code.com>
1559
1560         * ttyio.c (tty_private_set_rl_hooks): New.
1561         (tty_enable_completion, tty_disable_completion): Use a hook to
1562         enable readline support.  Now always available.
1563         (tty_cleanup_rl_after_signal): New.
1564
1565         * ttyio.h: Removed readline specific stuff.  Included util.h.
1566         * common-defs.h: New.
1567
1568 2006-09-15  Werner Koch  <wk@g10code.com>
1569
1570         * convert.c: New.
1571         (hexcolon2bin): New.
1572         (bin2hex, bin2hexcolon, do_binhex): New.
1573         * t-convert.c: New
1574
1575 2006-09-14  Werner Koch  <wk@g10code.com>
1576
1577         * util.h (out_of_core): Use new gpg_error_from_syserror function.
1578
1579         * http.c (init_sockets): Changed it to require 2.2 unless it is
1580         build within gnupg 1 where we require 1.1 (and not anymore allow
1581         for 1.0).
1582
1583 2006-09-07  Werner Koch  <wk@g10code.com>
1584
1585         * exechelp.c (gnupg_spawn_process): Factor out post fork code to ..
1586         (do_exec): .. new function.  Allow passing of -1 for the fds.
1587         (gnupg_spawn_process): Terminate gcrypt's secure memory in the child.
1588         (gnupg_spawn_process_detached): New.
1589
1590 2006-09-06  Werner Koch  <wk@g10code.com>
1591
1592         * maperror.c: Removed.
1593
1594         * util.h (out_of_core): New.
1595
1596 2006-09-04  Werner Koch  <wk@g10code.com>
1597
1598         * http.c (http_get_header): New.
1599         (capitalize_header_name, store_header): New.
1600         (parse_response): Store headers away.
1601         (send_request): Return GPG_ERR_NOT_FOUND if connect_server failed.
1602         * http.h: New flag HTTP_FLAG_NEED_HEADER.
1603
1604 2006-08-21  Werner Koch  <wk@g10code.com>
1605
1606         * Makefile.am (libcommon_a_SOURCES): Added keyserver.h
1607
1608         * openpgpdefs.h: New.  Stripped from ..g10/packet.h.
1609
1610 2006-08-16  Werner Koch  <wk@g10code.com>
1611
1612         * keyserver.h: Moved from ../include to here.
1613
1614         * http.c: Include srv.h.
1615
1616         * srv.c, srv.h: New. Taken from GnuPG 1.4
1617
1618 2006-08-14  Werner Koch  <wk@g10code.com>
1619
1620         * http.h (struct http_context_s): Moved to implementation.
1621         * http.c (http_open): Changed call to return a context.
1622         (http_open_document): Ditto.
1623         (http_get_read_ptr, http_get_read_ptr, http_get_status_code): New.
1624         (do_parse_uri): Replaced strlwr by straight code to ease
1625         standalone use of this file.
1626         (http_wait_response): Removed arg STATUS_CODE as it is available
1627         through an accessor function. Adjusted caller.
1628         (http_escape_string): New.
1629
1630         * estream.c (es_read_line): Renamed to ..
1631         (doreadline): .. this.  Changed all callers.
1632         (es_read_line): New.  This is theusual limited getline variabnt as
1633         used at several places.  Here taken and adjusted from xreadline.c
1634         (es_free): New.
1635
1636 2006-08-11  Werner Koch  <wk@g10code.com>
1637
1638         * http.c: Major internal changes to optionallly support GNUTLS and
1639         ESTREAM.
1640         (http_open): Move initialization of the stream ...
1641         (send_request): .. here.
1642         (http_register_tls_callback): New.
1643
1644         * estream.c (es_writen): Try to seek only is a seek function has
1645         been registered.
1646
1647 2006-08-09  Werner Koch  <wk@g10code.com>
1648
1649         * http.c, http.h: New.  Taken from gnupg 1.4.5, merged with
1650         changes done for the Dirmngr project (by g10 Code) and cleaned up
1651         some stuff.
1652         (make_header_line): New. Change all caller to make user of the new
1653         * Makefile.am (libcommon_a_SOURCES): Added http.c and http.h.
1654
1655 2006-05-23  Werner Koch  <wk@g10code.com>
1656
1657         * gettime.c (isotimestamp): New.
1658
1659         * ttyio.c (tty_get_ttyname): Posixly correct usage of ctermid.
1660
1661         * dns-cert.c: New.  Taken from 1.4.3's util/cert.c.
1662         * dns-cert.h: New.
1663
1664 2006-05-22  Werner Koch  <wk@g10code.com>
1665
1666         * pka.c: New. Taked from 1.4.3.
1667         * pka.h: New.
1668         * Makefile.am: Added pka.
1669
1670 2006-05-19  Werner Koch  <wk@g10code.com>
1671
1672         * yesno.c (answer_is_yes_no_default, answer_is_yes_no_quit):
1673         Updated from 1.4.3.
1674         (answer_is_okay_cancel): new.  From 1.4.3.
1675
1676         * miscellaneous.c (match_multistr): New.  Taken from 1.4.3.
1677
1678         * ttyio.c (tty_enable_completion, tty_disable_completion): New
1679         dummy functions.
1680         * ttyio.h: Add prototypes and stubs.
1681
1682 2006-04-19  Werner Koch  <wk@g10code.com>
1683
1684         * iobuf.c (iobuf_get_fd): New.  Taken from 1.4.3.
1685         (iobuf_is_pipe_filename): New.
1686         (pop_filter): Made static.
1687         (iobuf_skip_rest): New.  Orginal patch by Florian
1688         Weimer.  Added new argument PARTIAL.
1689         (block_filter): Remove the old gpg indeterminate length mode.
1690         (block_filter): Properly handle a partial body stream
1691         that ends with a 5-byte length that happens to be zero.
1692         (iobuf_set_block_mode, iobuf_in_block_mode): Removed as
1693         superfluous.
1694         (iobuf_get_filelength): New arg OVERFLOW.
1695         (iobuf_get_filelength) [W32]: Use GetFileSizeEx if available
1696         * miscellaneous.c (is_file_compressed): Take care of OVERFLOW.
1697
1698 2006-04-18  Werner Koch  <wk@g10code.com>
1699
1700         * homedir.c (w32_shgetfolderpath): New.  Taken from gpg 1.4.3.
1701         (default_homedir): Use it.
1702
1703 2005-10-08  Marcus Brinkmann  <marcus@g10code.de>
1704
1705         * signal.c (get_signal_name): Check value of HAVE_DECL_SYS_SIGLIST
1706         instead of just if it is defined.
1707
1708 2005-09-28  Marcus Brinkmann  <marcus@g10code.de>
1709
1710         * Makefile.am (AM_CFLAGS): Add $(LIBASSUAN_CFLAGS).
1711
1712 2005-07-04  Marcus Brinkmann  <marcus@g10code.de>
1713
1714         * simple-pwquery.h (simple_pwclear): New prototype.
1715         * simple-pwquery.c (simple_pwclear): New function.
1716
1717 2005-06-15  Werner Koch  <wk@g10code.com>
1718
1719         * miscellaneous.c (make_printable_string): Made P a void*.
1720
1721         * sexputil.c (keygrip_from_canon_sexp, cmp_simple_canon_sexp):
1722         Fixed signed/unsigned pointer mismatch.
1723         (make_simple_sexp_from_hexstr): Ditto.  This is all too ugly; I
1724         wonder why gcc-4's default is to warn about them and forcing us to
1725         use cast the warning away.
1726         * iobuf.c (block_filter): Ditto.
1727         (iobuf_flush): Ditto.
1728         (iobuf_read_line): Ditto.
1729         (iobuf_read): Make BUFFER a void *.
1730         (iobuf_write): Make BUFFER a const void *.
1731         * ttyio.c (tty_print_utf8_string2): Ditto.
1732         * estream.c (estream_cookie_mem): Make MEMORY unsigned char*.
1733         (es_write): Make BUFFER a void *.
1734         (es_writen): Ditto.
1735         (es_func_fd_read, es_func_fd_write, es_func_mem_read)
1736         (es_func_mem_write): Ditto.
1737         (es_read, es_readn): Ditto.
1738         (es_func_mem_write): Made MEMORY_NEW an unsigned char *.
1739         * estream.h (es_cookie_read_function_t)
1740         (es_cookie_write_function_t): Changed buffer arg to void*.
1741
1742 2005-06-03  Werner Koch  <wk@g10code.com>
1743
1744         * estream.c: Use HAVE_CONFIG_H and not USE_CONFIG_H!
1745         (es_func_fd_read, es_func_fd_write): Protect against EINTR.
1746
1747 2005-06-01  Werner Koch  <wk@g10code.com>
1748
1749         * Makefile.am (AM_CPPFLAGS): Added.
1750
1751         * util.h: Add some includes for gnulib.
1752         (ttyname, isascii): Define them inline.
1753         * fseeko.c, ftello.c: Removed.
1754         * strsep.c, mkdtemp.c: Removed.
1755         * ttyname.c, isascii.c: Removed.
1756
1757 2005-05-31  Werner Koch  <wk@g10code.com>
1758
1759         * dynload.h: s/__inline__/inline/.
1760
1761 2005-05-13  Werner Koch  <wk@g10code.com>
1762
1763         * signal.c (got_fatal_signal): Print the signal number if we can't
1764         get a name for it.
1765         (get_signal_name): Return NULL if no name is available. Fixed
1766         conditional for sys_siglist to the correct one.
1767
1768 2005-04-17  Werner Koch  <wk@g10code.com>
1769
1770         * sexputil.c (cmp_simple_canon_sexp): New.
1771         (make_simple_sexp_from_hexstr): New.
1772
1773 2005-04-07  Werner Koch  <wk@g10code.com>
1774
1775         * sexputil.c: New.
1776
1777 2005-04-11  Marcus Brinkmann  <marcus@g10code.de>
1778
1779         * simple-pwquery.c (simple_pwquery): Use spwq_secure_free.
1780
1781 2005-03-03  Werner Koch  <wk@g10code.com>
1782
1783         * Makefile.am (AM_CFLAGS): Added PTH_CFLAGS.  Noted by Kazu Yamamoto.
1784
1785 2005-02-25  Werner Koch  <wk@g10code.com>
1786
1787         * xasprintf.c (xtryasprintf): New.
1788
1789 2005-01-26  Moritz Schulte  <moritz@g10code.com>
1790
1791         * Makefile.am (libcommon_a_SOURCES): New source files: estream.c,
1792         estream.h.
1793         * estream.c, estream.h: New files.
1794
1795 2005-01-03  Werner Koch  <wk@g10code.com>
1796
1797         * asshelp.c (send_pinentry_environment): Fixed changed from
1798         2004-12-18; cut+paste error for lc-messages.
1799
1800 2004-12-21  Werner Koch  <wk@g10code.com>
1801
1802         * simple-pwquery.c (agent_open) [W32]: Implement for W32.
1803         (readline) [W32]: Use recv instead of read.
1804         (writen) [W32]: Use send instead of write.
1805         (my_stpcpy): Define a stpcpy replacement so that this file
1806         continues to be self-contained.
1807         (agent_send_all_options) [W32]: Don't call ttyname.
1808
1809 2004-12-21  Marcus Brinkmann  <marcus@g10code.de>
1810
1811         * simple-pwquery.h (simple_query): Add prototype.
1812         * simple-pwquery.c (simple_query): New function.
1813
1814 2004-12-21  Werner Koch  <wk@g10code.com>
1815
1816         * signal.c (got_fatal_signal, got_usr_signal)
1817         (got_fatal_signal) [DOSISH]: Don't build.
1818         * simple-gettext.c: Include sysutils.h
1819
1820         * homedir.c: New. Use CSIDL_APPDATA for W32 as the default home
1821         directory.
1822         * Makefile.am (libcommon_a_SOURCES): Add it.
1823         (EXTRA_DIST): Removed mkerror and mkerrtok.
1824
1825 2004-12-20  Werner Koch  <wk@g10code.com>
1826
1827         * sysutils.h [W32]: Define sleep.
1828         * util.h: Add prototype for mkdtemp.
1829
1830         * membuf.c (put_membuf): Wipe out buffer after a failed realloc.
1831
1832 2004-12-19  Werner Koch  <wk@g10code.com>
1833
1834         * maperror.c (map_assuan_err_with_source): Oops, args were swapped.
1835
1836 2004-12-18  Werner Koch  <wk@g10code.com>
1837
1838         * maperror.c (map_assuan_err): Renamed to ..
1839         (map_assuan_err_with_source): .. this and add arg SOURCE.c
1840         * asshelp.c (send_pinentry_environment, send_one_option): Add arg
1841         ERRSOURCE.
1842
1843 2004-12-15  Werner Koch  <wk@g10code.com>
1844
1845         * sysutils.h [W32]: Prototypes for registry functions.
1846         * w32reg.c: Include sysutils.h
1847
1848         * simple-pwquery.c [W32]: Dummy code to allow a build.
1849
1850         * exechelp.c [W32]: Implemented for W32 .
1851
1852         * ttyname.c: New.
1853
1854         * asshelp.c (send_one_option): New.
1855         (send_pinentry_environment): Cleaned up and made sure that empty
1856         values are not send.
1857
1858 2004-12-07  Werner Koch  <wk@g10code.com>
1859
1860         * asshelp.c (send_pinentry_environment) [W32]: Do not use ttyname.
1861
1862 2004-12-06  Werner Koch  <wk@g10code.com>
1863
1864         * exechelp.h, exechelp.c: New.  Based on code from ../sm/import.c.
1865
1866 2004-12-03  Werner Koch  <wk@g10code.com>
1867
1868         * strsep.c: Fixed copyright comments.
1869
1870 2004-11-26  Werner Koch  <wk@g10code.com>
1871
1872         * simple-gettext.c: New taken from gnupg 1.3.x
1873
1874         * simple-pwquery.c [_WIN32]: Include winsock2.h.
1875         (agent_open): Disable it until we have our AF_UNIX implementation
1876         ready.
1877         * fseeko.c, ftello.c: Include sys/types for the sake of W32.
1878
1879 2004-11-23  Werner Koch  <wk@g10code.com>
1880
1881         * b64enc.c: Include stdio.h and string.h
1882
1883 2004-08-18  Werner Koch  <wk@g10code.de>
1884
1885         * simple-pwquery.c (simple_pwquery): Handle gpg-error style return
1886         code for canceled.
1887
1888 2004-07-20  Werner Koch  <wk@g10code.de>
1889
1890         * maperror.c: Removed header ksba.h.  Not required anymore.
1891
1892 2004-06-14  Werner Koch  <wk@gnupg.org>
1893
1894         * xreadline.c: New.  Based on the iobuf_read_line function.
1895
1896 2004-05-12  Werner Koch  <wk@gnupg.org>
1897
1898         * util.h (xtrycalloc_secure,xtrymalloc_secure): New.
1899
1900 2004-05-11  Werner Koch  <wk@gnupg.org>
1901
1902         * sysutils.c (disable_core_dumps): Only set the current limit.
1903         (enable_core_dumps): New.
1904
1905 2004-04-13  Werner Koch  <wk@gnupg.org>
1906
1907         * simple-pwquery.c (copy_and_escape): Relaxed quoting.
1908
1909 2004-04-05  Werner Koch  <wk@gnupg.org>
1910
1911         * errors.h (STATUS_NEWSIG): New.
1912
1913 2004-03-11  Werner Koch  <wk@gnupg.org>
1914
1915         * dynload.h [__MINGW32__]: Define RTLD_LAZY.
1916
1917 2004-03-09  Werner Koch  <wk@gnupg.org>
1918
1919         * maperror.c (map_assuan_err): Map the Locale_Problem item.
1920
1921 2004-03-03  Werner Koch  <wk@gnupg.org>
1922
1923         * asshelp.c, asshelp.h: New.
1924         (send_pinentry_environment): New. Code taken from ../sm/call-agent.c.
1925
1926 2004-02-19  Werner Koch  <wk@gnupg.org>
1927
1928         * simple-pwquery.c (agent_open): Don't mangle INFOSTR.
1929
1930 2004-02-17  Werner Koch  <wk@gnupg.org>
1931
1932         * simple-pwquery.c (agent_open): Ignore an empty GPG_AGENT_INFO.
1933
1934         * errors.h: Added STATUS_IMPORT_OK.
1935
1936 2004-02-10  Werner Koch  <wk@gnupg.org>
1937
1938         * b64enc.c: New.  Based on code from ../sm/base64.c.
1939
1940 2004-01-30  Marcus Brinkmann  <marcus@g10code.de>
1941
1942         * Makefile.am (libcommon_a_SOURCES): Add xasprintf.c.
1943         * miscellaneous.c (xasprintf): Moved to ...
1944         * xasprintf (xasprintf): ... here.  New file.
1945         This allows to use xasprintf without sucking in gpg-error.
1946
1947 2004-01-27  Werner Koch  <wk@gnupg.org>
1948
1949         * sexp-parse.h: New; moved from../agent.
1950
1951         * util.h (xtoi_4): New.
1952
1953 2003-12-23  Werner Koch  <wk@gnupg.org>
1954
1955         * maperror.c (map_assuan_err): Prepared for a new error code.
1956
1957 2003-12-17  Werner Koch  <wk@gnupg.org>
1958
1959         * gettime.c (asctimestamp): Add a note on a non-avoidable gcc warning.
1960
1961         * util.h [!HAVE_VASPRINTF]: Add printf format attribute to the
1962         replacement function.
1963
1964         * miscellaneous.c (xasprintf): New.
1965
1966 2003-11-14  Werner Koch  <wk@gnupg.org>
1967
1968         * mkdtemp.c (mkdtemp): Use gcry_create_nonce.
1969
1970         * cryptmiss.c: Removed.
1971
1972 2003-11-13  Werner Koch  <wk@gnupg.org>
1973
1974         * util.h (vasprintf): Also fixed the prototype.
1975
1976         * vasprintf.c (vasprintf): ARGS should not be a pointer.  Fixed
1977         segv on Solaris.  Reported by Andrew J. Schorr.
1978
1979 2003-11-12  Werner Koch  <wk@gnupg.org>
1980
1981         * maperror.c (map_ksba_err, map_gcry_err, map_kbx_err): Removed.
1982
1983 2003-10-31  Werner Koch  <wk@gnupg.org>
1984
1985         * util.h (gnupg_isotime_t): New.
1986         (gnupg_copy_time): New.
1987
1988         * gettime.c (gnupg_get_isotime): New.
1989
1990 2003-09-23  Werner Koch  <wk@gnupg.org>
1991
1992         * iobuf.c (check_special_filename): Replaced is isdigit by digitp
1993         to avoid passing negative values and potential locale problems.
1994         Problem noted by Christian Biere.
1995
1996         * util.h (ascii_isspace): New.
1997
1998 2003-09-18  Werner Koch  <wk@gnupg.org>
1999
2000         * ttyio.c (tty_fprintf): New.
2001         (tty_print_string, tty_print_utf8_string2)
2002         (tty_print_utf8_string): Made P argument const byte*.
2003
2004 2003-08-20  Marcus Brinkmann  <marcus@g10code.de>
2005
2006         * maperror.c (map_ksba_err): Map -1.  Use gpg_err_make to set
2007         the error source.
2008
2009 2003-08-14  Timo Schulz  <twoaday@freakmail.de>
2010
2011         * dynload.h. New. W32 wrapper around the dynload mechanism.
2012
2013 2003-07-15  Werner Koch  <wk@gnupg.org>
2014
2015         * simple-pwquery.c, simple-pwquery.h:  New; moved from ../agent.
2016         * Makefile.am (libsimple_pwquery_a_LIBADD): New.
2017
2018 2003-06-25  Werner Koch  <wk@gnupg.org>
2019
2020         * maperror.c (map_to_assuan_status): Directly map 0 to 0.
2021
2022 2003-06-17  Werner Koch  <wk@gnupg.org>
2023
2024         * gettime.c (scan_isodatestr,add_days_to_timestamp,strtimevalue)
2025         (strtimestamp,asctimestamp): New.  Code taken from gnupg 1.3.2
2026         mischelp.c.
2027
2028         * yesno.c: New.  Code taken from gnupg 1.3.2 mischelp.c
2029
2030         * miscellaneous.c: New.
2031
2032         * util.h: Include utf8conf.h
2033
2034 2003-06-16  Werner Koch  <wk@gnupg.org>
2035
2036         * gettime.c (make_timestamp): New.
2037
2038         * ttyio.c: New. Taken from gnupg 1.2.
2039         * ttyio.h: Move from ../include.
2040
2041 2003-06-13  Werner Koch  <wk@gnupg.org>
2042
2043         * util.h (seterr): Removed macro.
2044         (xmalloc_secure,xcalloc_secure): New.
2045
2046 2003-06-11  Werner Koch  <wk@gnupg.org>
2047
2048         * iobuf.c (iobuf_writebyte,iobuf_write): Return error code from
2049         iobuf_flush.
2050         (iobuf_writestr): Ditto.
2051
2052 2003-06-10  Werner Koch  <wk@gnupg.org>
2053
2054         * iobuf.c, iobuf.h: New. Taken from current gnupg 1.3 CVS.  Run
2055         indent on it and adjusted error handling to libgpg-error style.
2056         Replaced IOBUF by iobuf_t. Renamed malloc functions.
2057
2058 2003-06-04  Werner Koch  <wk@gnupg.org>
2059
2060         * errors.h: Removed all error codes.  We keep the status codes for
2061         now.
2062         * Makefile.am: Do not create errors.c anymore; remove it from the
2063         sources.
2064
2065         * maperror.c: Don't include error.h.  Change all error codes to
2066         libgpg-error style.
2067         (map_assuan_err): Changed to new Assuan error code convention.
2068         (map_to_assuan_status): Likewise.
2069         (map_gcry_err,map_kbx_err): Not needed.  For now dummy functions.
2070
2071         * membuf.c, membuf.h: New.  Code taken from ../sm/call-agent.h.
2072         * Makefile.am: Added above.
2073
2074 2003-04-29  Werner Koch  <wk@gnupg.org>
2075
2076         * util.h (fopencokokie): Removed prototype and struct.
2077
2078         * fopencookie.c: Removed.
2079
2080         * maperror.c: Use system assuan.h
2081
2082 2002-10-31  Neal H. Walfield  <neal@g10code.de>
2083
2084         * isascii.c: New file.
2085         * putc_unlocked.c: Likewise.
2086
2087 2002-10-28  Neal H. Walfield  <neal@g10code.de>
2088
2089         * signal.c (caught_fatal_sig): Remove superfluous zero
2090         initializer.
2091         (caught_sigusr1): Likewise.
2092
2093 2002-09-04  Neal H. Walfield  <neal@g10code.de>
2094
2095         * vasprintf.c (vasprintf) [va_copy]: Use va_copy.
2096         [!va_copy && __va_copy]: Use __va_copy.
2097         [!va_copy && !__va_copy]: Only now fall back to using memcpy.
2098
2099 2002-08-21  Werner Koch  <wk@gnupg.org>
2100
2101         * errors.h: Added STATUS_IMPORT_PROBLEM.
2102
2103 2002-08-20  Werner Koch  <wk@gnupg.org>
2104
2105         * vasprintf.c: Hack to handle NULL for %s.
2106
2107 2002-08-09  Werner Koch  <wk@gnupg.org>
2108
2109         * signal.c: New. Taken from GnuPG 1.1.91.
2110
2111 2002-07-23  Werner Koch  <wk@gnupg.org>
2112
2113         * util.h (_IO_cookie_io_functions_t): Fixed typo.  Noted by
2114         Richard Lefebvre.
2115
2116 2002-07-22  Werner Koch  <wk@gnupg.org>
2117
2118         * fseeko.c, ftello.c: New.
2119
2120 2002-06-28  Werner Koch  <wk@gnupg.org>
2121
2122         * maperror.c (map_to_assuan_status): Map more errorcodes to Bad
2123         Certificate.
2124
2125 2002-06-26  Werner Koch  <wk@gnupg.org>
2126
2127         * maperror.c (map_to_assuan_status): Map EOF to No_Data_Available.
2128
2129 2002-06-10  Werner Koch  <wk@gnupg.org>
2130
2131         * errors.h (gnupg_error_token): Add new prototype.
2132         (STATUS_ERROR): New.
2133
2134         * mkerrtok: New.
2135         * Makefile.am: Use it to create the new error token function.
2136
2137 2002-06-04  Werner Koch  <wk@gnupg.org>
2138
2139         * maperror.c (map_to_assuan_status): Map Bad_CA_Certificate.
2140
2141 2002-05-23  Werner Koch  <wk@gnupg.org>
2142
2143         * no-pth.c, Makefile.am: Removed.
2144
2145 2002-05-22  Werner Koch  <wk@gnupg.org>
2146
2147         * mkdtemp.c: Replaced byte by unsigned char because it is no longer
2148         defined in gcrypt.h.
2149
2150 2002-05-21  Werner Koch  <wk@gnupg.org>
2151
2152         * maperror.c (map_gcry_err): Add libgcrypt's new S-expression errors.
2153         (map_ksba_err): Add a few mappings.
2154
2155 2002-05-14  Werner Koch  <wk@gnupg.org>
2156
2157         * gettime.c: New.
2158
2159 2002-05-03  Werner Koch  <wk@gnupg.org>
2160
2161         * errors.h: Added STARUS_EXPSIG and STATUS_EXPKEYSIG.
2162
2163 2002-04-15  Werner Koch  <wk@gnupg.org>
2164
2165         * cryptmiss.c: New.
2166
2167 2002-02-14  Werner Koch  <wk@gnupg.org>
2168
2169         * maperror.c: Add more assuan<->gnupg mappings.
2170
2171 2002-02-12  Werner Koch  <wk@gnupg.org>
2172
2173         * fopencookie.c: Dummy function.
2174
2175         * vasprintf.c: New.  Taken from binutils-2.9.1 and dropped all non
2176         ANSI-C stuff.  Merged with asprintf version.
2177
2178         * no-pth.c: New.
2179
2180 2002-01-23  Werner Koch  <wk@gnupg.org>
2181
2182         * mkdtemp.c: Copied from gnupg-1.0.6c and changed to use libgcrypt.
2183
2184 2002-01-19  Werner Koch  <wk@gnupg.org>
2185
2186         * sysutils.c: New.  This is the misc.c file from gnupg 1.0.6 with
2187         the OpenPGP stuff removed.
2188         * sysutils.h: New.
2189
2190 2002-01-15  Werner Koch  <wk@gnupg.org>
2191
2192         * maperror.c: Add mapping for Not_Trusted.
2193
2194 2002-01-11  Werner Koch  <wk@gnupg.org>
2195
2196         * maperror.c (map_assuan_err): Codes for CRL
2197
2198 2002-01-08  Werner Koch  <wk@gnupg.org>
2199
2200         * util.h (spacep): New.
2201
2202 2002-01-02  Werner Koch  <wk@gnupg.org>
2203
2204         * maperror.c (map_to_assuan_status): New.  Merged from ../agent
2205         and ../sm.
2206
2207 2001-12-20  Werner Koch  <wk@gnupg.org>
2208
2209         * maperror.c (map_gcry_err): Add some mappings.
2210
2211 2001-12-18  Werner Koch  <wk@gnupg.org>
2212
2213         * Makefile.am (AM_CPPFLAGS): Include flags for gcrypt and ksba
2214
2215 2001-12-14  Werner Koch  <wk@gnupg.org>
2216
2217         * util.h (digitp, hexdigitp): New ctype like macros.
2218         (atoi_1,atoi_2,atoi_4,xtoi_1,xtoi_2): New.
2219
2220
2221  Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
2222            2009, 2010 Free Software Foundation, Inc.
2223
2224  This file is free software; as a special exception the author gives
2225  unlimited permission to copy and/or distribute it, with or without
2226  modifications, as long as this notice is preserved.
2227
2228  This file is distributed in the hope that it will be useful, but
2229  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
2230  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.