diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-07-31 20:16:25 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-07-31 20:16:25 +0200 |
commit | 261e3190929acd3e8e00507894789a5575fb815f (patch) | |
tree | 8d877d68090967ed4231c457dabed6d64d8bc002 /sys/src/cmd/auth/lib/getexpiration.c | |
parent | a75f4de5c9f1782b3a7e0a9648e24b360031a0d5 (diff) |
auth: various cleanups, use common readcons() from libauthsrv, zero keys after use
Diffstat (limited to 'sys/src/cmd/auth/lib/getexpiration.c')
-rw-r--r-- | sys/src/cmd/auth/lib/getexpiration.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/sys/src/cmd/auth/lib/getexpiration.c b/sys/src/cmd/auth/lib/getexpiration.c index ebbd1c24c..dc2f2a610 100644 --- a/sys/src/cmd/auth/lib/getexpiration.c +++ b/sys/src/cmd/auth/lib/getexpiration.c @@ -31,8 +31,7 @@ long getexpiration(char *db, char *u) { char buf[Maxpath]; - char prompt[128]; - char cdate[32]; + char *cdate; Tm date; ulong secs, now; int n, fd; @@ -57,20 +56,24 @@ getexpiration(char *db, char *u) buf[5] = 0; } else strcpy(buf, "never"); - sprint(prompt, "Expiration date (YYYYMMDD or never)[return = %s]: ", buf); - now = time(0); - for(;;){ - readln(prompt, cdate, sizeof cdate, 0); - if(*cdate == 0) - return -1; - if(strcmp(cdate, "never") == 0) - return 0; + for(;;free(cdate)){ + cdate = readcons("Expiration date (YYYYMMDD or never)", buf, 0); + if(cdate == nil || *cdate == 0){ + secs = -1; + break; + } + if(strcmp(cdate, "never") == 0){ + secs = 0; + break; + } date = getdate(cdate); secs = tm2sec(&date); + now = time(0); if(secs > now && secs < now + 2*365*24*60*60) break; print("expiration time must fall between now and 2 years from now\n"); } + free(cdate); return secs; } |