summaryrefslogtreecommitdiff
path: root/trunk/src/moo
diff options
context:
space:
mode:
authorkarltk <karltk@gentoo.org>2003-12-30 23:15:24 +0000
committerkarltk <karltk@gentoo.org>2003-12-30 23:15:24 +0000
commit5e92cdde0da6b22317180df50708a6db083e273d (patch)
treeacbd60d78f5eae0fd1d55ae9ab45a55017a5329c /trunk/src/moo
parent24b44ffdf5290b938f4e1d966a828f43ac9c8118 (diff)
downloadgentoolkit-5e92cdde0da6b22317180df50708a6db083e273d.tar.gz
Minor updates; should get a move on soon.
svn path=/; revision=46
Diffstat (limited to 'trunk/src/moo')
-rwxr-xr-xtrunk/src/moo/moo69
1 files changed, 61 insertions, 8 deletions
diff --git a/trunk/src/moo/moo b/trunk/src/moo/moo
index 5c925c5..5013c77 100755
--- a/trunk/src/moo/moo
+++ b/trunk/src/moo/moo
@@ -7,7 +7,13 @@ import signal
CONFDIR="/tmp/moo"
+class Config:
+ pass
+def die(code, msg):
+ sys.stdout.write(msg + "\n")
+ sys.edit(code)
+
def printUsage():
print "Usage: moo <options> [command] <command-options>\n" + \
"Where [command] is one of:\n" + \
@@ -19,9 +25,12 @@ def scanNetworks():
pass
def runCmd(cmd):
- print "Executing \"" + cmd + "\""
+ if Config.verbosity > 5:
+ print "Executing \"" + cmd + "\""
v = os.system(cmd)
- print "Result: " + str(v)
+ if Config.verbosity > 5:
+ print "Result: " + str(v)
+ return v
class ProfileHandler:
def __init__(self):
@@ -54,11 +63,13 @@ class Profile:
self.broadcast = ""
self.gateway = ""
self.exclusive = "no"
+ self.netmask = ""
+ self.nameserver = ""
ins = open(filename)
for s in ins.readlines():
for x in ["description","ifaceName","ip","broadcast",
- "gateway","exclusive"]:
+ "gateway","exclusive","nameserver","wepkey"]:
if s.find(x+"=") == 0:
val=s.replace(x+"=","").strip()
self.__dict__[x] = val
@@ -68,7 +79,8 @@ class Profile:
"ip = " + self.ip + "\n" + \
"broadcast = " + self.broadcast + "\n" + \
"gateway = " + self.gateway + "\n" + \
- "exclusive = " + self.exclusive + "\n"
+ "gateway = " + self.nameserver + "\n" + \
+ "exclusive = " + self.exclusive + "\n"
class Interface:
def __init__(self, name):
@@ -77,17 +89,29 @@ class Interface:
self.broadcast = ""
self.ip = ""
self.gateway = ""
+ self.nameserver = ""
+ self.wepkey = ""
self._loadIPV4Info()
def _loadIPV4Info(self):
pass
+ def getNameserver(self):
+ return self.nameserver
def getNetmask(self):
return self.netmask
def getName(self):
return self.name
def getBroadcast(self):
return self.broadcast
+ def getWEPKey(self):
+ return self.wepkey
def getGateway(self):
return self.gateway
+ def setNameserver(self,nameserver):
+ self.nameserver = nameserver
+ def setIP(self, ip):
+ self.ip = ip
+ def setWEPKey(self,key):
+ self.wepkey = key
def setGateway(self,gw):
self.gateway = gw
def setBroadcast(self,broadcast):
@@ -105,15 +129,37 @@ class Interface:
os.kill(pid,signal.SIGTERM)
time.sleep(1)
def up(self):
+ options = ""
+
+ if self.wepkey:
+ if runCmd("iwconfig eth1 key " + self.wepkey):
+ die(4, "Failed to set WEP key for " + self.name)
+
if self.ip:
options += self.ip + " "
if self.broadcast:
options += "broadcast " + self.broadcast + " "
if self.netmask:
options += "netmask " + self.netmask + " "
- runCmd("ifconfig " + self.name + " " + options + " up")
+
+ if runCmd("ifconfig " + self.name + " " + options + " up"):
+ die(2, "Failed to bring up " + self.name)
+
if self.gateway:
- runCmd("route add default gw " + self.gateway + " " + self.name)
+ if runCmd("route add default gw " + self.gateway + " " + self.name):
+ die(3, "Failed to set default gateway for " + self.name)
+
+ if self.nameserver:
+ if Config.verbosity > 5:
+ print("Using nameserver " + self.nameserver)
+ try:
+ ous = open("/etc/resolv.conf","w")
+ ous.write("nameserver " + self.nameserver)
+ ous.close()
+ except OSError:
+ die("Failed to set nameserver")
+ if Config.verbosity > 3:
+ print "Brough interface " + self.name + " up"
class InterfaceHandler:
def __init__(self):
@@ -151,16 +197,23 @@ class Moo:
if prof.ip == "dhcp":
iface.runDHCP()
else:
- iface.setIPAddr(prof.ip)
+ iface.setIP(prof.ip)
iface.setBroadcast(prof.broadcast)
iface.setNetmask(prof.netmask)
iface.setGateway(prof.gateway)
+ iface.setNameserver(prof.nameserver)
iface.up()
def listProfiles(self,detailed=0):
self.profileHandler.listProfiles(detailed)
-
+
+def initConfig():
+ Config.verbosity = 3
+
def main():
+
+ initConfig()
+
if len(sys.argv) < 2:
printUsage()
sys.exit(1)