diff --git a/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/frontend/olsrd.js b/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/frontend/olsrd.js index 5955449d36ac..44e5c860caea 100644 --- a/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/frontend/olsrd.js +++ b/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/frontend/olsrd.js @@ -483,6 +483,7 @@ return view.extend({ }; ifs.handleAdd = function (ev) { + uci.add('olsrd', 'Interface'); uci .save() .then(function () { diff --git a/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/frontend/olsrd6.js b/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/frontend/olsrd6.js index 164183de4922..81cbf3287c44 100644 --- a/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/frontend/olsrd6.js +++ b/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/frontend/olsrd6.js @@ -462,6 +462,7 @@ return view.extend({ ifs.template = 'cbi/tblsection'; ifs.handleAdd = function (ev) { + uci.add('olsrd6', 'Interface'); uci .save() .then(function () { diff --git a/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/hna.js b/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/hna.js index 4ad87ed2256e..5ba0c5500401 100644 --- a/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/hna.js +++ b/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/hna.js @@ -173,7 +173,7 @@ return olsr.olsrview.extend({ let statusOlsrCommonJs = null; if (has_v4 && has_v6) { - statusOlsrCommonJs = E('script', { 'type': 'text/javascript', 'src': L.resource('common/common_js.js') }); + statusOlsrCommonJs = E('script', { 'type': 'text/javascript', 'src': L.resource('olsr/common_js.js') }); } const fresult = E([], {}, [h2, divToggleButtons, fieldset, statusOlsrCommonJs]); diff --git a/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/interfaces.js b/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/interfaces.js index 69a0ef311b65..c888e11bbd94 100644 --- a/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/interfaces.js +++ b/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/interfaces.js @@ -90,7 +90,7 @@ return olsr.olsrview.extend({ let statusOlsrCommonJs = null; if (has_v4 && has_v6) { - statusOlsrCommonJs = E('script', { 'type': 'text/javascript', 'src': L.resource('common/common_js.js') }); + statusOlsrCommonJs = E('script', { 'type': 'text/javascript', 'src': L.resource('olsr/common_js.js') }); } const fresult = E([], {}, [h2, divToggleButtons, fieldset, statusOlsrCommonJs]); diff --git a/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/mid.js b/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/mid.js index 16f0fc8d0698..87205a26ff13 100644 --- a/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/mid.js +++ b/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/mid.js @@ -81,7 +81,7 @@ return olsr.olsrview.extend({ let statusOlsrCommonJs = null; if (has_v4 && has_v6) { - statusOlsrCommonJs = E('script', { 'type': 'text/javascript', 'src': L.resource('common/common_js.js') }); + statusOlsrCommonJs = E('script', { 'type': 'text/javascript', 'src': L.resource('olsr/common_js.js') }); } const fresult = E([], {}, [h2, divToggleButtons, fieldset, statusOlsrCommonJs]); diff --git a/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/neighbors.js b/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/neighbors.js index 97c3b238def7..3f16d8d73104 100644 --- a/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/neighbors.js +++ b/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/neighbors.js @@ -174,8 +174,8 @@ return olsr.olsrview.extend({ if (link.linkCost == 4194304) { link.linkCost = 0; } - const color = etx_color(link.linkCost); - const snr_color = snr_colors(link.snr); + const color = olsr.etx_color(link.linkCost); + const snr_color = olsr.snr_colors(link.snr); let defaultgw_color = ''; if (link.defaultgw === 1) { defaultgw_color = '#ffff99'; @@ -299,8 +299,8 @@ return olsr.olsrview.extend({ link.linkCost = 0; } - const color = etx_color(link.linkCost); - const snr_color = snr_colors(link.snr); + const color = olsr.etx_color(link.linkCost); + const snr_color = olsr.snr_colors(link.snr); if (link.snr === 0) { link.snr = '?'; @@ -449,7 +449,7 @@ return olsr.olsrview.extend({ if (has_v4 && has_v6) { statusOlsrCommonJs = E('script', { type: 'text/javascript', - src: L.resource('common/common_js.js'), + src: L.resource('olsr/common_js.js'), }); } diff --git a/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/routes.js b/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/routes.js index 6d6e383481ea..cb448ea9f245 100644 --- a/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/routes.js +++ b/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/routes.js @@ -105,7 +105,7 @@ return olsr.olsrview.extend({ interface: route.networkInterface, metric: route.metric, etx: ETX, - color: etx_color(parseFloat(ETX)), + color: olsr.etx_color(parseFloat(ETX)), }); } @@ -172,7 +172,7 @@ return olsr.olsrview.extend({ for (let route of routes_res) { const ETX = parseInt(route.etx) || 0; - const color = etx_color(ETX); + const color = olsr.etx_color(ETX); const tr = E('div', { 'class': 'tr cbi-section-table-row cbi-rowstyle-' + i + ' proto-' + route.proto }, [ E('div', { 'class': 'td cbi-section-table-cell left' }, route.destination + '/' + route.genmask), @@ -222,7 +222,7 @@ return olsr.olsrview.extend({ let statusOlsrCommonJs = null; if (has_v4 && has_v6) { - statusOlsrCommonJs = E('script', { 'type': 'text/javascript', 'src': L.resource('common/common_js.js') }); + statusOlsrCommonJs = E('script', { 'type': 'text/javascript', 'src': L.resource('olsr/common_js.js') }); } const fresult = E([], {}, [h2, divToggleButtons, fieldset, statusOlsrLegend, statusOlsrCommonJs]); diff --git a/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/smartgw.js b/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/smartgw.js index 88397bbcb660..1c846d06c37a 100644 --- a/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/smartgw.js +++ b/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/smartgw.js @@ -191,7 +191,7 @@ return olsr.olsrview.extend({ let statusOlsrCommonJs = null; if (has_v4 && has_v6) { - statusOlsrCommonJs = E('script', { 'type': 'text/javascript', 'src': L.resource('common/common_js.js') }); + statusOlsrCommonJs = E('script', { 'type': 'text/javascript', 'src': L.resource('olsr/common_js.js') }); } const fresult = E([], {}, [h2, divToggleButtons, fieldset, statusOlsrCommonJs]); diff --git a/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/topology.js b/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/topology.js index f2e38747b708..2b8b99872a00 100644 --- a/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/topology.js +++ b/applications/luci-app-olsr/htdocs/luci-static/resources/view/olsr/status-olsr/topology.js @@ -64,7 +64,7 @@ return olsr.olsrview.extend({ for (let route of routes_res) { const cost = (parseInt(route.tcEdgeCost) || 0).toFixed(3); - const color = etx_color(parseInt(cost)); + const color = olsr.etx_color(parseInt(cost)); const lq = (parseInt(route.linkQuality) || 0).toFixed(3); const nlq = (parseInt(route.neighborLinkQuality) || 0).toFixed(3); @@ -117,7 +117,7 @@ return olsr.olsrview.extend({ let statusOlsrCommonJs = null; if (has_v4 && has_v6) { - statusOlsrCommonJs = E('script', { 'type': 'text/javascript', 'src': L.resource('common/common_js.js') }); + statusOlsrCommonJs = E('script', { 'type': 'text/javascript', 'src': L.resource('olsr/common_js.js') }); } const fresult = E([], {}, [h2, divToggleButtons, fieldset, statusOlsrLegend, statusOlsrCommonJs]); diff --git a/applications/luci-app-olsr/root/usr/libexec/rpcd/olsrinfo b/applications/luci-app-olsr/root/usr/libexec/rpcd/olsrinfo index 831a964202a8..7463a15b7f81 100755 --- a/applications/luci-app-olsr/root/usr/libexec/rpcd/olsrinfo +++ b/applications/luci-app-olsr/root/usr/libexec/rpcd/olsrinfo @@ -33,6 +33,19 @@ load_hosts() { json_dump } +json_stringescape() { + awk ' + NR>1 { r = r "\\n" } + { + gsub(/["\\]/, "\\\\&"); + gsub(/\t/, "\\t"); + gsub(/\r/, "\\r"); + r = r $0 + } + END { print r } + ' | tr -d '\n' +} + case "$1" in list) json_init @@ -56,13 +69,13 @@ call) json_get_var v4_port v4_port json_get_var v6_port v6_port - jsonreq4=$(echo "/${otable}" | nc 127.0.0.1 "${v4_port}" | sed -n '/^[}{ ]/p' 2>/dev/null) - jsonreq6=$(echo "/${otable}" | nc ::1 "${v6_port}" | sed -n '/^[}{ ]/p' 2>/dev/null) - - json_init - json_add_string "jsonreq4" "$jsonreq4" - json_add_string "jsonreq6" "$jsonreq6" - json_dump + { + printf '{"jsonreq4":"' + echo "/${otable}" | nc 127.0.0.1 "${v4_port}" | sed -n '/^[}{ ]/p' | json_stringescape + printf '","jsonreq6":"' + echo "/${otable}" | nc ::1 "${v6_port}" | sed -n '/^[}{ ]/p' | json_stringescape + printf '"}\n' + } 2>/dev/null ;; hasipip) result=$(ls /etc/modules.d/ | grep -E "[0-9]*-ipip")