scd: Minor changes to assist in backporting from 2.3

* scd/command.c (send_status_direct): Return an error code.
* scd/app-common.h (APP_LEARN_FLAG_REREAD): New.
This commit is contained in:
Werner Koch 2021-04-29 11:43:46 +02:00
parent 72a7d45a23
commit 3db99b8861
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
3 changed files with 9 additions and 5 deletions

View File

@ -46,6 +46,7 @@
/* Flags used by the app_write_learn_status. */ /* Flags used by the app_write_learn_status. */
#define APP_LEARN_FLAG_KEYPAIRINFO 1 /* Return only keypair infos. */ #define APP_LEARN_FLAG_KEYPAIRINFO 1 /* Return only keypair infos. */
#define APP_LEARN_FLAG_MULTI 2 /* Return info for all apps. */ #define APP_LEARN_FLAG_MULTI 2 /* Return info for all apps. */
#define APP_LEARN_FLAG_REREAD 4 /* Re-read infos from the token. */
/* List of supported card types. Generic is the usual ISO7817-4 /* List of supported card types. Generic is the usual ISO7817-4

View File

@ -1897,15 +1897,17 @@ send_status_info (ctrl_t ctrl, const char *keyword, ...)
/* Send a ready formatted status line via assuan. */ /* Send a ready formatted status line via assuan. */
void gpg_error_t
send_status_direct (ctrl_t ctrl, const char *keyword, const char *args) send_status_direct (ctrl_t ctrl, const char *keyword, const char *args)
{ {
assuan_context_t ctx = ctrl->server_local->assuan_ctx; assuan_context_t ctx = ctrl->server_local->assuan_ctx;
if (strchr (args, '\n')) if (strchr (args, '\n'))
log_error ("error: LF detected in status line - not sending\n"); {
else log_error ("error: LF detected in status line - not sending\n");
assuan_write_status (ctx, keyword, args); return gpg_error (GPG_ERR_INTERNAL);
}
return assuan_write_status (ctx, keyword, args);
} }

View File

@ -124,7 +124,8 @@ gpg_error_t initialize_module_command (void);
int scd_command_handler (ctrl_t, int); int scd_command_handler (ctrl_t, int);
void send_status_info (ctrl_t ctrl, const char *keyword, ...) void send_status_info (ctrl_t ctrl, const char *keyword, ...)
GPGRT_ATTR_SENTINEL(1); GPGRT_ATTR_SENTINEL(1);
void send_status_direct (ctrl_t ctrl, const char *keyword, const char *args); gpg_error_t send_status_direct (ctrl_t ctrl, const char *keyword,
const char *args);
gpg_error_t send_status_printf (ctrl_t ctrl, const char *keyword, gpg_error_t send_status_printf (ctrl_t ctrl, const char *keyword,
const char *format, ...) GPGRT_ATTR_PRINTF(3,4); const char *format, ...) GPGRT_ATTR_PRINTF(3,4);