Commit f37bb5bd authored by Andreas Rönnquist's avatar Andreas Rönnquist

Imported Upstream version 0.9.7

parent eda6998d
2014-12-12 Werner Koch <wk@gnupg.org>
Release 0.9.7.
po: Auto update.
2014-12-11 Werner Koch <wk@gnupg.org>
Replace deprecated gpgme API for card access.
* src/cardman.c: Use gpgme_op_assuan_transact_ext.
* src/cm-dinsig.c: Ditto.
* src/cm-geldkarte.c: Ditto.
* src/cm-netkey.c: Ditto.
* src/cm-openpgp.c: Ditto.
* src/cm-unknown.c: Ditto.
2014-12-08 Werner Koch <wk@gnupg.org>
po: Use the term "USB stick" for the backup message.
Add another OpenPGP card vendor.
Floppy drives are pretty rare these days advice to use flash.
po: Update the German translation.
Support sending keys with GnuPG 2.1.
* src/confdialog.c (gpa_configure_keyserver): New.
* src/gpa.c (main): Do no get a default keyserver for GnuPG 2.1.
* src/options.c (gpa_options_read_settings): Ditto.
* src/settingsdlg.c (save_settings): Do not set a default keyserver
for GnuPG 2.1
* src/gpaexportserverop.c (confirm_send): Ask to configure keyserver.
Support GnuPG 2.1.
(send_keys): New.
(gpa_export_server_operation_complete_export): Support GnuPG 2.1.
2014-12-05 Werner Koch <wk@gnupg.org>
Update card vendor list and fix one typo.
2014-11-21 Werner Koch <wk@gnupg.org>
Post release updates.
Release 0.9.6.
Do not create gzipped tarball.
......
Noteworthy changes in version 0.9.7 (2014-12-12)
------------------------------------------------
* Support sending keys for GnuPG 2.1.
Noteworthy changes in version 0.9.6 (2014-11-21)
------------------------------------------------
......
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for gpa 0.9.6.
# Generated by GNU Autoconf 2.69 for gpa 0.9.7.
#
# Report bugs to <http://bugs.gnupg.org>.
#
......@@ -580,8 +580,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='gpa'
PACKAGE_TARNAME='gpa'
PACKAGE_VERSION='0.9.6'
PACKAGE_STRING='gpa 0.9.6'
PACKAGE_VERSION='0.9.7'
PACKAGE_STRING='gpa 0.9.7'
PACKAGE_BUGREPORT='http://bugs.gnupg.org'
PACKAGE_URL=''
......@@ -1337,7 +1337,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures gpa 0.9.6 to adapt to many kinds of systems.
\`configure' configures gpa 0.9.7 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
......@@ -1407,7 +1407,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of gpa 0.9.6:";;
short | recursive ) echo "Configuration of gpa 0.9.7:";;
esac
cat <<\_ACEOF
......@@ -1522,7 +1522,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
gpa configure 0.9.6
gpa configure 0.9.7
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
......@@ -1891,7 +1891,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by gpa $as_me 0.9.6, which was
It was created by gpa $as_me 0.9.7, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
......@@ -2717,7 +2717,7 @@ fi
# Define the identity of the package.
PACKAGE='gpa'
VERSION='0.9.6'
VERSION='0.9.7'
cat >>confdefs.h <<_ACEOF
......@@ -2787,7 +2787,7 @@ have_libassuan=no
#
# Provide information about the build.
#
BUILD_REVISION="886e24f"
BUILD_REVISION="8ce9480"
cat >>confdefs.h <<_ACEOF
......@@ -2796,7 +2796,7 @@ _ACEOF
BUILD_FILEVERSION=`echo "$VERSION" | sed 's/\([0-9.]*\).*/\1./;s/\./,/g'`
BUILD_FILEVERSION="${BUILD_FILEVERSION}34926"
BUILD_FILEVERSION="${BUILD_FILEVERSION}36073"
BUILD_TIMESTAMP=`date -u +%Y-%m-%dT%H:%M+0000 2>/dev/null || date`
......@@ -9682,7 +9682,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by gpa $as_me 0.9.6, which was
This file was extended by gpa $as_me 0.9.7, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
......@@ -9748,7 +9748,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
gpa config.status 0.9.6
gpa config.status 0.9.7
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
......@@ -10739,6 +10739,6 @@ fi
echo "
GPA v${VERSION} has been configured as follows:
Revision: 886e24f (34926)
Revision: 8ce9480 (36073)
Platform: $host
"
......@@ -28,7 +28,7 @@ min_automake_version="1.10"
# (git tag -s gpa-1.n.m) and run "./autogen.sh --force". Please
# bump the version number immediately *after* the release and do
# another commit and push so that the git magic is able to work.
m4_define([mym4_version], [0.9.6])
m4_define([mym4_version], [0.9.7])
# Below is m4 magic to extract and compute the git revision number,
# the decimalized short revision number, a beta version string and a
......
No preview for this file type
This diff is collapsed.
No preview for this file type
This diff is collapsed.
No preview for this file type
This diff is collapsed.
No preview for this file type
This diff is collapsed.
No preview for this file type
This diff is collapsed.
This diff is collapsed.
No preview for this file type
This diff is collapsed.
No preview for this file type
This diff is collapsed.
No preview for this file type
This diff is collapsed.
No preview for this file type
This diff is collapsed.
No preview for this file type
This diff is collapsed.
No preview for this file type
This diff is collapsed.
No preview for this file type
This diff is collapsed.
No preview for this file type
This diff is collapsed.
......@@ -289,7 +289,7 @@ card_reload_finish_idle_cb (void *user_data)
static void
card_reload (GpaCardManager *cardman)
{
gpg_error_t err;
gpg_error_t err, operr;
const char *application;
char *command_buf = NULL;
const char *command;
......@@ -327,14 +327,14 @@ card_reload (GpaCardManager *cardman)
}
else
auto_app = 1;
err = gpgme_op_assuan_transact (cardman->gpgagent,
command,
scd_data_cb, NULL,
scd_inq_cb, NULL,
scd_status_cb, cardman);
err = gpgme_op_assuan_transact_ext (cardman->gpgagent,
command,
scd_data_cb, NULL,
scd_inq_cb, NULL,
scd_status_cb, cardman, &operr);
if (!err)
{
err = gpgme_op_assuan_result (cardman->gpgagent)->err;
err = operr;
if (!auto_app
&& gpg_err_source (err) == GPG_ERR_SOURCE_SCD
&& gpg_err_code (err) == GPG_ERR_CONFLICT)
......@@ -344,19 +344,20 @@ card_reload (GpaCardManager *cardman)
again to display an application selection conflict
error only if it is not due to our own connection to
the scdaemon. */
if (!gpgme_op_assuan_transact (cardman->gpgagent,
"SCD RESTART",
NULL, NULL, NULL, NULL,
NULL, NULL)
&& !gpgme_op_assuan_result (cardman->gpgagent)->err)
if (!gpgme_op_assuan_transact_ext (cardman->gpgagent,
"SCD RESTART",
NULL, NULL, NULL, NULL,
NULL, NULL, &operr)
&& !operr)
{
err = gpgme_op_assuan_transact (cardman->gpgagent,
command,
scd_data_cb, NULL,
scd_inq_cb, NULL,
scd_status_cb, cardman);
err = gpgme_op_assuan_transact_ext (cardman->gpgagent,
command,
scd_data_cb, NULL,
scd_inq_cb, NULL,
scd_status_cb, cardman,
&operr);
if (!err)
err = gpgme_op_assuan_result (cardman->gpgagent)->err;
err = operr;
}
}
}
......@@ -388,9 +389,10 @@ card_reload (GpaCardManager *cardman)
{
g_debug ("assuan command `%s' failed: %s <%s>\n",
command, gpg_strerror (err), gpg_strsource (err));
if (!gpgme_op_assuan_transact (cardman->gpgagent,
"SCD SERIALNO undefined",
NULL, NULL, NULL, NULL, NULL, NULL))
if (!gpgme_op_assuan_transact_ext (cardman->gpgagent,
"SCD SERIALNO undefined",
NULL, NULL, NULL, NULL,
NULL, NULL, &operr) && !operr)
err = 0;
else
{
......@@ -405,22 +407,22 @@ card_reload (GpaCardManager *cardman)
{
/* Get the event counter to avoid a duplicate reload due to
the ticker. */
gpgme_op_assuan_transact (cardman->gpgagent,
"GETEVENTCOUNTER",
NULL, NULL,
NULL, NULL,
scd_status_cb, cardman);
gpgme_op_assuan_transact_ext (cardman->gpgagent,
"GETEVENTCOUNTER",
NULL, NULL,
NULL, NULL,
scd_status_cb, cardman, NULL);
/* Now we need to get the APPTYPE of the card so that the
correct GpaCM* object can can act on the data. */
command = "SCD GETATTR APPTYPE";
err = gpgme_op_assuan_transact (cardman->gpgagent,
command,
scd_data_cb, NULL,
scd_inq_cb, NULL,
scd_status_cb, cardman);
err = gpgme_op_assuan_transact_ext (cardman->gpgagent,
command,
scd_data_cb, NULL,
scd_inq_cb, NULL,
scd_status_cb, cardman, &operr);
if (!err)
err = gpgme_op_assuan_result (cardman->gpgagent)->err;
err = operr;
if (gpg_err_code (err) == GPG_ERR_CARD_NOT_PRESENT
|| gpg_err_code (err) == GPG_ERR_CARD_REMOVED)
......@@ -522,11 +524,11 @@ ticker_cb (gpointer user_data)
/* Note that we are single threaded and thus there is no need to
lock the assuan context. */
gpgme_op_assuan_transact (cardman->gpgagent,
"GETEVENTCOUNTER",
NULL, NULL,
NULL, NULL,
geteventcounter_status_cb, cardman);
gpgme_op_assuan_transact_ext (cardman->gpgagent,
"GETEVENTCOUNTER",
NULL, NULL,
NULL, NULL,
geteventcounter_status_cb, cardman, NULL);
return TRUE; /* Keep on ticking. */
}
......@@ -564,8 +566,8 @@ card_genkey_completed (GpaCardManager *cardman, gpg_error_t err)
static void
card_genkey (GpaCardManager *cardman)
{
gpg_error_t err, operr;
GpaGenKeyCardOperation *op;
gpg_error_t err;
char *keyattr;
if (cardman->cardtype != GPA_CM_OPENPGP_TYPE)
......@@ -578,11 +580,13 @@ card_genkey (GpaCardManager *cardman)
/* Note: This test works only with GnuPG > 2.0.10 but that version
is anyway required for the card manager to work correctly. */
err = gpgme_op_assuan_transact (cardman->gpgagent,
"SCD GETINFO deny_admin",
NULL, NULL, NULL, NULL, NULL, NULL);
err = gpgme_op_assuan_transact_ext (cardman->gpgagent,
"SCD GETINFO deny_admin",
NULL, NULL, NULL, NULL, NULL, NULL,
&operr);
if (!err)
err = gpgme_op_assuan_result (cardman->gpgagent)->err;
err = operr;
if (!err)
{
gpa_window_error ("Admin commands are disabled in scdamon.\n"
......@@ -844,7 +848,7 @@ setup_app_selector_data_cb (void *opaque, const void *data, size_t datalen)
static void
setup_app_selector (GpaCardManager *cardman)
{
gpg_error_t err;
gpg_error_t err, operr;
membuf_t mb;
char *string;
char *p, *p0, *p1;
......@@ -854,11 +858,11 @@ setup_app_selector (GpaCardManager *cardman)
init_membuf (&mb, 256);
err = gpgme_op_assuan_transact (cardman->gpgagent,
"SCD GETINFO app_list",
setup_app_selector_data_cb, &mb,
NULL, NULL, NULL, NULL);
if (err || gpgme_op_assuan_result (cardman->gpgagent)->err)
err = gpgme_op_assuan_transact_ext (cardman->gpgagent,
"SCD GETINFO app_list",
setup_app_selector_data_cb, &mb,
NULL, NULL, NULL, NULL, &operr);
if (err || operr)
{
g_free (get_membuf (&mb, NULL));
return;
......
......@@ -14,7 +14,7 @@
* License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>.
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
/* DINSIG is the old and still used standard for smartcards to create
......@@ -32,7 +32,7 @@
#include <string.h>
#include <assert.h>
#include "gpa.h"
#include "gpa.h"
#include "gtktools.h"
#include "convert.h"
......@@ -48,12 +48,12 @@ enum
ENTRY_SERIALNO,
ENTRY_LAST
};
};
/* Object's class definition. */
struct _GpaCMDinsigClass
struct _GpaCMDinsigClass
{
GpaCMObjectClass parent_class;
};
......@@ -81,7 +81,7 @@ static void gpa_cm_dinsig_finalize (GObject *object);
/************************************************************
/************************************************************
******************* Implementation *********************
************************************************************/
......@@ -126,17 +126,17 @@ scd_getattr_cb (void *opaque, const char *status, const char *args)
if (parm->updfnc)
parm->updfnc (parm->card, entry_id, tmp);
else if (GTK_IS_LABEL (parm->card->entries[entry_id]))
gtk_label_set_text
gtk_label_set_text
(GTK_LABEL (parm->card->entries[entry_id]), tmp);
else
gtk_entry_set_text
gtk_entry_set_text
(GTK_ENTRY (parm->card->entries[entry_id]), tmp);
xfree (tmp);
}
}
return 0;
}
}
/* Use the assuan machinery to load the bulk of the OpenPGP card data. */
......@@ -152,7 +152,7 @@ reload_data (GpaCMDinsig *card)
{ NULL }
};
int attridx;
gpg_error_t err;
gpg_error_t err, operr;
char command[100];
struct scd_getattr_parm parm;
gpgme_ctx_t gpgagent;
......@@ -168,13 +168,13 @@ reload_data (GpaCMDinsig *card)
parm.entry_id = attrtbl[attridx].entry_id;
parm.updfnc = attrtbl[attridx].updfnc;
snprintf (command, sizeof command, "SCD GETATTR %s", parm.name);
err = gpgme_op_assuan_transact (gpgagent,
command,
NULL, NULL,
NULL, NULL,
scd_getattr_cb, &parm);
err = gpgme_op_assuan_transact_ext (gpgagent,
command,
NULL, NULL,
NULL, NULL,
scd_getattr_cb, &parm, &operr);
if (!err)
err = gpgme_op_assuan_result (gpgagent)->err;
err = operr;
if (err)
{
......@@ -182,7 +182,7 @@ reload_data (GpaCMDinsig *card)
; /* Lost the card. */
else
{
g_debug ("assuan command `%s' failed: %s <%s>\n",
g_debug ("assuan command `%s' failed: %s <%s>\n",
command, gpg_strerror (err), gpg_strsource (err));
}
clear_card_data (card);
......@@ -206,12 +206,12 @@ add_table_row (GtkWidget *table, int *rowidx,
label = gtk_label_new (labelstr);
gtk_label_set_width_chars (GTK_LABEL (label), 22);
gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
gtk_table_attach (GTK_TABLE (table), label, 0, 1,
*rowidx, *rowidx + 1, GTK_FILL, GTK_SHRINK, 0, 0);
gtk_table_attach (GTK_TABLE (table), label, 0, 1,
*rowidx, *rowidx + 1, GTK_FILL, GTK_SHRINK, 0, 0);
if (is_label)
gtk_misc_set_alignment (GTK_MISC (widget), 0, 0.5);
if (readonly)
{
if (!is_label && GTK_IS_ENTRY (widget))
......@@ -225,7 +225,7 @@ add_table_row (GtkWidget *table, int *rowidx,
if (is_label)
gtk_label_set_selectable (GTK_LABEL (widget), TRUE);
}
gtk_table_attach (GTK_TABLE (table), widget, 1, 2,
*rowidx, *rowidx + 1, GTK_FILL, GTK_SHRINK, 0, 0);
if (widget2)
......@@ -259,18 +259,18 @@ construct_data_widget (GpaCMDinsig *card)
gtk_container_set_border_width (GTK_CONTAINER (table), 10);
gtk_container_add (GTK_CONTAINER (frame), table);
rowidx = 0;
card->entries[ENTRY_SERIALNO] = gtk_label_new (NULL);
add_table_row (table, &rowidx, _("Serial number:"),
card->entries[ENTRY_SERIALNO], NULL, 0);
gtk_box_pack_start (GTK_BOX (card), frame, FALSE, TRUE, 0);
/* Info frame. */
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
vbox = gtk_vbox_new (FALSE, 5);
text = g_strdup_printf
text = g_strdup_printf
(_("There is not much information to display for a %s card. "
"You may want to use the application selector button to "
"switch to another application available on this card."), "DINSIG");
......@@ -281,12 +281,12 @@ construct_data_widget (GpaCMDinsig *card)
gtk_container_add (GTK_CONTAINER (frame), vbox);
gtk_box_pack_start (GTK_BOX (card), frame, FALSE, TRUE, 0);
}
/************************************************************
/************************************************************
****************** Object Management ********************
************************************************************/
......@@ -296,7 +296,7 @@ gpa_cm_dinsig_class_init (void *class_ptr, void *class_data)
GpaCMDinsigClass *klass = class_ptr;
parent_class = g_type_class_peek_parent (klass);
G_OBJECT_CLASS (klass)->finalize = gpa_cm_dinsig_finalize;
}
......@@ -313,7 +313,7 @@ gpa_cm_dinsig_init (GTypeInstance *instance, void *class_ptr)
static void
gpa_cm_dinsig_finalize (GObject *object)
{
{
/* GpaCMDinsig *card = GPA_CM_DINSIG (object); */
parent_class->finalize (object);
......@@ -325,7 +325,7 @@ GType
gpa_cm_dinsig_get_type (void)
{
static GType this_type = 0;
if (!this_type)
{
static const GTypeInfo this_info =
......@@ -340,23 +340,23 @@ gpa_cm_dinsig_get_type (void)
0, /* n_preallocs */
gpa_cm_dinsig_init
};
this_type = g_type_register_static (GPA_CM_OBJECT_TYPE,
"GpaCMDinsig",
&this_info, 0);
}
return this_type;
}
/************************************************************
/************************************************************
********************** Public API ************************
************************************************************/
GtkWidget *
gpa_cm_dinsig_new ()
{
return GTK_WIDGET (g_object_new (GPA_CM_DINSIG_TYPE, NULL));
return GTK_WIDGET (g_object_new (GPA_CM_DINSIG_TYPE, NULL));
}
......
This diff is collapsed.
......@@ -319,7 +319,7 @@ reload_more_data_cb (void *opaque, const char *status, const char *args)
static void
reload_more_data (GpaCMNetkey *card)
{
gpg_error_t err;
gpg_error_t err, operr;
gpgme_ctx_t gpgagent;
GtkWidget *vbox;
struct reload_more_data_parm parm;
......@@ -355,13 +355,14 @@ reload_more_data (GpaCMNetkey *card)
g_debug (" parm.ctx=%p", parm.ctx);
err = gpgme_op_assuan_transact (gpgagent,
"SCD LEARN --keypairinfo",
NULL, NULL, NULL, NULL,
reload_more_data_cb, &parm);
err = gpgme_op_assuan_transact_ext (gpgagent,
"SCD LEARN --keypairinfo",
NULL, NULL, NULL, NULL,
reload_more_data_cb, &parm, &operr);
g_debug (" assuan ret=%d", err);
if (!err)
err = gpgme_op_assuan_result (gpgagent)->err;
err = operr;
if (err)
g_debug ("SCD LEARN failed: %s", gpg_strerror (err));
......@@ -479,6 +480,7 @@ reload_data (GpaCMNetkey *card)
};
int attridx;
gpg_error_t err = 0;
gpg_error_t operr;
char command[100];
struct scd_getattr_parm parm;
gpgme_ctx_t gpgagent;
......@@ -497,13 +499,13 @@ reload_data (GpaCMNetkey *card)
parm.entry_id = attrtbl[attridx].entry_id;
parm.updfnc = attrtbl[attridx].updfnc;
snprintf (command, sizeof command, "SCD GETATTR %s", parm.name);
err = gpgme_op_assuan_transact (gpgagent,
command,
NULL, NULL,
NULL, NULL,
scd_getattr_cb, &parm);
err = gpgme_op_assuan_transact_ext (gpgagent,
command,
NULL, NULL,
NULL, NULL,
scd_getattr_cb, &parm, &operr);
if (!err)
err = gpgme_op_assuan_result (gpgagent)->err;
err = operr;
if (err && attrtbl[attridx].entry_id == ENTRY_NKS_VERSION)
{
......@@ -616,7 +618,7 @@ learn_keys_clicked_cb (GtkButton *button, void *user_data)
static void
change_nullpin (GpaCMNetkey *card)
{
gpg_error_t err;
gpg_error_t err, operr;
GtkWidget *dialog;
gpgme_ctx_t gpgagent;
int is_sigg;
......@@ -666,15 +668,16 @@ change_nullpin (GpaCMNetkey *card)
okay = (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK);
if (okay)
{
err = gpgme_op_assuan_transact (gpgagent,
is_sigg
? "SCD PASSWD --nullpin PW1.CH.SIG"
: "SCD PASSWD --nullpin PW1.CH",
NULL, NULL,
NULL, NULL,
NULL, NULL);
err = gpgme_op_assuan_transact_ext (gpgagent,
is_sigg
? "SCD PASSWD --nullpin PW1.CH.SIG"
: "SCD PASSWD --nullpin PW1.CH",
NULL, NULL,
NULL, NULL,
NULL, NULL, &operr);
if (!err)
err = gpgme_op_assuan_result (gpgagent)->err;
err = operr;
if (gpg_err_code (err) == GPG_ERR_CANCELED)
okay = 0; /* No need to reload the data. */
else if (err)
......@@ -696,7 +699,7 @@ change_nullpin (GpaCMNetkey *card)
static void
change_or_reset_pin (GpaCMNetkey *card, int info_idx)
{
gpg_error_t err;
gpg_error_t err, operr;
GtkWidget *dialog;
gpgme_ctx_t gpgagent;
int reset_mode;
......@@ -781,10 +784,12 @@ change_or_reset_pin (GpaCMNetkey *card, int info_idx)
snprintf (command, sizeof command, "SCD PASSWD%s %s",
reset_mode? " --reset":"", pwidstr);
err = gpgme_op_assuan_transact (gpgagent, command,
NULL, NULL, NULL, NULL, NULL, NULL);
err = gpgme_op_assuan_transact_ext (gpgagent, command,
NULL, NULL, NULL, NULL, NULL, NULL,
&operr);
if (!err)
err = gpgme_op_assuan_result (gpgagent)->err;
err = operr;
if (gpg_err_code (err) == GPG_ERR_CANCELED)
okay = 0; /* No need to reload the data. */
else if (err)
......
This diff is collapsed.
......@@ -86,7 +86,7 @@ scd_atr_data_cb (void *opaque, const void *data, size_t datalen)
static void
reload_data (GpaCMUnknown *card)
{
gpg_error_t err;
gpg_error_t err, operr;
char command[100];
gpgme_ctx_t gpgagent;
membuf_t mb;
......@@ -99,12 +99,12 @@ reload_data (GpaCMUnknown *card)
init_membuf (&mb, 512);
err = gpgme_op_assuan_transact (gpgagent,
"SCD APDU --dump-atr",
scd_atr_data_cb, &mb,
NULL, NULL, NULL, NULL);
err = gpgme_op_assuan_transact_ext (gpgagent,
"SCD APDU --dump-atr",
scd_atr_data_cb, &mb,
NULL, NULL, NULL, NULL, &operr);
if (!err)
err = gpgme_op_assuan_result (gpgagent)->err;
err = operr;
if (!err)
{
......
This diff is collapsed.
......@@ -25,13 +25,14 @@ GtkWidget *gpa_backend_config_dialog_new (void);
char *gpa_load_gpgconf_string (const char *cname, const char *name);