All pastes #253922 Raw Edit

Someone

public text v1 · immutable
#253922 ·published 2006-11-21 07:44 UTC
rendered paste body

class fakeVPS:
        def __init__(self):
                pass
        def sync(self):
                pass

class monitor:
        def __init__(self):
                self.cap = pycap.capture.capture()
                self.cap.filter("host not 64.62.166.222")
                self.oldtime = time.time()
                self.vDict={}
                self.runs=0

        def go(self):
                while True:
                        if time.time()-self.oldtime>10:
                                for i in self.vDict:
                                        print "updated: %s with %s" % ( self.vDict[i].name, self.vDict[i].input)                                        self.vDict[i].sync()
                                self.oldtime=time.time()
                                if self.runs==100:
                                        self.vDict={}
                                        self.runs=0
                        packet = self.cap.next()
                        if hasattr(packet[1], "destination") and hasattr(packet[1], "source"):
                                if not self.vDict.has_key(packet[1].destination) and not self.vDict.has_key(packet[1].source):
                                        for i in db.VPS.select():
                                                if packet[1].destination in i.saneIP():
                                                        self.vDict[packet[1].destination]=i
                                                        break
                                                elif packet[1].source in i.saneIP():
                                                        self.vDict[packet[1].source]=i
                                                        break
                                if self.vDict.has_key(packet[1].destination):
                                        self.vDict[packet[1].destination].input=self.vDict[packet[1].destination].input+packet[1].length
                                elif self.vDict.has_key(packet[1].source):
                                        self.vDict[packet[1].source].output=self.vDict[packet[1].source].output+packet[1].length
                                else:
                                        print "Lost packet with length %s, from %s to %s" % (packet[1].length, packet[1].source, packet[1].destination)


while True:
        try:
                monitor().go()
        except:
                print "Crap"