Merge branch 'Toastman-RT' into Toastman-RT-N
[tomato.git] / release / src / router / httpd / ddns.c
blobb9da9dbf82ca678b2cce0b2f86ce052946be956b
1 /*
3 Tomato Firmware
4 Copyright (C) 2006-2009 Jonathan Zarate
6 */
8 #include "tomato.h"
10 #include <time.h>
11 #include <sys/stat.h>
14 void asp_ddnsx(int argc, char **argv)
16 char *p, *q;
17 int i;
18 char s[256];
19 char m[256];
20 char name[64];
21 time_t tt;
22 struct stat st;
24 web_printf(
25 "\nddnsx_ip = '%s';\n"
26 "ddnsx_msg = [",
27 get_wanip());
29 for (i = 0; i < 2; ++i) {
30 web_puts(i ? "','" : "'");
31 sprintf(name, "/var/lib/mdu/ddnsx%d.msg", i);
32 f_read_string(name, m, sizeof(m)); // null term'd even on error
33 if (m[0] != 0) {
34 if ((stat(name, &st) == 0) && (st.st_mtime > Y2K)) {
35 strftime(s, sizeof(s), "%a, %d %b %Y %H:%M:%S %z: ", localtime(&st.st_mtime));
36 web_puts(s);
38 web_putj(m);
42 web_puts("'];\nddnsx_last = [");
44 for (i = 0; i < 2; ++i) {
45 web_puts(i ? "','" : "'");
46 sprintf(name, "ddnsx%d", i);
47 if (!nvram_match(name, "")) {
48 sprintf(name, "ddnsx%d_cache", i);
49 if ((p = nvram_get(name)) == NULL) continue;
50 tt = strtoul(p, &q, 10);
51 if (*q++ != ',') continue;
52 if (tt > Y2K) {
53 strftime(s, sizeof(s), "%a, %d %b %Y %H:%M:%S %z: ", localtime(&tt));
54 web_puts(s);
56 web_putj(q);
59 web_puts("'];\n");
62 void asp_ddnsx_ip(int argc, char **argv)
64 web_puts(get_wanip());