12011-12-01 Werner Koch <wk@g10code.com> 2 3 NB: ChangeLog files are no longer manually maintained. Starting 4 on December 1st, 2011 we put change information only in the GIT 5 commit log, and generate a top-level ChangeLog file from logs at 6 "make dist". See doc/HACKING for details. 7 82011-08-10 Werner Koch <wk@g10code.com> 9 10 * assuan.h.in (ASSUAN_FORCE_CLOSE): New. 11 * assuan-defs.h (assuan_context_s): Add flags.FORCE_CLOSE. 12 * context.c (assuan_set_flag, assuan_get_flag): Set/get the flag. 13 * assuan-handler.c (assuan_process_done): Close connection if 14 requested. 15 162011-04-06 Werner Koch <wk@g10code.com> 17 18 * libassuan-config.in: Add option --host. 19 * libassuan.m4: Remove cruft. Add check for correct HOST. 20 212011-03-30 Werner Koch <wk@g10code.com> 22 23 * sysutils.c (_assuan_sysutils_blurb): Add version string. 24 252011-03-09 Werner Koch <wk@g10code.com> 26 27 * assuan-handler.c (assuan_register_command): Use my_strcasecmp. 28 292011-03-06 Ben Kibbey <bjk@luxsci.net> 30 31 * assuan-socket-connect.c (assuan_socket_connect_fd): Finalize a 32 context connection from an already connected socket descriptor. 33 * assuan.h.in (assuan_socket_connect_fd): New prototype. 34 352011-03-05 Ben Kibbey <bjk@luxsci.net> 36 37 * assuan-handler.c (assuan_register_command): Let an existing command 38 be updated to the new values. 39 402011-02-28 Werner Koch <wk@g10code.com> 41 42 * libassuan.vers: Fold LIBASSUAN_1.1 block into LIBASSUAN_1.0. 43 442011-02-28 Ben Kibbey <bjk@luxsci.net> 45 46 * assuan-handler.c (assuan_register_pre_cmd_notify): Pass command 47 string as second argument. 48 * assuan.h (assuan_command_t): Move back to assuan-defs.h. 49 502011-02-24 Ben Kibbey <bjk@luxsci.net> 51 52 * assuan-handler.c (assuan_register_pre_cmd_notify): New callback. 53 * assuan.h (assuan_command_t): Register command object. 54 (pre_cmd_notify_fnc): New prototype. 55 562011-02-03 Marcus Brinkmann <marcus@g10code.com> 57 58 * assuan-socket.c (_assuan_sock_new): Call _assuan_socket instead 59 of socket. 60 (_assuan_sock_connect): Call _assuan_connect instead of connect. 61 * assuan-socket-connect.c (assuan_socket_connect): Call 62 _assuan_sock_new and _assuan_sock_connect instead of 63 _assuan_socket and assuan_connect. 64 * src/system-w32.c, src/system-w32ce.c (__assuan_socket): Call 65 socket instead of _assuan_sock_new. 66 (__assuan_connect): Call connect instead of _assuan_sock_connect. 67 682011-02-02 Marcus Brinkmann <mb@g10code.com> 69 70 * assuan.h.in: Replace namespace by _namespace. 71 722011-02-02 Marcus Brinkmann <mb@g10code.com> 73 74 * assuan-defs.h (_assuan_socket, _assuan_connect): New prototypes. 75 * assuan.h.in (ASSUAN_SYSTEM_HOOKS_VERSION): Bumped to 2. 76 (struct assuan_system_hooks): Add socket and connect members. 77 (__assuan_socket, __assuan_connect): New prototypes. 78 (_ASSUAN_SYSTEM_PTH_IMPL): Add socket and connect members. * 79 assuan-socket-connect.c (assuan_socket_connect): Call 80 _assuan_socket and _assuan_connect instead _assuan_sock_new and 81 _assuan_sock_connect. 82 (libassuan.def, libassuan.vers): Add __assuan_socket and 83 __assuan_connect. 84 85 * system.c (_assuan_system_hooks_copy): Initialize destination 86 from system hooks, so we don't get any NULL pointers if there is a 87 version mismatch. Support version 2 of the system hook structure. 88 (_assuan_socket, _assuan_connect): New functions. 89 * system-posix.c (__assuan_socket, __assuan_connect): New functions. 90 (_assuan_system_hooks): Add __assuan_socketm, __assuan_connect. 91 * system-w32.c (__assuan_socket, __assuan_connect): New functions. 92 (_assuan_system_hooks): Add __assuan_socketm, __assuan_connect. 93 * system-w32ce.c (__assuan_socket, __assuan_connect): New functions. 94 (_assuan_system_hooks): Add __assuan_socketm, __assuan_connect. 95 962010-12-20 Werner Koch <wk@g10code.com> 97 98 * gpgcedev.c (pipeimpl_new): Check malloc and CreateEvent return 99 codes. 100 1012010-12-14 Werner Koch <wk@g10code.com> 102 103 * gpgcemgr.c (wchar_to_utf8, utf8_to_wchar, set_show_registry): New. 104 (main): Add commands --gpgme-log and --gnupg-log. 105 1062010-11-17 Marcus Brinkmann <mb@g10code.com> 107 108 * vasprintf.c (int_vasprintf) [HAVE_W32CE_SYSTEM && _MSC_VER]: 109 Just use a fixed size buffer, as va_copy is not easy to fake. 110 111 * gpgcedev.c (struct pipeimpl_s): Add member monitor_rvid. 112 (struct monitor_s, monitor_t): New types. 113 (monitor_table, monitor_table_size): New static variables. 114 (pipeimpl_new): Initialize monitor_rvid. 115 (allocate_monitor): New function. 116 (make_pipe): Also try the monitor_table if the opnctx_table fails. 117 (monitor): Renamed to ... 118 (monitor_main): ... this. Remove from monitor_table when done. 119 (assign_rvid): Add to monitor table when creating monitor thread. 120 1212010-11-15 Werner Koch <wk@g10code.com> 122 123 * gpgcedev.c (GPG_Init): Read debug settings. 124 125 * gpgcemgr.c (enable_debug, enable_log): New. 126 (main): Add options --enable-debug, --disable-debug, --enable-log, 127 --disable-log. 128 1292010-11-12 Werner Koch <wk@g10code.com> 130 131 * gpgcedev.c (DEVCTX_VALUE): Rename to PIPECTX_VALUE. 132 (LOGCTX_VALUE): New. 133 (allocate_opnctx): Add arg IS_LOG. 134 (logimpl_t): New. 135 (openctx_t): Add field IS_LOG. 136 (struct logcontrol): New. 137 (enable_debug, enable_logging): New. 138 (log_debug): Make use of the ENABLE_DEBUG flag. 139 (create_log_id): New. 140 (logimpl_new, logimpl_unref, logimpl_flush, assert_logimpl): New. 141 (GPG_Init): Check for GPG2 device. 142 (GPG_Deinit): Close log stream. 143 (GPG_Open): Implement log device. 144 (GPG_Read): Return EOF for the GPG2 device 145 (GPG_Write): Implement GPG2 device. 146 (dllmain): Init logcontrol CS. 147 1482010-11-01 Werner Koch <wk@g10code.com> 149 150 * assuan-socket.c (_assuan_sock_bind): Replace open/fdopen by 151 CreateFile for building with MSC for W32CE. 152 (utf8_to_wchar, MyCreateFile, MyDeleteFile) [W32CE]: New. 153 1542010-11-01 Marcus Brinkmann <marcus@g10code.de> 155 156 * assuan-socket.c, assuan-uds.c, system.c, assuan-pipe-server.c, 157 assuan-pipe-connect.c [!HAVE_FCNTL_H]: Don't include fcntl.h. 158 * assuan-buffer.c [!HAVE_W32CE_SYSTEM]: Do not include process.h. 159 * assuan-socket.c [!HAVE_W32CE_SYSTEM]: Do not include io.h. 160 * w32-includes.inc.h: Include winsock2.h before ws2tcpip.h. 161 * sysutils.c (w32_read_registry): Replace goto label "leave" by 162 "out" (as leave is defined by some Windows header file). 163 * assuan-inquire.c: Likewise. 164 1652010-11-01 Werner Koch <wk@g10code.com> 166 167 * assuan-socket.c (S_IRUSR) [W32]: Define if not defined. 168 169 * sysutils.c: Remove include of devload.h. 170 171 * assuan-defs.h [HAVE_WINSOCK2_H]: Include winsock2.h prior to 172 windows.h. 173 * assuan-pipe-server.c: Ditto. 174 * sysutils.c: Ditto. 175 * assuan-socket-server.c: Ditto. 176 * assuan-pipe-connect.c: Ditto. 177 * assuan-socket-connect.c: Ditto. 178 * assuan-uds.c: Ditto. 179 * assuan-logging.c: Ditto. 180 * system-w32ce.c: Ditto. 181 * assuan-io.c: Ditto. 182 183 * w32-types.inc.h [_MSC_VER]: Define ssize_t and pid_t. 184 185 * w32ce-fd-t.inc.h, w32-fd-t.inc.h, posix-fd-t.inc.h, debug.h: 186 s/inline/GPG_ERR_INLINE/. 187 * assuan.h.in: Let mkheader write the sys/types.h and unistd.h 188 include lines. 189 * mkheader.c: Change accordingly. 190 191 Guard include of sys/types.h, sys/stat.h, sys/time.h and unistd.h. 192 1932010-09-17 Werner Koch <wk@g10code.com> 194 195 * assuan-socket-connect.c (INADDR_NONE): New replacement. Fixes 196 bug#1282. 197 1982010-09-01 Werner Koch <wk@g10code.com> 199 200 * assuan.h.in (ASSUAN_NO_LOGGING): New. 201 * assuan-defs.h (struct assuan_context_s): Add FLAGS.NO_LOGGING. 202 * context.c (assuan_set_flag, assuan_get_flag): Support new flag. 203 * assuan-logging.c (_assuan_log_control_channel): Implement new flag. 204 2052010-08-11 Werner Koch <wk@g10code.com> 206 207 * assuan.h.in (ASSUAN_CONVEY_COMMENTS): New. 208 * assuan-defs.h (struct assuan_context_s): Add flags.CONVEY_COMMENTS. 209 * context.c (assuan_set_flag, assuan_get_flag): Support this flag. 210 (_assuan_read_from_server): Add arg CONVEY_COMMENTS. Change all 211 callers. 212 * client.c (assuan_transact): Implement new flags. 213 2142010-08-09 Werner Koch <wk@g10code.com> 215 216 * assuan-socket-connect.c (assuan_socket_connect): Fix ipv6 217 literal IP case. 218 2192010-08-03 Marcus Brinkmann <marcus@g10code.de> 220 221 * gpgcedev.c (GPGCEDEV_IOCTL_ASSIGN_RVID): New call ASSIGN_RVID. 222 (PIPE_FLAG_HALT_MONITOR): New flag. 223 (struct pipeimpl_s): New members monitor_proc, monitor_access. 224 (pipeimpl_new): Initialize them. 225 (assert_pipeimpl): New function. 226 (access_opnctx, make_pipe): Use it. 227 (make_pipe): If there is a monitor, halt it. 228 (monitor, assign_rvid): New functions. 229 (GPG_IOControl): Handle GPGCEDEV_IOCTL_ASSIGN_RVID. 230 231 * gpgcedev.c: Use index (between 1 and table size) into 232 opnctx_table as public context identifiers, instead using pointers 233 into the table directly (which are not stable under table resize). 234 (OPNCTX_TO_IDX, OPNCTX_FROM_IDX, OPNCTX_VALID_IDX_P): New macros. 235 2362010-06-28 Werner Koch <wk@g10code.com> 237 238 * gpgcedev.c (GPG_IOControl) <IOCTL_PSL_NOTIFY>: Unblock threads. 239 2402010-06-11 Marcus Brinkmann <marcus@g10code.de> 241 242 * assuan-handler.c (std_handler_input, 243 std_handler_output) [HAVE_W32CE_SYSTEM]: Finish the pipe. We must 244 do this here, because otherwise assuan_close_input_fd() and 245 assuan_close_output_fd() can't work. 246 * system-w32ce.c (_assuan_w32ce_finish_pipe): Call SetLastError in 247 error case. 248 (__assuan_close): Save WSAGetLastError before trashing it! 249 Otherwise handle is never closed and GPGME hangs. 250 2512010-06-10 Marcus Brinkmann <marcus@g10code.de> 252 253 * w32ce-add.h (ASSUAN_STDIN, ASSUAN_STDOUT): Define magic handle values. 254 * system-w32ce.c (__assuan_read, __assuan_write): Handle magic 255 handle values differently. 256 257 * system-w32ce.c (_assuan_w32ce_finish_pipe): Return error on RVID 0. 258 2592010-06-09 Marcus Brinkmann <marcus@g10code.de> 260 261 * gpgcedev.c (GPGCEDEV_IOCTL_UNBLOCK): New ioctl. 262 (PIPE_FLAG_UNBLOCK_READER, PIPE_FLAG_UNBLOCK_WRITER): New flags. 263 (GPG_Read): Check if PIPE_FLAG_UNBLOCK_READER is set and return 264 ERROR_BUSY in that case. 265 (GPG_Write): Likewise for PIPE_FLAG_UNBLOCK_WRITER. 266 (unblock_call): New function. 267 (GPG_IOControl): Implement GPGCEDEV_IOCTL_UNBLOCK. 268 2692010-06-07 Marcus Brinkmann <marcus@g10code.de> 270 271 * gpgcedev.c: This rewrite does away with troublesome race 272 conditions (close vs everything else, for example) by simplifying 273 the locking model. It also handles EOF, EPIPE, but still assumes 274 that there is always only ever one reader and writer. Also, no 275 need to treat ERROR_PIPE_NOT_CONNECTED and ERROR_BUSY as EAGAIN 276 anymore. 277 (struct pipeimpl_s, pipeimpl_t): New types. 278 (PIPE_FLAG_NO_READER, PIPE_FLAG, NO_WRITER): New macros. 279 (struct opnctx_s): Remove everything that's now in struct 280 pipeimpl_s. Remove also assoc and locked. Add pipeimpl field. 281 (pipeimpl_new, pipeimpl_unref, allocate_opnctx, verify_opnctx, 282 access_opnctx): New functions. 283 (get_new_opnctx, find_and_lock_opnctx, validate_and_lock_opnctx, 284 unlock_opnctx): Removed. 285 (GPG_Init, GPG_Deinit): Improve debugging output. 286 (GPG_Open): Improve debugging output, use allocate_opnctx instead 287 of get_new_opnctx. 288 (GPG_Close): Improve debugging output. Rewrite to use reference 289 counting. Also check if reader or writer is closed and set flags 290 for triggering EOF or EPIPE. 291 (GPG_Read): Improve debugging output. Rewrite using pipeimpl. 292 Check for EOF. 293 (GPG_Write): Improve debugging output. Rewrite using pipeimpl. 294 Check for EPIPE. 295 (make_pipe): Rewrite using pipeimpl. 296 (GPG_IOControl): Improve debugging output. 297 2982010-04-22 Werner Koch <wk@g10code.com> 299 300 * assuan-listen.c (assuan_accept): Show the PID with the default 301 hello message. 302 3032010-04-19 Werner Koch <wk@g10code.com> 304 305 * system-w32.c (is_socket): New. 306 (__assuan_read, __assuan_write): Use is_socket. 307 3082010-04-16 Marcus Brinkmann <marcus@g10code.de> 309 310 * assuan-uds.c (uds_reader, uds_sendfd): Don't break strict 311 aliasing rules. 312 3132010-04-14 Werner Koch <wk@g10code.com> 314 315 * Makefile.am (install-exec-hook): Rename libgpgcedev-0.dll. 316 3172010-04-14 Marcus Brinkmann <marcus@g10code.de> 318 319 * Makefile.am (EXTRA_DIST): Add gpgcedev.def. 320 3212010-04-13 Werner Koch <wk@g10code.com> 322 323 * gpgcedev.c (get_new_opnctx): Always clear IS_WRITE. 324 3252010-04-08 Werner Koch <wk@g10code.com> 326 327 * gpgcedev.c (GPG_Read, GPG_Write): If the context is not 328 associated return ERROR_PIPE_NOT_CONNECTED. 329 * system-w32ce.c (__assuan_read, __assuan_write): Return EAGAIN for 330 ERROR_PIPE_NOT_CONNECTED. 331 332 * assuan-pipe-connect.c (pipe_connect): Use 333 _assuan_close_inheritable also in the spawn error case. 334 3352010-04-06 Werner Koch <wk@g10code.com> 336 337 * posix-includes.inc.h, w32-includes.inc.h: New. 338 * posix-types.inc.h, w32-types.inc.h: New. 339 * posix-fd-t.inc.h, w32-fd-t.inc.h, w32ce-fd-t.inc.h: New. 340 * posix-sock-nonce.inc.h, w32-sock-nonce.inc.h: New. 341 * mkheader.c (write_special): Support them. 342 * Makefile.am (common_sources, assuan.h): Ditto 343 (parts_of_assuan_h): New. 344 345 * w32-sys-pth-impl.h: Use gpg_err_set_errno. 346 347 * assuan.h.in (_ASSUAN_SYSTEM_PTH_IMPL): Factor code out to .. 348 * posix-sys-pth-impl.h, w32-sys-pth-impl.h: New 349 * mkheader.c (write_special): Support them. 350 * Makefile.am (common_sources, assuan.h): Ditto 351 3522010-03-23 Werner Koch <wk@g10code.com> 353 354 * assuan-error.c (_assuan_w32_strerror) [W32CE]: Print only the code. 355 3562010-03-22 Werner Koch <wk@g10code.com> 357 358 * Makefile.am (mkheader, assuan.h): Build header file. 359 (nodist_libassuan_la_SOURCES): New. Use it for assuan.h. 360 * mkheader.c: New. 361 * assuan.h: Rename to assuan.h.in. 362 3632010-03-18 Werner Koch <wk@g10code.com> 364 365 * libassuan.def (_assuan_w32ce_prepare_pipe) 366 (_assuan_w32ce_finish_pipe): New 367 * gpgcedev.c (struct opnctx_s): Replace HD by RVID. 368 (GPGCEDEV_IOCTL_SET_HANDLE): Remove. 369 (GPGCEDEV_IOCTL_GET_RVID): New. 370 (create_rendezvous_id): New. 371 (get_new_opnctx): Init the RVID. 372 (set_handle): Remove. 373 (find_and_lock_opnctx, make_pipe, GPG_IOControl): Change to new 374 method. 375 * system-w32ce.c (_assuan_w32ce_prepare_pipe) 376 (_assuan_w32ce_finish_pipe): New. 377 (_assuan_w32ce_create_pipe): Re-implement using the new functions. 378 (__assuan_pipe): Create an inheritable pipe. 379 (build_w32_commandline): New arg FD2_ISNULL. 380 * system.c (_assuan_close_inheritable): New. 381 * assuan-pipe-connect.c (pipe_connect): Use the new function. 382 383 * sysutils.c (_assuan_w32ce_create_pipe): Move to system-w32ce.c. 384 3852010-03-16 Werner Koch <wk@g10code.com> 386 387 * system-w32ce.c (build_w32_commandline): Add args to pass the 388 special options for the standard descriptors. 389 (utf8_to_wchar, free_wchar): New. 390 (__assuan_spawn): Adjust for changes. Convert strings for 391 CreateProcess to wchar_t. 392 393 * system.c: For better readability move platform dependend code to .. 394 * system-posix.c, system-w32.c, system-w32ce.c: .. New. 395 * Makefile.am (common_sources): Account for this change. 396 3972010-03-11 Werner Koch <wk@g10code.com> 398 399 * assuan-defs.h [!HAVE_VASPRINTF]: Add macros vasprintf and asprintf. 400 401 * vasprintf.c (asprintf): Rename to _assuan_asprintf. 402 (vasprintf): Rename to _assuan_vasprintf. 403 404 * assuan.h (ASSUAN_LOG_CONTROL): New. 405 * assuan-logging.c (assuan_set_assuan_log_stream): Default to 406 ASSUAN_LOG_CONTROL. 407 (_assuan_log_print_buffer): Remove. 408 (_assuan_log_control_channel): New. 409 (assuan_set_assuan_log_stream): Factor envvar code out to .. 410 (_assuan_init_log_envvars): .. New. 411 * assuan.c (assuan_set_log_cb): Call _assuan_init_log_envvars. 412 * assuan-buffer.c (_assuan_read_line, _assuan_write_line) 413 (assuan_write_line, _assuan_cookie_write_data) 414 (_assuan_cookie_write_flush): Use _assuan_log_control_channel. 415 4162010-03-05 Werner Koch <wk@g10code.com> 417 418 * gpgcemgr.c: Add options to register a device and activate it. 419 4202010-02-24 Werner Koch <wk@g10code.com> 421 422 * gpgcemgr.c: New. 423 * gpgcedev.c: New. 424 * sysutils.c (_assuan_w32ce_create_pipe): Rewrote to make use of 425 the new driver. 426 4272010-02-16 Werner Koch <wk@g10code.com> 428 429 * system.c (assuan_free): New. 430 * libassuan.vers (assuan_free): Add it. 431 * libassuan.def (assuan_free): Add it. 432 4332010-02-11 Werner Koch <wk@g10code.com> 434 435 * assuan-inquire.c (assuan_inquire): Allow case insensitive 436 responses. 437 (_assuan_inquire_ext_cb): Ditto. 438 4392010-02-10 Werner Koch <wk@g10code.com> 440 441 * assuan-handler.c (std_handler_input, std_handler_output): Make 442 the parsed FD available to the notification functions. This is 443 the documented behaviour. 444 4452010-02-04 Werner Koch <wk@g10code.com> 446 447 * assuan-socket-connect.c: Include stdint.h and arpa/inet.h. 448 (parse_portno): New. 449 (assuan_socket_connect): Return a correct error code on failure. 450 Support assuan:// and file:// schemes. 451 4522010-02-03 Marcus Brinkmann <marcus@g10code.de> 453 454 * libassuan.vers, libassuan.def: Add assuan_set_sock_nonce. 455 4562010-02-01 Werner Koch <wk@g10code.com> 457 458 * sysutils.c (_assuan_w32ce_create_pipe): New. 459 * libassuan.def (_assuan_w32ce_create_pipe): New. 460 * assuan-defs.h (CreateFile) [W32CE]: New macro 461 * system.c (__assuan_pipe): Make it work for W32CE. 462 4632010-01-28 Werner Koch <wk@g10code.com> 464 465 * assuan.h: Remove ranges in list of copyright years. 466 (getenv) [W32CE]: Provide macro. 467 * sysutils.c: New. 468 (_assuan_sysutils_blurb): New. 469 (_assuan_getenv): new. 470 * assuan-logging.c: Call _assuan_sysutils_blurb. 471 4722010-01-27 Werner Koch <wk@g10code.com> 473 474 * assuan-socket.c (_assuan_sock_bind): Replace remove by DeleteFile. 475 476 * assuan-handler.c (assuan_get_active_fds) [W32CE]: Remove use of 477 _get_osfhandle. 478 * assuan.h (assuan_fd_from_posix_fd) [__MINGW32CE__]: Ditto. 479 * system.c (assuan_fdopen): Ditto. 480 (__assuan_spawn) [W32CE]: Do not use GetPriorityClass. 481 482 * assuan-defs.h (getpid) [W32CE]: New. 483 4842010-01-22 Werner Koch <wk@g10code.com> 485 486 * setenv.c [W32CE]: Make it a dummy. 487 488 * assuan-pipe-connect.c: Remove signal.h. 489 490 * system.c (__assuan_spawn): Use CreateFileW. 491 (DETACHED_PROCESS) [W32CE]: Define to 0. 492 493 * assuan-socket.c (read_port_and_nonce): Replace ENOFILE by a 494 proper ENOENT. 495 496 Replace all assignments to ERRNO by a call to gpg_err_set_errno. 497 4982010-01-14 Werner Koch <wk@g10code.com> 499 500 * debug.c (_assuan_debug, _assuan_debug_begin) 501 (_assuan_debug_buffer): Check CTX before dereferencing. 502 503 * assuan.c (assuan_release): Immediately leave on NULL CTX. 504 5052010-01-05 Marcus Brinkmann <marcus@g10code.de> 506 507 * debug.h (TRACE_LOG5): Add macro. 508 * debug.c (_assuan_debug_buffer): Add newline 509 * system.c: Add more debug output (conditioned on the compile-time 510 DEBUG_SYSIO macro). 511 5122009-12-14 Werner Koch <wk@g10code.com> 513 514 * assuan.h (ASSUAN_RESPONSE_COMMENT): New. 515 * client.c (assuan_client_read_response): Return comment lines. 516 (assuan_client_parse_response): Return ASSUAN_RESPONSE_COMMENT. 517 (_assuan_read_from_server): Skip comment lines. 518 5192009-12-08 Marcus Brinkmann <marcus@g10code.de> 520 521 * assuan.h (struct assuan_system_hooks): Don't use "namespace" as 522 argument name in declaration (C++ keyword). 523 524 * client.c (assuan_client_read_response): Fix linelen. 525 526 * assuan.h (ASSUAN_SPAWN_DETACHED): New macro. 527 * assuan-pipe-connect.c (pipe_connect): Calculate spawn_flags from 528 flags. 529 530 * assuan.h (assuan_fd_from_posix_fd): Handle invalid fd early. 531 532 * assuan-socket.c (get_nonce): Cast buffer to unsigned. 533 (_assuan_sock_connect) [HAVE_W32_SYSTEM]: Drop ctx argument from 534 read_port_and_nonce invocation. 535 * system.c (assuan_fdopen) [HAVE_W32_SYSTEM]: Fix typo in variable 536 name. 537 (__assuan_spawn) [HAVE_W32_SYSTEM]: Fix types of fd and fdp. Use 538 ASSUAN_INVALID_FD. Add missing context argument to _assuan_free, 539 and fix call to _assuan_w32_strerror. Set errno on error. 540 (__assuan_socketpair) [HAVE_W32_STRERROR]: Fix type of filedes 541 argument. 542 * assuan-pipe-connect.c (pipe_connect, assuan_pipe_connect, 543 socketpair_connect) [HAVE_W32_SYSTEM]: Fix type of fd_child_list. 544 * assuan-defs.h (_assuan_socketpair): Likewise for prototype. 545 * assuan.h (assuan_fd_from_posix_fd): New static inline function. 546 5472009-12-03 Marcus Brinkmann <marcus@g10code.de> 548 549 * assuan-logging.c: (log_cats): New static variable. 550 (TEST_LOG_CAT): New macro. 551 (_assuan_log_handler): Check log category. 552 (assuan_set_assuan_log_stream): Check ASSUAN_DEBUG for logging 553 categories. 554 (assuan_set_log_stream): Call assuan_set_assuan_log_stream. 555 5562009-12-02 Marcus Brinkmann <marcus@g10code.de> 557 558 * Makefile.am (common_sources): Remove assuan-client.c. 559 * assuan-client.c: File removed. 560 * assuan.h (ASSUAN_RESPONSE_ERROR, ASSUAN_RESPONSE_OK) 561 (ASSUAN_RESPONSE_STATUS, ASSUAN_RESPONSE_INQUIRE) 562 (ASSUAN_RESPONSE_STATUS): New macros. 563 (assuan_response_t): New type. 564 (assuan_client_read_response, assuan_client_parse_response): New 565 prototypes. 566 * libassuan.def, libassuan.vers: Add assuan_client_read_response, 567 assuan_client_parse_response. 568 * assuan-client.c (xtoi_1, xtoi_2, assuan_transact) 569 (_assuan_read_from_server): Moved to ... 570 * client.c: ... here, with updates to use new functions and types. 571 Include <stdlib.h>. 572 (assuan_client_read_response, assuan_client_parse_response): New 573 functions. 574 * assuan-defs.h (_assuan_read_from_server): Use assuan_response_t. 575 * assuan-pipe-connect.c (initial_handshake): Use assuan_response_t 576 and ASSUAN_RESPONSE_OK. 577 * assuan-socket-connect.c (assuan_socket_connect): Likewise. 578 5792009-12-01 Marcus Brinkmann <marcus@g10code.de> 580 581 * assuan-pipe-server.c (assuan_init_pipe_server): Fix debug output. 582 5832009-11-27 Marcus Brinkmann <marcus@g10code.de> 584 585 * assuan.h (assuan_set_assuan_log_stream): Add prototype. 586 * libassuan.def, libassuan.vers: Add back 587 assuan_set_assuan_log_stream. 588 * assuan-logging.c (assuan_set_assuan_log_stream): Add back. 589 * context.c (assuan_get_pointer): Don't output debug info here. 590 (assuan_get_peercred, assuan_get_pid): But do here. 591 * system.c: Improve debug output. 592 * assuan-defs.h (struct assuan_context_s): Rename pipe_mode to 593 max_accepts. 594 * assuan-listen.c (assuan_accept): Rework max accepts logic. 595 * assuan-socket-server.c (assuan_init_socket_server), 596 assuan-socket-connect.c (assuan_socket_connect), 597 assuan-pipe-server.c (assuan_init_pipe_server), 598 assuan-pipe-connect.c (socketpair_connect): Add debug output, set 599 max_accepts instead of pipe_mode. 600 6012009-11-25 Marcus Brinkmann <marcus@g10code.de> 602 603 * assuan.h (assuan_init_pipe_server): Change type of filedes to 604 assuan_fd_t. 605 (assuan_fdopen): New prototype. 606 * libassuan.vers, libassuan.def: Add assuan_fdopen. 607 * system.c (assuan_fdopen): New function. 608 * assuan-pipe-server.c (assuan_init_pipe_server): Change type of 609 filedes to assuan_fd_t. No longer translate fd to handle. Don't 610 set to binary either (that doesn't do anything for handles, it 611 only affects the libc fd). 612 6132009-11-24 Marcus Brinkmann <marcus@g10code.de> 614 615 * assuan.h (struct _assuan_peercred) [_WIN32]: Define dummy member 616 so struct is not empty. 617 * assuan-socket.c (assuan_sock_deinit): Set sock_ctx to NULL. 618 6192009-11-19 Marcus Brinkmann <marcus@g10code.de> 620 621 * Makefile.am (common_sources): Remove assuan-connect.c and add 622 client.c. 623 * client.c, server.c: New file. 624 * assuan-defs.h (_assuan_disconnect): Remove. 625 (struct assuan_context_s): Remove members deinit_handler. 626 (_assuan_client_release, _assuan_client_finish) 627 (_assuan_server_finish, _assuan_server_release): New. 628 * assuan-socket-server.c (accept_connection_bottom): Use 629 ASSUAN_INVALID_PID, not -1. 630 (finish_connection, deinit_socket_server): Remove. 631 (assuan_init_socket_server): Use _assuan_server_release. 632 * assuan-socket-connect.c (do_finish, do_deinit): Remove. 633 (assuan_socket_connect): Use _assuan_client_release. 634 * assuan-pipe-connect.c (do_finish, do_deinit): Remove. 635 (pipe_connect): Update deinitialization. 636 (socketpair_connect): Here as well. 637 * context.c (assuan_get_pid): New from ... 638 * assuan-connect.c (assuan_get_pid): ... here. Remove this file. 639 * assuan-pipe-server.c (_assuan_deinit_server, accept_connection) 640 (deinit_pipe_server, finish_connection): Remove unused function. 641 * assuan-listen.c (assuan_accept): Check CTX->accept_handler 642 before calling. Initialize RC. Do not call finish handler for 643 pipe server. 644 * assuan-uds.c (_assuan_uds_deinit): Do not call finish handler. 645 6462009-11-10 Marcus Brinkmann <marcus@g10code.de> 647 648 * assuan-defs.h (struct assuan_context_s): Rename 649 CTX->process_done to CTX->process_complete for clarity. Remove 650 buffer variables from UDS. 651 * assuan-pipe-connect.c (socketpair_connect): Allow FD_CHILD_LIST 652 to be NULL. 653 * assuan-handler.c: Rename CTX->process_done to 654 CTX->process_complete for clarity. 655 (process_request, process_next): Handle EOF. 656 * assuan-uds.c (uds_reader): Remove buffering, which breaks the 657 pending line algorithm in assuan-buffer.c. 658 (_assuan_init_uds_io, _assuan_uds_deinit): Remove buffering. 659 * assuan-buffer.c (_assuan_read_line): Add comment. 660 6612009-11-05 Marcus Brinkmann <marcus@g10code.de> 662 663 * assuan.h (struct _assuan_peercred, assuan_peercred_t): New. 664 (assuan_get_peercred): Define on all systems, return 665 assuan_peercred_t. 666 * assuan-defs.h (struct assuan_context_s): Move valid flag out of 667 peercred struct, use struct _assuan_peercred. 668 * libassuan.def: Add assuan_get_peercred. 669 * assuan-connect.c (assuan_get_peercred): Moved to ... 670 * context.c (assuan_get_peercred): ... here. Reimplement. 671 * assuan-socket-server.c (accept_connection_bottom): Adjust access 672 to peercred in context. 673 * assuan.h (ASSUAN_PIPE_CONNECT_FDPASSING) 674 (ASSUAN_PIPE_CONNECT_DETACHED, ASSUAN_SOCKET_SERVER_FDPASSING) 675 (ASSUAN_SOCKET_SERVER_ACCEPTED, ASSUAN_SOCKET_CONNECT_FDPASSING): New. 676 (assuan_pipe_connect_ext): Renamed to ... 677 (assuan_pipe_connect): ... this, overwriting old prototype. 678 (assuan_socket_connect_ext): Renamed to ... 679 (assuan_socket_connect): ... this, overwriting old prototype. 680 (assuan_init_socket_server_ext): Renamed to ... 681 (assuan_init_socket_server): ... this, overwriting old prototype. 682 * assuan-pipe-connect.c: Likewise for functions. 683 * assuan-socket-connect.c: Likewise. 684 * assuan-socket-server.c: Likewise. 685 * libassuan.def (assuan_init_socket_server_ext) 686 (assuan_pipe_connect_ext, assuan_socket_connect_ext): Removed. 687 * libassuan.vers: Likewise. 688 689 * assuan-defs.h (assuan_context_t): Add member PROCESS_DONE. 690 * assuan.h (assuan_process_next): Add argument DONE to prototype. 691 * assuan-handler.c (assuan_process_next): Likewise, handle it. 692 (std_handler_bye): Set PROCESS_DONE. 693 (assuan_process_done): Handle PROCESS_DONE in the no error case. 694 (assuan_process): Use PROCESS_DONE. 695 6962009-11-04 Marcus Brinkmann <marcus@g10code.de> 697 698 * debug.c (_assuan_debug): Free MSG. 699 7002009-11-04 Werner Koch <wk@g10code.com> 701 702 * Makefile.am (common_sources): Add debug.h. 703 704 * assuan-defs.h (cmdtbl_s): Add field HELPSTR. 705 * assuan-handler.c (assuan_register_command): Add arg HELP_STRING. 706 (std_handler_help): Print the help. 707 7082009-11-02 Marcus Brinkmann <marcus@g10code.de> 709 710 * assuan.h (assuan_handler_t): New type. 711 (assuan_register_bye_notify, assuan_register_reset_notify) 712 (assuan_register_cancel_notify, assuan_register_input_notify) 713 (assuan_register_output_notify, assuan_register_command): Use it. 714 * assuan-handler.c (std_handler_cancel, std_handler_bye): Pass 715 LINE argument to user handler. 716 (std_handler_reset): Likewise, and also abort RESET if error is 717 returned from user handler. 718 (std_handler_input, std_handler_output): Check return value from 719 user handler before assigning FD. 720 * assuan-defs.h (struct cmdtbl_s): Change type of member HANDLER 721 to assuan_handler_t. 722 (struct assuan_context_s): Change type of members 723 RESET_NOTIFY_FNC, CANCEL_NOTIFY_FNC, BYE_NOTIFY_FNC, 724 INPUT_NOTIFY_FNC and OUTPUT_NOTIFY_FNC to assuan_handler_t. 725 7262009-10-30 Marcus Brinkmann <marcus@g10code.de> 727 728 * system.c (_assuan_spawn): Check fd_child_list before dumping it. 729 7302009-10-20 Marcus Brinkmann <marcus@g10code.de> 731 732 * assuan.h (__assuan_usleep): Add declaration. 733 * system.c (__assuan_usleep): Make non-static. 734 * libassuan.vers, libassuan.defs: Sort lexicographically. 735 7362009-10-19 Marcus Brinkmann <marcus@g10code.com> 737 738 * system.c (__assuan_waitpid): Return something. 739 (_assuan_usleep): Don't return value in void function. 740 7412009-10-16 Marcus Brinkmann <marcus@g10code.com> 742 743 * conversion.c: Do not include <sys/types.h> and <time.h>. 744 * debug.h (TRACE_BEG6, TRACE4): New macros. 745 (TRACE_SYSERR): Pass _assuan_trace_context to _assuan_debug. 746 * context.c (assuan_set_pointer, assuan_get_pointer, 747 assuan_set_flag, assuan_get_flag, assuan_set_io_monitor, 748 assuan_set_error): Add trace messages. 749 750 * libassuan-config.in, libassuan.m4, Makefile.am: Remove PTH support. 751 * assuan.h (assuan_msghdr_t): New type. 752 (ASSUAN_INVALID_PID): New macro. 753 (ASSUAN_NO_FIXSIGNALS): New flag macro. 754 (ASSUAN_SYSTEM_HOOKS_VERSION): New macro. 755 (struct assuan_system_hooks, assuan_system_hooks_t): New types. 756 (assuan_pipe_connect, assuan_pipe_connect_ext): Don't make ARGV 757 const for name==NULL operation. Make fd_child_list an array of 758 assuan_fd_t. 759 (assuan_sock_init, assuan_sock_deinit, assuan_set_system_hooks, 760 assuan_ctx_set_system_hooks, __assuan_pipe, __assuan_close, 761 __assuan_spawn, __assuan_socketpair): New function prototypes. 762 (_ASSUAN_SYSTEM_PTH_IMPL, ASSUAN_SYSTEM_PTH_DECL, 763 ASSUAN_SYSTEM_PTH): New macros. 764 (_assuan_system_pth): New declaration. 765 * libassuan.vers, libassuan.defs: Add assuan_sock_init, 766 assuan_sock_deinit, __assuan_pipe, __assuan_close, __assuan_spawn, 767 __assuan_socketpair, assuan_set_system_hooks, 768 assuan_ctx_set_system_hooks. 769 770 * assuan-defs.h (struct assuan_io): Removed, move members to ... 771 (struct assuan_context_s): ... this to ENGINE. New flag 772 no_fixsignals. New member SYSTEM. Remove member IO. 773 (_assuan_pipe, _assuan_read, _assuan_write, _assuan_recvmsg, 774 _assuan_sendmsg, _assuan_spawn, _assuan_socketpair, 775 _assuan_system_hooks, _assuan_system_hooks_copy): New 776 declarations. 777 (_assuan_error_is_eagain, _assuan_waitpid, _assuan_usleep, 778 _assuan_close, _assuan_sock_new, _assuan_sock_connect, 779 _assuan_sock_bind, _assuan_sock_get_nonce, 780 _assuan_sock_check_nonce): Add context argument. 781 (_assuan_io_read, _assuan_io_write, _assuan_simple_sendmsg, 782 _assuan_simple_recvmsg): Removed. 783 784 * context.c (assuan_ctx_set_system_hooks): New function. 785 * assuan.c (assuan_set_system_hooks): New function. 786 (assuan_new_ext): Initialize CTX->system. 787 (assuan_release): Always output trace message. 788 789 * assuan-error.c (_assuan_error_is_eagain): Add ctx argument, pass 790 along to _assuan_usleep. 791 * assuan-inquire.c assuan-listen.c, assuan-socket-server.c, 792 assuan-handler.c, assuan-socket-connect.c, assuan-client.c, 793 assuan-pipe-connect.c, assuan-socket.c: Pass CTX argument to 794 functions that need it 795 (_assuan_sock_new, _assuan_sock_check_none, _assuan_close, 796 _assuan_error_is_eagain and many more). 797 * assuan-socket-server.c (assuan_init_socket_server_ext): Update 798 fields in CTX->engine instead of CTX->io. 799 * assuan-socket-connect (assuan_socket_connect_ext): Likewise. 800 * assuan-uds.c (uds_reader, uds_writer, uds_sendfd): Use 801 _assuan_recvmsg and _assuan_sendmsg instead of 802 _assuan_simple_recvmsg and _assuan_simple_sendmsg respectively. 803 (_assuan_init_uds_io): Update fields in CTX->engine instead of 804 CTX->io. 805 * assuan-buffer.c: Use functions in CTX->engine instead of CTX->io. 806 * assuan-pipe-server.c (assuan_init_pipe_server): Update 807 fields in CTX->engine instead of CTX->io. 808 809 * system.c: Include <sys/types.h>, <time.h>, <fcntl.h>, and 810 <windows.h> resp. <sys/wait.h>. Define MAX_OPEN_FDS. 811 (_assuan_system_hooks_copy, __assuan_usleep, _assuan_usleep, 812 __assuan_pipe, _assuan_pipe, __assuan_close, _assuan_close, 813 __assuan_read, _assuan_read, __assuan_write, _assuan_write, 814 __assuan_recvmsg, _assuan_recvmsg, __assuan_sendmsg, 815 _assuan_sendmsg, __assuan_spawn, _assuan_spawn, __assuan_waitpid, 816 _assuan_waitpid, __assuan_socketpair, _assuan_socketpair): New 817 functions. 818 (_assuan_system_hooks): New singleton. 819 * assuan-io.c (_assuan_waitpid, do_io_read, _assuan_io_read, 820 do_io_write, _assuan_io_write, _assuan_simple_sendmsg, 821 _assuan_simple_recvmsg, _assuan_usleep): Removed. 822 823 * assuan-pipe-connect (writen, build_w32_commandline, 824 create_inheritable_pipe): Removed (actually moved to system.c). 825 (fix_signals) [_ASSUAN_NO_FIXED_SIGNALS]: Still fix signals. 826 (do_finish): Move waitpid logic to _assuan_waitpid, just call 827 that. 828 (struct at_pipe_fork, struct at_socketpair_fork): New types. 829 (at_pipe_fork_cb, at_socketpair_fork_cb): New callback functions. 830 (pipe_connect_unix, pipe_connect_w32): Replaced by ... 831 (pipe_connect): ... this new function using new system functions. 832 (socketpair_connect): Reimplement to use new system functions. 833 (assuan_pipe_connect, assuan_pipe_connect_ext): Add trace message. 834 835 * assuan-socket.c (_assuan_close): Removed (moved to system.c). 836 (_assuan_sock_new, _assuan_sock_connect, _assuan_sock_bind, 837 _assuan_sock_get_nonce, _assuan_sock_check_nonce): Add context 838 argument. Use new system interface. 839 (sock_ctx): New singleton. 840 (assuan_sock_init, assuan_sock_deinit): New functions to 841 initialize and deinitialize the singleton. 842 8432009-10-14 Werner Koch <wk@g10code.com> 844 845 * assuan-defs.h (assuan_context_s): Add field CURRENT_CMD_NAME. 846 * assuan-handler.c (dispatch_command): Set this field. 847 (assuan_get_command_name): New. 848 * assuan.h, libassuan.vers, libassuan.def: Add new fucntion. 849 8502009-10-08 Marcus Brinkmann <marcus@g10code.de> 851 852 * Makefile.am (libassuan_pth): Removed. 853 (lib_LTLIBRARIES): Remove $(libassuan_pth). 854 (libassuan_pth_la_SOURCES, libassuan_pth_la_CPPFLAGS) 855 (libassuan_pth_la_CFLAGS, libassuan_pth_la_LIBADD): Removed. 856 * libassuan.m4 (AM_PATH_LIBASSUAN_PTH, AM_PATH_LIBASSUAN_PTHREAD): 857 Removed. 858 * assuan-io-pth.c: Removed. 859 * libassuan-config.in (all_thread_modules): Removed. Also removed 860 option --thread. 861 8622009-10-08 Marcus Brinkmann <marcus@g10code.de> 863 864 * assuan.h (assuan_get_assuan_log_stream, 865 assuan_set_assuan_log_stream): Remove prototypes. 866 * libassuan.def: Remove assuan_get_assuan_log_stream, 867 assuan_set_assuan_log_stream. 868 * libassuan.vers: Likewise. 869 * assuan-defs.h (_assuan_w32_strerror): Fix prototype. 870 (w32_strerror): Remove macro. 871 * assuan-pipe-connect.c (build_w32_commandline): Add argument for 872 context. Use it for malloc routines. Use _assuan_w32_strerror 873 instead of w32_strerror. 874 * vasprintf.c: New file. 875 8762009-09-29 Werner Koch <wk@g10code.com> 877 878 * assuan.h: Comment fix. 879 880 * assuan.c (assuan_release): Allow passing a NULL ctx. 881 8822009-09-19 Marcus Brinkmann <marcus@g10code.de> 883 884 * src/libassuan.vers, src/libassuan.def: Update to new API. 885 * assuan.c, context.c, system.c, debug.c: New files. 886 * Makefile.am (common_sources): Add assuan.c, context.c, system.c 887 and debug.c. 888 * assuan.h: Include <stdarg.h>. Fix inclusion of <gpg-error.h>. 889 (_ASSUAN_EXT_SYM_PREFIX, _ASSUAN_PREFIX1, _ASSUAN_PREFIX2) 890 (_ASSUAN_PREFIX): Remove support for renaming the whole library, 891 now that we have a stable shared library interface that can evolve 892 to cover all needs (particularly those of GPGME). 893 (assuan_malloc_hooks, assuan_malloc_hooks_t, assuan_log_cb_t) 894 (assuan_io_monitor_t): New types. 895 (ASSUAN_LOG_INIT, ASSUAN_LOG_CTX, ASSUAN_LOG_ENGINE) 896 (ASSUAN_LOG_DATA, ASSUAN_LOG_SYSIO, ASSUAN_IO_FROM_PEER) 897 (ASSUAN_IO_TO_PEER, ASSUAN_IO_MONITOR_NOLOG) 898 (ASSUAN_IO_MONITOR_IGNORE): New symbols. 899 (assuan_set_gpg_err_source, assuan_get_gpg_err_source) 900 (assuan_get_malloc_hooks, assuan_set_log_cb, assuan_get_log_cb) 901 (assuan_new, assuan_new_ext, assuan_release): New function 902 prototypes. 903 (assuan_init_pipe_server, assuan_init_socket_server) 904 (assuan_init_socket_server_ext, assuan_pipe_connect) 905 (assuan_pipe_connect_ext, assuan_socket_connect) 906 (assuan_socket_connect_ext): Take a context argument instead of 907 pointer to context. 908 (assuan_deinit_server, assuan_disconnect) 909 (assuan_set_assuan_err_source): Remove function prototypes. 910 * assuan-defs.h (ASSUAN_GCC_A_PURE): Moved here from XXX 911 (_assuan_error): New macro. 912 (struct assuan_context_s): New members err_source, w32_strerror, 913 malloc_hooks, log_cb, log_cb_data: New members. Move confidential 914 into flags. New member engine. 915 (_assuan_log_handler, _assuan_error_default, _assuan_disconnect): 916 New prototypes. 917 (_assuan_new_context): Remove prototype. 918 (_assuan_malloc, _assuan_calloc, _assuan_realloc, _assuan_free): 919 Add context argument to prototype. 920 * assuan-util.c (alloc_func, realloc_func, free_func): Remove 921 global variables. 922 (assuan_set_malloc_hooks, _assuan_malloc, _assuan_realloc) 923 (_assuan_calloc, _assuan_free, assuan_set_pointer) 924 (assuan_get_pointer, assuan_begin_confidential) 925 (assuan_end_confidential, assuan_set_io_monitor, assuan_set_flag) 926 (assuan_get_flag): Move functions to ... 927 * assuan-client.c: Add ctx argument to all invocations of 928 _assuan_error. 929 * assuan-socket-server.c, assuan-socket-connect.c, 930 assuan-connect.c: Likewise. 931 * assuan-buffer.c: Likewise. Also update access to confidential 932 flag. 933 * assuan-uds.c: Add ctx argument to all invocations of 934 _assuan_malloc, _assuan_realloc, _assuan_calloc, _assuan_free and 935 _assuan_error. 936 * assuan_listen.c, assuan-inquire.c, assuan-handler.c: Likewise. 937 * assuan-error.c (err_source): Remove global variable. 938 (assuan_set_assuan_err_source): Removed function. 939 (_assuan_w32_strerror): Moved here from assuan-logging.c and made 940 thread-safe. 941 (_assuan_error): Removed function (is now macro). 942 * assuan-handler.c: Update access to confidential flag. 943 * assuan-socket-server.c (accept_connection_bottom): Update access 944 to confidential flag in context. 945 (assuan_init_socket_server, assuan_init_socket_server_ext): Take 946 ctx argument instead of pointer to ctx. 947 * assuan-inquire.c (init_membuf, put_membuf, get_membuf) 948 (free_membuf): Take context argument and change all callers. 949 * assuan-socket-server.c (assuan_socket_connect) 950 (assuan_socket_connect_ext): Take ctx argument instead of pointer 951 to ctx. 952 * assuan-pipe-connect.c (initial_handshake, pipe_connect_unix) 953 (socketpair_connect, assuan_pipe_connect) 954 (assuan_pipe_connect_ext): Likewise. 955 (socketpair_connect): Now that ctx is not a pointer argument 956 anymore, return if we are server or client in the argv argument. 957 * assuan-logging.c (_assuan_log_handler): New function. 958 (_assuan_w32_strerror): Move to assuan-error.c 959 * assuan-connect.c (assuan_disconnect): Renamed to ... 960 (_assuan_disconnect): ... this. 961 * assuan-pipe-server.c (_assuan_new_context): Removed function. 962 (assuan_init_pipe_server): Take ctx argument instead of pointer to 963 ctx. 964 (_assuan_release_context): Removed function. 965 (_assuan_deinit_server): Reimplement. 966 9672009-09-01 Marcus Brinkmann <marcus@g10code.de> 968 969 * assuan.h: Change types in all functions from int to gpg_error_t 970 where relevant. 971 * assuan-listen.c (assuan_accept): Change type of RC from int to 972 gpg_error_t. 973 * assuan-pipe-server.c (accept_connection, finish_connection): 974 Change return type to gpg_error_t. 975 * assuan-socket-server.c (accept_connection_bottom) 976 (accept_connection, finish_connection): Likewise. 977 (assuan_init_connected_socket_server): Remove. 978 * assuan-defs.h (struct assuan_context_s): Change return type of 979 accept_handler and finish_handler to gpg_error_t. Add io_monitor_data. 980 * assuan-pipe-connect.c (do_finish): Change to void. 981 * assuan-inquire.c (_assuan_inquire_ext_cb): Change type of RC 982 from int to gpg_error_t. 983 * assuan-handler.c: Change return codes and RC variables from int 984 to gpg_error_t where appropriate. 985 * assuan-buffer.c (_assuan_read_line): Fix error code on EOF. 986 987 * assuan.h (ASSUAN_INT2FD, ASSUAN_FD2INT): Remove macros. 988 * assuan-defs.h (DIMof): Remove macro. 989 990 * setenv.c: Do not include "assuan-defs.h", instead redefine 991 setenv, unsetenv, clearenv in place. 992 * assuan-socket-server.c: Use _assuan_free instead of xfree. 993 * assuan-pipe-connect.c: Fix syntax error. 994 * assuan-defs.h: Remove some duplicated W32 stuff. 995 * Makefile.am (libassuan_la_LIBADD, libassuan_pth_la_LIBADD): Add 996 @NETLIBS@. 997 * versioninfo.rc.in (FILEVERSION): Set to @BUILD_FILEVERSION@. 998 ("FileDescription", "FileVersion", "InternalName") 999 ("LegalCopyright", "OriginalFilename", "ProductName"): Replace c&p 1000 garbage. 1001 * libassuan.def: Remove assuan_get_peercred. 1002 10032009-08-26 Marcus Brinkmann <marcus@g10code.de> 1004 1005 * libassuan-config.in: Add gpg-error. 1006 * assuan-buffer.c, assuan-inquire.c, assuan-handler.c, 1007 assuan-util.c, assuan-client.c, assuan-socket-connect.c, 1008 assuan-pipe-connect.c, assuan-defs.h, assuan-socket.c, 1009 assuan-connect.c, assuan-uds.c, assuan-socket-server.c, 1010 assuan-listen.c, assuan-pipe-server.c: Return gpg_error_t instead 1011 assuan_error_t everywhere. Return gpg error codes everywhere. 1012 Replace xtrymalloc, xfree, etc with _assuan_malloc, _assuan_free 1013 etc. Protect include <config.h> by HAVE_CONFIG_H where not done 1014 so already. 1015 * versioninfo.rc.in, libassuan.vers, libassuan.def, 1016 assuan-error.c: New files. 1017 * Makefile.am: Add libtool handling and gpg-error (also for W32). 1018 (EXTRA_DIST): Remove mkerrors, add libassuan.vers, 1019 versioninfo.rc.in and libassuan.def. 1020 (BUILT_SOURCES, MOSTLYCLEANFILES): Removed. 1021 (common_sources): Remove assuan-errors.c, add assuan-error.c. 1022 * assuan.h: Include <gpg-error.h>. 1023 [_ASSUAN_ONLY_GPG_ERRORS]: Feature removed. 1024 (assuan_init_connected_socket_server, assuan_strerror) 1025 (assuan_pipe_connect2): Removed obsolete interfaces. 1026 (assuan_error_t): Removed type. 1027 (assuan_flag_t): Changed from enum to unsigned int. 1028 (ASSUAN_NO_WAITPID, ASSUAN_CONFIDENTIAL): Changed from enum to macro. 1029 (assuan_process): Return gpg_error_t instead of int. 1030 (assuan_set_assuan_err_source): Change argument type from int to 1031 gpg_err_source_t. 1032 * assuan-defs.h (_assuan_error): Change types to gpg_error_t. 1033 (err_code, err_is_eof, xtrymalloc, xtrycalloc, xtryrealloc) 1034 (xfree): Removed. 1035 (set_error): Adjust for gpg-error codes. 1036 (_assuan_gpg_strerror_r, _assuan_gpg_strsource): Removed. 1037 (struct assuan_context_s): Remove member os_errno. 1038 * assuan-socket-server.c (accept_connection): Don't set CTX->os_errno. 1039 * mkerrors: Removed file. 1040 * assuan-io-pth.c (_assuan_simple_sendmsg) 1041 (_assuan_simple_recvmsg), assuan-io.c (_assuan_simple_sendmsg, 1042 _assuan_simple_recvmsg): Set errno instead returning error 1043 directly (and return -1). 1044 * assuan-handler.c (assuan_process_done): Remove handling for old 1045 style error values. 1046 (process_request, assuan_process): Change return type from int to 1047 gpg_error_t. 1048 * assuan-client.c (assuan_transact): Remove support for old style 1049 error values. 1050 * assuan-pipe-connect.c (assuan_pipe_connect2): Removed. 1051 * assuan-logging.c (my_strerror_r, my_strsource) 1052 (load_libgpg_error, _assuan_gpg_strerror_r) 1053 (_assuan_gpg_strsource): Removed. 1054 10552009-04-03 Werner Koch <wk@g10code.com> 1056 1057 * assuan-handler.c (std_cmd_table): Remove second OPTION entry. 1058 10592009-02-24 Werner Koch <wk@g10code.com> 1060 1061 * assuan-buffer.c (assuan_send_data): Add hack to optionally send 1062 a final "CAN". 1063 10642008-11-03 Marcus Brinkmann <marcus@g10code.de> 1065 1066 * assuan-handler.c (std_handler_help): Make I unsigned to silence 1067 gcc -W warning. 1068 * assuan-logging.c (_assuan_log_print_buffer): Likewise for N. 1069 * funopen.c (_assuan_funopen): Remove initializer to silence gcc 1070 -W warning. 1071 * assuan-handler.c (std_cmd_table): Add missing initializer to 1072 silence gcc -W warning. 1073 * assuan-socket-server.c (io): Likewise. 1074 * assuan-socket-connect.c (assuan_socket_connect_ext): Likewise. 1075 10762008-10-29 Marcus Brinkmann <marcus@g10code.de> 1077 1078 * assuan.h (assuan_error_t) (_ASSUAN_ONLY_GPG_ERRORS): Make 1079 unsigned int. 1080 (assuan_transact): Change return type of callback handlers to 1081 assuan_error_t. 1082 10832008-10-15 Werner Koch <wk@g10code.com> 1084 1085 * assuan-logging.c (_assuan_log_printf): Flush if the format 1086 string ends with a LF. 1087 10882008-09-01 Werner Koch <wk@g10code.com> 1089 1090 * assuan-io.c: Include time.h. Fixes bug#951. 1091 (_assuan_usleep): Use nanosleep only is available. 1092 10932008-03-25 Marcus Brinkmann <marcus@g10code.de> 1094 1095 * assuan-inquire.c (assuan_inquire): Loop over _assuan_read_line 1096 for EAGAIN. 1097 10982008-03-21 Marcus Brinkmann <marcus@g10code.de> 1099 1100 * assuan-defs.h (_assuan_usleep): New prototype. 1101 * assuan-io.c (_assuan_usleep): New function. 1102 * assuan-io-pth.c (_assuan_usleep): New function. 1103 * mkerrors: Do not incude <windows.h>, but assuan-defs.h. 1104 (_assuan_error_is_eagain): Call _assuan_usleep. 1105 1106 * mkerrors [HAVE_W32_SYSTEM]: Include <windows.h> 1107 (_assuan_error_is_eagain) [HAVE_W32_SYSTEM]: Wait the tenth of a 1108 second. 1109 11102007-11-23 Marcus Brinkmann <marcus@g10code.de> 1111 1112 * assuan-inquire.c (_assuan_inquire_ext_cb): Pass through return 1113 value from callback function. 1114 Suggested by Ben Kibbey <bjk@luxsci.net>. 1115 11162007-11-14 Werner Koch <wk@g10code.com> 1117 1118 * assuan-pipe-connect.c (pipe_connect_unix): Add dummy arg FLAGS. 1119 (pipe_connect_w32): Add arg FLAGS and start process detached if 1120 requested. Changed callers to pass 0. 1121 (assuan_pipe_connect_ext): Pass FLAG. 1122 11232007-11-12 Marcus Brinkmann <marcus@g10code.de> 1124 1125 * assuan-inquire.c (_assuan_inquire_ext_cb): Clear 1126 CTX->inquire_membuf after deallocating it. 1127 11282007-10-18 Marcus Brinkmann <marcus@g10code.de> 1129 1130 * assuan-handler.c (std_handler_help): New function. 1131 (std_cmd_table): Add new command HELP. 1132 11332007-10-08 Werner Koch <wk@g10code.com> 1134 1135 * assuan-util.c (assuan_set_io_hooks): New. 1136 * assuan.h (struct assuan_io_hooks): New. 1137 (assuan_set_io_hooks, _assuan_io_hooks): Add prefix macros. 1138 * assuan-defs.h (_assuan_io_hooks): New. 1139 * assuan-io.c (do_io_read): Take all code from _assuan_io_read. 1140 (_assuan_io_read, _assuan_simple_read): Add hook feature. 1141 (do_io_write): Take all code from _assuan_io_write. 1142 (_assuan_io_write, _assuan_simple_write): Add hook feature. 1143 * assuan-io-pth.c (_assuan_simple_read, _assuan_simple_write) 1144 (_assuan_io_read, _assuan_io_write): Add hook feature. 1145 11462007-10-05 Marcus Brinkmann <marcus@g10code.de> 1147 1148 * assuan.h (_assuan_error_is_eagain): Add prefix macro. 1149 1150 * assuan-defs.h (_assuan_error_is_eagain): New prototype. 1151 * mkerrors (_assuan_error_is_eagain): New function. 1152 * assuan-handler.c (process_next): Leave on EAGAIN. 1153 * assuan-handler.c (process_request), 1154 assuan-client.c (_assuan_read_from_server), 1155 assuan-buffer.c (assuan_read_line): Busy loop over EAGAIN. 1156 11572007-10-05 Werner Koch <wk@g10code.com> 1158 1159 * assuan-socket.c (_assuan_sock_wsa2errno): Map WSANOTINITIALISED. 1160 (_assuan_sock_new): Use assuan_fd_t. 1161 * assuan.h (_assuan_sock_wsa2errno): Add prefix macro. 1162 11632007-10-05 Marcus Brinkmann <marcus@g10code.de> 1164 1165 * assuan-defs.h (_assuan_sock_wsa2errno) [HAVE_W32_SYSTEM]: Add prototype. 1166 * assuan-uds.c (wsa2errno) [HAVE_W32_SYSTEM]: Move and rename to ... 1167 * assuan-socket.c (_assuan_sock_wsa2errno) [HAVE_W32_SYSTEM]: ... this. 1168 (_assuan_close, _assuan_sock_new, _assuan_sock_connect, _assuan_sock_bind): 1169 Always set errno on error. 1170 1171 * assuan-uds.c (wsa2errno) [HAVE_W32_SYSTEM]: New function. 1172 (uds_reader, uds_writer) [HAVE_W32_SYSTEM]: Set errno. 1173 11742007-10-04 Werner Koch <wk@g10code.com> 1175 1176 * mkerrors: Map EAGAIN to GPG_ERR_EAGAIN for read and write 1177 errors. 1178 11792007-10-02 Werner Koch <wk@g10code.com> 1180 1181 * assuan-io.c (_assuan_io_read) [W32]: Map WSAEWOULDBLOCK to EAGAIN. 1182 * assuan-socket.c (_assuan_sock_check_nonce): N needs to be signed. 1183 1184 * assuan-defs.h (struct assuan_context_s): Add LISTEN_NONCE. 1185 * assuan-socket-server.c (assuan_set_sock_nonce): New. 1186 (accept_connection): Check the nonce. 1187 11882007-10-01 Werner Koch <wk@g10code.com> 1189 1190 * assuan.h (ASSUAN_INT2FD, ASSUAN_FD2INT): New. 1191 1192 * assuan-socket.c: Rewritten. 1193 (assuan_sock_new, assuan_sock_connect, assuan_sock_bind) 1194 (assuan_sock_get_nonce, assuan_sock_check_nonce): New APIs. 1195 1196 * assuan-io.c (_assuan_simple_read, _assuan_simple_write): 1197 Factored code out to ... 1198 (_assuan_io_read, _assuan_io_write): .. new. 1199 * assuan-io-pth.c (_assuan_io_read, _assuan_io_write): New. 1200 12012007-09-25 Werner Koch <wk@g10code.com> 1202 1203 * assuan.h (_assuan_gpg_strerror_r, _assuan_gpg_strsource): Add 1204 wrappers for these new internal functions. 1205 12062007-09-24 Marcus Brinkmann <marcus@g10code.de> 1207 1208 * assuan-uds.c (uds_reader) [HAVE_W32_SYSTEM]: Do not touch the 1209 UDS structure in the context. Reported by Frank Osterfeld. 1210 (uds_writer): Clarify code. 1211 12122007-09-14 Marcus Brinkmann <marcus@g10code.de> 1213 1214 * assuan-pipe-connect.c (do_finish) [HAVE_W32_SYSTEM]: Close 1215 ctx->pid as handle. 1216 (pipe_connect_w32): Save the spawned processes handle. 1217 12182007-09-13 Werner Koch <wk@g10code.com> 1219 1220 * assuan-socket.c (_assuan_close): Add inactive debug outputs. 1221 12222007-09-11 Marcus Brinkmann <marcus@g10code.de> 1223 1224 * assuan.h: Use _WIN32 instead of HAVE_W32_SYSTEM. 1225 12262007-09-07 Marcus Brinkmann <marcus@g10code.de> 1227 1228 * assuan-inquire.c (assuan_inquire_ext): If MAXLEN is 0, still 1229 initialize MEMBUF. 1230 1231 * assuan-inquire.c (_assuan_inquire_ext_cb): Clear CTX->in_inquire 1232 before invoking callback and returning. 1233 12342007-09-05 Marcus Brinkmann <marcus@g10code.de> 1235 1236 * assuan-handler.c (dispatch_command): Return non-critical errors 1237 with PROCESS_DONE (). 1238 12392007-09-03 Marcus Brinkmann <marcus@g10code.de> 1240 1241 * assuan.h [_ASSUAN_EXT_SYM_PREFIX]: Add missing symbol renames 1242 with _ASSUAN_PREFIX. 1243 12442007-09-03 Marcus Brinkmann <marcus@g10code.de> 1245 1246 * assuan.h [_ASSUAN_EXT_SYM_PREFIX]: Add missing symbol renames 1247 with _ASSUAN_PREFIX. 1248 1249 * assuan.h (assuan_inquire_ext): Move buffer and buffer_length 1250 arguments callback in prototype. 1251 * assuan-defs.h (struct assuan_context_s): Remove members 1252 inquire_r_buffer and inquire_r_buffer_len. Add buffer and buffer 1253 length arguments to inquire_cb. 1254 * assuan-inquire.c (_assuan_inquire_ext_cb): Return buffer and 1255 buffer length via callback. 1256 (assuan_inquire_ext): Move buffer and buffer length arguments to 1257 callback. 1258 12592007-08-24 Werner Koch <wk@g10code.com> 1260 1261 Switched license to back to LGPLv2.1. 1262 12632007-08-09 Marcus Brinkmann <marcus@g10code.de> 1264 1265 * assuan.h (assuan_process_done, assuan_inquire_ext): New 1266 prototypes. 1267 * assuan-defs.h (struct assuan_context_s): New members 1268 in_process_next, in_command, inquire_cb, inquire_cb_data, 1269 inquire_r_buffer, inquire_r_buffer_len, inquire_membuf. 1270 (_assuan_inquire_ext_cb, _assuan_inquire_release): New prototypes. 1271 * assuan-handler.c (PROCESS_DONE): New macro. 1272 (dummy_handler, std_handler_nop, std_handler_cancel) 1273 (std_handler_option, std_handler_bye, std_handler_auth) 1274 (std_handler_reset, std_handler_end): Use PROCESS_DONE to 1275 optionally call assuan_process_done if CTX->in_process_next is 1276 true. 1277 (assuan_process_done, process_next): New functions. 1278 (assuan_process_next): Rewritten to support external event 1279 handling. 1280 * mkerrors: Do not clear high bits of -1 for old style EOF. 1281 * assuan-inquire.c (_assuan_inquire_release) 1282 (_assuan_inquire_ext_cb, assuan_inquire_ext): New functions. 1283 * assuan-pipe-server.c (_assuan_release_context): Call 1284 _assuan_inquire_release. 1285 12862007-07-12 Werner Koch <wk@g10code.com> 1287 1288 * assuan.h (assuan_fd_t): New. 1289 (ASSUAN_INVALID_FD): New. Use it everywhere. 1290 * assuan-defs.h (SOCKET2HANDLE, HANDLE2SOCKET) [W32]: New. Use 1291 them to cast descriptors for socket fucntions. 1292 * assuan-pipe-connect.c (fd_to_handle, handle_to_fd): Remove 1293 definition and all uses. 1294 (pid_to_handle, handle_to_pid): Remove as they are ununsed. 1295 * assuan-io.c (_assuan_simple_write, _assuan_simple_read) [W32]: 1296 Make use of HANDLE2SOCKET. 1297 * assuan-socket.c (_assuan_close) [W32]: Use CloseHandle and not 1298 close. 1299 * assuan-handler.c (assuan_get_active_fds) [W32]: Use 1300 _get_osfhandle for the data fp. 1301 1302 * assuan-io.c (_assuan_simple_write): Return EPIPE on a closed pipe. 1303 (_assuan_simple_read): Likewise 1304 13052007-07-08 Marcus Brinkmann <marcus@g10code.de> 1306 1307 * assuan-defs.h (struct assuan_context_s): Have full peercred 1308 structure for HAVE_SO_PEERCRED. 1309 * assuan-connect.c (assuan_get_peercred) [!HAVE_SO_PEERCRED]: Do 1310 not try to set PID, UID and GID. 1311 13122007-07-05 Werner Koch <wk@g10code.com> 1313 1314 * assuan-defs.h (struct assuan_context_s): Have peercred.valid 1315 even for Windows. This makes some other code cleaner. 1316 1317 * assuan.h (ASSUAN_CONFIDENTIAL): New flag. 1318 * assuan-util.c (assuan_set_flag, assuan_get_flag): Support flag. 1319 13202007-07-04 Marcus Brinkmann <marcus@g10code.de> 1321 1322 Change _WIN32 to HAVE_W32_SYSTEM for consistency. 1323 1324 * assuan-defs.h (struct assuan_context_s): Have full peercred 1325 structure even if not HAVE_SO_PEERCRED, but not if 1326 HAVE_W32_SYSTEM. 1327 13282007-06-18 Werner Koch <wk@g10code.com> 1329 1330 * assuan-logging.c (load_libgpg_error, _assuan_gpg_strerror_r) 1331 (_assuan_gpg_strsource): New. 1332 * assuan-handler.c (process_request) [W32]: Use these new 1333 functions for human understable error codes. 1334 13352007-06-12 Werner Koch <wk@g10code.com> 1336 1337 * assuan-io.c (_assuan_simple_read): Hack to allow reading from a 1338 socket. 1339 (_assuan_simple_write): Likewise. 1340 13412007-06-11 Werner Koch <wk@g10code.com> 1342 1343 * assuan-io-pth.c (_assuan_simple_read, _assuan_simple_write): Use 1344 pth versions also for W32. 1345 13462007-05-29 Werner Koch <wk@g10code.com> 1347 1348 * assuan-io-pth.c: Include sys/socket.h only if available. Remove 1349 double inclusion of sys/wait.h 1350 1351 * assuan-pipe-connect.c (build_w32_commandline): Make ARGV const. 1352 1353 * assuan-pipe-server.c (is_valid_socket) [W32]: Do not define. 1354 1355 * assuan-socket-server.c [W32]: Include ws2tcpip.h to define 1356 socklen_t. 1357 * assuan-defs.h (struct assuan_context_s): Define most peercred 1358 members only if we can really set them. 1359 (_assuan_simple_sendmsg, _assuan_simple_recvmsg) [W32]: Use a 1360 different prototype. 1361 * assuan.h (assuan_get_peercred) [W32]: Do not define. 1362 * assuan-io.c (_assuan_simple_sendmsg, _assuan_simple_recvmsg) 1363 [w32]: Use another prototype. 1364 13652007-05-09 Werner Koch <wk@g10code.com> 1366 1367 * libassuan.m4: Print found version on success. 1368 13692007-05-01 Werner Koch <wk@g10code.com> 1370 1371 * assuan-uds.c (uds_reader): Cast void ptr for arithmetics. 1372 Reported by Peter O'Gorman. 1373 13742006-12-03 Marcus Brinkmann <marcus@g10code.de> 1375 1376 * assuan-handler.c (assuan_command_parse_fd): Also allow white 1377 space after FD. 1378 13792006-12-02 Marcus Brinkmann <marcus@g10code.de> 1380 1381 * assuan-uds.c (uds_reader): Return 0 if recvmsg returns 0. 1382 13832006-12-01 Marcus Brinkmann <marcus@g10code.de> 1384 1385 * assuan-client.c (assuan_transact): Also translate some of the 1386 legacy error codes. 1387 13882006-11-22 Werner Koch <wk@g10code.com> 1389 1390 * assuan-handler.c (fun1_cookie_write, fun2_cookie_write): New. 1391 (assuan_get_data_fp) [HAVE_FUNOPEN]: Use it. 1392 13932006-11-21 Werner Koch <wk@g10code.com> 1394 1395 * Makefile.am (libassuan_pth_a_CFLAGS): New. 1396 1397 * assuan-pipe-server.c (_assuan_release_context): Free CMDTBL. 1398 13992006-11-14 Werner Koch <wk@g10code.com> 1400 1401 * libassuan.m4 (AM_CHECK_LIBASSUAN): New. 1402 1403 * assuan-handler.c (assuan_register_post_cmd_notify) 1404 (assuan_register_post_cmd_notify): New. 1405 * assuan-util.c (assuan_set_io_monitor): New. 1406 * assuan-buffer.c (_assuan_read_line): Use it. 1407 (_assuan_write_line): Ditto. 1408 (_assuan_cookie_write_data): Ditto. 1409 (_assuan_cookie_write_flush): Ditto. 1410 14112006-10-18 Werner Koch <wk@g10code.com> 1412 1413 * libassuan.m4: Pass "pthread" to the common macro. Reported by 1414 Rex Dieter. 1415 14162006-10-16 Werner Koch <wk@g10code.com> 1417 1418 * mkerrors: Map ASSUAN_Not_Confirmed. 1419 14202006-10-10 Werner Koch <wk@g10code.com> 1421 1422 * libassuan.m4 (AM_PATH_LIBASSUAN_PTH) 1423 (AM_PATH_LIBASSUAN_PTHREAD): Fixed. 1424 1425 * assuan-buffer.c (assuan_sendfd): Implement a runtime detection 1426 of implemented descripotr passing. 1427 1428 * assuan-uds.c: Take care of USE_DESCRIPTOR_PASSING. 1429 1430 * assuan-defs.h: Add missing semicolon. 1431 14322006-10-09 Werner Koch <wk@g10code.com> 1433 1434 * assuan-handler.c (process_request): Use weak pragma for the sake 1435 of old gcc's. Reported by Alain Guibert. 1436 1437 * assuan-io.c: Removed Pth support. 1438 * assuan-io-pth.c: New. Based on assuan-io.c 1439 14402006-10-06 Werner Koch <wk@g10code.com> 1441 1442 * libassuan-config.in: New options --api-version and --thread. 1443 14442006-10-04 Werner Koch <wk@g10code.com> 1445 1446 * assuan-client.c (assuan_transact): Need to map old assuan status 1447 codes so that for example CANCELED is correctly mapped. 1448 14492006-09-28 Marcus Brinkmann <marcus@g10code.de> 1450 1451 * assuan-client.c (assuan_transact): Do not convert error on 1452 status line, it is already a gpg-error. Do convert 1453 ASSUAN_Server_Fault. 1454 14552006-09-19 Marcus Brinkmann <marcus@g10code.de> 1456 1457 * assuan.h (assuan_init_socket_server_ext) 1458 [_ASSUAN_EXT_SYM_PREFIX]: Fix typo in macro. 1459 14602006-09-19 Werner Koch <wk@g10code.com> 1461 1462 * assuan-defs.h (putc_unlocked): Add prototype. 1463 1464 * assuan-socket-server.c (accept_connection): Made LEN a socklen_t. 1465 1466 * assuan.h: Replaced assuan error code enum by simple defines and 1467 made assuan_error_t an int. 1468 * mkerrors: Changed parser accordingly. 1469 14702006-09-19 Marcus Brinkmann <marcus@g10code.de> 1471 1472 * assuan-pipe-connect.c: Add hacks for Slowaris. 1473 * assuan-socket.c: Likewise here. 1474 1475 * assuan.h (enum): Avoid trailing comma in enumerator list. Ugh. 1476 1477 * mkerrors (_assuan_error): Change return type to assuan_error_t. 1478 * assuan-buffer.c (_assuan_read_line): Change return type to 1479 assuan_error_t. Map returned value of -1. 1480 (_assuan_write_line): Change type of RC to assuan_error_t. 1481 * assuan-defs.h (_assuan_read_line, _assuan_error): Likewise for 1482 prototypes. 1483 1484 * assuan-defs.h (unsetenv): Define correctly. 1485 14862006-09-14 Werner Koch <wk@g10code.com> 1487 1488 * assuan-io.c (_assuan_waitpid): New. Changed all waitpid calls 1489 to this. 1490 1491 * assuan.h (_ASSUAN_DEPRECATED): New internal macro. 1492 (assuan_pipe_connect2): Declare deprecated. 1493 (assuan_init_connected_socket_server): Declare deprecated. 1494 1495 * assuan-connect.c (assuan_get_peercred): New. 1496 * assuan-socket-server.c (accept_connection_bottom): Save uid and gid. 1497 14982006-09-13 Werner Koch <wk@g10code.com> 1499 1500 * assuan-client.c (assuan_transact): Need to map the error code. 1501 * mkerrors: Need to map ASSUAN_No_Secret_Key. 1502 1503 * assuan-pipe-server.c (is_valid_socket): New. 1504 (assuan_init_pipe_server): Use UDS with the environmet variable is 1505 set and a valid descriptor is given. Ignore FILEDES in this case. 1506 1507 * assuan-socket-server.c (assuan_init_socket_server_ext): New. 1508 Changed other init fucntions to make use of it. 1509 1510 * assuan-handler.c (assuan_command_parse_fd): Allow for lowercase 1511 "fd". 1512 (std_handler_reset): Close pending fds. 1513 * assuan-uds.c (uds_receivefd): Fixed. 1514 (_assuan_uds_close_fds): New. 1515 1516 * assuan-socket-connect.c (assuan_socket_connect_ext): New. Takes 1517 all code of assuan_socket_connect plus an option to use sendmsg. 1518 * assuan-pipe-connect.c (assuan_pipe_connect_ext): New arg FLAGS. 1519 15202006-09-12 Werner Koch <wk@g10code.com> 1521 1522 * assuan-buffer.c (_assuan_write_line): Also log the prefix. 1523 1524 * assuan-defs.h (DIM, DIMof): New. 1525 1526 * assuan-domain-server.c: Removed. 1527 * assuan-domain-connect.c: Renamed to .. 1528 * assuan-uds.c: this. 1529 (domain_reader, domain_writer, domain_sendfd, domain_receivefd) 1530 (assuan_domain_connect, _assuan_domain_init): Removed. 1531 (uds_reader, uds_writer, uds_sendfd, uds_receivefd) 1532 (_assuan_init_uds_io): New. 1533 (_assuan_uds_deinit): New. 1534 1535 * assuan-io.c (_assuan_simple_sendmsg, _assuan_simple_recvmsg): New. 1536 (my_pth_fdmode, my_pth_select): New. 1537 15382006-09-11 Werner Koch <wk@g10code.com> 1539 1540 * assuan-pipe-server.c (assuan_init_pipe_server): Allow for 1541 FILEDES to be NULL and try to start as a socketpair server in this 1542 case. 1543 1544 * assuan-pipe-connect.c (assuan_pipe_connect2): Split up into two 1545 functions (unix and w32) for clarity. 1546 (pipe_connect_unix): This is the new fucntion. Add USE_CMSG flag. 1547 (pipe_connect_w32): Ditto. 1548 (initial_handshake): Factored out code. 1549 (socketpair_connect): New. 1550 (assuan_pipe_connect_ext): New. 1551 (do_finish): Handle case if outbound and inbound fd are the same. 1552 This is to support socketpairs. 1553 15542006-09-10 Werner Koch <wk@g10code.com> 1555 1556 * assuan-util.c (_assuan_log_print_buffer) 1557 (_assuan_log_sanitized_string,assuan_set_log_stream): Moved to .. 1558 * assuan-logging.c: .. here. 1559 (_assuan_log_print_buffer): Only print the leading bytes in hex 1560 log mode unless the new env variable ASSUAN_FULL_LOGGING has been 1561 set. 1562 (_assuan_set_default_log_stream): Test this env variable. 1563 15642006-09-06 Werner Koch <wk@g10code.com> 1565 1566 * assuan.h (_ASSUAN_ONLY_GPG_ERRORS): New. 1567 1568 * assuan-handler.c (dispatch_command): Use Syntax_Error instead of 1569 Invalid_Command. 1570 1571 * assuan-domain-connect.c: Changed alloc malloc/free/realloc to 1572 xtrymalloc et al. 1573 (read_int, write_int): Make args void pointers. 1574 (domain_receivefd): Take care of realloc shrinking failure. 1575 1576 * assuan-buffer.c (_assuan_read_line, _assuan_write_line) 1577 (assuan_write_line, _assuan_cookie_write_data) 1578 (_assuan_cookie_write_flush): Print the inbound fd instead of the 1579 address of the context when logging I/0. This makes it more 1580 readable. 1581 15822006-09-05 Werner Koch <wk@g10code.com> 1583 1584 * assuan-defs.h (err_code, err_is_eof): New. 1585 1586 * mkerrors (_assuan_error): New. Wrapped all error code 1587 assignments in a call to this. 1588 (assuan_strerror): Map gpg-style error codes back. Also print a 1589 string for the old EOF code. 1590 (assuan_set_assuan_err_source): New. 1591 1592 * assuan-logging.c (_assuan_log_printf): Do not change ERRNO and 1593 print the pid. 1594 1595 * assuan-domain-connect.c (domain_reader): Replaced plain printf 1596 by assuan_log function. 1597 15982005-10-24 Werner Koch <wk@g10code.com> 1599 1600 * putc_unlocked.c, memrchr.c, isascii.c, funopen.c: Changed 1601 distribution terms to LGPL. This are small and trivial files so 1602 there are no obstacles of doing so. 1603 * assuan-socket.c: Likewise, the stated GPL was not intended. 1604 16052005-10-08 Marcus Brinkmann <marcus@g10code.de> 1606 1607 * assuan-defs.h (setenv, unsetenv, clearenv) [!HAVE_SETENV]: 1608 Define to _assuan_*. 1609 * setenv.c: Include "assuan-defs.h". 1610 (__add_to_environ): Make static. 1611 16122005-10-07 Marcus Brinkmann <marcus@g10code.de> 1613 1614 * assuan-defs.h (memrchr) [!HAVE_MEMRCHR]: New prototype. 1615 (stpcpy) [!HAVE_STPCPY]: Likewise. 1616 * stpcpy.c: New LGPL'ed file from the GNU C Library. 1617 * setenv.c: New file. 1618 * assuan-domain-connect.c (read_int): New function. 1619 (write_int): New function. 1620 (domain_reader): Use read_int. 1621 (domain_sendfd): Use write_int. 1622 16232005-10-01 Marcus Brinkmann <marcus@g10code.de> 1624 1625 * assuan.h (assuan_pipe_connect, assuan_pipe_connect2): Make type 1626 of ARGV parameter const in prototype. 1627 * assuan-pipe-connect.c (assuan_pipe_connect, 1628 assuan_pipe_connect2): Likewise in declaration. 1629 (assuan_pipe_connect2): Add braindead cast to make execv happy. 1630 1631 * assuan-client.c (assuan_transact): Change LINE, S and D from 1632 unsigned char * to char * to silence gcc warning. 1633 * assuan-util.c (_assuan_log_sanitized_string): Add explicit cast 1634 to silence gcc warning. 1635 * assuan-inquire.c (assuan_inquire): Likewise. 1636 16372005-09-08 Marcus Brinkmann <marcus@g10code.com> 1638 1639 * assuan-pipe-connect.c (assuan_pipe_connect2): Add missing 1640 declaration of PID. 1641 16422005-08-09 Werner Koch <wk@g10code.com> 1643 1644 * mkerrors: Include config.h into assuan-errors.c. This is 1645 required so that assuan.h knows about the W32 macro. 1646 1647 * assuan.h [_ASSUAN_EXT_SYM_PREFIX]: New. 1648 * assuan-io.c [_ASSUAN_NO_PTH]: New. 1649 * assuan-pipe-connect.c (fix_signals) [_ASSUAN_NO_FIXED_SIGNALS]: New. 1650 (assuan_pipe_connect2) [_ASSUAN_USE_DOUBLE_FORK]: Use double fork. 1651 (fix_signals) [_ASSUAN_USE_DOUBLE_FORK]: Do not wait.. 1652 16532005-05-21 Werner Koch <wk@g10code.com> 1654 1655 * assuan-util.c (assuan_set_flag, assuan_get_flag): New. 1656 * assuan-defs.h (struct assuan_context_s): New field flags. 1657 * assuan.h (assuan_flag_t): New with one flag value 1658 ASSUAN_NO_WAITPID for now. 1659 * assuan-pipe-connect.c (do_finish): Take care of the no_waitpid 1660 flag. 1661 16622005-04-04 Werner Koch <wk@g10code.com> 1663 1664 * assuan-util.c (_assuan_calloc): Avoid integer overflow. 1665 16662005-03-22 Werner Koch <wk@g10code.com> 1667 1668 * assuan-defs.h (struct assuan_io): Renamed elements READ and 1669 WRITE to READFNC and WRITEFNC to avoid problems with read defined 1670 as macros. Changed callers. Noted by Ville Skyttä. 1671 16722005-02-24 Werner Koch <wk@g10code.com> 1673 1674 * assuan-client.c (assuan_transact): Handle empty and comment 1675 commands correctly. 1676 16772004-12-20 Werner Koch <wk@g10code.com> 1678 1679 * assuan-socket-connect.c (assuan_socket_connect) [W32]: Allow for 1680 a drive letter in the path. 1681 16822004-12-19 Werner Koch <wk@g10code.com> 1683 1684 * assuan-pipe-server.c (assuan_init_pipe_server) [W32]: Map file 1685 descriptors using _get_osfhandle. 1686 16872004-12-19 Moritz Schulte <moritz@g10code.com> 1688 1689 * assuan-pipe-connect.c (assuan_pipe_connect2): Removed "`" 1690 character at beginning of line 532. 1691 16922004-12-18 Werner Koch <wk@g10code.com> 1693 1694 * assuan-logging.c (_assuan_w32_strerror): New. 1695 * assuan-defs.h (w32_strerror): new. 1696 * assuan-pipe-connect.c (assuan_pipe_connect2, fix_signals): 1697 Factored signal code out to new function. 1698 (build_w32_commandline, create_inheritable_pipe): New. Taken 1699 from gnupg 1.9. 1700 (assuan_pipe_connect2) [W32]: Implemented for W32. 1701 17022004-12-14 Werner Koch <wk@g10code.com> 1703 1704 * assuan-socket-connect.c (assuan_socket_connect): Always allow 1705 NAME to start with a froward slash. 1706 17072004-12-07 Werner Koch <wk@g10code.com> 1708 1709 * assuan-logging.c, assuan-io.c: Include config.h 1710 1711 Replaced all usages of _WIN32 by the new HAVE_W32_SYSTEM because 1712 there is nothing winning in this API. 1713 1714 * assuan-pipe-connect.c (assuan_pipe_connect2) [_WIN32]: Return 1715 error Not Imlemented. 1716 17172004-11-27 Werner Koch <wk@g10code.com> 1718 1719 * assuan-socket.c: Include sys/types.h. Noted by Michael 1720 Nottebrock. 1721 17222004-11-26 Werner Koch <wk@g10code.com> 1723 1724 * assuan-io.c [_WIN32]: Avoid warnings about unknown pragmas. 1725 17262004-11-24 Werner Koch <wk@g10code.com> 1727 1728 * assuan-logging.c (_assuan_log_printf): New. 1729 * assuan-domain-connect.c (LOG): Removed and replaced all callers 1730 by _assuan_log_printf. This is needed for C89 and gcc 2.95 which 1731 both don't have C99 style variable arg macros. 1732 * assuan-pipe-connect.c (LOG): Ditto. 1733 * assuan-socket-connect.c (LOG): Ditto. 1734 1735 * assuan-socket.c[!_WIN32]: Fixed includes. 1736 17372004-11-23 Timo Schulz <twoaday@g10code.com> 1738 1739 * assuan-socket.c (_assuan_sock_connect): Get local port from 1740 the sun_path[] file. 1741 (_assuan_sock_bind): Write local port to the sun_path[] file. 1742 * assuan-socket-connect.c (assuan_socket_connect): Use DIRSEP_C 1743 for a better portability. 1744 (assuan-defs.h): Define DIRSEP_C. 1745 17462004-11-19 Werner Koch <wk@g10code.com> 1747 1748 * assuan-handler.c (assuan_write_status): Return an error code. 1749 17502004-11-22 Timo Schulz <twoaday@g10code.com> 1751 1752 * assuan-io.c (_assuan_simple_read, _assuan_simple_write): W32 1753 support. 1754 * assuan-socket.c (_assuan_close): New. 1755 (_assuan_sock_new): New. 1756 (_assuan_sock_bind): New. 1757 17582004-11-16 Werner Koch <wk@g10code.com> 1759 1760 * assuan-socket-connect.c (LOG): Fixed macro to print not only the 1761 prefix. 1762 * assuan-domain-connect.c, assuan-socket-connect.c (LOG): Ditto. 1763 17642004-10-02 Werner Koch <wk@g10code.com> 1765 1766 * assuan-socket-connect.c: Define SUN_LEN, AF_LOCAL and PF_LOCAL 1767 if they are not available. 1768 * assuan-domain-connect.c: Define PF_LOCAL and AF_LOCAL if needed. 1769 17702004-06-23 Marcus Brinkmann <marcus@g10code.de> 1771 1772 * assuan-domain-connect.c [HAVE_SYS_UIO_H]: Include <sys/uio.h>. 1773 17742004-05-11 Werner Koch <wk@gnupg.org> 1775 1776 * assuan-listen.c (assuan_set_hello_line, assuan_accept): Allow 1777 for multi line hello strings. 1778 1779 * assuan-buffer.c (_assuan_write_line): New with parts of .. 1780 (assuan_write_line): .. factored out. 1781 17822004-04-29 Werner Koch <wk@gnupg.org> 1783 1784 * assuan-socket-connect.c: Include string.h. 1785 * assuan-logging.c: Ditto. 1786 17872004-04-22 Marcus Brinkmann <marcus@g10code.de> 1788 1789 * libassuan.m4: Quote first argument to AC_DEFUN. 1790 17912004-04-21 Werner Koch <wk@gnupg.org> 1792 1793 * assuan-socket-server.c (accept_connection_bottom): Save the pid 1794 of the peer if it is available. 1795 * assuan-socket-connect.c (assuan_socket_connect): Do not save the 1796 dummy SERVED_PID arg. 1797 * assuan-pipe-connect.c (do_finish): Don't wait if the pid is 0. 1798 (assuan_pipe_connect2): Store the parents pid in the environment 1799 of the child. 1800 * assuan-pipe-server.c (assuan_init_pipe_server): Initialize the 1801 peer's pid from the environment. 1802 * assuan-connect.c (assuan_get_pid): Do not return 0 as a PID. 1803 18042004-04-19 Werner Koch <wk@gnupg.org> 1805 1806 * assuan-socket-server.c, assuan-socket-connect.c: Includes 1807 sys/types.h. Reported by Michael Nottebrock. 1808 * assuan-domain-connect.c: Ditto. 1809 18102004-04-13 Werner Koch <wk@gnupg.org> 1811 1812 * assuan-util.c (_assuan_log_print_buffer): Relaxed quoting. 1813 (_assuan_log_sanitized_string): Ditto. 1814 18152004-03-14 Werner Koch <wk@gnupg.org> 1816 1817 * assuan-handler.c: Include <errno.h>. Reported by Bernd Kuhls. 1818 18192004-02-18 Werner Koch <wk@gnupg.org> 1820 1821 * libassuan-config.in: Ignore setting of --prefix. 1822 1823 * assuan-handler.c (assuan_get_data_fp): Fail with ENOSYS if we 1824 can't implement this. 1825 18262004-02-15 Werner Koch <wk@gnupg.org> 1827 1828 * memrchr.c (memrchr): Fixed implementation. Taken from gpgme. 1829 18302004-02-13 Werner Koch <wk@gnupg.org> 1831 1832 * assuan-domain-connect.c: Removed the unneeded alloca.h. 1833 18342004-01-24 Werner Koch <wk@gnupg.org> 1835 1836 * assuan-pipe-connect.c (assuan_pipe_connect2): New as an 1837 extension of assuan_pipe_connect. Made the latter call this one. 1838 18392004-01-14 Werner Koch <wk@gnupg.org> 1840 1841 * assuan-buffer.c (_assuan_cookie_write_data): Return the 1842 requested size to indicate successful operation. Fixes a spurious 1843 bug we previously fixed using fflush(). 1844 18452003-12-22 Werner Koch <wk@gnupg.org> 1846 1847 * assuan.h (ASSUAN_Locale_Problem): Added. 1848 * assuan-errors.c (assuan_strerror): Ditto. 1849 18502003-12-18 Werner Koch <wk@gnupg.org> 1851 1852 * assuan.h (AssuanCommand): Clarified that these are now 1853 deprecated and actually useless. 1854 (assuan_error_t): Clarified and added ASSUAN_USER_ERROR_FIRST, 1855 ASSUAN_USER_ERROR_LAST. 1856 18572003-12-16 Werner Koch <wk@gnupg.org> 1858 1859 * assuan-buffer.c: Changed formatting of the debug output prefix. 1860 * assuan-util.c (assuan_set_log_stream): Set global log stream if 1861 it has not been done yet. 1862 * assuan-logging.c (_assuan_set_default_log_stream): New. 1863 (assuan_set_assuan_log_prefix): New. 1864 18652003-12-11 Werner Koch <wk@gnupg.org> 1866 1867 * funopen.c (_assuan_funopen): Renamed from funopen, to keep the 1868 name space clean and avoid duplicate definitions if another 1869 library uses the same replacement. 1870 * assuan-defs.h (funopen): Renamed prototype and add a macro. 1871 18722003-12-08 Werner Koch <wk@gnupg.org> 1873 1874 * TODO: Removed. 1875 18762003-11-12 Werner Koch <wk@gnupg.org> 1877 1878 * assuan-handler.c (process_request): Kludge to print better error 1879 messages for gpg-error enabled programs. 1880 18812003-11-06 Werner Koch <wk@gnupg.org> 1882 1883 * assuan.h (assuan_context_t): New. Should be used in favor of 1884 ASSUAN_CONTEXT. 1885 (assuan_error_t): New. To be used instead of AssuanError. 1886 18872003-11-11 Moritz Schulte <mo@g10code.com> 1888 1889 * assuan-socket-connect.c (assuan_socket_connect): Fix computation 1890 of socket address length. 1891 18922003-08-13 Werner Koch <wk@gnupg.org> 1893 1894 * assuan-inquire.c (assuan_inquire): Increase length of cmdbuf to 1895 the Assuan limit. 1896 18972003-06-24 Werner Koch <wk@gnupg.org> 1898 1899 * mkerrors: Kludge to print libgpg-error values in an easier 1900 readable way. 1901 19022003-04-29 Werner Koch <wk@gnupg.org> 1903 1904 * libassuan.m4: New. Based on libgrypt.m4. 1905 * Makefile.am (m4data_DATA): New. 1906 1907 * assuan.h (AssuanCommand): Removed. 1908 1909 * assuan-handler.c: Remove the cmd_id element, 1910 (assuan_register_command): Likewise. Note that semantics changed. 1911 (_assuan_register_std_commands): Adjusted. 1912 19132003-02-22 Neal H. Walfield <neal@g10code.de> 1914 1915 * Makefile.am (bin_SCRIPTS): Renamed from bin_PROGRAMS. 1916 19172003-02-18 Neal H. Walfield <neal@g10code.de> 1918 1919 * Makefile.am (libassuan_a_LIBADD): New variable. 1920 * funopen.c: Move from ../common. 1921 * isascii.c: Likewise. 1922 * memrchr.c: Likewise. 1923 * putc_unlocked.c: Likewise. 1924 19252003-02-18 Neal H. Walfield <neal@g10code.de> 1926 1927 * assuan-handler.c (_IO_cookie_io_functions_t): Remove. 1928 (cookie_io_functions_t): Remove. 1929 (fopencookie): Remove prototype. 1930 (assuan_get_data_fp): Use funopen, not fopencookie. 1931 19322003-02-18 Neal H. Walfield <neal@g10code.de> 1933 1934 * libassuan-config.in: New file. 1935 * Makefile.am (bin_PROGRAMS): New variable. 1936 19372003-02-17 Neal H. Walfield <neal@g10code.de> 1938 1939 * .cvsignore: New file. 1940 19412003-02-17 Neal H. Walfield <neal@g10code.de> 1942 1943 * Makefile.am (lib_LIBRARIES): Use this instead of . . . 1944 (noinst_LIBRARIES): . . . this. 1945 (include_HEADERS): New variable. 1946 (libassuan_a_SOURCES): Remove assuan.h, add assuan-logging.c. 1947 1948 * assuan.h (assuan_set_assuan_log_stream): New prototype. 1949 (assuan_get_assuan_log_stream): Likewise. 1950 (assuan_get_assuan_log_prefix): Likewise. 1951 * assuan-logging.c: New file. 1952 1953 * assuan-buffer.c [HAVE_JNLIB_LOGGIN]: Do not include 1954 "../jnlib/logging.h". 1955 (my_log_prefix): Remove function. 1956 (_assuan_read_line): Use assuan_get_assuan_log_prefix in lieu of 1957 my_log_prefix. 1958 (assuan_write_line): Likewise. 1959 (_assuan_cookie_write_data): Likewise. 1960 (_assuan_cookie_write_flush): Likewise. 1961 * assuan-domain-connect.c (LOGERROR, LOGERROR1, LOGERROR2, 1962 LOGERRORX): Remove. 1963 (LOG): New macro. 1964 (domain_reader): Use it. 1965 (domain_writer): Likewise. 1966 (domain_sendfd): Likewise. 1967 (domain_receivefd): Likewise. 1968 (_assuan_domain_init): Likewise. 1969 (assuan_domain_connect): Likewise. 1970 * assuan-pipe-connect.c [HAVE_JNLIB_LOGGIN]: Do not include 1971 "../jnlib/logging.h". 1972 (LOGERROR, LOGERROR1, LOGERROR2, LOGERRORX): Remove. 1973 (LOG): New macro. 1974 (assuan_pipe_connect): Use it. 1975 * assuan-socket-connect.c [HAVE_JNLIB_LOGGIN]: Do not include 1976 "../jnlib/logging.h". 1977 (LOGERROR, LOGERROR1, LOGERROR2, LOGERRORX): Remove. 1978 (LOG): New macro. 1979 (assuan_socket_connect): Use it. 1980 (socket_reader): Remove dead code. 1981 (socket_writer): Likewise. 1982 * assuan-util.c [HAVE_JNLIB_LOGGIN]: Do not include 1983 "../jnlib/logging.h". 1984 (_assuan_log_sanitized_string): Use assuan_get_assuan_log_stream, 1985 not jnlib. 1986 19872002-11-24 Neal H. Walfield <neal@g10code.de> 1988 1989 * assuan.h (assuan_command_parse_fd): New prototype. 1990 * assuan-handler.c (assuan_command_parse_fd): Rename from 1991 parse_cmd_input_output. Export. 1992 (std_handler_input): Update to use assuan_command_parse_fd. 1993 (std_handler_output): Likewise. 1994 19952002-11-24 Neal H. Walfield <neal@g10code.de> 1996 1997 * assuan.h (assuan_sendfd): New prototype. 1998 (assuan_receivefd): New prototype. 1999 * assuan-buffer.c (assuan_sendfd): New function. 2000 (assuan_receivefd): New function. 2001 * assuan-handler.c (parse_cmd_input_output): Recognize incoming 2002 file descriptors and act appropriately. 2003 * assuan-defs.h (struct assuan_io): Add fields sendfd and 2004 receivefd. 2005 (struct assuan_context_s): Add fields pendingfds and 2006 pendingfdscount. 2007 * assuan-pipe-server.c (_assuan_new_context): Update IO to reflect 2008 new features. 2009 * assuan-domain-connect.c (do_deinit): Cleanup any unreceived file 2010 descriptors. 2011 (domain_reader): Receive file descriptors. 2012 (domain_sendfd): New function. 2013 (domain_receivefd): New function. 2014 (_assuan_domain_init): Update initialization code to reflect new 2015 features. 2016 20172002-11-24 Neal H. Walfield <neal@g10code.de> 2018 2019 * assuan-domain-connect.c (do_finish): Remove. 2020 (_assuan_domain_init): Use default handlers where possible. 2021 Add an assert and update comments. 2022 * assuan-domain-server.c (accept_connection): Remove. 2023 (assuan_init_domain_server): Use default handlers where possible. 2024 Put the server in pipe mode: it can only be used by a single 2025 client. 2026 20272002-11-24 Neal H. Walfield <neal@g10code.de> 2028 2029 * assuan.h: Add prototype for assuan_domain_connect and 2030 assuan_init_domain_server. 2031 * assuan-defs.h: Include <unistd.h>. 2032 Add prototype for _assuan_domain_init. 2033 * assuan-domain-connect.c: New file. 2034 * assuan-domain-server.c: New file. 2035 * Makefile.am (libassuan_a_SOURCES): Add assuan-domain-connect.c 2036 and assuan-domain-server.c 2037 20382002-11-23 Neal H. Walfield <neal@g10code.de> 2039 2040 * Makefile.am (libassuan_a_SOURCES): Add assuan-io.c. 2041 * assuan-io.c: Restore. 2042 (_assuan_simple_read): Rename from _assuan_read. 2043 (_assuan_simple_write): Rename from _assuan_write. 2044 * assuan-defs.h (_assuan_simple_read): New prototype. 2045 (_assuan_simple_write): Likewise. 2046 * assuan-pipe-server.c (pipe_reader): Remove. 2047 (pipe_writer): Remove. 2048 (_assuan_new_context): Initialize IO is with _assuan_simple_read 2049 and _assuan_simple_write. 2050 * assuan-socket-connect.c (socket_reader): Remove. 2051 (socket_writer): Remove. 2052 (assuan_socket_connect): Initialize IO is with _assuan_simple_read 2053 and _assuan_simple_write. 2054 * assuan-socket-server.c (io): New local variable. 2055 (assuan_init_socket_server): Initialize CTX->io. 2056 (assuan_init_connected_socket_server): Likewise. 2057 20582002-11-23 Neal H. Walfield <neal@g10code.de> 2059 2060 * assuan-buffer.c (readline): Use memrchr. 2061 (_assuan_read_line): Rewritten to use the string functions. 2062 20632002-11-20 Neal H. Walfield <neal@g10code.de> 2064 2065 * assuan-socket-connect.c (assuan_socket_connect): Pass PF_LOCAL 2066 to socket(), not AF_UNIX: it expects a PF_* macro and the former 2067 is more portable. 2068 (assuan_socket_connect): Use AF_LOCAL, not AF_UNIX which is more 2069 POSIXy. 2070 20712002-11-20 Neal H. Walfield <neal@g10code.de> 2072 2073 * assuan-defs.h (struct assuan_io): New structure. 2074 (struct assuan_context_s): New field, io. 2075 (_assuan_read): Depreciated. 2076 (_assuan_write): Likewise. 2077 * assuan-pipe-server.c: Include <unistd.h>. 2078 (pipe_reader): New function. 2079 (pipe_writer): Likewise. 2080 (_assuan_new_context.IO): New local static. Set to pipe_reader 2081 and pipe_writer. Use it to initialize new context. 2082 * assuan-socket-connect.c (socket_reader): New function. 2083 (socket_writer): New function. 2084 (assuan_socket_connect.IO): New local static. Set to socket_reader 2085 and socket_writer. Use it to initialize new context. 2086 * assuan-buffer.c (writen): Take an ASSUAN_CONTEXT rather than a 2087 file descriptor. Do not use _assuan_write but the write method 2088 in the supplied context. 2089 (readline): Likewise for _assuan_read. 2090 (assuan_write_line): When calling writen, pass CTX; not the file 2091 descriptor directly. 2092 (_assuan_cookie_write_data): Likewise. 2093 (_assuan_cookie_write_flush): Likewise. 2094 (_assuan_read_line): Likewise for readline. 2095 * Makefile.am (libassuan_a_SOURCES): Remove assuan-io.c. 2096 * assuan-io.c: Removed. 2097 20982002-11-10 Werner Koch <wk@gnupg.org> 2099 2100 * assuan-pipe-connect.c (assuan_pipe_connect): Changed the order 2101 of the dups to handle cases where we have already used fd 2 for 2102 other things. 2103 21042002-10-31 Neal H. Walfield <neal@g10code.de> 2105 2106 * assuan-util.c: Include <ctype.h>. 2107 (_assuan_log_print_buffer): Elide the magic numbers preferring the 2108 standard isfoo functions. Use putc_unlocked where possible. 2109 (_assuan_log_sanitized_string): Rewrite to use putc_unlocked and 2110 the isfoo functions. 2111 21122002-09-05 Neal H. Walfield <neal@g10code.de> 2113 2114 * assuan-defs.h (_assuan_read_wrapper): Depreciated. 2115 * assuan-util.c (_assuan_read_wrapper): Removed. 2116 * assuan-defs.h (_assuan_write_wrapper): Depreciated. 2117 * assuan-util.c (_assuan_write_wrapper): Removed. 2118 * assuan.h (assuan_set_io_fun): Depreciated. 2119 * assuan-util.c (assuan_set_io_fun): Removed. 2120 2121 * assuan-defs.h (_assuan_read): New function. 2122 (_assuan_write): Likewise. 2123 * assuan-io.c: New file. 2124 2125 * assuan-buffer.c (writen): Use _assuan_write rather than doing 2126 the work here. 2127 (readline): Likewise for _assuan_read. 2128 2129 * Makefile.am (libassuan_a_SOURCES): Add assuan-io.c. 2130 21312002-08-16 Werner Koch <wk@gnupg.org> 2132 2133 * assuan.h: Renamed Bad_Certificate_Path to Bad_Certificate_Chain. 2134 21352002-07-30 Werner Koch <wk@gnupg.org> 2136 2137 Changed the license from GPL to LGPL. 2138 21392002-07-23 Werner Koch <wk@gnupg.org> 2140 2141 * assuan-handler.c (_IO_cookie_io_functions_t): Define it here if 2142 it does not exists. 2143 21442002-06-27 Werner Koch <wk@gnupg.org> 2145 2146 * assuan-pipe-connect.c (assuan_pipe_connect): No special handling 2147 for the log_fd and stderr. Connect stderr to /dev/null if it 2148 should not be retained. 2149 21502002-06-26 Werner Koch <wk@gnupg.org> 2151 2152 * assuan-buffer.c (assuan_write_line): Make sure we never 2153 accidently print an extra LF. 2154 21552002-05-23 Werner Koch <wk@gnupg.org> 2156 2157 * assuan-util.c (assuan_set_io_func): New. 2158 * assuan-buffer.c (writen, readline): Use the new functions 2159 instead of pth. 2160 * assuan-socket-server.c (accept_connection): Don't use the 2161 pth_accept - using the assuan included accept code would be a bad 2162 idea within Pth so we don't need a replacement function. 2163 21642002-05-22 Werner Koch <wk@gnupg.org> 2165 2166 * assuan-socket-server.c (assuan_init_connected_socket_server): New. 2167 (accept_connection): Factored most code out to.. 2168 (accept_connection_bottom): .. new function. 2169 21702002-04-04 Werner Koch <wk@gnupg.org> 2171 2172 * assuan-buffer.c (my_log_prefix): New. Use it for all i/o debug 2173 output. 2174 21752002-03-06 Werner Koch <wk@gnupg.org> 2176 2177 * assuan-client.c (_assuan_read_from_server): Detect END. 2178 (assuan_transact): Pass it to the data callback. 2179 21802002-02-27 Werner Koch <wk@gnupg.org> 2181 2182 * assuan-client.c (assuan_transact): Add 2 more arguments to 2183 support status lines. Passing NULL yields the old behaviour. 2184 2185 * assuan-handler.c (process_request): Flush data lines send 2186 without using the data fp. 2187 21882002-02-14 Werner Koch <wk@gnupg.org> 2189 2190 * assuan-inquire.c (assuan_inquire): Check for a cancel command 2191 and return ASSUAN_Canceled. Allow for non-data inquiry. 2192 2193 * assuan.h: Add a few token specific error codes. 2194 21952002-02-13 Werner Koch <wk@gnupg.org> 2196 2197 * assuan-defs.h (assuan_context_s): New var CLIENT_PID. 2198 * assuan-pipe-server.c (_assuan_new_context): set default value. 2199 * assuan-socket-server.c (accept_connection): get the actual pid. 2200 22012002-02-12 Werner Koch <wk@gnupg.org> 2202 2203 * assuan-buffer.c (writen,readline) [USE_GNU_PT]: Use pth_read/write. 2204 * assuan-socket-server.c (accept_connection) [USE_GNU_PTH]: Ditto. 2205 22062002-02-01 Marcus Brinkmann <marcus@g10code.de> 2207 2208 * Makefile.am (MOSTLYCLEANFILES): New variable. 2209 22102002-01-23 Werner Koch <wk@gnupg.org> 2211 2212 * assuan-socket-connect.c (LOGERRORX): and removed typo. 2213 22142002-01-22 Marcus Brinkmann <marcus@g10code.de> 2215 2216 * assuan-socket-connect.c (LOGERRORX): Reverse arguments to fputs. 2217 22182002-01-21 Werner Koch <wk@gnupg.org> 2219 2220 * assuan-connect.c: Move all except assuan_get_pid to... 2221 * assuan-pipe-connect.c: this. 2222 (assuan_pipe_disconnect): Removed. 2223 (do_finish, do_deinit): New 2224 (assuan_pipe_connect): and set them into the context. 2225 * assuan-socket-connect.c: New. 2226 2227 * assuan-util.c (_assuan_log_sanitized_string): New. 2228 2229 * assuan-pipe-server.c (assuan_init_pipe_server): Factored most 2230 code out to ... 2231 (_assuan_new_context): new func. 2232 (_assuan_release_context): New 2233 * assuan-connect.c (assuan_pipe_connect): Use the new functions. 2234 22352002-01-20 Werner Koch <wk@gnupg.org> 2236 2237 * assuan.h: Added Invalid Option error code. 2238 2239 * assuan-handler.c (std_handler_option): New. 2240 (std_cmd_tbl): Add OPTION as standard command. 2241 (assuan_register_option_handler): New. 2242 (dispatch_command): Use case insensitive matching as a fallback. 2243 (my_strcasecmp): New. 2244 22452002-01-19 Werner Koch <wk@gnupg.org> 2246 2247 * assuan-buffer.c (_assuan_read_line): Add output logging. 2248 (assuan_write_line): Ditto. 2249 (_assuan_cookie_write_data): Ditto. 2250 (_assuan_cookie_write_flush): Ditto. 2251 * assuan-util.c (_assuan_log_print_buffer): New. 2252 (assuan_set_log_stream): New. 2253 (assuan_begin_confidential): New. 2254 (assuan_end_confidential): New. 2255 2256 * assuan-defs.h: Add a few handler variables. 2257 * assuan-pipe-server.c (assuan_deinit_pipe_server): Removed. 2258 (deinit_pipe_server): New. 2259 (assuan_deinit_server): New. Changed all callers to use this. 2260 * assuan-listen.c (assuan_accept): Use the accept handler. 2261 * assuan-handler.c (process_request): Use the close Handler. 2262 * assuan-socket-server.c: New. 2263 22642002-01-14 Werner Koch <wk@gnupg.org> 2265 2266 * assuan-client.c (_assuan_read_from_server): Skip spaces after 2267 the keyword. 2268 22692002-01-03 Werner Koch <wk@gnupg.org> 2270 2271 * assuan-handler.c (assuan_set_okay_line): New. 2272 (process_request): And use it here. 2273 22742002-01-02 Werner Koch <wk@gnupg.org> 2275 2276 * assuan-inquire.c (init_membuf,put_membuf,get_membuf): Apply a 2277 hidden 0 behind the buffer so that the buffer can be used as a 2278 string in certain contexts. 2279 22802001-12-14 Marcus Brinkmann <marcus@g10code.de> 2281 2282 * assuan-connect.c (assuan_pipe_connect): New argument 2283 FD_CHILD_LIST. Don't close those fds. 2284 * assuan.h: Likewise for prototype. 2285 22862001-12-14 Werner Koch <wk@gnupg.org> 2287 2288 * assuan-listen.c (assuan_close_input_fd): New. 2289 (assuan_close_output_fd): New. 2290 * assuan-handler.c (std_handler_reset): Always close them after a 2291 reset command. 2292 (std_handler_bye): Likewise. 2293 22942001-12-14 Marcus Brinkmann <marcus@g10code.de> 2295 2296 * assuan-buffer.c (_assuan_read_line): New variable ATTICLEN, use 2297 it to save the length of the attic line. 2298 Rediddle the code a bit to make it more clear what happens. 2299 23002001-12-14 Marcus Brinkmann <marcus@g10code.de> 2301 2302 * assuan-defs.h (LINELENGTH): Define as ASSUAN_LINELENGTH. 2303 assuan.h: Define ASSUAN_LINELENGTH. 2304 23052001-12-13 Marcus Brinkmann <marcus@g10code.de> 2306 2307 * assuan-buffer.c (assuan_read_line): Fix order of execution to 2308 get correct return values. 2309 23102001-12-13 Werner Koch <wk@gnupg.org> 2311 2312 * assuan-handler.c (assuan_get_active_fds): Fixed silly bug, 2313 pretty obvious that nobody ever tested this function. 2314 23152001-12-12 Werner Koch <wk@gnupg.org> 2316 2317 * assuan-connect.c (assuan_pipe_connect): Implemented the inital 2318 handshake. 2319 * assuan-client.c (read_from_server): Renamed to 2320 (_assuan_read_from_server): this and made external. 2321 2322 * assuan-listen.c (assuan_set_hello_line): New. 2323 (assuan_accept): Use a custom hello line is available. 2324 2325 * assuan-buffer.c (assuan_read_line): New. 2326 (assuan_pending_line): New. 2327 (_assuan_write_line): Renamed to .. 2328 (assuan_write_line): this, made public and changed all callers. 2329 23302001-12-04 Werner Koch <wk@gnupg.org> 2331 2332 * assuan-connect.c (assuan_pipe_connect): Add more error reporting. 2333 * assuan-client.c: New. 2334 2335 * assuan-inquire.c: New. 2336 * assuan-handler.c (process_request): Check for nested invocations. 2337 23382001-11-27 Werner Koch <wk@gnupg.org> 2339 2340 * assuan-handler.c (assuan_register_input_notify): New. 2341 (assuan_register_output_notify): New. 2342 23432001-11-26 Werner Koch <wk@gnupg.org> 2344 2345 * assuan.h: Added more status codes. 2346 23472001-11-25 Werner Koch <wk@gnupg.org> 2348 2349 * assuan-handler.c (assuan_register_bye_notify) 2350 (assuan_register_reset_notify) 2351 (assuan_register_cancel_notify): New and call them from the 2352 standard handlers. 2353 (assuan_process): Moved bulk of function to .. 2354 (process_request): .. new. 2355 (assuan_process_next): One shot version of above. 2356 (assuan_get_active_fds): New. 2357 23582001-11-24 Werner Koch <wk@gnupg.org> 2359 2360 * assuan-connect.c (assuan_get_pid): New. 2361 2362 * assuan-buffer.c (_assuan_read_line): Deal with reads of more 2363 than a line. 2364 * assuan-defs.h: Add space in the context for this. 2365 2366 2367 Copyright 2001, 2002, 2006, 2007, 2010 Free Software Foundation, Inc. 2368 2369 This file is free software; as a special exception the author gives 2370 unlimited permission to copy and/or distribute it, with or without 2371 modifications, as long as this notice is preserved. 2372 2373 This file is distributed in the hope that it will be useful, but 2374 WITHOUT ANY WARRANTY, to the extent permitted by law; without even the 2375 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2376