1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-12-22 10:19:57 +01:00

agent: Avoid magic numbers. Use more accurate names.

* agent/call-pinentry.c (PINENTRY_STATUS_CLOSE_BUTTON): New constant.
(PINENTRY_STATUS_PIN_REPEATED): Likewise.
(close_button_status_cb): Rename from this...
(pinentry_status_cb): ... to this.  Use the constants.
(agent_askpin): Rename local variable from close_button to
pinentry_status.  Use symbolic constants rather than magic numbers.

--

Signed-off-by: Neal H. Walfield <neal@g10code.com>
This commit is contained in:
Neal H. Walfield 2015-05-06 14:35:22 +02:00
parent 874ef16e70
commit d3b5cad234

View File

@ -710,11 +710,16 @@ setup_qualitybar (void)
return 0; return 0;
} }
enum
{
PINENTRY_STATUS_CLOSE_BUTTON = 1 << 0,
PINENTRY_STATUS_PIN_REPEATED = 1 << 8
};
/* Check the button_info line for a close action. Also check for the /* Check the button_info line for a close action. Also check for the
PIN_REPEATED flag. */ PIN_REPEATED flag. */
static gpg_error_t static gpg_error_t
close_button_status_cb (void *opaque, const char *line) pinentry_status_cb (void *opaque, const char *line)
{ {
unsigned int *flag = opaque; unsigned int *flag = opaque;
const char *args; const char *args;
@ -722,11 +727,11 @@ close_button_status_cb (void *opaque, const char *line)
if ((args = has_leading_keyword (line, "BUTTON_INFO"))) if ((args = has_leading_keyword (line, "BUTTON_INFO")))
{ {
if (!strcmp (args, "close")) if (!strcmp (args, "close"))
*flag = 1; *flag = PINENTRY_STATUS_CLOSE_BUTTON;
} }
else if (has_leading_keyword (line, "PIN_REPEATED")) else if (has_leading_keyword (line, "PIN_REPEATED"))
{ {
*flag |= 256; *flag |= PINENTRY_STATUS_PIN_REPEATED;
} }
return 0; return 0;
@ -752,7 +757,7 @@ agent_askpin (ctrl_t ctrl,
const char *errtext = NULL; const char *errtext = NULL;
int is_pin = 0; int is_pin = 0;
int saveflag; int saveflag;
unsigned int close_button; unsigned int pinentry_status;
if (opt.batch) if (opt.batch)
return 0; /* fixme: we should return BAD PIN */ return 0; /* fixme: we should return BAD PIN */
@ -901,10 +906,10 @@ agent_askpin (ctrl_t ctrl,
saveflag = assuan_get_flag (entry_ctx, ASSUAN_CONFIDENTIAL); saveflag = assuan_get_flag (entry_ctx, ASSUAN_CONFIDENTIAL);
assuan_begin_confidential (entry_ctx); assuan_begin_confidential (entry_ctx);
close_button = 0; pinentry_status = 0;
rc = assuan_transact (entry_ctx, "GETPIN", getpin_cb, &parm, rc = assuan_transact (entry_ctx, "GETPIN", getpin_cb, &parm,
inq_quality, entry_ctx, inq_quality, entry_ctx,
close_button_status_cb, &close_button); pinentry_status_cb, &pinentry_status);
assuan_set_flag (entry_ctx, ASSUAN_CONFIDENTIAL, saveflag); assuan_set_flag (entry_ctx, ASSUAN_CONFIDENTIAL, saveflag);
/* Most pinentries out in the wild return the old Assuan error code /* Most pinentries out in the wild return the old Assuan error code
for canceled which gets translated to an assuan Cancel error and for canceled which gets translated to an assuan Cancel error and
@ -916,7 +921,8 @@ agent_askpin (ctrl_t ctrl,
/* Change error code in case the window close button was clicked /* Change error code in case the window close button was clicked
to cancel the operation. */ to cancel the operation. */
if ((close_button & 1) && gpg_err_code (rc) == GPG_ERR_CANCELED) if ((pinentry_status & PINENTRY_STATUS_CLOSE_BUTTON)
&& gpg_err_code (rc) == GPG_ERR_CANCELED)
rc = gpg_err_make (gpg_err_source (rc), GPG_ERR_FULLY_CANCELED); rc = gpg_err_make (gpg_err_source (rc), GPG_ERR_FULLY_CANCELED);
if (gpg_err_code (rc) == GPG_ERR_ASS_TOO_MUCH_DATA) if (gpg_err_code (rc) == GPG_ERR_ASS_TOO_MUCH_DATA)
@ -954,7 +960,8 @@ agent_askpin (ctrl_t ctrl,
if (!errtext) if (!errtext)
{ {
if (pininfo->with_repeat && (close_button & 256)) if (pininfo->with_repeat
&& (pinentry_status & PINENTRY_STATUS_PIN_REPEATED))
pininfo->repeat_okay = 1; pininfo->repeat_okay = 1;
return unlock_pinentry (0); /* okay, got a PIN or passphrase */ return unlock_pinentry (0); /* okay, got a PIN or passphrase */
} }
@ -978,7 +985,7 @@ agent_get_passphrase (ctrl_t ctrl,
char line[ASSUAN_LINELENGTH]; char line[ASSUAN_LINELENGTH];
struct entry_parm_s parm; struct entry_parm_s parm;
int saveflag; int saveflag;
unsigned int close_button; unsigned int pinentry_status;
*retpass = NULL; *retpass = NULL;
if (opt.batch) if (opt.batch)
@ -1055,10 +1062,10 @@ agent_get_passphrase (ctrl_t ctrl,
saveflag = assuan_get_flag (entry_ctx, ASSUAN_CONFIDENTIAL); saveflag = assuan_get_flag (entry_ctx, ASSUAN_CONFIDENTIAL);
assuan_begin_confidential (entry_ctx); assuan_begin_confidential (entry_ctx);
close_button = 0; pinentry_status = 0;
rc = assuan_transact (entry_ctx, "GETPIN", getpin_cb, &parm, rc = assuan_transact (entry_ctx, "GETPIN", getpin_cb, &parm,
inq_quality, entry_ctx, inq_quality, entry_ctx,
close_button_status_cb, &close_button); pinentry_status_cb, &pinentry_status);
assuan_set_flag (entry_ctx, ASSUAN_CONFIDENTIAL, saveflag); assuan_set_flag (entry_ctx, ASSUAN_CONFIDENTIAL, saveflag);
/* Most pinentries out in the wild return the old Assuan error code /* Most pinentries out in the wild return the old Assuan error code
for canceled which gets translated to an assuan Cancel error and for canceled which gets translated to an assuan Cancel error and
@ -1067,7 +1074,8 @@ agent_get_passphrase (ctrl_t ctrl,
rc = gpg_err_make (gpg_err_source (rc), GPG_ERR_CANCELED); rc = gpg_err_make (gpg_err_source (rc), GPG_ERR_CANCELED);
/* Change error code in case the window close button was clicked /* Change error code in case the window close button was clicked
to cancel the operation. */ to cancel the operation. */
if ((close_button & 1) && gpg_err_code (rc) == GPG_ERR_CANCELED) if ((pinentry_status & PINENTRY_STATUS_CLOSE_BUTTON)
&& gpg_err_code (rc) == GPG_ERR_CANCELED)
rc = gpg_err_make (gpg_err_source (rc), GPG_ERR_FULLY_CANCELED); rc = gpg_err_make (gpg_err_source (rc), GPG_ERR_FULLY_CANCELED);
if (rc) if (rc)