#!/bin/sh export PATH="/bin/:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" GET_NAME_enable="YES" PUSH_MSG_enable="YES" #RSYNC_enable="YES" mkdir -p /tmp/bt cp /root/msg.txt /tmp/bt/msg1.txt . /root/ip if [ ! $blue_dev1 ] then blue_dev1="${blue_dev0}" fi SPOOL=/var/spool/obex DATA=$SPOOL mkdir -p $SPOOL/config/ mkdir -p $SPOOL/${ip}/config/ cp /root/intro* $SPOOL cp /root/.ssh/known_hosts_old $SPOOL/config/known_hosts chmod 755 $SPOOL/intro.* ## start up mesh if [ `ifconfig -l | grep -c $wifi_mesh` = 1 ] then echo starting wifi mesh mode ifconfig $wifi_mesh down ifconfig $wifi_mesh delete ifconfig $wifi_mesh -mediaopt hostap ifconfig $wifi_mesh mediaopt adhoc channel 48 ssid bluemesh ifconfig $wifi_mesh 10.0.0."${ip}"/28 killall olsrd olsrd -i $wifi_mesh mesh_sub="subnet 10.0.0.0 netmask 255.255.255.0 { }" fi if [ `ifconfig -l | grep -c $wifi_ap` = 1 ] then echo starting wifi ap mode ifconfig $wifi_ap down ifconfig $wifi_ap delete ifconfig $wifi_ap -mediaopt adhoc ifconfig $wifi_ap 10.0."${ip}".1 ifconfig $wifi_ap mediaopt hostap channel 1 ssid blue-ap-$ip ## set dhcpd.conf echo "option domain-name \"blue-spot\"; option domain-name-servers blue-spot; default-lease-time 600; max-lease-time 7200; authoritative; ddns-update-style ad-hoc; log-facility local7; $mesh_sub subnet 10.0.${ip}.0 netmask 255.255.255.224 { range 10.0.${ip}.10 10.0.${ip}.20; option routers 10.0.${ip}.1; }" > $DATA/${ip}/config/dhcpd.conf ## killall dhcpd's killall dhcpd ## start dhcpd if [ ! -f /var/db/dhcpd.leases ] then mkdir -p /var/db touch /var/db/dhcpd.leases fi dhcpd -cf $DATA/${ip}/config/dhcpd.conf fi ifconfig > $DATA/${ip}/config/interfaces.txt ## kill webserver if alive if [ ! `ps ax | grep -c thttpd` = 0 ] then killall thttpd fi ## start webserver thttpd -dd $SPOOL ## start bt device mkdir -p /var/run /etc/rc.d/bluetooth stop ${blue_dev0} /etc/rc.d/bluetooth start ${blue_dev0} ## let bt_dev wake up sleep 3 ##set bt_hostname hccontrol -n ${blue_dev0}hci change_local_name blue-spot-$ip if [ $blue_dev1 ] then hccontrol -n ${blue_dev1}hci change_local_name blue-spot-$ip fi ## /etc/rc.d/sdpd restart sleep 3 ## run obex server on channel 10 if [ ! `ps ax | grep -c opexapp` = 0 ] then killall obexapp fi #obexapp -s -C 10 -A `hccontrol -n ubt0hci Read_BD_ADDR | awk '{print $2}'` obexapp -s -C 10 ## to-do internet acces #rfcomm_pppd -s -C 1 -l rfcomm-server ## mining function RSYNC(){ ## sync data if [ "${RSYNC_enable}" = "YES" ] then for NODE in `netstat -rn | grep 10.0.0.\*/32 | awk '{print $1}'` do NODE=`echo $NODE | sed s/\\\/32//` echo rsync $NODE rsync --time-limit=1 -var $SPOOL/ $NODE:$SPOOL/ done fi } GET_NAME(){ if [ "${GET_NAME_enable}" = "YES" ] then if [ `cat /tmp/bt/bt_${FOUND}.txt | grep -c NAME` = "0" ] then NAME=`hccontrol -n ${blue_dev0}hci remote_name_request $FOUND \ | grep Name \ | sed -e 's/Name: //' -e 's/ /_/g'` echo $FOUND $DATE NAME $NAME >> /tmp/bt/bt_${FOUND}.txt fi fi } PUSH_MSG(){ if [ "${PUSH_MSG_enable}" = "YES" ] then if [ `cat /tmp/bt/bt_${FOUND}.txt | grep -c MSG` = "0" ] then CHANNEL=`sdpcontrol -a $FOUND search OPUSH | grep int | awk '{print $6}'` obexapp -a $FOUND -C $CHANNEL -n put /tmp/bt/msg1.txt && \ echo $FOUND $DATE $CHANNEL MSG >> /tmp/bt/bt_${FOUND}.txt fi fi } LIST_DEV(){ for DEV in `cat /tmp/bt/bt_new.txt` do echo $DEV `date +%Y-%m-%d-%H-%M` >> /tmp/bt/bt_mainlist.txt done hccontrol -n ${blue_dev1}hci inquiry | \ grep BD_ADDR | awk '{print $2}' \ > /tmp/bt/bt_new.txt } while [ 1 ] do LIST_DEV for FOUND in `cat /tmp/bt/bt_new.txt` do DATE=`date +%Y-%m-%d-%H-%M` GET_NAME PUSH_MSG echo $FOUND $DATE >> /tmp/bt/bt_${FOUND}.txt done chmod -R 666 $SPOOL/ chmod 777 $SPOOL done done