1 <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML
4.0//EN'
>
4 Copyright (C) 2006-2010 Jonathan Zarate
5 http://www.polarcloud.com/tomato/
7 For use with Tomato Firmware only.
8 No part of this file may be used without permission.
12 <meta http-equiv='content-type' content='text/html;charset=utf-
8'
>
13 <meta name='robots' content='noindex,nofollow'
>
14 <title>[<%
ident(); %>] Admin: Logging
</title>
15 <link rel='stylesheet' type='text/css' href='tomato.css'
>
16 <link rel='stylesheet' type='text/css' href='color.css'
>
17 <script type='text/javascript' src='tomato.js'
></script>
21 <script type='text/javascript' src='debug.js'
></script>
23 <script type='text/javascript'
>
25 // <% nvram("log_remote,log_remoteip,log_remoteport,log_file,log_file_custom,log_file_path,log_limit,log_in,log_out,log_mark,log_events,log_wm,log_wmtype,log_wmip,log_wmdmax,log_wmsmax,log_file_size,log_file_keep,webmon_bkp,webmon_dir,webmon_shrink"); %>
27 function verifyFields(focused
, quiet
)
31 a
= E('_f_log_file').checked
;
32 b
= E('_f_log_remote').checked
;
33 c
= E('_f_log_file_custom').checked
;
36 E('_log_in').disabled
= a
;
37 E('_log_out').disabled
= a
;
38 E('_log_limit').disabled
= a
;
39 E('_log_mark').disabled
= a
;
40 E('_f_log_acre').disabled
= a
;
41 E('_f_log_crond').disabled
= a
;
42 E('_f_log_dhcpc').disabled
= a
;
43 E('_f_log_ntp').disabled
= a
;
44 E('_f_log_sched').disabled
= a
;
46 elem
.display(PR('_log_remoteip'), b
);
47 E('_log_remoteip').disabled
= !b
;
48 E('_log_remoteport').disabled
= !b
;
50 E('_f_log_file_custom').disabled
= !E('_f_log_file').checked
;
51 E('_log_file_path').disabled
= !c
|| !E('_f_log_file').checked
;
54 if (!v_range('_log_limit', quiet
, 0, 2400)) return 0;
55 if (!v_range('_log_mark', quiet
, 0, 99999)) return 0;
57 c
= E('_log_remoteip');
58 if (!v_ip(c
, 1) && !v_domain(c
, 1)) {
59 if (!quiet
) ferror
.show(c
);
62 if (!v_port('_log_remoteport', quiet
)) return 0;
66 if (E('_f_log_file').checked
) {
67 E('_log_file_size').disabled
= 0;
68 if (!v_range('_log_file_size', quiet
, 0, 99999)) return 0;
69 if (parseInt(E('_log_file_size').value
) > 0) {
70 E('_log_file_keep').disabled
= 0;
71 if (!v_range('_log_file_keep', quiet
, 0, 99)) return 0;
73 E('_log_file_keep').disabled
= 1;
76 E('_log_file_size').disabled
= 1;
77 E('_log_file_keep').disabled
= 1;
80 a
= E('_f_log_wm').checked
;
81 b
= E('_log_wmtype').value
!= 0;
82 c
= E('_f_webmon_bkp').checked
;
83 E('_log_wmtype').disabled
= !a
;
84 E('_f_log_wmip').disabled
= !a
;
85 E('_log_wmdmax').disabled
= !a
;
86 E('_log_wmsmax').disabled
= !a
;
87 E('_f_webmon_bkp').disabled
= !a
;
88 E('_f_webmon_shrink').disabled
= !a
|| !c
;
89 E('_webmon_dir').disabled
= !a
|| !c
;
90 elem
.display(PR('_f_log_wmip'), b
);
94 if (!_v_iptaddr('_f_log_wmip', quiet
, 15, 1, 1)) return 0;
96 if (!v_range('_log_wmdmax', quiet
, 0, 9999)) return 0;
97 if (!v_range('_log_wmsmax', quiet
, 0, 9999)) return 0;
107 if (!verifyFields(null, false)) return;
110 fom
.log_remote
.value
= E('_f_log_remote').checked
? 1 : 0;
111 fom
.log_file
.value
= E('_f_log_file').checked
? 1 : 0;
112 fom
.log_file_custom
.value
= E('_f_log_file_custom').checked
? 1 : 0;
115 if (E('_f_log_acre').checked
) a
.push('acre');
116 if (E('_f_log_crond').checked
) a
.push('crond');
117 if (E('_f_log_dhcpc').checked
) a
.push('dhcpc');
118 if (E('_f_log_ntp').checked
) a
.push('ntp');
119 if (E('_f_log_sched').checked
) a
.push('sched');
120 fom
.log_events
.value
= a
.join(',');
122 fom
.log_wm
.value
= E('_f_log_wm').checked
? 1 : 0;
123 fom
.log_wmip
.value
= fom
.f_log_wmip
.value
.split(/\s*,\s*/).join(',');
124 fom
.webmon_bkp
.value
= E('_f_webmon_bkp').checked
? 1 : 0;
125 fom
.webmon_shrink
.value
= E('_f_webmon_shrink').checked
? 1 : 0;
133 <form id='_fom' method='post' action='tomato.cgi'
>
134 <table id='container' cellspacing=
0>
135 <tr><td colspan=
2 id='header'
>
136 <div class='title'
>Tomato
</div>
137 <div class='version'
>Version <%
version(); %></div>
139 <tr id='body'
><td id='navi'
><script type='text/javascript'
>navi()</script></td>
141 <div id='ident'
><%
ident(); %></div>
145 <input type='hidden' name='_nextpage' value='admin-log.asp'
>
146 <input type='hidden' name='_service' value='logging-restart'
>
148 <input type='hidden' name='log_remote'
>
149 <input type='hidden' name='log_file'
>
150 <input type='hidden' name='log_file_custom'
>
151 <input type='hidden' name='log_events'
>
153 <input type='hidden' name='log_wm'
>
154 <input type='hidden' name='log_wmip'
>
155 <input type='hidden' name='webmon_bkp'
>
156 <input type='hidden' name='webmon_shrink'
>
158 <script type='text/javascript'
>
161 <div class='section-title'
>Syslog
</div>
162 <div class='section'
>
163 <script type='text/javascript'
>
168 if (nvram.log_mark >= 120) nvram.log_mark = 120;
169 else if (nvram.log_mark >= 60) nvram.log_mark = 60;
170 else if (nvram.log_mark > 0) nvram.log_mark = 30;
171 else nvram.log_mark = 0;
174 createFieldTable('', [
175 { title
: 'Log Internally', name
: 'f_log_file', type
: 'checkbox', value
: nvram
.log_file
== 1 },
176 { title
: 'Max size before rotate', name
: 'log_file_size', type
: 'text', maxlen
: 5, size
: 6, value
: nvram
.log_file_size
|| 50, suffix
: ' <small>KB</small>' },
177 { title
: 'Number of rotated logs to keep', name
: 'log_file_keep', type
: 'text', maxlen
: 2, size
: 3, value
: nvram
.log_file_keep
|| 1 },
178 { title
: 'Custom Log File Path', multi
: [
179 { name
: 'f_log_file_custom', type
: 'checkbox', value
: nvram
.log_file_custom
== 1, suffix
: ' ' },
180 { name
: 'log_file_path', type
: 'text', maxlen
: 50, size
: 30, value
: nvram
.log_file_path
, suffix
: ' <small>(make sure the directory exists and is writable)</small>' }
182 { title
: 'Log To Remote System', name
: 'f_log_remote', type
: 'checkbox', value
: nvram
.log_remote
== 1 },
183 { title
: 'Host or IP Address / Port', indent
: 2, multi
: [
184 { name
: 'log_remoteip', type
: 'text', maxlen
: 32, size
: 35, value
: nvram
.log_remoteip
, suffix
: ':' },
185 { name
: 'log_remoteport', type
: 'text', maxlen
: 5, size
: 7, value
: nvram
.log_remoteport
} ]},
186 { title
: 'Generate Marker', name
: 'log_mark', type
: 'select', options
: [[0,'Disabled'],[30,'Every 30 Minutes'],[60,'Every 1 Hour'],[120,'Every 2 Hours'],[360,'Every 6 Hours'],[720,'Every 12 Hours'],[1440,'Every 1 Day'],[10080,'Every 7 Days']], value
: nvram
.log_mark
},
187 { title
: 'Events Logged', text
: '<small>(some of the changes will take effect after a restart)</small>' },
188 { title
: 'Access Restriction', indent
: 2, name
: 'f_log_acre', type
: 'checkbox', value
: (nvram
.log_events
.indexOf('acre') != -1) },
189 { title
: 'Cron', indent
: 2, name
: 'f_log_crond', type
: 'checkbox', value
: (nvram
.log_events
.indexOf('crond') != -1) },
190 { title
: 'DHCP Client', indent
: 2, name
: 'f_log_dhcpc', type
: 'checkbox', value
: (nvram
.log_events
.indexOf('dhcpc') != -1) },
191 { title
: 'NTP', indent
: 2, name
: 'f_log_ntp', type
: 'checkbox', value
: (nvram
.log_events
.indexOf('ntp') != -1) },
192 { title
: 'Scheduler', indent
: 2, name
: 'f_log_sched', type
: 'checkbox', value
: (nvram
.log_events
.indexOf('sched') != -1) },
193 { title
: 'Connection Logging' },
194 { title
: 'Inbound', indent
: 2, name
: 'log_in', type
: 'select', options
: [[0,'Disabled (recommended)'],[1,'If Blocked By Firewall'],[2,'If Allowed By Firewall'],[3,'Both']], value
: nvram
.log_in
},
195 { title
: 'Outbound', indent
: 2, name
: 'log_out', type
: 'select', options
: [[0,'Disabled (recommended)'],[1,'If Blocked By Firewall'],[2,'If Allowed By Firewall'],[3,'Both']], value
: nvram
.log_out
},
196 { title
: 'Limit', indent
: 2, name
: 'log_limit', type
: 'text', maxlen
: 4, size
: 5, value
: nvram
.log_limit
, suffix
: ' <small>messages per minute (0 for unlimited)</small>' }
201 <div class='section-title'
>Web Monitor
</div>
202 <div class='section'
>
203 <script type='text/javascript'
>
204 createFieldTable('', [
205 { title
: 'Monitor Web Usage', name
: 'f_log_wm', type
: 'checkbox', value
: nvram
.log_wm
== 1 },
206 { title
: 'Monitor', name
: 'log_wmtype', type
: 'select', options
: [[0,'All Computers / Devices'],[1,'The Following...'],[2,'All Except...']], value
: nvram
.log_wmtype
},
207 { title
: 'IP Address(es)', indent
: 2, name
: 'f_log_wmip', type
: 'text', maxlen
: 512, size
: 64, value
: nvram
.log_wmip
,
208 suffix
: '<br><small>(ex: "1.1.1.1", "1.1.1.0/24" or "1.1.1.1 - 2.2.2.2")</small>' },
209 { title
: 'Number of Entries to remember' },
210 { title
: 'Domains', indent
: 2, name
: 'log_wmdmax', type
: 'text', maxlen
: 4, size
: 6, value
: nvram
.log_wmdmax
, suffix
: ' <small>(0 to disable)</small>' },
211 { title
: 'Searches', indent
: 2, name
: 'log_wmsmax', type
: 'text', maxlen
: 4, size
: 6, value
: nvram
.log_wmsmax
, suffix
: ' <small>(0 to disable)</small>' },
212 { title
: 'Daily Backup', name
: 'f_webmon_bkp', type
: 'checkbox', value
: nvram
.webmon_bkp
== 1, suffix
: ' <small>(every day at midnight)</small>' },
213 { title
: 'Clear Data After Backup', indent
: 2, name
: 'f_webmon_shrink', type
: 'checkbox', value
: nvram
.webmon_shrink
== 1 },
214 { title
: 'Backup Directory', indent
: 2, name
: 'webmon_dir', type
: 'text', maxlen
: 128, size
: 30, value
: nvram
.webmon_dir
, suffix
: ' <small>(make sure the directory exists and is writable)</small>' }
222 <tr><td id='footer' colspan=
2>
223 <span id='footer-msg'
></span>
224 <input type='button' value='Save' id='save-button' onclick='save()'
>
225 <input type='button' value='Cancel' id='cancel-button' onclick='javascript:reloadPage();'
>
229 <script type='text/javascript'
>verifyFields(null, 1);</script>