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: |
