Esempio n. 1
0
static int32_t reader_get_cardsystem(struct s_reader *reader, ATR *atr)
{
	int32_t i;
	for(i = 0; cardsystems[i]; i++)
	{
		NULLFREE(reader->csystem_data);
		const struct s_cardsystem *csystem = cardsystems[i];
		if(csystem->card_init(reader, atr))
		{
			rdr_log(reader, "found card system %s", csystem->desc);
			reader->csystem = csystem;
			reader->csystem_active = true;
			led_status_found_cardsystem();
			break;
		}
		else
		{
			// On error free allocated card system data if any
			if(csystem->card_done)
				csystem->card_done(reader);
			NULLFREE(reader->csystem_data);
		}
	}

	if(!reader->csystem_active)
	{
		rdr_log(reader, "card system not supported");
		led_status_unsupported_card_system();
	}

	return (reader->csystem_active);
}
Esempio n. 2
0
static int32_t reader_get_cardsystem(struct s_reader * reader, ATR *atr)
{
	int32_t i;
	for (i=0; i<CS_MAX_MOD; i++) {
		if (cardsystems[i].card_init) {
			NULLFREE(reader->csystem_data);
			if (cardsystems[i].card_init(reader, atr)) {
				rdr_log(reader, "found card system %s", cardsystems[i].desc);
				reader->csystem=cardsystems[i];
				reader->csystem.active=1;
				led_status_found_cardsystem();
				break;
			} else {
				// On error free allocated card system data if any
				NULLFREE(reader->csystem_data);
			}
		}
	}

	if (reader->csystem.active==0)
	{
		rdr_log(reader, "card system not supported");
		led_status_unsupported_card_system();
	}

	return(reader->csystem.active);
}
Esempio n. 3
0
static int32_t reader_get_cardsystem(struct s_reader * reader, ATR *atr)
{
	int32_t i;
	for (i=0; i<CS_MAX_MOD; i++) {
		if (cardsystem[i].card_init) {
			if (cardsystem[i].card_init(reader, atr)) {
				rdr_log(reader, "found cardsystem %s", cardsystem[i].desc);
				reader->csystem=cardsystem[i];
				reader->csystem.active=1;
				led_status_found_cardsystem();
				break;
			}
		}
	}

	if (reader->csystem.active==0)
	{
		rdr_log(reader, "card system not supported");
		led_status_unsupported_card_system();
	}

	return(reader->csystem.active);
}