aboutsummaryrefslogtreecommitdiffstats
path: root/src/vfs-mount.c
diff options
context:
space:
mode:
authorMarcus Brinkmann <[email protected]>2009-11-06 00:12:59 +0000
committerMarcus Brinkmann <[email protected]>2009-11-06 00:12:59 +0000
commit8acf819d407e80606268770af14980d07540b099 (patch)
tree4d129012bea756c40395fee73dac4dad88dfc877 /src/vfs-mount.c
parent2009-11-05 Marcus Brinkmann <[email protected]> (diff)
downloadgpgme-8acf819d407e80606268770af14980d07540b099.tar.gz
gpgme-8acf819d407e80606268770af14980d07540b099.zip
2009-11-05 Marcus Brinkmann <[email protected]>
* engine-g13.c (struct engine_g13): Remove members RESULT_CB and RESULT_CB_VALUE. (g13_assuan_simple_command, status_handler): Don't use those anymore. (g13_transact): Remove them from argument list, too. * vfs-mount.c (_gpgme_vfs_mount_status_handler): New function. (_gpgme_op_vfs_mount): Pass it to transact.
Diffstat (limited to 'src/vfs-mount.c')
-rw-r--r--src/vfs-mount.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/vfs-mount.c b/src/vfs-mount.c
index 85a92adf..f5a6286c 100644
--- a/src/vfs-mount.c
+++ b/src/vfs-mount.c
@@ -56,6 +56,30 @@ gpgme_op_vfs_mount_result (gpgme_ctx_t ctx)
static gpgme_error_t
+_gpgme_vfs_mount_status_handler (void *priv, const char *code, const char *args)
+{
+ gpgme_ctx_t ctx = (gpgme_ctx_t) priv;
+ gpgme_error_t err;
+ void *hook;
+ op_data_t opd;
+
+ err = _gpgme_op_data_lookup (ctx, OPDATA_VFS_MOUNT, &hook, -1, NULL);
+ opd = hook;
+ if (err)
+ return err;
+
+ if (! strcasecmp ("MOUNTPOINT", code))
+ {
+ if (opd->result.mount_dir)
+ free (opd->result.mount_dir);
+ opd->result.mount_dir = strdup (args);
+ }
+
+ return 0;
+}
+
+
+static gpgme_error_t
vfs_start (gpgme_ctx_t ctx, int synchronous,
const char *command,
gpgme_assuan_data_cb_t data_cb,
@@ -190,7 +214,7 @@ _gpgme_op_vfs_mount (gpgme_ctx_t ctx, const char *container_file,
}
err = gpgme_op_vfs_transact (ctx, cmd, NULL, NULL, NULL, NULL,
- NULL, NULL, op_err);
+ _gpgme_vfs_mount_status_handler, ctx, op_err);
free (cmd);
return err;