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