Am Sonntag, 5. Mai 2011, 20:02:13 schrieb Peter Wagner: > Am Sonntag, 5. Mai 2011, 19:54:22 schrieb Peter Wagner: > > Am Freitag, 3. Mai 2011, 04:11:43 schrieb Philip Prindeville: > > > On 5/31/11 10:48 AM, Peter Wagner wrote: > > > > Am Dienstag, 31. Mai 2011, 17:52:58 schrieb Philip Prindeville: > > > >> On 5/30/11 4:00 PM, Peter Wagner wrote: > > > >>> Hi, > > > >>> > > > >>> while i was reading some init files i stumbled upon this: > > > >>> > > > >>> /sbin/wifi detect >> /etc/config/wireless > > > >>> > > > >>> grep -qs config /etc/config/wireless && { > > > >>> > > > >>> /sbin/wifi up > > > >>> > > > >>> } || { > > > >>> > > > >>> rm -f /etc/config/wireless > > > >>> > > > >>> } > > > >>> > > > >>> this means: > > > >>>> /sbin/wifi detect >> /etc/config/wireless > > > >>> > > > >>> /sbin/wifi only outputs something if /etc/config/wireless doesnt > > > >>> exist but even if the files exist /etc/config/wireless modification > > > >>> time gets updated. this means even when the wifi is allready > > > >>> configured the modtime of the file gets updated everytime the > > > >>> system boots. > > > >>> > > > >>> i created this patch - maybe there is a better way to fix this. > > > >> > > > >> I would test for the file changing with respect to the existing > > > >> copy, rather than non-zero length. > > > >> > > > >> If you change out hardware, or if you had a wireless interface but > > > >> now have removed it, you don't want to retain invalid information. > > > >> > > > >> I'd use "cmp -s" to compare the two files. > > > > > > > > this wont work - because if the file wireless exists the script > > > > output nothing ... so if you attach a new wifi card - you would have > > > > to remove the file and restart the router or do a wifi detect > > > > > /etc/config/wireless ... > > > > > > > > and if the file is empty (the one wifi detect created) cmp will also > > > > return something != 0... > > > > > > That's a glitch. Why should "wifi detect" care if there's a file > > > already present or not? It should ignore it. > > > > yeah but if i have a /etc/config/wireless file and do a wifi detect i get > > no output - when i delete the file it gives me the standard file... like > > > > server /root # ls -la /etc/config/wireless > > -rw-r--r-- 1 root root 321 Jan 27 00:27 > > /etc/config/wireless server /root # wifi detect > > server /root # rm /etc/config/wireless > > server /root # wifi detect > > config wifi-device radio0 > > > > option type mac80211 > > option channel 11 > > option macaddr xx:xx:xx:xx:xx:xx > > option hwmode 11g > > > > # REMOVE THIS LINE TO ENABLE WIFI: > > option disabled 1 > > > > config wifi-iface > > > > option device radio0 > > option network lan > > option mode ap > > option ssid OpenWrt > > option encryption none > > > > i modified the patch, now it doesnt use wc anymore .... > > > > > > regards > > Peter > > > > > _______________________________________________ > > > openwrt-devel mailing list > > > openwrt-devel@lists.openwrt.org > > > https://lists.openwrt.org/mailman/listinfo/openwrt-devel > > no this patch wont work .... the old one with wc -l is the working one ;) > > regards
sorry for the noise but as the file is created one line befor the test it can be assumend the file is there so . this version was correct ... regards peter
diff --git a/package/base-files/files/etc/init.d/network b/package/base-files/files/etc/init.d/network index c2095a4..fc51221 100755 --- a/package/base-files/files/etc/init.d/network +++ b/package/base-files/files/etc/init.d/network @@ -9,11 +9,14 @@ boot() { include /lib/network setup_switch - /sbin/wifi detect >> /etc/config/wireless + + /sbin/wifi detect > /tmp/wireless.tmp + [ -s /tmp/wireless.tmp ] && { + cat /tmp/wireless.tmp >> /etc/config/wireless + } + rm -f /tmp/wireless.tmp grep -qs config /etc/config/wireless && { /sbin/wifi up - } || { - rm -f /etc/config/wireless } scan_interfaces
_______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel