wrong time?
Jeff Sadowski
jeff.sadowski
Tue May 6 12:53:15 PDT 2008
My solution
#!/bin/sh
#/etc/timecheck.sh
#
twodigit()
{
if [ $1 -lt 10 ];then
echo 0$1
else
echo $1
fi
}
#MM=two digit month
#DD=two digit day
#HH=two digit hour in 24 hour
#mm=two digit minute
#YYYY=four digit year
seconds_since_epoch_to_MMDDHHmmYYYY()
{
year=0000
month=0
day=0
hour=0
minute=0
epochyear=1970
#just a close proximity I can be a bit off
#(a number of days) since most certs are
#good for a year period.
let secondsinminute=61
let secondsinhour=60*$secondsinminute
let secondsinday=24*$secondsinhour
let secondsinmonth=30*$secondsinday
let secondsinyear=12*$secondsinmonth
let years=$1/$secondsinyear
let year=$epochyear+$years
let subtractyears=$years*$secondsinyear
let monthsleft=$1-$subtractyears
let months=$monthsleft/$secondsinmonth
let month=$months+1
let subtractmonths=$months*$secondsinmonth
let daysleft=$monthsleft-$subtractmonths
let days=$daysleft/$secondsinday
let day=$days+1
#Since again I don't need to be exact the
#only month that has less than 30 days needs
#checked
if [ $month -eq 2 ];then
if [ $day -gt 28 ];then
day=28
fi
fi
let subtractdays=$days*$secondsinday
let hoursleft=$daysleft-$subtractdays
let hours=$hoursleft/$secondsinhour
let hour=$hours
let subtracthours=$hours*$secondsinhour
let minutesleft=$hoursleft-$subtracthours
let minutes=$minutesleft/$secondsinminute
let minute=$minutes
let subtractminutes=$minutes*$secondsinminute
let secondsleft=$minutesleft-$subtractminutes
if [ $secondsleft -gt 59 ];then
second=59
else
second=$secondsleft
fi
echo -n `twodigit $month``twodigit $day`
echo `twodigit $hour``twodigit $minute`$year
}
TMPFILE=/var/volatile/wpastuff
wpa_supplicant -Dmarvell -iwlan0 \
-c/etc/wpa_supplicant.conf \
-w 1>$TMPFILE 2>/dev/null &
#wait for wpa_supplicant to try and connect
sleep 5
killall wpa_supplicant
while [ "`ps|grep wpa_supplicant \
|grep -v grep`" != "" ];do
sleep 1
done
vars=`cat $TMPFILE |grep now \
|cut -d "(" -f2|cut -d ")" -f1`
if [ "$vars" != "" ];then
for var in $vars ;do
let $var
done
let diff=$not_after-$not_before
let halfdiff=$diff/2
let now=$not_before+$halfdiff
date `seconds_since_epoch_to_MMDDHHmmYYYY $now`
fi
On Mon, May 5, 2008 at 4:07 PM, Jeff Sadowski <jeff.sadowski at gmail.com> wrote:
> I have a mobile linux device that has no RTC as such if I start the
> device to connect without setting the clock first I get
>
> wpa_supplicant -Dmarvell -iwlan0 -c/etc/wpa_supplicant.conf -w
> ioctl[SIOCSIWPMKSA]: Invalid argument
> Trying to associate with 00:0b:0e:26:d2:80 (SSID='ABBA1X' freq=2437 MHz)
> Associated with 00:0b:0e:26:d2:80
> CTRL-EVENT-EAP-STARTED EAP authentication started
> CTRL-EVENT-EAP-METHOD EAP vendor 0 method 25 (PEAP) selected
> X509: Certificate not valid (now=1210001377 not_before=1156333193
> not_after=1187869193)
> CTRL-EVENT-TERMINATING - signal 2 received
>
> I would like to have the device set the time automatically but only if
> it has to.
> Is there a way to have it try and connect first without really connecting?
> Just have it spit the above information to a script so that it can
> determin it needs to set the time to half way between
> not_before=1156333193 and not_after=1187869193
>
> Or better yet is there a way to have wpa_supplicant set the time as it
> is connecting?
>
More information about the Hostap
mailing list