diff --git a/uvloop/handles/pipe.pxd b/uvloop/handles/pipe.pxd index 56fc2658..842ddccf 100644 --- a/uvloop/handles/pipe.pxd +++ b/uvloop/handles/pipe.pxd @@ -16,7 +16,7 @@ cdef class UnixTransport(UVStream): cdef UnixTransport new(Loop loop, object protocol, Server server, object waiter, object context) - cdef connect(self, char* addr) + cdef connect(self, const char* name, size_t namelen) cdef class ReadUnixTransport(UVStream): diff --git a/uvloop/handles/pipe.pyx b/uvloop/handles/pipe.pyx index 4b95ed6e..73ed79d5 100644 --- a/uvloop/handles/pipe.pyx +++ b/uvloop/handles/pipe.pyx @@ -121,10 +121,10 @@ cdef class UnixTransport(UVStream): cdef _open(self, int sockfd): __pipe_open(self, sockfd) - cdef connect(self, char* addr): + cdef connect(self, const char* name, size_t namelen): cdef _PipeConnectRequest req req = _PipeConnectRequest(self._loop, self) - req.connect(addr) + req.connect(name, namelen) @cython.no_gc_clear @@ -216,11 +216,12 @@ cdef class _PipeConnectRequest(UVRequest): self.request.data = self self.transport = transport - cdef connect(self, char* addr): - # uv_pipe_connect returns void - uv.uv_pipe_connect(self.request, + cdef connect(self, const char* name, size_t namelen): + uv.uv_pipe_connect2(self.request, self.transport._handle, - addr, + name, + namelen, + 0, __pipe_connect_callback) cdef void __pipe_connect_callback( diff --git a/uvloop/includes/uv.pxd b/uvloop/includes/uv.pxd index 510b1498..05d57701 100644 --- a/uvloop/includes/uv.pxd +++ b/uvloop/includes/uv.pxd @@ -381,8 +381,9 @@ cdef extern from "uv.h" nogil: int uv_pipe_open(uv_pipe_t* handle, uv_os_fd_t file) int uv_pipe_bind(uv_pipe_t* handle, const char* name) - void uv_pipe_connect(uv_connect_t* req, uv_pipe_t* handle, - const char* name, uv_connect_cb cb) + void uv_pipe_connect2(uv_connect_t* req, uv_pipe_t* handle, + const char* name, size_t namelen, + unsigned int flags, uv_connect_cb cb) # UDP diff --git a/uvloop/loop.pyx b/uvloop/loop.pyx index f9a5a239..6a99790f 100644 --- a/uvloop/loop.pyx +++ b/uvloop/loop.pyx @@ -2283,7 +2283,7 @@ cdef class Loop: waiter = self._new_future() tr = UnixTransport.new(self, protocol, None, waiter, context) - tr.connect(path) + tr.connect(path, len(path)) try: await waiter except (KeyboardInterrupt, SystemExit):