]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blame - src/misc-progs/setdate.c
Von nun an kann man statische Zuordnungen mit einem Klick aus einer dynamischen Zuord...
[people/teissler/ipfire-2.x.git] / src / misc-progs / setdate.c
CommitLineData
cd1a2927
MT
1/* Ipcop helper program - setdate.c\r
2 *\r
3 * Sets the date and time\r
4 *\r
5 * (c) Darren Critchley 2003\r
6 * \r
7 * $Id: setdate.c,v 1.2 2003/12/11 11:25:54 riddles Exp $\r
8 * \r
9 */\r
10 \r
11#include <stdio.h>\r
12#include <string.h>\r
13#include <unistd.h>\r
14#include <stdlib.h>\r
15#include <sys/types.h>\r
16#include "setuid.h"\r
17\r
18int main(int argc, char *argv[])\r
19{\r
20 char command[STRING_SIZE];\r
21 int a,b,c;\r
22 \r
23 if (!(initsetuid()))\r
24 exit(1);\r
25 \r
26 if (argc < 3)\r
27 {\r
28 fprintf(stderr, "Missing arg\n");\r
29 exit(1);\r
30 }\r
31 \r
32 if (! (strlen(argv[1]) < 11 && sscanf(argv[1], "%d-%d-%d", &a, &b, &c) == 3)\r
33 || (strspn(argv[1], NUMBERS "-" ) != strlen(argv[1])))\r
34 {\r
35 fprintf(stderr, "Bad arg\n");\r
36 exit(1);\r
37 }\r
38\r
39 if (! (strlen(argv[2]) < 6 && sscanf(argv[2], "%d:%d", &a, &b) == 2)\r
40 || (strspn(argv[2], NUMBERS ":" ) != strlen(argv[2])))\r
41 {\r
42 fprintf(stderr, "Bad arg\n");\r
43 exit(1);\r
44 }\r
45\r
46 memset(command, 0, STRING_SIZE);\r
47 snprintf(command, STRING_SIZE - 1, "/bin/date -s '%s %s' >/dev/null", argv[1], argv[2]);\r
48 fprintf(stderr, "Setting Date: %s %s\n", argv[1], argv[2]);\r
49 safe_system(command);\r
50 \r
51 return 0;\r
52}\r