summaryrefslogtreecommitdiff
path: root/project1/proj1_s4498062/webhttp/parser.py
diff options
context:
space:
mode:
Diffstat (limited to 'project1/proj1_s4498062/webhttp/parser.py')
-rw-r--r--project1/proj1_s4498062/webhttp/parser.py12
1 files changed, 4 insertions, 8 deletions
diff --git a/project1/proj1_s4498062/webhttp/parser.py b/project1/proj1_s4498062/webhttp/parser.py
index 58e83dc..7dbb3b5 100644
--- a/project1/proj1_s4498062/webhttp/parser.py
+++ b/project1/proj1_s4498062/webhttp/parser.py
@@ -25,13 +25,10 @@ class RequestParser:
self.buff += buff
requests = self.get_requests()
- http_requests = []
for request in requests:
http_request = webhttp.message.Request()
http_request.parse(request)
- http_requests.append(http_request)
-
- return http_requests
+ yield http_request
def get_requests(self):
"""Split multiple requests from buffer
@@ -40,10 +37,9 @@ class RequestParser:
list of str
"""
requests = self.buff.split('\r\n\r\n')
- requests = filter(None, requests)
- requests = [r.lstrip() + '\r\n\r\n' for r in requests]
- self.buff = ''
- return requests
+ self.buff = requests[-1]
+ for req in requests[:-1]:
+ yield req.lstrip() + '\r\n\r\n'
class ResponseParser: