From 4ed4ce82400fb47fc732c13a9d38262d51be065c Mon Sep 17 00:00:00 2001
From: sunshine
Date: Mon, 2 Aug 2004 14:00:56 +0000
Subject: [PATCH] Updated Python I2P version 0.91 by sunshine
---
apps/sam/python/doc/epydoc/html/epydoc.css | 100 ++
apps/sam/python/doc/epydoc/html/index.html | 13 +
...TPServer.BaseHTTPRequestHandler-class.html | 645 +++++++++++++
.../BaseHTTPServer.HTTPServer-class.html | 212 +++++
...TTPServer.CGIHTTPRequestHandler-class.html | 466 +++++++++
...Server.SimpleHTTPRequestHandler-class.html | 405 ++++++++
...SocketServer.BaseRequestHandler-class.html | 102 ++
.../SocketServer.BaseServer-class.html | 278 ++++++
...etServer.DatagramRequestHandler-class.html | 98 ++
.../SocketServer.ForkingMixIn-class.html | 172 ++++
...cketServer.StreamRequestHandler-class.html | 158 +++
.../private/SocketServer.TCPServer-class.html | 383 ++++++++
.../SocketServer.ThreadingMixIn-class.html | 156 +++
.../private/SocketServer.UDPServer-class.html | 288 ++++++
.../python/doc/epydoc/html/private/epydoc.css | 100 ++
.../private/exceptions.Exception-class.html | 84 ++
.../doc/epydoc/html/private/frames.html | 13 +
.../python/doc/epydoc/html/private/help.html | 224 +++++
.../doc/epydoc/html/private/i2p-module.html | 93 ++
.../private/i2p.BaseHTTPServer-module.html | 200 ++++
...TPServer.BaseHTTPRequestHandler-class.html | 210 ++++
.../i2p.BaseHTTPServer.HTTPServer-class.html | 184 ++++
.../private/i2p.CGIHTTPServer-module.html | 126 +++
...TTPServer.CGIHTTPRequestHandler-class.html | 286 ++++++
.../epydoc/html/private/i2p.Error-class.html | 93 ++
.../html/private/i2p.RouterError-class.html | 90 ++
.../private/i2p.SimpleHTTPServer-module.html | 164 ++++
...Server.SimpleHTTPRequestHandler-class.html | 246 +++++
.../html/private/i2p.SocketServer-module.html | 106 +++
...SocketServer.BaseRequestHandler-class.html | 92 ++
.../i2p.SocketServer.BaseServer-class.html | 132 +++
...etServer.DatagramRequestHandler-class.html | 96 ++
.../i2p.SocketServer.ForkingMixIn-class.html | 105 ++
...p.SocketServer.ForkingTCPServer-class.html | 188 ++++
...p.SocketServer.ForkingUDPServer-class.html | 202 ++++
...cketServer.StreamRequestHandler-class.html | 113 +++
.../i2p.SocketServer.TCPServer-class.html | 227 +++++
...i2p.SocketServer.ThreadingMixIn-class.html | 106 +++
...SocketServer.ThreadingTCPServer-class.html | 189 ++++
...SocketServer.ThreadingUDPServer-class.html | 203 ++++
.../i2p.SocketServer.UDPServer-class.html | 189 ++++
.../epydoc/html/private/i2p.eep-module.html | 107 +++
.../epydoc/html/private/i2p.pylib-module.html | 59 ++
.../html/private/i2p.router-module.html | 265 ++++++
.../html/private/i2p.samclasses-module.html | 145 +++
.../i2p.samclasses.BaseSession-class.html | 207 ++++
.../i2p.samclasses.DatagramSession-class.html | 198 ++++
.../private/i2p.samclasses.Deque-class.html | 160 ++++
.../i2p.samclasses.RawSession-class.html | 196 ++++
.../i2p.samclasses.SAMTerminal-class.html | 210 ++++
.../private/i2p.samclasses.Stream-class.html | 168 ++++
.../i2p.samclasses.StreamSession-class.html | 276 ++++++
.../i2p.samclasses.StringBuffer-class.html | 210 ++++
.../html/private/i2p.select-module.html | 120 +++
.../html/private/i2p.select.Poll-class.html | 112 +++
.../html/private/i2p.socket-module.html | 283 ++++++
.../private/i2p.socket.BlockError-class.html | 93 ++
.../private/i2p.socket.ClosedError-class.html | 93 ++
.../html/private/i2p.socket.Error-class.html | 98 ++
.../i2p.socket.NetworkError-class.html | 95 ++
.../html/private/i2p.socket.Socket-class.html | 563 +++++++++++
.../private/i2p.socket.Timeout-class.html | 94 ++
.../html/private/i2p.tunnel-module.html | 121 +++
.../html/private/i2p.tunnel.Tunnel-class.html | 147 +++
.../i2p.tunnel.TunnelClient-class.html | 180 ++++
.../i2p.tunnel.TunnelServer-class.html | 152 +++
.../python/doc/epydoc/html/private/index.html | 13 +
.../doc/epydoc/html/private/indices.html | 901 ++++++++++++++++++
.../html/private/mimetools.Message-class.html | 263 +++++
.../html/private/rfc822.Message-class.html | 525 ++++++++++
.../epydoc/html/private/toc-everything.html | 97 ++
.../epydoc/html/private/toc-i2p-module.html | 38 +
.../toc-i2p.BaseHTTPServer-module.html | 34 +
.../private/toc-i2p.CGIHTTPServer-module.html | 27 +
.../toc-i2p.SimpleHTTPServer-module.html | 32 +
.../private/toc-i2p.SocketServer-module.html | 33 +
.../html/private/toc-i2p.eep-module.html | 23 +
.../html/private/toc-i2p.pylib-module.html | 17 +
.../html/private/toc-i2p.router-module.html | 34 +
.../private/toc-i2p.samclasses-module.html | 34 +
.../html/private/toc-i2p.select-module.html | 28 +
.../html/private/toc-i2p.socket-module.html | 45 +
.../html/private/toc-i2p.tunnel-module.html | 30 +
.../python/doc/epydoc/html/private/toc.html | 36 +
.../python/doc/epydoc/html/private/trees.html | 244 +++++
...TPServer.BaseHTTPRequestHandler-class.html | 645 +++++++++++++
.../BaseHTTPServer.HTTPServer-class.html | 178 ++++
...TTPServer.CGIHTTPRequestHandler-class.html | 466 +++++++++
...Server.SimpleHTTPRequestHandler-class.html | 405 ++++++++
...SocketServer.BaseRequestHandler-class.html | 102 ++
...etServer.DatagramRequestHandler-class.html | 98 ++
.../SocketServer.ForkingMixIn-class.html | 172 ++++
...cketServer.StreamRequestHandler-class.html | 158 +++
.../public/SocketServer.TCPServer-class.html | 349 +++++++
.../SocketServer.ThreadingMixIn-class.html | 156 +++
.../public/SocketServer.UDPServer-class.html | 254 +++++
.../python/doc/epydoc/html/public/epydoc.css | 100 ++
.../public/exceptions.Exception-class.html | 80 ++
.../python/doc/epydoc/html/public/frames.html | 13 +
.../python/doc/epydoc/html/public/help.html | 224 +++++
.../doc/epydoc/html/public/i2p-module.html | 78 ++
.../public/i2p.BaseHTTPServer-module.html | 131 +++
...TPServer.BaseHTTPRequestHandler-class.html | 210 ++++
.../i2p.BaseHTTPServer.HTTPServer-class.html | 150 +++
.../html/public/i2p.CGIHTTPServer-module.html | 126 +++
...TTPServer.CGIHTTPRequestHandler-class.html | 286 ++++++
.../public/i2p.SimpleHTTPServer-module.html | 126 +++
...Server.SimpleHTTPRequestHandler-class.html | 246 +++++
.../html/public/i2p.SocketServer-module.html | 106 +++
...SocketServer.BaseRequestHandler-class.html | 92 ++
.../i2p.SocketServer.BaseServer-class.html | 72 ++
...etServer.DatagramRequestHandler-class.html | 96 ++
.../i2p.SocketServer.ForkingMixIn-class.html | 105 ++
...p.SocketServer.ForkingTCPServer-class.html | 160 ++++
...p.SocketServer.ForkingUDPServer-class.html | 174 ++++
...cketServer.StreamRequestHandler-class.html | 113 +++
.../i2p.SocketServer.TCPServer-class.html | 193 ++++
...i2p.SocketServer.ThreadingMixIn-class.html | 106 +++
...SocketServer.ThreadingTCPServer-class.html | 161 ++++
...SocketServer.ThreadingUDPServer-class.html | 175 ++++
.../i2p.SocketServer.UDPServer-class.html | 155 +++
.../epydoc/html/public/i2p.eep-module.html | 107 +++
.../epydoc/html/public/i2p.pylib-module.html | 59 ++
.../epydoc/html/public/i2p.router-module.html | 237 +++++
.../epydoc/html/public/i2p.select-module.html | 120 +++
.../html/public/i2p.select.Poll-class.html | 89 ++
.../epydoc/html/public/i2p.socket-module.html | 186 ++++
.../public/i2p.socket.BlockError-class.html | 93 ++
.../public/i2p.socket.ClosedError-class.html | 93 ++
.../html/public/i2p.socket.Error-class.html | 98 ++
.../public/i2p.socket.NetworkError-class.html | 95 ++
.../html/public/i2p.socket.Socket-class.html | 507 ++++++++++
.../html/public/i2p.socket.Timeout-class.html | 94 ++
.../epydoc/html/public/i2p.tunnel-module.html | 77 ++
.../html/public/i2p.tunnel.Tunnel-class.html | 134 +++
.../public/i2p.tunnel.TunnelClient-class.html | 176 ++++
.../public/i2p.tunnel.TunnelServer-class.html | 148 +++
.../python/doc/epydoc/html/public/index.html | 13 +
.../doc/epydoc/html/public/indices.html | 697 ++++++++++++++
.../html/public/mimetools.Message-class.html | 263 +++++
.../html/public/rfc822.Message-class.html | 525 ++++++++++
.../epydoc/html/public/toc-everything.html | 75 ++
.../epydoc/html/public/toc-i2p-module.html | 34 +
.../public/toc-i2p.BaseHTTPServer-module.html | 32 +
.../public/toc-i2p.CGIHTTPServer-module.html | 27 +
.../toc-i2p.SimpleHTTPServer-module.html | 31 +
.../public/toc-i2p.SocketServer-module.html | 33 +
.../html/public/toc-i2p.eep-module.html | 23 +
.../html/public/toc-i2p.pylib-module.html | 17 +
.../html/public/toc-i2p.router-module.html | 32 +
.../html/public/toc-i2p.select-module.html | 28 +
.../html/public/toc-i2p.socket-module.html | 41 +
.../html/public/toc-i2p.tunnel-module.html | 28 +
.../python/doc/epydoc/html/public/toc.html | 34 +
.../python/doc/epydoc/html/public/trees.html | 154 +++
155 files changed, 25204 insertions(+)
create mode 100644 apps/sam/python/doc/epydoc/html/epydoc.css
create mode 100644 apps/sam/python/doc/epydoc/html/index.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/BaseHTTPServer.BaseHTTPRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/BaseHTTPServer.HTTPServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/CGIHTTPServer.CGIHTTPRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/SimpleHTTPServer.SimpleHTTPRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/SocketServer.BaseRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/SocketServer.BaseServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/SocketServer.DatagramRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/SocketServer.ForkingMixIn-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/SocketServer.StreamRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/SocketServer.TCPServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/SocketServer.ThreadingMixIn-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/SocketServer.UDPServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/epydoc.css
create mode 100644 apps/sam/python/doc/epydoc/html/private/exceptions.Exception-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/frames.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/help.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.BaseHTTPServer-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.BaseHTTPServer.BaseHTTPRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.BaseHTTPServer.HTTPServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.CGIHTTPServer-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.CGIHTTPServer.CGIHTTPRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.Error-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.RouterError-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.SimpleHTTPServer-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.SimpleHTTPServer.SimpleHTTPRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.SocketServer-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.BaseRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.BaseServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.DatagramRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ForkingMixIn-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ForkingTCPServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ForkingUDPServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.StreamRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.TCPServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ThreadingMixIn-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ThreadingTCPServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ThreadingUDPServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.UDPServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.eep-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.pylib-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.router-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.samclasses-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.samclasses.BaseSession-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.samclasses.DatagramSession-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.samclasses.Deque-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.samclasses.RawSession-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.samclasses.SAMTerminal-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.samclasses.Stream-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.samclasses.StreamSession-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.samclasses.StringBuffer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.select-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.select.Poll-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.socket-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.socket.BlockError-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.socket.ClosedError-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.socket.Error-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.socket.NetworkError-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.socket.Socket-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.socket.Timeout-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.tunnel-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.tunnel.Tunnel-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.tunnel.TunnelClient-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/i2p.tunnel.TunnelServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/index.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/indices.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/mimetools.Message-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/rfc822.Message-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/toc-everything.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/toc-i2p-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/toc-i2p.BaseHTTPServer-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/toc-i2p.CGIHTTPServer-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/toc-i2p.SimpleHTTPServer-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/toc-i2p.SocketServer-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/toc-i2p.eep-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/toc-i2p.pylib-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/toc-i2p.router-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/toc-i2p.samclasses-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/toc-i2p.select-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/toc-i2p.socket-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/toc-i2p.tunnel-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/toc.html
create mode 100644 apps/sam/python/doc/epydoc/html/private/trees.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/BaseHTTPServer.BaseHTTPRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/BaseHTTPServer.HTTPServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/CGIHTTPServer.CGIHTTPRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/SimpleHTTPServer.SimpleHTTPRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/SocketServer.BaseRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/SocketServer.DatagramRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/SocketServer.ForkingMixIn-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/SocketServer.StreamRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/SocketServer.TCPServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/SocketServer.ThreadingMixIn-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/SocketServer.UDPServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/epydoc.css
create mode 100644 apps/sam/python/doc/epydoc/html/public/exceptions.Exception-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/frames.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/help.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.BaseHTTPServer-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.BaseHTTPServer.BaseHTTPRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.BaseHTTPServer.HTTPServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.CGIHTTPServer-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.CGIHTTPServer.CGIHTTPRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.SimpleHTTPServer-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.SimpleHTTPServer.SimpleHTTPRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.SocketServer-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.BaseRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.BaseServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.DatagramRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ForkingMixIn-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ForkingTCPServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ForkingUDPServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.StreamRequestHandler-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.TCPServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ThreadingMixIn-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ThreadingTCPServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ThreadingUDPServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.UDPServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.eep-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.pylib-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.router-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.select-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.select.Poll-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.socket-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.socket.BlockError-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.socket.ClosedError-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.socket.Error-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.socket.NetworkError-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.socket.Socket-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.socket.Timeout-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.tunnel-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.tunnel.Tunnel-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.tunnel.TunnelClient-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/i2p.tunnel.TunnelServer-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/index.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/indices.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/mimetools.Message-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/rfc822.Message-class.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/toc-everything.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/toc-i2p-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/toc-i2p.BaseHTTPServer-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/toc-i2p.CGIHTTPServer-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/toc-i2p.SimpleHTTPServer-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/toc-i2p.SocketServer-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/toc-i2p.eep-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/toc-i2p.pylib-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/toc-i2p.router-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/toc-i2p.select-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/toc-i2p.socket-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/toc-i2p.tunnel-module.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/toc.html
create mode 100644 apps/sam/python/doc/epydoc/html/public/trees.html
diff --git a/apps/sam/python/doc/epydoc/html/epydoc.css b/apps/sam/python/doc/epydoc/html/epydoc.css
new file mode 100644
index 000000000..46080bd0d
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/epydoc.css
@@ -0,0 +1,100 @@
+
+/* Body color */
+body { background: #ffffff; color: #000000; }
+
+/* Tables */
+table.summary, table.details, table.index
+ { background: #e8f0f8; color: #000000; }
+tr.summary, tr.details, tr.index
+ { background: #70b0f0; color: #000000;
+ text-align: left; font-size: 120%; }
+tr.group { background: #c0e0f8; color: #000000;
+ text-align: left; font-size: 120%;
+ font-style: italic; }
+
+/* Documentation page titles */
+h2.module { margin-top: 0.2em; }
+h2.class { margin-top: 0.2em; }
+
+/* Headings */
+h1.heading { font-size: +140%; font-style: italic;
+ font-weight: bold; }
+h2.heading { font-size: +125%; font-style: italic;
+ font-weight: bold; }
+h3.heading { font-size: +110%; font-style: italic;
+ font-weight: normal; }
+
+/* Base tree */
+pre.base-tree { font-size: 80%; margin: 0; }
+
+/* Details Sections */
+table.func-details { background: #e8f0f8; color: #000000;
+ border: 2px groove #c0d0d0;
+ padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
+h3.func-detail { background: transparent; color: #000000;
+ margin: 0 0 1em 0; }
+
+table.var-details { background: #e8f0f8; color: #000000;
+ border: 2px groove #c0d0d0;
+ padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
+h3.var-details { background: transparent; color: #000000;
+ margin: 0 0 1em 0; }
+
+/* Function signatures */
+.sig { background: transparent; color: #000000;
+ font-weight: bold; }
+.sig-name { background: transparent; color: #006080; }
+.sig-arg, .sig-kwarg, .sig-vararg
+ { background: transparent; color: #008060; }
+.sig-default { background: transparent; color: #602000; }
+.summary-sig { background: transparent; color: #000000; }
+.summary-sig-name { background: transparent; color: #204080; }
+.summary-sig-arg, .summary-sig-kwarg, .summary-sig-vararg
+ { background: transparent; color: #008060; }
+
+/* Doctest blocks */
+.py-src { background: transparent; color: #000000; }
+.py-prompt { background: transparent; color: #005050;
+ font-weight: bold;}
+.py-string { background: transparent; color: #006030; }
+.py-comment { background: transparent; color: #003060; }
+.py-keyword { background: transparent; color: #600000; }
+.py-output { background: transparent; color: #404040; }
+pre.doctestblock { background: #f4faff; color: #000000;
+ padding: .5em; margin: 1em;
+ border: 1px solid #708890; }
+table pre.doctestblock
+ { background: #dce4ec; color: #000000;
+ padding: .5em; margin: 1em;
+ border: 1px solid #708890; }
+
+/* Variable values */
+pre.variable { background: #dce4ec; color: #000000;
+ padding: .5em; margin: 0;
+ border: 1px solid #708890; }
+.variable-linewrap { background: transparent; color: #604000; }
+.variable-ellipsis { background: transparent; color: #604000; }
+.variable-quote { background: transparent; color: #604000; }
+.re { background: transparent; color: #000000; }
+.re-char { background: transparent; color: #006030; }
+.re-op { background: transparent; color: #600000; }
+.re-group { background: transparent; color: #003060; }
+.re-ref { background: transparent; color: #404040; }
+
+/* Navigation bar */
+table.navbar { background: #a0c0ff; color: #0000ff;
+ border: 2px groove #c0d0d0; }
+th.navbar { background: #a0c0ff; color: #0000ff; }
+th.navselect { background: #70b0ff; color: #000000; }
+.nomargin { margin: 0; }
+
+/* Links */
+a:link { background: transparent; color: #0000ff; }
+a:visited { background: transparent; color: #204080; }
+a.navbar:link { background: transparent; color: #0000ff;
+ text-decoration: none; }
+a.navbar:visited { background: transparent; color: #204080;
+ text-decoration: none; }
+
+/* Lists */
+ul { margin-top: 0; }
diff --git a/apps/sam/python/doc/epydoc/html/index.html b/apps/sam/python/doc/epydoc/html/index.html
new file mode 100644
index 000000000..b275c95e6
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/index.html
@@ -0,0 +1,13 @@
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/BaseHTTPServer.BaseHTTPRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/private/BaseHTTPServer.BaseHTTPRequestHandler-class.html
new file mode 100644
index 000000000..60bea68ad
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/BaseHTTPServer.BaseHTTPRequestHandler-class.html
@@ -0,0 +1,645 @@
+
+
+
+
+ BaseHTTPServer.BaseHTTPRequestHandler
+
+
+
+
+
+
+
+
+
+
+ Module BaseHTTPServer ::
+ Class BaseHTTPRequestHandler
+
+
+
+
+
+
+Class BaseHTTPRequestHandler
+
+
+BaseRequestHandler
--+
+ |
+ StreamRequestHandler
--+
+ |
+ BaseHTTPRequestHandler
+
+
+Known Subclasses:
+
+ BaseHTTPRequestHandler
,
+ SimpleHTTPRequestHandler
+
+
+
+
+HTTP request handler base class.
+
+The following explanation of HTTP serves to guide you through the
+code as well as to expose any misunderstandings I may have about
+HTTP (so you don't need to read the code to figure out I'm wrong
+:-).
+
+HTTP (HyperText Transfer Protocol) is an extensible protocol on
+top of a reliable stream transport (e.g. TCP/IP). The protocol
+recognizes three parts to a request:
+
+1. One line identifying the request type and path
+2. An optional set of RFC-822-style headers
+3. An optional data part
+
+The headers and data are separated by a blank line.
+
+The first line of the request has the form
+
+<command> <path> <version>
+
+where <command> is a (case-sensitive) keyword such as GET or POST,
+<path> is a string containing path information for the request,
+and <version> should be the string "HTTP/1.0" or "HTTP/1.1".
+<path> is encoded using the URL encoding scheme (using %xx to signify
+the ASCII character with hex code xx).
+
+The specification specifies that lines are separated by CRLF but
+for compatibility with the widest range of clients recommends
+servers also handle LF. Similarly, whitespace in the request line
+is treated sensibly (allowing multiple spaces between components
+and allowing trailing whitespace).
+
+Similarly, for output, lines ought to be separated by CRLF pairs
+but most clients grok LF characters just fine.
+
+If the first line of the request has the form
+
+<command> <path>
+
+(i.e. <version> is left out) then this is assumed to be an HTTP
+0.9 request; this form has no optional headers and data part and
+the reply consists of just the data.
+
+The reply form of the HTTP 1.x protocol again has three parts:
+
+1. One line giving the response code
+2. An optional set of RFC-822-style headers
+3. The data
+
+Again, the headers and data are separated by a blank line.
+
+The response code line has the form
+
+<version> <responsecode> <responsestring>
+
+where <version> is the protocol version ("HTTP/1.0" or "HTTP/1.1"),
+<responsecode> is a 3-digit response code indicating success or
+failure of the request, and <responsestring> is an optional
+human-readable string explaining what the response code means.
+
+This server parses the request and the headers, and then calls a
+function specific to the request type (<command>). Specifically,
+a request SPAM will be handled by a method do_SPAM(). If no
+such method exists the server sends an error response to the
+client. If it exists, it is called with no arguments:
+
+do_SPAM()
+
+Note that the request name is case sensitive (i.e. SPAM and spam
+are different requests).
+
+The various request details are stored in instance variables:
+
+- client_address is the client IP address in the form (host,
+port);
+
+- command, path and version are the broken-down request line;
+
+- headers is an instance of mimetools.Message (or a derived
+class) containing the header information;
+
+- rfile is a file object open for reading positioned at the
+start of the optional input data part;
+
+- wfile is a file object open for writing.
+
+IT IS IMPORTANT TO ADHERE TO THE PROTOCOL FOR WRITING!
+
+The first thing to be written must be the response line. Then
+follow 0 or more header lines, then a blank line, and then the
+actual data (if any). The meaning of the header lines depends on
+the command executed by the server; in most cases, when data is
+returned, there should be at least one header line of the form
+
+Content-type: <type>/<subtype>
+
+where <type> and <subtype> should be registered MIME types,
+e.g. "text/html" or "text/plain".
+
+
+
+
+
+
+
+ Method Summary
+
+ address_string
(self )
+
+Return the client address formatted for logging.
+
+ date_time_string
(self )
+
+Return the current date and time formatted for a message header.
+
+ end_headers
(self )
+
+Send the blank line ending the MIME headers.
+
+ handle
(self )
+
+Handle multiple requests if necessary.
+
+ handle_one_request
(self )
+
+Handle a single HTTP request.
+
+ log_date_time_string
(self )
+
+Return the current time formatted for logging.
+
+ log_error
(self ,
+ *args )
+
+Log an error.
+
+ log_message
(self ,
+ format ,
+ *args )
+
+Log an arbitrary message.
+
+ log_request
(self ,
+ code ,
+ size )
+
+Log an accepted request.
+
+ parse_request
(self )
+
+Parse a request (internal).
+
+ send_error
(self ,
+ code ,
+ message )
+
+Send and log an error reply.
+
+ send_header
(self ,
+ keyword ,
+ value )
+
+Send a MIME header.
+
+ send_response
(self ,
+ code ,
+ message )
+
+Send the response header and log the response code.
+
+ version_string
(self )
+
+Return the server software version string.
+
+ Inherited from StreamRequestHandler
+
+ finish
(self )
+
+
+ setup
(self )
+
+
+ Inherited from BaseRequestHandler
+
+ __init__
(self ,
+ request ,
+ client_address ,
+ server )
+
+
+
+
+
+
+
+ Class Variable Summary
+str
+error_message_format
= ' <head>\n<title>Error response</t...
+
+classobj
+ MessageClass
= mimetools.Message
+list
+monthname
= [None, 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'J...
+
+str
+protocol_version
= ' HTTP/1.0'
+
+dict
+responses
= {400: ('Bad request', 'Bad request syntax or...
+
+str
+server_version
= ' BaseHTTP/0.3'
+
+str
+sys_version
= ' Python/2.3.4'
+
+list
+weekdayname
= ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat',...
+
+
+ Inherited from StreamRequestHandler
+int
+rbufsize
= -1
+int
+wbufsize
= 0
+
+
+
+
+
+
+
+
+ address_string (self )
+
+ Return the client address formatted for logging.
+ This version looks up the full hostname using gethostbyaddr(), and
+ tries to find a name that contains at least one dot.
+
+
+
+
+
+
+ date_time_string (self )
+
+ Return the current date and time formatted for a message header.
+
+
+
+
+
+
+ end_headers (self )
+
+ Send the blank line ending the MIME headers.
+
+
+
+
+
+
+
+
+
+ handle_one_request (self )
+
+ Handle a single HTTP request.
+ You normally don't need to override this method; see the class
+ __doc__ string for information on how to handle specific HTTP commands
+ such as GET and POST.
+
+
+
+
+
+
+ log_date_time_string (self )
+
+ Return the current time formatted for logging.
+
+
+
+
+
+
+ log_error (self ,
+ *args )
+
+ Log an error.
+ This is called when a request cannot be fulfilled. By default it
+ passes the message on to log_message().
+ Arguments are the same as for log_message().
+ XXX This should go to the separate error log.
+
+
+
+
+
+
+ log_message (self ,
+ format ,
+ *args )
+
+ Log an arbitrary message.
+ This is used by all other logging functions. Override it if you have
+ specific logging wishes.
+ The first argument, FORMAT, is a format string for the message to be
+ logged. If the format string contains any % escapes requiring
+ parameters, they should be specified as subsequent arguments (it's just
+ like printf!).
+ The client host and current date/time are prefixed to every
+ message.
+
+
+
+
+
+
+ log_request (self ,
+ code ='-' ,
+ size ='-' )
+
+ Log an accepted request.
+ This is called by send_reponse().
+
+
+
+
+
+
+ parse_request (self )
+
+ Parse a request (internal).
+ The request should be stored in self.raw_requestline; the results
+ are in self.command, self.path, self.request_version and
+ self.headers.
+ Return True for success, False for failure; on failure, an error is
+ sent back.
+
+
+
+
+
+
+ send_error (self ,
+ code ,
+ message =None )
+
+ Send and log an error reply.
+ Arguments are the error code, and a detailed message. The detailed
+ message defaults to the short entry matching the response code.
+ This sends an error response (so it must be called before any output
+ has been generated), logs the error, and finally sends a piece of HTML
+ explaining the error to the user.
+
+
+
+
+
+
+ send_header (self ,
+ keyword ,
+ value )
+
+ Send a MIME header.
+
+
+
+
+
+
+ send_response (self ,
+ code ,
+ message =None )
+
+ Send the response header and log the response code.
+ Also send two standard headers with the server software version and
+ the current date.
+
+
+
+
+
+
+ version_string (self )
+
+ Return the server software version string.
+
+
+
+
+
+
+
+
+
+ Class Variable Details
+
+
+
+error_message_format
+
+
+
+
+ Type:
+
+ str
+
+
+ Value:
+
+
+''' <head>
+<title>Error response</title>
+</head>
+<body>
+<h1>Error response</h1>
+<p>Error code %(code)d.
+<p>Message: %(message)s.
+<p>Error code explanation: %(code)s = %(explain)s.
+...
+
+
+
+
+
+
+monthname
+
+
+
+
+ Type:
+
+ list
+
+
+ Value:
+
+
+[None, 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug']
+
+
+
+
+
+
+protocol_version
+
+
+
+
+ Type:
+
+ str
+
+
+ Value:
+
+
+
+
+
+
+responses
+
+
+
+
+ Type:
+
+ dict
+
+
+ Value:
+
+
+{100: ('Continue', 'Request received, please continue'),
+ 101: ('Switching Protocols',
+ 'Switching to new protocol; obey Upgrade header'),
+ 200: ('OK', 'Request fulfilled, document follows'),
+ 201: ('Created', 'Document created, URL follows'),
+ 202: ('Accepted', 'Request accepted, processing continues off-line'),
+ 203: ('Non-Authoritative Information', 'Request fulfilled from cache'\
+),
+...
+
+
+
+
+
+
+server_version
+
+
+
+
+ Type:
+
+ str
+
+
+ Value:
+
+
+
+
+
+
+sys_version
+
+
+
+
+ Type:
+
+ str
+
+
+ Value:
+
+
+
+
+
+
+weekdayname
+
+
+
+
+ Type:
+
+ list
+
+
+ Value:
+
+
+['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/BaseHTTPServer.HTTPServer-class.html b/apps/sam/python/doc/epydoc/html/private/BaseHTTPServer.HTTPServer-class.html
new file mode 100644
index 000000000..8b714cedc
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/BaseHTTPServer.HTTPServer-class.html
@@ -0,0 +1,212 @@
+
+
+
+
+ BaseHTTPServer.HTTPServer
+
+
+
+
+
+
+
+
+
+
+ Module BaseHTTPServer ::
+ Class HTTPServer
+
+
+
+
+
+
+Class HTTPServer
+
+
+BaseServer
--+
+ |
+ TCPServer
--+
+ |
+ HTTPServer
+
+
+Known Subclasses:
+
+ HTTPServer
+
+
+
+
+
+
+
+ Method Summary
+
+ server_bind
(self )
+
+Override server_bind to store the server name.
+
+ Inherited from TCPServer
+
+ __init__
(self ,
+ server_address ,
+ RequestHandlerClass )
+
+Constructor.
+
+ close_request
(self ,
+ request )
+
+Called to clean up an individual request.
+
+ fileno
(self )
+
+Return socket file number.
+
+ get_request
(self )
+
+Get the request and client address from the socket.
+
+ server_activate
(self )
+
+Called by constructor to activate the server.
+
+ server_close
(self )
+
+Called to clean-up the server.
+
+ Inherited from BaseServer
+
+ finish_request
(self ,
+ request ,
+ client_address )
+
+Finish one request by instantiating RequestHandlerClass.
+
+ handle_error
(self ,
+ request ,
+ client_address )
+
+Handle an error gracefully.
+
+ handle_request
(self )
+
+Handle one request, possibly blocking.
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Call finish_request.
+
+ serve_forever
(self )
+
+Handle one request at a time until doomsday.
+
+ verify_request
(self ,
+ request ,
+ client_address )
+
+Verify the request.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Variable Details
+
+
+
+allow_reuse_address
+
+
+
+
+ Type:
+
+ int
+
+
+ Value:
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/CGIHTTPServer.CGIHTTPRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/private/CGIHTTPServer.CGIHTTPRequestHandler-class.html
new file mode 100644
index 000000000..b22e05461
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/CGIHTTPServer.CGIHTTPRequestHandler-class.html
@@ -0,0 +1,466 @@
+
+
+
+
+ CGIHTTPServer.CGIHTTPRequestHandler
+
+
+
+
+
+
+
+
+
+
+ Module CGIHTTPServer ::
+ Class CGIHTTPRequestHandler
+
+
+
+
+
+
+Class CGIHTTPRequestHandler
+
+
+BaseRequestHandler
--+
+ |
+ StreamRequestHandler
--+
+ |
+ BaseHTTPRequestHandler
--+
+ |
+ SimpleHTTPRequestHandler
--+
+ |
+ CGIHTTPRequestHandler
+
+
+Known Subclasses:
+
+ CGIHTTPRequestHandler
+
+
+
+Complete HTTP server with GET, HEAD and POST commands.
+GET and HEAD also support running CGI scripts.
+The POST command is *only* implemented for CGI scripts.
+
+
+
+
+
+
+ Method Summary
+
+ do_POST
(self )
+
+Serve a POST request.
+
+ is_cgi
(self )
+
+Test whether self.path corresponds to a CGI script.
+
+ is_executable
(self ,
+ path )
+
+Test whether argument path is an executable file.
+
+ is_python
(self ,
+ path )
+
+Test whether argument path is a Python script.
+
+ run_cgi
(self )
+
+Execute a CGI script.
+
+ send_head
(self )
+
+Version of send_head that support CGI scripts
+
+ Inherited from SimpleHTTPRequestHandler
+
+ copyfile
(self ,
+ source ,
+ outputfile )
+
+Copy all data between two file objects.
+
+ do_GET
(self )
+
+Serve a GET request.
+
+ do_HEAD
(self )
+
+Serve a HEAD request.
+
+ guess_type
(self ,
+ path )
+
+Guess the type of a file.
+
+ list_directory
(self ,
+ path )
+
+Helper to produce a directory listing (absent index.html).
+
+ translate_path
(self ,
+ path )
+
+Translate a /-separated PATH to the local filename syntax.
+
+ Inherited from BaseHTTPRequestHandler
+
+ address_string
(self )
+
+Return the client address formatted for logging.
+
+ date_time_string
(self )
+
+Return the current date and time formatted for a message header.
+
+ end_headers
(self )
+
+Send the blank line ending the MIME headers.
+
+ handle
(self )
+
+Handle multiple requests if necessary.
+
+ handle_one_request
(self )
+
+Handle a single HTTP request.
+
+ log_date_time_string
(self )
+
+Return the current time formatted for logging.
+
+ log_error
(self ,
+ *args )
+
+Log an error.
+
+ log_message
(self ,
+ format ,
+ *args )
+
+Log an arbitrary message.
+
+ log_request
(self ,
+ code ,
+ size )
+
+Log an accepted request.
+
+ parse_request
(self )
+
+Parse a request (internal).
+
+ send_error
(self ,
+ code ,
+ message )
+
+Send and log an error reply.
+
+ send_header
(self ,
+ keyword ,
+ value )
+
+Send a MIME header.
+
+ send_response
(self ,
+ code ,
+ message )
+
+Send the response header and log the response code.
+
+ version_string
(self )
+
+Return the server software version string.
+
+ Inherited from StreamRequestHandler
+
+ finish
(self )
+
+
+ setup
(self )
+
+
+ Inherited from BaseRequestHandler
+
+ __init__
(self ,
+ request ,
+ client_address ,
+ server )
+
+
+
+
+
+
+
+ Class Variable Summary
+list
+cgi_directories
= ['/cgi-bin', '/htbin']
+
+bool
+have_fork
= False
+
+bool
+have_popen2
= True
+
+bool
+have_popen3
= True
+
+int
+rbufsize
= 0
+
+ Inherited from SimpleHTTPRequestHandler
+dict
+extensions_map
= {'': 'application/octet-stream', '.obj'...
+
+str
+server_version
= ' SimpleHTTP/0.6'
+
+
+ Inherited from BaseHTTPRequestHandler
+str
+error_message_format
= ' <head>\n<title>Error response</t...
+
+list
+monthname
= [None, 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'J...
+
+str
+protocol_version
= ' HTTP/1.0'
+
+dict
+responses
= {400: ('Bad request', 'Bad request syntax or...
+
+str
+sys_version
= ' Python/2.3.4'
+
+list
+weekdayname
= ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat',...
+
+
+ Inherited from StreamRequestHandler
+int
+wbufsize
= 0
+
+
+
+
+
+
+
+
+ do_POST (self )
+
+ Serve a POST request.
+ This is only implemented for CGI scripts.
+
+
+
+
+
+
+ is_cgi (self )
+
+ Test whether self.path corresponds to a CGI script.
+ Return a tuple (dir, rest) if self.path requires running a CGI
+ script, None if not. Note that rest begins with a slash if it is not
+ empty.
+ The default implementation tests whether the path begins with one of
+ the strings in the list self.cgi_directories (and the next character is
+ a '/' or the end of the string).
+
+
+
+
+
+
+ is_executable (self ,
+ path )
+
+ Test whether argument path is an executable file.
+
+
+
+
+
+
+ is_python (self ,
+ path )
+
+ Test whether argument path is a Python script.
+
+
+
+
+
+
+ run_cgi (self )
+
+ Execute a CGI script.
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Variable Details
+
+
+
+cgi_directories
+
+
+
+
+ Type:
+
+ list
+
+
+ Value:
+
+
+['/cgi-bin', '/htbin']
+
+
+
+
+
+
+have_fork
+
+
+
+
+ Type:
+
+ bool
+
+
+ Value:
+
+
+
+
+
+
+have_popen2
+
+
+
+
+ Type:
+
+ bool
+
+
+ Value:
+
+
+
+
+
+
+have_popen3
+
+
+
+
+ Type:
+
+ bool
+
+
+ Value:
+
+
+
+
+
+
+rbufsize
+
+
+
+
+ Type:
+
+ int
+
+
+ Value:
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/SimpleHTTPServer.SimpleHTTPRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/private/SimpleHTTPServer.SimpleHTTPRequestHandler-class.html
new file mode 100644
index 000000000..7cd853799
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/SimpleHTTPServer.SimpleHTTPRequestHandler-class.html
@@ -0,0 +1,405 @@
+
+
+
+
+ SimpleHTTPServer.SimpleHTTPRequestHandler
+
+
+
+
+
+
+
+
+
+
+ Module SimpleHTTPServer ::
+ Class SimpleHTTPRequestHandler
+
+
+
+
+
+
+Class SimpleHTTPRequestHandler
+
+
+BaseRequestHandler
--+
+ |
+ StreamRequestHandler
--+
+ |
+ BaseHTTPRequestHandler
--+
+ |
+ SimpleHTTPRequestHandler
+
+
+Known Subclasses:
+
+ CGIHTTPRequestHandler
,
+ SimpleHTTPRequestHandler
+
+
+
+Simple HTTP request handler with GET and HEAD commands.
+This serves files from the current directory and any of its
+subdirectories. It assumes that all files are plain text files unless
+they have the extension ".html" in which case it assumes they
+are HTML files.
+The GET and HEAD requests are identical except that the HEAD request
+omits the actual contents of the file.
+
+
+
+
+
+
+ Method Summary
+
+ copyfile
(self ,
+ source ,
+ outputfile )
+
+Copy all data between two file objects.
+
+ do_GET
(self )
+
+Serve a GET request.
+
+ do_HEAD
(self )
+
+Serve a HEAD request.
+
+ guess_type
(self ,
+ path )
+
+Guess the type of a file.
+
+ list_directory
(self ,
+ path )
+
+Helper to produce a directory listing (absent index.html).
+
+ send_head
(self )
+
+Common code for GET and HEAD commands.
+
+ translate_path
(self ,
+ path )
+
+Translate a /-separated PATH to the local filename syntax.
+
+ Inherited from BaseHTTPRequestHandler
+
+ address_string
(self )
+
+Return the client address formatted for logging.
+
+ date_time_string
(self )
+
+Return the current date and time formatted for a message header.
+
+ end_headers
(self )
+
+Send the blank line ending the MIME headers.
+
+ handle
(self )
+
+Handle multiple requests if necessary.
+
+ handle_one_request
(self )
+
+Handle a single HTTP request.
+
+ log_date_time_string
(self )
+
+Return the current time formatted for logging.
+
+ log_error
(self ,
+ *args )
+
+Log an error.
+
+ log_message
(self ,
+ format ,
+ *args )
+
+Log an arbitrary message.
+
+ log_request
(self ,
+ code ,
+ size )
+
+Log an accepted request.
+
+ parse_request
(self )
+
+Parse a request (internal).
+
+ send_error
(self ,
+ code ,
+ message )
+
+Send and log an error reply.
+
+ send_header
(self ,
+ keyword ,
+ value )
+
+Send a MIME header.
+
+ send_response
(self ,
+ code ,
+ message )
+
+Send the response header and log the response code.
+
+ version_string
(self )
+
+Return the server software version string.
+
+ Inherited from StreamRequestHandler
+
+ finish
(self )
+
+
+ setup
(self )
+
+
+ Inherited from BaseRequestHandler
+
+ __init__
(self ,
+ request ,
+ client_address ,
+ server )
+
+
+
+
+
+
+
+ Class Variable Summary
+dict
+extensions_map
= {'': 'application/octet-stream', '.obj'...
+
+str
+server_version
= ' SimpleHTTP/0.6'
+
+
+ Inherited from BaseHTTPRequestHandler
+str
+error_message_format
= ' <head>\n<title>Error response</t...
+
+list
+monthname
= [None, 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'J...
+
+str
+protocol_version
= ' HTTP/1.0'
+
+dict
+responses
= {400: ('Bad request', 'Bad request syntax or...
+
+str
+sys_version
= ' Python/2.3.4'
+
+list
+weekdayname
= ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat',...
+
+
+ Inherited from StreamRequestHandler
+int
+rbufsize
= -1
+int
+wbufsize
= 0
+
+
+
+
+
+
+
+
+ copyfile (self ,
+ source ,
+ outputfile )
+
+ Copy all data between two file objects.
+ The SOURCE argument is a file object open for reading (or anything
+ with a read() method) and the DESTINATION argument is a file object
+ open for writing (or anything with a write() method).
+ The only reason for overriding this would be to change the block
+ size or perhaps to replace newlines by CRLF -- note however that this
+ the default server uses this to copy binary data as well.
+
+
+
+
+
+
+ do_GET (self )
+
+ Serve a GET request.
+
+
+
+
+
+
+ do_HEAD (self )
+
+ Serve a HEAD request.
+
+
+
+
+
+
+ guess_type (self ,
+ path )
+
+ Guess the type of a file.
+ Argument is a PATH (a filename).
+ Return value is a string of the form type/subtype, usable for a MIME
+ Content-type header.
+ The default implementation looks the file's extension up in the
+ table self.extensions_map, using text/plain as a default; however it
+ would be permissible (if slow) to look inside the data to make a better
+ guess.
+
+
+
+
+
+
+ list_directory (self ,
+ path )
+
+ Helper to produce a directory listing (absent index.html).
+ Return value is either a file object, or None (indicating an error).
+ In either case, the headers are sent, making the interface the same as
+ for send_head().
+
+
+
+
+
+
+ send_head (self )
+
+ Common code for GET and HEAD commands.
+ This sends the response code and MIME headers.
+ Return value is either a file object (which has to be copied to the
+ outputfile by the caller unless the command was HEAD, and must be
+ closed by the caller under all circumstances), or None, in which case
+ the caller has nothing further to do.
+
+
+
+
+
+
+ translate_path (self ,
+ path )
+
+ Translate a /-separated PATH to the local filename syntax.
+ Components that mean special things to the local file system (e.g.
+ drive or directory names) are ignored. (XXX They should probably be
+ diagnosed.)
+
+
+
+
+
+
+
+
+
+ Class Variable Details
+
+
+
+extensions_map
+
+
+
+
+ Type:
+
+ dict
+
+
+ Value:
+
+
+{'': 'application/octet-stream',
+ '.bin': 'application/octet-stream',
+ '.dll': 'application/octet-stream',
+ '.mp2': 'audio/mpeg',
+ '.obj': 'application/octet-stream',
+ '.ra': 'audio/x-pn-realaudio',
+ '.sgm': 'text/x-sgml',
+ '.texi': 'application/x-texinfo',
+...
+
+
+
+
+
+
+server_version
+
+
+
+
+ Type:
+
+ str
+
+
+ Value:
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/SocketServer.BaseRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/private/SocketServer.BaseRequestHandler-class.html
new file mode 100644
index 000000000..626268523
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/SocketServer.BaseRequestHandler-class.html
@@ -0,0 +1,102 @@
+
+
+
+
+ SocketServer.BaseRequestHandler
+
+
+
+
+
+
+
+
+
+
+ Module SocketServer ::
+ Class BaseRequestHandler
+
+
+
+
+
+
+Class BaseRequestHandler
+
+Known Subclasses:
+
+ BaseRequestHandler
,
+ DatagramRequestHandler
,
+ StreamRequestHandler
+
+
+
+Base class for request handler classes.
+This class is instantiated for each request to be handled. The
+constructor sets the instance variables request, client_address and
+server, and then calls the handle() method. To implement a specific
+service, all you need to do is to derive a class which defines a handle()
+method.
+The handle() method can find the request as self.request, the client
+address as self.client_address, and the server (in case it needs access
+to per-server information) as self.server. Since a separate instance is
+created for each request, the handle() method can define arbitrary other
+instance variariables.
+
+
+
+
+
+
+ Method Summary
+
+ __init__ (self ,
+ request ,
+ client_address ,
+ server )
+
+
+ finish (self )
+
+
+ handle (self )
+
+
+ setup (self )
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/SocketServer.BaseServer-class.html b/apps/sam/python/doc/epydoc/html/private/SocketServer.BaseServer-class.html
new file mode 100644
index 000000000..9d37db3da
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/SocketServer.BaseServer-class.html
@@ -0,0 +1,278 @@
+
+
+
+
+ SocketServer.BaseServer
+
+
+
+
+
+
+
+
+
+
+ Module SocketServer ::
+ Class BaseServer
+
+
+
+
+
+
+Class BaseServer
+
+Known Subclasses:
+
+ BaseServer
,
+ TCPServer
+
+
+
+
+Base class for server classes.
+
+Methods for the caller:
+
+- __init__(server_address, RequestHandlerClass)
+- serve_forever()
+- handle_request() # if you do not use serve_forever()
+- fileno() -> int # for select()
+
+Methods that may be overridden:
+
+- server_bind()
+- server_activate()
+- get_request() -> request, client_address
+- verify_request(request, client_address)
+- server_close()
+- process_request(request, client_address)
+- close_request(request)
+- handle_error()
+
+Methods for derived classes:
+
+- finish_request(request, client_address)
+
+Class variables that may be overridden by derived classes or
+instances:
+
+- address_family
+- socket_type
+- allow_reuse_address
+
+Instance variables:
+
+- RequestHandlerClass
+- socket
+
+
+
+
+
+
+
+ Method Summary
+
+ __init__
(self ,
+ server_address ,
+ RequestHandlerClass )
+
+Constructor.
+
+ close_request
(self ,
+ request )
+
+Called to clean up an individual request.
+
+ finish_request
(self ,
+ request ,
+ client_address )
+
+Finish one request by instantiating RequestHandlerClass.
+
+ handle_error
(self ,
+ request ,
+ client_address )
+
+Handle an error gracefully.
+
+ handle_request
(self )
+
+Handle one request, possibly blocking.
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Call finish_request.
+
+ serve_forever
(self )
+
+Handle one request at a time until doomsday.
+
+ server_activate
(self )
+
+Called by constructor to activate the server.
+
+ server_close
(self )
+
+Called to clean-up the server.
+
+ verify_request
(self ,
+ request ,
+ client_address )
+
+Verify the request.
+
+
+
+
+
+
+
+
+ __init__ (self ,
+ server_address ,
+ RequestHandlerClass )
+ (Constructor)
+
+ Constructor. May be extended, do not override.
+
+
+
+
+
+
+ close_request (self ,
+ request )
+
+ Called to clean up an individual request.
+
+
+
+
+
+
+ finish_request (self ,
+ request ,
+ client_address )
+
+ Finish one request by instantiating RequestHandlerClass.
+
+
+
+
+
+
+ handle_error (self ,
+ request ,
+ client_address )
+
+ Handle an error gracefully. May be overridden.
+ The default is to print a traceback and continue.
+
+
+
+
+
+
+ handle_request (self )
+
+ Handle one request, possibly blocking.
+
+
+
+
+
+
+ process_request (self ,
+ request ,
+ client_address )
+
+ Call finish_request.
+ Overridden by ForkingMixIn and ThreadingMixIn.
+
+
+
+
+
+
+ serve_forever (self )
+
+ Handle one request at a time until doomsday.
+
+
+
+
+
+
+ server_activate (self )
+
+ Called by constructor to activate the server.
+ May be overridden.
+
+
+
+
+
+
+ server_close (self )
+
+ Called to clean-up the server.
+ May be overridden.
+
+
+
+
+
+
+ verify_request (self ,
+ request ,
+ client_address )
+
+ Verify the request. May be overridden.
+ Return True if we should proceed with this request.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/SocketServer.DatagramRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/private/SocketServer.DatagramRequestHandler-class.html
new file mode 100644
index 000000000..74c0f74e7
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/SocketServer.DatagramRequestHandler-class.html
@@ -0,0 +1,98 @@
+
+
+
+
+ SocketServer.DatagramRequestHandler
+
+
+
+
+
+
+
+
+
+
+ Module SocketServer ::
+ Class DatagramRequestHandler
+
+
+
+
+
+
+Class DatagramRequestHandler
+
+
+BaseRequestHandler
--+
+ |
+ DatagramRequestHandler
+
+
+Known Subclasses:
+
+ DatagramRequestHandler
+
+
+
+Define self.rfile and self.wfile for datagram sockets.
+
+
+
+
+
+
+ Method Summary
+
+ finish (self )
+
+
+ setup (self )
+
+
+ Inherited from BaseRequestHandler
+
+ __init__
(self ,
+ request ,
+ client_address ,
+ server )
+
+
+ handle
(self )
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/SocketServer.ForkingMixIn-class.html b/apps/sam/python/doc/epydoc/html/private/SocketServer.ForkingMixIn-class.html
new file mode 100644
index 000000000..7f56392ea
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/SocketServer.ForkingMixIn-class.html
@@ -0,0 +1,172 @@
+
+
+
+
+ SocketServer.ForkingMixIn
+
+
+
+
+
+
+
+
+
+
+ Module SocketServer ::
+ Class ForkingMixIn
+
+
+
+
+
+
+Class ForkingMixIn
+
+Known Subclasses:
+
+ ForkingMixIn
+
+
+
+Mix-in class to handle each request in a new process.
+
+
+
+
+
+
+ Method Summary
+
+ collect_children
(self )
+
+Internal routine to wait for died children.
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Fork a new subprocess to process the request.
+
+
+
+
+
+
+
+
+
+
+
+
+ collect_children (self )
+
+ Internal routine to wait for died children.
+
+
+
+
+
+
+ process_request (self ,
+ request ,
+ client_address )
+
+ Fork a new subprocess to process the request.
+
+
+
+
+
+
+
+
+
+ Class Variable Details
+
+
+
+active_children
+
+
+
+
+ Type:
+
+ NoneType
+
+
+ Value:
+
+
+
+
+
+
+max_children
+
+
+
+
+ Type:
+
+ int
+
+
+ Value:
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/SocketServer.StreamRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/private/SocketServer.StreamRequestHandler-class.html
new file mode 100644
index 000000000..a99375b56
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/SocketServer.StreamRequestHandler-class.html
@@ -0,0 +1,158 @@
+
+
+
+
+ SocketServer.StreamRequestHandler
+
+
+
+
+
+
+
+
+
+
+ Module SocketServer ::
+ Class StreamRequestHandler
+
+
+
+
+
+
+Class StreamRequestHandler
+
+
+BaseRequestHandler
--+
+ |
+ StreamRequestHandler
+
+
+Known Subclasses:
+
+ BaseHTTPRequestHandler
,
+ StreamRequestHandler
+
+
+
+Define self.rfile and self.wfile for stream sockets.
+
+
+
+
+
+
+ Method Summary
+
+ finish (self )
+
+
+ setup (self )
+
+
+ Inherited from BaseRequestHandler
+
+ __init__
(self ,
+ request ,
+ client_address ,
+ server )
+
+
+ handle
(self )
+
+
+
+
+
+
+
+
+
+
+
+ Class Variable Details
+
+
+
+rbufsize
+
+
+
+
+ Type:
+
+ int
+
+
+ Value:
+
+
+
+
+
+
+wbufsize
+
+
+
+
+ Type:
+
+ int
+
+
+ Value:
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/SocketServer.TCPServer-class.html b/apps/sam/python/doc/epydoc/html/private/SocketServer.TCPServer-class.html
new file mode 100644
index 000000000..088f41bfd
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/SocketServer.TCPServer-class.html
@@ -0,0 +1,383 @@
+
+
+
+
+ SocketServer.TCPServer
+
+
+
+
+
+
+
+
+
+
+ Module SocketServer ::
+ Class TCPServer
+
+
+
+
+
+
+Class TCPServer
+
+
+BaseServer
--+
+ |
+ TCPServer
+
+
+Known Subclasses:
+
+ HTTPServer
,
+ TCPServer
,
+ UDPServer
+
+
+
+
+Base class for various socket-based server classes.
+
+Defaults to synchronous IP stream (i.e., TCP).
+
+Methods for the caller:
+
+- __init__(server_address, RequestHandlerClass)
+- serve_forever()
+- handle_request() # if you don't use serve_forever()
+- fileno() -> int # for select()
+
+Methods that may be overridden:
+
+- server_bind()
+- server_activate()
+- get_request() -> request, client_address
+- verify_request(request, client_address)
+- process_request(request, client_address)
+- close_request(request)
+- handle_error()
+
+Methods for derived classes:
+
+- finish_request(request, client_address)
+
+Class variables that may be overridden by derived classes or
+instances:
+
+- address_family
+- socket_type
+- request_queue_size (only for stream sockets)
+- allow_reuse_address
+
+Instance variables:
+
+- server_address
+- RequestHandlerClass
+- socket
+
+
+
+
+
+
+
+ Method Summary
+
+ __init__
(self ,
+ server_address ,
+ RequestHandlerClass )
+
+Constructor.
+
+ close_request
(self ,
+ request )
+
+Called to clean up an individual request.
+
+ fileno
(self )
+
+Return socket file number.
+
+ get_request
(self )
+
+Get the request and client address from the socket.
+
+ server_activate
(self )
+
+Called by constructor to activate the server.
+
+ server_bind
(self )
+
+Called by constructor to bind the socket.
+
+ server_close
(self )
+
+Called to clean-up the server.
+
+ Inherited from BaseServer
+
+ finish_request
(self ,
+ request ,
+ client_address )
+
+Finish one request by instantiating RequestHandlerClass.
+
+ handle_error
(self ,
+ request ,
+ client_address )
+
+Handle an error gracefully.
+
+ handle_request
(self )
+
+Handle one request, possibly blocking.
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Call finish_request.
+
+ serve_forever
(self )
+
+Handle one request at a time until doomsday.
+
+ verify_request
(self ,
+ request ,
+ client_address )
+
+Verify the request.
+
+
+
+
+
+
+
+
+
+
+
+
+ __init__ (self ,
+ server_address ,
+ RequestHandlerClass )
+ (Constructor)
+
+ Constructor. May be extended, do not override.
+
+ Overrides:
+ SocketServer.BaseServer.__init__
+
+
+
+
+
+
+
+
+
+ fileno (self )
+
+ Return socket file number.
+ Interface required by select().
+
+
+
+
+
+
+ get_request (self )
+
+ Get the request and client address from the socket.
+ May be overridden.
+
+
+
+
+
+
+
+
+
+ server_bind (self )
+
+ Called by constructor to bind the socket.
+ May be overridden.
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Variable Details
+
+
+
+address_family
+
+
+
+
+ Type:
+
+ int
+
+
+ Value:
+
+
+
+
+
+
+allow_reuse_address
+
+
+
+
+ Type:
+
+ bool
+
+
+ Value:
+
+
+
+
+
+
+request_queue_size
+
+
+
+
+ Type:
+
+ int
+
+
+ Value:
+
+
+
+
+
+
+socket_type
+
+
+
+
+ Type:
+
+ int
+
+
+ Value:
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/SocketServer.ThreadingMixIn-class.html b/apps/sam/python/doc/epydoc/html/private/SocketServer.ThreadingMixIn-class.html
new file mode 100644
index 000000000..0b32cc20f
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/SocketServer.ThreadingMixIn-class.html
@@ -0,0 +1,156 @@
+
+
+
+
+ SocketServer.ThreadingMixIn
+
+
+
+
+
+
+
+
+
+
+ Module SocketServer ::
+ Class ThreadingMixIn
+
+
+
+
+
+
+Class ThreadingMixIn
+
+Known Subclasses:
+
+ ThreadingMixIn
+
+
+
+Mix-in class to handle each request in a new thread.
+
+
+
+
+
+
+ Method Summary
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Start a new thread to process the request.
+
+ process_request_thread
(self ,
+ request ,
+ client_address )
+
+Same as in BaseServer but as a thread.
+
+
+
+
+
+
+
+
+
+
+
+
+ process_request (self ,
+ request ,
+ client_address )
+
+ Start a new thread to process the request.
+
+
+
+
+
+
+ process_request_thread (self ,
+ request ,
+ client_address )
+
+ Same as in BaseServer but as a thread.
+ In addition, exception handling is done here.
+
+
+
+
+
+
+
+
+
+ Class Variable Details
+
+
+
+daemon_threads
+
+
+
+
+ Type:
+
+ bool
+
+
+ Value:
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/SocketServer.UDPServer-class.html b/apps/sam/python/doc/epydoc/html/private/SocketServer.UDPServer-class.html
new file mode 100644
index 000000000..95caa78db
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/SocketServer.UDPServer-class.html
@@ -0,0 +1,288 @@
+
+
+
+
+ SocketServer.UDPServer
+
+
+
+
+
+
+
+
+
+
+ Module SocketServer ::
+ Class UDPServer
+
+
+
+
+
+
+Class UDPServer
+
+
+BaseServer
--+
+ |
+ TCPServer
--+
+ |
+ UDPServer
+
+
+Known Subclasses:
+
+ UDPServer
+
+
+
+UDP server class.
+
+
+
+
+
+
+ Method Summary
+
+ close_request
(self ,
+ request )
+
+Called to clean up an individual request.
+
+ get_request
(self )
+
+Get the request and client address from the socket.
+
+ server_activate
(self )
+
+Called by constructor to activate the server.
+
+ Inherited from TCPServer
+
+ __init__
(self ,
+ server_address ,
+ RequestHandlerClass )
+
+Constructor.
+
+ fileno
(self )
+
+Return socket file number.
+
+ server_bind
(self )
+
+Called by constructor to bind the socket.
+
+ server_close
(self )
+
+Called to clean-up the server.
+
+ Inherited from BaseServer
+
+ finish_request
(self ,
+ request ,
+ client_address )
+
+Finish one request by instantiating RequestHandlerClass.
+
+ handle_error
(self ,
+ request ,
+ client_address )
+
+Handle an error gracefully.
+
+ handle_request
(self )
+
+Handle one request, possibly blocking.
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Call finish_request.
+
+ serve_forever
(self )
+
+Handle one request at a time until doomsday.
+
+ verify_request
(self ,
+ request ,
+ client_address )
+
+Verify the request.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ get_request (self )
+
+ Get the request and client address from the socket.
+ May be overridden.
+
+ Overrides:
+ SocketServer.TCPServer.get_request
(inherited documentation)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Variable Details
+
+
+
+allow_reuse_address
+
+
+
+
+ Type:
+
+ bool
+
+
+ Value:
+
+
+
+
+
+
+max_packet_size
+
+
+
+
+ Type:
+
+ int
+
+
+ Value:
+
+
+
+
+
+
+socket_type
+
+
+
+
+ Type:
+
+ int
+
+
+ Value:
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/epydoc.css b/apps/sam/python/doc/epydoc/html/private/epydoc.css
new file mode 100644
index 000000000..46080bd0d
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/epydoc.css
@@ -0,0 +1,100 @@
+
+/* Body color */
+body { background: #ffffff; color: #000000; }
+
+/* Tables */
+table.summary, table.details, table.index
+ { background: #e8f0f8; color: #000000; }
+tr.summary, tr.details, tr.index
+ { background: #70b0f0; color: #000000;
+ text-align: left; font-size: 120%; }
+tr.group { background: #c0e0f8; color: #000000;
+ text-align: left; font-size: 120%;
+ font-style: italic; }
+
+/* Documentation page titles */
+h2.module { margin-top: 0.2em; }
+h2.class { margin-top: 0.2em; }
+
+/* Headings */
+h1.heading { font-size: +140%; font-style: italic;
+ font-weight: bold; }
+h2.heading { font-size: +125%; font-style: italic;
+ font-weight: bold; }
+h3.heading { font-size: +110%; font-style: italic;
+ font-weight: normal; }
+
+/* Base tree */
+pre.base-tree { font-size: 80%; margin: 0; }
+
+/* Details Sections */
+table.func-details { background: #e8f0f8; color: #000000;
+ border: 2px groove #c0d0d0;
+ padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
+h3.func-detail { background: transparent; color: #000000;
+ margin: 0 0 1em 0; }
+
+table.var-details { background: #e8f0f8; color: #000000;
+ border: 2px groove #c0d0d0;
+ padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
+h3.var-details { background: transparent; color: #000000;
+ margin: 0 0 1em 0; }
+
+/* Function signatures */
+.sig { background: transparent; color: #000000;
+ font-weight: bold; }
+.sig-name { background: transparent; color: #006080; }
+.sig-arg, .sig-kwarg, .sig-vararg
+ { background: transparent; color: #008060; }
+.sig-default { background: transparent; color: #602000; }
+.summary-sig { background: transparent; color: #000000; }
+.summary-sig-name { background: transparent; color: #204080; }
+.summary-sig-arg, .summary-sig-kwarg, .summary-sig-vararg
+ { background: transparent; color: #008060; }
+
+/* Doctest blocks */
+.py-src { background: transparent; color: #000000; }
+.py-prompt { background: transparent; color: #005050;
+ font-weight: bold;}
+.py-string { background: transparent; color: #006030; }
+.py-comment { background: transparent; color: #003060; }
+.py-keyword { background: transparent; color: #600000; }
+.py-output { background: transparent; color: #404040; }
+pre.doctestblock { background: #f4faff; color: #000000;
+ padding: .5em; margin: 1em;
+ border: 1px solid #708890; }
+table pre.doctestblock
+ { background: #dce4ec; color: #000000;
+ padding: .5em; margin: 1em;
+ border: 1px solid #708890; }
+
+/* Variable values */
+pre.variable { background: #dce4ec; color: #000000;
+ padding: .5em; margin: 0;
+ border: 1px solid #708890; }
+.variable-linewrap { background: transparent; color: #604000; }
+.variable-ellipsis { background: transparent; color: #604000; }
+.variable-quote { background: transparent; color: #604000; }
+.re { background: transparent; color: #000000; }
+.re-char { background: transparent; color: #006030; }
+.re-op { background: transparent; color: #600000; }
+.re-group { background: transparent; color: #003060; }
+.re-ref { background: transparent; color: #404040; }
+
+/* Navigation bar */
+table.navbar { background: #a0c0ff; color: #0000ff;
+ border: 2px groove #c0d0d0; }
+th.navbar { background: #a0c0ff; color: #0000ff; }
+th.navselect { background: #70b0ff; color: #000000; }
+.nomargin { margin: 0; }
+
+/* Links */
+a:link { background: transparent; color: #0000ff; }
+a:visited { background: transparent; color: #204080; }
+a.navbar:link { background: transparent; color: #0000ff;
+ text-decoration: none; }
+a.navbar:visited { background: transparent; color: #204080;
+ text-decoration: none; }
+
+/* Lists */
+ul { margin-top: 0; }
diff --git a/apps/sam/python/doc/epydoc/html/private/exceptions.Exception-class.html b/apps/sam/python/doc/epydoc/html/private/exceptions.Exception-class.html
new file mode 100644
index 000000000..5cc7c805f
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/exceptions.Exception-class.html
@@ -0,0 +1,84 @@
+
+
+
+
+ exceptions.Exception
+
+
+
+
+
+
+
+
+
+
+ Module exceptions ::
+ Class Exception
+
+
+
+
+
+
+Class Exception
+
+Known Subclasses:
+
+ Error
+
+
+
+Common base class for all exceptions.
+
+
+
+
+
+
+ Method Summary
+
+ __init__ (... )
+
+
+ __getitem__ (... )
+
+
+ __str__ (... )
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/frames.html b/apps/sam/python/doc/epydoc/html/private/frames.html
new file mode 100644
index 000000000..a4d252f7b
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/frames.html
@@ -0,0 +1,13 @@
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/help.html b/apps/sam/python/doc/epydoc/html/private/help.html
new file mode 100644
index 000000000..0c93fe3d0
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/help.html
@@ -0,0 +1,224 @@
+
+
+
+
+ Help
+
+
+
+
+
+
+
+
+ API Documentation
+
+ This document contains the API (Application Programming Interface)
+documentation for this project. Documentation for the Python
+objects defined by the project is divided into separate pages for each
+package, module, and class. The API documentation also includes two
+pages containing information about the project as a whole: a trees
+page, and an index page.
+
+ Object Documentation
+
+ Each Package Documentation page contains:
+
+ A description of the package.
+ A list of the modules and sub-packages contained by the
+ package.
+ A summary of the classes defined by the package.
+ A summary of the functions defined by the package.
+ A summary of the variables defined by the package.
+ A detailed description of each function defined by the
+ package.
+ A detailed description of each variable defined by the
+ package.
+
+
+ Each Module Documentation page contains:
+
+ A description of the module.
+ A summary of the classes defined by the module.
+ A summary of the functions defined by the module.
+ A summary of the variables defined by the module.
+ A detailed description of each function defined by the
+ module.
+ A detailed description of each variable defined by the
+ module.
+
+
+ Each Class Documentation page contains:
+
+ A class inheritance diagram.
+ A list of known subclasses.
+ A description of the class.
+ A summary of the methods defined by the class.
+ A summary of the instance variables defined by the class.
+ A summary of the class (static) variables defined by the
+ class.
+ A detailed description of each method defined by the
+ class.
+ A detailed description of each instance variable defined by the
+ class.
+ A detailed description of each class (static) variable defined
+ by the class.
+
+
+ Project Documentation
+
+ The Trees page contains the module and class hierarchies:
+
+ The module hierarchy lists every package and module, with
+ modules grouped into packages. At the top level, and within each
+ package, modules and sub-packages are listed alphabetically.
+ The class hierarchy lists every class, grouped by base
+ class. If a class has more than one base class, then it will be
+ listed under each base class. At the top level, and under each base
+ class, classes are listed alphabetically.
+
+
+ The Index page contains indices of terms and
+ identifiers:
+
+ The term index lists every term indexed by any object's
+ documentation. For each term, the index provides links to each
+ place where the term is indexed.
+ The identifier index lists the (short) name of every package,
+ module, class, method, function, variable, and parameter. For each
+ identifier, the index provides a short description, and a link to
+ its documentation.
+
+
+ The Table of Contents
+
+ The table of contents occupies the two frames on the left side of
+the window. The upper-left frame displays the project
+contents , and the lower-left frame displays the module
+contents :
+
+
+
+
+
+ Project Contents ...
+
+ API Documentation Frame
+
+
+
+
+ Module Contents ...
+
+
+
+
+
+ The project contents frame contains a list of all packages
+and modules that are defined by the project. Clicking on an entry
+will display its contents in the module contents frame. Clicking on a
+special entry, labeled "Everything," will display the contents of
+the entire project.
+
+ The module contents frame contains a list of every
+submodule, class, type, exception, function, and variable defined by a
+module or package. Clicking on an entry will display its
+documentation in the API documentation frame. Clicking on the name of
+the module, at the top of the frame, will display the documentation
+for the module itself.
+
+ The "frames " and "no frames " buttons below the top
+navigation bar can be used to control whether the table of contents is
+displayed or not.
+
+ The Navigation Bar
+
+ A navigation bar is located at the top and bottom of every page.
+It indicates what type of page you are currently viewing, and allows
+you to go to related pages. The following table describes the labels
+on the navigation bar. Note that not some labels (such as
+[Parent]) are not displayed on all pages.
+
+
+
+ Label
+ Highlighted when...
+ Links to...
+
+ [Parent]
+ (never highlighted)
+ the parent of the current package
+ [Package]
+ viewing a package
+ the package containing the current object
+
+ [Module]
+ viewing a module
+ the module containing the current object
+
+ [Class]
+ viewing a class
+ the class containing the current object
+ [Trees]
+ viewing the trees page
+ the trees page
+ [Index]
+ viewing the index page
+ the index page
+ [Help]
+ viewing the help page
+ the help page
+
+
+ The "show private " and "hide private " buttons below
+the top navigation bar can be used to control whether documentation
+for private objects is displayed. Private objects are usually defined
+as objects whose (short) names begin with a single underscore, but do
+not end with an underscore. For example, "_x
",
+"__pprint
", and "epydoc.epytext._tokenize
"
+are private objects; but "re.sub
",
+"__init__
", and "type_
" are not. However,
+if a module defines the "__all__
" variable, then its
+contents are used to decide which objects are private.
+
+ A timestamp below the bottom navigation bar indicates when each
+page was last updated.
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p-module.html b/apps/sam/python/doc/epydoc/html/private/i2p-module.html
new file mode 100644
index 000000000..9339ebdc0
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p-module.html
@@ -0,0 +1,93 @@
+
+
+
+
+ i2p
+
+
+
+
+
+
+
+
+
+
+ Package i2p
+
+
+
+
+
+
+Package i2p
+
+i2p -- I2P Python interface
+
+
+
+
+
+ Submodules
+
+ BaseHTTPServer
: Emulation of Python BaseHTTPServer module using I2P sockets.
+ CGIHTTPServer
: Emulation of Python CGIHTTPServer module using I2P sockets.
+ eep
: Eeproxy access module
+ router
: Router control module
+ select
: I2P Python API - Emulation of Python select module.
+ SimpleHTTPServer
: Emulation of Python SimpleHTTPServer module using I2P sockets.
+ socket
: Emulation of Python socket module using SAM.
+ SocketServer
: Emulation of Python SocketServer module using I2P sockets.
+ tunnel
: Exchange data between I2P and regular TCP sockets.
+ pylib
+ samclasses
: Lower-level SAM API, interfaces with SAM Bridge.
+
+
+
+
+
+
+
+ Exceptions
+
+ Error
+ Base class for all I2P errors.
+
+ RouterError
+ Could not connect to router.
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.BaseHTTPServer-module.html b/apps/sam/python/doc/epydoc/html/private/i2p.BaseHTTPServer-module.html
new file mode 100644
index 000000000..60c6bb3a9
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.BaseHTTPServer-module.html
@@ -0,0 +1,200 @@
+
+
+
+
+ i2p.BaseHTTPServer
+
+
+
+
+
+
+
+
+
+Module i2p.BaseHTTPServer
+
+Emulation of Python BaseHTTPServer module using I2P sockets.
+The Python module is described at
+http://www.python.org/doc/current/lib/module-BaseHTTPServer.html
+To get a server going, use:
+
+>>> from i2p import BaseHTTPServer
+>>> BaseHTTPServer.test().
+Consult the documentation for function test() to change basic server
+settings, such as the session name.
+A fully customizable example:
+
+>>> from i2p import BaseHTTPServer
+>>> session = "mytestxxx.i2p"
+>>> class MyServer(BaseHTTPServer.HTTPServer): pass
+>>> class MyRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): pass
+>>> httpd = MyServer(session, MyRequestHandler)
+>>> httpd.socket.dest
+(Base64 Destination of server)
+
+>>> httpd.serve_forever()
+
+
+
+
+
+ Classes
+
+ BaseHTTPRequestHandler
+ Same interface as Python class
+BaseHTTPServer.BaseHTTPRequestHandler.
+
+ HTTPServer
+ Same interface as Python class BaseHTTPServer.HTTPServer.
+
+
+
+
+
+
+ Function Summary
+
+ test
(HandlerClass ,
+ ServerClass ,
+ protocol ,
+ session )
+
+Test the HTTP request handler class.
+
+
+
+
+
+
+
+
+
+
+
+
+ test (HandlerClass =<class i2p.BaseHTTPServer.BaseHTTPRequestHandler at 0x00A... ,
+ ServerClass =<class i2p.BaseHTTPServer.HTTPServer at 0x00A2D960> ,
+ protocol ='HTTP/1.0' ,
+ session ='mytestxxx.i2p' )
+
+ Test the HTTP request handler class.
+ This runs an I2P TCP server under SAM session 'session'. If a single
+ command line argument is given, the argument is used instead as the SAM
+ session name.
+
+
+
+
+
+
+
+
+
+
+__version__
+
+
+
+
+ Type:
+
+ str
+
+
+ Value:
+
+
+
+
+
+
+DEFAULT_ERROR_MESSAGE
+
+
+
+
+ Type:
+
+ str
+
+
+ Value:
+
+
+''' <head>
+<title>Error response</title>
+</head>
+<body>
+<h1>Error response</h1>
+<p>Error code %(code)d.
+<p>Message: %(message)s.
+<p>Error code explanation: %(code)s = %(explain)s.
+...
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.BaseHTTPServer.BaseHTTPRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.BaseHTTPServer.BaseHTTPRequestHandler-class.html
new file mode 100644
index 000000000..b143bbe12
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.BaseHTTPServer.BaseHTTPRequestHandler-class.html
@@ -0,0 +1,210 @@
+
+
+
+
+ i2p.BaseHTTPServer.BaseHTTPRequestHandler
+
+
+
+
+
+
+
+
+
+Class BaseHTTPRequestHandler
+
+
+BaseRequestHandler
--+
+ |
+ StreamRequestHandler
--+
+ |
+ BaseHTTPRequestHandler
--+
+ |
+BaseRequestHandler
--+ |
+ | |
+ StreamRequestHandler
--+ |
+ | |
+ StreamRequestHandler
--+
+ |
+ BaseHTTPRequestHandler
+
+
+
+
+Same interface as Python class
+BaseHTTPServer.BaseHTTPRequestHandler.
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from BaseHTTPRequestHandler
+
+ address_string
(self )
+
+Return the client address formatted for logging.
+
+ date_time_string
(self )
+
+Return the current date and time formatted for a message header.
+
+ end_headers
(self )
+
+Send the blank line ending the MIME headers.
+
+ handle
(self )
+
+Handle multiple requests if necessary.
+
+ handle_one_request
(self )
+
+Handle a single HTTP request.
+
+ log_date_time_string
(self )
+
+Return the current time formatted for logging.
+
+ log_error
(self ,
+ *args )
+
+Log an error.
+
+ log_message
(self ,
+ format ,
+ *args )
+
+Log an arbitrary message.
+
+ log_request
(self ,
+ code ,
+ size )
+
+Log an accepted request.
+
+ parse_request
(self )
+
+Parse a request (internal).
+
+ send_error
(self ,
+ code ,
+ message )
+
+Send and log an error reply.
+
+ send_header
(self ,
+ keyword ,
+ value )
+
+Send a MIME header.
+
+ send_response
(self ,
+ code ,
+ message )
+
+Send the response header and log the response code.
+
+ version_string
(self )
+
+Return the server software version string.
+
+ Inherited from StreamRequestHandler
+
+ finish
(self )
+
+
+ setup
(self )
+
+
+ Inherited from BaseRequestHandler
+
+ __init__
(self ,
+ request ,
+ client_address ,
+ server )
+
+
+
+
+
+
+
+ Class Variable Summary
+
+ Inherited from BaseHTTPRequestHandler
+str
+error_message_format
= ' <head>\n<title>Error response</t...
+
+list
+monthname
= [None, 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'J...
+
+str
+protocol_version
= ' HTTP/1.0'
+
+dict
+responses
= {400: ('Bad request', 'Bad request syntax or...
+
+str
+server_version
= ' BaseHTTP/0.3'
+
+str
+sys_version
= ' Python/2.3.4'
+
+list
+weekdayname
= ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat',...
+
+
+ Inherited from StreamRequestHandler
+int
+rbufsize
= -1
+int
+wbufsize
= 0
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.BaseHTTPServer.HTTPServer-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.BaseHTTPServer.HTTPServer-class.html
new file mode 100644
index 000000000..1b84e7135
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.BaseHTTPServer.HTTPServer-class.html
@@ -0,0 +1,184 @@
+
+
+
+
+ i2p.BaseHTTPServer.HTTPServer
+
+
+
+
+
+
+
+
+
+Class HTTPServer
+
+
+BaseServer
--+
+ |
+ TCPServer
--+
+ |
+ HTTPServer
--+
+ |
+BaseServer
--+ |
+ | |
+ BaseServer
--+ |
+ | |
+BaseServer
--+ | |
+ | | |
+ TCPServer
--+ |
+ | |
+ TCPServer
--+
+ |
+ HTTPServer
+
+
+
+
+Same interface as Python class BaseHTTPServer.HTTPServer.
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from TCPServer
+
+ __init__
(self ,
+ session ,
+ RequestHandlerClass )
+
+Constructor.
+
+ Inherited from HTTPServer
+
+ server_bind
(self )
+
+Override server_bind to store the server name.
+
+ Inherited from TCPServer
+
+ close_request
(self ,
+ request )
+
+Called to clean up an individual request.
+
+ fileno
(self )
+
+Return socket file number.
+
+ get_request
(self )
+
+Get the request and client address from the socket.
+
+ server_activate
(self )
+
+Called by constructor to activate the server.
+
+ server_close
(self )
+
+Called to clean-up the server.
+
+ Inherited from BaseServer
+
+ finish_request
(self ,
+ request ,
+ client_address )
+
+Finish one request by instantiating RequestHandlerClass.
+
+ handle_error
(self ,
+ request ,
+ client_address )
+
+Handle an error gracefully.
+
+ handle_request
(self )
+
+Handle one request, possibly blocking.
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Call finish_request.
+
+ serve_forever
(self )
+
+Handle one request at a time until doomsday.
+
+ verify_request
(self ,
+ request ,
+ client_address )
+
+Verify the request.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.CGIHTTPServer-module.html b/apps/sam/python/doc/epydoc/html/private/i2p.CGIHTTPServer-module.html
new file mode 100644
index 000000000..4fdcf0dd8
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.CGIHTTPServer-module.html
@@ -0,0 +1,126 @@
+
+
+
+
+ i2p.CGIHTTPServer
+
+
+
+
+
+
+
+
+
+Module i2p.CGIHTTPServer
+
+Emulation of Python CGIHTTPServer module using I2P sockets.
+The Python module is described at
+http://www.python.org/doc/current/lib/module-CGIHTTPServer.html
+To get a server going, use:
+
+>>> from i2p import CGIHTTPServer
+>>> CGIHTTPServer.test().
+Consult the documentation for function test() to change basic server
+settings, such as the session name.
+A fully customizable example:
+
+>>> from i2p import BaseHTTPServer, CGIHTTPServer
+>>> session = "mytestxxx.i2p"
+>>> class MyServer(BaseHTTPServer.HTTPServer): pass
+>>> class MyRequestHandler(CGIHTTPServer.CGIHTTPRequestHandler): pass
+>>> httpd = MyServer(session, MyRequestHandler)
+>>> httpd.socket.dest
+(Base64 Destination of server)
+
+>>> httpd.serve_forever()
+
+
+
+
+
+ Classes
+
+ CGIHTTPRequestHandler
+ Same interface as Python class
+CGIHTTPServer.CGIHTTPRequestHandler.
+
+
+
+
+
+
+ Function Summary
+
+ test
(HandlerClass ,
+ ServerClass ,
+ session )
+
+Test the HTTP CGI request handler class.
+
+
+
+
+
+
+
+
+ test (HandlerClass =<class i2p.CGIHTTPServer.CGIHTTPRequestHandler at 0x00A2D... ,
+ ServerClass =<class i2p.BaseHTTPServer.HTTPServer at 0x00A2D960> ,
+ session ='mytestxxx.i2p' )
+
+ Test the HTTP CGI request handler class.
+ This runs an I2P TCP server under SAM session 'session'. If a single
+ command line argument is given, the argument is used instead as the SAM
+ session name.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.CGIHTTPServer.CGIHTTPRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.CGIHTTPServer.CGIHTTPRequestHandler-class.html
new file mode 100644
index 000000000..107f5c44e
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.CGIHTTPServer.CGIHTTPRequestHandler-class.html
@@ -0,0 +1,286 @@
+
+
+
+
+ i2p.CGIHTTPServer.CGIHTTPRequestHandler
+
+
+
+
+
+
+
+
+
+Class CGIHTTPRequestHandler
+
+
+BaseRequestHandler
--+
+ |
+ StreamRequestHandler
--+
+ |
+ BaseHTTPRequestHandler
--+
+ |
+ SimpleHTTPRequestHandler
--+
+ |
+ CGIHTTPRequestHandler
--+
+ |
+ CGIHTTPRequestHandler
+
+
+
+
+Same interface as Python class
+CGIHTTPServer.CGIHTTPRequestHandler.
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from CGIHTTPRequestHandler
+
+ do_POST
(self )
+
+Serve a POST request.
+
+ is_cgi
(self )
+
+Test whether self.path corresponds to a CGI script.
+
+ is_executable
(self ,
+ path )
+
+Test whether argument path is an executable file.
+
+ is_python
(self ,
+ path )
+
+Test whether argument path is a Python script.
+
+ run_cgi
(self )
+
+Execute a CGI script.
+
+ send_head
(self )
+
+Version of send_head that support CGI scripts
+
+ Inherited from SimpleHTTPRequestHandler
+
+ copyfile
(self ,
+ source ,
+ outputfile )
+
+Copy all data between two file objects.
+
+ do_GET
(self )
+
+Serve a GET request.
+
+ do_HEAD
(self )
+
+Serve a HEAD request.
+
+ guess_type
(self ,
+ path )
+
+Guess the type of a file.
+
+ list_directory
(self ,
+ path )
+
+Helper to produce a directory listing (absent index.html).
+
+ translate_path
(self ,
+ path )
+
+Translate a /-separated PATH to the local filename syntax.
+
+ Inherited from BaseHTTPRequestHandler
+
+ address_string
(self )
+
+Return the client address formatted for logging.
+
+ date_time_string
(self )
+
+Return the current date and time formatted for a message header.
+
+ end_headers
(self )
+
+Send the blank line ending the MIME headers.
+
+ handle
(self )
+
+Handle multiple requests if necessary.
+
+ handle_one_request
(self )
+
+Handle a single HTTP request.
+
+ log_date_time_string
(self )
+
+Return the current time formatted for logging.
+
+ log_error
(self ,
+ *args )
+
+Log an error.
+
+ log_message
(self ,
+ format ,
+ *args )
+
+Log an arbitrary message.
+
+ log_request
(self ,
+ code ,
+ size )
+
+Log an accepted request.
+
+ parse_request
(self )
+
+Parse a request (internal).
+
+ send_error
(self ,
+ code ,
+ message )
+
+Send and log an error reply.
+
+ send_header
(self ,
+ keyword ,
+ value )
+
+Send a MIME header.
+
+ send_response
(self ,
+ code ,
+ message )
+
+Send the response header and log the response code.
+
+ version_string
(self )
+
+Return the server software version string.
+
+ Inherited from StreamRequestHandler
+
+ finish
(self )
+
+
+ setup
(self )
+
+
+ Inherited from BaseRequestHandler
+
+ __init__
(self ,
+ request ,
+ client_address ,
+ server )
+
+
+
+
+
+
+
+ Class Variable Summary
+
+ Inherited from CGIHTTPRequestHandler
+list
+cgi_directories
= ['/cgi-bin', '/htbin']
+
+bool
+have_fork
= False
+
+bool
+have_popen2
= True
+
+bool
+have_popen3
= True
+
+int
+rbufsize
= 0
+
+ Inherited from SimpleHTTPRequestHandler
+dict
+extensions_map
= {'': 'application/octet-stream', '.obj'...
+
+str
+server_version
= ' SimpleHTTP/0.6'
+
+
+ Inherited from BaseHTTPRequestHandler
+str
+error_message_format
= ' <head>\n<title>Error response</t...
+
+list
+monthname
= [None, 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'J...
+
+str
+protocol_version
= ' HTTP/1.0'
+
+dict
+responses
= {400: ('Bad request', 'Bad request syntax or...
+
+str
+sys_version
= ' Python/2.3.4'
+
+list
+weekdayname
= ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat',...
+
+
+ Inherited from StreamRequestHandler
+int
+wbufsize
= 0
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.Error-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.Error-class.html
new file mode 100644
index 000000000..f11d26b88
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.Error-class.html
@@ -0,0 +1,93 @@
+
+
+
+
+ i2p.Error
+
+
+
+
+
+
+
+
+
+Class Error
+
+
+Exception
--+
+ |
+ Error
+
+
+Known Subclasses:
+
+ Error
,
+ RouterError
+
+
+
+Base class for all I2P errors.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.RouterError-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.RouterError-class.html
new file mode 100644
index 000000000..5a2a14cec
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.RouterError-class.html
@@ -0,0 +1,90 @@
+
+
+
+
+ i2p.RouterError
+
+
+
+
+
+
+
+
+
+Class RouterError
+
+
+Exception
--+
+ |
+ Error
--+
+ |
+ RouterError
+
+
+
+
+Could not connect to router.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.SimpleHTTPServer-module.html b/apps/sam/python/doc/epydoc/html/private/i2p.SimpleHTTPServer-module.html
new file mode 100644
index 000000000..fdaf6ba75
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.SimpleHTTPServer-module.html
@@ -0,0 +1,164 @@
+
+
+
+
+ i2p.SimpleHTTPServer
+
+
+
+
+
+
+
+
+
+
+ Package i2p ::
+ Module SimpleHTTPServer
+
+
+
+
+
+
+Module i2p.SimpleHTTPServer
+
+Emulation of Python SimpleHTTPServer module using I2P sockets.
+The Python module is described at
+http://www.python.org/doc/current/lib/module-SimpleHTTPServer.html
+To get a server going, use:
+
+>>> from i2p import SimpleHTTPServer
+>>> SimpleHTTPServer.test().
+Consult the documentation for function test() to change basic server
+settings, such as the session name.
+A fully customizable example:
+
+>>> from i2p import BaseHTTPServer, SimpleHTTPServer
+>>> session = "mytestxxx.i2p"
+>>> class MyServer(BaseHTTPServer.HTTPServer): pass
+>>> class MyRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): pass
+>>> httpd = MyServer(session, MyRequestHandler)
+>>> httpd.socket.dest
+(Base64 Destination of server)
+
+>>> httpd.serve_forever()
+
+
+
+
+
+
+
+
+
+ Function Summary
+
+ test
(HandlerClass ,
+ ServerClass ,
+ session )
+
+Test the HTTP simple request handler class.
+
+
+
+
+
+
+
+
+
+
+
+
+ test (HandlerClass =<class i2p.SimpleHTTPServer.SimpleHTTPRequestHandler at 0... ,
+ ServerClass =<class i2p.BaseHTTPServer.HTTPServer at 0x00A2D960> ,
+ session ='mytestxxx.i2p' )
+
+ Test the HTTP simple request handler class.
+ This runs an I2P TCP server under SAM session 'session'. If a single
+ command line argument is given, the argument is used instead as the SAM
+ session name.
+
+
+
+
+
+
+
+
+
+
+__version__
+
+
+
+
+ Type:
+
+ str
+
+
+ Value:
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.SimpleHTTPServer.SimpleHTTPRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.SimpleHTTPServer.SimpleHTTPRequestHandler-class.html
new file mode 100644
index 000000000..48815c4d4
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.SimpleHTTPServer.SimpleHTTPRequestHandler-class.html
@@ -0,0 +1,246 @@
+
+
+
+
+ i2p.SimpleHTTPServer.SimpleHTTPRequestHandler
+
+
+
+
+
+
+
+
+
+Class SimpleHTTPRequestHandler
+
+
+BaseRequestHandler
--+
+ |
+ StreamRequestHandler
--+
+ |
+ BaseHTTPRequestHandler
--+
+ |
+ SimpleHTTPRequestHandler
--+
+ |
+ SimpleHTTPRequestHandler
+
+
+
+
+Same interface as Python class
+SimpleHTTPServer.SimpleHTTPRequestHandler.
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from SimpleHTTPRequestHandler
+
+ copyfile
(self ,
+ source ,
+ outputfile )
+
+Copy all data between two file objects.
+
+ do_GET
(self )
+
+Serve a GET request.
+
+ do_HEAD
(self )
+
+Serve a HEAD request.
+
+ guess_type
(self ,
+ path )
+
+Guess the type of a file.
+
+ list_directory
(self ,
+ path )
+
+Helper to produce a directory listing (absent index.html).
+
+ send_head
(self )
+
+Common code for GET and HEAD commands.
+
+ translate_path
(self ,
+ path )
+
+Translate a /-separated PATH to the local filename syntax.
+
+ Inherited from BaseHTTPRequestHandler
+
+ address_string
(self )
+
+Return the client address formatted for logging.
+
+ date_time_string
(self )
+
+Return the current date and time formatted for a message header.
+
+ end_headers
(self )
+
+Send the blank line ending the MIME headers.
+
+ handle
(self )
+
+Handle multiple requests if necessary.
+
+ handle_one_request
(self )
+
+Handle a single HTTP request.
+
+ log_date_time_string
(self )
+
+Return the current time formatted for logging.
+
+ log_error
(self ,
+ *args )
+
+Log an error.
+
+ log_message
(self ,
+ format ,
+ *args )
+
+Log an arbitrary message.
+
+ log_request
(self ,
+ code ,
+ size )
+
+Log an accepted request.
+
+ parse_request
(self )
+
+Parse a request (internal).
+
+ send_error
(self ,
+ code ,
+ message )
+
+Send and log an error reply.
+
+ send_header
(self ,
+ keyword ,
+ value )
+
+Send a MIME header.
+
+ send_response
(self ,
+ code ,
+ message )
+
+Send the response header and log the response code.
+
+ version_string
(self )
+
+Return the server software version string.
+
+ Inherited from StreamRequestHandler
+
+ finish
(self )
+
+
+ setup
(self )
+
+
+ Inherited from BaseRequestHandler
+
+ __init__
(self ,
+ request ,
+ client_address ,
+ server )
+
+
+
+
+
+
+
+ Class Variable Summary
+
+ Inherited from SimpleHTTPRequestHandler
+dict
+extensions_map
= {'': 'application/octet-stream', '.obj'...
+
+str
+server_version
= ' SimpleHTTP/0.6'
+
+
+ Inherited from BaseHTTPRequestHandler
+str
+error_message_format
= ' <head>\n<title>Error response</t...
+
+list
+monthname
= [None, 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'J...
+
+str
+protocol_version
= ' HTTP/1.0'
+
+dict
+responses
= {400: ('Bad request', 'Bad request syntax or...
+
+str
+sys_version
= ' Python/2.3.4'
+
+list
+weekdayname
= ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat',...
+
+
+ Inherited from StreamRequestHandler
+int
+rbufsize
= -1
+int
+wbufsize
= 0
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer-module.html b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer-module.html
new file mode 100644
index 000000000..ee32dd87b
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer-module.html
@@ -0,0 +1,106 @@
+
+
+
+
+ i2p.SocketServer
+
+
+
+
+
+
+
+
+
+Module i2p.SocketServer
+
+Emulation of Python SocketServer module using I2P sockets.
+The Python module is described at
+http://www.python.org/doc/current/lib/module-SocketServer.html
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.BaseRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.BaseRequestHandler-class.html
new file mode 100644
index 000000000..d76dbaf15
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.BaseRequestHandler-class.html
@@ -0,0 +1,92 @@
+
+
+
+
+ i2p.SocketServer.BaseRequestHandler
+
+
+
+
+
+
+
+
+
+Class BaseRequestHandler
+
+
+BaseRequestHandler
--+
+ |
+ BaseRequestHandler
+
+
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from BaseRequestHandler
+
+ __init__
(self ,
+ request ,
+ client_address ,
+ server )
+
+
+ finish
(self )
+
+
+ handle
(self )
+
+
+ setup
(self )
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.BaseServer-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.BaseServer-class.html
new file mode 100644
index 000000000..608408033
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.BaseServer-class.html
@@ -0,0 +1,132 @@
+
+
+
+
+ i2p.SocketServer.BaseServer
+
+
+
+
+
+
+
+
+
+Class BaseServer
+
+
+BaseServer
--+
+ |
+ BaseServer
+
+
+Known Subclasses:
+
+ TCPServer
+
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from BaseServer
+
+ __init__
(self ,
+ server_address ,
+ RequestHandlerClass )
+
+Constructor.
+
+ close_request
(self ,
+ request )
+
+Called to clean up an individual request.
+
+ finish_request
(self ,
+ request ,
+ client_address )
+
+Finish one request by instantiating RequestHandlerClass.
+
+ handle_error
(self ,
+ request ,
+ client_address )
+
+Handle an error gracefully.
+
+ handle_request
(self )
+
+Handle one request, possibly blocking.
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Call finish_request.
+
+ serve_forever
(self )
+
+Handle one request at a time until doomsday.
+
+ server_activate
(self )
+
+Called by constructor to activate the server.
+
+ server_close
(self )
+
+Called to clean-up the server.
+
+ verify_request
(self ,
+ request ,
+ client_address )
+
+Verify the request.
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.DatagramRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.DatagramRequestHandler-class.html
new file mode 100644
index 000000000..697be8918
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.DatagramRequestHandler-class.html
@@ -0,0 +1,96 @@
+
+
+
+
+ i2p.SocketServer.DatagramRequestHandler
+
+
+
+
+
+
+
+
+
+Class DatagramRequestHandler
+
+
+BaseRequestHandler
--+
+ |
+DatagramRequestHandler
--+
+ |
+ DatagramRequestHandler
+
+
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from DatagramRequestHandler
+
+ finish
(self )
+
+
+ setup
(self )
+
+
+ Inherited from BaseRequestHandler
+
+ __init__
(self ,
+ request ,
+ client_address ,
+ server )
+
+
+ handle
(self )
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ForkingMixIn-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ForkingMixIn-class.html
new file mode 100644
index 000000000..631f70f51
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ForkingMixIn-class.html
@@ -0,0 +1,105 @@
+
+
+
+
+ i2p.SocketServer.ForkingMixIn
+
+
+
+
+
+
+
+
+
+Class ForkingMixIn
+
+
+ForkingMixIn
--+
+ |
+ ForkingMixIn
+
+
+Known Subclasses:
+
+ ForkingTCPServer
,
+ ForkingUDPServer
+
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from ForkingMixIn
+
+ collect_children
(self )
+
+Internal routine to wait for died children.
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Fork a new subprocess to process the request.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ForkingTCPServer-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ForkingTCPServer-class.html
new file mode 100644
index 000000000..0d566e67f
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ForkingTCPServer-class.html
@@ -0,0 +1,188 @@
+
+
+
+
+ i2p.SocketServer.ForkingTCPServer
+
+
+
+
+
+
+
+
+
+Class ForkingTCPServer
+
+
+ ForkingMixIn
--+
+ |
+ ForkingMixIn
--+
+ |
+BaseServer
--+ |
+ | |
+ BaseServer
--+ |
+ | |
+BaseServer
--+ | |
+ | | |
+ TCPServer
--+ |
+ | |
+ TCPServer
--+
+ |
+ ForkingTCPServer
+
+
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from ForkingMixIn
+
+ collect_children
(self )
+
+Internal routine to wait for died children.
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Fork a new subprocess to process the request.
+
+ Inherited from TCPServer
+
+ __init__
(self ,
+ session ,
+ RequestHandlerClass )
+
+Constructor.
+
+ Inherited from TCPServer
+
+ close_request
(self ,
+ request )
+
+Called to clean up an individual request.
+
+ fileno
(self )
+
+Return socket file number.
+
+ get_request
(self )
+
+Get the request and client address from the socket.
+
+ server_activate
(self )
+
+Called by constructor to activate the server.
+
+ server_bind
(self )
+
+Called by constructor to bind the socket.
+
+ server_close
(self )
+
+Called to clean-up the server.
+
+ Inherited from BaseServer
+
+ finish_request
(self ,
+ request ,
+ client_address )
+
+Finish one request by instantiating RequestHandlerClass.
+
+ handle_error
(self ,
+ request ,
+ client_address )
+
+Handle an error gracefully.
+
+ handle_request
(self )
+
+Handle one request, possibly blocking.
+
+ serve_forever
(self )
+
+Handle one request at a time until doomsday.
+
+ verify_request
(self ,
+ request ,
+ client_address )
+
+Verify the request.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ForkingUDPServer-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ForkingUDPServer-class.html
new file mode 100644
index 000000000..173a933ed
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ForkingUDPServer-class.html
@@ -0,0 +1,202 @@
+
+
+
+
+ i2p.SocketServer.ForkingUDPServer
+
+
+
+
+
+
+
+
+
+Class ForkingUDPServer
+
+
+ ForkingMixIn
--+
+ |
+ ForkingMixIn
--+
+ |
+BaseServer
--+ |
+ | |
+ BaseServer
--+ |
+ | |
+BaseServer
--+ | |
+ | | |
+ TCPServer
--+ |
+ | |
+ TCPServer
--+ |
+ | |
+BaseServer
--+ | |
+ | | |
+ TCPServer
--+ | |
+ | | |
+ UDPServer
--+ |
+ | |
+ UDPServer
--+
+ |
+ ForkingUDPServer
+
+
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from ForkingMixIn
+
+ collect_children
(self )
+
+Internal routine to wait for died children.
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Fork a new subprocess to process the request.
+
+ Inherited from TCPServer
+
+ __init__
(self ,
+ session ,
+ RequestHandlerClass )
+
+Constructor.
+
+ Inherited from UDPServer
+
+ close_request
(self ,
+ request )
+
+Called to clean up an individual request.
+
+ get_request
(self )
+
+Get the request and client address from the socket.
+
+ server_activate
(self )
+
+Called by constructor to activate the server.
+
+ Inherited from TCPServer
+
+ fileno
(self )
+
+Return socket file number.
+
+ server_bind
(self )
+
+Called by constructor to bind the socket.
+
+ server_close
(self )
+
+Called to clean-up the server.
+
+ Inherited from BaseServer
+
+ finish_request
(self ,
+ request ,
+ client_address )
+
+Finish one request by instantiating RequestHandlerClass.
+
+ handle_error
(self ,
+ request ,
+ client_address )
+
+Handle an error gracefully.
+
+ handle_request
(self )
+
+Handle one request, possibly blocking.
+
+ serve_forever
(self )
+
+Handle one request at a time until doomsday.
+
+ verify_request
(self ,
+ request ,
+ client_address )
+
+Verify the request.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.StreamRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.StreamRequestHandler-class.html
new file mode 100644
index 000000000..7be5ca794
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.StreamRequestHandler-class.html
@@ -0,0 +1,113 @@
+
+
+
+
+ i2p.SocketServer.StreamRequestHandler
+
+
+
+
+
+
+
+
+
+Class StreamRequestHandler
+
+
+BaseRequestHandler
--+
+ |
+ StreamRequestHandler
--+
+ |
+ StreamRequestHandler
+
+
+Known Subclasses:
+
+ BaseHTTPRequestHandler
+
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from StreamRequestHandler
+
+ finish
(self )
+
+
+ setup
(self )
+
+
+ Inherited from BaseRequestHandler
+
+ __init__
(self ,
+ request ,
+ client_address ,
+ server )
+
+
+ handle
(self )
+
+
+
+
+
+
+
+ Class Variable Summary
+
+ Inherited from StreamRequestHandler
+int
+rbufsize
= -1
+int
+wbufsize
= 0
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.TCPServer-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.TCPServer-class.html
new file mode 100644
index 000000000..810f73ddd
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.TCPServer-class.html
@@ -0,0 +1,227 @@
+
+
+
+
+ i2p.SocketServer.TCPServer
+
+
+
+
+
+
+
+
+
+Class TCPServer
+
+
+BaseServer
--+
+ |
+ BaseServer
--+
+ |
+BaseServer
--+ |
+ | |
+ TCPServer
--+
+ |
+ TCPServer
+
+
+Known Subclasses:
+
+ ForkingTCPServer
,
+ HTTPServer
,
+ ThreadingTCPServer
,
+ UDPServer
+
+
+
+
+
+
+
+ Method Summary
+
+ __init__
(self ,
+ session ,
+ RequestHandlerClass )
+
+Constructor.
+
+ Inherited from TCPServer
+
+ close_request
(self ,
+ request )
+
+Called to clean up an individual request.
+
+ fileno
(self )
+
+Return socket file number.
+
+ get_request
(self )
+
+Get the request and client address from the socket.
+
+ server_activate
(self )
+
+Called by constructor to activate the server.
+
+ server_bind
(self )
+
+Called by constructor to bind the socket.
+
+ server_close
(self )
+
+Called to clean-up the server.
+
+ Inherited from BaseServer
+
+ finish_request
(self ,
+ request ,
+ client_address )
+
+Finish one request by instantiating RequestHandlerClass.
+
+ handle_error
(self ,
+ request ,
+ client_address )
+
+Handle an error gracefully.
+
+ handle_request
(self )
+
+Handle one request, possibly blocking.
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Call finish_request.
+
+ serve_forever
(self )
+
+Handle one request at a time until doomsday.
+
+ verify_request
(self ,
+ request ,
+ client_address )
+
+Verify the request.
+
+
+
+
+
+
+
+
+
+
+
+
+ __init__ (self ,
+ session ,
+ RequestHandlerClass )
+ (Constructor)
+
+ Constructor. May be extended, do not override.
+ The 'session' argument indicates the SAM session name that should be
+ used for the server. See module i2p.socket for details on SAM
+ sessions.
+
+ Overrides:
+ SocketServer.TCPServer.__init__
+
+
+
+
+
+
+
+
+
+ Class Variable Details
+
+
+
+socket_type
+
+
+
+
+ Type:
+
+ int
+
+
+ Value:
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ThreadingMixIn-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ThreadingMixIn-class.html
new file mode 100644
index 000000000..bd0c75e75
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ThreadingMixIn-class.html
@@ -0,0 +1,106 @@
+
+
+
+
+ i2p.SocketServer.ThreadingMixIn
+
+
+
+
+
+
+
+
+
+Class ThreadingMixIn
+
+
+ThreadingMixIn
--+
+ |
+ ThreadingMixIn
+
+
+Known Subclasses:
+
+ ThreadingTCPServer
,
+ ThreadingUDPServer
+
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from ThreadingMixIn
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Start a new thread to process the request.
+
+ process_request_thread
(self ,
+ request ,
+ client_address )
+
+Same as in BaseServer but as a thread.
+
+
+
+
+
+
+ Class Variable Summary
+
+ Inherited from ThreadingMixIn
+bool
+daemon_threads
= False
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ThreadingTCPServer-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ThreadingTCPServer-class.html
new file mode 100644
index 000000000..cf029f71a
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ThreadingTCPServer-class.html
@@ -0,0 +1,189 @@
+
+
+
+
+ i2p.SocketServer.ThreadingTCPServer
+
+
+
+
+
+
+
+
+
+Class ThreadingTCPServer
+
+
+BaseServer
--+
+ |
+ BaseServer
--+
+ |
+BaseServer
--+ |
+ | |
+ TCPServer
--+
+ |
+ TCPServer
--+
+ |
+ThreadingMixIn
--+ |
+ | |
+ ThreadingMixIn
--+
+ |
+ ThreadingTCPServer
+
+
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from ThreadingMixIn
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Start a new thread to process the request.
+
+ process_request_thread
(self ,
+ request ,
+ client_address )
+
+Same as in BaseServer but as a thread.
+
+ Inherited from TCPServer
+
+ __init__
(self ,
+ session ,
+ RequestHandlerClass )
+
+Constructor.
+
+ Inherited from TCPServer
+
+ close_request
(self ,
+ request )
+
+Called to clean up an individual request.
+
+ fileno
(self )
+
+Return socket file number.
+
+ get_request
(self )
+
+Get the request and client address from the socket.
+
+ server_activate
(self )
+
+Called by constructor to activate the server.
+
+ server_bind
(self )
+
+Called by constructor to bind the socket.
+
+ server_close
(self )
+
+Called to clean-up the server.
+
+ Inherited from BaseServer
+
+ finish_request
(self ,
+ request ,
+ client_address )
+
+Finish one request by instantiating RequestHandlerClass.
+
+ handle_error
(self ,
+ request ,
+ client_address )
+
+Handle an error gracefully.
+
+ handle_request
(self )
+
+Handle one request, possibly blocking.
+
+ serve_forever
(self )
+
+Handle one request at a time until doomsday.
+
+ verify_request
(self ,
+ request ,
+ client_address )
+
+Verify the request.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ThreadingUDPServer-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ThreadingUDPServer-class.html
new file mode 100644
index 000000000..a2eecae84
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.ThreadingUDPServer-class.html
@@ -0,0 +1,203 @@
+
+
+
+
+ i2p.SocketServer.ThreadingUDPServer
+
+
+
+
+
+
+
+
+
+Class ThreadingUDPServer
+
+
+ ThreadingMixIn
--+
+ |
+ ThreadingMixIn
--+
+ |
+BaseServer
--+ |
+ | |
+ BaseServer
--+ |
+ | |
+BaseServer
--+ | |
+ | | |
+ TCPServer
--+ |
+ | |
+ TCPServer
--+ |
+ | |
+BaseServer
--+ | |
+ | | |
+ TCPServer
--+ | |
+ | | |
+ UDPServer
--+ |
+ | |
+ UDPServer
--+
+ |
+ ThreadingUDPServer
+
+
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from ThreadingMixIn
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Start a new thread to process the request.
+
+ process_request_thread
(self ,
+ request ,
+ client_address )
+
+Same as in BaseServer but as a thread.
+
+ Inherited from TCPServer
+
+ __init__
(self ,
+ session ,
+ RequestHandlerClass )
+
+Constructor.
+
+ Inherited from UDPServer
+
+ close_request
(self ,
+ request )
+
+Called to clean up an individual request.
+
+ get_request
(self )
+
+Get the request and client address from the socket.
+
+ server_activate
(self )
+
+Called by constructor to activate the server.
+
+ Inherited from TCPServer
+
+ fileno
(self )
+
+Return socket file number.
+
+ server_bind
(self )
+
+Called by constructor to bind the socket.
+
+ server_close
(self )
+
+Called to clean-up the server.
+
+ Inherited from BaseServer
+
+ finish_request
(self ,
+ request ,
+ client_address )
+
+Finish one request by instantiating RequestHandlerClass.
+
+ handle_error
(self ,
+ request ,
+ client_address )
+
+Handle an error gracefully.
+
+ handle_request
(self )
+
+Handle one request, possibly blocking.
+
+ serve_forever
(self )
+
+Handle one request at a time until doomsday.
+
+ verify_request
(self ,
+ request ,
+ client_address )
+
+Verify the request.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.UDPServer-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.UDPServer-class.html
new file mode 100644
index 000000000..f0966de03
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.SocketServer.UDPServer-class.html
@@ -0,0 +1,189 @@
+
+
+
+
+ i2p.SocketServer.UDPServer
+
+
+
+
+
+
+
+
+
+Class UDPServer
+
+
+BaseServer
--+
+ |
+ BaseServer
--+
+ |
+BaseServer
--+ |
+ | |
+ TCPServer
--+
+ |
+ TCPServer
--+
+ |
+BaseServer
--+ |
+ | |
+ TCPServer
--+ |
+ | |
+ UDPServer
--+
+ |
+ UDPServer
+
+
+Known Subclasses:
+
+ ForkingUDPServer
,
+ ThreadingUDPServer
+
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from TCPServer
+
+ __init__
(self ,
+ session ,
+ RequestHandlerClass )
+
+Constructor.
+
+ Inherited from UDPServer
+
+ close_request
(self ,
+ request )
+
+Called to clean up an individual request.
+
+ get_request
(self )
+
+Get the request and client address from the socket.
+
+ server_activate
(self )
+
+Called by constructor to activate the server.
+
+ Inherited from TCPServer
+
+ fileno
(self )
+
+Return socket file number.
+
+ server_bind
(self )
+
+Called by constructor to bind the socket.
+
+ server_close
(self )
+
+Called to clean-up the server.
+
+ Inherited from BaseServer
+
+ finish_request
(self ,
+ request ,
+ client_address )
+
+Finish one request by instantiating RequestHandlerClass.
+
+ handle_error
(self ,
+ request ,
+ client_address )
+
+Handle an error gracefully.
+
+ handle_request
(self )
+
+Handle one request, possibly blocking.
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Call finish_request.
+
+ serve_forever
(self )
+
+Handle one request at a time until doomsday.
+
+ verify_request
(self ,
+ request ,
+ client_address )
+
+Verify the request.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.eep-module.html b/apps/sam/python/doc/epydoc/html/private/i2p.eep-module.html
new file mode 100644
index 000000000..cc6d25dbd
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.eep-module.html
@@ -0,0 +1,107 @@
+
+
+
+
+ i2p.eep
+
+
+
+
+
+
+
+
+
+Module i2p.eep
+
+Eeproxy access module
+
+
+
+
+
+ Function Summary
+
+ urlget
(url ,
+ eepaddr )
+
+Get contents of an eepsite.
+
+ urlopen
(url ,
+ eepaddr )
+
+Like urllib2.urlopen(url), but only works for eep-sites.
+
+
+
+
+
+
+
+
+ urlget (url ,
+ eepaddr ='127.0.0.1:4444' )
+
+ Get contents of an eepsite. Example: urlget('http://duck.i2p/').
+
+
+
+
+
+
+ urlopen (url ,
+ eepaddr ='127.0.0.1:4444' )
+
+ Like urllib2.urlopen(url), but only works for eep-sites. Example: f
+ = urlopen('http://duck.i2p/index.html')
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.pylib-module.html b/apps/sam/python/doc/epydoc/html/private/i2p.pylib-module.html
new file mode 100644
index 000000000..061aa0c55
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.pylib-module.html
@@ -0,0 +1,59 @@
+
+
+
+
+ i2p.pylib
+
+
+
+
+
+
+
+
+
+Package i2p.pylib
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.router-module.html b/apps/sam/python/doc/epydoc/html/private/i2p.router-module.html
new file mode 100644
index 000000000..aa8303dfc
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.router-module.html
@@ -0,0 +1,265 @@
+
+
+
+
+ i2p.router
+
+
+
+
+
+
+
+
+
+Module i2p.router
+
+Router control module
+
+
+
+
+
+ Function Summary
+
+ check
(dir )
+
+Checks whether a locally installed router is running.
+
+ find
(dir )
+
+Find the absolute path to a locally installed I2P router.
+
+ start
(dir ,
+ hidden )
+
+Start a locally installed I2P router.
+
+ stop
(dir ,
+ force )
+
+Stop a locally installed I2P router, if it was started by the current
+Python program.
+
+ _parse_config
(filename )
+
+Return a dict with (name, value) items for the given I2P configuration
+file.
+
+ _run_program
(filename )
+
+Runs the given program in a new process and new terminal.
+
+
+
+
+
+
+
+
+
+
+
+
+ check (dir =None )
+
+ Checks whether a locally installed router is running. Does nothing
+ if successful, otherwise raises i2p.RouterError.
+ An I2P installation is located by using find(dir). The router.config
+ file is parsed for 'router.adminPort'. This port is queried to
+ determine whether the router is running.
+
+
+
+
+
+
+ find (dir =None )
+
+ Find the absolute path to a locally installed I2P router.
+ An I2P installation is located by looking in the environment I2P,
+ then in PATH, then in the dir argument given to the function. It looks
+ for startRouter.sh or startRouter.bat. Raises ValueError if an I2P
+ installation could not be located.
+
+
+
+
+
+
+ start (dir =None ,
+ hidden =False )
+
+ Start a locally installed I2P router. Does nothing if the router has
+ already been started.
+ An I2P installation is located by using find(dir).
+ If hidden is True, do not show a terminal for the router.
+
+
+
+
+
+
+ stop (dir =None ,
+ force =False )
+
+ Stop a locally installed I2P router, if it was started by the
+ current Python program. If force is True, stop the router even if it
+ was started by another process. Do nothing if force is False and the
+ router was started by another program.
+ The file 'router.config' is located using the same search process
+ used for find(dir). It is parsed for 'router.shutdownPassword' and
+ 'router.adminPort'. The router is shut down through the admin port.
+ Raises i2p.RouterError if the I2P router is running but cannot be
+ stopped. You must uncomment the 'router.shutdownPassword' line for this
+ command to work.
+
+
+
+
+
+
+ _parse_config (filename )
+
+ Return a dict with (name, value) items for the given I2P
+ configuration file.
+
+
+
+
+
+
+ _run_program (filename )
+
+ Runs the given program in a new process and new terminal.
+
+
+
+
+
+
+
+
+
+
+check_addrlist
+
+
+
+
+ Type:
+
+ list
+
+
+ Value:
+
+
+['127.0.0.1:7656', '127.0.0.1:4444']
+
+
+
+
+
+
+our_router
+
+
+
+
+ Type:
+
+ bool
+
+
+ Value:
+
+
+
+
+
+
+our_router_lock
+
+
+
+
+ Type:
+
+ lock
+
+
+ Value:
+
+
+<thread.lock object at 0x0089D120>
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.samclasses-module.html b/apps/sam/python/doc/epydoc/html/private/i2p.samclasses-module.html
new file mode 100644
index 000000000..c5ad8a348
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.samclasses-module.html
@@ -0,0 +1,145 @@
+
+
+
+
+ i2p.samclasses
+
+
+
+
+
+
+
+
+
+Module i2p.samclasses
+
+Lower-level SAM API, interfaces with SAM Bridge.
+For internal use only.
+Use the higher level i2p.socket module for your own programs.
+For details on SAM, see "Simple Anonymous Messaging (SAM)
+v1.0," as published by jrandom.
+Class Overview:
+
+
+ SAMTerminal: Message sender/reader, talks to SAM Bridge.
+
+
+ StringBuffer: Queue for character data.
+
+
+ BaseSession: SAM session classes are derived from this.
+
+
+ StreamSession: SAM stream session class, threadsafe, high
+ level.
+
+
+ DatagramSession: SAM datagram session, threadsafe, high level.
+
+
+ RawSession: SAM raw session, threadsafe, high level.
+
+
+Note that a 'None' timeout is an infinite timeout: it blocks forever
+if necessary.
+Todo:
+
+
+ Error handling is a huge mess. Neaten it up. Subclass a ErrorMixin
+ class, then use set_error(e), check_error(), get_error().
+
+
+ Streams are a huge mess. Neaten them up.
+
+
+ This whole interface is a tad confusing. Neaten it up.
+
+
+
+
+
+
+
+ Classes
+
+ BaseSession
+ Base session, from which StreamSession, DatagramSession, and
+RawSession are derived.
+
+ DatagramSession
+ Datagram session.
+
+ Deque
+ A double-ended queue.
+
+ RawSession
+ Raw session.
+
+ SAMTerminal
+ Message-by-message communication with SAM through a single
+pysocket.
+
+ Stream
+ Receives and sends data for an individual stream.
+
+ StreamSession
+ Stream session.
+
+ StringBuffer
+ A FIFO for characters.
+
+
+
+
+
+
+ Function Summary
+
+ sleep ()
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.BaseSession-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.BaseSession-class.html
new file mode 100644
index 000000000..9e39d4f51
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.BaseSession-class.html
@@ -0,0 +1,207 @@
+
+
+
+
+ i2p.samclasses.BaseSession
+
+
+
+
+
+
+
+
+
+Class BaseSession
+
+Known Subclasses:
+
+ DatagramSession
,
+ RawSession
,
+ StreamSession
+
+
+
+Base session, from which StreamSession, DatagramSession, and
+RawSession are derived.
+
+
+
+
+
+
+ Method Summary
+
+ __init__ (self ,
+ addr )
+
+
+ _encode_kwargs
(self ,
+ **kwargs )
+
+Internal command, encode extra kwargs for passing to SESSION
+CREATE.
+
+ _hello
(self )
+
+Internal command, handshake with SAM terminal.
+
+ _namelookup
(self ,
+ name )
+
+Internal command, does a NAMING LOOKUP query.
+
+ _on_HELLO_REPLY
(self ,
+ **kwargs )
+
+Internal command, got HELLO REPLY.
+
+ _on_NAMING_REPLY
(self ,
+ **kwargs )
+
+Internal command, got NAMING REPLY.
+
+ _on_SESSION_STATUS
(self ,
+ **kwargs )
+
+Internal command, got SESSION STATUS.
+
+ _set_properties
(self )
+
+Internal command, call at end of __init__ to set up properties.
+
+ close
(self )
+
+Close the session.
+
+
+
+
+
+
+
+
+ _encode_kwargs (self ,
+ **kwargs )
+
+ Internal command, encode extra kwargs for passing to SESSION
+ CREATE.
+
+
+
+
+
+
+ _hello (self )
+
+ Internal command, handshake with SAM terminal.
+
+
+
+
+
+
+ _namelookup (self ,
+ name )
+
+ Internal command, does a NAMING LOOKUP query.
+
+
+
+
+
+
+ _on_HELLO_REPLY (self ,
+ **kwargs )
+
+ Internal command, got HELLO REPLY.
+
+
+
+
+
+
+ _on_NAMING_REPLY (self ,
+ **kwargs )
+
+ Internal command, got NAMING REPLY.
+
+
+
+
+
+
+ _on_SESSION_STATUS (self ,
+ **kwargs )
+
+ Internal command, got SESSION STATUS.
+
+
+
+
+
+
+ _set_properties (self )
+
+ Internal command, call at end of __init__ to set up properties.
+
+
+
+
+
+
+ close (self )
+
+ Close the session.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.DatagramSession-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.DatagramSession-class.html
new file mode 100644
index 000000000..e17e1cca7
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.DatagramSession-class.html
@@ -0,0 +1,198 @@
+
+
+
+
+ i2p.samclasses.DatagramSession
+
+
+
+
+
+
+
+
+
+Class DatagramSession
+
+
+BaseSession
--+
+ |
+ DatagramSession
+
+
+
+
+Datagram session. All methods are blocking and threadsafe.
+
+
+
+
+
+
+ Method Summary
+
+ __init__ (self ,
+ name ,
+ addr ,
+ **kwargs )
+
+
+ __len__
(self )
+
+Number of packets in read buffer.
+
+ _on_DATAGRAM_RECEIVED
(self ,
+ **kwargs )
+
+Internal method, got DATAGRAM RECEIVED.
+
+ recv
(self ,
+ timeout ,
+ peek )
+
+Get a single packet.
+
+ send
(self ,
+ s ,
+ dest )
+
+Send packet with contents s to given destination.
+
+ Inherited from BaseSession
+
+ _encode_kwargs
(self ,
+ **kwargs )
+
+Internal command, encode extra kwargs for passing to SESSION
+CREATE.
+
+ _hello
(self )
+
+Internal command, handshake with SAM terminal.
+
+ _namelookup
(self ,
+ name )
+
+Internal command, does a NAMING LOOKUP query.
+
+ _on_HELLO_REPLY
(self ,
+ **kwargs )
+
+Internal command, got HELLO REPLY.
+
+ _on_NAMING_REPLY
(self ,
+ **kwargs )
+
+Internal command, got NAMING REPLY.
+
+ _on_SESSION_STATUS
(self ,
+ **kwargs )
+
+Internal command, got SESSION STATUS.
+
+ _set_properties
(self )
+
+Internal command, call at end of __init__ to set up properties.
+
+ close
(self )
+
+Close the session.
+
+
+
+
+
+
+
+
+ __len__ (self )
+ (Length operator)
+
+ Number of packets in read buffer.
+
+
+
+
+
+
+ _on_DATAGRAM_RECEIVED (self ,
+ **kwargs )
+
+ Internal method, got DATAGRAM RECEIVED.
+
+
+
+
+
+
+ recv (self ,
+ timeout =None ,
+ peek =False )
+
+ Get a single packet. Blocks for up to timeout seconds if n > 0
+ and no packet is available (timeout=None means wait forever). If still
+ no packet is available, raises BlockError or Timeout. Returns the pair
+ (data, address). If peek is True, the data is not removed.
+
+
+
+
+
+
+ send (self ,
+ s ,
+ dest )
+
+ Send packet with contents s to given destination.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.Deque-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.Deque-class.html
new file mode 100644
index 000000000..cb43be3eb
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.Deque-class.html
@@ -0,0 +1,160 @@
+
+
+
+
+ i2p.samclasses.Deque
+
+
+
+
+
+
+
+
+
+Class Deque
+
+Known Subclasses:
+
+ StringBuffer
+
+
+
+A double-ended queue.
+
+
+
+
+
+
+ Method Summary
+
+ __init__ (self )
+
+
+ __len__
(self )
+
+Number of items in the deque.
+
+ _partition (self )
+
+
+ pop_first
(self )
+
+Pop an item off the beginning of the deque, and return it.
+
+ pop_last
(self )
+
+Pop an item off the end of the deque, and return it.
+
+ push_first
(self ,
+ obj )
+
+Prepend obj to the beginning of the deque.
+
+ push_last
(self ,
+ obj )
+
+Append obj to the end of the deque.
+
+
+
+
+
+
+
+
+ __len__ (self )
+ (Length operator)
+
+ Number of items in the deque.
+
+
+
+
+
+
+ pop_first (self )
+
+ Pop an item off the beginning of the deque, and return it.
+
+
+
+
+
+
+ pop_last (self )
+
+ Pop an item off the end of the deque, and return it.
+
+
+
+
+
+
+ push_first (self ,
+ obj )
+
+ Prepend obj to the beginning of the deque.
+
+
+
+
+
+
+ push_last (self ,
+ obj )
+
+ Append obj to the end of the deque.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.RawSession-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.RawSession-class.html
new file mode 100644
index 000000000..788ac7b6b
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.RawSession-class.html
@@ -0,0 +1,196 @@
+
+
+
+
+ i2p.samclasses.RawSession
+
+
+
+
+
+
+
+
+
+Class RawSession
+
+
+BaseSession
--+
+ |
+ RawSession
+
+
+
+
+Raw session. All methods are blocking and threadsafe.
+
+
+
+
+
+
+ Method Summary
+
+ __init__ (self ,
+ name ,
+ addr ,
+ **kwargs )
+
+
+ __len__
(self )
+
+Number of packets in read buffer.
+
+ _on_RAW_RECEIVED
(self ,
+ **kwargs )
+
+Internal method, got RAW RECEIVED.
+
+ recv
(self ,
+ timeout ,
+ peek )
+
+Identical to DatagramSocket.recv.
+
+ send
(self ,
+ s ,
+ dest )
+
+Send packet with contents s to given destination.
+
+ Inherited from BaseSession
+
+ _encode_kwargs
(self ,
+ **kwargs )
+
+Internal command, encode extra kwargs for passing to SESSION
+CREATE.
+
+ _hello
(self )
+
+Internal command, handshake with SAM terminal.
+
+ _namelookup
(self ,
+ name )
+
+Internal command, does a NAMING LOOKUP query.
+
+ _on_HELLO_REPLY
(self ,
+ **kwargs )
+
+Internal command, got HELLO REPLY.
+
+ _on_NAMING_REPLY
(self ,
+ **kwargs )
+
+Internal command, got NAMING REPLY.
+
+ _on_SESSION_STATUS
(self ,
+ **kwargs )
+
+Internal command, got SESSION STATUS.
+
+ _set_properties
(self )
+
+Internal command, call at end of __init__ to set up properties.
+
+ close
(self )
+
+Close the session.
+
+
+
+
+
+
+
+
+ __len__ (self )
+ (Length operator)
+
+ Number of packets in read buffer.
+
+
+
+
+
+
+ _on_RAW_RECEIVED (self ,
+ **kwargs )
+
+ Internal method, got RAW RECEIVED.
+
+
+
+
+
+
+ recv (self ,
+ timeout =None ,
+ peek =False )
+
+ Identical to DatagramSocket.recv. The from address is an empty
+ string.
+
+
+
+
+
+
+ send (self ,
+ s ,
+ dest )
+
+ Send packet with contents s to given destination.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.SAMTerminal-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.SAMTerminal-class.html
new file mode 100644
index 000000000..21c89c577
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.SAMTerminal-class.html
@@ -0,0 +1,210 @@
+
+
+
+
+ i2p.samclasses.SAMTerminal
+
+
+
+
+
+
+
+
+
+Class SAMTerminal
+
+
+
+Message-by-message communication with SAM through a single pysocket.
+_on_* messages are dispatched to msgobj.
+
+
+
+
+
+
+ Method Summary
+
+ __init__ (self ,
+ addr ,
+ msgobj )
+
+
+ _poll_loop
(self )
+
+Polling loop for incoming messages.
+
+ _samdecode
(self ,
+ s )
+
+Given a SAM command, returns (a, b), where a is the string at the
+beginning of the command, and b is a dictionary of name, value pairs for
+the command.
+
+ check
(self )
+
+Raise an error if terminal was closed, otherwise do nothing.
+
+ check_message
(self ,
+ kwargs )
+
+Raises an error if kwargs['RESULT'] != 'OK'.
+
+ close
(self )
+
+Close the SAM terminal.
+
+ on_message
(self ,
+ msg ,
+ kwargs )
+
+Process a SAM message that was received.
+
+ queue_get
(self ,
+ q )
+
+Identical to q.get() unless a call to self.check() fails, in which
+case the waiting is cut short with an error.
+
+ send_message
(self ,
+ msg )
+
+Send a message to the SAM bridge.
+
+
+
+
+
+
+
+
+ _poll_loop (self )
+
+ Polling loop for incoming messages.
+
+
+
+
+
+
+ _samdecode (self ,
+ s )
+
+ Given a SAM command, returns (a, b), where a is the string at the
+ beginning of the command, and b is a dictionary of name, value pairs
+ for the command.
+
+
+
+
+
+
+ check (self )
+
+ Raise an error if terminal was closed, otherwise do nothing.
+
+
+
+
+
+
+ check_message (self ,
+ kwargs )
+
+ Raises an error if kwargs['RESULT'] != 'OK'.
+
+
+
+
+
+
+ close (self )
+
+ Close the SAM terminal.
+
+
+
+
+
+
+ on_message (self ,
+ msg ,
+ kwargs )
+
+ Process a SAM message that was received. Dispatch to
+ self._on_MESSAGE_NAME(**kwargs).
+
+
+
+
+
+
+ queue_get (self ,
+ q )
+
+ Identical to q.get() unless a call to self.check() fails, in which
+ case the waiting is cut short with an error.
+
+
+
+
+
+
+ send_message (self ,
+ msg )
+
+ Send a message to the SAM bridge. A newline will be automatically
+ added if none is present.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.Stream-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.Stream-class.html
new file mode 100644
index 000000000..ed6489158
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.Stream-class.html
@@ -0,0 +1,168 @@
+
+
+
+
+ i2p.samclasses.Stream
+
+
+
+
+
+
+
+
+
+Class Stream
+
+
+
+Receives and sends data for an individual stream.
+
+
+
+
+
+
+ Method Summary
+
+ __init__ (self ,
+ parent ,
+ remotedest ,
+ id ,
+ didconnect )
+
+
+ __del__ (self )
+
+
+ __len__
(self )
+
+Current length of read buffer.
+
+ close
(self )
+
+Close the stream.
+
+ on_close (self ,
+ e )
+
+
+ on_receive (self ,
+ s )
+
+
+ recv
(self ,
+ n ,
+ timeout ,
+ peek ,
+ waitall )
+
+Reads up to n bytes in a manner identical to socket.recv.
+
+ send
(self ,
+ s )
+
+Sends the string s, blocking if necessary.
+
+
+
+
+
+
+
+
+ __len__ (self )
+ (Length operator)
+
+ Current length of read buffer.
+
+
+
+
+
+
+ close (self )
+
+ Close the stream. Threadsafe.
+
+
+
+
+
+
+ recv (self ,
+ n ,
+ timeout =None ,
+ peek =False ,
+ waitall =False )
+
+ Reads up to n bytes in a manner identical to socket.recv. Blocks for
+ up to timeout seconds if n > 0 and no data is available
+ (timeout=None means wait forever). If still no data is available,
+ raises BlockError or Timeout. For a closed stream, recv will read the
+ data stored in the buffer until EOF, at which point the read data will
+ be truncated. If peek is True, the data is not removed. If waitall is
+ True, reads exactly n bytes, or raises BlockError or Timeout as
+ appropriate. Returns data.
+
+
+
+
+
+
+ send (self ,
+ s )
+
+ Sends the string s, blocking if necessary.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.StreamSession-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.StreamSession-class.html
new file mode 100644
index 000000000..2baa98fef
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.StreamSession-class.html
@@ -0,0 +1,276 @@
+
+
+
+
+ i2p.samclasses.StreamSession
+
+
+
+
+
+
+
+
+
+Class StreamSession
+
+
+BaseSession
--+
+ |
+ StreamSession
+
+
+
+
+Stream session. All methods are blocking and threadsafe.
+
+
+
+
+
+
+ Method Summary
+
+ __init__ (self ,
+ name ,
+ addr ,
+ **kwargs )
+
+
+ __len__
(self )
+
+Unconnected session; has no read data available.
+
+ _on_STREAM_CLOSED
(self ,
+ **kwargs )
+
+Got STREAM CLOSED command.
+
+ _on_STREAM_CONNECTED
(self ,
+ **kwargs )
+
+Got STREAM CONNECTED command.
+
+ _on_STREAM_RECEIVED
(self ,
+ **kwargs )
+
+Got STREAM RECEIVED command.
+
+ _on_STREAM_STATUS
(self ,
+ **kwargs )
+
+Internal command, got STREAM STATUS.
+
+ _send_stream
(self ,
+ id ,
+ data )
+
+Internal command, send data to stream id.
+
+ accept
(self ,
+ timeout )
+
+Wait for incoming connection, and return a Stream object for it.
+
+ connect
(self ,
+ dest ,
+ timeout )
+
+Create a stream connected to remote destination 'dest'.
+
+ listen
(self ,
+ backlog )
+
+Set maximum number of queued connections.
+
+ Inherited from BaseSession
+
+ _encode_kwargs
(self ,
+ **kwargs )
+
+Internal command, encode extra kwargs for passing to SESSION
+CREATE.
+
+ _hello
(self )
+
+Internal command, handshake with SAM terminal.
+
+ _namelookup
(self ,
+ name )
+
+Internal command, does a NAMING LOOKUP query.
+
+ _on_HELLO_REPLY
(self ,
+ **kwargs )
+
+Internal command, got HELLO REPLY.
+
+ _on_NAMING_REPLY
(self ,
+ **kwargs )
+
+Internal command, got NAMING REPLY.
+
+ _on_SESSION_STATUS
(self ,
+ **kwargs )
+
+Internal command, got SESSION STATUS.
+
+ _set_properties
(self )
+
+Internal command, call at end of __init__ to set up properties.
+
+ close
(self )
+
+Close the session.
+
+
+
+
+
+
+
+
+ __len__ (self )
+ (Length operator)
+
+ Unconnected session; has no read data available.
+
+
+
+
+
+
+ _on_STREAM_CLOSED (self ,
+ **kwargs )
+
+ Got STREAM CLOSED command. Call idmap[id].on_close(e) and delete
+ idmap[id].
+
+
+
+
+
+
+ _on_STREAM_CONNECTED (self ,
+ **kwargs )
+
+ Got STREAM CONNECTED command. This is what accept() commands wait
+ for.
+
+
+
+
+
+
+ _on_STREAM_RECEIVED (self ,
+ **kwargs )
+
+ Got STREAM RECEIVED command. Dispatch to
+ idmap[id].on_receive(s).
+
+
+
+
+
+
+ _on_STREAM_STATUS (self ,
+ **kwargs )
+
+ Internal command, got STREAM STATUS. Unblocks connect.
+
+
+
+
+
+
+ _send_stream (self ,
+ id ,
+ data )
+
+ Internal command, send data to stream id. Use Stream.send in your
+ code.
+
+
+
+
+
+
+ accept (self ,
+ timeout =None )
+
+ Wait for incoming connection, and return a Stream object for it.
+
+
+
+
+
+
+ connect (self ,
+ dest ,
+ timeout =None )
+
+ Create a stream connected to remote destination 'dest'. The id is
+ random. If the timeout is exceeded, do NOT raise an error; rather,
+ return a Stream object with .didconnect set to False.
+
+
+
+
+
+
+ listen (self ,
+ backlog )
+
+ Set maximum number of queued connections.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.StringBuffer-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.StringBuffer-class.html
new file mode 100644
index 000000000..f42b17ecb
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.samclasses.StringBuffer-class.html
@@ -0,0 +1,210 @@
+
+
+
+
+ i2p.samclasses.StringBuffer
+
+
+
+
+
+
+
+
+
+Class StringBuffer
+
+
+Deque
--+
+ |
+ StringBuffer
+
+
+
+
+A FIFO for characters. Strings can be efficiently appended to the end,
+and read from the beginning.
+Example:
+
+>>> B = StringBuffer('Hello W' )
+>>> B.append('orld!' )
+>>> B.read(5)
+'Hello'
+
+>>> B.read()
+'World!'
+
+
+
+
+
+
+ Method Summary
+
+ __init__ (self ,
+ s )
+
+
+ __len__
(self )
+
+Number of items in the deque.
+
+ __repr__ (self )
+
+
+ __str__ (self )
+
+
+ append
(self ,
+ s )
+
+Append string data to the end of the buffer.
+
+ peek
(self ,
+ n )
+
+Like read(), but do not remove the data that is returned.
+
+ prepend
(self ,
+ s )
+
+Prepend string data to the beginning of the buffer.
+
+ read
(self ,
+ n )
+
+Read n bytes of data (or less if less data available) from the
+beginning of the buffer.
+
+ Inherited from Deque
+
+ _partition
(self )
+
+
+ pop_first
(self )
+
+Pop an item off the beginning of the deque, and return it.
+
+ pop_last
(self )
+
+Pop an item off the end of the deque, and return it.
+
+ push_first
(self ,
+ obj )
+
+Prepend obj to the beginning of the deque.
+
+ push_last
(self ,
+ obj )
+
+Append obj to the end of the deque.
+
+
+
+
+
+
+
+
+ __len__ (self )
+ (Length operator)
+
+ Number of items in the deque.
+
+ Overrides:
+ i2p.samclasses.Deque.__len__
(inherited documentation)
+
+
+
+
+
+
+
+ append (self ,
+ s )
+
+ Append string data to the end of the buffer.
+
+
+
+
+
+
+ peek (self ,
+ n =None )
+
+ Like read(), but do not remove the data that is returned.
+
+
+
+
+
+
+ prepend (self ,
+ s )
+
+ Prepend string data to the beginning of the buffer.
+
+
+
+
+
+
+ read (self ,
+ n =None )
+
+ Read n bytes of data (or less if less data available) from the
+ beginning of the buffer. The data is removed. If n is omitted, read the
+ entire buffer.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.select-module.html b/apps/sam/python/doc/epydoc/html/private/i2p.select-module.html
new file mode 100644
index 000000000..3be16d08e
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.select-module.html
@@ -0,0 +1,120 @@
+
+
+
+
+ i2p.select
+
+
+
+
+
+
+
+
+
+Module i2p.select
+
+I2P Python API - Emulation of Python select module.
+
+
+
+
+
+ Classes
+
+ Poll
+ Class implementing poll interface.
+
+
+
+
+
+
+ Function Summary
+
+ poll
()
+
+Returns a polling object.
+
+ select
(readlist ,
+ writelist ,
+ errlist ,
+ timeout )
+
+Performs a select call.
+
+
+
+
+
+
+
+
+ poll ()
+
+ Returns a polling object. Works on SAM sockets and Python sockets.
+ See select.poll() in the Python library for more information.
+
+
+
+
+
+
+ select (readlist ,
+ writelist ,
+ errlist ,
+ timeout =None )
+
+ Performs a select call. Works on SAM sockets and Python sockets. See
+ select.select() in the Python library for more information.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.select.Poll-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.select.Poll-class.html
new file mode 100644
index 000000000..6a6959c0e
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.select.Poll-class.html
@@ -0,0 +1,112 @@
+
+
+
+
+ i2p.select.Poll
+
+
+
+
+
+
+
+
+
+Class Poll
+
+
+
+Class implementing poll interface. Works for Python sockets and SAM
+sockets.
+
+
+
+
+
+
+ Method Summary
+
+ __init__ (self )
+
+
+ poll (self ,
+ timeout )
+
+
+ register (self ,
+ fd ,
+ eventmask )
+
+
+ unregister (self ,
+ fd )
+
+
+ _hash
(self ,
+ fd )
+
+Get a unique number for each object.
+
+
+
+
+
+
+
+
+ _hash (self ,
+ fd )
+
+ Get a unique number for each object.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.socket-module.html b/apps/sam/python/doc/epydoc/html/private/i2p.socket-module.html
new file mode 100644
index 000000000..9c6f71674
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.socket-module.html
@@ -0,0 +1,283 @@
+
+
+
+
+ i2p.socket
+
+
+
+
+
+
+
+
+
+Module i2p.socket
+
+Emulation of Python socket module using SAM.
+
+
+
+
+
+ Classes
+
+ Socket
+ A socket object.
+
+
+
+
+
+
+ Exceptions
+
+ BlockError
+ Socket call would have blocked.
+
+ ClosedError
+ A command was used on a socket that closed gracefully.
+
+ Error
+ Base class for all SAM errors.
+
+ NetworkError
+ Network error occurred within I2P.
+
+ Timeout
+ Time out occurred for a socket which had timeouts enabled via a prior
+call to settimeout().
+
+
+
+
+
+
+ Function Summary
+
+ resolve
(host ,
+ samaddr )
+
+Resolve I2P host name --> I2P Destination.
+
+ socket
(session ,
+ type ,
+ samaddr ,
+ **kwargs )
+
+Create a new socket.
+
+ _make_session
(session ,
+ type ,
+ samaddr ,
+ **kwargs )
+
+Make a session object (eg samclasses.StreamSession).
+
+ _wrap_stream
(stream ,
+ parent_socket )
+
+Wraps a Socket object around a samclasses.Stream object.
+
+
+
+
+
+
+
+
+
+
+
+
+ resolve (host ,
+ samaddr ='127.0.0.1:7656' )
+
+ Resolve I2P host name --> I2P Destination. Returns the same
+ string if host is already a Destination.
+
+
+
+
+
+
+ socket (session ,
+ type ,
+ samaddr ='127.0.0.1:7656' ,
+ **kwargs )
+
+ Create a new socket. Argument session should be a session name -- if
+ the name has not yet been used, an I2P Destination will be created for
+ it, otherwise, the existing Destination will be re-used. An empty
+ session string causes a transient session to be created. Argument type
+ is one of SOCK_STREAM, SOCK_DGRAM, or SOCK_RAW.
+ I2P configuration keyword arguments:
+
+
+ in_depth - depth of incoming tunnel (default 2)
+
+
+ out_depth - depth of outgoing tunnel (default 2)
+
+
+ A single session may be shared by more than one socket, if the
+ sockets are the same type, and if the sockets are created within the
+ same Python process. The socket objects are multithread-safe.
+ Examples:
+
+>>> a = i2p.socket('Alice' , i2p.SOCK_STREAM)
+>>> b = i2p.socket('Bob' , i2p.SOCK_DGRAM,
+in_depth=2, out_depth=5)
+ The created object behaves identically to a socket from module
+ socket, with the following exceptions:
+
+
+ I2P Destinations are used as address arguments [1].
+
+
+ bind is a no-op: sockets are always bound.
+
+
+ send* methods send all data and are non-blocking.
+
+
+ A given session name can only be open in a single Python program at
+ a time. If you need to overcome this limitation, consider patching
+ I2P.
+ [1]. Alternatively, a host name can be used as an address. It will
+ be resolved using hosts.txt.
+ For details on how to use socket objects, see
+ http://www.python.org/doc/current/lib/socket-objects.html
+ See the examples directory for code examples.
+
+
+
+
+
+
+ _make_session (session ,
+ type ,
+ samaddr ,
+ **kwargs )
+
+ Make a session object (eg samclasses.StreamSession). Same arguments
+ as socket(). Return an existing session object if one has been
+ previously created under the given name.
+
+
+
+
+
+
+ _wrap_stream (stream ,
+ parent_socket )
+
+ Wraps a Socket object around a samclasses.Stream object.
+
+
+
+
+
+
+
+
+
+
+_session_lock
+
+
+
+
+ Type:
+
+ lock
+
+
+ Value:
+
+
+<thread.lock object at 0x0089D0E0>
+
+
+
+
+
+
+_sessions
+
+
+
+
+ Type:
+
+ dict
+
+
+ Value:
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.socket.BlockError-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.socket.BlockError-class.html
new file mode 100644
index 000000000..ad166a744
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.socket.BlockError-class.html
@@ -0,0 +1,93 @@
+
+
+
+
+ i2p.socket.BlockError
+
+
+
+
+
+
+
+
+
+Class BlockError
+
+
+Exception
--+
+ |
+ Error
--+
+ |
+ Error
--+
+ |
+ BlockError
+
+
+
+
+Socket call would have blocked.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.socket.ClosedError-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.socket.ClosedError-class.html
new file mode 100644
index 000000000..f6b08ad0f
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.socket.ClosedError-class.html
@@ -0,0 +1,93 @@
+
+
+
+
+ i2p.socket.ClosedError
+
+
+
+
+
+
+
+
+
+Class ClosedError
+
+
+Exception
--+
+ |
+ Error
--+
+ |
+ Error
--+
+ |
+ ClosedError
+
+
+
+
+A command was used on a socket that closed gracefully.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.socket.Error-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.socket.Error-class.html
new file mode 100644
index 000000000..30a4a7cb0
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.socket.Error-class.html
@@ -0,0 +1,98 @@
+
+
+
+
+ i2p.socket.Error
+
+
+
+
+
+
+
+
+
+Class Error
+
+
+Exception
--+
+ |
+ Error
--+
+ |
+ Error
+
+
+Known Subclasses:
+
+ BlockError
,
+ ClosedError
,
+ NetworkError
,
+ Timeout
+
+
+
+Base class for all SAM errors.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.socket.NetworkError-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.socket.NetworkError-class.html
new file mode 100644
index 000000000..ab3b394a8
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.socket.NetworkError-class.html
@@ -0,0 +1,95 @@
+
+
+
+
+ i2p.socket.NetworkError
+
+
+
+
+
+
+
+
+
+Class NetworkError
+
+
+Exception
--+
+ |
+ Error
--+
+ |
+ Error
--+
+ |
+ NetworkError
+
+
+
+
+Network error occurred within I2P. The error object is a 2-tuple:
+(errtag, errdesc). errtag is a SAM error string, errdesc is a human
+readable error description.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.socket.Socket-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.socket.Socket-class.html
new file mode 100644
index 000000000..f626dbb5b
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.socket.Socket-class.html
@@ -0,0 +1,563 @@
+
+
+
+
+ i2p.socket.Socket
+
+
+
+
+
+
+
+
+
+Class Socket
+
+
+
+A socket object.
+
+
+
+
+
+
+ Method Summary
+
+ __init__
(self ,
+ session ,
+ type ,
+ samaddr ,
+ **kwargs )
+
+Equivalent to socket().
+
+ __copy__
(self )
+
+Returns the original object.
+
+ __deepcopy__
(self ,
+ memo )
+
+Returns the original object.
+
+ accept
(self )
+
+Accept an incoming connection.
+
+ bind
(self ,
+ address )
+
+Does nothing.
+
+ close
(self )
+
+Closes the socket.
+
+ connect
(self ,
+ address )
+
+Connect to a remote dest, identified in local SAM bridge's hosts file
+as host 'address'.
+
+ connect_ex
(self ,
+ address )
+
+Like connect(), but return any error that is raised.
+
+ getpeername
(self )
+
+Get the remote Destination associated with the socket.
+
+ getsockname
(self )
+
+Get the local Destination associated with the socket.
+
+ gettimeout
(self )
+
+Get the timeout value.
+
+ listen
(self ,
+ backlog )
+
+Listen for connections made to the socket.
+
+ makefile
(self ,
+ mode ,
+ bufsize )
+
+Return a file object for the socket.
+
+ recv
(self ,
+ bufsize ,
+ flags )
+
+Receive string data from the socket.
+
+ recvfrom
(self ,
+ bufsize ,
+ flags )
+
+Like recv(), but returns a tuple (data, remoteaddr), where data is the
+string data received, and remoteaddr is the remote Destination.
+
+ send
(self ,
+ string ,
+ flags )
+
+Sends string data to a remote Destination.
+
+ sendall
(self ,
+ string ,
+ flags )
+
+Identical to send().
+
+ sendto
(self ,
+ string ,
+ flags ,
+ address )
+
+Send a packet to the given Destination.
+
+ setblocking
(self ,
+ flag )
+
+Set blocking or non-blocking mode for the socket.
+
+ settimeout
(self ,
+ value )
+
+Set a timeout for the socket.
+
+ _verify_connected
(self ,
+ needs_to_be_connected )
+
+Raise an error if socket is not a connected stream socket.
+
+ _verify_not_connected
(self )
+
+Verify that the socket is not currently connected, and is not in the
+process of connecting.
+
+ _verify_open
(self )
+
+Verify that the socket has not been closed.
+
+ _verify_stream
(self )
+
+Raise an error if socket is not a SOCK_STREAM.
+
+
+
+
+
+
+ Property Summary
+
+ dest
: Local I2P Destination of socket
+ session
: Session name
+ type
: Socket type: SOCK_STREAM, SOCK_DGRAM, or SOCK_RAW.
+
+
+
+
+
+
+
+ __init__ (self ,
+ session ,
+ type ,
+ samaddr ='127.0.0.1:7656' ,
+ **kwargs )
+ (Constructor)
+
+ Equivalent to socket().
+
+
+
+
+
+
+ __copy__ (self )
+
+ Returns the original object.
+
+
+
+
+
+
+ __deepcopy__ (self ,
+ memo )
+
+ Returns the original object.
+
+
+
+
+
+
+ accept (self )
+
+ Accept an incoming connection. The socket must be type SOCK_STREAM,
+ and listen() must be called prior to this command. The return value is
+ (conn, remotedest), where conn is a new socket object made for the
+ connection, and remotedest is the remote Destination from which the
+ connection was made.
+ Example:
+
+>>> from i2p import socket
+>>> s = socket.socket('Alice' , socket.SOCK_STREAM)
+>>> s.listen(10)
+ This prepares the server. Now accept an incoming connection:
+
+>>> c, remotedest = s.accept()
+>>> c.send('hello world!' )
+ If accept() is called on a socket that is in non-blocking mode or
+ has a timeout, i2p.socket.BlockError or i2p.socket.Timeout may be
+ raised. This indicates that no incoming connection is currently
+ available.
+
+
+
+
+
+
+ bind (self ,
+ address )
+
+ Does nothing. Provided for compatibility with the Python socket
+ command bind(), which binds a server to a port.
+
+
+
+
+
+
+ close (self )
+
+ Closes the socket. It is an error to call any method other than
+ recv() or recvfrom() on a closed socket. For streams, the receive
+ methods return data that was received prior to the closing of the
+ socket. For datagram and raw sockets, the receive methods cannot be
+ used on a closed socket.
+
+
+
+
+
+
+ connect (self ,
+ address )
+
+ Connect to a remote dest, identified in local SAM bridge's hosts
+ file as host 'address'.
+ For example:
+
+>>> s.connect('duck.i2p' )
+ Alternatively, you can use a full base64 Destination:
+ Example:
+
+>>> s.connect('238797sdfh2k34kjh....AAAA' )
+ If connect() is called on a socket that is in non-blocking mode or
+ has a timeout, i2p.socket.BlockError or i2p.socket.Timeout may be
+ raised. This indicates that the connection is still being initiated.
+ Use i2p.select.select() to determine when the connection is ready.
+
+
+
+
+
+
+ connect_ex (self ,
+ address )
+
+ Like connect(), but return any error that is raised. Returns None if
+ no error is raised.
+
+
+
+
+
+
+ getpeername (self )
+
+ Get the remote Destination associated with the socket. This is
+ equivalent to s.remotedest, and is provided for compatibility with the
+ Python socket module.
+
+
+
+
+
+
+ getsockname (self )
+
+ Get the local Destination associated with the socket. This is
+ equivalent to s.dest, and is provided for compatibility with the Python
+ socket module.
+
+
+
+
+
+
+ gettimeout (self )
+
+ Get the timeout value.
+
+
+
+
+
+
+ listen (self ,
+ backlog )
+
+ Listen for connections made to the socket. This method must be
+ called before accept(). The backlog argument specifies the maximum
+ number of queued incoming connections.
+
+
+
+
+
+
+ makefile (self ,
+ mode ='r' ,
+ bufsize =-1 )
+
+ Return a file object for the socket. See socket.makefile() in the
+ Python documentation for more information.
+
+
+
+
+
+
+ recv (self ,
+ bufsize ,
+ flags =0 )
+
+ Receive string data from the socket.
+ The maximum amount of data to be received is given by bufsize. If
+ bufsize is zero, this function returns an empty string immediately. If
+ bufsize is nonzero, this function blocks until at least one character
+ is available for reading. If the socket has been closed, an empty
+ string is returned as an end of file indicator.
+ If recv() is called on a socket that is in non-blocking mode or has
+ a timeout, i2p.socket.BlockError or i2p.socket.Timeout will be raised
+ if data is not available within the given timeframe.
+ For a datagram or raw socket, the first bufsize characters of the
+ packet are read, and the remainder of the packet is discarded. To read
+ the entire packet, use bufsize = -1.
+ For datagram and raw sockets, the packet may originate from any
+ Destination. Use recvfrom() with datagrams to determine the Destination
+ from which the packet was received.
+ The flags argument can be a bitwise OR of MSG_PEEK, MSG_WAITALL,
+ and/or MSG_DONTWAIT. MSG_PEEK indicates that any data read should not
+ be removed from the socket's incoming buffer. MSG_WAITALL indicates to
+ wait for exactly bufsize characters or an error. MSG_DONTWAIT indicates
+ that the recv() command should not block execution.
+
+
+
+
+
+
+ recvfrom (self ,
+ bufsize ,
+ flags =0 )
+
+ Like recv(), but returns a tuple (data, remoteaddr), where data is
+ the string data received, and remoteaddr is the remote Destination.
+
+
+
+
+
+
+ send (self ,
+ string ,
+ flags =0 )
+
+ Sends string data to a remote Destination.
+ For a stream, connect() must be called prior to send(). Once close()
+ is called, no further data can be sent, and the stream cannot be
+ re-opened.
+ For datagram and raw sockets, connect() only specifies a Destination
+ to which packets are sent to. send() will then send a packet to the
+ given Destination. connect() can be used multiple times.
+ The send() command never blocks execution. The flags argument is
+ ignored.
+
+
+
+
+
+
+ sendall (self ,
+ string ,
+ flags =0 )
+
+ Identical to send().
+
+
+
+
+
+
+ sendto (self ,
+ string ,
+ flags ,
+ address )
+
+ Send a packet to the given Destination.
+ Only valid for datagram and raw sockets. The address argument should
+ be either a name from the hosts file, or a base64 Destination.
+ The sendto() command never blocks execution. The flags argument is
+ ignored.
+
+
+
+
+
+
+ setblocking (self ,
+ flag )
+
+ Set blocking or non-blocking mode for the socket.
+ If flag is True, any method called on the socket will hang until the
+ method has completed. If flag is False, all methods will raise
+ i2p.socket.BlockError() if they cannot complete instantly.
+ s.setblocking(False) is equivalent to s.settimeout(0);
+ s.setblocking(True) is equivalent to s.settimeout(None).
+
+
+
+
+
+
+ settimeout (self ,
+ value )
+
+ Set a timeout for the socket.
+ The value argument should be a timeout value in seconds, or None.
+ None is equivalent to an infinite timeout.
+ A socket operation will raise a i2p.socket.Timeout if the operation
+ cannot complete within in the specified time limit.
+
+
+
+
+
+
+ _verify_connected (self ,
+ needs_to_be_connected =True )
+
+ Raise an error if socket is not a connected stream socket.
+
+
+
+
+
+
+ _verify_not_connected (self )
+
+ Verify that the socket is not currently connected, and is not in the
+ process of connecting.
+
+
+
+
+
+
+ _verify_open (self )
+
+ Verify that the socket has not been closed.
+
+
+
+
+
+
+ _verify_stream (self )
+
+ Raise an error if socket is not a SOCK_STREAM.
+
+
+
+
+
+
+
+
+
+
+
+dest
+Local I2P Destination of socket
+
+
+
+session
+Session name
+
+
+
+type
+Socket type: SOCK_STREAM, SOCK_DGRAM, or SOCK_RAW.
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.socket.Timeout-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.socket.Timeout-class.html
new file mode 100644
index 000000000..1c240415f
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.socket.Timeout-class.html
@@ -0,0 +1,94 @@
+
+
+
+
+ i2p.socket.Timeout
+
+
+
+
+
+
+
+
+
+Class Timeout
+
+
+Exception
--+
+ |
+ Error
--+
+ |
+ Error
--+
+ |
+ Timeout
+
+
+
+
+Time out occurred for a socket which had timeouts enabled via a prior
+call to settimeout().
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.tunnel-module.html b/apps/sam/python/doc/epydoc/html/private/i2p.tunnel-module.html
new file mode 100644
index 000000000..c93af04e4
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.tunnel-module.html
@@ -0,0 +1,121 @@
+
+
+
+
+ i2p.tunnel
+
+
+
+
+
+
+
+
+
+Module i2p.tunnel
+
+Exchange data between I2P and regular TCP sockets.
+
+
+
+
+
+
+
+
+
+ Function Summary
+
+ _exchange_data
(A ,
+ B )
+
+Exchanges data A <-> B between open stream sockets A and B.
+
+ _test_connected
(B )
+
+Raises an error if socket B is not yet connected.
+
+
+
+
+
+
+
+
+ _exchange_data (A ,
+ B )
+
+ Exchanges data A <-> B between open stream sockets A and
+ B.
+
+
+
+
+
+
+ _test_connected (B )
+
+ Raises an error if socket B is not yet connected.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.tunnel.Tunnel-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.tunnel.Tunnel-class.html
new file mode 100644
index 000000000..d0759e8ee
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.tunnel.Tunnel-class.html
@@ -0,0 +1,147 @@
+
+
+
+
+ i2p.tunnel.Tunnel
+
+
+
+
+
+
+
+
+
+Class Tunnel
+
+Known Subclasses:
+
+ TunnelClient
,
+ TunnelServer
+
+
+
+
+
+
+
+ Method Summary
+
+ __init__
(self ,
+ receive ,
+ make_send ,
+ nconnect ,
+ timeout )
+
+A Tunnel relays connections from a 'receive' socket to one or more
+'send' sockets.
+
+ close
(self )
+
+Close all connections made for this tunnel.
+
+ _run
(self )
+
+Manage the tunnel in a separate thread.
+
+
+
+
+
+
+
+
+ __init__ (self ,
+ receive ,
+ make_send ,
+ nconnect =-1 ,
+ timeout =60.0 )
+ (Constructor)
+
+ A Tunnel relays connections from a 'receive' socket to one or more
+ 'send' sockets. The receive socket must be bound and listening. For
+ each incoming connection, a new send socket is created by calling
+ make_send(). Data is then exchanged between the created streams until
+ one socket is closed. nconnect is the maximum number of simultaneous
+ connections (-1 for infinite), and timeout is the time that a single
+ connection can last for (None allows a connection to last forever).
+ Sockets must accept stream traffic and support the Python socket
+ interface. A separate daemonic thread is created to manage the tunnel.
+ For high performance, make_send() should make a socket and connect in
+ non-blocking mode (you should catch and discard the socket.BlockError
+ or socket.error due to executing connect on a non-blocking socket).
+ Security Note: A firewall is needed to maintain the end user's
+ anonymity. An attacker could keep a tunnel socket open by pinging it
+ regularly. The accepted sockets from 'receive' must prevent this by
+ closing down eventually.
+ Socket errors do not cause the Tunnel to shut down.
+
+
+
+
+
+
+ close (self )
+
+ Close all connections made for this tunnel.
+
+
+
+
+
+
+ _run (self )
+
+ Manage the tunnel in a separate thread.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.tunnel.TunnelClient-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.tunnel.TunnelClient-class.html
new file mode 100644
index 000000000..439954eff
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.tunnel.TunnelClient-class.html
@@ -0,0 +1,180 @@
+
+
+
+
+ i2p.tunnel.TunnelClient
+
+
+
+
+
+
+
+
+
+Class TunnelClient
+
+
+Tunnel
--+
+ |
+ TunnelClient
+
+
+
+
+
+
+
+
+ Method Summary
+
+ __init__
(self ,
+ session ,
+ port ,
+ dest ,
+ samaddr ,
+ nconnect ,
+ timeout ,
+ **kwargs )
+
+Tunnels localhost:port --> I2P Destination dest.
+
+ Inherited from Tunnel
+
+ close
(self )
+
+Close all connections made for this tunnel.
+
+ _run
(self )
+
+Manage the tunnel in a separate thread.
+
+
+
+
+
+
+
+
+
+
+
+
+ __init__ (self ,
+ session ,
+ port ,
+ dest ,
+ samaddr ='127.0.0.1:7656' ,
+ nconnect =-1 ,
+ timeout =None ,
+ **kwargs )
+ (Constructor)
+
+ Tunnels localhost:port --> I2P Destination dest.
+ A session named 'session' is created locally, for purposes of
+ routing to 'dest'. nconnect and timeout are the maximum number of
+ connections and maximum time per connection. All other arguments are
+ passed to socket.socket(). This call blocks until the tunnel is
+ ready.
+
+ Overrides:
+ i2p.tunnel.Tunnel.__init__
+
+
+
+
+
+
+
+
+
+
+
+dest
+
+
+
+
+ Get Method:
+ ' Local Destination used for routing.'
+
+
+
+
+
+
+
+remotedest
+Remote Destination.
+
+
+
+session
+
+
+
+
+ Get Method:
+ ' Local Destination used for routing.'
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/i2p.tunnel.TunnelServer-class.html b/apps/sam/python/doc/epydoc/html/private/i2p.tunnel.TunnelServer-class.html
new file mode 100644
index 000000000..736f94b9d
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/i2p.tunnel.TunnelServer-class.html
@@ -0,0 +1,152 @@
+
+
+
+
+ i2p.tunnel.TunnelServer
+
+
+
+
+
+
+
+
+
+Class TunnelServer
+
+
+Tunnel
--+
+ |
+ TunnelServer
+
+
+
+
+
+
+
+
+ Method Summary
+
+ __init__
(self ,
+ session ,
+ port ,
+ samaddr ,
+ nconnect ,
+ timeout ,
+ **kwargs )
+
+Tunnels incoming SAM streams --> localhost:port.
+
+ Inherited from Tunnel
+
+ close
(self )
+
+Close all connections made for this tunnel.
+
+ _run
(self )
+
+Manage the tunnel in a separate thread.
+
+
+
+
+
+
+ Property Summary
+
+ dest
: I2P Destination of server.
+ session
: Session name for server.
+
+
+
+
+
+
+
+ __init__ (self ,
+ session ,
+ port ,
+ samaddr ='127.0.0.1:7656' ,
+ nconnect =-1 ,
+ timeout =None ,
+ **kwargs )
+ (Constructor)
+
+ Tunnels incoming SAM streams --> localhost:port.
+ nconnect and timeout are the maximum number of connections and
+ maximum time per connection. All other arguments are passed to
+ socket.socket(). This call blocks until the tunnel is ready.
+
+ Overrides:
+ i2p.tunnel.Tunnel.__init__
+
+
+
+
+
+
+
+
+
+
+
+dest
+I2P Destination of server.
+
+
+
+session
+Session name for server.
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/index.html b/apps/sam/python/doc/epydoc/html/private/index.html
new file mode 100644
index 000000000..a4d252f7b
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/index.html
@@ -0,0 +1,13 @@
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/indices.html b/apps/sam/python/doc/epydoc/html/private/indices.html
new file mode 100644
index 000000000..7105d5e4e
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/indices.html
@@ -0,0 +1,901 @@
+
+
+
+
+ Index
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/mimetools.Message-class.html b/apps/sam/python/doc/epydoc/html/private/mimetools.Message-class.html
new file mode 100644
index 000000000..426f0b034
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/mimetools.Message-class.html
@@ -0,0 +1,263 @@
+
+
+
+
+ mimetools.Message
+
+
+
+
+
+
+
+
+
+
+ Module mimetools ::
+ Class Message
+
+
+
+
+
+
+Class Message
+
+
+Message
--+
+ |
+ Message
+
+
+
+
+A derived class of rfc822.Message that knows about MIME headers and
+contains some hooks for decoding encoded and multipart messages.
+
+
+
+
+
+
+ Method Summary
+
+ __init__
(self ,
+ fp ,
+ seekable )
+
+Initialize the class instance and read the headers.
+
+ getencoding (self )
+
+
+ getmaintype (self )
+
+
+ getparam (self ,
+ name )
+
+
+ getparamnames (self )
+
+
+ getplist (self )
+
+
+ getsubtype (self )
+
+
+ gettype (self )
+
+
+ parseplist (self )
+
+
+ parsetype (self )
+
+
+ Inherited from Message
+
+ __contains__
(self ,
+ name )
+
+Determine whether a message contains the named header.
+
+ __delitem__
(self ,
+ name )
+
+Delete all occurrences of a specific header, if it is present.
+
+ __getitem__
(self ,
+ name )
+
+Get a specific header, as from a dictionary.
+
+ __len__
(self )
+
+Get the number of headers in a message.
+
+ __setitem__
(self ,
+ name ,
+ value )
+
+Set the value of a header.
+
+ __str__
(self )
+
+
+ get
(self ,
+ name ,
+ default )
+
+Get the header value for a name.
+
+ getaddr
(self ,
+ name )
+
+Get a single address from a header, as a tuple.
+
+ getaddrlist
(self ,
+ name )
+
+Get a list of addresses from a header.
+
+ getallmatchingheaders
(self ,
+ name )
+
+Find all header lines matching a given header name.
+
+ getdate
(self ,
+ name )
+
+Retrieve a date field from a header.
+
+ getdate_tz
(self ,
+ name )
+
+Retrieve a date field from a header as a 10-tuple.
+
+ getfirstmatchingheader
(self ,
+ name )
+
+Get the first header line matching name.
+
+ getheader
(self ,
+ name ,
+ default )
+
+Get the header value for a name.
+
+ getheaders
(self ,
+ name )
+
+Get all values for a header.
+
+ getrawheader
(self ,
+ name )
+
+A higher-level interface to getfirstmatchingheader().
+
+ has_key
(self ,
+ name )
+
+Determine whether a message contains the named header.
+
+ iscomment
(self ,
+ line )
+
+Determine whether a line should be skipped entirely.
+
+ isheader
(self ,
+ line )
+
+Determine whether a given line is a legal header.
+
+ islast
(self ,
+ line )
+
+Determine whether a line is a legal end of RFC 2822 headers.
+
+ items
(self )
+
+Get all of a message's headers.
+
+ keys
(self )
+
+Get all of a message's header field names.
+
+ readheaders
(self )
+
+Read header lines.
+
+ rewindbody
(self )
+
+Rewind the file to the start of the body (if seekable).
+
+ setdefault
(self ,
+ name ,
+ default )
+
+
+ values
(self )
+
+Get all of a message's header field values.
+
+
+
+
+
+
+
+
+ __init__ (self ,
+ fp ,
+ seekable =1 )
+ (Constructor)
+
+ Initialize the class instance and read the headers.
+
+ Overrides:
+ rfc822.Message.__init__
(inherited documentation)
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/rfc822.Message-class.html b/apps/sam/python/doc/epydoc/html/private/rfc822.Message-class.html
new file mode 100644
index 000000000..a82f21d03
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/rfc822.Message-class.html
@@ -0,0 +1,525 @@
+
+
+
+
+ rfc822.Message
+
+
+
+
+
+
+
+
+
+
+ Module rfc822 ::
+ Class Message
+
+
+
+
+
+
+Class Message
+
+Known Subclasses:
+
+ Message
+
+
+
+Represents a single RFC 2822-compliant message.
+
+
+
+
+
+
+ Method Summary
+
+ __init__
(self ,
+ fp ,
+ seekable )
+
+Initialize the class instance and read the headers.
+
+ __contains__
(self ,
+ name )
+
+Determine whether a message contains the named header.
+
+ __delitem__
(self ,
+ name )
+
+Delete all occurrences of a specific header, if it is present.
+
+ __getitem__
(self ,
+ name )
+
+Get a specific header, as from a dictionary.
+
+ __len__
(self )
+
+Get the number of headers in a message.
+
+ __setitem__
(self ,
+ name ,
+ value )
+
+Set the value of a header.
+
+ __str__ (self )
+
+
+ get
(self ,
+ name ,
+ default )
+
+Get the header value for a name.
+
+ getaddr
(self ,
+ name )
+
+Get a single address from a header, as a tuple.
+
+ getaddrlist
(self ,
+ name )
+
+Get a list of addresses from a header.
+
+ getallmatchingheaders
(self ,
+ name )
+
+Find all header lines matching a given header name.
+
+ getdate
(self ,
+ name )
+
+Retrieve a date field from a header.
+
+ getdate_tz
(self ,
+ name )
+
+Retrieve a date field from a header as a 10-tuple.
+
+ getfirstmatchingheader
(self ,
+ name )
+
+Get the first header line matching name.
+
+ getheader
(self ,
+ name ,
+ default )
+
+Get the header value for a name.
+
+ getheaders
(self ,
+ name )
+
+Get all values for a header.
+
+ getrawheader
(self ,
+ name )
+
+A higher-level interface to getfirstmatchingheader().
+
+ has_key
(self ,
+ name )
+
+Determine whether a message contains the named header.
+
+ iscomment
(self ,
+ line )
+
+Determine whether a line should be skipped entirely.
+
+ isheader
(self ,
+ line )
+
+Determine whether a given line is a legal header.
+
+ islast
(self ,
+ line )
+
+Determine whether a line is a legal end of RFC 2822 headers.
+
+ items
(self )
+
+Get all of a message's headers.
+
+ keys
(self )
+
+Get all of a message's header field names.
+
+ readheaders
(self )
+
+Read header lines.
+
+ rewindbody
(self )
+
+Rewind the file to the start of the body (if seekable).
+
+ setdefault (self ,
+ name ,
+ default )
+
+
+ values
(self )
+
+Get all of a message's header field values.
+
+
+
+
+
+
+
+
+ __init__ (self ,
+ fp ,
+ seekable =1 )
+ (Constructor)
+
+ Initialize the class instance and read the headers.
+
+
+
+
+
+
+ __contains__ (self ,
+ name )
+ (In operator)
+
+ Determine whether a message contains the named header.
+
+
+
+
+
+
+ __delitem__ (self ,
+ name )
+ (Index deletion operator)
+
+ Delete all occurrences of a specific header, if it is present.
+
+
+
+
+
+
+ __getitem__ (self ,
+ name )
+ (Indexing operator)
+
+ Get a specific header, as from a dictionary.
+
+
+
+
+
+
+ __len__ (self )
+ (Length operator)
+
+ Get the number of headers in a message.
+
+
+
+
+
+
+ __setitem__ (self ,
+ name ,
+ value )
+ (Index assignment operator)
+
+ Set the value of a header.
+ Note: This is not a perfect inversion of __getitem__, because any
+ changed headers get stuck at the end of the raw-headers list rather
+ than where the altered header was.
+
+
+
+
+
+
+ get (self ,
+ name ,
+ default =None )
+
+ Get the header value for a name.
+ This is the normal interface: it returns a stripped version of the
+ header value for a given header name, or None if it doesn't exist. This
+ uses the dictionary version which finds the *last* such header.
+
+
+
+
+
+
+ getaddr (self ,
+ name )
+
+ Get a single address from a header, as a tuple.
+ An example return value: ('Guido van Rossum',
+ 'guido@cwi.nl')
+
+
+
+
+
+
+ getaddrlist (self ,
+ name )
+
+ Get a list of addresses from a header.
+ Retrieves a list of addresses from a header, where each address is a
+ tuple as returned by getaddr(). Scans all named headers, so it works
+ properly with multiple To: or Cc: headers for example.
+
+
+
+
+
+
+ getallmatchingheaders (self ,
+ name )
+
+ Find all header lines matching a given header name.
+ Look through the list of headers and find all lines matching a given
+ header name (and their continuation lines). A list of the lines is
+ returned, without interpretation. If the header does not occur, an
+ empty list is returned. If the header occurs multiple times, all
+ occurrences are returned. Case is not important in the header name.
+
+
+
+
+
+
+ getdate (self ,
+ name )
+
+ Retrieve a date field from a header.
+ Retrieves a date field from the named header, returning a tuple
+ compatible with time.mktime().
+
+
+
+
+
+
+ getdate_tz (self ,
+ name )
+
+ Retrieve a date field from a header as a 10-tuple.
+ The first 9 elements make up a tuple compatible with time.mktime(),
+ and the 10th is the offset of the poster's time zone from GMT/UTC.
+
+
+
+
+
+
+ getfirstmatchingheader (self ,
+ name )
+
+ Get the first header line matching name.
+ This is similar to getallmatchingheaders, but it returns only the
+ first matching header (and its continuation lines).
+
+
+
+
+
+
+ getheader (self ,
+ name ,
+ default =None )
+
+ Get the header value for a name.
+ This is the normal interface: it returns a stripped version of the
+ header value for a given header name, or None if it doesn't exist. This
+ uses the dictionary version which finds the *last* such header.
+
+
+
+
+
+
+ getheaders (self ,
+ name )
+
+ Get all values for a header.
+ This returns a list of values for headers given more than once; each
+ value in the result list is stripped in the same way as the result of
+ getheader(). If the header is not given, return an empty list.
+
+
+
+
+
+
+ getrawheader (self ,
+ name )
+
+ A higher-level interface to getfirstmatchingheader().
+ Return a string containing the literal text of the header but with
+ the keyword stripped. All leading, trailing and embedded whitespace is
+ kept in the string, however. Return None if the header does not
+ occur.
+
+
+
+
+
+
+ has_key (self ,
+ name )
+
+ Determine whether a message contains the named header.
+
+
+
+
+
+
+ iscomment (self ,
+ line )
+
+ Determine whether a line should be skipped entirely.
+ You may override this method in order to use Message parsing on
+ tagged data in RFC 2822-like formats that support embedded comments or
+ free-text data.
+
+
+
+
+
+
+ isheader (self ,
+ line )
+
+ Determine whether a given line is a legal header.
+ This method should return the header name, suitably canonicalized.
+ You may override this method in order to use Message parsing on tagged
+ data in RFC 2822-like formats with special header formats.
+
+
+
+
+
+
+ islast (self ,
+ line )
+
+
+Determine whether a line is a legal end of RFC 2822 headers.
+
+ You may override this method if your application wants to bend the
+ rules, e.g. to strip trailing whitespace, or to recognize MH template
+ separators ('--------'). For convenience (e.g. for code reading from
+ sockets) a line consisting of
+also matches.
+
+
+
+
+
+
+
+ items (self )
+
+ Get all of a message's headers.
+ Returns a list of name, value tuples.
+
+
+
+
+
+
+ keys (self )
+
+ Get all of a message's header field names.
+
+
+
+
+
+
+ readheaders (self )
+
+ Read header lines.
+ Read header lines up to the entirely blank line that terminates
+ them. The (normally blank) line that ends the headers is skipped, but
+ not included in the returned list. If a non-header line ends the
+ headers, (which is an error), an attempt is made to backspace over it;
+ it is never included in the returned list.
+ The variable self.status is set to the empty string if all went
+ well, otherwise it is an error message. The variable self.headers is a
+ completely uninterpreted list of lines contained in the header (so
+ printing them will reproduce the header exactly as it appears in the
+ file).
+
+
+
+
+
+
+ rewindbody (self )
+
+ Rewind the file to the start of the body (if seekable).
+
+
+
+
+
+
+ values (self )
+
+ Get all of a message's header field values.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/toc-everything.html b/apps/sam/python/doc/epydoc/html/private/toc-everything.html
new file mode 100644
index 000000000..823bbf460
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/toc-everything.html
@@ -0,0 +1,97 @@
+
+
+
+
+ Everything
+
+
+
+Everything
+
+
+
+All Classes
+i2p.BaseHTTPServer.BaseHTTPRequestHandler
+i2p.BaseHTTPServer.HTTPServer
+i2p.CGIHTTPServer.CGIHTTPRequestHandler
+i2p.samclasses.BaseSession
+i2p.samclasses.DatagramSession
+i2p.samclasses.Deque
+i2p.samclasses.RawSession
+i2p.samclasses.SAMTerminal
+i2p.samclasses.Stream
+i2p.samclasses.StreamSession
+i2p.samclasses.StringBuffer
+i2p.select.Poll
+i2p.SimpleHTTPServer.SimpleHTTPRequestHandler
+i2p.socket.Socket
+i2p.SocketServer.BaseRequestHandler
+i2p.SocketServer.BaseServer
+i2p.SocketServer.DatagramRequestHandler
+i2p.SocketServer.ForkingMixIn
+i2p.SocketServer.ForkingTCPServer
+i2p.SocketServer.ForkingUDPServer
+i2p.SocketServer.StreamRequestHandler
+i2p.SocketServer.TCPServer
+i2p.SocketServer.ThreadingMixIn
+i2p.SocketServer.ThreadingTCPServer
+i2p.SocketServer.ThreadingUDPServer
+i2p.SocketServer.UDPServer
+i2p.tunnel.Tunnel
+i2p.tunnel.TunnelClient
+i2p.tunnel.TunnelServer
+
+
+
+All Exceptions
+i2p.Error
+i2p.RouterError
+i2p.socket.BlockError
+i2p.socket.ClosedError
+i2p.socket.Error
+i2p.socket.NetworkError
+i2p.socket.Timeout
+
+
+
+All Functions
+_exchange_data
+_make_session
+_parse_config
+_run_program
+_test_connected
+_wrap_stream
+check
+find
+poll
+resolve
+select
+sleep
+socket
+start
+stop
+test
+test
+test
+urlget
+urlopen
+
+
+
+All Variables
+__version__
+__version__
+_session_lock
+_sessions
+check_addrlist
+DEFAULT_ERROR_MESSAGE
+our_router
+our_router_lock
+
+
+
+[show private | hide private ]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/toc-i2p-module.html b/apps/sam/python/doc/epydoc/html/private/toc-i2p-module.html
new file mode 100644
index 000000000..1518eea49
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/toc-i2p-module.html
@@ -0,0 +1,38 @@
+
+
+
+
+ i2p
+
+
+
+i2p
+
+
+
+Modules
+BaseHTTPServer
+CGIHTTPServer
+eep
+pylib
+router
+samclasses
+select
+SimpleHTTPServer
+socket
+SocketServer
+tunnel
+
+
+
+Exceptions
+Error
+RouterError
+
+
+
+[show private | hide private ]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/toc-i2p.BaseHTTPServer-module.html b/apps/sam/python/doc/epydoc/html/private/toc-i2p.BaseHTTPServer-module.html
new file mode 100644
index 000000000..361a2f28b
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/toc-i2p.BaseHTTPServer-module.html
@@ -0,0 +1,34 @@
+
+
+
+
+ i2p.BaseHTTPServer
+
+
+
+BaseHTTPServer
+
+
+
+Classes
+BaseHTTPRequestHandler
+HTTPServer
+
+
+
+Functions
+test
+
+
+
+Variables
+__version__
+DEFAULT_ERROR_MESSAGE
+
+
+
+[show private | hide private ]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/toc-i2p.CGIHTTPServer-module.html b/apps/sam/python/doc/epydoc/html/private/toc-i2p.CGIHTTPServer-module.html
new file mode 100644
index 000000000..529e96d71
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/toc-i2p.CGIHTTPServer-module.html
@@ -0,0 +1,27 @@
+
+
+
+
+ i2p.CGIHTTPServer
+
+
+
+CGIHTTPServer
+
+
+
+Classes
+CGIHTTPRequestHandler
+
+
+
+Functions
+test
+
+
+
+[show private | hide private ]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/toc-i2p.SimpleHTTPServer-module.html b/apps/sam/python/doc/epydoc/html/private/toc-i2p.SimpleHTTPServer-module.html
new file mode 100644
index 000000000..083d22f6b
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/toc-i2p.SimpleHTTPServer-module.html
@@ -0,0 +1,32 @@
+
+
+
+
+ i2p.SimpleHTTPServer
+
+
+
+SimpleHTTPServer
+
+
+
+Classes
+SimpleHTTPRequestHandler
+
+
+
+Functions
+test
+
+
+
+Variables
+__version__
+
+
+
+[show private | hide private ]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/toc-i2p.SocketServer-module.html b/apps/sam/python/doc/epydoc/html/private/toc-i2p.SocketServer-module.html
new file mode 100644
index 000000000..5c053de2a
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/toc-i2p.SocketServer-module.html
@@ -0,0 +1,33 @@
+
+
+
+
+ i2p.SocketServer
+
+
+
+SocketServer
+
+
+
+Classes
+BaseRequestHandler
+BaseServer
+DatagramRequestHandler
+ForkingMixIn
+ForkingTCPServer
+ForkingUDPServer
+StreamRequestHandler
+TCPServer
+ThreadingMixIn
+ThreadingTCPServer
+ThreadingUDPServer
+UDPServer
+
+
+
+[show private | hide private ]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/toc-i2p.eep-module.html b/apps/sam/python/doc/epydoc/html/private/toc-i2p.eep-module.html
new file mode 100644
index 000000000..c4f6eb878
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/toc-i2p.eep-module.html
@@ -0,0 +1,23 @@
+
+
+
+
+ i2p.eep
+
+
+
+eep
+
+
+
+Functions
+urlget
+urlopen
+
+
+
+[show private | hide private ]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/toc-i2p.pylib-module.html b/apps/sam/python/doc/epydoc/html/private/toc-i2p.pylib-module.html
new file mode 100644
index 000000000..0113c8469
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/toc-i2p.pylib-module.html
@@ -0,0 +1,17 @@
+
+
+
+
+ i2p.pylib
+
+
+
+pylib
+
+
+
+[show private | hide private]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/toc-i2p.router-module.html b/apps/sam/python/doc/epydoc/html/private/toc-i2p.router-module.html
new file mode 100644
index 000000000..ff80c7f7f
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/toc-i2p.router-module.html
@@ -0,0 +1,34 @@
+
+
+
+
+ i2p.router
+
+
+
+router
+
+
+
+Functions
+_parse_config
+_run_program
+check
+find
+start
+stop
+
+
+
+Variables
+check_addrlist
+our_router
+our_router_lock
+
+
+
+[show private | hide private ]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/toc-i2p.samclasses-module.html b/apps/sam/python/doc/epydoc/html/private/toc-i2p.samclasses-module.html
new file mode 100644
index 000000000..7bc6cbabb
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/toc-i2p.samclasses-module.html
@@ -0,0 +1,34 @@
+
+
+
+
+ i2p.samclasses
+
+
+
+samclasses
+
+
+
+Classes
+BaseSession
+DatagramSession
+Deque
+RawSession
+SAMTerminal
+Stream
+StreamSession
+StringBuffer
+
+
+
+Functions
+sleep
+
+
+
+[show private | hide private]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/toc-i2p.select-module.html b/apps/sam/python/doc/epydoc/html/private/toc-i2p.select-module.html
new file mode 100644
index 000000000..4f5df3bde
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/toc-i2p.select-module.html
@@ -0,0 +1,28 @@
+
+
+
+
+ i2p.select
+
+
+
+select
+
+
+
+Classes
+Poll
+
+
+
+Functions
+poll
+select
+
+
+
+[show private | hide private ]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/toc-i2p.socket-module.html b/apps/sam/python/doc/epydoc/html/private/toc-i2p.socket-module.html
new file mode 100644
index 000000000..d08825524
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/toc-i2p.socket-module.html
@@ -0,0 +1,45 @@
+
+
+
+
+ i2p.socket
+
+
+
+socket
+
+
+
+Classes
+Socket
+
+
+
+Exceptions
+BlockError
+ClosedError
+Error
+NetworkError
+Timeout
+
+
+
+Functions
+_make_session
+_wrap_stream
+resolve
+socket
+
+
+
+Variables
+_session_lock
+_sessions
+
+
+
+[show private | hide private ]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/toc-i2p.tunnel-module.html b/apps/sam/python/doc/epydoc/html/private/toc-i2p.tunnel-module.html
new file mode 100644
index 000000000..d7ef2d08b
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/toc-i2p.tunnel-module.html
@@ -0,0 +1,30 @@
+
+
+
+
+ i2p.tunnel
+
+
+
+tunnel
+
+
+
+Classes
+Tunnel
+TunnelClient
+TunnelServer
+
+
+
+Functions
+_exchange_data
+_test_connected
+
+
+
+[show private | hide private ]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/toc.html b/apps/sam/python/doc/epydoc/html/private/toc.html
new file mode 100644
index 000000000..e0634aa0f
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/toc.html
@@ -0,0 +1,36 @@
+
+
+
+
+ Table of Contents
+
+
+
+Table of Contents
+
+Everything
+
+
+Packages
+i2p
+i2p.pylib
+
+
+Modules
+i2p.BaseHTTPServer
+i2p.CGIHTTPServer
+i2p.eep
+i2p.router
+i2p.samclasses
+i2p.select
+i2p.SimpleHTTPServer
+i2p.socket
+i2p.SocketServer
+i2p.tunnel
+
+
+[show private | hide private ]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/private/trees.html b/apps/sam/python/doc/epydoc/html/private/trees.html
new file mode 100644
index 000000000..fe02a5e9f
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/private/trees.html
@@ -0,0 +1,244 @@
+
+
+
+
+ Module and Class Hierarchies
+
+
+
+
+
+
+
+
+
+Module Hierarchy
+
+ i2p
: i2p -- I2P Python interface
+
+ BaseHTTPServer
: Emulation of Python BaseHTTPServer module using I2P sockets.
+ CGIHTTPServer
: Emulation of Python CGIHTTPServer module using I2P sockets.
+ eep
: Eeproxy access module
+ router
: Router control module
+ select
: I2P Python API - Emulation of Python select module.
+ SimpleHTTPServer
: Emulation of Python SimpleHTTPServer module using I2P sockets.
+ socket
: Emulation of Python socket module using SAM.
+ SocketServer
: Emulation of Python SocketServer module using I2P sockets.
+ tunnel
: Exchange data between I2P and regular TCP sockets.
+ pylib
+ samclasses
: Lower-level SAM API, interfaces with SAM Bridge.
+
+
+
+
+Class Hierarchy
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/BaseHTTPServer.BaseHTTPRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/public/BaseHTTPServer.BaseHTTPRequestHandler-class.html
new file mode 100644
index 000000000..dd3197c8b
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/BaseHTTPServer.BaseHTTPRequestHandler-class.html
@@ -0,0 +1,645 @@
+
+
+
+
+ BaseHTTPServer.BaseHTTPRequestHandler
+
+
+
+
+
+
+
+
+
+
+ Module BaseHTTPServer ::
+ Class BaseHTTPRequestHandler
+
+
+
+
+
+
+Class BaseHTTPRequestHandler
+
+
+BaseRequestHandler
--+
+ |
+ StreamRequestHandler
--+
+ |
+ BaseHTTPRequestHandler
+
+
+Known Subclasses:
+
+ BaseHTTPRequestHandler
,
+ SimpleHTTPRequestHandler
+
+
+
+
+HTTP request handler base class.
+
+The following explanation of HTTP serves to guide you through the
+code as well as to expose any misunderstandings I may have about
+HTTP (so you don't need to read the code to figure out I'm wrong
+:-).
+
+HTTP (HyperText Transfer Protocol) is an extensible protocol on
+top of a reliable stream transport (e.g. TCP/IP). The protocol
+recognizes three parts to a request:
+
+1. One line identifying the request type and path
+2. An optional set of RFC-822-style headers
+3. An optional data part
+
+The headers and data are separated by a blank line.
+
+The first line of the request has the form
+
+<command> <path> <version>
+
+where <command> is a (case-sensitive) keyword such as GET or POST,
+<path> is a string containing path information for the request,
+and <version> should be the string "HTTP/1.0" or "HTTP/1.1".
+<path> is encoded using the URL encoding scheme (using %xx to signify
+the ASCII character with hex code xx).
+
+The specification specifies that lines are separated by CRLF but
+for compatibility with the widest range of clients recommends
+servers also handle LF. Similarly, whitespace in the request line
+is treated sensibly (allowing multiple spaces between components
+and allowing trailing whitespace).
+
+Similarly, for output, lines ought to be separated by CRLF pairs
+but most clients grok LF characters just fine.
+
+If the first line of the request has the form
+
+<command> <path>
+
+(i.e. <version> is left out) then this is assumed to be an HTTP
+0.9 request; this form has no optional headers and data part and
+the reply consists of just the data.
+
+The reply form of the HTTP 1.x protocol again has three parts:
+
+1. One line giving the response code
+2. An optional set of RFC-822-style headers
+3. The data
+
+Again, the headers and data are separated by a blank line.
+
+The response code line has the form
+
+<version> <responsecode> <responsestring>
+
+where <version> is the protocol version ("HTTP/1.0" or "HTTP/1.1"),
+<responsecode> is a 3-digit response code indicating success or
+failure of the request, and <responsestring> is an optional
+human-readable string explaining what the response code means.
+
+This server parses the request and the headers, and then calls a
+function specific to the request type (<command>). Specifically,
+a request SPAM will be handled by a method do_SPAM(). If no
+such method exists the server sends an error response to the
+client. If it exists, it is called with no arguments:
+
+do_SPAM()
+
+Note that the request name is case sensitive (i.e. SPAM and spam
+are different requests).
+
+The various request details are stored in instance variables:
+
+- client_address is the client IP address in the form (host,
+port);
+
+- command, path and version are the broken-down request line;
+
+- headers is an instance of mimetools.Message (or a derived
+class) containing the header information;
+
+- rfile is a file object open for reading positioned at the
+start of the optional input data part;
+
+- wfile is a file object open for writing.
+
+IT IS IMPORTANT TO ADHERE TO THE PROTOCOL FOR WRITING!
+
+The first thing to be written must be the response line. Then
+follow 0 or more header lines, then a blank line, and then the
+actual data (if any). The meaning of the header lines depends on
+the command executed by the server; in most cases, when data is
+returned, there should be at least one header line of the form
+
+Content-type: <type>/<subtype>
+
+where <type> and <subtype> should be registered MIME types,
+e.g. "text/html" or "text/plain".
+
+
+
+
+
+
+
+ Method Summary
+
+ address_string
(self )
+
+Return the client address formatted for logging.
+
+ date_time_string
(self )
+
+Return the current date and time formatted for a message header.
+
+ end_headers
(self )
+
+Send the blank line ending the MIME headers.
+
+ handle
(self )
+
+Handle multiple requests if necessary.
+
+ handle_one_request
(self )
+
+Handle a single HTTP request.
+
+ log_date_time_string
(self )
+
+Return the current time formatted for logging.
+
+ log_error
(self ,
+ *args )
+
+Log an error.
+
+ log_message
(self ,
+ format ,
+ *args )
+
+Log an arbitrary message.
+
+ log_request
(self ,
+ code ,
+ size )
+
+Log an accepted request.
+
+ parse_request
(self )
+
+Parse a request (internal).
+
+ send_error
(self ,
+ code ,
+ message )
+
+Send and log an error reply.
+
+ send_header
(self ,
+ keyword ,
+ value )
+
+Send a MIME header.
+
+ send_response
(self ,
+ code ,
+ message )
+
+Send the response header and log the response code.
+
+ version_string
(self )
+
+Return the server software version string.
+
+ Inherited from StreamRequestHandler
+
+ finish
(self )
+
+
+ setup
(self )
+
+
+ Inherited from BaseRequestHandler
+
+ __init__
(self ,
+ request ,
+ client_address ,
+ server )
+
+
+
+
+
+
+
+ Class Variable Summary
+str
+error_message_format
= ' <head>\n<title>Error response</t...
+
+classobj
+ MessageClass
= mimetools.Message
+list
+monthname
= [None, 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'J...
+
+str
+protocol_version
= ' HTTP/1.0'
+
+dict
+responses
= {400: ('Bad request', 'Bad request syntax or...
+
+str
+server_version
= ' BaseHTTP/0.3'
+
+str
+sys_version
= ' Python/2.3.4'
+
+list
+weekdayname
= ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat',...
+
+
+ Inherited from StreamRequestHandler
+int
+rbufsize
= -1
+int
+wbufsize
= 0
+
+
+
+
+
+
+
+
+ address_string (self )
+
+ Return the client address formatted for logging.
+ This version looks up the full hostname using gethostbyaddr(), and
+ tries to find a name that contains at least one dot.
+
+
+
+
+
+
+ date_time_string (self )
+
+ Return the current date and time formatted for a message header.
+
+
+
+
+
+
+ end_headers (self )
+
+ Send the blank line ending the MIME headers.
+
+
+
+
+
+
+
+
+
+ handle_one_request (self )
+
+ Handle a single HTTP request.
+ You normally don't need to override this method; see the class
+ __doc__ string for information on how to handle specific HTTP commands
+ such as GET and POST.
+
+
+
+
+
+
+ log_date_time_string (self )
+
+ Return the current time formatted for logging.
+
+
+
+
+
+
+ log_error (self ,
+ *args )
+
+ Log an error.
+ This is called when a request cannot be fulfilled. By default it
+ passes the message on to log_message().
+ Arguments are the same as for log_message().
+ XXX This should go to the separate error log.
+
+
+
+
+
+
+ log_message (self ,
+ format ,
+ *args )
+
+ Log an arbitrary message.
+ This is used by all other logging functions. Override it if you have
+ specific logging wishes.
+ The first argument, FORMAT, is a format string for the message to be
+ logged. If the format string contains any % escapes requiring
+ parameters, they should be specified as subsequent arguments (it's just
+ like printf!).
+ The client host and current date/time are prefixed to every
+ message.
+
+
+
+
+
+
+ log_request (self ,
+ code ='-' ,
+ size ='-' )
+
+ Log an accepted request.
+ This is called by send_reponse().
+
+
+
+
+
+
+ parse_request (self )
+
+ Parse a request (internal).
+ The request should be stored in self.raw_requestline; the results
+ are in self.command, self.path, self.request_version and
+ self.headers.
+ Return True for success, False for failure; on failure, an error is
+ sent back.
+
+
+
+
+
+
+ send_error (self ,
+ code ,
+ message =None )
+
+ Send and log an error reply.
+ Arguments are the error code, and a detailed message. The detailed
+ message defaults to the short entry matching the response code.
+ This sends an error response (so it must be called before any output
+ has been generated), logs the error, and finally sends a piece of HTML
+ explaining the error to the user.
+
+
+
+
+
+
+ send_header (self ,
+ keyword ,
+ value )
+
+ Send a MIME header.
+
+
+
+
+
+
+ send_response (self ,
+ code ,
+ message =None )
+
+ Send the response header and log the response code.
+ Also send two standard headers with the server software version and
+ the current date.
+
+
+
+
+
+
+ version_string (self )
+
+ Return the server software version string.
+
+
+
+
+
+
+
+
+
+ Class Variable Details
+
+
+
+error_message_format
+
+
+
+
+ Type:
+
+ str
+
+
+ Value:
+
+
+''' <head>
+<title>Error response</title>
+</head>
+<body>
+<h1>Error response</h1>
+<p>Error code %(code)d.
+<p>Message: %(message)s.
+<p>Error code explanation: %(code)s = %(explain)s.
+...
+
+
+
+
+
+
+monthname
+
+
+
+
+ Type:
+
+ list
+
+
+ Value:
+
+
+[None, 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug']
+
+
+
+
+
+
+protocol_version
+
+
+
+
+ Type:
+
+ str
+
+
+ Value:
+
+
+
+
+
+
+responses
+
+
+
+
+ Type:
+
+ dict
+
+
+ Value:
+
+
+{100: ('Continue', 'Request received, please continue'),
+ 101: ('Switching Protocols',
+ 'Switching to new protocol; obey Upgrade header'),
+ 200: ('OK', 'Request fulfilled, document follows'),
+ 201: ('Created', 'Document created, URL follows'),
+ 202: ('Accepted', 'Request accepted, processing continues off-line'),
+ 203: ('Non-Authoritative Information', 'Request fulfilled from cache'\
+),
+...
+
+
+
+
+
+
+server_version
+
+
+
+
+ Type:
+
+ str
+
+
+ Value:
+
+
+
+
+
+
+sys_version
+
+
+
+
+ Type:
+
+ str
+
+
+ Value:
+
+
+
+
+
+
+weekdayname
+
+
+
+
+ Type:
+
+ list
+
+
+ Value:
+
+
+['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/BaseHTTPServer.HTTPServer-class.html b/apps/sam/python/doc/epydoc/html/public/BaseHTTPServer.HTTPServer-class.html
new file mode 100644
index 000000000..04dee65bb
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/BaseHTTPServer.HTTPServer-class.html
@@ -0,0 +1,178 @@
+
+
+
+
+ BaseHTTPServer.HTTPServer
+
+
+
+
+
+
+
+
+
+
+ Module BaseHTTPServer ::
+ Class HTTPServer
+
+
+
+
+
+
+Class HTTPServer
+
+
+BaseServer
--+
+ |
+ TCPServer
--+
+ |
+ HTTPServer
+
+
+Known Subclasses:
+
+ HTTPServer
+
+
+
+
+
+
+
+ Method Summary
+
+ server_bind
(self )
+
+Override server_bind to store the server name.
+
+ Inherited from TCPServer
+
+ __init__
(self ,
+ server_address ,
+ RequestHandlerClass )
+
+Constructor.
+
+ close_request
(self ,
+ request )
+
+Called to clean up an individual request.
+
+ fileno
(self )
+
+Return socket file number.
+
+ get_request
(self )
+
+Get the request and client address from the socket.
+
+ server_activate
(self )
+
+Called by constructor to activate the server.
+
+ server_close
(self )
+
+Called to clean-up the server.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Variable Details
+
+
+
+allow_reuse_address
+
+
+
+
+ Type:
+
+ int
+
+
+ Value:
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/CGIHTTPServer.CGIHTTPRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/public/CGIHTTPServer.CGIHTTPRequestHandler-class.html
new file mode 100644
index 000000000..29f15f7bb
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/CGIHTTPServer.CGIHTTPRequestHandler-class.html
@@ -0,0 +1,466 @@
+
+
+
+
+ CGIHTTPServer.CGIHTTPRequestHandler
+
+
+
+
+
+
+
+
+
+
+ Module CGIHTTPServer ::
+ Class CGIHTTPRequestHandler
+
+
+
+
+
+
+Class CGIHTTPRequestHandler
+
+
+BaseRequestHandler
--+
+ |
+ StreamRequestHandler
--+
+ |
+ BaseHTTPRequestHandler
--+
+ |
+ SimpleHTTPRequestHandler
--+
+ |
+ CGIHTTPRequestHandler
+
+
+Known Subclasses:
+
+ CGIHTTPRequestHandler
+
+
+
+Complete HTTP server with GET, HEAD and POST commands.
+GET and HEAD also support running CGI scripts.
+The POST command is *only* implemented for CGI scripts.
+
+
+
+
+
+
+ Method Summary
+
+ do_POST
(self )
+
+Serve a POST request.
+
+ is_cgi
(self )
+
+Test whether self.path corresponds to a CGI script.
+
+ is_executable
(self ,
+ path )
+
+Test whether argument path is an executable file.
+
+ is_python
(self ,
+ path )
+
+Test whether argument path is a Python script.
+
+ run_cgi
(self )
+
+Execute a CGI script.
+
+ send_head
(self )
+
+Version of send_head that support CGI scripts
+
+ Inherited from SimpleHTTPRequestHandler
+
+ copyfile
(self ,
+ source ,
+ outputfile )
+
+Copy all data between two file objects.
+
+ do_GET
(self )
+
+Serve a GET request.
+
+ do_HEAD
(self )
+
+Serve a HEAD request.
+
+ guess_type
(self ,
+ path )
+
+Guess the type of a file.
+
+ list_directory
(self ,
+ path )
+
+Helper to produce a directory listing (absent index.html).
+
+ translate_path
(self ,
+ path )
+
+Translate a /-separated PATH to the local filename syntax.
+
+ Inherited from BaseHTTPRequestHandler
+
+ address_string
(self )
+
+Return the client address formatted for logging.
+
+ date_time_string
(self )
+
+Return the current date and time formatted for a message header.
+
+ end_headers
(self )
+
+Send the blank line ending the MIME headers.
+
+ handle
(self )
+
+Handle multiple requests if necessary.
+
+ handle_one_request
(self )
+
+Handle a single HTTP request.
+
+ log_date_time_string
(self )
+
+Return the current time formatted for logging.
+
+ log_error
(self ,
+ *args )
+
+Log an error.
+
+ log_message
(self ,
+ format ,
+ *args )
+
+Log an arbitrary message.
+
+ log_request
(self ,
+ code ,
+ size )
+
+Log an accepted request.
+
+ parse_request
(self )
+
+Parse a request (internal).
+
+ send_error
(self ,
+ code ,
+ message )
+
+Send and log an error reply.
+
+ send_header
(self ,
+ keyword ,
+ value )
+
+Send a MIME header.
+
+ send_response
(self ,
+ code ,
+ message )
+
+Send the response header and log the response code.
+
+ version_string
(self )
+
+Return the server software version string.
+
+ Inherited from StreamRequestHandler
+
+ finish
(self )
+
+
+ setup
(self )
+
+
+ Inherited from BaseRequestHandler
+
+ __init__
(self ,
+ request ,
+ client_address ,
+ server )
+
+
+
+
+
+
+
+ Class Variable Summary
+list
+cgi_directories
= ['/cgi-bin', '/htbin']
+
+bool
+have_fork
= False
+
+bool
+have_popen2
= True
+
+bool
+have_popen3
= True
+
+int
+rbufsize
= 0
+
+ Inherited from SimpleHTTPRequestHandler
+dict
+extensions_map
= {'': 'application/octet-stream', '.obj'...
+
+str
+server_version
= ' SimpleHTTP/0.6'
+
+
+ Inherited from BaseHTTPRequestHandler
+str
+error_message_format
= ' <head>\n<title>Error response</t...
+
+list
+monthname
= [None, 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'J...
+
+str
+protocol_version
= ' HTTP/1.0'
+
+dict
+responses
= {400: ('Bad request', 'Bad request syntax or...
+
+str
+sys_version
= ' Python/2.3.4'
+
+list
+weekdayname
= ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat',...
+
+
+ Inherited from StreamRequestHandler
+int
+wbufsize
= 0
+
+
+
+
+
+
+
+
+ do_POST (self )
+
+ Serve a POST request.
+ This is only implemented for CGI scripts.
+
+
+
+
+
+
+ is_cgi (self )
+
+ Test whether self.path corresponds to a CGI script.
+ Return a tuple (dir, rest) if self.path requires running a CGI
+ script, None if not. Note that rest begins with a slash if it is not
+ empty.
+ The default implementation tests whether the path begins with one of
+ the strings in the list self.cgi_directories (and the next character is
+ a '/' or the end of the string).
+
+
+
+
+
+
+ is_executable (self ,
+ path )
+
+ Test whether argument path is an executable file.
+
+
+
+
+
+
+ is_python (self ,
+ path )
+
+ Test whether argument path is a Python script.
+
+
+
+
+
+
+ run_cgi (self )
+
+ Execute a CGI script.
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Variable Details
+
+
+
+cgi_directories
+
+
+
+
+ Type:
+
+ list
+
+
+ Value:
+
+
+['/cgi-bin', '/htbin']
+
+
+
+
+
+
+have_fork
+
+
+
+
+ Type:
+
+ bool
+
+
+ Value:
+
+
+
+
+
+
+have_popen2
+
+
+
+
+ Type:
+
+ bool
+
+
+ Value:
+
+
+
+
+
+
+have_popen3
+
+
+
+
+ Type:
+
+ bool
+
+
+ Value:
+
+
+
+
+
+
+rbufsize
+
+
+
+
+ Type:
+
+ int
+
+
+ Value:
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/SimpleHTTPServer.SimpleHTTPRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/public/SimpleHTTPServer.SimpleHTTPRequestHandler-class.html
new file mode 100644
index 000000000..49948b064
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/SimpleHTTPServer.SimpleHTTPRequestHandler-class.html
@@ -0,0 +1,405 @@
+
+
+
+
+ SimpleHTTPServer.SimpleHTTPRequestHandler
+
+
+
+
+
+
+
+
+
+
+ Module SimpleHTTPServer ::
+ Class SimpleHTTPRequestHandler
+
+
+
+
+
+
+Class SimpleHTTPRequestHandler
+
+
+BaseRequestHandler
--+
+ |
+ StreamRequestHandler
--+
+ |
+ BaseHTTPRequestHandler
--+
+ |
+ SimpleHTTPRequestHandler
+
+
+Known Subclasses:
+
+ CGIHTTPRequestHandler
,
+ SimpleHTTPRequestHandler
+
+
+
+Simple HTTP request handler with GET and HEAD commands.
+This serves files from the current directory and any of its
+subdirectories. It assumes that all files are plain text files unless
+they have the extension ".html" in which case it assumes they
+are HTML files.
+The GET and HEAD requests are identical except that the HEAD request
+omits the actual contents of the file.
+
+
+
+
+
+
+ Method Summary
+
+ copyfile
(self ,
+ source ,
+ outputfile )
+
+Copy all data between two file objects.
+
+ do_GET
(self )
+
+Serve a GET request.
+
+ do_HEAD
(self )
+
+Serve a HEAD request.
+
+ guess_type
(self ,
+ path )
+
+Guess the type of a file.
+
+ list_directory
(self ,
+ path )
+
+Helper to produce a directory listing (absent index.html).
+
+ send_head
(self )
+
+Common code for GET and HEAD commands.
+
+ translate_path
(self ,
+ path )
+
+Translate a /-separated PATH to the local filename syntax.
+
+ Inherited from BaseHTTPRequestHandler
+
+ address_string
(self )
+
+Return the client address formatted for logging.
+
+ date_time_string
(self )
+
+Return the current date and time formatted for a message header.
+
+ end_headers
(self )
+
+Send the blank line ending the MIME headers.
+
+ handle
(self )
+
+Handle multiple requests if necessary.
+
+ handle_one_request
(self )
+
+Handle a single HTTP request.
+
+ log_date_time_string
(self )
+
+Return the current time formatted for logging.
+
+ log_error
(self ,
+ *args )
+
+Log an error.
+
+ log_message
(self ,
+ format ,
+ *args )
+
+Log an arbitrary message.
+
+ log_request
(self ,
+ code ,
+ size )
+
+Log an accepted request.
+
+ parse_request
(self )
+
+Parse a request (internal).
+
+ send_error
(self ,
+ code ,
+ message )
+
+Send and log an error reply.
+
+ send_header
(self ,
+ keyword ,
+ value )
+
+Send a MIME header.
+
+ send_response
(self ,
+ code ,
+ message )
+
+Send the response header and log the response code.
+
+ version_string
(self )
+
+Return the server software version string.
+
+ Inherited from StreamRequestHandler
+
+ finish
(self )
+
+
+ setup
(self )
+
+
+ Inherited from BaseRequestHandler
+
+ __init__
(self ,
+ request ,
+ client_address ,
+ server )
+
+
+
+
+
+
+
+ Class Variable Summary
+dict
+extensions_map
= {'': 'application/octet-stream', '.obj'...
+
+str
+server_version
= ' SimpleHTTP/0.6'
+
+
+ Inherited from BaseHTTPRequestHandler
+str
+error_message_format
= ' <head>\n<title>Error response</t...
+
+list
+monthname
= [None, 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'J...
+
+str
+protocol_version
= ' HTTP/1.0'
+
+dict
+responses
= {400: ('Bad request', 'Bad request syntax or...
+
+str
+sys_version
= ' Python/2.3.4'
+
+list
+weekdayname
= ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat',...
+
+
+ Inherited from StreamRequestHandler
+int
+rbufsize
= -1
+int
+wbufsize
= 0
+
+
+
+
+
+
+
+
+ copyfile (self ,
+ source ,
+ outputfile )
+
+ Copy all data between two file objects.
+ The SOURCE argument is a file object open for reading (or anything
+ with a read() method) and the DESTINATION argument is a file object
+ open for writing (or anything with a write() method).
+ The only reason for overriding this would be to change the block
+ size or perhaps to replace newlines by CRLF -- note however that this
+ the default server uses this to copy binary data as well.
+
+
+
+
+
+
+ do_GET (self )
+
+ Serve a GET request.
+
+
+
+
+
+
+ do_HEAD (self )
+
+ Serve a HEAD request.
+
+
+
+
+
+
+ guess_type (self ,
+ path )
+
+ Guess the type of a file.
+ Argument is a PATH (a filename).
+ Return value is a string of the form type/subtype, usable for a MIME
+ Content-type header.
+ The default implementation looks the file's extension up in the
+ table self.extensions_map, using text/plain as a default; however it
+ would be permissible (if slow) to look inside the data to make a better
+ guess.
+
+
+
+
+
+
+ list_directory (self ,
+ path )
+
+ Helper to produce a directory listing (absent index.html).
+ Return value is either a file object, or None (indicating an error).
+ In either case, the headers are sent, making the interface the same as
+ for send_head().
+
+
+
+
+
+
+ send_head (self )
+
+ Common code for GET and HEAD commands.
+ This sends the response code and MIME headers.
+ Return value is either a file object (which has to be copied to the
+ outputfile by the caller unless the command was HEAD, and must be
+ closed by the caller under all circumstances), or None, in which case
+ the caller has nothing further to do.
+
+
+
+
+
+
+ translate_path (self ,
+ path )
+
+ Translate a /-separated PATH to the local filename syntax.
+ Components that mean special things to the local file system (e.g.
+ drive or directory names) are ignored. (XXX They should probably be
+ diagnosed.)
+
+
+
+
+
+
+
+
+
+ Class Variable Details
+
+
+
+extensions_map
+
+
+
+
+ Type:
+
+ dict
+
+
+ Value:
+
+
+{'': 'application/octet-stream',
+ '.bin': 'application/octet-stream',
+ '.dll': 'application/octet-stream',
+ '.mp2': 'audio/mpeg',
+ '.obj': 'application/octet-stream',
+ '.ra': 'audio/x-pn-realaudio',
+ '.sgm': 'text/x-sgml',
+ '.texi': 'application/x-texinfo',
+...
+
+
+
+
+
+
+server_version
+
+
+
+
+ Type:
+
+ str
+
+
+ Value:
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/SocketServer.BaseRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/public/SocketServer.BaseRequestHandler-class.html
new file mode 100644
index 000000000..96ab88ed7
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/SocketServer.BaseRequestHandler-class.html
@@ -0,0 +1,102 @@
+
+
+
+
+ SocketServer.BaseRequestHandler
+
+
+
+
+
+
+
+
+
+
+ Module SocketServer ::
+ Class BaseRequestHandler
+
+
+
+
+
+
+Class BaseRequestHandler
+
+Known Subclasses:
+
+ BaseRequestHandler
,
+ DatagramRequestHandler
,
+ StreamRequestHandler
+
+
+
+Base class for request handler classes.
+This class is instantiated for each request to be handled. The
+constructor sets the instance variables request, client_address and
+server, and then calls the handle() method. To implement a specific
+service, all you need to do is to derive a class which defines a handle()
+method.
+The handle() method can find the request as self.request, the client
+address as self.client_address, and the server (in case it needs access
+to per-server information) as self.server. Since a separate instance is
+created for each request, the handle() method can define arbitrary other
+instance variariables.
+
+
+
+
+
+
+ Method Summary
+
+ __init__ (self ,
+ request ,
+ client_address ,
+ server )
+
+
+ finish (self )
+
+
+ handle (self )
+
+
+ setup (self )
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/SocketServer.DatagramRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/public/SocketServer.DatagramRequestHandler-class.html
new file mode 100644
index 000000000..590633df2
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/SocketServer.DatagramRequestHandler-class.html
@@ -0,0 +1,98 @@
+
+
+
+
+ SocketServer.DatagramRequestHandler
+
+
+
+
+
+
+
+
+
+
+ Module SocketServer ::
+ Class DatagramRequestHandler
+
+
+
+
+
+
+Class DatagramRequestHandler
+
+
+BaseRequestHandler
--+
+ |
+ DatagramRequestHandler
+
+
+Known Subclasses:
+
+ DatagramRequestHandler
+
+
+
+Define self.rfile and self.wfile for datagram sockets.
+
+
+
+
+
+
+ Method Summary
+
+ finish (self )
+
+
+ setup (self )
+
+
+ Inherited from BaseRequestHandler
+
+ __init__
(self ,
+ request ,
+ client_address ,
+ server )
+
+
+ handle
(self )
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/SocketServer.ForkingMixIn-class.html b/apps/sam/python/doc/epydoc/html/public/SocketServer.ForkingMixIn-class.html
new file mode 100644
index 000000000..2f27f85ec
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/SocketServer.ForkingMixIn-class.html
@@ -0,0 +1,172 @@
+
+
+
+
+ SocketServer.ForkingMixIn
+
+
+
+
+
+
+
+
+
+
+ Module SocketServer ::
+ Class ForkingMixIn
+
+
+
+
+
+
+Class ForkingMixIn
+
+Known Subclasses:
+
+ ForkingMixIn
+
+
+
+Mix-in class to handle each request in a new process.
+
+
+
+
+
+
+ Method Summary
+
+ collect_children
(self )
+
+Internal routine to wait for died children.
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Fork a new subprocess to process the request.
+
+
+
+
+
+
+
+
+
+
+
+
+ collect_children (self )
+
+ Internal routine to wait for died children.
+
+
+
+
+
+
+ process_request (self ,
+ request ,
+ client_address )
+
+ Fork a new subprocess to process the request.
+
+
+
+
+
+
+
+
+
+ Class Variable Details
+
+
+
+active_children
+
+
+
+
+ Type:
+
+ NoneType
+
+
+ Value:
+
+
+
+
+
+
+max_children
+
+
+
+
+ Type:
+
+ int
+
+
+ Value:
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/SocketServer.StreamRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/public/SocketServer.StreamRequestHandler-class.html
new file mode 100644
index 000000000..de7d07a3b
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/SocketServer.StreamRequestHandler-class.html
@@ -0,0 +1,158 @@
+
+
+
+
+ SocketServer.StreamRequestHandler
+
+
+
+
+
+
+
+
+
+
+ Module SocketServer ::
+ Class StreamRequestHandler
+
+
+
+
+
+
+Class StreamRequestHandler
+
+
+BaseRequestHandler
--+
+ |
+ StreamRequestHandler
+
+
+Known Subclasses:
+
+ BaseHTTPRequestHandler
,
+ StreamRequestHandler
+
+
+
+Define self.rfile and self.wfile for stream sockets.
+
+
+
+
+
+
+ Method Summary
+
+ finish (self )
+
+
+ setup (self )
+
+
+ Inherited from BaseRequestHandler
+
+ __init__
(self ,
+ request ,
+ client_address ,
+ server )
+
+
+ handle
(self )
+
+
+
+
+
+
+
+
+
+
+
+ Class Variable Details
+
+
+
+rbufsize
+
+
+
+
+ Type:
+
+ int
+
+
+ Value:
+
+
+
+
+
+
+wbufsize
+
+
+
+
+ Type:
+
+ int
+
+
+ Value:
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/SocketServer.TCPServer-class.html b/apps/sam/python/doc/epydoc/html/public/SocketServer.TCPServer-class.html
new file mode 100644
index 000000000..59fbc55d8
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/SocketServer.TCPServer-class.html
@@ -0,0 +1,349 @@
+
+
+
+
+ SocketServer.TCPServer
+
+
+
+
+
+
+
+
+
+
+ Module SocketServer ::
+ Class TCPServer
+
+
+
+
+
+
+Class TCPServer
+
+
+BaseServer
--+
+ |
+ TCPServer
+
+
+Known Subclasses:
+
+ HTTPServer
,
+ TCPServer
,
+ UDPServer
+
+
+
+
+Base class for various socket-based server classes.
+
+Defaults to synchronous IP stream (i.e., TCP).
+
+Methods for the caller:
+
+- __init__(server_address, RequestHandlerClass)
+- serve_forever()
+- handle_request() # if you don't use serve_forever()
+- fileno() -> int # for select()
+
+Methods that may be overridden:
+
+- server_bind()
+- server_activate()
+- get_request() -> request, client_address
+- verify_request(request, client_address)
+- process_request(request, client_address)
+- close_request(request)
+- handle_error()
+
+Methods for derived classes:
+
+- finish_request(request, client_address)
+
+Class variables that may be overridden by derived classes or
+instances:
+
+- address_family
+- socket_type
+- request_queue_size (only for stream sockets)
+- allow_reuse_address
+
+Instance variables:
+
+- server_address
+- RequestHandlerClass
+- socket
+
+
+
+
+
+
+
+ Method Summary
+
+ __init__
(self ,
+ server_address ,
+ RequestHandlerClass )
+
+Constructor.
+
+ close_request
(self ,
+ request )
+
+Called to clean up an individual request.
+
+ fileno
(self )
+
+Return socket file number.
+
+ get_request
(self )
+
+Get the request and client address from the socket.
+
+ server_activate
(self )
+
+Called by constructor to activate the server.
+
+ server_bind
(self )
+
+Called by constructor to bind the socket.
+
+ server_close
(self )
+
+Called to clean-up the server.
+
+
+
+
+
+
+
+
+
+
+
+
+ __init__ (self ,
+ server_address ,
+ RequestHandlerClass )
+ (Constructor)
+
+ Constructor. May be extended, do not override.
+
+ Overrides:
+ SocketServer.BaseServer.__init__
+
+
+
+
+
+
+
+
+
+ fileno (self )
+
+ Return socket file number.
+ Interface required by select().
+
+
+
+
+
+
+ get_request (self )
+
+ Get the request and client address from the socket.
+ May be overridden.
+
+
+
+
+
+
+
+
+
+ server_bind (self )
+
+ Called by constructor to bind the socket.
+ May be overridden.
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Variable Details
+
+
+
+address_family
+
+
+
+
+ Type:
+
+ int
+
+
+ Value:
+
+
+
+
+
+
+allow_reuse_address
+
+
+
+
+ Type:
+
+ bool
+
+
+ Value:
+
+
+
+
+
+
+request_queue_size
+
+
+
+
+ Type:
+
+ int
+
+
+ Value:
+
+
+
+
+
+
+socket_type
+
+
+
+
+ Type:
+
+ int
+
+
+ Value:
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/SocketServer.ThreadingMixIn-class.html b/apps/sam/python/doc/epydoc/html/public/SocketServer.ThreadingMixIn-class.html
new file mode 100644
index 000000000..609abd5b7
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/SocketServer.ThreadingMixIn-class.html
@@ -0,0 +1,156 @@
+
+
+
+
+ SocketServer.ThreadingMixIn
+
+
+
+
+
+
+
+
+
+
+ Module SocketServer ::
+ Class ThreadingMixIn
+
+
+
+
+
+
+Class ThreadingMixIn
+
+Known Subclasses:
+
+ ThreadingMixIn
+
+
+
+Mix-in class to handle each request in a new thread.
+
+
+
+
+
+
+ Method Summary
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Start a new thread to process the request.
+
+ process_request_thread
(self ,
+ request ,
+ client_address )
+
+Same as in BaseServer but as a thread.
+
+
+
+
+
+
+
+
+
+
+
+
+ process_request (self ,
+ request ,
+ client_address )
+
+ Start a new thread to process the request.
+
+
+
+
+
+
+ process_request_thread (self ,
+ request ,
+ client_address )
+
+ Same as in BaseServer but as a thread.
+ In addition, exception handling is done here.
+
+
+
+
+
+
+
+
+
+ Class Variable Details
+
+
+
+daemon_threads
+
+
+
+
+ Type:
+
+ bool
+
+
+ Value:
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/SocketServer.UDPServer-class.html b/apps/sam/python/doc/epydoc/html/public/SocketServer.UDPServer-class.html
new file mode 100644
index 000000000..20ea27808
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/SocketServer.UDPServer-class.html
@@ -0,0 +1,254 @@
+
+
+
+
+ SocketServer.UDPServer
+
+
+
+
+
+
+
+
+
+
+ Module SocketServer ::
+ Class UDPServer
+
+
+
+
+
+
+Class UDPServer
+
+
+BaseServer
--+
+ |
+ TCPServer
--+
+ |
+ UDPServer
+
+
+Known Subclasses:
+
+ UDPServer
+
+
+
+UDP server class.
+
+
+
+
+
+
+ Method Summary
+
+ close_request
(self ,
+ request )
+
+Called to clean up an individual request.
+
+ get_request
(self )
+
+Get the request and client address from the socket.
+
+ server_activate
(self )
+
+Called by constructor to activate the server.
+
+ Inherited from TCPServer
+
+ __init__
(self ,
+ server_address ,
+ RequestHandlerClass )
+
+Constructor.
+
+ fileno
(self )
+
+Return socket file number.
+
+ server_bind
(self )
+
+Called by constructor to bind the socket.
+
+ server_close
(self )
+
+Called to clean-up the server.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ get_request (self )
+
+ Get the request and client address from the socket.
+ May be overridden.
+
+ Overrides:
+ SocketServer.TCPServer.get_request
(inherited documentation)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Variable Details
+
+
+
+allow_reuse_address
+
+
+
+
+ Type:
+
+ bool
+
+
+ Value:
+
+
+
+
+
+
+max_packet_size
+
+
+
+
+ Type:
+
+ int
+
+
+ Value:
+
+
+
+
+
+
+socket_type
+
+
+
+
+ Type:
+
+ int
+
+
+ Value:
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/epydoc.css b/apps/sam/python/doc/epydoc/html/public/epydoc.css
new file mode 100644
index 000000000..46080bd0d
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/epydoc.css
@@ -0,0 +1,100 @@
+
+/* Body color */
+body { background: #ffffff; color: #000000; }
+
+/* Tables */
+table.summary, table.details, table.index
+ { background: #e8f0f8; color: #000000; }
+tr.summary, tr.details, tr.index
+ { background: #70b0f0; color: #000000;
+ text-align: left; font-size: 120%; }
+tr.group { background: #c0e0f8; color: #000000;
+ text-align: left; font-size: 120%;
+ font-style: italic; }
+
+/* Documentation page titles */
+h2.module { margin-top: 0.2em; }
+h2.class { margin-top: 0.2em; }
+
+/* Headings */
+h1.heading { font-size: +140%; font-style: italic;
+ font-weight: bold; }
+h2.heading { font-size: +125%; font-style: italic;
+ font-weight: bold; }
+h3.heading { font-size: +110%; font-style: italic;
+ font-weight: normal; }
+
+/* Base tree */
+pre.base-tree { font-size: 80%; margin: 0; }
+
+/* Details Sections */
+table.func-details { background: #e8f0f8; color: #000000;
+ border: 2px groove #c0d0d0;
+ padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
+h3.func-detail { background: transparent; color: #000000;
+ margin: 0 0 1em 0; }
+
+table.var-details { background: #e8f0f8; color: #000000;
+ border: 2px groove #c0d0d0;
+ padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
+h3.var-details { background: transparent; color: #000000;
+ margin: 0 0 1em 0; }
+
+/* Function signatures */
+.sig { background: transparent; color: #000000;
+ font-weight: bold; }
+.sig-name { background: transparent; color: #006080; }
+.sig-arg, .sig-kwarg, .sig-vararg
+ { background: transparent; color: #008060; }
+.sig-default { background: transparent; color: #602000; }
+.summary-sig { background: transparent; color: #000000; }
+.summary-sig-name { background: transparent; color: #204080; }
+.summary-sig-arg, .summary-sig-kwarg, .summary-sig-vararg
+ { background: transparent; color: #008060; }
+
+/* Doctest blocks */
+.py-src { background: transparent; color: #000000; }
+.py-prompt { background: transparent; color: #005050;
+ font-weight: bold;}
+.py-string { background: transparent; color: #006030; }
+.py-comment { background: transparent; color: #003060; }
+.py-keyword { background: transparent; color: #600000; }
+.py-output { background: transparent; color: #404040; }
+pre.doctestblock { background: #f4faff; color: #000000;
+ padding: .5em; margin: 1em;
+ border: 1px solid #708890; }
+table pre.doctestblock
+ { background: #dce4ec; color: #000000;
+ padding: .5em; margin: 1em;
+ border: 1px solid #708890; }
+
+/* Variable values */
+pre.variable { background: #dce4ec; color: #000000;
+ padding: .5em; margin: 0;
+ border: 1px solid #708890; }
+.variable-linewrap { background: transparent; color: #604000; }
+.variable-ellipsis { background: transparent; color: #604000; }
+.variable-quote { background: transparent; color: #604000; }
+.re { background: transparent; color: #000000; }
+.re-char { background: transparent; color: #006030; }
+.re-op { background: transparent; color: #600000; }
+.re-group { background: transparent; color: #003060; }
+.re-ref { background: transparent; color: #404040; }
+
+/* Navigation bar */
+table.navbar { background: #a0c0ff; color: #0000ff;
+ border: 2px groove #c0d0d0; }
+th.navbar { background: #a0c0ff; color: #0000ff; }
+th.navselect { background: #70b0ff; color: #000000; }
+.nomargin { margin: 0; }
+
+/* Links */
+a:link { background: transparent; color: #0000ff; }
+a:visited { background: transparent; color: #204080; }
+a.navbar:link { background: transparent; color: #0000ff;
+ text-decoration: none; }
+a.navbar:visited { background: transparent; color: #204080;
+ text-decoration: none; }
+
+/* Lists */
+ul { margin-top: 0; }
diff --git a/apps/sam/python/doc/epydoc/html/public/exceptions.Exception-class.html b/apps/sam/python/doc/epydoc/html/public/exceptions.Exception-class.html
new file mode 100644
index 000000000..84147af7b
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/exceptions.Exception-class.html
@@ -0,0 +1,80 @@
+
+
+
+
+ exceptions.Exception
+
+
+
+
+
+
+
+
+
+
+ Module exceptions ::
+ Class Exception
+
+
+
+
+
+
+Class Exception
+
+
+
+Common base class for all exceptions.
+
+
+
+
+
+
+ Method Summary
+
+ __init__ (... )
+
+
+ __getitem__ (... )
+
+
+ __str__ (... )
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/frames.html b/apps/sam/python/doc/epydoc/html/public/frames.html
new file mode 100644
index 000000000..a4d252f7b
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/frames.html
@@ -0,0 +1,13 @@
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/help.html b/apps/sam/python/doc/epydoc/html/public/help.html
new file mode 100644
index 000000000..9549eae0c
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/help.html
@@ -0,0 +1,224 @@
+
+
+
+
+ Help
+
+
+
+
+
+
+
+
+ API Documentation
+
+ This document contains the API (Application Programming Interface)
+documentation for this project. Documentation for the Python
+objects defined by the project is divided into separate pages for each
+package, module, and class. The API documentation also includes two
+pages containing information about the project as a whole: a trees
+page, and an index page.
+
+ Object Documentation
+
+ Each Package Documentation page contains:
+
+ A description of the package.
+ A list of the modules and sub-packages contained by the
+ package.
+ A summary of the classes defined by the package.
+ A summary of the functions defined by the package.
+ A summary of the variables defined by the package.
+ A detailed description of each function defined by the
+ package.
+ A detailed description of each variable defined by the
+ package.
+
+
+ Each Module Documentation page contains:
+
+ A description of the module.
+ A summary of the classes defined by the module.
+ A summary of the functions defined by the module.
+ A summary of the variables defined by the module.
+ A detailed description of each function defined by the
+ module.
+ A detailed description of each variable defined by the
+ module.
+
+
+ Each Class Documentation page contains:
+
+ A class inheritance diagram.
+ A list of known subclasses.
+ A description of the class.
+ A summary of the methods defined by the class.
+ A summary of the instance variables defined by the class.
+ A summary of the class (static) variables defined by the
+ class.
+ A detailed description of each method defined by the
+ class.
+ A detailed description of each instance variable defined by the
+ class.
+ A detailed description of each class (static) variable defined
+ by the class.
+
+
+ Project Documentation
+
+ The Trees page contains the module and class hierarchies:
+
+ The module hierarchy lists every package and module, with
+ modules grouped into packages. At the top level, and within each
+ package, modules and sub-packages are listed alphabetically.
+ The class hierarchy lists every class, grouped by base
+ class. If a class has more than one base class, then it will be
+ listed under each base class. At the top level, and under each base
+ class, classes are listed alphabetically.
+
+
+ The Index page contains indices of terms and
+ identifiers:
+
+ The term index lists every term indexed by any object's
+ documentation. For each term, the index provides links to each
+ place where the term is indexed.
+ The identifier index lists the (short) name of every package,
+ module, class, method, function, variable, and parameter. For each
+ identifier, the index provides a short description, and a link to
+ its documentation.
+
+
+ The Table of Contents
+
+ The table of contents occupies the two frames on the left side of
+the window. The upper-left frame displays the project
+contents , and the lower-left frame displays the module
+contents :
+
+
+
+
+
+ Project Contents ...
+
+ API Documentation Frame
+
+
+
+
+ Module Contents ...
+
+
+
+
+
+ The project contents frame contains a list of all packages
+and modules that are defined by the project. Clicking on an entry
+will display its contents in the module contents frame. Clicking on a
+special entry, labeled "Everything," will display the contents of
+the entire project.
+
+ The module contents frame contains a list of every
+submodule, class, type, exception, function, and variable defined by a
+module or package. Clicking on an entry will display its
+documentation in the API documentation frame. Clicking on the name of
+the module, at the top of the frame, will display the documentation
+for the module itself.
+
+ The "frames " and "no frames " buttons below the top
+navigation bar can be used to control whether the table of contents is
+displayed or not.
+
+ The Navigation Bar
+
+ A navigation bar is located at the top and bottom of every page.
+It indicates what type of page you are currently viewing, and allows
+you to go to related pages. The following table describes the labels
+on the navigation bar. Note that not some labels (such as
+[Parent]) are not displayed on all pages.
+
+
+
+ Label
+ Highlighted when...
+ Links to...
+
+ [Parent]
+ (never highlighted)
+ the parent of the current package
+ [Package]
+ viewing a package
+ the package containing the current object
+
+ [Module]
+ viewing a module
+ the module containing the current object
+
+ [Class]
+ viewing a class
+ the class containing the current object
+ [Trees]
+ viewing the trees page
+ the trees page
+ [Index]
+ viewing the index page
+ the index page
+ [Help]
+ viewing the help page
+ the help page
+
+
+ The "show private " and "hide private " buttons below
+the top navigation bar can be used to control whether documentation
+for private objects is displayed. Private objects are usually defined
+as objects whose (short) names begin with a single underscore, but do
+not end with an underscore. For example, "_x
",
+"__pprint
", and "epydoc.epytext._tokenize
"
+are private objects; but "re.sub
",
+"__init__
", and "type_
" are not. However,
+if a module defines the "__all__
" variable, then its
+contents are used to decide which objects are private.
+
+ A timestamp below the bottom navigation bar indicates when each
+page was last updated.
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p-module.html b/apps/sam/python/doc/epydoc/html/public/i2p-module.html
new file mode 100644
index 000000000..1f847d67d
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p-module.html
@@ -0,0 +1,78 @@
+
+
+
+
+ i2p
+
+
+
+
+
+
+
+
+
+
+ Package i2p
+
+
+
+
+
+
+Package i2p
+
+i2p -- I2P Python interface
+
+
+
+
+
+ Submodules
+
+ BaseHTTPServer
: Emulation of Python BaseHTTPServer module using I2P sockets.
+ CGIHTTPServer
: Emulation of Python CGIHTTPServer module using I2P sockets.
+ eep
: Eeproxy access module
+ router
: Router control module
+ select
: I2P Python API - Emulation of Python select module.
+ SimpleHTTPServer
: Emulation of Python SimpleHTTPServer module using I2P sockets.
+ socket
: Emulation of Python socket module using SAM.
+ SocketServer
: Emulation of Python SocketServer module using I2P sockets.
+ tunnel
: Exchange data between I2P and regular TCP sockets.
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.BaseHTTPServer-module.html b/apps/sam/python/doc/epydoc/html/public/i2p.BaseHTTPServer-module.html
new file mode 100644
index 000000000..b0339af35
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.BaseHTTPServer-module.html
@@ -0,0 +1,131 @@
+
+
+
+
+ i2p.BaseHTTPServer
+
+
+
+
+
+
+
+
+
+Module i2p.BaseHTTPServer
+
+Emulation of Python BaseHTTPServer module using I2P sockets.
+The Python module is described at
+http://www.python.org/doc/current/lib/module-BaseHTTPServer.html
+To get a server going, use:
+
+>>> from i2p import BaseHTTPServer
+>>> BaseHTTPServer.test().
+Consult the documentation for function test() to change basic server
+settings, such as the session name.
+A fully customizable example:
+
+>>> from i2p import BaseHTTPServer
+>>> session = "mytestxxx.i2p"
+>>> class MyServer(BaseHTTPServer.HTTPServer): pass
+>>> class MyRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): pass
+>>> httpd = MyServer(session, MyRequestHandler)
+>>> httpd.socket.dest
+(Base64 Destination of server)
+
+>>> httpd.serve_forever()
+
+
+
+
+
+ Classes
+
+ BaseHTTPRequestHandler
+ Same interface as Python class
+BaseHTTPServer.BaseHTTPRequestHandler.
+
+ HTTPServer
+ Same interface as Python class BaseHTTPServer.HTTPServer.
+
+
+
+
+
+
+ Function Summary
+
+ test
(HandlerClass ,
+ ServerClass ,
+ protocol ,
+ session )
+
+Test the HTTP request handler class.
+
+
+
+
+
+
+
+
+ test (HandlerClass =<class i2p.BaseHTTPServer.BaseHTTPRequestHandler at 0x00A... ,
+ ServerClass =<class i2p.BaseHTTPServer.HTTPServer at 0x00A2D960> ,
+ protocol ='HTTP/1.0' ,
+ session ='mytestxxx.i2p' )
+
+ Test the HTTP request handler class.
+ This runs an I2P TCP server under SAM session 'session'. If a single
+ command line argument is given, the argument is used instead as the SAM
+ session name.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.BaseHTTPServer.BaseHTTPRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.BaseHTTPServer.BaseHTTPRequestHandler-class.html
new file mode 100644
index 000000000..718200865
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.BaseHTTPServer.BaseHTTPRequestHandler-class.html
@@ -0,0 +1,210 @@
+
+
+
+
+ i2p.BaseHTTPServer.BaseHTTPRequestHandler
+
+
+
+
+
+
+
+
+
+Class BaseHTTPRequestHandler
+
+
+BaseRequestHandler
--+
+ |
+ StreamRequestHandler
--+
+ |
+ BaseHTTPRequestHandler
--+
+ |
+BaseRequestHandler
--+ |
+ | |
+ StreamRequestHandler
--+ |
+ | |
+ StreamRequestHandler
--+
+ |
+ BaseHTTPRequestHandler
+
+
+
+
+Same interface as Python class
+BaseHTTPServer.BaseHTTPRequestHandler.
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from BaseHTTPRequestHandler
+
+ address_string
(self )
+
+Return the client address formatted for logging.
+
+ date_time_string
(self )
+
+Return the current date and time formatted for a message header.
+
+ end_headers
(self )
+
+Send the blank line ending the MIME headers.
+
+ handle
(self )
+
+Handle multiple requests if necessary.
+
+ handle_one_request
(self )
+
+Handle a single HTTP request.
+
+ log_date_time_string
(self )
+
+Return the current time formatted for logging.
+
+ log_error
(self ,
+ *args )
+
+Log an error.
+
+ log_message
(self ,
+ format ,
+ *args )
+
+Log an arbitrary message.
+
+ log_request
(self ,
+ code ,
+ size )
+
+Log an accepted request.
+
+ parse_request
(self )
+
+Parse a request (internal).
+
+ send_error
(self ,
+ code ,
+ message )
+
+Send and log an error reply.
+
+ send_header
(self ,
+ keyword ,
+ value )
+
+Send a MIME header.
+
+ send_response
(self ,
+ code ,
+ message )
+
+Send the response header and log the response code.
+
+ version_string
(self )
+
+Return the server software version string.
+
+ Inherited from StreamRequestHandler
+
+ finish
(self )
+
+
+ setup
(self )
+
+
+ Inherited from BaseRequestHandler
+
+ __init__
(self ,
+ request ,
+ client_address ,
+ server )
+
+
+
+
+
+
+
+ Class Variable Summary
+
+ Inherited from BaseHTTPRequestHandler
+str
+error_message_format
= ' <head>\n<title>Error response</t...
+
+list
+monthname
= [None, 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'J...
+
+str
+protocol_version
= ' HTTP/1.0'
+
+dict
+responses
= {400: ('Bad request', 'Bad request syntax or...
+
+str
+server_version
= ' BaseHTTP/0.3'
+
+str
+sys_version
= ' Python/2.3.4'
+
+list
+weekdayname
= ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat',...
+
+
+ Inherited from StreamRequestHandler
+int
+rbufsize
= -1
+int
+wbufsize
= 0
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.BaseHTTPServer.HTTPServer-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.BaseHTTPServer.HTTPServer-class.html
new file mode 100644
index 000000000..2334eb6d1
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.BaseHTTPServer.HTTPServer-class.html
@@ -0,0 +1,150 @@
+
+
+
+
+ i2p.BaseHTTPServer.HTTPServer
+
+
+
+
+
+
+
+
+
+Class HTTPServer
+
+
+BaseServer
--+
+ |
+ TCPServer
--+
+ |
+ HTTPServer
--+
+ |
+BaseServer
--+ |
+ | |
+ BaseServer
--+ |
+ | |
+BaseServer
--+ | |
+ | | |
+ TCPServer
--+ |
+ | |
+ TCPServer
--+
+ |
+ HTTPServer
+
+
+
+
+Same interface as Python class BaseHTTPServer.HTTPServer.
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from TCPServer
+
+ __init__
(self ,
+ session ,
+ RequestHandlerClass )
+
+Constructor.
+
+ Inherited from HTTPServer
+
+ server_bind
(self )
+
+Override server_bind to store the server name.
+
+ Inherited from TCPServer
+
+ close_request
(self ,
+ request )
+
+Called to clean up an individual request.
+
+ fileno
(self )
+
+Return socket file number.
+
+ get_request
(self )
+
+Get the request and client address from the socket.
+
+ server_activate
(self )
+
+Called by constructor to activate the server.
+
+ server_close
(self )
+
+Called to clean-up the server.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.CGIHTTPServer-module.html b/apps/sam/python/doc/epydoc/html/public/i2p.CGIHTTPServer-module.html
new file mode 100644
index 000000000..5d78fe3eb
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.CGIHTTPServer-module.html
@@ -0,0 +1,126 @@
+
+
+
+
+ i2p.CGIHTTPServer
+
+
+
+
+
+
+
+
+
+Module i2p.CGIHTTPServer
+
+Emulation of Python CGIHTTPServer module using I2P sockets.
+The Python module is described at
+http://www.python.org/doc/current/lib/module-CGIHTTPServer.html
+To get a server going, use:
+
+>>> from i2p import CGIHTTPServer
+>>> CGIHTTPServer.test().
+Consult the documentation for function test() to change basic server
+settings, such as the session name.
+A fully customizable example:
+
+>>> from i2p import BaseHTTPServer, CGIHTTPServer
+>>> session = "mytestxxx.i2p"
+>>> class MyServer(BaseHTTPServer.HTTPServer): pass
+>>> class MyRequestHandler(CGIHTTPServer.CGIHTTPRequestHandler): pass
+>>> httpd = MyServer(session, MyRequestHandler)
+>>> httpd.socket.dest
+(Base64 Destination of server)
+
+>>> httpd.serve_forever()
+
+
+
+
+
+ Classes
+
+ CGIHTTPRequestHandler
+ Same interface as Python class
+CGIHTTPServer.CGIHTTPRequestHandler.
+
+
+
+
+
+
+ Function Summary
+
+ test
(HandlerClass ,
+ ServerClass ,
+ session )
+
+Test the HTTP CGI request handler class.
+
+
+
+
+
+
+
+
+ test (HandlerClass =<class i2p.CGIHTTPServer.CGIHTTPRequestHandler at 0x00A2D... ,
+ ServerClass =<class i2p.BaseHTTPServer.HTTPServer at 0x00A2D960> ,
+ session ='mytestxxx.i2p' )
+
+ Test the HTTP CGI request handler class.
+ This runs an I2P TCP server under SAM session 'session'. If a single
+ command line argument is given, the argument is used instead as the SAM
+ session name.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.CGIHTTPServer.CGIHTTPRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.CGIHTTPServer.CGIHTTPRequestHandler-class.html
new file mode 100644
index 000000000..7783d8cf0
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.CGIHTTPServer.CGIHTTPRequestHandler-class.html
@@ -0,0 +1,286 @@
+
+
+
+
+ i2p.CGIHTTPServer.CGIHTTPRequestHandler
+
+
+
+
+
+
+
+
+
+Class CGIHTTPRequestHandler
+
+
+BaseRequestHandler
--+
+ |
+ StreamRequestHandler
--+
+ |
+ BaseHTTPRequestHandler
--+
+ |
+ SimpleHTTPRequestHandler
--+
+ |
+ CGIHTTPRequestHandler
--+
+ |
+ CGIHTTPRequestHandler
+
+
+
+
+Same interface as Python class
+CGIHTTPServer.CGIHTTPRequestHandler.
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from CGIHTTPRequestHandler
+
+ do_POST
(self )
+
+Serve a POST request.
+
+ is_cgi
(self )
+
+Test whether self.path corresponds to a CGI script.
+
+ is_executable
(self ,
+ path )
+
+Test whether argument path is an executable file.
+
+ is_python
(self ,
+ path )
+
+Test whether argument path is a Python script.
+
+ run_cgi
(self )
+
+Execute a CGI script.
+
+ send_head
(self )
+
+Version of send_head that support CGI scripts
+
+ Inherited from SimpleHTTPRequestHandler
+
+ copyfile
(self ,
+ source ,
+ outputfile )
+
+Copy all data between two file objects.
+
+ do_GET
(self )
+
+Serve a GET request.
+
+ do_HEAD
(self )
+
+Serve a HEAD request.
+
+ guess_type
(self ,
+ path )
+
+Guess the type of a file.
+
+ list_directory
(self ,
+ path )
+
+Helper to produce a directory listing (absent index.html).
+
+ translate_path
(self ,
+ path )
+
+Translate a /-separated PATH to the local filename syntax.
+
+ Inherited from BaseHTTPRequestHandler
+
+ address_string
(self )
+
+Return the client address formatted for logging.
+
+ date_time_string
(self )
+
+Return the current date and time formatted for a message header.
+
+ end_headers
(self )
+
+Send the blank line ending the MIME headers.
+
+ handle
(self )
+
+Handle multiple requests if necessary.
+
+ handle_one_request
(self )
+
+Handle a single HTTP request.
+
+ log_date_time_string
(self )
+
+Return the current time formatted for logging.
+
+ log_error
(self ,
+ *args )
+
+Log an error.
+
+ log_message
(self ,
+ format ,
+ *args )
+
+Log an arbitrary message.
+
+ log_request
(self ,
+ code ,
+ size )
+
+Log an accepted request.
+
+ parse_request
(self )
+
+Parse a request (internal).
+
+ send_error
(self ,
+ code ,
+ message )
+
+Send and log an error reply.
+
+ send_header
(self ,
+ keyword ,
+ value )
+
+Send a MIME header.
+
+ send_response
(self ,
+ code ,
+ message )
+
+Send the response header and log the response code.
+
+ version_string
(self )
+
+Return the server software version string.
+
+ Inherited from StreamRequestHandler
+
+ finish
(self )
+
+
+ setup
(self )
+
+
+ Inherited from BaseRequestHandler
+
+ __init__
(self ,
+ request ,
+ client_address ,
+ server )
+
+
+
+
+
+
+
+ Class Variable Summary
+
+ Inherited from CGIHTTPRequestHandler
+list
+cgi_directories
= ['/cgi-bin', '/htbin']
+
+bool
+have_fork
= False
+
+bool
+have_popen2
= True
+
+bool
+have_popen3
= True
+
+int
+rbufsize
= 0
+
+ Inherited from SimpleHTTPRequestHandler
+dict
+extensions_map
= {'': 'application/octet-stream', '.obj'...
+
+str
+server_version
= ' SimpleHTTP/0.6'
+
+
+ Inherited from BaseHTTPRequestHandler
+str
+error_message_format
= ' <head>\n<title>Error response</t...
+
+list
+monthname
= [None, 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'J...
+
+str
+protocol_version
= ' HTTP/1.0'
+
+dict
+responses
= {400: ('Bad request', 'Bad request syntax or...
+
+str
+sys_version
= ' Python/2.3.4'
+
+list
+weekdayname
= ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat',...
+
+
+ Inherited from StreamRequestHandler
+int
+wbufsize
= 0
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.SimpleHTTPServer-module.html b/apps/sam/python/doc/epydoc/html/public/i2p.SimpleHTTPServer-module.html
new file mode 100644
index 000000000..09ea516c4
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.SimpleHTTPServer-module.html
@@ -0,0 +1,126 @@
+
+
+
+
+ i2p.SimpleHTTPServer
+
+
+
+
+
+
+
+
+
+
+ Package i2p ::
+ Module SimpleHTTPServer
+
+
+
+
+
+
+Module i2p.SimpleHTTPServer
+
+Emulation of Python SimpleHTTPServer module using I2P sockets.
+The Python module is described at
+http://www.python.org/doc/current/lib/module-SimpleHTTPServer.html
+To get a server going, use:
+
+>>> from i2p import SimpleHTTPServer
+>>> SimpleHTTPServer.test().
+Consult the documentation for function test() to change basic server
+settings, such as the session name.
+A fully customizable example:
+
+>>> from i2p import BaseHTTPServer, SimpleHTTPServer
+>>> session = "mytestxxx.i2p"
+>>> class MyServer(BaseHTTPServer.HTTPServer): pass
+>>> class MyRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): pass
+>>> httpd = MyServer(session, MyRequestHandler)
+>>> httpd.socket.dest
+(Base64 Destination of server)
+
+>>> httpd.serve_forever()
+
+
+
+
+
+
+
+
+
+ Function Summary
+
+ test
(HandlerClass ,
+ ServerClass ,
+ session )
+
+Test the HTTP simple request handler class.
+
+
+
+
+
+
+
+
+ test (HandlerClass =<class i2p.SimpleHTTPServer.SimpleHTTPRequestHandler at 0... ,
+ ServerClass =<class i2p.BaseHTTPServer.HTTPServer at 0x00A2D960> ,
+ session ='mytestxxx.i2p' )
+
+ Test the HTTP simple request handler class.
+ This runs an I2P TCP server under SAM session 'session'. If a single
+ command line argument is given, the argument is used instead as the SAM
+ session name.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.SimpleHTTPServer.SimpleHTTPRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.SimpleHTTPServer.SimpleHTTPRequestHandler-class.html
new file mode 100644
index 000000000..27477b434
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.SimpleHTTPServer.SimpleHTTPRequestHandler-class.html
@@ -0,0 +1,246 @@
+
+
+
+
+ i2p.SimpleHTTPServer.SimpleHTTPRequestHandler
+
+
+
+
+
+
+
+
+
+Class SimpleHTTPRequestHandler
+
+
+BaseRequestHandler
--+
+ |
+ StreamRequestHandler
--+
+ |
+ BaseHTTPRequestHandler
--+
+ |
+ SimpleHTTPRequestHandler
--+
+ |
+ SimpleHTTPRequestHandler
+
+
+
+
+Same interface as Python class
+SimpleHTTPServer.SimpleHTTPRequestHandler.
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from SimpleHTTPRequestHandler
+
+ copyfile
(self ,
+ source ,
+ outputfile )
+
+Copy all data between two file objects.
+
+ do_GET
(self )
+
+Serve a GET request.
+
+ do_HEAD
(self )
+
+Serve a HEAD request.
+
+ guess_type
(self ,
+ path )
+
+Guess the type of a file.
+
+ list_directory
(self ,
+ path )
+
+Helper to produce a directory listing (absent index.html).
+
+ send_head
(self )
+
+Common code for GET and HEAD commands.
+
+ translate_path
(self ,
+ path )
+
+Translate a /-separated PATH to the local filename syntax.
+
+ Inherited from BaseHTTPRequestHandler
+
+ address_string
(self )
+
+Return the client address formatted for logging.
+
+ date_time_string
(self )
+
+Return the current date and time formatted for a message header.
+
+ end_headers
(self )
+
+Send the blank line ending the MIME headers.
+
+ handle
(self )
+
+Handle multiple requests if necessary.
+
+ handle_one_request
(self )
+
+Handle a single HTTP request.
+
+ log_date_time_string
(self )
+
+Return the current time formatted for logging.
+
+ log_error
(self ,
+ *args )
+
+Log an error.
+
+ log_message
(self ,
+ format ,
+ *args )
+
+Log an arbitrary message.
+
+ log_request
(self ,
+ code ,
+ size )
+
+Log an accepted request.
+
+ parse_request
(self )
+
+Parse a request (internal).
+
+ send_error
(self ,
+ code ,
+ message )
+
+Send and log an error reply.
+
+ send_header
(self ,
+ keyword ,
+ value )
+
+Send a MIME header.
+
+ send_response
(self ,
+ code ,
+ message )
+
+Send the response header and log the response code.
+
+ version_string
(self )
+
+Return the server software version string.
+
+ Inherited from StreamRequestHandler
+
+ finish
(self )
+
+
+ setup
(self )
+
+
+ Inherited from BaseRequestHandler
+
+ __init__
(self ,
+ request ,
+ client_address ,
+ server )
+
+
+
+
+
+
+
+ Class Variable Summary
+
+ Inherited from SimpleHTTPRequestHandler
+dict
+extensions_map
= {'': 'application/octet-stream', '.obj'...
+
+str
+server_version
= ' SimpleHTTP/0.6'
+
+
+ Inherited from BaseHTTPRequestHandler
+str
+error_message_format
= ' <head>\n<title>Error response</t...
+
+list
+monthname
= [None, 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'J...
+
+str
+protocol_version
= ' HTTP/1.0'
+
+dict
+responses
= {400: ('Bad request', 'Bad request syntax or...
+
+str
+sys_version
= ' Python/2.3.4'
+
+list
+weekdayname
= ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat',...
+
+
+ Inherited from StreamRequestHandler
+int
+rbufsize
= -1
+int
+wbufsize
= 0
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer-module.html b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer-module.html
new file mode 100644
index 000000000..81942678b
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer-module.html
@@ -0,0 +1,106 @@
+
+
+
+
+ i2p.SocketServer
+
+
+
+
+
+
+
+
+
+Module i2p.SocketServer
+
+Emulation of Python SocketServer module using I2P sockets.
+The Python module is described at
+http://www.python.org/doc/current/lib/module-SocketServer.html
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.BaseRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.BaseRequestHandler-class.html
new file mode 100644
index 000000000..b20184f64
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.BaseRequestHandler-class.html
@@ -0,0 +1,92 @@
+
+
+
+
+ i2p.SocketServer.BaseRequestHandler
+
+
+
+
+
+
+
+
+
+Class BaseRequestHandler
+
+
+BaseRequestHandler
--+
+ |
+ BaseRequestHandler
+
+
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from BaseRequestHandler
+
+ __init__
(self ,
+ request ,
+ client_address ,
+ server )
+
+
+ finish
(self )
+
+
+ handle
(self )
+
+
+ setup
(self )
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.BaseServer-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.BaseServer-class.html
new file mode 100644
index 000000000..e08c061ac
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.BaseServer-class.html
@@ -0,0 +1,72 @@
+
+
+
+
+ i2p.SocketServer.BaseServer
+
+
+
+
+
+
+
+
+
+Class BaseServer
+
+
+BaseServer
--+
+ |
+ BaseServer
+
+
+Known Subclasses:
+
+ TCPServer
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.DatagramRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.DatagramRequestHandler-class.html
new file mode 100644
index 000000000..8890a85e7
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.DatagramRequestHandler-class.html
@@ -0,0 +1,96 @@
+
+
+
+
+ i2p.SocketServer.DatagramRequestHandler
+
+
+
+
+
+
+
+
+
+Class DatagramRequestHandler
+
+
+BaseRequestHandler
--+
+ |
+DatagramRequestHandler
--+
+ |
+ DatagramRequestHandler
+
+
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from DatagramRequestHandler
+
+ finish
(self )
+
+
+ setup
(self )
+
+
+ Inherited from BaseRequestHandler
+
+ __init__
(self ,
+ request ,
+ client_address ,
+ server )
+
+
+ handle
(self )
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ForkingMixIn-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ForkingMixIn-class.html
new file mode 100644
index 000000000..06b816ef3
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ForkingMixIn-class.html
@@ -0,0 +1,105 @@
+
+
+
+
+ i2p.SocketServer.ForkingMixIn
+
+
+
+
+
+
+
+
+
+Class ForkingMixIn
+
+
+ForkingMixIn
--+
+ |
+ ForkingMixIn
+
+
+Known Subclasses:
+
+ ForkingTCPServer
,
+ ForkingUDPServer
+
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from ForkingMixIn
+
+ collect_children
(self )
+
+Internal routine to wait for died children.
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Fork a new subprocess to process the request.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ForkingTCPServer-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ForkingTCPServer-class.html
new file mode 100644
index 000000000..cd83a3349
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ForkingTCPServer-class.html
@@ -0,0 +1,160 @@
+
+
+
+
+ i2p.SocketServer.ForkingTCPServer
+
+
+
+
+
+
+
+
+
+Class ForkingTCPServer
+
+
+ ForkingMixIn
--+
+ |
+ ForkingMixIn
--+
+ |
+BaseServer
--+ |
+ | |
+ BaseServer
--+ |
+ | |
+BaseServer
--+ | |
+ | | |
+ TCPServer
--+ |
+ | |
+ TCPServer
--+
+ |
+ ForkingTCPServer
+
+
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from ForkingMixIn
+
+ collect_children
(self )
+
+Internal routine to wait for died children.
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Fork a new subprocess to process the request.
+
+ Inherited from TCPServer
+
+ __init__
(self ,
+ session ,
+ RequestHandlerClass )
+
+Constructor.
+
+ Inherited from TCPServer
+
+ close_request
(self ,
+ request )
+
+Called to clean up an individual request.
+
+ fileno
(self )
+
+Return socket file number.
+
+ get_request
(self )
+
+Get the request and client address from the socket.
+
+ server_activate
(self )
+
+Called by constructor to activate the server.
+
+ server_bind
(self )
+
+Called by constructor to bind the socket.
+
+ server_close
(self )
+
+Called to clean-up the server.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ForkingUDPServer-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ForkingUDPServer-class.html
new file mode 100644
index 000000000..05447233a
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ForkingUDPServer-class.html
@@ -0,0 +1,174 @@
+
+
+
+
+ i2p.SocketServer.ForkingUDPServer
+
+
+
+
+
+
+
+
+
+Class ForkingUDPServer
+
+
+ ForkingMixIn
--+
+ |
+ ForkingMixIn
--+
+ |
+BaseServer
--+ |
+ | |
+ BaseServer
--+ |
+ | |
+BaseServer
--+ | |
+ | | |
+ TCPServer
--+ |
+ | |
+ TCPServer
--+ |
+ | |
+BaseServer
--+ | |
+ | | |
+ TCPServer
--+ | |
+ | | |
+ UDPServer
--+ |
+ | |
+ UDPServer
--+
+ |
+ ForkingUDPServer
+
+
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from ForkingMixIn
+
+ collect_children
(self )
+
+Internal routine to wait for died children.
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Fork a new subprocess to process the request.
+
+ Inherited from TCPServer
+
+ __init__
(self ,
+ session ,
+ RequestHandlerClass )
+
+Constructor.
+
+ Inherited from UDPServer
+
+ close_request
(self ,
+ request )
+
+Called to clean up an individual request.
+
+ get_request
(self )
+
+Get the request and client address from the socket.
+
+ server_activate
(self )
+
+Called by constructor to activate the server.
+
+ Inherited from TCPServer
+
+ fileno
(self )
+
+Return socket file number.
+
+ server_bind
(self )
+
+Called by constructor to bind the socket.
+
+ server_close
(self )
+
+Called to clean-up the server.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.StreamRequestHandler-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.StreamRequestHandler-class.html
new file mode 100644
index 000000000..9a60447f8
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.StreamRequestHandler-class.html
@@ -0,0 +1,113 @@
+
+
+
+
+ i2p.SocketServer.StreamRequestHandler
+
+
+
+
+
+
+
+
+
+Class StreamRequestHandler
+
+
+BaseRequestHandler
--+
+ |
+ StreamRequestHandler
--+
+ |
+ StreamRequestHandler
+
+
+Known Subclasses:
+
+ BaseHTTPRequestHandler
+
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from StreamRequestHandler
+
+ finish
(self )
+
+
+ setup
(self )
+
+
+ Inherited from BaseRequestHandler
+
+ __init__
(self ,
+ request ,
+ client_address ,
+ server )
+
+
+ handle
(self )
+
+
+
+
+
+
+
+ Class Variable Summary
+
+ Inherited from StreamRequestHandler
+int
+rbufsize
= -1
+int
+wbufsize
= 0
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.TCPServer-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.TCPServer-class.html
new file mode 100644
index 000000000..bd4bf3a91
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.TCPServer-class.html
@@ -0,0 +1,193 @@
+
+
+
+
+ i2p.SocketServer.TCPServer
+
+
+
+
+
+
+
+
+
+Class TCPServer
+
+
+BaseServer
--+
+ |
+ BaseServer
--+
+ |
+BaseServer
--+ |
+ | |
+ TCPServer
--+
+ |
+ TCPServer
+
+
+Known Subclasses:
+
+ ForkingTCPServer
,
+ HTTPServer
,
+ ThreadingTCPServer
,
+ UDPServer
+
+
+
+
+
+
+
+ Method Summary
+
+ __init__
(self ,
+ session ,
+ RequestHandlerClass )
+
+Constructor.
+
+ Inherited from TCPServer
+
+ close_request
(self ,
+ request )
+
+Called to clean up an individual request.
+
+ fileno
(self )
+
+Return socket file number.
+
+ get_request
(self )
+
+Get the request and client address from the socket.
+
+ server_activate
(self )
+
+Called by constructor to activate the server.
+
+ server_bind
(self )
+
+Called by constructor to bind the socket.
+
+ server_close
(self )
+
+Called to clean-up the server.
+
+
+
+
+
+
+
+
+
+
+
+
+ __init__ (self ,
+ session ,
+ RequestHandlerClass )
+ (Constructor)
+
+ Constructor. May be extended, do not override.
+ The 'session' argument indicates the SAM session name that should be
+ used for the server. See module i2p.socket for details on SAM
+ sessions.
+
+ Overrides:
+ SocketServer.TCPServer.__init__
+
+
+
+
+
+
+
+
+
+ Class Variable Details
+
+
+
+socket_type
+
+
+
+
+ Type:
+
+ int
+
+
+ Value:
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ThreadingMixIn-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ThreadingMixIn-class.html
new file mode 100644
index 000000000..452791eed
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ThreadingMixIn-class.html
@@ -0,0 +1,106 @@
+
+
+
+
+ i2p.SocketServer.ThreadingMixIn
+
+
+
+
+
+
+
+
+
+Class ThreadingMixIn
+
+
+ThreadingMixIn
--+
+ |
+ ThreadingMixIn
+
+
+Known Subclasses:
+
+ ThreadingTCPServer
,
+ ThreadingUDPServer
+
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from ThreadingMixIn
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Start a new thread to process the request.
+
+ process_request_thread
(self ,
+ request ,
+ client_address )
+
+Same as in BaseServer but as a thread.
+
+
+
+
+
+
+ Class Variable Summary
+
+ Inherited from ThreadingMixIn
+bool
+daemon_threads
= False
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ThreadingTCPServer-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ThreadingTCPServer-class.html
new file mode 100644
index 000000000..807994dc2
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ThreadingTCPServer-class.html
@@ -0,0 +1,161 @@
+
+
+
+
+ i2p.SocketServer.ThreadingTCPServer
+
+
+
+
+
+
+
+
+
+Class ThreadingTCPServer
+
+
+BaseServer
--+
+ |
+ BaseServer
--+
+ |
+BaseServer
--+ |
+ | |
+ TCPServer
--+
+ |
+ TCPServer
--+
+ |
+ThreadingMixIn
--+ |
+ | |
+ ThreadingMixIn
--+
+ |
+ ThreadingTCPServer
+
+
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from ThreadingMixIn
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Start a new thread to process the request.
+
+ process_request_thread
(self ,
+ request ,
+ client_address )
+
+Same as in BaseServer but as a thread.
+
+ Inherited from TCPServer
+
+ __init__
(self ,
+ session ,
+ RequestHandlerClass )
+
+Constructor.
+
+ Inherited from TCPServer
+
+ close_request
(self ,
+ request )
+
+Called to clean up an individual request.
+
+ fileno
(self )
+
+Return socket file number.
+
+ get_request
(self )
+
+Get the request and client address from the socket.
+
+ server_activate
(self )
+
+Called by constructor to activate the server.
+
+ server_bind
(self )
+
+Called by constructor to bind the socket.
+
+ server_close
(self )
+
+Called to clean-up the server.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ThreadingUDPServer-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ThreadingUDPServer-class.html
new file mode 100644
index 000000000..8514ca5c9
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.ThreadingUDPServer-class.html
@@ -0,0 +1,175 @@
+
+
+
+
+ i2p.SocketServer.ThreadingUDPServer
+
+
+
+
+
+
+
+
+
+Class ThreadingUDPServer
+
+
+ ThreadingMixIn
--+
+ |
+ ThreadingMixIn
--+
+ |
+BaseServer
--+ |
+ | |
+ BaseServer
--+ |
+ | |
+BaseServer
--+ | |
+ | | |
+ TCPServer
--+ |
+ | |
+ TCPServer
--+ |
+ | |
+BaseServer
--+ | |
+ | | |
+ TCPServer
--+ | |
+ | | |
+ UDPServer
--+ |
+ | |
+ UDPServer
--+
+ |
+ ThreadingUDPServer
+
+
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from ThreadingMixIn
+
+ process_request
(self ,
+ request ,
+ client_address )
+
+Start a new thread to process the request.
+
+ process_request_thread
(self ,
+ request ,
+ client_address )
+
+Same as in BaseServer but as a thread.
+
+ Inherited from TCPServer
+
+ __init__
(self ,
+ session ,
+ RequestHandlerClass )
+
+Constructor.
+
+ Inherited from UDPServer
+
+ close_request
(self ,
+ request )
+
+Called to clean up an individual request.
+
+ get_request
(self )
+
+Get the request and client address from the socket.
+
+ server_activate
(self )
+
+Called by constructor to activate the server.
+
+ Inherited from TCPServer
+
+ fileno
(self )
+
+Return socket file number.
+
+ server_bind
(self )
+
+Called by constructor to bind the socket.
+
+ server_close
(self )
+
+Called to clean-up the server.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.UDPServer-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.UDPServer-class.html
new file mode 100644
index 000000000..87cbbd4dc
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.SocketServer.UDPServer-class.html
@@ -0,0 +1,155 @@
+
+
+
+
+ i2p.SocketServer.UDPServer
+
+
+
+
+
+
+
+
+
+Class UDPServer
+
+
+BaseServer
--+
+ |
+ BaseServer
--+
+ |
+BaseServer
--+ |
+ | |
+ TCPServer
--+
+ |
+ TCPServer
--+
+ |
+BaseServer
--+ |
+ | |
+ TCPServer
--+ |
+ | |
+ UDPServer
--+
+ |
+ UDPServer
+
+
+Known Subclasses:
+
+ ForkingUDPServer
,
+ ThreadingUDPServer
+
+
+
+
+
+
+
+ Method Summary
+
+ Inherited from TCPServer
+
+ __init__
(self ,
+ session ,
+ RequestHandlerClass )
+
+Constructor.
+
+ Inherited from UDPServer
+
+ close_request
(self ,
+ request )
+
+Called to clean up an individual request.
+
+ get_request
(self )
+
+Get the request and client address from the socket.
+
+ server_activate
(self )
+
+Called by constructor to activate the server.
+
+ Inherited from TCPServer
+
+ fileno
(self )
+
+Return socket file number.
+
+ server_bind
(self )
+
+Called by constructor to bind the socket.
+
+ server_close
(self )
+
+Called to clean-up the server.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.eep-module.html b/apps/sam/python/doc/epydoc/html/public/i2p.eep-module.html
new file mode 100644
index 000000000..d225cd3fb
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.eep-module.html
@@ -0,0 +1,107 @@
+
+
+
+
+ i2p.eep
+
+
+
+
+
+
+
+
+
+Module i2p.eep
+
+Eeproxy access module
+
+
+
+
+
+ Function Summary
+
+ urlget
(url ,
+ eepaddr )
+
+Get contents of an eepsite.
+
+ urlopen
(url ,
+ eepaddr )
+
+Like urllib2.urlopen(url), but only works for eep-sites.
+
+
+
+
+
+
+
+
+ urlget (url ,
+ eepaddr ='127.0.0.1:4444' )
+
+ Get contents of an eepsite. Example: urlget('http://duck.i2p/').
+
+
+
+
+
+
+ urlopen (url ,
+ eepaddr ='127.0.0.1:4444' )
+
+ Like urllib2.urlopen(url), but only works for eep-sites. Example: f
+ = urlopen('http://duck.i2p/index.html')
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.pylib-module.html b/apps/sam/python/doc/epydoc/html/public/i2p.pylib-module.html
new file mode 100644
index 000000000..0a2e8b1ee
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.pylib-module.html
@@ -0,0 +1,59 @@
+
+
+
+
+ i2p.pylib
+
+
+
+
+
+
+
+
+
+Package i2p.pylib
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.router-module.html b/apps/sam/python/doc/epydoc/html/public/i2p.router-module.html
new file mode 100644
index 000000000..a859d5111
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.router-module.html
@@ -0,0 +1,237 @@
+
+
+
+
+ i2p.router
+
+
+
+
+
+
+
+
+
+Module i2p.router
+
+Router control module
+
+
+
+
+
+ Function Summary
+
+ check
(dir )
+
+Checks whether a locally installed router is running.
+
+ find
(dir )
+
+Find the absolute path to a locally installed I2P router.
+
+ start
(dir ,
+ hidden )
+
+Start a locally installed I2P router.
+
+ stop
(dir ,
+ force )
+
+Stop a locally installed I2P router, if it was started by the current
+Python program.
+
+
+
+
+
+
+
+
+
+
+
+
+ check (dir =None )
+
+ Checks whether a locally installed router is running. Does nothing
+ if successful, otherwise raises i2p.RouterError.
+ An I2P installation is located by using find(dir). The router.config
+ file is parsed for 'router.adminPort'. This port is queried to
+ determine whether the router is running.
+
+
+
+
+
+
+ find (dir =None )
+
+ Find the absolute path to a locally installed I2P router.
+ An I2P installation is located by looking in the environment I2P,
+ then in PATH, then in the dir argument given to the function. It looks
+ for startRouter.sh or startRouter.bat. Raises ValueError if an I2P
+ installation could not be located.
+
+
+
+
+
+
+ start (dir =None ,
+ hidden =False )
+
+ Start a locally installed I2P router. Does nothing if the router has
+ already been started.
+ An I2P installation is located by using find(dir).
+ If hidden is True, do not show a terminal for the router.
+
+
+
+
+
+
+ stop (dir =None ,
+ force =False )
+
+ Stop a locally installed I2P router, if it was started by the
+ current Python program. If force is True, stop the router even if it
+ was started by another process. Do nothing if force is False and the
+ router was started by another program.
+ The file 'router.config' is located using the same search process
+ used for find(dir). It is parsed for 'router.shutdownPassword' and
+ 'router.adminPort'. The router is shut down through the admin port.
+ Raises i2p.RouterError if the I2P router is running but cannot be
+ stopped. You must uncomment the 'router.shutdownPassword' line for this
+ command to work.
+
+
+
+
+
+
+
+
+
+
+check_addrlist
+
+
+
+
+ Type:
+
+ list
+
+
+ Value:
+
+
+['127.0.0.1:7656', '127.0.0.1:4444']
+
+
+
+
+
+
+our_router
+
+
+
+
+ Type:
+
+ bool
+
+
+ Value:
+
+
+
+
+
+
+our_router_lock
+
+
+
+
+ Type:
+
+ lock
+
+
+ Value:
+
+
+<thread.lock object at 0x0089D120>
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.select-module.html b/apps/sam/python/doc/epydoc/html/public/i2p.select-module.html
new file mode 100644
index 000000000..fa9bbd2c0
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.select-module.html
@@ -0,0 +1,120 @@
+
+
+
+
+ i2p.select
+
+
+
+
+
+
+
+
+
+Module i2p.select
+
+I2P Python API - Emulation of Python select module.
+
+
+
+
+
+ Classes
+
+ Poll
+ Class implementing poll interface.
+
+
+
+
+
+
+ Function Summary
+
+ poll
()
+
+Returns a polling object.
+
+ select
(readlist ,
+ writelist ,
+ errlist ,
+ timeout )
+
+Performs a select call.
+
+
+
+
+
+
+
+
+ poll ()
+
+ Returns a polling object. Works on SAM sockets and Python sockets.
+ See select.poll() in the Python library for more information.
+
+
+
+
+
+
+ select (readlist ,
+ writelist ,
+ errlist ,
+ timeout =None )
+
+ Performs a select call. Works on SAM sockets and Python sockets. See
+ select.select() in the Python library for more information.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.select.Poll-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.select.Poll-class.html
new file mode 100644
index 000000000..dc8a7b43b
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.select.Poll-class.html
@@ -0,0 +1,89 @@
+
+
+
+
+ i2p.select.Poll
+
+
+
+
+
+
+
+
+
+Class Poll
+
+
+
+Class implementing poll interface. Works for Python sockets and SAM
+sockets.
+
+
+
+
+
+
+ Method Summary
+
+ __init__ (self )
+
+
+ poll (self ,
+ timeout )
+
+
+ register (self ,
+ fd ,
+ eventmask )
+
+
+ unregister (self ,
+ fd )
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.socket-module.html b/apps/sam/python/doc/epydoc/html/public/i2p.socket-module.html
new file mode 100644
index 000000000..3b9b38138
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.socket-module.html
@@ -0,0 +1,186 @@
+
+
+
+
+ i2p.socket
+
+
+
+
+
+
+
+
+
+Module i2p.socket
+
+Emulation of Python socket module using SAM.
+
+
+
+
+
+ Classes
+
+ Socket
+ A socket object.
+
+
+
+
+
+
+ Exceptions
+
+ BlockError
+ Socket call would have blocked.
+
+ ClosedError
+ A command was used on a socket that closed gracefully.
+
+ Error
+ Base class for all SAM errors.
+
+ NetworkError
+ Network error occurred within I2P.
+
+ Timeout
+ Time out occurred for a socket which had timeouts enabled via a prior
+call to settimeout().
+
+
+
+
+
+
+ Function Summary
+
+ resolve
(host ,
+ samaddr )
+
+Resolve I2P host name --> I2P Destination.
+
+ socket
(session ,
+ type ,
+ samaddr ,
+ **kwargs )
+
+Create a new socket.
+
+
+
+
+
+
+
+
+ resolve (host ,
+ samaddr ='127.0.0.1:7656' )
+
+ Resolve I2P host name --> I2P Destination. Returns the same
+ string if host is already a Destination.
+
+
+
+
+
+
+ socket (session ,
+ type ,
+ samaddr ='127.0.0.1:7656' ,
+ **kwargs )
+
+ Create a new socket. Argument session should be a session name -- if
+ the name has not yet been used, an I2P Destination will be created for
+ it, otherwise, the existing Destination will be re-used. An empty
+ session string causes a transient session to be created. Argument type
+ is one of SOCK_STREAM, SOCK_DGRAM, or SOCK_RAW.
+ I2P configuration keyword arguments:
+
+
+ in_depth - depth of incoming tunnel (default 2)
+
+
+ out_depth - depth of outgoing tunnel (default 2)
+
+
+ A single session may be shared by more than one socket, if the
+ sockets are the same type, and if the sockets are created within the
+ same Python process. The socket objects are multithread-safe.
+ Examples:
+
+>>> a = i2p.socket('Alice' , i2p.SOCK_STREAM)
+>>> b = i2p.socket('Bob' , i2p.SOCK_DGRAM,
+in_depth=2, out_depth=5)
+ The created object behaves identically to a socket from module
+ socket, with the following exceptions:
+
+
+ I2P Destinations are used as address arguments [1].
+
+
+ bind is a no-op: sockets are always bound.
+
+
+ send* methods send all data and are non-blocking.
+
+
+ A given session name can only be open in a single Python program at
+ a time. If you need to overcome this limitation, consider patching
+ I2P.
+ [1]. Alternatively, a host name can be used as an address. It will
+ be resolved using hosts.txt.
+ For details on how to use socket objects, see
+ http://www.python.org/doc/current/lib/socket-objects.html
+ See the examples directory for code examples.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.socket.BlockError-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.socket.BlockError-class.html
new file mode 100644
index 000000000..989bd9d1f
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.socket.BlockError-class.html
@@ -0,0 +1,93 @@
+
+
+
+
+ i2p.socket.BlockError
+
+
+
+
+
+
+
+
+
+Class BlockError
+
+
+Exception
--+
+ |
+ Error
--+
+ |
+ Error
--+
+ |
+ BlockError
+
+
+
+
+Socket call would have blocked.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.socket.ClosedError-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.socket.ClosedError-class.html
new file mode 100644
index 000000000..bd1605bcd
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.socket.ClosedError-class.html
@@ -0,0 +1,93 @@
+
+
+
+
+ i2p.socket.ClosedError
+
+
+
+
+
+
+
+
+
+Class ClosedError
+
+
+Exception
--+
+ |
+ Error
--+
+ |
+ Error
--+
+ |
+ ClosedError
+
+
+
+
+A command was used on a socket that closed gracefully.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.socket.Error-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.socket.Error-class.html
new file mode 100644
index 000000000..69a305ae4
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.socket.Error-class.html
@@ -0,0 +1,98 @@
+
+
+
+
+ i2p.socket.Error
+
+
+
+
+
+
+
+
+
+Class Error
+
+
+Exception
--+
+ |
+ Error
--+
+ |
+ Error
+
+
+Known Subclasses:
+
+ BlockError
,
+ ClosedError
,
+ NetworkError
,
+ Timeout
+
+
+
+Base class for all SAM errors.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.socket.NetworkError-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.socket.NetworkError-class.html
new file mode 100644
index 000000000..6555bac0c
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.socket.NetworkError-class.html
@@ -0,0 +1,95 @@
+
+
+
+
+ i2p.socket.NetworkError
+
+
+
+
+
+
+
+
+
+Class NetworkError
+
+
+Exception
--+
+ |
+ Error
--+
+ |
+ Error
--+
+ |
+ NetworkError
+
+
+
+
+Network error occurred within I2P. The error object is a 2-tuple:
+(errtag, errdesc). errtag is a SAM error string, errdesc is a human
+readable error description.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.socket.Socket-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.socket.Socket-class.html
new file mode 100644
index 000000000..794522e48
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.socket.Socket-class.html
@@ -0,0 +1,507 @@
+
+
+
+
+ i2p.socket.Socket
+
+
+
+
+
+
+
+
+
+Class Socket
+
+
+
+A socket object.
+
+
+
+
+
+
+ Method Summary
+
+ __init__
(self ,
+ session ,
+ type ,
+ samaddr ,
+ **kwargs )
+
+Equivalent to socket().
+
+ __copy__
(self )
+
+Returns the original object.
+
+ __deepcopy__
(self ,
+ memo )
+
+Returns the original object.
+
+ accept
(self )
+
+Accept an incoming connection.
+
+ bind
(self ,
+ address )
+
+Does nothing.
+
+ close
(self )
+
+Closes the socket.
+
+ connect
(self ,
+ address )
+
+Connect to a remote dest, identified in local SAM bridge's hosts file
+as host 'address'.
+
+ connect_ex
(self ,
+ address )
+
+Like connect(), but return any error that is raised.
+
+ getpeername
(self )
+
+Get the remote Destination associated with the socket.
+
+ getsockname
(self )
+
+Get the local Destination associated with the socket.
+
+ gettimeout
(self )
+
+Get the timeout value.
+
+ listen
(self ,
+ backlog )
+
+Listen for connections made to the socket.
+
+ makefile
(self ,
+ mode ,
+ bufsize )
+
+Return a file object for the socket.
+
+ recv
(self ,
+ bufsize ,
+ flags )
+
+Receive string data from the socket.
+
+ recvfrom
(self ,
+ bufsize ,
+ flags )
+
+Like recv(), but returns a tuple (data, remoteaddr), where data is the
+string data received, and remoteaddr is the remote Destination.
+
+ send
(self ,
+ string ,
+ flags )
+
+Sends string data to a remote Destination.
+
+ sendall
(self ,
+ string ,
+ flags )
+
+Identical to send().
+
+ sendto
(self ,
+ string ,
+ flags ,
+ address )
+
+Send a packet to the given Destination.
+
+ setblocking
(self ,
+ flag )
+
+Set blocking or non-blocking mode for the socket.
+
+ settimeout
(self ,
+ value )
+
+Set a timeout for the socket.
+
+
+
+
+
+
+ Property Summary
+
+ dest
: Local I2P Destination of socket
+ session
: Session name
+ type
: Socket type: SOCK_STREAM, SOCK_DGRAM, or SOCK_RAW.
+
+
+
+
+
+
+
+ __init__ (self ,
+ session ,
+ type ,
+ samaddr ='127.0.0.1:7656' ,
+ **kwargs )
+ (Constructor)
+
+ Equivalent to socket().
+
+
+
+
+
+
+ __copy__ (self )
+
+ Returns the original object.
+
+
+
+
+
+
+ __deepcopy__ (self ,
+ memo )
+
+ Returns the original object.
+
+
+
+
+
+
+ accept (self )
+
+ Accept an incoming connection. The socket must be type SOCK_STREAM,
+ and listen() must be called prior to this command. The return value is
+ (conn, remotedest), where conn is a new socket object made for the
+ connection, and remotedest is the remote Destination from which the
+ connection was made.
+ Example:
+
+>>> from i2p import socket
+>>> s = socket.socket('Alice' , socket.SOCK_STREAM)
+>>> s.listen(10)
+ This prepares the server. Now accept an incoming connection:
+
+>>> c, remotedest = s.accept()
+>>> c.send('hello world!' )
+ If accept() is called on a socket that is in non-blocking mode or
+ has a timeout, i2p.socket.BlockError or i2p.socket.Timeout may be
+ raised. This indicates that no incoming connection is currently
+ available.
+
+
+
+
+
+
+ bind (self ,
+ address )
+
+ Does nothing. Provided for compatibility with the Python socket
+ command bind(), which binds a server to a port.
+
+
+
+
+
+
+ close (self )
+
+ Closes the socket. It is an error to call any method other than
+ recv() or recvfrom() on a closed socket. For streams, the receive
+ methods return data that was received prior to the closing of the
+ socket. For datagram and raw sockets, the receive methods cannot be
+ used on a closed socket.
+
+
+
+
+
+
+ connect (self ,
+ address )
+
+ Connect to a remote dest, identified in local SAM bridge's hosts
+ file as host 'address'.
+ For example:
+
+>>> s.connect('duck.i2p' )
+ Alternatively, you can use a full base64 Destination:
+ Example:
+
+>>> s.connect('238797sdfh2k34kjh....AAAA' )
+ If connect() is called on a socket that is in non-blocking mode or
+ has a timeout, i2p.socket.BlockError or i2p.socket.Timeout may be
+ raised. This indicates that the connection is still being initiated.
+ Use i2p.select.select() to determine when the connection is ready.
+
+
+
+
+
+
+ connect_ex (self ,
+ address )
+
+ Like connect(), but return any error that is raised. Returns None if
+ no error is raised.
+
+
+
+
+
+
+ getpeername (self )
+
+ Get the remote Destination associated with the socket. This is
+ equivalent to s.remotedest, and is provided for compatibility with the
+ Python socket module.
+
+
+
+
+
+
+ getsockname (self )
+
+ Get the local Destination associated with the socket. This is
+ equivalent to s.dest, and is provided for compatibility with the Python
+ socket module.
+
+
+
+
+
+
+ gettimeout (self )
+
+ Get the timeout value.
+
+
+
+
+
+
+ listen (self ,
+ backlog )
+
+ Listen for connections made to the socket. This method must be
+ called before accept(). The backlog argument specifies the maximum
+ number of queued incoming connections.
+
+
+
+
+
+
+ makefile (self ,
+ mode ='r' ,
+ bufsize =-1 )
+
+ Return a file object for the socket. See socket.makefile() in the
+ Python documentation for more information.
+
+
+
+
+
+
+ recv (self ,
+ bufsize ,
+ flags =0 )
+
+ Receive string data from the socket.
+ The maximum amount of data to be received is given by bufsize. If
+ bufsize is zero, this function returns an empty string immediately. If
+ bufsize is nonzero, this function blocks until at least one character
+ is available for reading. If the socket has been closed, an empty
+ string is returned as an end of file indicator.
+ If recv() is called on a socket that is in non-blocking mode or has
+ a timeout, i2p.socket.BlockError or i2p.socket.Timeout will be raised
+ if data is not available within the given timeframe.
+ For a datagram or raw socket, the first bufsize characters of the
+ packet are read, and the remainder of the packet is discarded. To read
+ the entire packet, use bufsize = -1.
+ For datagram and raw sockets, the packet may originate from any
+ Destination. Use recvfrom() with datagrams to determine the Destination
+ from which the packet was received.
+ The flags argument can be a bitwise OR of MSG_PEEK, MSG_WAITALL,
+ and/or MSG_DONTWAIT. MSG_PEEK indicates that any data read should not
+ be removed from the socket's incoming buffer. MSG_WAITALL indicates to
+ wait for exactly bufsize characters or an error. MSG_DONTWAIT indicates
+ that the recv() command should not block execution.
+
+
+
+
+
+
+ recvfrom (self ,
+ bufsize ,
+ flags =0 )
+
+ Like recv(), but returns a tuple (data, remoteaddr), where data is
+ the string data received, and remoteaddr is the remote Destination.
+
+
+
+
+
+
+ send (self ,
+ string ,
+ flags =0 )
+
+ Sends string data to a remote Destination.
+ For a stream, connect() must be called prior to send(). Once close()
+ is called, no further data can be sent, and the stream cannot be
+ re-opened.
+ For datagram and raw sockets, connect() only specifies a Destination
+ to which packets are sent to. send() will then send a packet to the
+ given Destination. connect() can be used multiple times.
+ The send() command never blocks execution. The flags argument is
+ ignored.
+
+
+
+
+
+
+ sendall (self ,
+ string ,
+ flags =0 )
+
+ Identical to send().
+
+
+
+
+
+
+ sendto (self ,
+ string ,
+ flags ,
+ address )
+
+ Send a packet to the given Destination.
+ Only valid for datagram and raw sockets. The address argument should
+ be either a name from the hosts file, or a base64 Destination.
+ The sendto() command never blocks execution. The flags argument is
+ ignored.
+
+
+
+
+
+
+ setblocking (self ,
+ flag )
+
+ Set blocking or non-blocking mode for the socket.
+ If flag is True, any method called on the socket will hang until the
+ method has completed. If flag is False, all methods will raise
+ i2p.socket.BlockError() if they cannot complete instantly.
+ s.setblocking(False) is equivalent to s.settimeout(0);
+ s.setblocking(True) is equivalent to s.settimeout(None).
+
+
+
+
+
+
+ settimeout (self ,
+ value )
+
+ Set a timeout for the socket.
+ The value argument should be a timeout value in seconds, or None.
+ None is equivalent to an infinite timeout.
+ A socket operation will raise a i2p.socket.Timeout if the operation
+ cannot complete within in the specified time limit.
+
+
+
+
+
+
+
+
+
+
+
+dest
+Local I2P Destination of socket
+
+
+
+session
+Session name
+
+
+
+type
+Socket type: SOCK_STREAM, SOCK_DGRAM, or SOCK_RAW.
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.socket.Timeout-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.socket.Timeout-class.html
new file mode 100644
index 000000000..adafd7926
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.socket.Timeout-class.html
@@ -0,0 +1,94 @@
+
+
+
+
+ i2p.socket.Timeout
+
+
+
+
+
+
+
+
+
+Class Timeout
+
+
+Exception
--+
+ |
+ Error
--+
+ |
+ Error
--+
+ |
+ Timeout
+
+
+
+
+Time out occurred for a socket which had timeouts enabled via a prior
+call to settimeout().
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.tunnel-module.html b/apps/sam/python/doc/epydoc/html/public/i2p.tunnel-module.html
new file mode 100644
index 000000000..2d110a716
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.tunnel-module.html
@@ -0,0 +1,77 @@
+
+
+
+
+ i2p.tunnel
+
+
+
+
+
+
+
+
+
+Module i2p.tunnel
+
+Exchange data between I2P and regular TCP sockets.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.tunnel.Tunnel-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.tunnel.Tunnel-class.html
new file mode 100644
index 000000000..e3a14ed42
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.tunnel.Tunnel-class.html
@@ -0,0 +1,134 @@
+
+
+
+
+ i2p.tunnel.Tunnel
+
+
+
+
+
+
+
+
+
+Class Tunnel
+
+Known Subclasses:
+
+ TunnelClient
,
+ TunnelServer
+
+
+
+
+
+
+
+ Method Summary
+
+ __init__
(self ,
+ receive ,
+ make_send ,
+ nconnect ,
+ timeout )
+
+A Tunnel relays connections from a 'receive' socket to one or more
+'send' sockets.
+
+ close
(self )
+
+Close all connections made for this tunnel.
+
+
+
+
+
+
+
+
+ __init__ (self ,
+ receive ,
+ make_send ,
+ nconnect =-1 ,
+ timeout =60.0 )
+ (Constructor)
+
+ A Tunnel relays connections from a 'receive' socket to one or more
+ 'send' sockets. The receive socket must be bound and listening. For
+ each incoming connection, a new send socket is created by calling
+ make_send(). Data is then exchanged between the created streams until
+ one socket is closed. nconnect is the maximum number of simultaneous
+ connections (-1 for infinite), and timeout is the time that a single
+ connection can last for (None allows a connection to last forever).
+ Sockets must accept stream traffic and support the Python socket
+ interface. A separate daemonic thread is created to manage the tunnel.
+ For high performance, make_send() should make a socket and connect in
+ non-blocking mode (you should catch and discard the socket.BlockError
+ or socket.error due to executing connect on a non-blocking socket).
+ Security Note: A firewall is needed to maintain the end user's
+ anonymity. An attacker could keep a tunnel socket open by pinging it
+ regularly. The accepted sockets from 'receive' must prevent this by
+ closing down eventually.
+ Socket errors do not cause the Tunnel to shut down.
+
+
+
+
+
+
+ close (self )
+
+ Close all connections made for this tunnel.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.tunnel.TunnelClient-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.tunnel.TunnelClient-class.html
new file mode 100644
index 000000000..60f977715
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.tunnel.TunnelClient-class.html
@@ -0,0 +1,176 @@
+
+
+
+
+ i2p.tunnel.TunnelClient
+
+
+
+
+
+
+
+
+
+Class TunnelClient
+
+
+Tunnel
--+
+ |
+ TunnelClient
+
+
+
+
+
+
+
+
+ Method Summary
+
+ __init__
(self ,
+ session ,
+ port ,
+ dest ,
+ samaddr ,
+ nconnect ,
+ timeout ,
+ **kwargs )
+
+Tunnels localhost:port --> I2P Destination dest.
+
+ Inherited from Tunnel
+
+ close
(self )
+
+Close all connections made for this tunnel.
+
+
+
+
+
+
+
+
+
+
+
+
+ __init__ (self ,
+ session ,
+ port ,
+ dest ,
+ samaddr ='127.0.0.1:7656' ,
+ nconnect =-1 ,
+ timeout =None ,
+ **kwargs )
+ (Constructor)
+
+ Tunnels localhost:port --> I2P Destination dest.
+ A session named 'session' is created locally, for purposes of
+ routing to 'dest'. nconnect and timeout are the maximum number of
+ connections and maximum time per connection. All other arguments are
+ passed to socket.socket(). This call blocks until the tunnel is
+ ready.
+
+ Overrides:
+ i2p.tunnel.Tunnel.__init__
+
+
+
+
+
+
+
+
+
+
+
+dest
+
+
+
+
+ Get Method:
+ ' Local Destination used for routing.'
+
+
+
+
+
+
+
+remotedest
+Remote Destination.
+
+
+
+session
+
+
+
+
+ Get Method:
+ ' Local Destination used for routing.'
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/i2p.tunnel.TunnelServer-class.html b/apps/sam/python/doc/epydoc/html/public/i2p.tunnel.TunnelServer-class.html
new file mode 100644
index 000000000..c635773bb
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/i2p.tunnel.TunnelServer-class.html
@@ -0,0 +1,148 @@
+
+
+
+
+ i2p.tunnel.TunnelServer
+
+
+
+
+
+
+
+
+
+Class TunnelServer
+
+
+Tunnel
--+
+ |
+ TunnelServer
+
+
+
+
+
+
+
+
+ Method Summary
+
+ __init__
(self ,
+ session ,
+ port ,
+ samaddr ,
+ nconnect ,
+ timeout ,
+ **kwargs )
+
+Tunnels incoming SAM streams --> localhost:port.
+
+ Inherited from Tunnel
+
+ close
(self )
+
+Close all connections made for this tunnel.
+
+
+
+
+
+
+ Property Summary
+
+ dest
: I2P Destination of server.
+ session
: Session name for server.
+
+
+
+
+
+
+
+ __init__ (self ,
+ session ,
+ port ,
+ samaddr ='127.0.0.1:7656' ,
+ nconnect =-1 ,
+ timeout =None ,
+ **kwargs )
+ (Constructor)
+
+ Tunnels incoming SAM streams --> localhost:port.
+ nconnect and timeout are the maximum number of connections and
+ maximum time per connection. All other arguments are passed to
+ socket.socket(). This call blocks until the tunnel is ready.
+
+ Overrides:
+ i2p.tunnel.Tunnel.__init__
+
+
+
+
+
+
+
+
+
+
+
+dest
+I2P Destination of server.
+
+
+
+session
+Session name for server.
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/index.html b/apps/sam/python/doc/epydoc/html/public/index.html
new file mode 100644
index 000000000..a4d252f7b
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/index.html
@@ -0,0 +1,13 @@
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/indices.html b/apps/sam/python/doc/epydoc/html/public/indices.html
new file mode 100644
index 000000000..c1398b8d3
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/indices.html
@@ -0,0 +1,697 @@
+
+
+
+
+ Index
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/mimetools.Message-class.html b/apps/sam/python/doc/epydoc/html/public/mimetools.Message-class.html
new file mode 100644
index 000000000..7471d4430
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/mimetools.Message-class.html
@@ -0,0 +1,263 @@
+
+
+
+
+ mimetools.Message
+
+
+
+
+
+
+
+
+
+
+ Module mimetools ::
+ Class Message
+
+
+
+
+
+
+Class Message
+
+
+Message
--+
+ |
+ Message
+
+
+
+
+A derived class of rfc822.Message that knows about MIME headers and
+contains some hooks for decoding encoded and multipart messages.
+
+
+
+
+
+
+ Method Summary
+
+ __init__
(self ,
+ fp ,
+ seekable )
+
+Initialize the class instance and read the headers.
+
+ getencoding (self )
+
+
+ getmaintype (self )
+
+
+ getparam (self ,
+ name )
+
+
+ getparamnames (self )
+
+
+ getplist (self )
+
+
+ getsubtype (self )
+
+
+ gettype (self )
+
+
+ parseplist (self )
+
+
+ parsetype (self )
+
+
+ Inherited from Message
+
+ __contains__
(self ,
+ name )
+
+Determine whether a message contains the named header.
+
+ __delitem__
(self ,
+ name )
+
+Delete all occurrences of a specific header, if it is present.
+
+ __getitem__
(self ,
+ name )
+
+Get a specific header, as from a dictionary.
+
+ __len__
(self )
+
+Get the number of headers in a message.
+
+ __setitem__
(self ,
+ name ,
+ value )
+
+Set the value of a header.
+
+ __str__
(self )
+
+
+ get
(self ,
+ name ,
+ default )
+
+Get the header value for a name.
+
+ getaddr
(self ,
+ name )
+
+Get a single address from a header, as a tuple.
+
+ getaddrlist
(self ,
+ name )
+
+Get a list of addresses from a header.
+
+ getallmatchingheaders
(self ,
+ name )
+
+Find all header lines matching a given header name.
+
+ getdate
(self ,
+ name )
+
+Retrieve a date field from a header.
+
+ getdate_tz
(self ,
+ name )
+
+Retrieve a date field from a header as a 10-tuple.
+
+ getfirstmatchingheader
(self ,
+ name )
+
+Get the first header line matching name.
+
+ getheader
(self ,
+ name ,
+ default )
+
+Get the header value for a name.
+
+ getheaders
(self ,
+ name )
+
+Get all values for a header.
+
+ getrawheader
(self ,
+ name )
+
+A higher-level interface to getfirstmatchingheader().
+
+ has_key
(self ,
+ name )
+
+Determine whether a message contains the named header.
+
+ iscomment
(self ,
+ line )
+
+Determine whether a line should be skipped entirely.
+
+ isheader
(self ,
+ line )
+
+Determine whether a given line is a legal header.
+
+ islast
(self ,
+ line )
+
+Determine whether a line is a legal end of RFC 2822 headers.
+
+ items
(self )
+
+Get all of a message's headers.
+
+ keys
(self )
+
+Get all of a message's header field names.
+
+ readheaders
(self )
+
+Read header lines.
+
+ rewindbody
(self )
+
+Rewind the file to the start of the body (if seekable).
+
+ setdefault
(self ,
+ name ,
+ default )
+
+
+ values
(self )
+
+Get all of a message's header field values.
+
+
+
+
+
+
+
+
+ __init__ (self ,
+ fp ,
+ seekable =1 )
+ (Constructor)
+
+ Initialize the class instance and read the headers.
+
+ Overrides:
+ rfc822.Message.__init__
(inherited documentation)
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/rfc822.Message-class.html b/apps/sam/python/doc/epydoc/html/public/rfc822.Message-class.html
new file mode 100644
index 000000000..7afe6d1af
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/rfc822.Message-class.html
@@ -0,0 +1,525 @@
+
+
+
+
+ rfc822.Message
+
+
+
+
+
+
+
+
+
+
+ Module rfc822 ::
+ Class Message
+
+
+
+
+
+
+Class Message
+
+Known Subclasses:
+
+ Message
+
+
+
+Represents a single RFC 2822-compliant message.
+
+
+
+
+
+
+ Method Summary
+
+ __init__
(self ,
+ fp ,
+ seekable )
+
+Initialize the class instance and read the headers.
+
+ __contains__
(self ,
+ name )
+
+Determine whether a message contains the named header.
+
+ __delitem__
(self ,
+ name )
+
+Delete all occurrences of a specific header, if it is present.
+
+ __getitem__
(self ,
+ name )
+
+Get a specific header, as from a dictionary.
+
+ __len__
(self )
+
+Get the number of headers in a message.
+
+ __setitem__
(self ,
+ name ,
+ value )
+
+Set the value of a header.
+
+ __str__ (self )
+
+
+ get
(self ,
+ name ,
+ default )
+
+Get the header value for a name.
+
+ getaddr
(self ,
+ name )
+
+Get a single address from a header, as a tuple.
+
+ getaddrlist
(self ,
+ name )
+
+Get a list of addresses from a header.
+
+ getallmatchingheaders
(self ,
+ name )
+
+Find all header lines matching a given header name.
+
+ getdate
(self ,
+ name )
+
+Retrieve a date field from a header.
+
+ getdate_tz
(self ,
+ name )
+
+Retrieve a date field from a header as a 10-tuple.
+
+ getfirstmatchingheader
(self ,
+ name )
+
+Get the first header line matching name.
+
+ getheader
(self ,
+ name ,
+ default )
+
+Get the header value for a name.
+
+ getheaders
(self ,
+ name )
+
+Get all values for a header.
+
+ getrawheader
(self ,
+ name )
+
+A higher-level interface to getfirstmatchingheader().
+
+ has_key
(self ,
+ name )
+
+Determine whether a message contains the named header.
+
+ iscomment
(self ,
+ line )
+
+Determine whether a line should be skipped entirely.
+
+ isheader
(self ,
+ line )
+
+Determine whether a given line is a legal header.
+
+ islast
(self ,
+ line )
+
+Determine whether a line is a legal end of RFC 2822 headers.
+
+ items
(self )
+
+Get all of a message's headers.
+
+ keys
(self )
+
+Get all of a message's header field names.
+
+ readheaders
(self )
+
+Read header lines.
+
+ rewindbody
(self )
+
+Rewind the file to the start of the body (if seekable).
+
+ setdefault (self ,
+ name ,
+ default )
+
+
+ values
(self )
+
+Get all of a message's header field values.
+
+
+
+
+
+
+
+
+ __init__ (self ,
+ fp ,
+ seekable =1 )
+ (Constructor)
+
+ Initialize the class instance and read the headers.
+
+
+
+
+
+
+ __contains__ (self ,
+ name )
+ (In operator)
+
+ Determine whether a message contains the named header.
+
+
+
+
+
+
+ __delitem__ (self ,
+ name )
+ (Index deletion operator)
+
+ Delete all occurrences of a specific header, if it is present.
+
+
+
+
+
+
+ __getitem__ (self ,
+ name )
+ (Indexing operator)
+
+ Get a specific header, as from a dictionary.
+
+
+
+
+
+
+ __len__ (self )
+ (Length operator)
+
+ Get the number of headers in a message.
+
+
+
+
+
+
+ __setitem__ (self ,
+ name ,
+ value )
+ (Index assignment operator)
+
+ Set the value of a header.
+ Note: This is not a perfect inversion of __getitem__, because any
+ changed headers get stuck at the end of the raw-headers list rather
+ than where the altered header was.
+
+
+
+
+
+
+ get (self ,
+ name ,
+ default =None )
+
+ Get the header value for a name.
+ This is the normal interface: it returns a stripped version of the
+ header value for a given header name, or None if it doesn't exist. This
+ uses the dictionary version which finds the *last* such header.
+
+
+
+
+
+
+ getaddr (self ,
+ name )
+
+ Get a single address from a header, as a tuple.
+ An example return value: ('Guido van Rossum',
+ 'guido@cwi.nl')
+
+
+
+
+
+
+ getaddrlist (self ,
+ name )
+
+ Get a list of addresses from a header.
+ Retrieves a list of addresses from a header, where each address is a
+ tuple as returned by getaddr(). Scans all named headers, so it works
+ properly with multiple To: or Cc: headers for example.
+
+
+
+
+
+
+ getallmatchingheaders (self ,
+ name )
+
+ Find all header lines matching a given header name.
+ Look through the list of headers and find all lines matching a given
+ header name (and their continuation lines). A list of the lines is
+ returned, without interpretation. If the header does not occur, an
+ empty list is returned. If the header occurs multiple times, all
+ occurrences are returned. Case is not important in the header name.
+
+
+
+
+
+
+ getdate (self ,
+ name )
+
+ Retrieve a date field from a header.
+ Retrieves a date field from the named header, returning a tuple
+ compatible with time.mktime().
+
+
+
+
+
+
+ getdate_tz (self ,
+ name )
+
+ Retrieve a date field from a header as a 10-tuple.
+ The first 9 elements make up a tuple compatible with time.mktime(),
+ and the 10th is the offset of the poster's time zone from GMT/UTC.
+
+
+
+
+
+
+ getfirstmatchingheader (self ,
+ name )
+
+ Get the first header line matching name.
+ This is similar to getallmatchingheaders, but it returns only the
+ first matching header (and its continuation lines).
+
+
+
+
+
+
+ getheader (self ,
+ name ,
+ default =None )
+
+ Get the header value for a name.
+ This is the normal interface: it returns a stripped version of the
+ header value for a given header name, or None if it doesn't exist. This
+ uses the dictionary version which finds the *last* such header.
+
+
+
+
+
+
+ getheaders (self ,
+ name )
+
+ Get all values for a header.
+ This returns a list of values for headers given more than once; each
+ value in the result list is stripped in the same way as the result of
+ getheader(). If the header is not given, return an empty list.
+
+
+
+
+
+
+ getrawheader (self ,
+ name )
+
+ A higher-level interface to getfirstmatchingheader().
+ Return a string containing the literal text of the header but with
+ the keyword stripped. All leading, trailing and embedded whitespace is
+ kept in the string, however. Return None if the header does not
+ occur.
+
+
+
+
+
+
+ has_key (self ,
+ name )
+
+ Determine whether a message contains the named header.
+
+
+
+
+
+
+ iscomment (self ,
+ line )
+
+ Determine whether a line should be skipped entirely.
+ You may override this method in order to use Message parsing on
+ tagged data in RFC 2822-like formats that support embedded comments or
+ free-text data.
+
+
+
+
+
+
+ isheader (self ,
+ line )
+
+ Determine whether a given line is a legal header.
+ This method should return the header name, suitably canonicalized.
+ You may override this method in order to use Message parsing on tagged
+ data in RFC 2822-like formats with special header formats.
+
+
+
+
+
+
+ islast (self ,
+ line )
+
+
+Determine whether a line is a legal end of RFC 2822 headers.
+
+ You may override this method if your application wants to bend the
+ rules, e.g. to strip trailing whitespace, or to recognize MH template
+ separators ('--------'). For convenience (e.g. for code reading from
+ sockets) a line consisting of
+also matches.
+
+
+
+
+
+
+
+ items (self )
+
+ Get all of a message's headers.
+ Returns a list of name, value tuples.
+
+
+
+
+
+
+ keys (self )
+
+ Get all of a message's header field names.
+
+
+
+
+
+
+ readheaders (self )
+
+ Read header lines.
+ Read header lines up to the entirely blank line that terminates
+ them. The (normally blank) line that ends the headers is skipped, but
+ not included in the returned list. If a non-header line ends the
+ headers, (which is an error), an attempt is made to backspace over it;
+ it is never included in the returned list.
+ The variable self.status is set to the empty string if all went
+ well, otherwise it is an error message. The variable self.headers is a
+ completely uninterpreted list of lines contained in the header (so
+ printing them will reproduce the header exactly as it appears in the
+ file).
+
+
+
+
+
+
+ rewindbody (self )
+
+ Rewind the file to the start of the body (if seekable).
+
+
+
+
+
+
+ values (self )
+
+ Get all of a message's header field values.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/toc-everything.html b/apps/sam/python/doc/epydoc/html/public/toc-everything.html
new file mode 100644
index 000000000..73379e823
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/toc-everything.html
@@ -0,0 +1,75 @@
+
+
+
+
+ Everything
+
+
+
+Everything
+
+
+
+All Classes
+i2p.BaseHTTPServer.BaseHTTPRequestHandler
+i2p.BaseHTTPServer.HTTPServer
+i2p.CGIHTTPServer.CGIHTTPRequestHandler
+i2p.select.Poll
+i2p.SimpleHTTPServer.SimpleHTTPRequestHandler
+i2p.socket.Socket
+i2p.SocketServer.BaseRequestHandler
+i2p.SocketServer.BaseServer
+i2p.SocketServer.DatagramRequestHandler
+i2p.SocketServer.ForkingMixIn
+i2p.SocketServer.ForkingTCPServer
+i2p.SocketServer.ForkingUDPServer
+i2p.SocketServer.StreamRequestHandler
+i2p.SocketServer.TCPServer
+i2p.SocketServer.ThreadingMixIn
+i2p.SocketServer.ThreadingTCPServer
+i2p.SocketServer.ThreadingUDPServer
+i2p.SocketServer.UDPServer
+i2p.tunnel.Tunnel
+i2p.tunnel.TunnelClient
+i2p.tunnel.TunnelServer
+
+
+
+All Exceptions
+i2p.socket.BlockError
+i2p.socket.ClosedError
+i2p.socket.Error
+i2p.socket.NetworkError
+i2p.socket.Timeout
+
+
+
+All Functions
+check
+find
+poll
+resolve
+select
+socket
+start
+stop
+test
+test
+test
+urlget
+urlopen
+
+
+
+All Variables
+check_addrlist
+our_router
+our_router_lock
+
+
+
+[show private | hide private]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/toc-i2p-module.html b/apps/sam/python/doc/epydoc/html/public/toc-i2p-module.html
new file mode 100644
index 000000000..0c78929c7
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/toc-i2p-module.html
@@ -0,0 +1,34 @@
+
+
+
+
+ i2p
+
+
+
+i2p
+
+
+
+Modules
+BaseHTTPServer
+CGIHTTPServer
+eep
+router
+select
+SimpleHTTPServer
+socket
+SocketServer
+tunnel
+
+
+
+Exceptions
+
+
+
+[show private | hide private]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/toc-i2p.BaseHTTPServer-module.html b/apps/sam/python/doc/epydoc/html/public/toc-i2p.BaseHTTPServer-module.html
new file mode 100644
index 000000000..aa1eba990
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/toc-i2p.BaseHTTPServer-module.html
@@ -0,0 +1,32 @@
+
+
+
+
+ i2p.BaseHTTPServer
+
+
+
+BaseHTTPServer
+
+
+
+Classes
+BaseHTTPRequestHandler
+HTTPServer
+
+
+
+Functions
+test
+
+
+
+Variables
+
+
+
+[show private | hide private]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/toc-i2p.CGIHTTPServer-module.html b/apps/sam/python/doc/epydoc/html/public/toc-i2p.CGIHTTPServer-module.html
new file mode 100644
index 000000000..fd82bb177
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/toc-i2p.CGIHTTPServer-module.html
@@ -0,0 +1,27 @@
+
+
+
+
+ i2p.CGIHTTPServer
+
+
+
+CGIHTTPServer
+
+
+
+Classes
+CGIHTTPRequestHandler
+
+
+
+Functions
+test
+
+
+
+[show private | hide private]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/toc-i2p.SimpleHTTPServer-module.html b/apps/sam/python/doc/epydoc/html/public/toc-i2p.SimpleHTTPServer-module.html
new file mode 100644
index 000000000..c1de5d30e
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/toc-i2p.SimpleHTTPServer-module.html
@@ -0,0 +1,31 @@
+
+
+
+
+ i2p.SimpleHTTPServer
+
+
+
+SimpleHTTPServer
+
+
+
+Classes
+SimpleHTTPRequestHandler
+
+
+
+Functions
+test
+
+
+
+Variables
+
+
+
+[show private | hide private]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/toc-i2p.SocketServer-module.html b/apps/sam/python/doc/epydoc/html/public/toc-i2p.SocketServer-module.html
new file mode 100644
index 000000000..29e9b07ee
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/toc-i2p.SocketServer-module.html
@@ -0,0 +1,33 @@
+
+
+
+
+ i2p.SocketServer
+
+
+
+SocketServer
+
+
+
+Classes
+BaseRequestHandler
+BaseServer
+DatagramRequestHandler
+ForkingMixIn
+ForkingTCPServer
+ForkingUDPServer
+StreamRequestHandler
+TCPServer
+ThreadingMixIn
+ThreadingTCPServer
+ThreadingUDPServer
+UDPServer
+
+
+
+[show private | hide private]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/toc-i2p.eep-module.html b/apps/sam/python/doc/epydoc/html/public/toc-i2p.eep-module.html
new file mode 100644
index 000000000..91862fd6a
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/toc-i2p.eep-module.html
@@ -0,0 +1,23 @@
+
+
+
+
+ i2p.eep
+
+
+
+eep
+
+
+
+Functions
+urlget
+urlopen
+
+
+
+[show private | hide private]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/toc-i2p.pylib-module.html b/apps/sam/python/doc/epydoc/html/public/toc-i2p.pylib-module.html
new file mode 100644
index 000000000..75c326800
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/toc-i2p.pylib-module.html
@@ -0,0 +1,17 @@
+
+
+
+
+ i2p.pylib
+
+
+
+pylib
+
+
+
+[show private | hide private]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/toc-i2p.router-module.html b/apps/sam/python/doc/epydoc/html/public/toc-i2p.router-module.html
new file mode 100644
index 000000000..b71a02550
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/toc-i2p.router-module.html
@@ -0,0 +1,32 @@
+
+
+
+
+ i2p.router
+
+
+
+router
+
+
+
+Functions
+check
+find
+start
+stop
+
+
+
+Variables
+check_addrlist
+our_router
+our_router_lock
+
+
+
+[show private | hide private]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/toc-i2p.select-module.html b/apps/sam/python/doc/epydoc/html/public/toc-i2p.select-module.html
new file mode 100644
index 000000000..00958899f
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/toc-i2p.select-module.html
@@ -0,0 +1,28 @@
+
+
+
+
+ i2p.select
+
+
+
+select
+
+
+
+Classes
+Poll
+
+
+
+Functions
+poll
+select
+
+
+
+[show private | hide private]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/toc-i2p.socket-module.html b/apps/sam/python/doc/epydoc/html/public/toc-i2p.socket-module.html
new file mode 100644
index 000000000..d0a4a2b2d
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/toc-i2p.socket-module.html
@@ -0,0 +1,41 @@
+
+
+
+
+ i2p.socket
+
+
+
+socket
+
+
+
+Classes
+Socket
+
+
+
+Exceptions
+BlockError
+ClosedError
+Error
+NetworkError
+Timeout
+
+
+
+Functions
+resolve
+socket
+
+
+
+Variables
+
+
+
+[show private | hide private]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/toc-i2p.tunnel-module.html b/apps/sam/python/doc/epydoc/html/public/toc-i2p.tunnel-module.html
new file mode 100644
index 000000000..8e861ffc8
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/toc-i2p.tunnel-module.html
@@ -0,0 +1,28 @@
+
+
+
+
+ i2p.tunnel
+
+
+
+tunnel
+
+
+
+Classes
+Tunnel
+TunnelClient
+TunnelServer
+
+
+
+Functions
+
+
+
+[show private | hide private]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/toc.html b/apps/sam/python/doc/epydoc/html/public/toc.html
new file mode 100644
index 000000000..db6484529
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/toc.html
@@ -0,0 +1,34 @@
+
+
+
+
+ Table of Contents
+
+
+
+Table of Contents
+
+Everything
+
+
+Packages
+i2p
+
+
+Modules
+i2p.BaseHTTPServer
+i2p.CGIHTTPServer
+i2p.eep
+i2p.router
+i2p.select
+i2p.SimpleHTTPServer
+i2p.socket
+i2p.SocketServer
+i2p.tunnel
+
+
+[show private | hide private]
+
+
diff --git a/apps/sam/python/doc/epydoc/html/public/trees.html b/apps/sam/python/doc/epydoc/html/public/trees.html
new file mode 100644
index 000000000..ee57f837d
--- /dev/null
+++ b/apps/sam/python/doc/epydoc/html/public/trees.html
@@ -0,0 +1,154 @@
+
+
+
+
+ Module and Class Hierarchies
+
+
+
+
+
+
+
+
+
+Module Hierarchy
+
+ i2p
: i2p -- I2P Python interface
+
+ BaseHTTPServer
: Emulation of Python BaseHTTPServer module using I2P sockets.
+ CGIHTTPServer
: Emulation of Python CGIHTTPServer module using I2P sockets.
+ eep
: Eeproxy access module
+ router
: Router control module
+ select
: I2P Python API - Emulation of Python select module.
+ SimpleHTTPServer
: Emulation of Python SimpleHTTPServer module using I2P sockets.
+ socket
: Emulation of Python socket module using SAM.
+ SocketServer
: Emulation of Python SocketServer module using I2P sockets.
+ tunnel
: Exchange data between I2P and regular TCP sockets.
+
+
+
+
+Class Hierarchy
+
+
+
+
+
+
+
+