changeset 7024:ee308d44ad76

inotify: add client code for long pathname handling
author Benoit Boissinot <benoit.boissinot@ens-lyon.org>
date Sun, 07 Sep 2008 15:10:11 +0200
parents 9c4e488f105e
children 766d8cb8c622
files hgext/inotify/client.py tests/test-inotify-issue1208.out
diffstat 2 files changed, 9 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/inotify/client.py	Sat Sep 06 14:11:33 2008 +0200
+++ b/hgext/inotify/client.py	Sun Sep 07 15:10:11 2008 +0200
@@ -14,7 +14,14 @@
 def query(ui, repo, names, match, list_ignored, list_clean, list_unknown=True):
     sock = socket.socket(socket.AF_UNIX)
     sockpath = repo.join('inotify.sock')
-    sock.connect(sockpath)
+    try:
+        sock.connect(sockpath)
+    except socket.error, err:
+        if err[0] == "AF_UNIX path too long":
+            sockpath = os.readlink(sockpath)
+            sock.connect(sockpath)
+        else:
+            raise
 
     def genquery():
         for n in names or []:
--- a/tests/test-inotify-issue1208.out	Sat Sep 06 14:11:33 2008 +0200
+++ b/tests/test-inotify-issue1208.out	Sun Sep 07 15:10:11 2008 +0200
@@ -1,9 +1,7 @@
 % fail
-failed to contact inotify server: AF_UNIX path too long
+failed to contact inotify server: No such file or directory
 deactivating inotify
 abort: could not start server: File exists
 % inserve
 % status
-failed to contact inotify server: AF_UNIX path too long
-deactivating inotify
 ? hg.pid