|
@@ -129,8 +129,9 @@ static void usage(const char *argv0)
|
|
|
{
|
|
|
fprintf(stderr, "Usage: %s --gen sealedprivkeyfile pubkeyfile\n",
|
|
|
argv0);
|
|
|
- fprintf(stderr, "or %s sealedprivkeyfile myname [args] < config.json\n",
|
|
|
+ fprintf(stderr, "or %s -k sealedprivkeyfile -n myname [-t nthreads] [command] < config.json\n",
|
|
|
argv0);
|
|
|
+ exit(1);
|
|
|
}
|
|
|
|
|
|
int main(int argc, char **argv)
|
|
@@ -150,7 +151,6 @@ int main(int argc, char **argv)
|
|
|
if (argc > 1 && !strcmp(argv[1], "--gen")) {
|
|
|
if (argc != 4) {
|
|
|
usage(argv[0]);
|
|
|
- exit(1);
|
|
|
}
|
|
|
|
|
|
const char *sealedprivkeyfile = argv[2];
|
|
@@ -173,13 +173,43 @@ int main(int argc, char **argv)
|
|
|
exit(1);
|
|
|
}
|
|
|
|
|
|
- if (argc < 3) {
|
|
|
- usage(argv[0]);
|
|
|
- exit(1);
|
|
|
+ const char *sealedprivkeyfile = NULL;
|
|
|
+ const char *myname = NULL;
|
|
|
+ uint16_t nthreads = 1;
|
|
|
+
|
|
|
+ const char *progname = argv[0];
|
|
|
+ ++argv;
|
|
|
+ // Parse options
|
|
|
+ while (*argv && (*argv)[0] == '-') {
|
|
|
+ if (!strcmp(*argv, "--")) {
|
|
|
+ argv += 1;
|
|
|
+ break;
|
|
|
+ } else if (!strcmp(*argv, "-k")) {
|
|
|
+ if (argv[1] == NULL) {
|
|
|
+ usage(progname);
|
|
|
+ }
|
|
|
+ sealedprivkeyfile = argv[1];
|
|
|
+ argv += 2;
|
|
|
+ } else if (!strcmp(*argv, "-n")) {
|
|
|
+ if (argv[1] == NULL) {
|
|
|
+ usage(progname);
|
|
|
+ }
|
|
|
+ myname = argv[1];
|
|
|
+ argv += 2;
|
|
|
+ } else if (!strcmp(*argv, "-t")) {
|
|
|
+ if (argv[1] == NULL) {
|
|
|
+ usage(progname);
|
|
|
+ }
|
|
|
+ nthreads = uint16_t(atoi(argv[1]));
|
|
|
+ argv += 2;
|
|
|
+ } else {
|
|
|
+ usage(progname);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- const char *sealedprivkeyfile = argv[1];
|
|
|
- std::string myname(argv[2]);
|
|
|
+ if (sealedprivkeyfile == NULL || myname == NULL) {
|
|
|
+ usage(progname);
|
|
|
+ }
|
|
|
|
|
|
// Read the config.json from the first line of stdin. We have to do
|
|
|
// this before outputting anything to avoid potential deadlock with
|
|
@@ -215,7 +245,7 @@ int main(int argc, char **argv)
|
|
|
boost::asio::post(io_context, [&]{
|
|
|
// Start enclave-to-enclave communications
|
|
|
ecall_comms_start();
|
|
|
- start(netio, argc, argv);
|
|
|
+ start(netio, argv);
|
|
|
});
|
|
|
|
|
|
// Start another thread; one will perform the work and the other
|