summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru DAMIAN <alexandru.damian@intel.com>2013-08-31 22:46:06 (GMT)
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-09-01 14:51:11 (GMT)
commit6d9e3a19384cbd737fdac729c6c0de5b06f8ec12 (patch)
treec172e619b3cafb92b8489c5e827d9ae4e3f0cf31
parentc7b342903208cfb4cefaa0ec339c6ddfcd590acc (diff)
downloadpoky-6d9e3a19384cbd737fdac729c6c0de5b06f8ec12.tar.gz
bitbake: server/xmlrpc: stop server on client exit
If the server only expects a single client to connect (i.e. no bind parameter set, so there is no way for the clients to get the server port), stop the server after the first client exits. (Bitbake rev: eb6bae56f62082bf147045311154cbae4bca0f4c) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--bitbake/lib/bb/server/xmlrpc.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/bitbake/lib/bb/server/xmlrpc.py b/bitbake/lib/bb/server/xmlrpc.py
index cca569d..a28672c 100644
--- a/bitbake/lib/bb/server/xmlrpc.py
+++ b/bitbake/lib/bb/server/xmlrpc.py
@@ -133,6 +133,8 @@ class BitBakeServerCommands():
133 if self.has_client: 133 if self.has_client:
134 self.server.set_connection_token(None) 134 self.server.set_connection_token(None)
135 self.has_client = False 135 self.has_client = False
136 if self.server.single_use:
137 self.server.quit = True
136 138
137# This request handler checks if the request has a "Bitbake-token" header 139# This request handler checks if the request has a "Bitbake-token" header
138# field (this comes from the client side) and compares it with its internal 140# field (this comes from the client side) and compares it with its internal
@@ -239,6 +241,9 @@ class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer):
239 self.commands = BitBakeServerCommands(self) 241 self.commands = BitBakeServerCommands(self)
240 self.autoregister_all_functions(self.commands, "") 242 self.autoregister_all_functions(self.commands, "")
241 self.interface = interface 243 self.interface = interface
244 self.single_use = False
245 if (interface[1] == 0): # anonymous port, not getting reused
246 self.single_use = True
242 247
243 def addcooker(self, cooker): 248 def addcooker(self, cooker):
244 BaseImplServer.addcooker(self, cooker) 249 BaseImplServer.addcooker(self, cooker)