FreeCalypso > hg > fc-sim-tools
view libcommon/atr.c @ 45:9eb5460f51a6
main tools: support both pcsc and serial back ends
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 21 Mar 2021 01:56:49 +0000 |
parents | c9ef9e91dd8e |
children |
line wrap: on
line source
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <strings.h> extern FILE *cpipeF, *rpipeF; extern char be_atr_string[]; cmd_atr() { char inbuf[128], *cp; /* do we have it already? */ if (be_atr_string[0]) { printf("ATR: %s\n", be_atr_string); return(0); } /* nope - request it from the BE */ fputs("atr\n", cpipeF); fflush(cpipeF); /* collect BE response */ if (!fgets(inbuf, sizeof inbuf, rpipeF)) { fprintf(stderr, "comm error: EOF reading from back end\n"); return(-1); } cp = index(inbuf, '\n'); if (!cp) { fprintf(stderr, "comm error: response from back end has no newline\n"); return(-1); } *cp = '\0'; if (!inbuf[0]) { fprintf(stderr, "comm error: response from back end is an empty line\n"); return(-1); } puts(inbuf); return(0); }