diff options
-rw-r--r-- | bitbake/lib/bb/server/process.py | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/bitbake/lib/bb/server/process.py b/bitbake/lib/bb/server/process.py index b037e0fb6c..8f5abb32bf 100644 --- a/bitbake/lib/bb/server/process.py +++ b/bitbake/lib/bb/server/process.py | |||
@@ -402,27 +402,11 @@ class BitBakeServer(object): | |||
402 | self.bitbake_lock = lock | 402 | self.bitbake_lock = lock |
403 | self.readypipe, self.readypipein = os.pipe() | 403 | self.readypipe, self.readypipein = os.pipe() |
404 | 404 | ||
405 | # Create server control socket | ||
406 | if os.path.exists(sockname): | ||
407 | os.unlink(sockname) | ||
408 | |||
409 | # Place the log in the builddirectory alongside the lock file | 405 | # Place the log in the builddirectory alongside the lock file |
410 | logfile = os.path.join(os.path.dirname(self.bitbake_lock.name), "bitbake-cookerdaemon.log") | 406 | logfile = os.path.join(os.path.dirname(self.bitbake_lock.name), "bitbake-cookerdaemon.log") |
411 | 407 | ||
412 | self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) | ||
413 | # AF_UNIX has path length issues so chdir here to workaround | ||
414 | cwd = os.getcwd() | ||
415 | try: | ||
416 | os.chdir(os.path.dirname(sockname)) | ||
417 | self.sock.bind(os.path.basename(sockname)) | ||
418 | finally: | ||
419 | os.chdir(cwd) | ||
420 | self.sock.listen(1) | ||
421 | |||
422 | os.set_inheritable(self.sock.fileno(), True) | ||
423 | startdatetime = datetime.datetime.now() | 408 | startdatetime = datetime.datetime.now() |
424 | bb.daemonize.createDaemon(self._startServer, logfile) | 409 | bb.daemonize.createDaemon(self._startServer, logfile) |
425 | self.sock.close() | ||
426 | self.bitbake_lock.close() | 410 | self.bitbake_lock.close() |
427 | os.close(self.readypipein) | 411 | os.close(self.readypipein) |
428 | 412 | ||
@@ -478,7 +462,21 @@ class BitBakeServer(object): | |||
478 | sys.stdout.flush() | 462 | sys.stdout.flush() |
479 | 463 | ||
480 | try: | 464 | try: |
481 | server = ProcessServer(self.bitbake_lock, self.sock, self.sockname, self.configuration.server_timeout, self.configuration.xmlrpcinterface) | 465 | # Create server control socket |
466 | if os.path.exists(self.sockname): | ||
467 | os.unlink(self.sockname) | ||
468 | |||
469 | sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) | ||
470 | # AF_UNIX has path length issues so chdir here to workaround | ||
471 | cwd = os.getcwd() | ||
472 | try: | ||
473 | os.chdir(os.path.dirname(self.sockname)) | ||
474 | sock.bind(os.path.basename(self.sockname)) | ||
475 | finally: | ||
476 | os.chdir(cwd) | ||
477 | sock.listen(1) | ||
478 | |||
479 | server = ProcessServer(self.bitbake_lock, sock, self.sockname, self.configuration.server_timeout, self.configuration.xmlrpcinterface) | ||
482 | os.close(self.readypipe) | 480 | os.close(self.readypipe) |
483 | writer = ConnectionWriter(self.readypipein) | 481 | writer = ConnectionWriter(self.readypipein) |
484 | try: | 482 | try: |