Chnaged the op-assuan interface.
[gpgme.git] / assuan / ChangeLog
1 2009-02-24  Werner Koch  <wk@g10code.com>
2
3         * assuan-buffer.c (assuan_send_data): Add hack to optionally send
4         a final "CAN".
5
6 2008-11-03  Marcus Brinkmann  <marcus@g10code.com>
7
8         * Makefile.am (INCLUDES): Replace gpgme path with src.
9
10 2008-10-30  Marcus Brinkmann  <marcus@g10code.de>
11
12         * assuan-pipe-connect.c: Fix prototype for _gpgme_io_spawn.  Cast
13         second argument in its invocation to silence gcc warning.
14
15 2008-06-25  Marcus Brinkmann  <marcus@g10code.de>
16
17         * assuan-pipe-connect.c (struct spawn_fd_item_s): Add new members.
18         (HANDLE_TRANSLATION): New macro.
19         (pipe_connect_gpgme): Adjust caller of _gpgme_io_spawn.
20         [HANDLE_TRANSLATION]: Return translated handles.
21
22 2008-02-14  Werner Koch  <wk@g10code.com>
23
24         * assuan-pipe-connect.c (_gpgme_io_spawn): Adjust prototype.
25         (pipe_connect_gpgme, pipe_connect_gpgme): Adjust call.
26
27 2008-01-04  Marcus Brinkmann  <marcus@g10code.de>
28
29         * assuan-pipe-connect.c (_gpgme_io_pipe)
30         (_gpgme_io_spawn) [_ASSUAN_IN_GPGME_BUILD_ASSUAN]: Add prototypes
31         to silence compiler warning.  Reported by Alon Bar-Lev.
32
33 2007-09-25  Werner Koch  <wk@g10code.com>
34
35         * assuan.h (_assuan_gpg_strerror_r, _assuan_gpg_strsource): Add
36         new wrappers.
37
38 2007-09-03  Marcus Brinkmann  <marcus@g10code.de>
39
40         * assuan.h [_ASSUAN_EXT_SYM_PREFIX]: Add missing symbol renames
41         with _ASSUAN_PREFIX.
42
43 2007-08-02  Werner Koch  <wk@g10code.com>
44
45         * assuan-pipe-connect.c (pipe_connect_w32): A bit more debug output.
46         (pipe_connect_w32): Use DETACHED_PROCESS flag.
47         * assuan-logging.c (log_level): New.  Use this to disable logging.
48         (assuan_set_assuan_log_level): New.
49         * assuan.h: Add prototype.
50
51 2007-07-12  Werner Koch  <wk@g10code.com>
52
53         * assuan-handler.c (assuan_get_active_fds): Use get_osfhandle for
54         the data fp.
55         * assuan-socket.c (_assuan_close) [W32]: Use CloseHandle and not close.
56
57         * assuan-io.c (_assuan_simple_write, _assuan_simple_read): Map
58         ERROR_BROKEN_PIPE to EPIPE.
59
60 2007-07-08  Marcus Brinkmann  <marcus@g10code.de>
61
62         * assuan-defs.h (struct assuan_context_s): Have partial peercred
63         structure even if HAVE_W32_SYSTEM, and have full peercred
64         structure only if HAVE_SO_PEERCRED.
65         * assuan-connect.c (assuan_get_peercred) [!HAVE_SO_PEERCRED]: Do
66         not try to set PID, UID and GID.
67
68 2007-07-04  Marcus Brinkmann  <marcus@g10code.de>
69
70         Change _WIN32 to HAVE_W32_SYSTEM for consistency.
71
72         * assuan-defs.h (struct assuan_context_s): Have full peercred
73         structure even if not HAVE_SO_PEERCRED, but not if
74         HAVE_W32_SYSTEM.
75
76 2007-06-18  Werner Koch  <wk@g10code.com>
77
78         * assuan-logging.c (load_libgpg_error, _assuan_gpg_strerror_r) 
79         (_assuan_gpg_strsource): New.
80         * assuan-handler.c (process_request) [W32]: Use these new
81         functions for human understable error codes.
82
83 2007-06-12  Werner Koch  <wk@g10code.com>
84
85         * assuan-io.c (_assuan_simple_read): Hack to allow reading from a
86         socket.
87         (_assuan_simple_write): Likewise.
88
89 2007-06-11  Werner Koch  <wk@g10code.com>
90
91         * assuan-io-pth.c (_assuan_simple_read, _assuan_simple_write): Use
92         pth versions also for W32.
93
94 2007-05-29  Werner Koch  <wk@g10code.com>
95
96         * assuan-io-pth.c: Include sys/socket.h only if available.  Remove
97         double inclusion of sys/wait.h
98         
99         * assuan-pipe-connect.c (build_w32_commandline): Make ARGV const.
100
101         * assuan-pipe-server.c (is_valid_socket) [W32]: Do not define.
102
103         * assuan-socket-server.c [W32]: Include ws2tcpip.h to define
104         socklen_t.
105         * assuan-defs.h (struct assuan_context_s): Define most peercred
106         members only if we can really set them.
107         (_assuan_simple_sendmsg, _assuan_simple_recvmsg) [W32]: Use a
108         different prototype.
109         * assuan.h (assuan_get_peercred) [W32]: Do not define.
110         * assuan-io.c (_assuan_simple_sendmsg, _assuan_simple_recvmsg)
111         [w32]: Use another prototype.
112
113 2007-05-09  Werner Koch  <wk@g10code.com>
114
115         * libassuan.m4: Print found version on success.
116
117 2007-05-01  Werner Koch  <wk@g10code.com>
118
119         * assuan-uds.c (uds_reader): Cast void ptr for arithmetics.
120         Reported by Peter O'Gorman.
121
122 2006-12-03  Marcus Brinkmann  <marcus@g10code.de>
123
124         * assuan-handler.c (assuan_command_parse_fd): Also allow white
125         space after FD.
126
127 2006-12-02  Marcus Brinkmann  <marcus@g10code.de>
128
129         * assuan-uds.c (uds_reader): Return 0 if recvmsg returns 0.
130
131 2006-12-01  Marcus Brinkmann  <marcus@g10code.de>
132
133         * assuan-client.c (assuan_transact): Also translate some of the
134         legacy error codes.
135
136 2006-11-22  Werner Koch  <wk@g10code.com>
137
138         * assuan-handler.c (fun1_cookie_write, fun2_cookie_write): New.
139         (assuan_get_data_fp) [HAVE_FUNOPEN]: Use it.
140
141 2006-11-21  Werner Koch  <wk@g10code.com>
142
143         * Makefile.am (libassuan_pth_a_CFLAGS): New.
144
145         * assuan-pipe-server.c (_assuan_release_context): Free CMDTBL.
146
147 2006-11-14  Werner Koch  <wk@g10code.com>
148
149         * libassuan.m4 (AM_CHECK_LIBASSUAN): New.
150
151         * assuan-handler.c (assuan_register_post_cmd_notify) 
152         (assuan_register_post_cmd_notify): New.
153         * assuan-util.c (assuan_set_io_monitor): New.
154         * assuan-buffer.c (_assuan_read_line): Use it.
155         (_assuan_write_line): Ditto.
156         (_assuan_cookie_write_data): Ditto.
157         (_assuan_cookie_write_flush): Ditto.
158
159 2006-10-18  Werner Koch  <wk@g10code.com>
160
161         * libassuan.m4: Pass "pthread" to the common macro.  Reported by
162         Rex Dieter.
163
164 2006-10-16  Werner Koch  <wk@g10code.com>
165
166         * mkerrors: Map ASSUAN_Not_Confirmed.
167
168 2006-10-10  Werner Koch  <wk@g10code.com>
169
170         * libassuan.m4 (AM_PATH_LIBASSUAN_PTH)
171         (AM_PATH_LIBASSUAN_PTHREAD): Fixed.
172
173         * assuan-buffer.c (assuan_sendfd): Implement a runtime detection
174         of implemented descripotr passing.
175
176         * assuan-uds.c: Take care of USE_DESCRIPTOR_PASSING.
177
178         * assuan-defs.h: Add missing semicolon.
179
180 2006-10-09  Werner Koch  <wk@g10code.com>
181
182         * assuan-handler.c (process_request): Use weak pragma for the sake
183         of old gcc's.  Reported by Alain Guibert.
184
185         * assuan-io.c: Removed Pth support.
186         * assuan-io-pth.c: New. Based on assuan-io.c
187
188 2006-10-06  Werner Koch  <wk@g10code.com>
189
190         * libassuan-config.in: New options --api-version and --thread.
191
192 2006-10-04  Werner Koch  <wk@g10code.com>
193
194         * assuan-client.c (assuan_transact): Need to map old assuan status
195         codes so that for example CANCELED is correctly mapped.
196
197 2006-09-28  Marcus Brinkmann  <marcus@g10code.de>
198
199         * assuan-client.c (assuan_transact): Do not convert error on
200         status line, it is already a gpg-error.  Do convert
201         ASSUAN_Server_Fault.
202
203 2006-09-19  Marcus Brinkmann  <marcus@g10code.de>
204
205         * assuan.h (assuan_init_socket_server_ext)
206         [_ASSUAN_EXT_SYM_PREFIX]: Fix typo in macro.
207
208 2006-09-19  Werner Koch  <wk@g10code.com>
209
210         * assuan-defs.h (putc_unlocked): Add prototype.
211
212         * assuan-socket-server.c (accept_connection): Made LEN a socklen_t.
213
214         * assuan.h: Replaced assuan error code enum by simple defines and
215         made assuan_error_t an int.
216         * mkerrors: Changed parser accordingly.
217
218 2006-09-19  Marcus Brinkmann  <marcus@g10code.de>
219
220         * assuan-pipe-connect.c: Add hacks for Slowaris.
221         * assuan-socket.c: Likewise here.
222
223         * assuan.h (enum): Avoid trailing comma in enumerator list.  Ugh.
224
225         * mkerrors (_assuan_error): Change return type to assuan_error_t.
226         * assuan-buffer.c (_assuan_read_line): Change return type to
227         assuan_error_t.  Map returned value of -1.
228         (_assuan_write_line): Change type of RC to assuan_error_t.
229         * assuan-defs.h (_assuan_read_line, _assuan_error): Likewise for
230         prototypes.
231
232         * assuan-defs.h (unsetenv): Define correctly.
233
234 2006-09-14  Werner Koch  <wk@g10code.com>
235
236         * assuan-io.c (_assuan_waitpid): New.  Changed all waitpid calls
237         to this.
238
239         * assuan.h (_ASSUAN_DEPRECATED): New internal macro.
240         (assuan_pipe_connect2): Declare deprecated.
241         (assuan_init_connected_socket_server): Declare deprecated.
242
243         * assuan-connect.c (assuan_get_peercred): New.
244         * assuan-socket-server.c (accept_connection_bottom): Save uid and gid.
245
246 2006-09-13  Werner Koch  <wk@g10code.com>
247
248         * assuan-client.c (assuan_transact): Need to map the error code.
249         * mkerrors: Need to map ASSUAN_No_Secret_Key.
250
251         * assuan-pipe-server.c (is_valid_socket): New.
252         (assuan_init_pipe_server): Use UDS with the environmet variable is
253         set and a valid descriptor is given.  Ignore FILEDES in this case.
254
255         * assuan-socket-server.c (assuan_init_socket_server_ext): New.
256         Changed other init fucntions to make use of it.
257
258         * assuan-handler.c (assuan_command_parse_fd): Allow for lowercase
259         "fd".
260         (std_handler_reset): Close pending fds.
261         * assuan-uds.c (uds_receivefd): Fixed.
262         (_assuan_uds_close_fds): New.
263
264         * assuan-socket-connect.c (assuan_socket_connect_ext): New. Takes
265         all code of assuan_socket_connect plus an option to use sendmsg.
266         * assuan-pipe-connect.c (assuan_pipe_connect_ext): New arg FLAGS.
267
268 2006-09-12  Werner Koch  <wk@g10code.com>
269
270         * assuan-buffer.c (_assuan_write_line): Also log the prefix.
271
272         * assuan-defs.h (DIM, DIMof): New.
273
274         * assuan-domain-server.c: Removed.
275         * assuan-domain-connect.c: Renamed to ..
276         * assuan-uds.c: this.
277         (domain_reader, domain_writer, domain_sendfd, domain_receivefd) 
278         (assuan_domain_connect, _assuan_domain_init): Removed. 
279         (uds_reader, uds_writer, uds_sendfd, uds_receivefd) 
280         (_assuan_init_uds_io): New.
281         (_assuan_uds_deinit): New.
282
283         * assuan-io.c (_assuan_simple_sendmsg, _assuan_simple_recvmsg): New.
284         (my_pth_fdmode, my_pth_select): New.
285
286 2006-09-11  Werner Koch  <wk@g10code.com>
287
288         * assuan-pipe-server.c (assuan_init_pipe_server): Allow for
289         FILEDES to be NULL and try to start as a socketpair server in this
290         case.
291
292         * assuan-pipe-connect.c (assuan_pipe_connect2): Split up into two
293         functions (unix and w32) for clarity.
294         (pipe_connect_unix): This is the new fucntion.  Add USE_CMSG flag.
295         (pipe_connect_w32): Ditto.
296         (initial_handshake): Factored out code.
297         (socketpair_connect): New.
298         (assuan_pipe_connect_ext): New.
299         (do_finish): Handle case if outbound and inbound fd are the same.
300         This is to support socketpairs.
301
302 2006-09-10  Werner Koch  <wk@g10code.com>
303
304         * assuan-util.c (_assuan_log_print_buffer)
305         (_assuan_log_sanitized_string,assuan_set_log_stream): Moved to ..
306         * assuan-logging.c: .. here.
307         (_assuan_log_print_buffer): Only print the leading bytes in hex
308         log mode unless the new env variable ASSUAN_FULL_LOGGING has been
309         set.
310         (_assuan_set_default_log_stream): Test this env variable.
311
312 2006-09-06  Werner Koch  <wk@g10code.com>
313
314         * assuan.h (_ASSUAN_ONLY_GPG_ERRORS): New.
315
316         * assuan-handler.c (dispatch_command): Use Syntax_Error instead of
317         Invalid_Command.
318
319         * assuan-domain-connect.c: Changed alloc malloc/free/realloc to
320         xtrymalloc et al.
321         (read_int, write_int): Make args void pointers.
322         (domain_receivefd): Take care of realloc shrinking failure.
323
324         * assuan-buffer.c (_assuan_read_line, _assuan_write_line)
325         (assuan_write_line, _assuan_cookie_write_data)
326         (_assuan_cookie_write_flush): Print the inbound fd instead of the
327         address of the context when logging I/0.  This makes it more
328         readable.
329
330 2006-09-05  Werner Koch  <wk@g10code.com>
331
332         * assuan-defs.h (err_code, err_is_eof): New.
333
334         * mkerrors (_assuan_error): New.  Wrapped all error code
335         assignments in a call to this.
336         (assuan_strerror): Map gpg-style error codes back. Also print a
337         string for the old EOF code.
338         (assuan_set_assuan_err_source): New.
339
340         * assuan-logging.c (_assuan_log_printf): Do not change ERRNO and
341         print the pid.
342
343         * assuan-domain-connect.c (domain_reader): Replaced plain printf
344         by assuan_log function.
345
346 2005-10-24  Werner Koch  <wk@g10code.com>
347
348         * putc_unlocked.c, memrchr.c, isascii.c, funopen.c: Changed
349         distribution terms to LGPL.  This are small and trivial files so
350         there are no obstacles of doing so.
351         * assuan-socket.c: Likewise, the stated GPL was not intended.
352
353 2005-10-08  Marcus Brinkmann  <marcus@g10code.de>
354
355         * assuan-defs.h (setenv, unsetenv, clearenv) [!HAVE_SETENV]:
356         Define to _assuan_*.
357         * setenv.c: Include "assuan-defs.h".
358         (__add_to_environ): Make static.
359
360 2005-10-07  Marcus Brinkmann  <marcus@g10code.de>
361
362         * assuan-defs.h (memrchr) [!HAVE_MEMRCHR]: New prototype.
363         (stpcpy) [!HAVE_STPCPY]: Likewise.
364         * stpcpy.c: New LGPL'ed file from the GNU C Library.
365         * setenv.c: New file.
366         * assuan-domain-connect.c (read_int): New function.
367         (write_int): New function.
368         (domain_reader): Use read_int.
369         (domain_sendfd): Use write_int.
370
371 2005-10-01  Marcus Brinkmann  <marcus@g10code.de>
372
373         * assuan.h (assuan_pipe_connect, assuan_pipe_connect2): Make type
374         of ARGV parameter const in prototype.
375         * assuan-pipe-connect.c (assuan_pipe_connect,
376         assuan_pipe_connect2): Likewise in declaration.
377         (assuan_pipe_connect2): Add braindead cast to make execv happy.
378
379         * assuan-client.c (assuan_transact): Change LINE, S and D from
380         unsigned char * to char * to silence gcc warning.
381         * assuan-util.c (_assuan_log_sanitized_string): Add explicit cast
382         to silence gcc warning.
383         * assuan-inquire.c (assuan_inquire): Likewise.
384
385 2005-08-19  Werner Koch  <wk@g10code.com>
386
387         * funopen.c, assuan-socket.c: Copied from libassuan CVS.
388         * assuan-pipe-connect.c (assuan_pipe_connect2): Add missing
389         declaration of PID.
390
391 2005-08-09  Werner Koch  <wk@g10code.com>
392
393         * README.1st: Adjusted to cope with changes done in upstream Assuan.
394
395         Merged changes for W32 support from libassuan.
396         
397         * assuan.h [_ASSUAN_EXT_SYM_PREFIX]: New.
398         * assuan-io.c [_ASSUAN_NO_PTH]: New.
399         * assuan-pipe-connect.c (fix_signals) [_ASSUAN_NO_FIXED_SIGNALS]: New.
400         (assuan_pipe_connect2) [_ASSUAN_USE_DOUBLE_FORK]: Use double fork.
401         (fix_signals) [_ASSUAN_USE_DOUBLE_FORK]: Do not wait..
402         * assuan-logging.c, assuan-io.c: Include config.h
403         Replaced all usages of _WIN32 by the new HAVE_W32_SYSTEM because
404         there is nothing winning in this API.
405         * assuan-pipe-connect.c (assuan_pipe_connect2) [_WIN32]: Return
406         error Not Imlemented.
407         * assuan-logging.c (_assuan_w32_strerror): New. 
408         * assuan-defs.h (w32_strerror): new.
409         * assuan-pipe-connect.c (assuan_pipe_connect2, fix_signals):
410         Factored signal code out to new function.
411         (build_w32_commandline, create_inheritable_pipe): New.  Taken
412         from gnupg 1.9.
413         (assuan_pipe_connect2) [W32]: Implemented for W32.
414         * assuan-pipe-server.c (assuan_init_pipe_server) [W32]: Map file
415         descriptors using _get_osfhandle.
416         * assuan-socket-connect.c (assuan_socket_connect) [W32]: Allow for
417         a drive letter in the path.
418         * assuan-client.c (assuan_transact): Handle empty and comment
419         commands correctly.
420         * assuan-util.c (_assuan_calloc): Avoid integer overflow.
421         * assuan-util.c (assuan_set_flag, assuan_get_flag): New.
422         * assuan-defs.h (struct assuan_context_s): New field flags.
423         * assuan.h (assuan_flag_t): New with one flag value
424         ASSUAN_NO_WAITPID for now.
425         * assuan-pipe-connect.c (do_finish): Take care of the no_waitpid
426         flag.
427         * mkerrors: Include config.h into assuan-errors.c.  This is
428         required so that assuan.h knows about the W32 macro.
429
430 2005-08-09 Timo Schulz  <twoaday@g10code.com> (ported from libassuan by wk)
431         
432         * assuan-io.c (_assuan_simple_read, _assuan_simple_write): W32
433         support.
434         * assuan-socket.c (_assuan_close): New.
435         (_assuan_sock_new): New.
436         (_assuan_sock_bind): New.
437
438 2005-03-22  Werner Koch  <wk@g10code.com>
439
440         * assuan-defs.h (struct assuan_io): Renamed elements READ and
441         WRITE to READFNC and WRITEFNC to avoid problems with read defined
442         as macro.  Changed callers.  Noted by Ville Skytt√§.
443
444 2004-12-16  Marcus Brinkmann  <marcus@g10code.de>
445
446         * assuan-pipe-connect.c (do_finish): Do not wait for child to finish.
447         (assuan_pipe_connect): Use double-fork approach.
448         * assuan-connect.c (assuan_disconnect): Do not write BYE to the
449         status line.
450
451 2004-12-07  Marcus Brinkmann  <marcus@g10code.de>
452
453         * README.1st: Add copyright notice.
454
455 2004-06-23  Marcus Brinkmann  <marcus@g10code.de>
456
457         * assuan-domain-connect.c [HAVE_SYS_UIO_H]: Include <sys/uio.h>.
458
459         * assuan-handler.c: Include <errno.h>.
460
461 2004-06-08  Marcus Brinkmann  <marcus@g10code.de>
462
463         * assuan-buffer.c (assuan_write_line): If the line is longer than
464         the maximum line length, bail out early.
465
466 2004-04-21  Werner Koch  <wk@gnupg.org>
467
468         * assuan-socket-server.c (accept_connection_bottom): Save the pid
469         of the peer if it is available.
470         * assuan-socket-connect.c (assuan_socket_connect): Do not save the
471         dummy SERVED_PID arg.
472         * assuan-pipe-connect.c (do_finish): Don't wait if the pid is 0.
473         (assuan_pipe_connect2): Store the parents pid in the environment
474         of the child.
475         * assuan-pipe-server.c (assuan_init_pipe_server): Initialize the
476         peer's pid from the environment.
477         * assuan-connect.c (assuan_get_pid): Do not return 0 as a PID.
478
479 2004-04-19  Werner Koch  <wk@gnupg.org>
480
481         * assuan-socket-server.c, assuan-socket-connect.c: Includes
482         sys/types.h.  Reported by Michael Nottebrock.
483         * assuan-domain-connect.c: Ditto.
484
485 2004-04-13  Werner Koch  <wk@gnupg.org>
486
487         * assuan-util.c (_assuan_log_print_buffer): Relaxed quoting.
488         (_assuan_log_sanitized_string): Ditto.
489
490 2004-03-14  Werner Koch  <wk@gnupg.org>
491
492         * assuan-handler.c: Include <errno.h>.  Reported by Bernd Kuhls.
493
494 2004-02-18  Werner Koch  <wk@gnupg.org>
495
496         * libassuan-config.in: Ignore setting of --prefix.
497
498         * assuan-handler.c (assuan_get_data_fp): Fail with ENOSYS if we
499         can't implement this.
500
501 2004-02-15  Werner Koch  <wk@gnupg.org>
502
503         * memrchr.c (memrchr): Fixed implementation. Taken from gpgme.
504
505 2004-02-13  Werner Koch  <wk@gnupg.org>
506
507         * assuan-domain-connect.c: Removed the unneeded alloca.h.
508
509 2004-01-24  Werner Koch  <wk@gnupg.org>
510
511         * assuan-pipe-connect.c (assuan_pipe_connect2): New as an
512         extension of assuan_pipe_connect. Made the latter call this one.
513
514 2004-01-14  Werner Koch  <wk@gnupg.org>
515
516         * assuan-buffer.c (_assuan_cookie_write_data): Return the
517         requested size to indicate successful operation.  Fixes a spurious
518         bug we previously fixed using fflush().
519
520 2003-12-22  Werner Koch  <wk@gnupg.org>
521
522         * assuan.h (ASSUAN_Locale_Problem): Added.
523         * assuan-errors.c (assuan_strerror): Ditto.
524
525 2003-12-18  Werner Koch  <wk@gnupg.org>
526
527         * assuan.h (AssuanCommand): Clarified that these are now
528         deprecated and actually useless.
529         (assuan_error_t): Clarified and added ASSUAN_USER_ERROR_FIRST,
530         ASSUAN_USER_ERROR_LAST.
531
532 2003-12-16  Werner Koch  <wk@gnupg.org>
533
534         * assuan-buffer.c: Changed formatting of the debug output prefix.
535         * assuan-util.c (assuan_set_log_stream): Set global log stream if
536         it has not been done yet.
537         * assuan-logging.c (_assuan_set_default_log_stream): New.
538         (assuan_set_assuan_log_prefix): New.
539
540 2003-12-11  Werner Koch  <wk@gnupg.org>
541
542         * funopen.c (_assuan_funopen): Renamed from funopen, to keep the
543         name space clean and avoid duplicate definitions if another
544         library uses the same replacement.
545         * assuan-defs.h (funopen): Renamed prototype and add a macro.
546
547 2003-12-08  Werner Koch  <wk@gnupg.org>
548
549         * TODO: Removed.
550
551 2003-11-12  Werner Koch  <wk@gnupg.org>
552
553         * assuan-handler.c (process_request): Kludge to print better error
554         messages for gpg-error enabled programs.
555
556 2003-11-06  Werner Koch  <wk@gnupg.org>
557
558         * assuan.h (assuan_context_t): New.  Should be used in favor of
559         ASSUAN_CONTEXT.
560         (assuan_error_t): New. To be used instead of AssuanError.
561
562 2003-11-11  Moritz Schulte  <mo@g10code.com>
563
564         * assuan-socket-connect.c (assuan_socket_connect): Fix computation
565         of socket address length.
566
567 2003-08-13  Werner Koch  <wk@gnupg.org>
568
569         * assuan-inquire.c (assuan_inquire): Increase length of cmdbuf to
570         the Assuan limit.
571
572 2003-06-24  Werner Koch  <wk@gnupg.org>
573
574         * mkerrors: Kludge to print libgpg-error values in an easier
575         readable way.
576
577 2003-04-29  Werner Koch  <wk@gnupg.org>
578
579         * libassuan.m4: New. Based on libgrypt.m4.
580         * Makefile.am (m4data_DATA): New.
581
582         * assuan.h (AssuanCommand): Removed.
583
584         * assuan-handler.c: Remove the cmd_id element,
585         (assuan_register_command): Likewise.  Note that semantics changed.
586         (_assuan_register_std_commands): Adjusted.
587
588 2003-02-22  Neal H. Walfield  <neal@g10code.de>
589
590         * Makefile.am (bin_SCRIPTS): Renamed from bin_PROGRAMS.
591
592 2003-02-18  Neal H. Walfield  <neal@g10code.de>
593
594         * Makefile.am (libassuan_a_LIBADD): New variable.
595         * funopen.c: Move from ../common.
596         * isascii.c: Likewise.
597         * memrchr.c: Likewise.
598         * putc_unlocked.c: Likewise.
599         
600 2003-02-18  Neal H. Walfield  <neal@g10code.de>
601
602         * assuan-handler.c (_IO_cookie_io_functions_t): Remove.
603         (cookie_io_functions_t): Remove.
604         (fopencookie): Remove prototype.
605         (assuan_get_data_fp): Use funopen, not fopencookie.
606
607 2003-02-18  Neal H. Walfield  <neal@g10code.de>
608
609         * libassuan-config.in: New file.
610         * Makefile.am (bin_PROGRAMS): New variable.
611
612 2003-02-17  Neal H. Walfield  <neal@g10code.de>
613
614         * .cvsignore: New file.
615
616 2003-02-17  Neal H. Walfield  <neal@g10code.de>
617
618         * Makefile.am (lib_LIBRARIES): Use this instead of . . .
619         (noinst_LIBRARIES): . . . this.
620         (include_HEADERS): New variable.
621         (libassuan_a_SOURCES): Remove assuan.h, add assuan-logging.c.
622
623         * assuan.h (assuan_set_assuan_log_stream): New prototype.
624         (assuan_get_assuan_log_stream): Likewise.
625         (assuan_get_assuan_log_prefix): Likewise.
626         * assuan-logging.c: New file.
627
628         * assuan-buffer.c [HAVE_JNLIB_LOGGIN]: Do not include
629         "../jnlib/logging.h".
630         (my_log_prefix): Remove function.
631         (_assuan_read_line): Use assuan_get_assuan_log_prefix in lieu of
632         my_log_prefix.
633         (assuan_write_line): Likewise.
634         (_assuan_cookie_write_data): Likewise.
635         (_assuan_cookie_write_flush): Likewise.
636         * assuan-domain-connect.c (LOGERROR, LOGERROR1, LOGERROR2,
637         LOGERRORX):  Remove.
638         (LOG): New macro.
639         (domain_reader): Use it.
640         (domain_writer): Likewise.
641         (domain_sendfd): Likewise.
642         (domain_receivefd): Likewise.
643         (_assuan_domain_init): Likewise.
644         (assuan_domain_connect): Likewise.
645         * assuan-pipe-connect.c [HAVE_JNLIB_LOGGIN]: Do not include
646         "../jnlib/logging.h".
647         (LOGERROR, LOGERROR1, LOGERROR2, LOGERRORX):  Remove.
648         (LOG): New macro.
649         (assuan_pipe_connect): Use it.
650         * assuan-socket-connect.c [HAVE_JNLIB_LOGGIN]: Do not include
651         "../jnlib/logging.h".
652         (LOGERROR, LOGERROR1, LOGERROR2, LOGERRORX):  Remove.
653         (LOG): New macro.
654         (assuan_socket_connect): Use it.
655         (socket_reader): Remove dead code.
656         (socket_writer): Likewise.
657         * assuan-util.c [HAVE_JNLIB_LOGGIN]: Do not include
658         "../jnlib/logging.h".
659         (_assuan_log_sanitized_string): Use assuan_get_assuan_log_stream,
660         not jnlib.
661
662 2002-11-24  Neal H. Walfield  <neal@g10code.de>
663
664         * assuan.h (assuan_command_parse_fd): New prototype.
665         * assuan-handler.c (assuan_command_parse_fd): Rename from
666         parse_cmd_input_output.  Export.
667         (std_handler_input): Update to use assuan_command_parse_fd.
668         (std_handler_output): Likewise.
669
670 2002-11-24  Neal H. Walfield  <neal@g10code.de>
671
672         * assuan.h (assuan_sendfd): New prototype.
673         (assuan_receivefd): New prototype.
674         * assuan-buffer.c (assuan_sendfd): New function.
675         (assuan_receivefd): New function.
676         * assuan-handler.c (parse_cmd_input_output): Recognize incoming
677         file descriptors and act appropriately.
678         * assuan-defs.h (struct assuan_io): Add fields sendfd and
679         receivefd.
680         (struct assuan_context_s): Add fields pendingfds and
681         pendingfdscount.
682         * assuan-pipe-server.c (_assuan_new_context): Update IO to reflect
683         new features.
684         * assuan-domain-connect.c (do_deinit): Cleanup any unreceived file
685         descriptors.
686         (domain_reader): Receive file descriptors.
687         (domain_sendfd): New function.
688         (domain_receivefd): New function.
689         (_assuan_domain_init): Update initialization code to reflect new
690         features.
691
692 2002-11-24  Neal H. Walfield  <neal@g10code.de>
693
694         * assuan-domain-connect.c (do_finish): Remove.
695         (_assuan_domain_init): Use default handlers where possible.
696         Add an assert and update comments.
697         * assuan-domain-server.c (accept_connection): Remove.
698         (assuan_init_domain_server): Use default handlers where possible.
699         Put the server in pipe mode: it can only be used by a single
700         client.
701
702 2002-11-24  Neal H. Walfield  <neal@g10code.de>
703
704         * assuan.h: Add prototype for assuan_domain_connect and
705         assuan_init_domain_server.
706         * assuan-defs.h: Include <unistd.h>.
707         Add prototype for _assuan_domain_init.
708         * assuan-domain-connect.c: New file.
709         * assuan-domain-server.c: New file.
710         * Makefile.am (libassuan_a_SOURCES): Add assuan-domain-connect.c
711         and assuan-domain-server.c
712
713 2002-11-23  Neal H. Walfield  <neal@g10code.de>
714
715         * Makefile.am (libassuan_a_SOURCES): Add assuan-io.c.
716         * assuan-io.c: Restore.
717         (_assuan_simple_read): Rename from _assuan_read.
718         (_assuan_simple_write): Rename from _assuan_write.
719         * assuan-defs.h (_assuan_simple_read): New prototype.
720         (_assuan_simple_write): Likewise.
721         * assuan-pipe-server.c (pipe_reader): Remove.
722         (pipe_writer): Remove.
723         (_assuan_new_context): Initialize IO is with _assuan_simple_read
724         and _assuan_simple_write.
725         * assuan-socket-connect.c (socket_reader): Remove.
726         (socket_writer): Remove.
727         (assuan_socket_connect): Initialize IO is with _assuan_simple_read
728         and _assuan_simple_write.
729         * assuan-socket-server.c (io): New local variable.
730         (assuan_init_socket_server): Initialize CTX->io.
731         (assuan_init_connected_socket_server): Likewise.
732
733 2002-11-23  Neal H. Walfield  <neal@g10code.de>
734
735         * assuan-buffer.c (readline): Use memrchr.
736         (_assuan_read_line): Rewritten to use the string functions.
737
738 2002-11-20  Neal H. Walfield  <neal@g10code.de>
739
740         * assuan-socket-connect.c (assuan_socket_connect): Pass PF_LOCAL
741         to socket(), not AF_UNIX: it expects a PF_* macro and the former
742         is more portable.
743         (assuan_socket_connect): Use AF_LOCAL, not AF_UNIX which is more
744         POSIXy.
745
746 2002-11-20  Neal H. Walfield  <neal@g10code.de>
747
748         * assuan-defs.h (struct assuan_io): New structure.
749         (struct assuan_context_s): New field, io.
750         (_assuan_read): Depreciated.
751         (_assuan_write): Likewise.
752         * assuan-pipe-server.c: Include <unistd.h>.
753         (pipe_reader): New function.
754         (pipe_writer): Likewise.
755         (_assuan_new_context.IO): New local static.  Set to pipe_reader
756         and pipe_writer.  Use it to initialize new context.
757         * assuan-socket-connect.c (socket_reader): New function.
758         (socket_writer): New function.
759         (assuan_socket_connect.IO): New local static.  Set to socket_reader
760         and socket_writer.  Use it to initialize new context.
761         * assuan-buffer.c (writen): Take an ASSUAN_CONTEXT rather than a
762         file descriptor.  Do not use _assuan_write but the write method
763         in the supplied context.
764         (readline): Likewise for _assuan_read.
765         (assuan_write_line): When calling writen, pass CTX; not the file
766         descriptor directly.
767         (_assuan_cookie_write_data): Likewise.
768         (_assuan_cookie_write_flush): Likewise.
769         (_assuan_read_line): Likewise for readline.
770         * Makefile.am (libassuan_a_SOURCES): Remove assuan-io.c.
771         * assuan-io.c: Removed.
772
773 2002-11-10  Werner Koch  <wk@gnupg.org>
774
775         * assuan-pipe-connect.c (assuan_pipe_connect): Changed the order
776         of the dups to handle cases where we have already used fd 2 for
777         other things.
778
779 2002-10-31  Neal H. Walfield  <neal@g10code.de>
780
781         * assuan-util.c: Include <ctype.h>.
782         (_assuan_log_print_buffer): Elide the magic numbers preferring the
783         standard isfoo functions.  Use putc_unlocked where possible.
784         (_assuan_log_sanitized_string): Rewrite to use putc_unlocked and
785         the isfoo functions.
786
787 2002-09-05  Neal H. Walfield  <neal@g10code.de>
788
789         * assuan-defs.h (_assuan_read_wrapper): Depreciated.
790         * assuan-util.c (_assuan_read_wrapper): Removed.
791         * assuan-defs.h (_assuan_write_wrapper): Depreciated.
792         * assuan-util.c (_assuan_write_wrapper): Removed.
793         * assuan.h (assuan_set_io_fun): Depreciated.
794         * assuan-util.c (assuan_set_io_fun): Removed.
795
796         * assuan-defs.h (_assuan_read): New function.
797         (_assuan_write): Likewise.
798         * assuan-io.c: New file.
799
800         * assuan-buffer.c (writen): Use _assuan_write rather than doing
801         the work here.
802         (readline): Likewise for _assuan_read.
803
804         * Makefile.am (libassuan_a_SOURCES): Add assuan-io.c.
805
806 2002-08-16  Werner Koch  <wk@gnupg.org>
807
808         * assuan.h: Renamed Bad_Certificate_Path to Bad_Certificate_Chain.
809
810 2002-07-30  Werner Koch  <wk@gnupg.org>
811
812         Changed the license from GPL to LGPL.
813
814 2002-07-23  Werner Koch  <wk@gnupg.org>
815
816         * assuan-handler.c (_IO_cookie_io_functions_t): Define it here if
817         it does not exists.
818
819 2002-06-27  Werner Koch  <wk@gnupg.org>
820
821         * assuan-pipe-connect.c (assuan_pipe_connect): No special handling
822         for the log_fd and stderr.  Connect stderr to /dev/null if it
823         should not be retained.
824
825 2002-06-26  Werner Koch  <wk@gnupg.org>
826
827         * assuan-buffer.c (assuan_write_line): Make sure we never
828         accidently print an extra LF.
829
830 2002-05-23  Werner Koch  <wk@gnupg.org>
831
832         * assuan-util.c (assuan_set_io_func): New.
833         * assuan-buffer.c (writen, readline): Use the new functions
834         instead of pth.
835         * assuan-socket-server.c (accept_connection): Don't use the
836         pth_accept - using the assuan included accept code would be a bad
837         idea within Pth so we don't need a replacement function.
838
839 2002-05-22  Werner Koch  <wk@gnupg.org>
840
841         * assuan-socket-server.c (assuan_init_connected_socket_server): New.
842         (accept_connection): Factored most code out to..
843         (accept_connection_bottom): .. new function.
844
845 2002-04-04  Werner Koch  <wk@gnupg.org>
846
847         * assuan-buffer.c (my_log_prefix): New.  Use it for all i/o debug
848         output.
849
850 2002-03-06  Werner Koch  <wk@gnupg.org>
851
852         * assuan-client.c (_assuan_read_from_server): Detect END.
853         (assuan_transact): Pass it to the data callback.
854
855 2002-02-27  Werner Koch  <wk@gnupg.org>
856
857         * assuan-client.c (assuan_transact): Add 2 more arguments to
858         support status lines. Passing NULL yields the old behaviour.
859
860         * assuan-handler.c (process_request): Flush data lines send
861         without using the data fp.
862
863 2002-02-14  Werner Koch  <wk@gnupg.org>
864
865         * assuan-inquire.c (assuan_inquire): Check for a cancel command
866         and return ASSUAN_Canceled.  Allow for non-data inquiry.
867
868         * assuan.h: Add a few token specific error codes.
869
870 2002-02-13  Werner Koch  <wk@gnupg.org>
871
872         * assuan-defs.h (assuan_context_s): New var CLIENT_PID.
873         * assuan-pipe-server.c (_assuan_new_context): set default value.
874         * assuan-socket-server.c (accept_connection): get the actual pid.
875
876 2002-02-12  Werner Koch  <wk@gnupg.org>
877
878         * assuan-buffer.c (writen,readline) [USE_GNU_PT]: Use pth_read/write.
879         * assuan-socket-server.c (accept_connection) [USE_GNU_PTH]: Ditto.
880
881 2002-02-01  Marcus Brinkmann  <marcus@g10code.de>
882
883         * Makefile.am (MOSTLYCLEANFILES): New variable.
884
885 2002-01-23  Werner Koch  <wk@gnupg.org>
886
887         * assuan-socket-connect.c (LOGERRORX): and removed typo.
888
889 2002-01-22  Marcus Brinkmann  <marcus@g10code.de>
890
891         * assuan-socket-connect.c (LOGERRORX): Reverse arguments to fputs.
892
893 2002-01-21  Werner Koch  <wk@gnupg.org>
894
895         * assuan-connect.c: Move all except assuan_get_pid to...
896         * assuan-pipe-connect.c: this.
897         (assuan_pipe_disconnect): Removed.
898         (do_finish, do_deinit): New 
899         (assuan_pipe_connect): and set them into the context.
900         * assuan-socket-connect.c: New.
901         
902         * assuan-util.c (_assuan_log_sanitized_string): New.
903
904         * assuan-pipe-server.c (assuan_init_pipe_server): Factored most
905         code out to ...
906         (_assuan_new_context): new func.
907         (_assuan_release_context): New
908         * assuan-connect.c (assuan_pipe_connect): Use the new functions.
909
910 2002-01-20  Werner Koch  <wk@gnupg.org>
911
912         * assuan.h: Added Invalid Option error code.
913
914         * assuan-handler.c (std_handler_option): New.
915         (std_cmd_tbl): Add OPTION as standard command.
916         (assuan_register_option_handler): New.
917         (dispatch_command): Use case insensitive matching as a fallback.
918         (my_strcasecmp): New.
919
920 2002-01-19  Werner Koch  <wk@gnupg.org>
921
922         * assuan-buffer.c (_assuan_read_line): Add output logging.
923         (assuan_write_line): Ditto.
924         (_assuan_cookie_write_data): Ditto.
925         (_assuan_cookie_write_flush): Ditto.
926         * assuan-util.c (_assuan_log_print_buffer): New.
927         (assuan_set_log_stream): New.
928         (assuan_begin_confidential): New.
929         (assuan_end_confidential): New.
930
931         * assuan-defs.h: Add a few handler variables.
932         * assuan-pipe-server.c (assuan_deinit_pipe_server): Removed.
933         (deinit_pipe_server): New.
934         (assuan_deinit_server): New.  Changed all callers to use this.
935         * assuan-listen.c (assuan_accept): Use the accept handler.
936         * assuan-handler.c (process_request): Use the close Handler.
937         * assuan-socket-server.c: New.
938
939 2002-01-14  Werner Koch  <wk@gnupg.org>
940
941         * assuan-client.c (_assuan_read_from_server): Skip spaces after
942         the keyword.
943
944 2002-01-03  Werner Koch  <wk@gnupg.org>
945
946         * assuan-handler.c (assuan_set_okay_line): New.
947         (process_request): And use it here.
948
949 2002-01-02  Werner Koch  <wk@gnupg.org>
950
951         * assuan-inquire.c (init_membuf,put_membuf,get_membuf): Apply a
952         hidden 0 behind the buffer so that the buffer can be used as a
953         string in certain contexts.
954
955 2001-12-14  Marcus Brinkmann  <marcus@g10code.de>
956
957         * assuan-connect.c (assuan_pipe_connect): New argument
958         FD_CHILD_LIST.  Don't close those fds.
959         * assuan.h: Likewise for prototype.
960
961 2001-12-14  Werner Koch  <wk@gnupg.org>
962
963         * assuan-listen.c (assuan_close_input_fd): New.
964         (assuan_close_output_fd): New.
965         * assuan-handler.c (std_handler_reset): Always close them after a
966         reset command.
967         (std_handler_bye): Likewise.
968
969 2001-12-14  Marcus Brinkmann  <marcus@g10code.de>
970
971         * assuan-buffer.c (_assuan_read_line): New variable ATTICLEN, use
972         it to save the length of the attic line.
973         Rediddle the code a bit to make it more clear what happens.
974
975 2001-12-14  Marcus Brinkmann  <marcus@g10code.de>
976
977         * assuan-defs.h (LINELENGTH): Define as ASSUAN_LINELENGTH.
978         assuan.h: Define ASSUAN_LINELENGTH.
979
980 2001-12-13  Marcus Brinkmann  <marcus@g10code.de>
981
982         * assuan-buffer.c (assuan_read_line): Fix order of execution to
983         get correct return values.
984
985 2001-12-13  Werner Koch  <wk@gnupg.org>
986
987         * assuan-handler.c (assuan_get_active_fds): Fixed silly bug,
988         pretty obvious that nobody ever tested this function.
989
990 2001-12-12  Werner Koch  <wk@gnupg.org>
991
992         * assuan-connect.c (assuan_pipe_connect): Implemented the inital
993         handshake.
994         * assuan-client.c (read_from_server): Renamed to  
995         (_assuan_read_from_server): this and made external.
996
997         * assuan-listen.c (assuan_set_hello_line): New.
998         (assuan_accept): Use a custom hello line is available.
999
1000         * assuan-buffer.c (assuan_read_line): New.
1001         (assuan_pending_line): New.
1002         (_assuan_write_line): Renamed to ..
1003         (assuan_write_line): this, made public and changed all callers.
1004
1005 2001-12-04  Werner Koch  <wk@gnupg.org>
1006
1007         * assuan-connect.c (assuan_pipe_connect): Add more error reporting.
1008         * assuan-client.c: New.
1009
1010         * assuan-inquire.c: New.
1011         * assuan-handler.c (process_request): Check for nested invocations.
1012
1013 2001-11-27  Werner Koch  <wk@gnupg.org>
1014
1015         * assuan-handler.c (assuan_register_input_notify): New.
1016         (assuan_register_output_notify): New.
1017
1018 2001-11-26  Werner Koch  <wk@gnupg.org>
1019
1020         * assuan.h: Added more status codes.
1021
1022 2001-11-25  Werner Koch  <wk@gnupg.org>
1023
1024         * assuan-handler.c (assuan_register_bye_notify)
1025         (assuan_register_reset_notify)
1026         (assuan_register_cancel_notify): New and call them from the
1027         standard handlers.
1028         (assuan_process): Moved bulk of function to ..
1029         (process_request): .. new.
1030         (assuan_process_next): One shot version of above.
1031         (assuan_get_active_fds): New.
1032
1033 2001-11-24  Werner Koch  <wk@gnupg.org>
1034
1035         * assuan-connect.c (assuan_get_pid): New.
1036
1037         * assuan-buffer.c (_assuan_read_line): Deal with reads of more
1038         than a line.
1039         * assuan-defs.h: Add space in the context for this.
1040
1041         
1042  Copyright 2001, 2002, 2006 Free Software Foundation, Inc.
1043
1044  This file is free software; as a special exception the author gives
1045  unlimited permission to copy and/or distribute it, with or without
1046  modifications, as long as this notice is preserved.
1047
1048  This file is distributed in the hope that it will be useful, but
1049  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1050  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.