zeromq / libzmq

ZeroMQ core engine in C++, implements ZMTP/3.1
https://www.zeromq.org
Mozilla Public License 2.0
9.46k stars 2.34k forks source link

Non-ASCII characters support in ipc:// socket paths #4642

Closed dz-fsd closed 7 months ago

dz-fsd commented 7 months ago

Problem: Using non-ascii characters in unix domain socket path doesn't work on Windows.

Solution: Convert utf-8 socket paths to utf-16 file names when using filesystem calls to delete files and directories as Windows doesn't have any filesystem calls that take utf-8 path.

rmdir_utf8() and unlink_utf8() static functions were created which substitute rmdir() and unlink() when building on Windows.

Fixes #4641

bluca commented 7 months ago
1>c:\projects\libzmq\src\windows.hpp(78) : error C2065: 'nullptr' : undeclared identifier
1>c:\projects\libzmq\src\windows.hpp(86) : error C2039: 'data' : is not a member of 'std::vector<_Ty>'
1>        with
1>        [
1>            _Ty=wchar_t
1>        ]
1>c:\projects\libzmq\src\windows.hpp(90) : error C2039: 'data' : is not a member of 'std::vector<_Ty>'
1>        with
1>        [
1>            _Ty=wchar_t
1>        ]
1>Build log was saved at "file://c:\projects\build_libzmq\libzmq.dir\Release\BuildLog.htm"
1>libzmq - 3 error(s), 0 warning(s)