FreeCalypso > hg > fc-pcsc-tools
annotate uicc/main.c @ 114:2c07684a3980
fc-simtool pnn-dump: support output redirection
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Fri, 19 Feb 2021 07:22:56 +0000 |
| parents | acf343dace04 |
| children |
| rev | line source |
|---|---|
|
22
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 #include <sys/types.h> |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 #include <stdio.h> |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 #include <stdlib.h> |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 #include <pcsclite.h> |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 #include <winscard.h> |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 #include "cardif.h" |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 main(argc, argv) |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 char **argv; |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 { |
|
37
acf343dace04
-p reader selection implemented in fc-uicc-tool
Mychaela Falconia <falcon@freecalypso.org>
parents:
33
diff
changeset
|
11 extern int optind; |
|
22
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 char command[512]; |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 int rc; |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 |
|
37
acf343dace04
-p reader selection implemented in fc-uicc-tool
Mychaela Falconia <falcon@freecalypso.org>
parents:
33
diff
changeset
|
15 parse_global_options(argc, argv); |
|
22
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 setup_pcsc_context(); |
|
30
84d1c31d0fad
first round of refactoring for selection among multiple readers
Mychaela Falconia <falcon@freecalypso.org>
parents:
28
diff
changeset
|
17 get_reader_list(); |
|
33
8a4f3d00d997
more refactoring of (select reader by number) logic
Mychaela Falconia <falcon@freecalypso.org>
parents:
30
diff
changeset
|
18 select_reader_by_num(); |
|
37
acf343dace04
-p reader selection implemented in fc-uicc-tool
Mychaela Falconia <falcon@freecalypso.org>
parents:
33
diff
changeset
|
19 if (argc <= optind) |
|
30
84d1c31d0fad
first round of refactoring for selection among multiple readers
Mychaela Falconia <falcon@freecalypso.org>
parents:
28
diff
changeset
|
20 printf("Card reader name: %s\n", selected_reader); |
|
22
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 connect_to_card(); |
|
37
acf343dace04
-p reader selection implemented in fc-uicc-tool
Mychaela Falconia <falcon@freecalypso.org>
parents:
33
diff
changeset
|
22 if (argc > optind) { |
|
acf343dace04
-p reader selection implemented in fc-uicc-tool
Mychaela Falconia <falcon@freecalypso.org>
parents:
33
diff
changeset
|
23 rc = dispatch_ready_argv(argc - optind, argv + optind); |
|
22
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 if (rc) |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 error_exit(); |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 else |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 good_exit(); |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 } |
|
28
78f93e3c9ebf
fc-simtool & fc-uicc-tool: show card reader name and
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
29 retrieve_atr(); |
|
22
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 for (;;) { |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 if (isatty(0)) { |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 fputs("uicc> ", stdout); |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 fflush(stdout); |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 } |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 if (!fgets(command, sizeof command, stdin)) |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 good_exit(); |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 simtool_dispatch_cmd(command, 0); |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 } |
|
1b1468869ccf
new trimmed fc-uicc-tool is here
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 } |
