File webif-fixes.diff of Package webif
Index: webif_0.3-8/usr/lib/webif/validate.awk
===================================================================
--- webif_0.3-8.orig/usr/lib/webif/validate.awk
+++ webif_0.3-8/usr/lib/webif/validate.awk
@@ -25,9 +25,9 @@ $1 == "int" {
}
# two stages ip/netmask validation
$1 == "ipmask" {
- ipmasks = split(value, ipmask, "\/")
+ ipmasks = split(value, ipmask, "/")
if (ipmasks > 0) {
value = ipmask[1]
$1 = "ip"
}
@@ -97,9 +97,9 @@ $1 == "netmask" {
# two stages ip/netmask validation
ipmasks > 0 {
$1 = "ipmask"
value = ipmask[1]
- for (i = 2; i <= ipmasks; i++) value = value "\/" ipmask[i]
+ for (i = 2; i <= ipmasks; i++) value = value "/" ipmask[i]
}
ipmasks > 2 {
valid_type = 1
valid = 0
Index: webif_0.3-8/usr/lib/webif/browser.awk
===================================================================
--- webif_0.3-8.orig/usr/lib/webif/browser.awk
+++ webif_0.3-8/usr/lib/webif/browser.awk
@@ -12,12 +12,12 @@ BEGIN {
print "<td> </td><td> </td><td> </td>"
print "</tr>"
odd=0
# do not let the user to make wrong things (hm, at least some of them)
- xdirectory="^(\/bin$|\/bin\/$|\/dev$|\/dev\/.*$|\/etc$|\/jffs$|\/lib$|\/lib\/modules$|\/lib\/modules\/.*$|\/mnt$|\/proc$|\/proc\/.*$|\/rom$|\/rom\/.*$|\/sbin$|\/sys$|\/sys\/.*$|\/usr$|\/usr\/bin$|\/usr\/lib$|\/usr\/lib\/webif$|\/usr\/sbin$|\/usr\/share$|\/www$|\/www\/.*$|\/www\/themes\/.*$|\/www\/cgi-bin\/webif$)"
- xdownload="^(\/dev$|\/dev\/.*$|\/proc$|\/proc\/.*$|\/sys$|\/sys\/.*$)"
- xedit="^(\/dev$|\/dev\/.*$|\/lib$|\/lib\/modules\/.*$|\/proc$|\/proc\/.*$|\/rom$|\/rom\/.*$|\/sys$|\/sys\/.*$)"
- xdelete="^(\/dev$|\/dev\/.*$|\/lib$|\/lib\/modules\/.*$|\/proc$|\/proc\/.*$|\/rom$|\/rom\/.*$|\/sys$|\/sys\/.*$)"
+ xdirectory="^(/bin$|/bin/$|/dev$|/dev/.*$|/etc$|/jffs$|/lib$|/lib/modules$|/lib/modules/.*$|/mnt$|/proc$|/proc/.*$|/rom$|/rom/.*$|/sbin$|/sys$|/sys/.*$|/usr$|/usr/bin$|/usr/lib$|/usr/lib/webif$|/usr/sbin$|/usr/share$|/www$|/www/.*$|/www/themes/.*$|/www/cgi-bin/webif$)"
+ xdownload="^(/dev$|/dev/.*$|/proc$|/proc/.*$|/sys$|/sys/.*$)"
+ xedit="^(/dev$|/dev/.*$|/lib$|/lib/modules/.*$|/proc$|/proc/.*$|/rom$|/rom/.*$|/sys$|/sys/.*$)"
+ xdelete="^(/dev$|/dev/.*$|/lib$|/lib/modules/.*$|/proc$|/proc/.*$|/rom$|/rom/.*$|/sys$|/sys/.*$)"
}
{
type = substr($1, 1, 1);
Index: webif_0.3-8/www/cgi-bin/webif/network-wakeonlan.sh
===================================================================
--- webif_0.3-8.orig/www/cgi-bin/webif/network-wakeonlan.sh
+++ webif_0.3-8/www/cgi-bin/webif/network-wakeonlan.sh
@@ -61,11 +61,11 @@ name_for_ip() {
grep -e "^[\t ]*$1[\t ]+.*" $HOSTS_FILE | sed 's/^[\t ]*'$1'[\t ]*//'
}
if [ -e /etc/ethers ]; then
- cat $ETHERS_FILE | awk -F ' ' '
+ cat $ETHERS_FILE | grep -v '^#' | awk -F ' ' '
{
- "grep -e "$2" /etc/hosts | sed \"s/^"$2"\w*//\"" | getline hostname;
+ "grep -e "$2" /etc/hosts | sed \"s/^"$2"\\w*//\"" | getline hostname;
print "<tr><td>" hostname "</td><td>" $2 "</td><td>" $1 "</td><td><button name=\"wake\" type=\"submit\" value=\"" $1 "\">Wake up</button></td></tr>";
}'
fi
Index: webif_0.3-8/www/cgi-bin/webif/data.sh
===================================================================
--- webif_0.3-8.orig/www/cgi-bin/webif/data.sh
+++ webif_0.3-8/www/cgi-bin/webif/data.sh
@@ -1,2 +1,11 @@
#!/usr/bin/webif-page
-<? date ?><?if [ "$FORM_if" ] ?><? grep "${FORM_if}:" /proc/net/dev ?><?el?><? head -n 1 /proc/stat ?><?fi?>
\ No newline at end of file
+Content-Type: text/plain; charset=UTF-8
+
+<?
+TZ=GMT date
+if [ "$FORM_if" ]; then
+ grep "${FORM_if}:" /proc/net/dev
+else
+ head -n 1 /proc/stat
+fi
+?>
Index: webif_0.3-8/www/cgi-bin/webif/graphs-cpu.sh
===================================================================
--- webif_0.3-8.orig/www/cgi-bin/webif/graphs-cpu.sh
+++ webif_0.3-8/www/cgi-bin/webif/graphs-cpu.sh
@@ -11,9 +11,9 @@ header "Graphs" "graphs_cpu_subcategory#
# IE (all versions) does not support the object tag with svg!
# <object data="" width="600" height="300" type="image/svg+xml">@TR<<graphs_svg_required#This object requires the SVG support.>></object>
?>
<center>
- <embed src="/cgi-bin/webif/graph_cpu_svg.sh?data.sh"
+ <embed src="/cgi-bin/webif/graph_cpu_svg.sh"
width="600" height="300" type="image/svg+xml" />
</center>
<? footer ?>
<!--
Index: webif_0.3-8/www/svggraph/graph_if.svg
===================================================================
--- webif_0.3-8.orig/www/svggraph/graph_if.svg
+++ webif_0.3-8/www/svggraph/graph_if.svg
@@ -128,11 +128,12 @@ var scale_type = '@TR<<graph_if_follow#f
var fetch_url='';
function init(evt) {
/* hacked in fix for all browsers by spectra
- * he says is 'ugly', and someone may want to redo the 'right' way */
- fetch_url=location.search.split('?');
- fetch_url='/cgi-bin/webif/data.sh?' + fetch_url[fetch_url.length-1];
+ * he says is 'ugly', and someone may want to redo the 'right' way */
+ var loc = document.location;
+ fetch_url = location.search.split('?');
+ fetch_url = loc.protocol + '//' + loc.host + '/cgi-bin/webif/data.sh?' + fetch_url[fetch_url.length-1];
/* end hacked in fix */
SVGDoc = evt.target.ownerDocument;
SVGDoc.getElementById("switch_unit").addEventListener("mousedown", switch_unit, false);
SVGDoc.getElementById("switch_scale").addEventListener("mousedown", switch_scale, false);
@@ -166,9 +167,9 @@ function plot_data(obj) {
// (format: "date" output, newline, proper line of /proc/net/dev)
var data=obj.content.split("\n");
var dateStr=data[0];
//fake timezone cause the real value might confuse JS
- dateStr=dateStr.replace(/ [A-Z]+ /, ' GMT ');
+ //dateStr=dateStr.replace(/ [A-Z]+ /, ' GMT ');
var ugmt=(Date.parse(dateStr))/1000;
data=data[1].split(/\s+|:/);
while (data[0]!=parseInt(data[0])) {
@@ -318,5 +319,5 @@ function formatSpeedBytes(speed) {
}
]]>
</script>
-</svg>
\ No newline at end of file
+</svg>
Index: webif_0.3-8/www/svggraph/graph_cpu.svg
===================================================================
--- webif_0.3-8.orig/www/svggraph/graph_cpu.svg
+++ webif_0.3-8/www/svggraph/graph_cpu.svg
@@ -107,12 +107,14 @@ var cpu_data = new Array();
var max_num_points = 120; // maximum number of plot data points
var step = 600 / max_num_points; // plot X division size
-var fetch_url='/cgi-bin/webif/data.sh';
+var fetch_url='';
function init(evt) {
SVGDoc = evt.target.ownerDocument;
+ var loc = document.location;
+ fetch_url = loc.protocol + '//' + loc.host + '/cgi-bin/webif/data.sh';
fetch_data();
setInterval('fetch_data()', 1000);
}
@@ -195,5 +197,5 @@ function isNumber(a) {
}
]]>
</script>
-</svg>
\ No newline at end of file
+</svg>