0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 01:31:55 +00:00

Time added in password management.

This commit is contained in:
Ondrej Filip 2005-02-12 22:27:55 +00:00
parent 89ba9a1806
commit 0d3effcf8c
3 changed files with 40 additions and 2 deletions

View File

@ -145,9 +145,9 @@ pxlen:
datetime:
TEXT {
$$ = tm_parse_date($1);
$$ = tm_parse_datetime($1);
if (!$$)
cf_error("Invalid date");
cf_error("Invalid date and time");
}
;

View File

@ -128,6 +128,20 @@ protocol static {
# };
# strict nonbroadcast yes;
# };
# interface "xxx0" {
# passwords {
# password "abc" {
# id 1;
# generate to "22-04-2003 11:00:06";
# accept to "17-01-2004 12:01:05";
# };
# password "def" {
# id 2;
# generate from "22-04-2003 11:00:07";
# accept from "17-01-2003 12:01:05";
# };
# authentication cryptographic;
# };
# };
# area 20 {
# stub 1;

View File

@ -299,6 +299,30 @@ tm_shot(void)
}
}
/**
* tm_parse_datetime - parse a date and time
* @x: datetime string
*
* tm_parse_datetime() takes a textual representation of
* a date and time (dd-mm-yyyy hh:mm:ss)
* and converts it to the corresponding value of type &bird_clock_t.
*/
bird_clock_t
tm_parse_datetime(char *x)
{
struct tm tm;
int n;
time_t t;
if (sscanf(x, "%d-%d-%d %d:%d:%d%n", &tm.tm_mday, &tm.tm_mon, &tm.tm_year, &tm.tm_hour, &tm.tm_min, &tm.tm_sec, &n) != 6 || x[n])
return tm_parse_date(x);
tm.tm_mon--;
tm.tm_year -= 1900;
t = mktime(&tm);
if (t == (time_t) -1)
return 0;
return t;
}
/**
* tm_parse_date - parse a date
* @x: date string