#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <chipcard/chipcard.h>
#include <chipcard/client.h>
const char *failedCommand) {
const char *s;
switch(res) {
s="Ok.";
break;
s="Timeout.";
break;
s="IPC error.";
break;
s="Command error.";
break;
s="Data error.";
break;
s="Aborted.";
break;
s="Invalid argument to command.";
break;
s="Internal error.";
break;
s="Generic error.";
break;
default:
s="Unknown error.";
break;
}
fprintf(stderr, "Error in \"%s\": %s\n", failedCommand, s);
int sw1;
int sw2;
fprintf(stderr, " Last card command result:\n");
if (sw1!=-1 && sw2!=-1)
fprintf(stderr, " SW1=%02x, SW2=%02x\n", sw1, sw2);
if (s)
fprintf(stderr, " Result: %s\n", s);
if (s)
fprintf(stderr, " Text : %s\n", s);
}
}
int main(int argc, char **argv) {
showError(card, res, "Init");
return 1;
}
fprintf(stderr, "INFO: Connecting to server.\n");
showError(card, res, "StartWait");
return 2;
}
fprintf(stderr, "Please insert a chip card.\n");
showError(card, res, "GetNextCard");
return 2;
}
fprintf(stderr, "INFO: Telling the server that we need no more cards.\n");
showError(card, res, "Stop");
return 2;
}
fprintf(stderr, "INFO: Opening card.\n");
showError(card, res, "CardOpen");
return 2;
}
fprintf(stderr, "INFO: I got this card:\n");
fprintf(stderr, "INFO: Closing card.\n");
showError(card, res, "CardClose");
return 2;
}
fprintf(stderr, "INFO: Card closed.\n");
showError(card, res, "CardRelease");
return 2;
}
return 0;
}