mirror of
https://github.com/darlinghq/darling-libcxx.git
synced 2024-11-27 13:50:23 +00:00
[test] [support] Use socket()+bind() to create unix sockets portably
Replace the mknod() call with socket() + bind() for creating unix sockets. The mknod() method is not portable and does not work on NetBSD while binding the socket should work on all systems supporting unix sockets. Differential Revision: https://reviews.llvm.org/D55576 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@349305 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
36feb1b037
commit
a443a0013d
@ -1,5 +1,6 @@
|
||||
import sys
|
||||
import os
|
||||
import socket
|
||||
import stat
|
||||
|
||||
# Ensure that this is being run on a specific platform
|
||||
@ -76,8 +77,13 @@ def create_fifo(source):
|
||||
|
||||
|
||||
def create_socket(source):
|
||||
mode = 0o600 | stat.S_IFSOCK
|
||||
os.mknod(sanitize(source), mode)
|
||||
sock = socket.socket(socket.AF_UNIX)
|
||||
sanitized_source = sanitize(source)
|
||||
# AF_UNIX sockets may have very limited path length, so split it
|
||||
# into chdir call (with technically unlimited length) followed
|
||||
# by bind() relative to the directory
|
||||
os.chdir(os.path.dirname(sanitized_source))
|
||||
sock.bind(os.path.basename(sanitized_source))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
Loading…
Reference in New Issue
Block a user