diff --git a/poky/bitbake/lib/hashserv/client.py b/poky/bitbake/lib/hashserv/client.py
index ae5875d..0ffd0c2 100644
--- a/poky/bitbake/lib/hashserv/client.py
+++ b/poky/bitbake/lib/hashserv/client.py
@@ -40,7 +40,7 @@
 
         self._connect_sock = connect_sock
 
-    async def _connect(self):
+    async def connect(self):
         if self.reader is None or self.writer is None:
             (self.reader, self.writer) = await self._connect_sock()
 
@@ -62,7 +62,7 @@
         count = 0
         while True:
             try:
-                await self._connect()
+                await self.connect()
                 return await proc()
             except (
                 OSError,
@@ -190,7 +190,6 @@
 
         for call in (
             "connect_tcp",
-            "connect_unix",
             "close",
             "get_unihash",
             "report_unihash",
@@ -209,6 +208,16 @@
 
         return wrapper
 
+    def connect_unix(self, path):
+        # AF_UNIX has path length issues so chdir here to workaround
+        cwd = os.getcwd()
+        try:
+            os.chdir(os.path.dirname(path))
+            self.loop.run_until_complete(self.client.connect_unix(os.path.basename(path)))
+            self.loop.run_until_complete(self.client.connect())
+        finally:
+            os.chdir(cwd)
+
     @property
     def max_chunk(self):
         return self.client.max_chunk
