summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/asyncrpc/serv.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/asyncrpc/serv.py')
-rw-r--r--bitbake/lib/bb/asyncrpc/serv.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/bitbake/lib/bb/asyncrpc/serv.py b/bitbake/lib/bb/asyncrpc/serv.py
index f0be9a6cdb..a66117acad 100644
--- a/bitbake/lib/bb/asyncrpc/serv.py
+++ b/bitbake/lib/bb/asyncrpc/serv.py
@@ -39,10 +39,14 @@ class AsyncServerConnection(object):
39 "address": socket.address, 39 "address": socket.address,
40 }, 40 },
41 ) 41 )
42 self.client_headers = {}
42 43
43 async def close(self): 44 async def close(self):
44 await self.socket.close() 45 await self.socket.close()
45 46
47 async def handle_headers(self, headers):
48 return {}
49
46 async def process_requests(self): 50 async def process_requests(self):
47 try: 51 try:
48 self.logger.info("Client %r connected" % (self.socket.address,)) 52 self.logger.info("Client %r connected" % (self.socket.address,))
@@ -64,12 +68,20 @@ class AsyncServerConnection(object):
64 ) 68 )
65 return 69 return
66 70
67 # Read headers. Currently, no headers are implemented, so look for 71 # Read headers
68 # an empty line to signal the end of the headers 72 self.client_headers = {}
69 while True: 73 while True:
70 header = await self.socket.recv() 74 header = await self.socket.recv()
71 if not header: 75 if not header:
76 # Empty line. End of headers
72 break 77 break
78 tag, value = header.split(":", 1)
79 self.client_headers[tag.lower()] = value.strip()
80
81 if self.client_headers.get("needs-headers", "false") == "true":
82 for k, v in (await self.handle_headers(self.client_headers)).items():
83 await self.socket.send("%s: %s" % (k, v))
84 await self.socket.send("")
73 85
74 # Handle messages 86 # Handle messages
75 while True: 87 while True: