blob: 05a94a855a99d34f8b81030a37775ce30a00b3b4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#include <time.h>
#include "ninitfeatures.h"
void cron(char **argv, unsigned long *ret) /*EXTRACT_INCL*/ {
unsigned long a,b,n, cron=0, now=time(0);
unsigned long u[3];
int dummy;
char *p;
for (; *argv; argv++) {
p = *argv;
u[2] = 0;
if (scan_ulongs(p,u,3, scan_sec,':',&dummy) < 2) continue;
if ((a=u[0])==0 || a > (1<<29)) continue;
n = now;
b = u[1];
if ((a % 604800) == 0) { b += 3*86400; n -= 3*86400; }
b %= a;
n = n + b - (n % a);
while (n <= now) n += a;
if (cron==0 || n < cron) { cron = n; ret[1] = u[2]; }
}
ret[0] = cron;
}
|