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