def main ( database=':memory:', host='127.0.0.2', port=3999, precision=1.0, inactive=3.0, local=512, private=1, public=1, log_buffer_size=4096, anetlog_host='', anetlog_port=3998 ): import time started = time.time () from allegra import netstring, loginfo, tcp_server, ansqlite if anetlog_host: from allegra import anetlog anetlog.stdoe ((anetlog_host, anetlog_port)) loginfo.log ( 'ansqlite - Copyright 2007 Laurent Szyster | Copyleft GPL 2.0', 'info' ) conn, Dispatcher = ansqlite.open (database) ansql = Dispatcher.ansql loads = ansqlite.loads for data in netstring.netpipe (( lambda r=sys.stdin.read: r (log_buffer_size) )): ansql (*loads(data)).close () del ansql, loads listen = tcp_server.decorate (tcp_server.Listen ( Dispatcher, (host, port), precision, max=5 ), inactive, local, private, public) async_loop.catch (listen.server_shutdown) def finalize (listen): anetlog.disconnect () conn.close () listen.finalization = finalize del listen loginfo.log ('loaded in %f seconds' % (time.time () - started), 'info')
def main(database=':memory:', host='127.0.0.2', port=3999, precision=1.0, inactive=3.0, local=512, private=1, public=1, log_buffer_size=4096, anetlog_host='', anetlog_port=3998): import time started = time.time() from allegra import netstring, loginfo, tcp_server, ansqlite if anetlog_host: from allegra import anetlog anetlog.stdoe((anetlog_host, anetlog_port)) loginfo.log('ansqlite - Copyright 2007 Laurent Szyster | Copyleft GPL 2.0', 'info') conn, Dispatcher = ansqlite.open(database) ansql = Dispatcher.ansql loads = ansqlite.loads for data in netstring.netpipe( (lambda r=sys.stdin.read: r(log_buffer_size))): ansql(*loads(data)).close() del ansql, loads listen = tcp_server.decorate( tcp_server.Listen(Dispatcher, (host, port), precision, max=5), inactive, local, private, public) async_loop.catch(listen.server_shutdown) def finalize(listen): anetlog.disconnect() conn.close() listen.finalization = finalize del listen loginfo.log('loaded in %f seconds' % (time.time() - started), 'info')
def main ( root='./log', host='127.0.0.2', port=3998, mkdir=False, mkclean=False, precision=3.0 ): import os, stat from allegra import loginfo, async_loop, async_server loginfo.log ( 'anetlog' ' - Copyright 2006-2007 Laurent A.V. Szyster' ' | Copyleft GPL 2.0', 'info' ) paths = ('tmp', 'new') for path in ('/'.join((root, p)) for p in paths): try: assert stat.S_ISDIR (os.stat (path)[0]) except: if mkdir: os.makedirs (path) else: raise Exception (path + ' does not exist') if mkclean: import glob for path in ('/'.join((root, p, '*')) for p in paths): for fn in glob.glob(path): os.remove (fn) if hasattr (os, 'link'): _mode = 'w' _link = os.link elif os.name == 'nt': _mode = 'wb' import win32file def _link (from_name, to_name): win32file.CopyFileW (from_name, to_name, True) else: raise Exception ('os.link or equivalent interface not available') if __debug__: from allegra import netstring, async_net class Dispatcher (async_net.Dispatcher): def writable (self): return False def async_net_continue (self, data): self.anetlog ('%d:%s,' % (len (data), data)) loginfo.log (data, '%s:%d' % self.addr) else: from allegra import async_core class Dispatcher (async_core.Dispatcher): def writable (self): return False def handle_read (self): self.anetlog (self.recv (16384)) class Listen (async_server.Listen): def server_accept (self, conn, addr, name): dispatcher = async_server.Listen.server_accept ( self, conn, addr, name ) dispatcher.anetlog_name = filename = '%s_%f' % ( '%s_%d' % dispatcher.addr, dispatcher.server_when ) dispatcher.anetlog_file = file = open ( '/'.join ((root, 'tmp', filename)), _mode ) dispatcher.anetlog = file.write return dispatcher def server_close (self, dispatcher): async_server.Listen.server_close (self, dispatcher) dispatcher.anetlog_file.close () _link ( '/'.join ((root, 'tmp', dispatcher.anetlog_name)), '/'.join ((root, 'new', dispatcher.anetlog_name)) ) async_loop.catch ( Listen (Dispatcher, (host, port), precision, 5).server_shutdown )
import socket from allegra import ( async_loop, finalization, async_net, async_chat, async_server ) loglines = async_server.Listen ( async_chat.Dispatcher, ('127.0.0.1', 1234), 6.0, 5, socket.AF_INET ) async_loop.catch (loglines.server_shutdown) del loglines lognet = async_server.Listen ( async_net.Dispatcher, ('127.0.0.1', 2345), 6.0, 5, socket.AF_INET ) async_server.accept_named (lognet, 512) async_server.inactive (lognet, 6) async_loop.catch (lognet.server_shutdown) del lognet loglines = async_server.Listen ( async_chat.Dispatcher, ('127.0.0.1', 3456), 3.0, 5, socket.AF_INET ) loglines.server_resolved = (lambda addr: addr[0]) async_server.accept_named (loglines, 2) async_server.rationed (loglines, 6.0, 1<<14, 1<<16) async_loop.catch (loglines.server_shutdown)
import socket from allegra import (async_loop, finalization, async_net, async_chat, async_server) loglines = async_server.Listen(async_chat.Dispatcher, ('127.0.0.1', 1234), 6.0, 5, socket.AF_INET) async_loop.catch(loglines.server_shutdown) del loglines lognet = async_server.Listen(async_net.Dispatcher, ('127.0.0.1', 2345), 6.0, 5, socket.AF_INET) async_server.accept_named(lognet, 512) async_server.inactive(lognet, 6) async_loop.catch(lognet.server_shutdown) del lognet loglines = async_server.Listen(async_chat.Dispatcher, ('127.0.0.1', 3456), 3.0, 5, socket.AF_INET) loglines.server_resolved = (lambda addr: addr[0]) async_server.accept_named(loglines, 2) async_server.rationed(loglines, 6.0, 1 << 14, 1 << 16) async_loop.catch(loglines.server_shutdown) del loglines async_loop.dispatch() finalization.collect()
import sys from allegra import async_loop, async_core, async_server try: TCP_WINDOW_SIZE = 1 << int (sys.argv[1]) except: TCP_WINDOW_SIZE = 1 << 14 TCP_OVERFLOW_DATA = 'x' * (TCP_WINDOW_SIZE*2) class Flaking (async_core.Dispatcher): def handle_write (self): self.send (TCP_OVERFLOW_DATA) def handle_read (self): self.recv (TCP_WINDOW_SIZE/2) def close_when_done (self): self.close () flaking = async_server.Listen ( Flaking, ('127.0.0.1', 1234), 6.0, 5 ) async_loop.catch (flaking.server_shutdown) async_loop.dispatch ()
def main(root='./log', host='127.0.0.2', port=3998, mkdir=False, mkclean=False, precision=3.0): import os, stat from allegra import loginfo, async_loop, async_server loginfo.log( 'anetlog' ' - Copyright 2006-2007 Laurent A.V. Szyster' ' | Copyleft GPL 2.0', 'info') paths = ('tmp', 'new') for path in ('/'.join((root, p)) for p in paths): try: assert stat.S_ISDIR(os.stat(path)[0]) except: if mkdir: os.makedirs(path) else: raise Exception(path + ' does not exist') if mkclean: import glob for path in ('/'.join((root, p, '*')) for p in paths): for fn in glob.glob(path): os.remove(fn) if hasattr(os, 'link'): _mode = 'w' _link = os.link elif os.name == 'nt': _mode = 'wb' import win32file def _link(from_name, to_name): win32file.CopyFileW(from_name, to_name, True) else: raise Exception('os.link or equivalent interface not available') if __debug__: from allegra import netstring, async_net class Dispatcher(async_net.Dispatcher): def writable(self): return False def async_net_continue(self, data): self.anetlog('%d:%s,' % (len(data), data)) loginfo.log(data, '%s:%d' % self.addr) else: from allegra import async_core class Dispatcher(async_core.Dispatcher): def writable(self): return False def handle_read(self): self.anetlog(self.recv(16384)) class Listen(async_server.Listen): def server_accept(self, conn, addr, name): dispatcher = async_server.Listen.server_accept( self, conn, addr, name) dispatcher.anetlog_name = filename = '%s_%f' % ( '%s_%d' % dispatcher.addr, dispatcher.server_when) dispatcher.anetlog_file = file = open( '/'.join((root, 'tmp', filename)), _mode) dispatcher.anetlog = file.write return dispatcher def server_close(self, dispatcher): async_server.Listen.server_close(self, dispatcher) dispatcher.anetlog_file.close() _link('/'.join((root, 'tmp', dispatcher.anetlog_name)), '/'.join( (root, 'new', dispatcher.anetlog_name))) async_loop.catch( Listen(Dispatcher, (host, port), precision, 5).server_shutdown)