Show More
@@ -332,18 +332,21 b' class socketlistener(object):' | |||
|
332 | 332 | self.repowatcher = repowatcher |
|
333 | 333 | self.sock = socket.socket(socket.AF_UNIX) |
|
334 | 334 | self.sockpath = join(root, '.hg/inotify.sock') |
|
335 | self.realsockpath = None | |
|
335 | ||
|
336 | self.realsockpath = self.sockpath | |
|
337 | if os.path.islink(self.sockpath): | |
|
338 | if os.path.exists(self.sockpath): | |
|
339 | self.realsockpath = os.readlink(self.sockpath) | |
|
340 | else: | |
|
341 | raise util.Abort('inotify-server: cannot start: ' | |
|
342 | '.hg/inotify.sock is a broken symlink') | |
|
336 | 343 | try: |
|
337 | self.sock.bind(self.sockpath) | |
|
344 | self.sock.bind(self.realsockpath) | |
|
338 | 345 | except socket.error, err: |
|
339 | 346 | if err.args[0] == errno.EADDRINUSE: |
|
340 | 347 | raise AlreadyStartedException(_('cannot start: socket is ' |
|
341 | 348 | 'already bound')) |
|
342 | 349 | if err.args[0] == "AF_UNIX path too long": |
|
343 | if os.path.islink(self.sockpath) and \ | |
|
344 | not os.path.exists(self.sockpath): | |
|
345 | raise util.Abort('inotify-server: cannot start: ' | |
|
346 | '.hg/inotify.sock is a broken symlink') | |
|
347 | 350 | tempdir = tempfile.mkdtemp(prefix="hg-inotify-") |
|
348 | 351 | self.realsockpath = os.path.join(tempdir, "inotify.sock") |
|
349 | 352 | try: |
@@ -26,4 +26,11 b' status' | |||
|
26 | 26 | |
|
27 | 27 | $ hg status |
|
28 | 28 | ? hg.pid |
|
29 | ||
|
30 | if we try to start twice the server, make sure we get a correct error | |
|
31 | ||
|
32 | $ hg inserve -d --pid-file=hg2.pid | |
|
33 | abort: inotify-server: cannot start: socket is already bound | |
|
34 | abort: child process failed to start | |
|
35 | [255] | |
|
29 | 36 | $ kill `cat hg.pid` |
General Comments 0
You need to be logged in to leave comments.
Login now