int nstr;
static const int MIN = 60;
-static const int HOUR = 60*MIN;
-static const int DAY = 24*HOUR;
-static const int YEAR = 365*DAY;
+static const int HOUR = 60*60;
+static const int DAY = 24*60*60;
+static const int WEEK = 7*24*60*60;
+static const int YEAR = 365*24*60*60;
const char *client, *session, *user, *permission, *value;
time_t expire;
x = 10 * x + (time_t)(*txt++ - '0');
switch(*txt) {
case 'y': r += x * YEAR; txt++; break;
+ case 'w': r += x * WEEK; txt++; break;
case 'd': r += x *= DAY; txt++; break;
case 'h': r += x *= HOUR; txt++; break;
case 'm': r += x *= MIN; txt++; break;
(long long)(expire / YEAR));
expire = expire % YEAR;
}
+ if (expire >= WEEK) {
+ n += snprintf(&buffer[n], sizeof buffer - n, "%lldw",
+ (long long)(expire / WEEK));
+ expire = expire % WEEK;
+ }
if (expire >= DAY) {
n += snprintf(&buffer[n], sizeof buffer - n, "%lldd",
(long long)(expire / DAY));
time_t txt2exp(const char *txt)
{
static const int MIN = 60;
- static const int HOUR = 60*MIN;
- static const int DAY = 24*HOUR;
- static const int YEAR = 365*DAY;
+ static const int HOUR = 60*60;
+ static const int DAY = 24*60*60;
+ static const int WEEK = 7*24*60*60;
+ static const int YEAR = 365*24*60*60;
time_t r, x;
x = 10 * x + (time_t)(*txt++ - '0');
switch(*txt) {
case 'y': r += x * YEAR; txt++; break;
+ case 'w': r += x *= WEEK; txt++; break;
case 'd': r += x *= DAY; txt++; break;
case 'h': r += x *= HOUR; txt++; break;
case 'm': r += x *= MIN; txt++; break;