All pastes #473152 Raw Edit

steve

public python v1 · immutable
·published 2007-05-06 02:38 UTC
rendered paste body
import osimport asyncoreimport asynchatimport socketimport redef get_os_info():    data = os.popen('vmstat').read()    #first two lines are formatting    data = data.split('\n')[2]    return data.split()class stat_chanel(asynchat.async_chat):    def __init__(self,server,sock,addr):        asynchat.async_chat.__init__(self,sock)        self.set_terminator('\r\n\r\n')        slef.request = None        self.data = []        self.shutdown = 0            def collect_incoming_data(self,data):        self.data += [data]            def found_terminator(self):        data = ''.join(self.data)        self.data = []        if not self.request:            self.request = data.split('\n')[0]            req = re.compile('(?P<method>\S+?) (?P<page>\S+?) (?P<version>\S+?)?')            req = req.match(self.request)            if len(req.groupdict().keys()) != 3:                self.shutdown = 1            else:                self.push('HTTP/1.1 200 OK\r\n')                self.push('Content-Type: text/plain\r\n\r\n')                self.push(get_os_info())class stat_server(asyncore.dispatcher):    def __init__ (self,port):        asyncore.dispatcher.__init__(self)        self.create_socket(socket.AF_INET,socket.SOCK_STREAM)        self.bind(('',port))        self.listen(5)            def handle_accept(self):        conn,addr = self.accept()        stat_channel(self,conn,addr)        srv = stat_server(80)print 'RUNNING SERVER ON PORT 80.'asyncore.loop()