card.c: Fixes the overriding of max_x_size limitations. In the result, the limitations of cards are adjusted to fit the limitations imposed by the configured reader.
ctx.c: Lookup conf_block of reader_driver by short_name Fixes #269 git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@4878 c6295689-39f2-0310-b995-f0e70906c6a9
This commit is contained in:
parent
5a183a8dc7
commit
821f4fef6d
|
@ -216,11 +216,17 @@ int sc_connect_card(sc_reader_t *reader, sc_card_t **card_out)
|
|||
card->name = card->driver->name;
|
||||
*card_out = card;
|
||||
|
||||
/* Override card limitations with reader limitations */
|
||||
if (reader->driver->max_recv_size > 0)
|
||||
card->max_recv_size = reader->driver->max_recv_size < card->max_recv_size ? reader->driver->max_recv_size : card->max_recv_size;
|
||||
if (reader->driver->max_send_size > 0)
|
||||
card->max_send_size = reader->driver->max_send_size < card->max_send_size ? reader->driver->max_send_size : card->max_send_size;
|
||||
/* Override card limitations with reader limitations.
|
||||
* Note that zero means no limitations at all.
|
||||
*/
|
||||
if ((card->max_recv_size == 0) ||
|
||||
((reader->driver->max_recv_size != 0) && (reader->driver->max_recv_size < card->max_recv_size))) {
|
||||
card->max_recv_size = reader->driver->max_recv_size;
|
||||
}
|
||||
if ((card->max_send_size == 0) ||
|
||||
((reader->driver->max_send_size != 0) && (reader->driver->max_send_size < card->max_send_size))) {
|
||||
card->max_send_size = reader->driver->max_send_size;
|
||||
}
|
||||
|
||||
sc_debug(ctx, SC_LOG_DEBUG_NORMAL, "card info: %s, %i, 0x%X\n",
|
||||
card->name, card->type, card->flags);
|
||||
|
|
|
@ -226,7 +226,7 @@ static void load_reader_driver_options(sc_context_t *ctx)
|
|||
driver->max_send_size = 0;
|
||||
driver->max_recv_size = 0;
|
||||
|
||||
conf_block = sc_get_conf_block(ctx, "reader_driver", driver->name, 1);
|
||||
conf_block = sc_get_conf_block(ctx, "reader_driver", driver->short_name, 1);
|
||||
|
||||
if (conf_block != NULL) {
|
||||
driver->max_send_size = scconf_get_int(conf_block, "max_send_size", driver->max_send_size);
|
||||
|
|
Loading…
Reference in New Issue