diff options
| author | Marcus Brinkmann <[email protected]> | 2008-11-03 17:24:09 +0000 | 
|---|---|---|
| committer | Marcus Brinkmann <[email protected]> | 2008-11-03 17:24:09 +0000 | 
| commit | 66d0fa1973e5e1a1bff619de8b595673d1b76cc5 (patch) | |
| tree | 4b1f8e470fa455cbe3d9b5c4ab6fb4fa77f20ba3 /src/gpgconf.c | |
| parent | assuan/ (diff) | |
| download | gpgme-66d0fa1973e5e1a1bff619de8b595673d1b76cc5.tar.gz gpgme-66d0fa1973e5e1a1bff619de8b595673d1b76cc5.zip | |
008-11-03  Marcus Brinkmann  <[email protected]>
        * configure.ac: Replace gpgme paths with src.
        * gpgme: Move to ...
        * src: ... this new directory.
assuan/
2008-11-03  Marcus Brinkmann  <[email protected]>
	* Makefile.am (INCLUDES): Replace gpgme path with src.
tests/
2008-11-03  Marcus Brinkmann  <[email protected]>
        * gpgsm/Makefile.am (INCLUDES, LDADD): Replace gpgme path with src.
        * gpg/Makefile.am (INCLUDES, LDADD, t_thread1_LDADD): Likewise.
	* Makefile.am (LDADD): Likewise.
Diffstat (limited to 'src/gpgconf.c')
| -rw-r--r-- | src/gpgconf.c | 134 | 
1 files changed, 134 insertions, 0 deletions
| diff --git a/src/gpgconf.c b/src/gpgconf.c new file mode 100644 index 00000000..9fa2ce9e --- /dev/null +++ b/src/gpgconf.c @@ -0,0 +1,134 @@ +/* gpgconf.c - GnuPG Made Easy. +   Copyright (C) 2007 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 +   02111-1307, USA.  */ + +#if HAVE_CONFIG_H +#include <config.h> +#endif + +#include "gpgme.h" + +#include "ops.h" +#include "engine.h" + +#ifdef ENABLE_GPGCONF +/* engine-gpgconf.c.  */ +gpgme_error_t _gpgme_conf_arg_new (gpgme_conf_arg_t *arg_p, +				  gpgme_conf_type_t type, void *value); +void _gpgme_conf_arg_release (gpgme_conf_arg_t arg, gpgme_conf_type_t type); +gpgme_error_t _gpgme_conf_opt_change (gpgme_conf_opt_t opt, int reset, +				      gpgme_conf_arg_t arg); +void _gpgme_conf_release (gpgme_conf_comp_t conf); +gpgme_error_t _gpgme_conf_load (void *engine, gpgme_conf_comp_t *conf_p); +gpgme_error_t gpgme_op_conf_save (gpgme_ctx_t ctx, gpgme_conf_comp_t comp); + +#endif + + +/* Allocate a new gpgme_conf_arg_t.  */ +gpgme_error_t +gpgme_conf_arg_new (gpgme_conf_arg_t *arg_p, +		    gpgme_conf_type_t type, void *value) +{ +#ifdef ENABLE_GPGCONF +  return _gpgme_conf_arg_new (arg_p, type, value); +#else +  return gpg_error (GPG_ERR_NOT_IMPLEMENTED); +#endif +} + + +/* This also releases all chained argument structures!  */ +void +gpgme_conf_arg_release (gpgme_conf_arg_t arg, gpgme_conf_type_t type) +{ +#ifdef ENABLE_GPGCONF +  return _gpgme_conf_arg_release (arg, type); +#endif +} + + +/* Register a change for the value of OPT to ARG.  */ +gpgme_error_t +gpgme_conf_opt_change (gpgme_conf_opt_t opt, int reset, gpgme_conf_arg_t arg) +{ +#ifdef ENABLE_GPGCONF +  return _gpgme_conf_opt_change (opt, reset, arg); +#else +  return gpg_error (GPG_ERR_NOT_IMPLEMENTED); +#endif +} + + + +/* Public function to release a gpgme_conf_comp list.  */ +void +gpgme_conf_release (gpgme_conf_comp_t conf) +{ +#ifdef ENABLE_GPGCONF +  _gpgme_conf_release (conf); +#endif +} + + +/* Public function to release load a configuration list.  No +   asynchronous interface for now.  */ +gpgme_error_t +gpgme_op_conf_load (gpgme_ctx_t ctx, gpgme_conf_comp_t *conf_p) +{ +#ifdef ENABLE_GPGCONF +  gpgme_error_t err; +  gpgme_protocol_t proto = ctx->protocol; + +  ctx->protocol = GPGME_PROTOCOL_GPGCONF; +  err = _gpgme_op_reset (ctx, 1); +  if (err) +    return err; + +  err = _gpgme_engine_op_conf_load (ctx->engine, conf_p); +  ctx->protocol = proto; +  return err; +#else +  return gpg_error (GPG_ERR_NOT_IMPLEMENTED); +#endif +} + + +/* This function does not follow chained components!  */ +gpgme_error_t +gpgme_op_conf_save (gpgme_ctx_t ctx, gpgme_conf_comp_t comp) +{ +#ifdef ENABLE_GPGCONF +  gpgme_error_t err; +  gpgme_protocol_t proto = ctx->protocol; + +  ctx->protocol = GPGME_PROTOCOL_GPGCONF; +  err = _gpgme_op_reset (ctx, 1); +  if (err) +    return err; + +  err = _gpgme_engine_op_conf_save (ctx->engine, comp); +  ctx->protocol = proto; +  return err; +#else +  return gpg_error (GPG_ERR_NOT_IMPLEMENTED); +#endif +} + + | 
