summaryrefslogtreecommitdiff
path: root/src/assuan-buffer.c
diff options
context:
space:
mode:
authorMarcus Brinkmann <mb@g10code.com>2009-08-26 18:36:49 +0000
committerMarcus Brinkmann <mb@g10code.com>2009-08-26 18:36:49 +0000
commitbca49a41bfb5d3f1e8ce7412d15a865cfc482516 (patch)
tree5066bcc8971f3cdc1c97d17709c0e578eb4817e0 /src/assuan-buffer.c
parent5809572eed9ac2ed694317e036a3cead8e8946d1 (diff)
downloadlibassuan-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.c83
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);