88 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			88 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | start() | ||
|  | { | ||
|  |     ifconfig wlan0 up | ||
|  |     if [ -n "$cfg_eth_ext_ip$cfg_eth_prv_ip" ]; then | ||
|  |         while [ 1 ]; do | ||
|  |             echo "* Waiting for wlan0 device..." | ||
|  |             ifconfig wlan0 > /dev/null 2>&1 | ||
|  |             [ $? -eq 0 ] && break | ||
|  |             usleep 250000 | ||
|  |         done | ||
|  |     fi | ||
|  | 
 | ||
|  |     if [ -n "$cfg_bridge0_ip" ]; then | ||
|  |         for itf in $cfg_bridge0_itfs; do | ||
|  |             ifconfig $itf 0.0.0.0 | ||
|  |         done | ||
|  | 
 | ||
|  |         brctl addbr bridge0 | ||
|  | 
 | ||
|  |         for itf in $cfg_bridge0_itfs; do | ||
|  |             brctl addif bridge0 $itf | ||
|  |         done | ||
|  | 
 | ||
|  |         ifconfig bridge0 $cfg_bridge0_ip netmask $cfg_bridge0_nmask up | ||
|  |         ifconfig bridge0 multicast | ||
|  |         route add -net 224.0.0.0 netmask 240.0.0.0 dev bridge0 | ||
|  |     fi | ||
|  | 
 | ||
|  |     # Public ethernet. | ||
|  |     if [ -n "$cfg_eth_ext_ip" ]; then | ||
|  |         if [ -n "$cfg_eth_ext_mk" ]; then | ||
|  |             ifconfig wlan0 "$cfg_eth_ext_ip" netmask "$cfg_eth_ext_mk" up | ||
|  |         else | ||
|  |             ifconfig wlan0 "$cfg_eth_ext_ip" up | ||
|  |         fi | ||
|  |         ifconfig wlan0 multicast | ||
|  |         route add -net 224.0.0.0 netmask 240.0.0.0 dev wlan0 | ||
|  | 
 | ||
|  |         # Fixed mac address with $cfg_eth_ext_mac based derivated from IP address $cfg_eth_ext_ip | ||
|  |         if [ -n "$cfg_eth_ext_mac" ]; then | ||
|  |           ifconfig wlan0 hw ether $cfg_eth_ext_mac | ||
|  |         fi | ||
|  |     fi | ||
|  | 
 | ||
|  |     if [ -n "$cfg_eth_ext_gw" ]; then | ||
|  |         route add default gw "$cfg_eth_ext_gw" | ||
|  |     fi | ||
|  | 
 | ||
|  |     if [ -n "$cfg_eth_ext_dns" ]; then | ||
|  |         echo "nameserver $cfg_eth_ext_dns" > /etc/resolv.conf | ||
|  |     fi | ||
|  | 
 | ||
|  |     # Private ethernet. | ||
|  |     if [ -n "$cfg_eth_prv_ip" ]; then | ||
|  |         ifconfig wlan0:prv "$cfg_eth_prv_ip" up | ||
|  |     fi | ||
|  | 
 | ||
|  |     # Static ARP table. | ||
|  |     if [ -n "$cfg_arp_table" ]; then | ||
|  |         for e in $cfg_arp_table; do | ||
|  |             ip="$(echo $e | cut -f1 -d'|')" | ||
|  |             mac="$(echo $e | cut -f2 -d'|')" | ||
|  |             arp -s "$ip" "$mac" | ||
|  |         done | ||
|  |     fi | ||
|  | 
 | ||
|  |     iw wlan0 connect LSTS | ||
|  |     ifconfig eth0 down | ||
|  | } | ||
|  | 
 | ||
|  | stop() | ||
|  | { | ||
|  |     # Public ethernet. | ||
|  |     if [ -n "$cfg_eth_ext_gw" ]; then | ||
|  |         route del default | ||
|  |     fi | ||
|  | 
 | ||
|  |     if [ -n "$cfg_eth_ext_ip" ]; then | ||
|  |         route del -net 224.0.0.0 netmask 240.0.0.0 dev wlan0 | ||
|  |         ifconfig wlan0 down | ||
|  |     fi | ||
|  | 
 | ||
|  |     # Private ethernet. | ||
|  |     if [ -n "$cfg_eth_prv_ip" ]; then | ||
|  |         ifconfig wlan0:prv down | ||
|  |     fi | ||
|  | } |