Add offline mode support for CMS keylisting
[gpgme.git] / src / data-user.c
index ca9e9b1..816ad7d 100644 (file)
@@ -1,18 +1,18 @@
 /* data-user.c - A user callback based data object.
    Copyright (C) 2002, 2004 g10 Code GmbH
+
    This file is part of GPGME.
+
    GPGME 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.
-   
+
    GPGME 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, write to the Free Software
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 #include <config.h>
 #endif
 
-#include <sys/types.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
 #include <errno.h>
 
+#include "debug.h"
 #include "data.h"
 
 \f
-static ssize_t
+static gpgme_ssize_t
 user_read (gpgme_data_t dh, void *buffer, size_t size)
 {
   if (!dh->data.user.cbs->read)
     {
-      errno = EBADF;
+      gpg_err_set_errno (EBADF);
       return -1;
     }
 
@@ -41,12 +44,12 @@ user_read (gpgme_data_t dh, void *buffer, size_t size)
 }
 
 
-static ssize_t
+static gpgme_ssize_t
 user_write (gpgme_data_t dh, const void *buffer, size_t size)
 {
   if (!dh->data.user.cbs->write)
     {
-      errno = EBADF;
+      gpg_err_set_errno (EBADF);
       return -1;
     }
 
@@ -54,12 +57,12 @@ user_write (gpgme_data_t dh, const void *buffer, size_t size)
 }
 
 
-static off_t
-user_seek (gpgme_data_t dh, off_t offset, int whence)
+static gpgme_off_t
+user_seek (gpgme_data_t dh, gpgme_off_t offset, int whence)
 {
   if (!dh->data.user.cbs->seek)
     {
-      errno = EBADF;
+      gpg_err_set_errno (EBADF);
       return -1;
     }
 
@@ -86,13 +89,16 @@ static struct _gpgme_data_cbs user_cbs =
 
 \f
 gpgme_error_t
-gpgme_data_new_from_cbs (gpgme_data_t *dh, gpgme_data_cbs_t cbs, void *handle)
+gpgme_data_new_from_cbs (gpgme_data_t *r_dh, gpgme_data_cbs_t cbs, void *handle)
 {
-  gpgme_error_t err = _gpgme_data_new (dh, &user_cbs);
+  gpgme_error_t err;
+  TRACE_BEG1 (DEBUG_DATA, "gpgme_data_new_from_cbs", r_dh, "handle=%p", handle);
+
+  err = _gpgme_data_new (r_dh, &user_cbs);
   if (err)
-    return err;
+    return TRACE_ERR (err);
 
-  (*dh)->data.user.cbs = cbs;
-  (*dh)->data.user.handle = handle;
-  return 0;
+  (*r_dh)->data.user.cbs = cbs;
+  (*r_dh)->data.user.handle = handle;
+  return TRACE_SUC1 ("dh=%p", *r_dh);
 }