From 7619fe0848dc5f31d5c4c4cadd2ec067bd5c55d1 Mon Sep 17 00:00:00 2001 From: nbd Date: Sun, 17 Jul 2005 22:52:59 +0000 Subject: move target/default/target_skeleton into package/base-files, put all the default files in ipkg packages, cleanup some junk in toolchain/, toolchain/ no longer changes build_mipsel/root git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@1494 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../default/usr/share/udhcpc/default.script | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100755 package/base-files/default/usr/share/udhcpc/default.script (limited to 'package/base-files/default/usr') diff --git a/package/base-files/default/usr/share/udhcpc/default.script b/package/base-files/default/usr/share/udhcpc/default.script new file mode 100755 index 000000000..6c64aa3d4 --- /dev/null +++ b/package/base-files/default/usr/share/udhcpc/default.script @@ -0,0 +1,38 @@ +#!/bin/sh +# udhcpc script edited by Tim Riker +# (slightly modified for openwrt) + +[ -z "$1" ] && echo "Error: should be run by udhcpc" && exit 1 + +RESOLV_CONF="/tmp/resolv.conf" + +case "$1" in + deconfig) + ifconfig $interface 0.0.0.0 + ;; + + renew|bound) + ifconfig $interface $ip \ + netmask ${subnet:-255.255.255.0} \ + broadcast ${broadcast:-+} + + if [ -n "$router" ] ; then + echo "deleting routers" + while route del default gw 0.0.0.0 dev $interface ; do + : + done + + for i in $router ; do + route add default gw $i dev $interface + done + fi + + echo -n > $RESOLV_CONF + ${domain:+echo search $domain} >> $RESOLV_CONF + for i in $dns ; do + echo adding dns $i + echo nameserver $i >> $RESOLV_CONF + done + ;; +esac +exit 0 -- cgit v1.2.3 From ba3ea46d528d1655a8dd1739b7de0eac65a29ec5 Mon Sep 17 00:00:00 2001 From: wbx Date: Tue, 13 Sep 2005 10:59:54 +0000 Subject: add the possibility to use a script, idea by fulup git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@1913 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/base-files/default/usr/share/udhcpc/default.script | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'package/base-files/default/usr') diff --git a/package/base-files/default/usr/share/udhcpc/default.script b/package/base-files/default/usr/share/udhcpc/default.script index 6c64aa3d4..0c08985e7 100755 --- a/package/base-files/default/usr/share/udhcpc/default.script +++ b/package/base-files/default/usr/share/udhcpc/default.script @@ -1,6 +1,6 @@ #!/bin/sh # udhcpc script edited by Tim Riker -# (slightly modified for openwrt) +# (slightly modified for OpenWrt) [ -z "$1" ] && echo "Error: should be run by udhcpc" && exit 1 @@ -32,6 +32,10 @@ case "$1" in for i in $dns ; do echo adding dns $i echo nameserver $i >> $RESOLV_CONF + + # user rules + [ -f /etc/udhcpc.user ] && . /etc/udhcpc.user + done ;; esac -- cgit v1.2.3 From 0bb68e81eca839c8eed0c629b403ac558ea662e6 Mon Sep 17 00:00:00 2001 From: nbd Date: Mon, 7 Nov 2005 01:12:51 +0000 Subject: add hotplug stuff to trunk/ git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@2364 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../default/usr/share/udhcpc/default.script | 73 ++++++++++++---------- 1 file changed, 41 insertions(+), 32 deletions(-) (limited to 'package/base-files/default/usr') diff --git a/package/base-files/default/usr/share/udhcpc/default.script b/package/base-files/default/usr/share/udhcpc/default.script index 0c08985e7..9fac6286c 100755 --- a/package/base-files/default/usr/share/udhcpc/default.script +++ b/package/base-files/default/usr/share/udhcpc/default.script @@ -1,42 +1,51 @@ #!/bin/sh -# udhcpc script edited by Tim Riker -# (slightly modified for OpenWrt) - [ -z "$1" ] && echo "Error: should be run by udhcpc" && exit 1 RESOLV_CONF="/tmp/resolv.conf" -case "$1" in - deconfig) - ifconfig $interface 0.0.0.0 - ;; - - renew|bound) - ifconfig $interface $ip \ - netmask ${subnet:-255.255.255.0} \ - broadcast ${broadcast:-+} - - if [ -n "$router" ] ; then - echo "deleting routers" - while route del default gw 0.0.0.0 dev $interface ; do - : - done - - for i in $router ; do - route add default gw $i dev $interface - done - fi - - echo -n > $RESOLV_CONF - ${domain:+echo search $domain} >> $RESOLV_CONF - for i in $dns ; do - echo adding dns $i - echo nameserver $i >> $RESOLV_CONF +hotplug_event() { + nvram show 2>&- | grep _proto=dhcp | { + while :; do + read FOO + [ -z "$FOO" ] && break + FOO="${FOO%%_*}" + [ "$(nvram get ${FOO}_ifname)" = "${interface}" ] || continue + env -i ACTION="$1" INTERFACE="${FOO}" PROTO=dhcp /sbin/hotplug iface + done + } +} +case "$1" in + deconfig) + ifconfig $interface 0.0.0.0 + hotplug_event ifdown + ;; + renew|bound) + ifconfig $interface $ip \ + netmask ${subnet:-255.255.255.0} \ + broadcast ${broadcast:-+} + + if [ -n "$router" ] ; then + echo "deleting routers" + while route del default gw 0.0.0.0 dev $interface ; do :; done + + for i in $router ; do + route add default gw $i dev $interface + done + fi + + echo -n > $RESOLV_CONF + ${domain:+echo search $domain} >> $RESOLV_CONF + for i in $dns ; do + echo adding dns $i + echo nameserver $i >> $RESOLV_CONF + done + + hotplug_event ifup + # user rules [ -f /etc/udhcpc.user ] && . /etc/udhcpc.user - - done - ;; + ;; esac + exit 0 -- cgit v1.2.3 From 0a69d8341ceef9caf08e94a3dafb89f0286fc5f2 Mon Sep 17 00:00:00 2001 From: florian Date: Wed, 11 Jan 2006 16:29:11 +0000 Subject: Do not delete default route if the router is the same, fixes #138 git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@2913 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/base-files/default/usr/share/udhcpc/default.script | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'package/base-files/default/usr') diff --git a/package/base-files/default/usr/share/udhcpc/default.script b/package/base-files/default/usr/share/udhcpc/default.script index 9fac6286c..304be1197 100755 --- a/package/base-files/default/usr/share/udhcpc/default.script +++ b/package/base-files/default/usr/share/udhcpc/default.script @@ -26,12 +26,14 @@ case "$1" in broadcast ${broadcast:-+} if [ -n "$router" ] ; then - echo "deleting routers" - while route del default gw 0.0.0.0 dev $interface ; do :; done - - for i in $router ; do - route add default gw $i dev $interface - done + + if [ "$router" != "$(route -n | grep '^0.0.0.0' | grep vlan1 | awk '{ print $2 }')" ] ; then + echo "deleting routers" + while route del default gw 0.0.0.0 dev $interface ; do :; done + for i in $router ; do + route add default gw $i dev $interface + done + fi fi echo -n > $RESOLV_CONF -- cgit v1.2.3 From 275d53e4fe05033657a9639b8dfe1504decfce61 Mon Sep 17 00:00:00 2001 From: florian Date: Wed, 11 Jan 2006 16:32:33 +0000 Subject: Interface was hardcoded, (cut/paste from the testing openwrt machine) git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@2914 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/base-files/default/usr/share/udhcpc/default.script | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'package/base-files/default/usr') diff --git a/package/base-files/default/usr/share/udhcpc/default.script b/package/base-files/default/usr/share/udhcpc/default.script index 304be1197..cef2c2ed2 100755 --- a/package/base-files/default/usr/share/udhcpc/default.script +++ b/package/base-files/default/usr/share/udhcpc/default.script @@ -27,7 +27,7 @@ case "$1" in if [ -n "$router" ] ; then - if [ "$router" != "$(route -n | grep '^0.0.0.0' | grep vlan1 | awk '{ print $2 }')" ] ; then + if [ "$router" != "$(route -n | grep '^0.0.0.0' | grep $interface | awk '{ print $2 }')" ] ; then echo "deleting routers" while route del default gw 0.0.0.0 dev $interface ; do :; done for i in $router ; do -- cgit v1.2.3 From 0ccf2d8759b60479100612932611ac33e5d5fb50 Mon Sep 17 00:00:00 2001 From: mbm Date: Mon, 16 Jan 2006 19:16:20 +0000 Subject: fix error messages git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@2996 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/base-files/default/usr/share/udhcpc/default.script | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'package/base-files/default/usr') diff --git a/package/base-files/default/usr/share/udhcpc/default.script b/package/base-files/default/usr/share/udhcpc/default.script index cef2c2ed2..42d3eaf0c 100755 --- a/package/base-files/default/usr/share/udhcpc/default.script +++ b/package/base-files/default/usr/share/udhcpc/default.script @@ -28,8 +28,9 @@ case "$1" in if [ -n "$router" ] ; then if [ "$router" != "$(route -n | grep '^0.0.0.0' | grep $interface | awk '{ print $2 }')" ] ; then - echo "deleting routers" - while route del default gw 0.0.0.0 dev $interface ; do :; done + while route del default gw 0.0.0.0 dev $interface 2>&- ; do + echo "removing old default route" + done for i in $router ; do route add default gw $i dev $interface done -- cgit v1.2.3 From 676c017ecfced2e37aeec176f8aa6b9df90024f3 Mon Sep 17 00:00:00 2001 From: nbd Date: Wed, 5 Apr 2006 02:09:22 +0000 Subject: large init script cleanup and merge of whiterussian changes, new dnsmasq config handling git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@3588 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/base-files/default/usr/lib/common.awk | 66 ++++++++++++++++++++++ .../base-files/default/usr/lib/parse-config.awk | 40 +++++++++++++ .../default/usr/share/udhcpc/default.script | 37 ++++++------ 3 files changed, 123 insertions(+), 20 deletions(-) create mode 100644 package/base-files/default/usr/lib/common.awk create mode 100644 package/base-files/default/usr/lib/parse-config.awk (limited to 'package/base-files/default/usr') diff --git a/package/base-files/default/usr/lib/common.awk b/package/base-files/default/usr/lib/common.awk new file mode 100644 index 000000000..63a8cf23d --- /dev/null +++ b/package/base-files/default/usr/lib/common.awk @@ -0,0 +1,66 @@ +function portstr(type, str) { + gsub(/-/, ":", str) + if (insmod_mport != 1) { + print "insmod ipt_multiport >&- 2>&-" + insmod_mport = 1 + } + if (type == "src") return " -m multiport --sports " str + else return " -m multiport --dports " str +} + +function str2ipt(str) { + str2data(str) + _cmd = "" + if (_l["src"] != "") _cmd = _cmd " -s " _l["src"] + if (_l["dest"] != "") _cmd = _cmd " -d " _l["dest"] + if (_l["proto"] != "") { + _cmd = _cmd " -p " _l["proto"] + } + # scripts need to check for proto="" and emit two rules in that case + if ((_l["proto"] == "") || (_l["proto"] == "tcp") || (_l["proto"] == "udp")) { + if (_l["sport"] != "") _cmd = _cmd portstr("src", _l["sport"]) + if (_l["dport"] != "") _cmd = _cmd portstr("dest", _l["dport"]) + } + if (_l["layer7"] != "") { + if (insmod_l7 != 1) { + print "insmod ipt_layer7 >&- 2>&-" + insmod_l7 = 1 + } + _cmd = _cmd " -m layer7 --l7proto " _l["layer7"] + } + return _cmd +} + +function str2data(str) { + delete _l + _n = split(str, _o, "[\t ]") + for (_i = 1; _i <= _n; _i++) { + _n2 = split(_o[_i], _c, "=") + if (_n2 == 2) _l[_c[1]] = _c[2] + } +} + +function bitcount(c) { + c=and(rshift(c, 1),0x55555555)+and(c,0x55555555) + c=and(rshift(c, 2),0x33333333)+and(c,0x33333333) + c=and(rshift(c, 4),0x0f0f0f0f)+and(c,0x0f0f0f0f) + c=and(rshift(c, 8),0x00ff00ff)+and(c,0x00ff00ff) + c=and(rshift(c,16),0x0000ffff)+and(c,0x0000ffff) + return c +} + +function validate_netmask(nm) { + return and(-nm,compl(nm)) +} + +function ip2int(ip) { + for (ret=0,n=split(ip,a,"\."),x=1;x<=n;x++) ret=or(lshift(ret,8),a[x]) + return ret +} + +function int2ip(ip,ret,x) { + ret=and(ip,255) + ip=rshift(ip,8) + for(;x<3;ret=and(ip,255)"."ret,ip=rshift(ip,8),x++); + return ret +} diff --git a/package/base-files/default/usr/lib/parse-config.awk b/package/base-files/default/usr/lib/parse-config.awk new file mode 100644 index 000000000..bde5c0072 --- /dev/null +++ b/package/base-files/default/usr/lib/parse-config.awk @@ -0,0 +1,40 @@ +{ + line=$0 + gsub(/^[ \t]*/, "") + gsub(/[ \t]*$/, "") +} + +$1 == "@define" { + v[$2] = $3 +} + +$1 == "@ifdef" { + if_open = 1 + if (v[$2] != "") noprint = 0 + else noprint = 1 +} + +$1 == "@ifndef" { + if_open = 1 + if (v[$2] != "") noprint = 1 + else noprint = 0 +} + +$1 == "@else" { + if (noprint == 1) noprint = 0 + else noprint = 1 +} + +($1 !~ /^@/) && (noprint != 1) { + n=split(line "@@", a, /@@/) + for (i=1; i<=n; i++) { + if ((i % 2) == 1) printf a[i] + else printf v[a[i]] + } + print "" +} + +$1 == "@endif" { + if_open = 0 + noprint = 0 +} diff --git a/package/base-files/default/usr/share/udhcpc/default.script b/package/base-files/default/usr/share/udhcpc/default.script index 42d3eaf0c..4604648e6 100755 --- a/package/base-files/default/usr/share/udhcpc/default.script +++ b/package/base-files/default/usr/share/udhcpc/default.script @@ -1,18 +1,17 @@ #!/bin/sh [ -z "$1" ] && echo "Error: should be run by udhcpc" && exit 1 +. /etc/config/network RESOLV_CONF="/tmp/resolv.conf" hotplug_event() { - nvram show 2>&- | grep _proto=dhcp | { - while :; do - read FOO - [ -z "$FOO" ] && break - FOO="${FOO%%_*}" - [ "$(nvram get ${FOO}_ifname)" = "${interface}" ] || continue - env -i ACTION="$1" INTERFACE="${FOO}" PROTO=dhcp /sbin/hotplug iface - done - } + for ifname in lan wan wifi ${ifnames}; do + eval "proto=\"\${${ifname}_proto}\"" + eval "if=\"\${${ifname}_ifname}\"" + [ "$proto" = "dhcp" ] || continue + [ "$if" = "$interface" ] || continue + env -i ACTION="$1" INTERFACE="$ifname" PROTO=dhcp /sbin/hotplug iface + done } case "$1" in @@ -26,22 +25,20 @@ case "$1" in broadcast ${broadcast:-+} if [ -n "$router" ] ; then - - if [ "$router" != "$(route -n | grep '^0.0.0.0' | grep $interface | awk '{ print $2 }')" ] ; then - while route del default gw 0.0.0.0 dev $interface 2>&- ; do - echo "removing old default route" - done - for i in $router ; do - route add default gw $i dev $interface - done - fi + echo "deleting routers" + while route del default gw 0.0.0.0 dev $interface >&- 2>&- ; do :; done + + for i in $router ; do + echo "adding router $i" + route add default gw $i dev $interface + done fi echo -n > $RESOLV_CONF ${domain:+echo search $domain} >> $RESOLV_CONF for i in $dns ; do - echo adding dns $i - echo nameserver $i >> $RESOLV_CONF + echo "adding dns $i" + echo "nameserver $i" >> $RESOLV_CONF done hotplug_event ifup -- cgit v1.2.3 From ed5ef674d100ca0ffa8bc00160718f69af5515c3 Mon Sep 17 00:00:00 2001 From: nbd Date: Tue, 27 Jun 2006 00:36:13 +0000 Subject: add copyright headers to base-files scripts and config files git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@4090 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/base-files/default/usr/lib/common.awk | 2 ++ package/base-files/default/usr/lib/parse-config.awk | 2 ++ 2 files changed, 4 insertions(+) (limited to 'package/base-files/default/usr') diff --git a/package/base-files/default/usr/lib/common.awk b/package/base-files/default/usr/lib/common.awk index 63a8cf23d..c5ce680fa 100644 --- a/package/base-files/default/usr/lib/common.awk +++ b/package/base-files/default/usr/lib/common.awk @@ -1,3 +1,5 @@ +# Copyright (C) 2006 OpenWrt.org + function portstr(type, str) { gsub(/-/, ":", str) if (insmod_mport != 1) { diff --git a/package/base-files/default/usr/lib/parse-config.awk b/package/base-files/default/usr/lib/parse-config.awk index bde5c0072..cf1b09c58 100644 --- a/package/base-files/default/usr/lib/parse-config.awk +++ b/package/base-files/default/usr/lib/parse-config.awk @@ -1,3 +1,5 @@ +# Copyright (C) 2006 OpenWrt.org + { line=$0 gsub(/^[ \t]*/, "") -- cgit v1.2.3 From c4f3575368c5aeef4134d82125df2814d688cc2a Mon Sep 17 00:00:00 2001 From: nbd Date: Sun, 30 Jul 2006 03:09:09 +0000 Subject: rewrite of the network scripts and configuration git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@4323 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/base-files/default/usr/share/udhcpc/default.script | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'package/base-files/default/usr') diff --git a/package/base-files/default/usr/share/udhcpc/default.script b/package/base-files/default/usr/share/udhcpc/default.script index 4604648e6..a244e05a1 100755 --- a/package/base-files/default/usr/share/udhcpc/default.script +++ b/package/base-files/default/usr/share/udhcpc/default.script @@ -1,15 +1,19 @@ #!/bin/sh [ -z "$1" ] && echo "Error: should be run by udhcpc" && exit 1 -. /etc/config/network +. /etc/functions.sh +include network RESOLV_CONF="/tmp/resolv.conf" hotplug_event() { - for ifname in lan wan wifi ${ifnames}; do - eval "proto=\"\${${ifname}_proto}\"" - eval "if=\"\${${ifname}_ifname}\"" + scan_interfaces + for ifc in $interfaces; do + config_get ifname $ifc ifname + [ "$ifname" = "$interface" ] || continue + + config_get proto $ifc proto [ "$proto" = "dhcp" ] || continue - [ "$if" = "$interface" ] || continue + env -i ACTION="$1" INTERFACE="$ifname" PROTO=dhcp /sbin/hotplug iface done } -- cgit v1.2.3 From 139dfb16c8d408dce549701a7b3e57f5f06d5257 Mon Sep 17 00:00:00 2001 From: nbd Date: Sun, 24 Sep 2006 13:32:18 +0000 Subject: use absolute paths in include() shell function git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@4852 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/base-files/default/usr/share/udhcpc/default.script | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'package/base-files/default/usr') diff --git a/package/base-files/default/usr/share/udhcpc/default.script b/package/base-files/default/usr/share/udhcpc/default.script index a244e05a1..e048687f7 100755 --- a/package/base-files/default/usr/share/udhcpc/default.script +++ b/package/base-files/default/usr/share/udhcpc/default.script @@ -1,7 +1,7 @@ #!/bin/sh [ -z "$1" ] && echo "Error: should be run by udhcpc" && exit 1 . /etc/functions.sh -include network +include /lib/network RESOLV_CONF="/tmp/resolv.conf" -- cgit v1.2.3 From b9f75a560dedd426db89cb74b16aaad85b0f50be Mon Sep 17 00:00:00 2001 From: nbd Date: Tue, 3 Oct 2006 19:38:34 +0000 Subject: don't recreate the resolv.conf file from the dhcp script if no dhcp server is supplied (reported by exobyte) git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@4903 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../base-files/default/usr/share/udhcpc/default.script | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'package/base-files/default/usr') diff --git a/package/base-files/default/usr/share/udhcpc/default.script b/package/base-files/default/usr/share/udhcpc/default.script index e048687f7..74e703715 100755 --- a/package/base-files/default/usr/share/udhcpc/default.script +++ b/package/base-files/default/usr/share/udhcpc/default.script @@ -37,13 +37,15 @@ case "$1" in route add default gw $i dev $interface done fi - - echo -n > $RESOLV_CONF - ${domain:+echo search $domain} >> $RESOLV_CONF - for i in $dns ; do - echo "adding dns $i" - echo "nameserver $i" >> $RESOLV_CONF - done + + [ -n "$dns" ] && { + echo -n > $RESOLV_CONF + ${domain:+echo search $domain} >> $RESOLV_CONF + for i in $dns ; do + echo "adding dns $i" + echo "nameserver $i" >> $RESOLV_CONF + done + } hotplug_event ifup -- cgit v1.2.3 From 91ef5b68e237e3d9e4a90f43427e55ab35928aa3 Mon Sep 17 00:00:00 2001 From: nbd Date: Sun, 8 Oct 2006 19:16:04 +0000 Subject: fix a small bug in the parse-config script git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@4969 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/base-files/default/usr/lib/parse-config.awk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'package/base-files/default/usr') diff --git a/package/base-files/default/usr/lib/parse-config.awk b/package/base-files/default/usr/lib/parse-config.awk index cf1b09c58..9ce32b74f 100644 --- a/package/base-files/default/usr/lib/parse-config.awk +++ b/package/base-files/default/usr/lib/parse-config.awk @@ -27,7 +27,7 @@ $1 == "@else" { else noprint = 1 } -($1 !~ /^@/) && (noprint != 1) { +($1 !~ /^@[a-zA-Z]/) && (noprint != 1) { n=split(line "@@", a, /@@/) for (i=1; i<=n; i++) { if ((i % 2) == 1) printf a[i] -- cgit v1.2.3