import config, os
from roxiadebug import *
_pstn = 'PSTN'
_ethernet = 'ETHERNET'
_wireless = 'WIRELESS'
ip_mode = 0
def make_broadcast(ipad, netma):
iplist = ipad.split('.')
netlist = netma.split('.')
brdlist = []
brdcast = ''
try:
for z in range(len(iplist)):
brdlist.append(int(iplist[z]) | (~int(netlist[z]) + 256))
for z in range(len(brdlist) - 1):
brdcast += str(brdlist[z]) + '.'
else:
brdcast += str(brdlist[len(brdlist)- 1])
except:
pass
return brdcast
class Profile:
def __init__(self):
self.profile = 'ETHERNET' #default
def set_profile(self, value):
global ip_mode
from setting import setting
from vdcisetting import vdci_setting
#Roxia Begin jhbang 06.04.07
vdci_setting.load()
#Roxia End jhbang
self.profile = (_pstn, _ethernet, _wireless)[value]
if self.profile == _pstn:
ip_mode = 0
else:
ip_mode = 1
self.save()
# set PSTN: ethernet(ENABLE=no), wireless(ENABLE=no)
# set LAN: ethernet(ENABLE=yes), wireless(ENABLE=no)
# set WiFi: ethernet(ENABLE=no), wireless(ENABLE=yes)
if value == 0: # set PSTN
vdci_setting.set_mtu('200') #set MTU
vdci_setting.set_ip_mode(0)
elif value == 1: # set LAN
vdci_setting.set_mtu('1450') #set MTU
vdci_setting.set_ip_mode(1)
elif value == 2: # set WiFi
vdci_setting.set_mtu('1450') #set MTU # vpark 11.19
vdci_setting.set_ip_mode(1)
else:
pass
#assert Flase
def get_profile(self):
if self.profile == _ethernet:
return 1
elif self.profile == _wireless:
return 2
else: #pstn
return 0
def reset(self):
self.__init__()
self.save(False)
def save(self, update_vdci=True):
name = config.profile_file
fp = open(name, 'w')
for key, value in self.__dict__.items():
if key[0] != '_' and (type(value) in (type(''), type(0))):
fp.write("%s=%s\n" % (key.upper(), value))
#Roxia Begin jhbang 06.04.05
#if update_vdci:
# from vdcisetting import vdci_setting
# from setting import setting
# if self.profile == _pstn:
# vdci_setting.set_domain(setting.def_pstn_domain)
# else:
# vdci_setting.set_domain(setting.def_ip_domain)
# vdci_setting.save()
#Roxia End jhbang
return False
def load(self):
global ip_mode
roxia_trace('profile loading..')
name = config.profile_file
g = self.__dict__
if os.path.exists(name):
for line in file(name):
line = line.strip()
if not line or line[0] == '#':
continue
key, value = line.split('=', 1)
key = key.lower()
if value[0] == "'":
g[key] = value[1:-1]
else:
g[key] = value
if self.profile == _pstn:
roxia_trace('>>> ip_mode = 0')
ip_mode = 0
else:
roxia_trace('>>> ip_mode = 1')
ip_mode = 1
_yes = 'yes'
_no = 'no'
class LANProfile:
def __init__(self):
self.interface = 'eth0'
self.dhcp = _yes
self.ipaddress = ''
self.netmask = ''
self.gateway = ''
self._old_interface = 'eth0'
self._old_dhcp = _yes
self._old_ipaddress = ''
self._old_netmask = ''
self._old_gateway = ''
self.tag_notchanged = False
self.tag_shouldrollback = False
def set_dhcp(self, value=True):
roxia_trace('LANProfile.set_dhcp', value)
if value == True:
self.dhcp = _yes
else:
self.dhcp = _no
#print '\n#### OLD DHCP=', self._old_dhcp, ' / set to=', self.dhcp
#self.save()
def set_ipaddress(self, value):
roxia_trace('LANProfile.set_ipaddress', value)
self.ipaddress = value
self.broadcast = make_broadcast(self.ipaddress, self.netmask)
#self.save()
def set_netmask(self, value):
roxia_trace('LANProfile.set_netmask', value)
self.netmask = value
self.broadcast = make_broadcast(self.ipaddress, self.netmask)
#self.save()
def set_gateway(self, value):
roxia_trace('LANProfile.set_gateway', value)
self.gateway = value
#self.save()
def get_dhcp(self):
if self.dhcp == _yes:
return True
else:
return False
def reset(self):
self.__init__()
self.save()
def save(self):
name = config.lan_profile_file
fp = open(name, 'w')
for key, value in self.__dict__.items():
if key[0] != '_' and (type(value) in (type(''), type(0))):
fp.write("%s=%s\n" % (key.upper(), value))
self.copy_old_values()
return False
def load(self):
print('lan profile loading..')
name = config.lan_profile_file
g = self.__dict__
if os.path.exists(name):
for line in file(name):
line = line.strip()
if not line or line[0] == '#':
continue
key, value = line.split('=', 1)
key = key.lower()
if value == '': # value가 없는 경우, ex) GATEWAY=
continue
if value[0] == "'": # value가 (')문자열로 묶인 경우
g[key] = value[1:-1]
else:
g[key] = value
# eicho 06.07.07
self.copy_old_values()
# eicho 06.07.07
def copy_old_values(self):
#print '### COPY OLD VALUEs ###'
#if self.tag_notchanged and self.tag_shouldrollback:
# self.rollback_values()
#else:
self._old_interface = self.interface
self._old_dhcp = self.dhcp
self._old_ipaddress = self.ipaddress
self._old_netmask = self.netmask
self._old_gateway = self.gateway
def rollback_values(self):
self.interface = self._old_interface
self.dhcp = self._old_dhcp
self.ipaddress = self._old_ipaddress
self.netmask = self._old_netmask
self.gateway = self._old_gateway
def except_apply(self, option):
#print '>> LAN profile value is changed but not apply!'
#self.show_items()
self.rollback_values()
#self.show_items()
self.tag_notchanged = option
def show_items(self):
print '============================='
print '>> self.interface = ', self.interface
print '>> self.dhcp = ', self.dhcp
print '>> self.ipaddress = ', self.ipaddress
print '>> self.netmask = ', self.netmask
print '>> self.gateway = ', self.gateway
# end
class WiFiProfileGeneral:
# shchun add : to handle general(== user set) profile.
def __init__(self):
self._name = 'GenAP'
self.interface = 'wlan0'
self.dhcp = _yes
self.ipaddress = ''
self.netmask = ''
self.gateway = ''
self.broadcast = ''
self.essid = ''
self.channelid = ''
self.encryption = 'NONE'
self.wepkeyno_64 = '1'
self.wepkey1_64 = ''
self.wepkey2_64 = ''
self.wepkey3_64 = ''
self.wepkey4_64 = ''
self.wepkeyno_128 = '1'
self.wepkey1_128 = ''
self.wepkey2_128 = ''
self.wepkey3_128 = ''
self.wepkey4_128 = ''
self.wpa_psk_tkip = ''
self.wpa2_psk_ccmp=''
self.apmacaddress = ''
self.security = ''
self.signallevel = ''
self.bitrate = ''
self.authentication = 'OPEN'
self.wmm = _yes
self.probe_timer=3
self.wpa2_psk_tkip = ''
self.wpa_psk_aes = ''
self.network_authentication='no'
self.tunneled=''
self.server_certification=''
self.identity=''
self.username=''
self.password=''
self.cacert_path=''
self.user_cert_path=''
self.private_key_path=''
self.private_key_password=''
self.mac_mode_on = 'no'
self.bssid = ''
# MMW add Jun 12th
self.wlconfigd_version='0.3'
self.scan='0'
self.pm='0'
self.cwmin='0'
self.cwmax='0'
self.txqage='500'
self.prof1='PROF_OPEN'
self.wme_vo_min='-1'
self.wme_vo_max='-1'
self.wme_vi_min='-1'
self.wme_vi_max='-1'
# eicho add 06.07.07
self._old_interface = 'wlan0'
self._old_dhcp = _yes
self._old_ipaddress = ''
self._old_netmask = ''
self._old_gateway = ''
self.tag_notchanged = False
self._old_broadcast = ''
self._old_essid = ''
self._old_channelid = ''
self._old_encryption = 'NONE'
self._old_wepkeyno_64 = '1'
self._old_wepkey1_64 = ''
self._old_wepkey2_64 = ''
self._old_wepkey3_64 = ''
self._old_wepkey4_64 = ''
self._old_wepkeyno_128 = '1'
self._old_wepkey1_128 = ''
self._old_wepkey2_128 = ''
self._old_wepkey3_128 = ''
self._old_wepkey4_128 = ''
self._old_wpa_psk_tkip = ''
self._old_apmacaddress = ''
self._old_security = ''
self._old_signallevel = ''
self._old_bitrate = ''
self._old_authentication = 'OPEN'
self._old_wmm = _no
self._old_wpa2_psk_tkip = ''
self._old_wpa_psk_aes = ''
self._old_network_authentication='no'
self._old_tunneled=''
self._old_server_certification=''
self._old_identity=''
self._old_username=''
self._old_password=''
self._old_cacert_path=''
self._old_user_cert_path=''
self._old_private_key_path=''
self._old_private_key_password=''
self._old_mac_mode_on = 'no'
self._old_bssid = ''
def set_dhcp(self, value=True):
if value == True:
self.dhcp = _yes
else:
self.dhcp = _no
#self.save()
def get_dhcp(self):
if self.dhcp == _yes:
return True
else:
return False
def set_ipaddress(self, value):
self.ipaddress = value
self.broadcast = make_broadcast(self.ipaddress, self.netmask)
#self.save()
def set_netmask(self, value):
self.netmask = value
self.broadcast = make_broadcast(self.ipaddress, self.netmask)
#self.save()
def set_gateway(self, value):
self.gateway = value
#self.save()
def set_chid(self, cid):
self.channelid = str(cid)
#self.save()
def set_bssid(self, ssid):
self.bssid = ssid
#self.save()
def set_essid(self, ssid):
self.essid = ssid
#self.save()
def set_wmm(self, value):
if value == True:
self.wmm = _yes
else:
self.wmm = _no
def set_scaninfo(self, sinfo, mac_mode='no'):
self.essid = sinfo[1]
self.apmacaddress = sinfo[0]
self.channelid = sinfo[2]
self.security = sinfo[3]
self.signallevel = sinfo[4]
self.bitrate = sinfo[5]
# KA: [20080402] NEW WIFI AP
if len(sinfo) > 6:
self.encryption = sinfo[6]
self.authentication = sinfo[7]
# KA: [20080402] NEW WIFI AP ==
# KA: [20080411] check SSID 중복 이름 검색시 MAC_MODE_ON yes / BSSID set
print '### MAC_MODE ==>> ', mac_mode
self.mac_mode_on = mac_mode
self.bssid = sinfo[0]
# KA: [20080411] check SSID 중복 이름 검색시 MAC_MODE_ON yes / BSSID set ==
####### 이게 없으면.. wifi scanning select 한 정보가 apply하기 전 掠?지 적용되지 않는다.
# shchun : in order to prepare rollback function. delete implicit save()
#self.save()
def get_wifi(self):
try:
apmacaddress=self.apmacaddress
essid=self.essid
channelid=self.channelid
security=self.security
signallevel=self.signallevel
bitrate=self.bitrate
os.system('wl assoc > /tmp/wifi_connected_info')
os.system('sync')
f = open('/tmp/wifi_connected_info')
for tline in f :
#SSID
if tline.find('SSID') >= 0 and tline.find('\"') >= 0:
a,b = tline.split(':')
b = b.strip()
essid = b[1:len(b)-1]
elif tline.find('Mode') >= 0:
#RSSI
if tline.find('RSSI'):
ti = tline.find('RSSI')
signallevel = (tline[ti+6:tline.find('dBm')])
#Channel
if tline.find('Channel') >= 0:
ti = tline.find('Channel')
channelid = (tline[ti+9:].strip())
#BSSID --> MAC
elif tline.find('BSSID') >= 0:
apmacaddress = tline[tline.find(':')+2:24].strip()
#Bit rate
elif tline.find('Supported Rates') >= 0:
ti = tline.find(']')
if tline[ti-2] == ')': # b-mode: 11(b)
rate = (tline[ti-6:ti-4])
else:
rate = (tline[ti-3:ti-1])
bitrate = str(rate)
f.close()
'''
str=os.popen('wl channel | grep current').read()
str=str.split('\t')[1].replace('\n','')
channelid = str
str=os.popen('wl bssid').read().replace('\n','')
apmacaddress = str
str=os.popen('wl rate').read().replace('\n','')
bitrate = str
os.system('wlrssi')
fp = open('/tmp/tmpRSSI')
signallevel = fp.read().replace('\n','')
fp.close()
'''
except:
print 'error get wifi'
apmacaddress=self.apmacaddress
essid=self.essid
channelid=self.channelid
security=self.security
signallevel=self.signallevel
bitrate=self.bitrate
#print 'RET ', apmacaddress, essid, channelid, security, signallevel, bitrate
return [apmacaddress, essid, channelid, security, signallevel, bitrate]
def wepkeychange_htoa(self, value, b64=True):
if not value:
return ''
try:
temp = ''
index = 0
if value[:2].lower() == '0x':
value = value[2:]
if b64:
if 10 == len(value):
for c in value:
if index%4 == 0 and index !=0:
temp += '-'
temp += c
index += 1
else:
for c in value:
if index%2 == 0 and index != 0:
temp += '-'
temp += hex(ord(c))[2:]
index += 1
return temp
else:
if 26 == len(value):
for c in value:
if index%4 == 0 and index !=0:
temp += '-'
temp += c
index += 1
else:
for c in value:
if index%2 == 0 and index != 0:
temp += '-'
temp += hex(ord(c))[2:]
index += 1
return temp
except:
return ''
def wepkeychange_atoh(self, value):
if not value:
return ''
try:
temp = ''
index = 0
strhex = ''
if len(value) == 12 or len(value) == 32:
temp = value.replace('-','')
else:
for c in value:
if c == '-':
continue
strhex += c
if index%2 == 1:
temp += chr(int(strhex,16))
strhex = ''
index += 1
return temp
except:
return ''
def wepkeychange(self, issave=True):
#ka...3800 wifi 2007.05.01
'''
if issave:
self.wepkey1_64 = self.wepkeychange_htoa(self.wepkey1_64)
self.wepkey2_64 = self.wepkeychange_htoa(self.wepkey2_64)
self.wepkey3_64 = self.wepkeychange_htoa(self.wepkey3_64)
self.wepkey4_64 = self.wepkeychange_htoa(self.wepkey4_64)
self.wepkey1_128 = self.wepkeychange_htoa(self.wepkey1_128, False)
self.wepkey2_128 = self.wepkeychange_htoa(self.wepkey2_128, False)
self.wepkey3_128 = self.wepkeychange_htoa(self.wepkey3_128, False)
self.wepkey4_128 = self.wepkeychange_htoa(self.wepkey4_128, False)
else:
self.wepkey1_64 = self.wepkeychange_atoh(self.wepkey1_64)
self.wepkey2_64 = self.wepkeychange_atoh(self.wepkey2_64)
self.wepkey3_64 = self.wepkeychange_atoh(self.wepkey3_64)
self.wepkey4_64 = self.wepkeychange_atoh(self.wepkey4_64)
self.wepkey1_128 = self.wepkeychange_atoh(self.wepkey1_128)
self.wepkey2_128 = self.wepkeychange_atoh(self.wepkey2_128)
self.wepkey3_128 = self.wepkeychange_atoh(self.wepkey3_128)
self.wepkey4_128 = self.wepkeychange_atoh(self.wepkey4_128)
'''
if not self.wepkey1_64:
self.wepkey1_64 = ''
if not self.wepkey2_64:
self.wepkey2_64 = ''
if not self.wepkey3_64:
self.wepkey3_64 = ''
if not self.wepkey4_64:
self.wepkey4_64 = ''
if not self.wepkey1_128:
self.wepkey1_128 = ''
if not self.wepkey2_128:
self.wepkey2_128 = ''
if not self.wepkey3_128:
self.wepkey3_128 = ''
if not self.wepkey4_128:
self.wepkey4_128 = ''
def reset(self):
self.__init__()
self.save()
def save(self):
#print '## PROFILE> SAVE WIFI values##'
#ka...3800 wifi 2007.05.01
# self.wepkeychange()
name = config.wifi_profile_general_file
fp = open(name, 'w')
for key, value in self.__dict__.items():
if key[0] != '_' and (type(value) in (type(''), type(0))):
fp.write("%s=%s\n" % (key.upper(), value))
self.wepkeychange(issave=False)
#print ' before saving...'
#self.show_items()
self.copy_old_values()
#print ' after saving...'
#self.show_items()
return False
def default_load(self):
self.__init__()
self.save()
def load(self):
roxia_trace('wifi profile loading..')
name = config.wifi_profile_general_file
g = self.__dict__
if os.path.exists(name):
for line in file(name):
line = line.strip()
if not line or line[0] == '#':
continue
key, value = line.split('=', 1)
key = key.lower()
if value == '': # value가 없는 경우, ex) GATEWAY=
continue
if value[0] == "'":
g[key] = value[1:-1]
else:
g[key] = value
self.wepkeychange(issave=False)
# eicho 06.07.07
self.copy_old_values()
# eicho 06.07.07
def copy_old_values(self):
self._old_interface = self.interface
self._old_dhcp = self.dhcp
self._old_ipaddress = self.ipaddress
self._old_netmask = self.netmask
self._old_gateway = self.gateway
self._old_broadcast = self.broadcast
self._old_essid = self.essid
self._old_channelid = self.channelid
self._old_encryption = self.encryption
self._old_wepkeyno_64 = self.wepkeyno_64
self._old_wepkey1_64 = self.wepkey1_64
self._old_wepkey2_64 = self.wepkey2_64
self._old_wepkey3_64 = self.wepkey3_64
self._old_wepkey4_64 = self.wepkey4_64
self._old_wepkeyno_128 = self.wepkeyno_128
self._old_wepkey1_128 = self.wepkey1_128
self._old_wepkey2_128 = self.wepkey2_128
self._old_wepkey3_128 = self.wepkey3_128
self._old_wepkey4_128 = self.wepkey4_128
self._old_wpa_psk_tkip = self.wpa_psk_tkip
self._old_apmacaddress = self.apmacaddress
self._old_security = self.security
self._old_signallevel = self.signallevel
self._old_bitrate = self.bitrate
self._old_authentication = self.authentication
self._old_wmm = self.wmm
self._old_mac_mode_on = self.mac_mode_on
self._old_bssid = self.bssid
def rollback_values(self):
self.interface = self._old_interface
self.dhcp = self._old_dhcp
self.ipaddress = self._old_ipaddress
self.netmask = self._old_netmask
self.gateway = self._old_gateway
self.broadcast = self._old_broadcast
self.essid = self._old_essid
self.channelid = self._old_channelid
self.encryption = self._old_encryption
self.wepkeyno_64 = self._old_wepkeyno_64
self.wepkey1_64 = self._old_wepkey1_64
self.wepkey2_64 = self._old_wepkey2_64
self.wepkey3_64 = self._old_wepkey3_64
self.wepkey4_64 = self._old_wepkey4_64
self.wepkeyno_128 = self._old_wepkeyno_128
self.wepkey1_128 = self._old_wepkey1_128
self.wepkey2_128 = self._old_wepkey2_128
self.wepkey3_128 = self._old_wepkey3_128
self.wepkey4_128 = self._old_wepkey4_128
self.wpa_psk_tkip = self._old_wpa_psk_tkip
self.apmacaddress = self._old_apmacaddress
self.security = self._old_security
self.signallevel = self._old_signallevel
self.bitrate = self._old_bitrate
self.authentication = self._old_authentication
self.wmm = self._old_wmm
self.mac_mode_on = self._old_mac_mode_on
self.bssid = self._old_bssid
self.tag_notchanged = False
def except_apply(self, option):
#print '>> WIFI profile value is changed but not apply!'
#self.show_items()
self.rollback_values()
#self.show_items()
self.tag_notchanged = option
def show_items(self):
print '============================='
print '>> self.essid = ', self.essid
print '>> self.apmacaddress = ', self.apmacaddress
def get_security_name(self):
# if self.authentication == 'WPA-PSK':
# return 'WPA-PSK' + ', ' + self.encryption
# elif self.authentication == 'WPA2-PSK':
# return 'WPA2-PSK' + ', ' + self.encryption
# elif self.encryption in ('WEP64BIT', 'WEP128BIT'):
# return 'WEP'
# else:
# return 'OPEN'
# wl wpa_auth
#
# WPA auth mode disabled (0)
# WPA auth mode WPA-PSK (4)
# WPA auth mode disabled2 (128)
#
# wl wsec
# 0 : 보안없슴
# 1 : WEP
# 2 : TKIP
# 4 : AES
wsec = os.popen('wl wsec').read().replace('\n','')
wauth = os.popen("wl wpa_auth | awk -F' ' '{print $5}' | awk -F'(' '{print $2}'| awk -F')' '{print $1}' ").read().replace('\n','')
iwsec = int(wsec)
iauth = int (wauth)
#print 'WSEC, WAUTH', wsec, wauth
security = 'OPEN'
if iwsec == 0:
security = 'OPEN'
elif iwsec == 1:
security = 'WEP'
else:
if iauth == 0:
security = 'OPEN' # not happens.
elif iauth == 4:
if iwsec == 2:
security = 'WPA-PSK, TKIP'
elif iwsec == 4:
security = 'WPA-PSK, AES'
elif iauth == 128:
if iwsec == 2:
security = 'WPA2-PSK, TKIP'
elif iwsec == 4:
security = 'WPA2-PSK, AES'
#print 'SECURITY', security
return security
def get_security_name_simple(self):
if self.authentication == 'WPA-PSK':
return 'WPA-PSK'
elif self.authentication == 'WPA2-PSK':
return 'WPA2-PSK'
elif self.encryption in ('WEP64BIT', 'WEP128BIT'):
return 'WEP'
else:
return 'OPEN'
### END OF GEN PROFILE ###
# end
class WiFiProfileKtDefault:
# shchun add : to handle general(== user set) profile.
def __init__(self):
self._name = 'MegaAP'
self.interface = 'wlan0'
self.dhcp = _yes
self.ipaddress = ''
self.netmask = ''
self.gateway = ''
self.broadcast = ''
self.essid = ''
self.channelid = ''
self.encryption = 'NONE'
self.wepkeyno_64 = '1'
self.wepkey1_64 = ''
self.wepkey2_64 = ''
self.wepkey3_64 = ''
self.wepkey4_64 = ''
self.wepkeyno_128 = '1'
self.wepkey1_128 = ''
self.wepkey2_128 = ''
self.wepkey3_128 = ''
self.wepkey4_128 = ''
self.wpa_psk_tkip = ''
self.wpa2_psk_ccmp=''
self.apmacaddress = ''
self.security = ''
self.signallevel = ''
self.bitrate = ''
self.authentication = 'OPEN'
self.wmm = _yes
self.probe_timer=3
self.wpa2_psk_tkip = ''
self.wpa_psk_aes = ''
self.network_authentication='no'
self.tunneled=''
self.server_certification=''
self.identity=''
self.username=''
self.password=''
self.cacert_path=''
self.user_cert_path=''
self.private_key_path=''
self.private_key_password=''
self.mac_mode_on = 'no'
self.bssid = ''
# MMW add Jun 12th
self.wlconfigd_version='0.3'
self.scan='0'
self.pm='0'
self.cwmin='0'
self.cwmax='0'
self.txqage='500'
self.prof1='PROF_OPEN'
self.wme_vo_min='-1'
self.wme_vo_max='-1'
self.wme_vi_min='-1'
self.wme_vi_max='-1'
self.load()
def get_dhcp(self):
if self.dhcp == _yes:
return True
else:
return False
def get_wifi(self):
try:
apmacaddress=self.apmacaddress
essid=self.essid
channelid=self.channelid
security=self.security
signallevel=self.signallevel
bitrate=self.bitrate
str=os.popen('wl channel | grep current').read()
str=str.split('\t')[1].replace('\n','')
channelid = str
str=os.popen('wl bssid').read().replace('\n','')
apmacaddress = str
str=os.popen('wl rate').read().replace('\n','')
bitrate = str
os.system('wlrssi')
fp = open('/tmp/tmpRSSI')
signallevel = fp.read().replace('\n','')
fp.close()
except:
print 'error get wifi'
#print 'RET ', apmacaddress, essid, channelid, security, signallevel, bitrate
return [apmacaddress, essid, channelid, security, signallevel, bitrate]
def load(self):
roxia_trace('wifi profile loading..')
name = config.wifi_profile_megaap_file
g = self.__dict__
if os.path.exists(name):
for line in file(name):
line = line.strip()
if not line or line[0] == '#':
continue
key, value = line.split('=', 1)
key = key.lower()
if value == '': # value가 없는 경우, ex) GATEWAY=
continue
if value[0] == "'":
g[key] = value[1:-1]
else:
g[key] = value
self.wepkeychange(issave=False)
# eicho 06.07.07
def wepkeychange(self, issave=True):
#ka...3800 wifi 2007.05.01
if not self.wepkey1_64:
self.wepkey1_64 = ''
if not self.wepkey2_64:
self.wepkey2_64 = ''
if not self.wepkey3_64:
self.wepkey3_64 = ''
if not self.wepkey4_64:
self.wepkey4_64 = ''
if not self.wepkey1_128:
self.wepkey1_128 = ''
if not self.wepkey2_128:
self.wepkey2_128 = ''
if not self.wepkey3_128:
self.wepkey3_128 = ''
if not self.wepkey4_128:
self.wepkey4_128 = ''
def save(self):
#print '## PROFILE> SAVE WIFI values##'
#ka...3800 wifi 2007.05.01
# self.wepkeychange()
name = config.wifi_profile_megaap_file
fp = open(name, 'w')
for key, value in self.__dict__.items():
if key[0] != '_' and (type(value) in (type(''), type(0))):
fp.write("%s=%s\n" % (key.upper(), value))
self.wepkeychange(issave=False)
return False
def set_bssid(self, ssid):
self.bssid = ssid
#self.save()
def set_essid(self, ssid):
self.essid = ssid
#self.save()
### END OF KT PROFILE ###
# end
class DNSProfile:
def __init__(self):
self.dns1 = '165.243.17.15'
self.dns2 = '168.126.63.2'
self.dhcp_dns1 = ''
self.dhcp_dns2 = ''
self.dhcp_dns3 = []
# eicho 06.07.07
self._old_dns1 = '165.243.17.15'
self._old_dns2 = '168.126.63.2'
self._old_dhcp_dns1 = ''
self._old_dhcp_dns2 = ''
self.tag_notchanged = False
def set_dns1(self, value):
self.dns1 = value
#06.07.07 self.save()
def set_dns2(self, value):
self.dns2 = value
#06.07.07 self.save()
def reset(self):
self.__init__()
self.save()
def save(self):
#print '## PROFILE> SAVE DNS values##'
#Roxia Begin jhbang 06.05.02 #ip가 none,'' 인경우 0.0.0.0을 쓰도록 함
if self.dns1 == None:
self.dns1 = config.ip_null
if self.dns2 == None:
self.dns2 = config.ip_null
value_dns1 = self.dns1
value_dns2 = self.dns2
if not self.dns1:
value_dns1 = config.ip_null
if not self.dns2:
value_dns2 = config.ip_null
value = 'nameserver ' + value_dns1 + '\n' + 'nameserver ' + value_dns2 + '\n'
fp = open(config.dns_file, 'w')
#Roxia End jhbang
fp.write(value)
fp.close()
self.copy_old_values()
return False
def dhcp_save(self):
#print '## PROFILE> SAVE DHCP DNS values##'
#Roxia Begin jhbang 06.05.02 #ip가 none,'' 인경우 0.0.0.0을 쓰도록 함
if self.dhcp_dns1 == None:
self.dhcp_dns1 = config.ip_null
if self.dhcp_dns2 == None:
self.dhcp_dns2 = config.ip_null
value_dns1 = self.dhcp_dns1
value_dns2 = self.dhcp_dns2
if not self.dhcp_dns1:
value_dns1 = config.ip_null
if not self.dhcp_dns2:
value_dns2 = config.ip_null
value = 'nameserver ' + value_dns1 + '\n' + 'nameserver ' + value_dns2 + '\n'
if self.dhcp_dns3 != []:
for i in range(len(self.dhcp_dns3)):
if self.dhcp_dns3[i] == None:
self.dhcp_dns3[i] = config.ip_null
value_dns3 = self.dhcp_dns3[i]
if not self.dhcp_dns3[i]:
value_dns3 = config.ip_null
value += 'nameserver ' + value_dns3 + '\n'
fp = open(config.dns_file, 'w')
#Roxia End jhbang
fp.write(value)
fp.close()
self.copy_old_values()
return False
def load(self):
roxia_trace('DNS loading..')
name = config.dns_file
fp = open(name, 'r')
bdns1 = False
for z in fp.readlines():
if bdns1 == True:
if z.find('nameserver') >= 0:
self.dns2 = z[z.find('nameserver') + 10:].strip()
elif z.find('nameserver') >= 0:
self.dns1 = z[z.find('nameserver') + 10:].strip()
bdns1 =True
fp.close()
# eicho 06.07.07
self.copy_old_values()
# eicho add 06.07.07
def rollback_values(self):
self.dns1 = self._old_dns1
self.dns2 = self._old_dns2
self.dhcp_dns1 = self._old_dhcp_dns1
self.dhcp_dns2 = self._old_dhcp_dns2
self.tag_notchanged = False
def copy_old_values(self):
self._old_dns1 = self.dns1
self._old_dns2 = self.dns2
self._old_dhcp_dns1 = self.dhcp_dns1
self._old_dhcp_dns2 = self.dhcp_dns2
def except_apply(self, option):
#print '>> DNS profile value is changed but not apply!'
self.rollback_values()
self.tag_notchanged = option
### END OF DNS PROFILE ###
profile = Profile()
#try:
profile.load()
#except:
# TODO: 에러처리
# file not found, open error, etc, ...
# roxia_trace('profile load FAILED!!!!')
lan_profile = LANProfile()
#try:
lan_profile.load()
#except:
# TODO: 에러처리
# file not found, open error, etc, ...
# roxia_trace('lan profile load FAILED!!!!')
wifi_profile_general = WiFiProfileGeneral()
wifi_profile_kt_default = WiFiProfileKtDefault() # readonly
wifi_profile = wifi_profile_general
# shchun: add wifi profile general...May - 6
#try:
wifi_profile_general.load()
#except:
# TODO: 에러처리
# file not found, open error, etc, ...
# roxia_trace('wifi profile load FAILED!!!!')
dns_profile = DNSProfile()
dns_profile.load()