aboutsummaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/server
diff options
context:
space:
mode:
authorAlexandru DAMIAN <alexandru.damian@intel.com>2013-08-31 23:46:06 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-09-01 15:51:11 +0100
commit6d9e3a19384cbd737fdac729c6c0de5b06f8ec12 (patch)
treec172e619b3cafb92b8489c5e827d9ae4e3f0cf31 /bitbake/lib/bb/server
parentc7b342903208cfb4cefaa0ec339c6ddfcd590acc (diff)
downloadopenembedded-core-contrib-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>
Diffstat (limited to 'bitbake/lib/bb/server')
-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 cca569d0e9..a28672c447 100644
--- a/bitbake/lib/bb/server/xmlrpc.py
+++ b/bitbake/lib/bb/server/xmlrpc.py
@@ -133,6 +133,8 @@ class BitBakeServerCommands():
if self.has_client:
self.server.set_connection_token(None)
self.has_client = False
+ if self.server.single_use:
+ self.server.quit = True
# This request handler checks if the request has a "Bitbake-token" header
# field (this comes from the client side) and compares it with its internal
@@ -239,6 +241,9 @@ class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer):
self.commands = BitBakeServerCommands(self)
self.autoregister_all_functions(self.commands, "")
self.interface = interface
+ self.single_use = False
+ if (interface[1] == 0): # anonymous port, not getting reused
+ self.single_use = True
def addcooker(self, cooker):
BaseImplServer.addcooker(self, cooker)