use sc_ctx_get_reader() etc. instead of of accessing the structure members directly

git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@2848 c6295689-39f2-0310-b995-f0e70906c6a9
This commit is contained in:
nils 2006-02-15 17:29:40 +00:00
parent a092e863b8
commit 9c42d1dc8c
4 changed files with 29 additions and 21 deletions

View File

@ -1091,6 +1091,7 @@ int main(int argc, char * const argv[])
int do_list_keys = 0;
int do_store_key = 0;
int do_create_pin_file = 0;
sc_reader_t *screader= NULL;
sc_context_param_t ctx_param;
while (1) {
@ -1173,19 +1174,24 @@ int main(int argc, char * const argv[])
}
if (verbose > 1)
ctx->debug = verbose-1;
if (opt_reader >= ctx->reader_count || opt_reader < 0) {
fprintf(stderr, "Illegal reader number. Only %d reader(s) configured.\n", ctx->reader_count);
if (opt_reader >= (int)sc_ctx_get_reader_count(ctx) || opt_reader < 0) {
fprintf(stderr, "Illegal reader number. Only %d reader(s) configured.\n", sc_ctx_get_reader_count(ctx));
err = 1;
goto end;
}
if (sc_detect_card_presence(ctx->reader[opt_reader], 0) <= 0) {
screader = sc_ctx_get_reader(ctx, opt_reader);
if (screader == NULL) {
err = 1;
goto end;
}
if (sc_detect_card_presence(screader, 0) <= 0) {
fprintf(stderr, "Card not present.\n");
err = 3;
goto end;
}
if (verbose)
fprintf(stderr, "Connecting to card in reader %s...\n", ctx->reader[opt_reader]->name);
r = sc_connect_card(ctx->reader[opt_reader], 0, &card);
fprintf(stderr, "Connecting to card in reader %s...\n", screader->name);
r = sc_connect_card(screader, 0, &card);
if (r) {
fprintf(stderr, "Failed to connect to card: %s\n", sc_strerror(r));
err = 1;

View File

@ -394,11 +394,11 @@ int main(int argc, char **argv)
sc_strerror(r));
return 1;
}
if (reader_num > ctx->reader_count) {
fprintf(stderr, "Illegal reader number. Only %d reader(s) configured.\n", ctx->reader_count);
if (reader_num > (int)sc_ctx_get_reader_count(ctx)) {
fprintf(stderr, "Illegal reader number. Only %d reader(s) configured.\n", sc_ctx_get_reader_count(ctx));
return 1;
}
reader = ctx->reader[reader_num];
reader = sc_ctx_get_reader(ctx, (unsigned int)reader_num);
r = sc_connect_card(reader, 0, &card);
if (r) {

View File

@ -82,17 +82,18 @@ sc_card_t *card = NULL;
static int list_readers(void)
{
int i;
unsigned int i, rcount = sc_ctx_get_reader_count(ctx);
if (ctx->reader_count == 0) {
if (rcount == 0) {
printf("No readers configured!\n");
return 0;
}
printf("Readers known about:\n");
printf("Nr. Driver Name\n");
for (i = 0; i < ctx->reader_count; i++) {
printf("%-7d%-11s%s\n", i, ctx->reader[i]->driver->short_name,
ctx->reader[i]->name);
for (i = 0; i < rcount; i++) {
sc_reader_t *screader = sc_ctx_get_reader(ctx, i);
printf("%-7d%-11s%s\n", i, screader->driver->short_name,
screader->name);
}
return 0;
}

View File

@ -17,13 +17,14 @@ int connect_card(sc_context_t *ctx, sc_card_t **cardp,
if (wait) {
sc_reader_t *readers[16];
int slots[16];
int i, j, k, found;
unsigned int i;
int j, k, found;
unsigned int event;
for (i = k = 0; i < ctx->reader_count; i++) {
if (reader_id >= 0 && reader_id != i)
for (i = k = 0; i < sc_ctx_get_reader_count(ctx); i++) {
if (reader_id >= 0 && (unsigned int)reader_id != i)
continue;
reader = ctx->reader[i];
reader = sc_ctx_get_reader(ctx, i);
for (j = 0; j < reader->slot_count; j++, k++) {
readers[k] = reader;
slots[k] = j;
@ -46,20 +47,20 @@ int connect_card(sc_context_t *ctx, sc_card_t **cardp,
} else {
if (reader_id < 0)
reader_id = 0;
if (ctx->reader_count == 0) {
if (sc_ctx_get_reader_count(ctx) == 0) {
fprintf(stderr,
"No smart card readers configured.\n");
return 1;
}
if (reader_id >= ctx->reader_count) {
if ((unsigned int)reader_id >= sc_ctx_get_reader_count(ctx)) {
fprintf(stderr,
"Illegal reader number. "
"Only %d reader(s) configured.\n",
ctx->reader_count);
sc_ctx_get_reader_count(ctx));
return 1;
}
reader = ctx->reader[reader_id];
reader = sc_ctx_get_reader(ctx, reader_id);
slot_id = 0;
if (sc_detect_card_presence(reader, 0) <= 0) {
fprintf(stderr, "Card not present.\n");