gpgconf: Fix some warnings.
* tests/gpg/t-gpgconf.c (main): Fix warnings. * src/engine-gpgconf.c (struct gpgconf_config_dir_s): New struct. (gpgconf_config_dir_cb, gpgconf_conf_dir) Use it to fix warning. Signed-off-by: Marcus Brinkmann <mb@g10code.com>
This commit is contained in:
parent
97a1abe72e
commit
3244d4daff
@ -986,20 +986,25 @@ gpgconf_conf_save (void *engine, gpgme_conf_comp_t comp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
struct gpgconf_config_dir_s
|
||||||
|
{
|
||||||
|
const char *what;
|
||||||
|
char *result;
|
||||||
|
};
|
||||||
|
|
||||||
static gpgme_error_t
|
static gpgme_error_t
|
||||||
gpgconf_config_dir_cb (void *hook, char *line)
|
gpgconf_config_dir_cb (void *hook, char *line)
|
||||||
{
|
{
|
||||||
/* This is an input- and output-parameter. */
|
/* This is an input- and output-parameter. */
|
||||||
char **str_p = (char **) hook;
|
struct gpgconf_config_dir_s *data = (char **) hook;
|
||||||
char *what = *str_p;
|
int len = strlen(data->what);
|
||||||
int len = strlen(what);
|
|
||||||
|
|
||||||
if (!strncmp(line, what, len) && line[len] == ':')
|
if (!strncmp(line, data->what, len) && line[len] == ':')
|
||||||
{
|
{
|
||||||
char *result = strdup(&line[len + 1]);
|
char *result = strdup(&line[len + 1]);
|
||||||
if (!result)
|
if (!result)
|
||||||
return gpg_error_from_syserror ();
|
return gpg_error_from_syserror ();
|
||||||
*str_p = result;
|
data->result = result;
|
||||||
return gpg_error(GPG_ERR_USER_1);
|
return gpg_error(GPG_ERR_USER_1);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
@ -1010,15 +1015,16 @@ static gpgme_error_t
|
|||||||
gpgconf_conf_dir (void *engine, const char *what, char **result)
|
gpgconf_conf_dir (void *engine, const char *what, char **result)
|
||||||
{
|
{
|
||||||
gpgme_error_t err;
|
gpgme_error_t err;
|
||||||
char *res = what;
|
struct gpgconf_config_dir_s data;
|
||||||
|
|
||||||
*result = NULL;
|
data.what = what;
|
||||||
|
data.result = NULL;
|
||||||
err = gpgconf_read (engine, "--list-dirs", NULL,
|
err = gpgconf_read (engine, "--list-dirs", NULL,
|
||||||
gpgconf_config_dir_cb, &res);
|
gpgconf_config_dir_cb, &data);
|
||||||
if (gpg_err_code (err) == GPG_ERR_USER_1)
|
if (gpg_err_code (err) == GPG_ERR_USER_1)
|
||||||
{
|
{
|
||||||
/* This signals to use that a result was found. */
|
/* This signals to use that a result was found. */
|
||||||
*result = res;
|
*result = data.result;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -263,22 +263,25 @@ main (void)
|
|||||||
err = gpgme_new (&ctx);
|
err = gpgme_new (&ctx);
|
||||||
fail_if_err (err);
|
fail_if_err (err);
|
||||||
|
|
||||||
/* Let's check getting the agent-socket directory for different homedirs. */
|
{
|
||||||
char *result1 = NULL;
|
/* Let's check getting the agent-socket directory for different homedirs. */
|
||||||
err = gpgme_ctx_set_engine_info (ctx, GPGME_PROTOCOL_GPGCONF, NULL, "/tmp/foo");
|
char *result1 = NULL;
|
||||||
fail_if_err (err);
|
char *result2 = NULL;
|
||||||
err = gpgme_op_conf_dir (ctx, "agent-socket", &result1);
|
err = gpgme_ctx_set_engine_info (ctx, GPGME_PROTOCOL_GPGCONF, NULL, "/tmp/foo");
|
||||||
fail_if_err (err);
|
fail_if_err (err);
|
||||||
|
err = gpgme_op_conf_dir (ctx, "agent-socket", &result1);
|
||||||
|
fail_if_err (err);
|
||||||
|
|
||||||
char *result2 = NULL;
|
err = gpgme_ctx_set_engine_info (ctx, GPGME_PROTOCOL_GPGCONF, NULL, NULL);
|
||||||
err = gpgme_ctx_set_engine_info (ctx, GPGME_PROTOCOL_GPGCONF, NULL, NULL);
|
fail_if_err (err);
|
||||||
fail_if_err (err);
|
err = gpgme_op_conf_dir (ctx, "agent-socket", &result2);
|
||||||
err = gpgme_op_conf_dir (ctx, "agent-socket", &result2);
|
fail_if_err (err);
|
||||||
fail_if_err (err);
|
|
||||||
|
|
||||||
/* They have to be different. */
|
|
||||||
test (strcmp(result1, result2));
|
|
||||||
|
|
||||||
|
/* They have to be different. */
|
||||||
|
test (strcmp(result1, result2));
|
||||||
|
gpgme_free (result1);
|
||||||
|
gpgme_free (result2);
|
||||||
|
}
|
||||||
|
|
||||||
err = gpgme_op_conf_load (ctx, &conf);
|
err = gpgme_op_conf_load (ctx, &conf);
|
||||||
fail_if_err (err);
|
fail_if_err (err);
|
||||||
|
Loading…
Reference in New Issue
Block a user