diff --git a/apps/sam/python/src/i2p/I2PBaseHTTPServer.py b/apps/sam/python/src/i2p/I2PBaseHTTPServer.py new file mode 100644 index 0000000000000000000000000000000000000000..116dd7b1644446429375dd07b757973b6eb32e68 --- /dev/null +++ b/apps/sam/python/src/i2p/I2PBaseHTTPServer.py @@ -0,0 +1,50 @@ +#! /usr/bin/env python + +import BaseHTTPServer + +import i2p.sam + +import I2PSocketServer + +import sys +import BaseHTTPServer + +import i2p.sam +import I2PSocketServer + +__version__ = "0.3" + +__all__ = ["HTTPServer", "BaseHTTPRequestHandler"] + +DEFAULT_ERROR_MESSAGE = BaseHTTPServer.DEFAULT_ERROR_MESSAGE + +class HTTPServer(I2PSocketServer.TCPServer, BaseHTTPServer.HTTPServer): + pass +class BaseHTTPRequestHandler( + I2PSocketServer.StreamRequestHandler, + BaseHTTPServer.BaseHTTPRequestHandler): + pass +def test(HandlerClass = BaseHTTPRequestHandler, + ServerClass = HTTPServer, protocol="HTTP/1.0"): + """Test the HTTP request handler class. + + This runs an HTTP server on port 8000 (or the first command line + argument). + + """ + + if sys.argv[1:]: + server_address = sys.argv[1] + else: + server_address = "mytestxxx.i2p" + + HandlerClass.protocol_version = protocol + httpd = ServerClass(server_address, HandlerClass) + + print "Serving HTTP on", server_address, "..." + print "Destination follows:" + print httpd.socket.dest + httpd.serve_forever() + +if __name__ == '__main__': + test() diff --git a/apps/sam/python/src/i2p/I2PCGIHTTPServer.py b/apps/sam/python/src/i2p/I2PCGIHTTPServer.py new file mode 100644 index 0000000000000000000000000000000000000000..d5091978366ec3019b4df216c7db11fa5f295e4a --- /dev/null +++ b/apps/sam/python/src/i2p/I2PCGIHTTPServer.py @@ -0,0 +1,16 @@ +#! /usr/bin/env python + +import CGIHTTPServer +from CGIHTTPServer import nobody_uid, executable + +import I2PBaseHTTPServer, I2PSimpleHTTPServer + +class CGIHTTPRequestHandler(CGIHTTPServer.CGIHTTPRequestHandler): + pass +def test(HandlerClass = CGIHTTPRequestHandler, + ServerClass = I2PBaseHTTPServer.HTTPServer): + I2PSimpleHTTPServer.test(HandlerClass, ServerClass) + +if __name__ == '__main__': + test() + diff --git a/apps/sam/python/src/i2p/I2PSimpleHTTPServer.py b/apps/sam/python/src/i2p/I2PSimpleHTTPServer.py new file mode 100644 index 0000000000000000000000000000000000000000..c05aac1370e9f33811606e20c2345cd45c8ae2d8 --- /dev/null +++ b/apps/sam/python/src/i2p/I2PSimpleHTTPServer.py @@ -0,0 +1,19 @@ +#! /usr/bin/env python + +import SimpleHTTPServer + +import I2PBaseHTTPServer + +__version__ = "0.1.0" + +__all__ = ["SimpleHTTPRequestHandler"] + +class SimpleHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): + pass + +def test(HandlerClass = SimpleHTTPRequestHandler, + ServerClass = I2PBaseHTTPServer.BaseHTTPServer): + I2PBaseHTTPServer.test(HandlerClass, ServerClass) + +if __name__ == '__main__': + test() diff --git a/apps/sam/python/src/i2p/I2PSocketServer.py b/apps/sam/python/src/i2p/I2PSocketServer.py new file mode 100644 index 0000000000000000000000000000000000000000..0fabdf7ad21e815fcf1a4d3a20bb2c796f581673 --- /dev/null +++ b/apps/sam/python/src/i2p/I2PSocketServer.py @@ -0,0 +1,47 @@ +import SocketServer + +import i2p.sam +class BaseServer(SocketServer.BaseServer): + pass +class TCPServer(SocketServer.TCPServer, BaseServer): + + socket_type = i2p.sam.SOCK_STREAM + + def __init__(self, server_address, RequestHandlerClass): + """Constructor. May be extended, do not override.""" + BaseServer.__init__(self, server_address, RequestHandlerClass) + + #self.socket = socket.socket(self.address_family, + # self.socket_type) + self.server_address = server_address + self.socket = i2p.sam.socket(server_address, self.socket_type) + + self.server_bind() + self.server_activate() +class UDPServer(TCPServer, SocketServer.UDPServer): + + pass +class ForkingMixIn(SocketServer.ForkingMixIn): + + pass +class ThreadingMixIn(SocketServer.ThreadingMixIn): + + pass +class ForkingUDPServer(ForkingMixIn, UDPServer): pass + +class ForkingTCPServer(ForkingMixIn, TCPServer): pass +class ThreadingUDPServer(ThreadingMixIn, UDPServer): pass + +class ThreadingTCPServer(ThreadingMixIn, TCPServer): pass + +class BaseRequestHandler(SocketServer.BaseRequestHandler): + pass + +class StreamRequestHandler(SocketServer.StreamRequestHandler): + + pass +class DatagramRequestHandler(SocketServer.DatagramRequestHandler): + + pass + +