[svn] gpgme - r1429 - trunk/src
svn author wk
cvs at cvs.gnupg.org
Tue Nov 10 17:32:11 CET 2009
Author: wk
Date: 2009-11-10 17:32:11 +0100 (Tue, 10 Nov 2009)
New Revision: 1429
Modified:
trunk/src/ChangeLog
trunk/src/engine-gpgsm.c
trunk/src/engine-uiserver.c
trunk/src/op-support.c
Log:
Make recipients command work.
Modified: trunk/src/ChangeLog
===================================================================
--- trunk/src/ChangeLog 2009-11-10 15:04:12 UTC (rev 1428)
+++ trunk/src/ChangeLog 2009-11-10 16:32:11 UTC (rev 1429)
@@ -1,8 +1,15 @@
2009-11-10 Werner Koch <wk at g10code.com>
+ * op-support.c (_gpgme_op_reset): Ignore GPG_ERR_NOT_IMPLEMENTED
+ while setting the sub protocol.
+
* engine-uiserver.c (uiserver_new): Pass fdpassing flag to
assuan_socket_connect.
+ (set_recipients): Replace fingerprint by user id.
+ * engine-gpgsm.c (set_recipients): Fix non-terminating loop in
+ case of a missing key.
+
2009-11-10 Marcus Brinkmann <marcus at g10code.de>
* gpgme.c (gpgme_new): Set default sub protocol.
Modified: trunk/src/engine-gpgsm.c
===================================================================
--- trunk/src/engine-gpgsm.c 2009-11-10 15:04:12 UTC (rev 1428)
+++ trunk/src/engine-gpgsm.c 2009-11-10 16:32:11 UTC (rev 1429)
@@ -1161,14 +1161,14 @@
char *line;
int linelen;
int invalid_recipients = 0;
- int i = 0;
+ int i;
linelen = 10 + 40 + 1; /* "RECIPIENT " + guess + '\0'. */
line = malloc (10 + 40 + 1);
if (!line)
return gpg_error_from_errno (errno);
strcpy (line, "RECIPIENT ");
- while (!err && recp[i])
+ for (i =0; !err && recp[i]; i++)
{
char *fpr;
int newlen;
@@ -1205,7 +1205,6 @@
free (line);
return err;
}
- i++;
}
free (line);
return gpg_error (invalid_recipients
Modified: trunk/src/engine-uiserver.c
===================================================================
--- trunk/src/engine-uiserver.c 2009-11-10 15:04:12 UTC (rev 1428)
+++ trunk/src/engine-uiserver.c 2009-11-10 16:32:11 UTC (rev 1429)
@@ -1011,26 +1011,26 @@
char *line;
int linelen;
int invalid_recipients = 0;
- int i = 0;
+ int i;
linelen = 10 + 40 + 1; /* "RECIPIENT " + guess + '\0'. */
line = malloc (10 + 40 + 1);
if (!line)
return gpg_error_from_errno (errno);
strcpy (line, "RECIPIENT ");
- while (!err && recp[i])
+ for (i=0; !err && recp[i]; i++)
{
- char *fpr;
+ char *uid;
int newlen;
- if (!recp[i]->subkeys || !recp[i]->subkeys->fpr)
+ /* We use only the first user ID of the key. */
+ if (!recp[i]->uids || !(uid=recp[i]->uids->uid) || !*uid)
{
invalid_recipients++;
continue;
}
- fpr = recp[i]->subkeys->fpr;
- newlen = 11 + strlen (fpr);
+ newlen = 11 + strlen (uid);
if (linelen < newlen)
{
char *newline = realloc (line, newlen);
@@ -1043,11 +1043,12 @@
line = newline;
linelen = newlen;
}
- strcpy (&line[10], fpr);
+ /* FIXME: need to do proper escaping */
+ strcpy (&line[10], uid);
err = uiserver_assuan_simple_command (ctx, line, uiserver->status.fnc,
- uiserver->status.fnc_value);
- /* FIXME: This requires more work. */
+ uiserver->status.fnc_value);
+ /* FIXME: This might requires more work. */
if (gpg_err_code (err) == GPG_ERR_NO_PUBKEY)
invalid_recipients++;
else if (err)
@@ -1055,7 +1056,6 @@
free (line);
return err;
}
- i++;
}
free (line);
return gpg_error (invalid_recipients
Modified: trunk/src/op-support.c
===================================================================
--- trunk/src/op-support.c 2009-11-10 15:04:12 UTC (rev 1428)
+++ trunk/src/op-support.c 2009-11-10 16:32:11 UTC (rev 1429)
@@ -131,6 +131,8 @@
}
err = _gpgme_engine_set_protocol (ctx->engine, ctx->sub_protocol);
+ if (gpg_err_code (err) == GPG_ERR_NOT_IMPLEMENTED)
+ err = 0;
if (err)
return err;
More information about the Gnupg-commits
mailing list