## Copyright (C) 2001-2005 Red Hat, Inc.
## Copyright (C) 2001, 2002 Than Ngo
## Copyright (C) 2001-2005 Harald Hoyer
## Copyright (C) 2001, 2002 Philipp Knirsch
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
import re
from netconfpkg import NC_functions
from netconfpkg.gdt import (Gdtstruct, gdtstruct_properties,
Gdtstr)
class Wireless_base(Gdtstruct):
gdtstruct_properties([
('Mode', Gdtstr, "Test doc string"),
('EssId', Gdtstr, "Test doc string"),
('Channel', Gdtstr, "Test doc string"),
('Rate', Gdtstr, "Test doc string"),
('Key', Gdtstr, "Test doc string"),
])
class Wireless(Wireless_base):
keydict = { 'Mode' : 'MODE',
'EssId' : 'ESSID',
'Channel' : 'CHANNEL',
'Rate' : 'RATE',
'Key' : 'KEY',
}
def __init__(self):
super(Wireless, self).__init__()
self.Key = ''
def load(self, parentConf, deviceid):
conf = parentConf
for selfkey in self.keydict.keys():
confkey = self.keydict[selfkey]
if conf.has_key(confkey):
setattr(self, selfkey, conf[confkey])
conf = NC_functions.ConfKeys(deviceid)
if conf.has_key("KEY"):
self.Key = conf["KEY"]
del conf
if re.search("^s:", self.Key):
self.Key = self.Key[2:]
elif re.search("^[0-9a-fA-F]+$", self.Key):
self.Key = "0x" + self.Key
def save(self, parentConf, deviceid):
conf = parentConf
keyconf = NC_functions.ConfKeys(deviceid)
keyconf.fsf()
if re.search("^\s*0x[0-9a-fA-F]+\s*$", self.Key):
keyconf["KEY"] = self.Key[2:]
elif re.search("^\s*[^\s]+\s*$", self.Key):
keyconf["KEY"] = "s:" + self.Key
else:
keyconf["KEY"] = self.Key
keyconf.write()
# FIXME: [167995] Wireless card mode cannot be set to Auto
# FIXME: [162830] activate notifier box does not presist long
# enough to read it
# check, if the interface support RATE, FREQ, etc.
for selfkey in self.keydict.keys():
confkey = self.keydict[selfkey]
if hasattr(self, selfkey) and getattr(self, selfkey) != None:
conf[confkey] = getattr(self, selfkey)
else: del conf[confkey]
#conf[confkey] = ""
if conf.has_key("KEY"):
del conf["KEY"]
# Do not clear the non-filled in values
# Bugzilla #52252
# for i in conf.keys():
# if not conf[i] or conf[i] == "": del conf[i]
# the key is now stored in a seperate file
# conf.oldmode = 0600
# conf.chmod(0600)
__author__ = "Harald Hoyer "
__date__ = "$Date: 2007/07/13 12:49:00 $"
__version__ = "$Revision: 1.23 $"