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>
This commit is contained in:
parent
c7b3429032
commit
6d9e3a1938
|
@ -133,6 +133,8 @@ class BitBakeServerCommands():
|
||||||
if self.has_client:
|
if self.has_client:
|
||||||
self.server.set_connection_token(None)
|
self.server.set_connection_token(None)
|
||||||
self.has_client = False
|
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
|
# 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
|
# 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.commands = BitBakeServerCommands(self)
|
||||||
self.autoregister_all_functions(self.commands, "")
|
self.autoregister_all_functions(self.commands, "")
|
||||||
self.interface = interface
|
self.interface = interface
|
||||||
|
self.single_use = False
|
||||||
|
if (interface[1] == 0): # anonymous port, not getting reused
|
||||||
|
self.single_use = True
|
||||||
|
|
||||||
def addcooker(self, cooker):
|
def addcooker(self, cooker):
|
||||||
BaseImplServer.addcooker(self, cooker)
|
BaseImplServer.addcooker(self, cooker)
|
||||||
|
|
Loading…
Reference in New Issue