From 8acf819d407e80606268770af14980d07540b099 Mon Sep 17 00:00:00 2001 From: Marcus Brinkmann Date: Fri, 6 Nov 2009 00:12:59 +0000 Subject: 2009-11-05 Marcus Brinkmann * 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. --- src/vfs-mount.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'src/vfs-mount.c') 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 @@ -55,6 +55,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, @@ -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; -- cgit v1.2.3