From: Alexandru DAMIAN Date: Sat, 31 Aug 2013 22:46:06 +0000 (+0100) Subject: bitbake: server/xmlrpc: stop server on client exit X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6d9e3a19384cbd737fdac729c6c0de5b06f8ec12;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git 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 Signed-off-by: Richard Purdie --- diff --git a/bitbake/lib/bb/server/xmlrpc.py b/bitbake/lib/bb/server/xmlrpc.py index cca569d0e98..a28672c4478 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)