В Sun, 05 Jun 2011 22:08:01 -0700
Philip Prindeville <philipp_s...@redfish-solutions.com> пишет:

> On 6/5/11 10:54 AM, Peter Wagner wrote:
> > 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
> 
> You misunderstand me. I'm saying that "wifi detect" should generate an output 
> file regardless of whether /etc/config/wireless exists or not. Capture the 
> output into /tmp, and if it's different from what's in /etc/config/wireless 
> then copy it over.

Then if a user modified /etc/config/wireless, the changes will not
survive a reboot. That's no good.

Why not do something like:

test -s /etc/config/wireless || wifi detect > /etc/config/wireless

This should work both when 'wifi detect' generates output or not.

-- 
  Alexander

Attachment: signature.asc
Description: PGP signature

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to