summaryrefslogtreecommitdiff
path: root/project1/proj1_s4498062/webhttp/server.py
diff options
context:
space:
mode:
Diffstat (limited to 'project1/proj1_s4498062/webhttp/server.py')
-rw-r--r--project1/proj1_s4498062/webhttp/server.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/project1/proj1_s4498062/webhttp/server.py b/project1/proj1_s4498062/webhttp/server.py
index 62f1bdb..5db8620 100644
--- a/project1/proj1_s4498062/webhttp/server.py
+++ b/project1/proj1_s4498062/webhttp/server.py
@@ -38,15 +38,16 @@ class ConnectionHandler(threading.Thread):
try:
while not self.done:
- data = self.conn_socket.recv(4096)
+ data = self.conn_socket.recv(32)
if len(data) == 0:
break
self.handle_data(data)
except socket.timeout:
- logging.debug('Connection to %s timed out.' % self.addr[0])
+ logging.debug('%s connection timed out.' % self.addr[0])
finally:
+ self.conn_socket.shutdown(socket.SHUT_RDWR)
self.conn_socket.close()
- logging.debug('Connection to %s closed.' % self.addr[0])
+ logging.debug('%s connection closed.' % self.addr[0])
def handle_data(self, data):
for req in self.rp.parse_requests(data):
@@ -57,6 +58,7 @@ class ConnectionHandler(threading.Thread):
if resp.get_header('Connection') == 'close':
self.done = True
+ return
def send(self, data):
sent = self.conn_socket.send(str(data))
@@ -99,10 +101,12 @@ class Server:
def run(self):
"""Run the HTTP Server and start listening"""
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- self.socket.bind((config('hostname'), config('port', type=int)))
- self.socket.listen(config('max_connections', type=int))
+ self.socket.bind((config('hostname', default='localhost'),
+ config('port', type=int, default=8001)))
+ self.socket.listen(config('max_connections', type=int, default=1000))
while not self.done:
(csocket, addr) = self.socket.accept()
+ logging.debug('%s connection accepted.' % addr[0])
ch = ConnectionHandler(csocket, addr, config('timeout', type=int))
ch.start()