diff options
author | Marcus Brinkmann <mb@g10code.com> | 2009-08-26 18:36:49 +0000 |
---|---|---|
committer | Marcus Brinkmann <mb@g10code.com> | 2009-08-26 18:36:49 +0000 |
commit | bca49a41bfb5d3f1e8ce7412d15a865cfc482516 (patch) | |
tree | 5066bcc8971f3cdc1c97d17709c0e578eb4817e0 /src/assuan-buffer.c | |
parent | 5809572eed9ac2ed694317e036a3cead8e8946d1 (diff) | |
download | libassuan-bca49a41bfb5d3f1e8ce7412d15a865cfc482516.tar.gz |
2009-08-26 Marcus Brinkmann <marcus@g10code.de>
* configure.ac: Test for versioned symbols support.
(LIBASSUAN_LT_CURRENT, LIBASSUAN_LT_AGE)
(LIBASSUAN_LT_REVISION): New, set to 0.
(LIBASSUAN_CONFIG_API_VERSION): Bump to 2.
(AC_CONFIG_MACRO_DIR, AC_DISABLE_STATIC, AC_LIBTOOL_WIN32_DLL)
(AC_LIBTOOL_RC, AC_PROG_LIBTOOL, AM_PATH_GPG_ERROR): Invoke.
(AC_PROG_RANLIB): Don't invoke.
(HAVE_W32_SYSTEM): New AM conditional.
(AC_CONFIG_FILES): Add src/versioninfo.rc.
* ltmain.sh, m4/libtool.m4, m4/ltoptions.m4, m4/ltsugar.m4,
m4/ltversion.m4, m4/lt~obsolete.m4: New files from libtool 2.2.6.
* tests/Makefile.am (AM_CFLAGS, LDADD): Add gpg-error.
* tests/fdpassing.c: Change error values to gpg-error ones.
src/
2009-08-26 Marcus Brinkmann <marcus@g10code.de>
* libassuan-config.in: Add gpg-error.
* assuan-buffer.c, assuan-inquire.c, assuan-handler.c,
assuan-util.c, assuan-client.c, assuan-socket-connect.c,
assuan-pipe-connect.c, assuan-defs.h, assuan-socket.c,
assuan-connect.c, assuan-uds.c, assuan-socket-server.c,
assuan-listen.c, assuan-pipe-server.c: Return gpg_error_t instead
assuan_error_t everywhere. Return gpg error codes everywhere.
Replace xtrymalloc, xfree, etc with _assuan_malloc, _assuan_free
etc. Protect include <config.h> by HAVE_CONFIG_H where not done
so already.
* versioninfo.rc.in, libassuan.vers, libassuan.def,
assuan-error.c: New files.
* Makefile.am: Add libtool handling and gpg-error (also for W32).
(EXTRA_DIST): Remove mkerrors, add libassuan.vers,
versioninfo.rc.in and libassuan.def.
(BUILT_SOURCES, MOSTLYCLEANFILES): Removed.
(common_sources): Remove assuan-errors.c, add assuan-error.c.
* assuan.h: Include <gpg-error.h>.
[_ASSUAN_ONLY_GPG_ERRORS]: Feature removed.
(assuan_init_connected_socket_server, assuan_strerror)
(assuan_pipe_connect2): Removed obsolete interfaces.
(assuan_error_t): Removed type.
(assuan_flag_t): Changed from enum to unsigned int.
(ASSUAN_NO_WAITPID, ASSUAN_CONFIDENTIAL): Changed from enum to macro.
(assuan_process): Return gpg_error_t instead of int.
(assuan_set_assuan_err_source): Change argument type from int to
gpg_err_source_t.
* assuan-defs.h (_assuan_error): Change types to gpg_error_t.
(err_code, err_is_eof, xtrymalloc, xtrycalloc, xtryrealloc)
(xfree): Removed.
(set_error): Adjust for gpg-error codes.
(_assuan_gpg_strerror_r, _assuan_gpg_strsource): Removed.
(struct assuan_context_s): Remove member os_errno.
* assuan-socket-server.c (accept_connection): Don't set CTX->os_errno.
* mkerrors: Removed file.
* assuan-io-pth.c (_assuan_simple_sendmsg)
(_assuan_simple_recvmsg), assuan-io.c (_assuan_simple_sendmsg,
_assuan_simple_recvmsg): Set errno instead returning error
directly (and return -1).
* assuan-handler.c (assuan_process_done): Remove handling for old
style error values.
(process_request, assuan_process): Change return type from int to
gpg_error_t.
* assuan-client.c (assuan_transact): Remove support for old style
error values.
* assuan-pipe-connect.c (assuan_pipe_connect2): Removed.
* assuan-logging.c (my_strerror_r, my_strsource)
(load_libgpg_error, _assuan_gpg_strerror_r)
(_assuan_gpg_strsource): Removed.
Diffstat (limited to 'src/assuan-buffer.c')
-rw-r--r-- | src/assuan-buffer.c | 83 |
1 files changed, 42 insertions, 41 deletions
diff --git a/src/assuan-buffer.c b/src/assuan-buffer.c index b9e3572..84538f4 100644 --- a/src/assuan-buffer.c +++ b/src/assuan-buffer.c @@ -1,20 +1,20 @@ /* assuan-buffer.c - read and send data - * Copyright (C) 2001, 2002, 2003, 2004, 2006 Free Software Foundation, Inc. - * - * This file is part of Assuan. - * - * Assuan is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * Assuan is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, see <http://www.gnu.org/licenses/>. + Copyright (C) 2001-2004, 2006, 2009 Free Software Foundation, Inc. + + This file is part of Assuan. + + Assuan is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of + the License, or (at your option) any later version. + + Assuan is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this program; if not, see <http://www.gnu.org/licenses/>. */ #include <config.h> @@ -94,7 +94,7 @@ readline (assuan_context_t ctx, char *buf, size_t buflen, /* Function returns an Assuan error. */ -assuan_error_t +gpg_error_t _assuan_read_line (assuan_context_t ctx) { char *line = ctx->inbound.line; @@ -150,7 +150,7 @@ _assuan_read_line (assuan_context_t ctx) } errno = saved_errno; - return _assuan_error (ASSUAN_Read_Error); + return _assuan_error (gpg_err_code_from_syserror ()); } if (!nread) { @@ -159,7 +159,8 @@ _assuan_read_line (assuan_context_t ctx) fprintf (ctx->log_fp, "%s[%u.%d] DBG: <- [EOF]\n", assuan_get_assuan_log_prefix (), (unsigned int)getpid (), (int)ctx->inbound.fd); - return _assuan_error (-1); + + return _assuan_error (GPG_ERR_EOF); } ctx->inbound.attic.pending = 0; @@ -222,8 +223,8 @@ _assuan_read_line (assuan_context_t ctx) *line = 0; ctx->inbound.linelen = 0; return _assuan_error (ctx->inbound.eof - ? ASSUAN_Line_Not_Terminated - : ASSUAN_Line_Too_Long); + ? GPG_ERR_ASS_INCOMPLETE_LINE + : GPG_ERR_ASS_LINE_TOO_LONG); } } @@ -237,13 +238,13 @@ _assuan_read_line (assuan_context_t ctx) Returns 0 on success or an assuan error code. See also: assuan_pending_line(). */ -assuan_error_t +gpg_error_t assuan_read_line (assuan_context_t ctx, char **line, size_t *linelen) { - assuan_error_t err; + gpg_error_t err; if (!ctx) - return _assuan_error (ASSUAN_Invalid_Value); + return _assuan_error (GPG_ERR_ASS_INV_VALUE); do { @@ -266,11 +267,11 @@ assuan_pending_line (assuan_context_t ctx) } -assuan_error_t +gpg_error_t _assuan_write_line (assuan_context_t ctx, const char *prefix, const char *line, size_t len) { - assuan_error_t rc = 0; + gpg_error_t rc = 0; size_t prefixlen = prefix? strlen (prefix):0; unsigned int monitor_result; @@ -313,32 +314,32 @@ _assuan_write_line (assuan_context_t ctx, const char *prefix, { rc = writen (ctx, prefix, prefixlen); if (rc) - rc = _assuan_error (ASSUAN_Write_Error); + rc = _assuan_error (gpg_err_code_from_syserror ()); } if (!rc && !(monitor_result & 2)) { rc = writen (ctx, line, len); if (rc) - rc = _assuan_error (ASSUAN_Write_Error); + rc = _assuan_error (gpg_err_code_from_syserror ()); if (!rc) { rc = writen (ctx, "\n", 1); if (rc) - rc = _assuan_error (ASSUAN_Write_Error); + rc = _assuan_error (gpg_err_code_from_syserror ()); } } return rc; } -assuan_error_t +gpg_error_t assuan_write_line (assuan_context_t ctx, const char *line) { size_t len; const char *s; if (!ctx) - return _assuan_error (ASSUAN_Invalid_Value); + return _assuan_error (GPG_ERR_ASS_INV_VALUE); /* Make sure that we never take a LF from the user - this might violate the protocol. */ @@ -429,7 +430,7 @@ _assuan_cookie_write_data (void *cookie, const char *buffer, size_t orig_size) if ( !(monitor_result & 2) && writen (ctx, ctx->outbound.data.line, linelen)) { - ctx->outbound.data.error = _assuan_error (ASSUAN_Write_Error); + ctx->outbound.data.error = gpg_err_code_from_syserror (); return 0; } line = ctx->outbound.data.line; @@ -483,7 +484,7 @@ _assuan_cookie_write_flush (void *cookie) if ( !(monitor_result & 2) && writen (ctx, ctx->outbound.data.line, linelen)) { - ctx->outbound.data.error = _assuan_error (ASSUAN_Write_Error); + ctx->outbound.data.error = gpg_err_code_from_syserror (); return 0; } ctx->outbound.data.linelen = 0; @@ -513,13 +514,13 @@ _assuan_cookie_write_flush (void *cookie) * Return value: 0 on success or an error code **/ -assuan_error_t +gpg_error_t assuan_send_data (assuan_context_t ctx, const void *buffer, size_t length) { if (!ctx) - return _assuan_error (ASSUAN_Invalid_Value); + return _assuan_error (GPG_ERR_ASS_INV_VALUE); if (!buffer && length > 1) - return _assuan_error (ASSUAN_Invalid_Value); + return _assuan_error (GPG_ERR_ASS_INV_VALUE); if (!buffer) { /* flush what we have */ @@ -539,7 +540,7 @@ assuan_send_data (assuan_context_t ctx, const void *buffer, size_t length) return 0; } -assuan_error_t +gpg_error_t assuan_sendfd (assuan_context_t ctx, assuan_fd_t fd) { /* It is explicitly allowed to use (NULL, -1) as a runtime test to @@ -548,21 +549,21 @@ assuan_sendfd (assuan_context_t ctx, assuan_fd_t fd) #ifdef USE_DESCRIPTOR_PASSING return 0; #else - return _assuan_error (ASSUAN_Not_Implemented); + return _assuan_error (GPG_ERR_NOT_IMPLEMENTED); #endif if (! ctx->io->sendfd) - return set_error (ctx, Not_Implemented, + return set_error (ctx, GPG_ERR_NOT_IMPLEMENTED, "server does not support sending and receiving " "of file descriptors"); return ctx->io->sendfd (ctx, fd); } -assuan_error_t +gpg_error_t assuan_receivefd (assuan_context_t ctx, assuan_fd_t *fd) { if (! ctx->io->receivefd) - return set_error (ctx, Not_Implemented, + return set_error (ctx, GPG_ERR_NOT_IMPLEMENTED, "server does not support sending and receiving " "of file descriptors"); return ctx->io->receivefd (ctx, fd); |