X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=tid%2Fexample%2Ftidc_main.c;h=26fb994e3736b7d133a7e7db13077e5678b4ede0;hb=addf9ce1e66625015db09de61c39061c4ac9b8e0;hp=96e1d073bcf2c80f991d21459bcdea80c7055dca;hpb=bab71b93f21e046e2132cbe22a7aebb92c98f18b;p=trust_router.git diff --git a/tid/example/tidc_main.c b/tid/example/tidc_main.c index 96e1d07..26fb994 100644 --- a/tid/example/tidc_main.c +++ b/tid/example/tidc_main.c @@ -41,6 +41,7 @@ #include #include #include +#include static void tidc_resp_handler (TIDC_INSTANCE * tidc, TID_REQ *req, @@ -50,6 +51,7 @@ static void tidc_resp_handler (TIDC_INSTANCE * tidc, int c_keylen = 0; unsigned char *c_keybuf = NULL; int i; + struct timeval tv; printf ("Response received! Realm = %s, Community = %s.\n", resp->realm->buf, resp->comm->buf); @@ -63,7 +65,12 @@ static void tidc_resp_handler (TIDC_INSTANCE * tidc, fprintf(stderr, "tidc_resp_handler: Response does not contain server info.\n"); return; } - + if (tid_srvr_get_key_expiration(tid_resp_get_server(resp, 0), &tv)) + printf("Error reading key expiration\n"); + else + printf("Key expiration: %s", ctime(&tv.tv_sec)); + + if (0 > (c_keylen = tr_compute_dh_key(&c_keybuf, resp->servers->aaa_server_dh->pub_key, req->tidc_dh))) { @@ -83,19 +90,25 @@ static void tidc_resp_handler (TIDC_INSTANCE * tidc, } +static void print_version_info(void) +{ + printf("Moonshot TID Client %s\n\n", PACKAGE_VERSION); +} + /* command-line option setup */ /* argp global parameters */ const char *argp_program_bug_address=PACKAGE_BUGREPORT; /* bug reporting address */ /* doc strings */ -static const char doc[]=PACKAGE_NAME " - TID Client"; +static const char doc[]=PACKAGE_NAME " - Moonshot TID Client " PACKAGE_VERSION; static const char arg_doc[]=" []"; /* string describing arguments, if any */ /* define the options here. Fields are: * { long-name, short-name, variable name, options, help description } */ static const struct argp_option cmdline_options[] = { - { NULL } + { "version", 'v', NULL, 0, "Print version information and exit"}, + { NULL } }; /* structure for communicating with option parser */ @@ -149,6 +162,10 @@ static error_t parse_option(int key, char *arg, struct argp_state *state) } break; + case 'v': + print_version_info(); + exit(0); + default: return ARGP_ERR_UNKNOWN; } @@ -179,6 +196,8 @@ int main (int argc, argp_parse(&argp, argc, argv, 0, 0, &opts); /* TBD -- validity checking, dealing with quotes, etc. */ + print_version_info(); + /* Use standalone logging */ tr_log_open();