8000 Not working with WINE 8 · Issue #103 · epics-base/pvxs · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Not working with WINE 8 #103

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
mdavidsaver opened this issue Feb 27, 2025 · 2 comments
Open

Not working with WINE 8 #103

mdavidsaver opened this issue Feb 27, 2025 · 2 comments

Comments

@mdavidsaver
Copy link
Member

After building with cross-mingw as shown below, I am not able to connect to an IOC running with WINE 8. The symptom is that all IPv4 TCP connections are refused. However, IPv6 TCP connections are allowed.

2025-02-26T18:05:49.894265474 ERR pvxs.tcp.io connection to Server 10.127.127.1:5075 closed with socket error 111 : Connection refused
 $ netstat -tlpn|grep 5075
tcp6       0      0 :::5075                 :::*                    LISTEN      1868937/wineserver6 
$ telnet -4 localhost 5075
Trying 127.0.0.1...
Connection failed: Connection refused
$ telnet -6 localhost 5075
Trying ::1...
Connected to localhost.
Escape character is '^]'.
�A�@    anonymousca^]

sudo apt-get install build-essential libevent-dev libreadline-dev mingw-w64 cmake git wine64

git clone --depth 1 https://github.com/epics-base/epics-base
git clone --depth 1 --recursive https://github.com/epics-base/pvxs
cat <<EOF >> epics-base/configure/CONFIG_SITE.local
CROSS_COMPILER_TARGET_ARCHS+=windows-x64-mingw
EOF
cat <<EOF >> pvxs/configure/RELEASE.local
EPICS_BASE=\$(TOP)/../epics-base
EOF
make -C epics-base -j12
make -C pvxs/bundle libevent.windows-x64-mingw
make -C pvxs -j12

cat <<EOF > run-softIocPVX.bat
set PATH=%CD%/epics-base/bin/windows-x64-mingw;%PATH%
set PATH=%CD%/pvxs/bin/windows-x64-mingw;%PATH%
set PATH=%CD%/pvxs/bundle/usr/windows-x64-mingw/lib;%PATH%

softIocPVX %2
EOF

WINEPREFIX=$PWD/wine wineboot
WINEPREFIX=$PWD/wine wine run-softIocPVX.bat
@mdavidsaver
Copy link
Member Author

Probably a regression introduced by #22.

@mdavidsaver
Copy link
Member Author

... or some of the quirks of WINE have changed?

if is_wine() is changed to always return false, then softIocPVX can be reached by local broadcast.

bool is_wine()
{
HMODULE nt = GetModuleHandle("ntdll.dll");
return nt && GetProcAddress(nt, "wine_get_version");

I suspect this statement somehow no longer applies to WINE circa 8.0.

pvxs/src/server.cpp

Lines 461 to 465 in f2e49a8

if(evsocket::ipstack==evsocket::Linsock) {
/* Linux IP stack disallows binding both 0.0.0.0 and [::] for the same port.
* so we must always bind [::]
*/
tcpifaces.emplace_back(AF_INET6);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant
0