New submission from PrzemeK:

Case: 
http://stackoverflow.com/questions/33465094/connection-refused-when-using-abstract-namespace-unix-sockets

The code that does not work (python3 example):
...
sock_path = b"/var/tmp/sock.tmp"
server.bind(b"\0" + sock_path)
...
and strace shows:
connect(3, {sa_family=AF_LOCAL, sun_path=@"/var/tmp/sock.tmp"}, 20) = -1 
ECONNREFUSED (Connection refused)

For C-written client strace shows:
connect(3, {sa_family=AF_LOCAL, sun_path=@"/var/tmp/sock.tmp"}, 110) = 0

The code that actually works (python3 example):
...
sun_path_len = 108
sock_path = b"/var/tmp/sock.tmp"
server.bind(b"\0" + sock_path + (b"\0" * (sun_path_len - len(sock_path) - 1)))
...
and strace shows:
bind(3, {sa_family=AF_LOCAL, sun_path=@"/var/tmp/sock.tmp"}, 110) = 0
110 it's the correst size of a struct.

There's no hint at 
https://docs.python.org/3/library/socket.html#socket-families for that.

Test files (servers and clients): 
https://gist.github.com/soutys/ffbe2e76a86835a9cc6b

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue25541>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to