MCPcopy Index your code
hub / github.com/Bitmessage/PyBitmessage / HTTPRequestHandler

Class HTTPRequestHandler

src/network/httpd.py:6–61  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4from tls import TLSHandshake
5
6class HTTPRequestHandler(asyncore.dispatcher):
7 response = """HTTP/1.0 200 OK\r
8Date: Sun, 23 Oct 2016 18:02:00 GMT\r
9Content-Type: text/html; charset=UTF-8\r
10Content-Encoding: UTF-8\r
11Content-Length: 136\r
12Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT\r
13Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)\r
14ETag: "3f80f-1b6-3e1cb03b"\r
15Accept-Ranges: bytes\r
16Connection: close\r
17\r
18<html>
19<head>
20 <title>An Example Page</title>
21</head>
22 <body>
23 Hello World, this is a very simple HTML document.
24 </body>
25</html>"""
26
27 def __init__(self, sock):
28 if not hasattr(self, '_map'):
29 asyncore.dispatcher.__init__(self, sock)
30 self.inbuf = ""
31 self.ready = True
32 self.busy = False
33 self.respos = 0
34
35 def handle_close(self):
36 self.close()
37
38 def readable(self):
39 return self.ready
40
41 def writable(self):
42 return self.busy
43
44 def handle_read(self):
45 self.inbuf += self.recv(8192)
46 if self.inbuf[-4:] == "\r\n\r\n":
47 self.busy = True
48 self.ready = False
49 self.inbuf = ""
50 elif self.inbuf == "":
51 pass
52
53 def handle_write(self):
54 if self.busy and self.respos < len(HTTPRequestHandler.response):
55 written = 0
56 written = self.send(HTTPRequestHandler.response[self.respos:65536])
57 self.respos += written
58 elif self.busy:
59 self.busy = False
60 self.ready = True
61 self.close()
62
63

Callers 1

handle_acceptMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected