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