Hello. We have tested Naviserver RC. No problem found on Ubuntu 20.04 and Windows10/MSVC2019/32bit.
Have an issue for Windows10/MSVC2019/64bit build.
Deprecated ns_httpget/post does not work with the error "select failed: no such
file or directory".
Code that causes an error:
lassign [ns_sockopen -nonblock httpbin.org 80] rfd wfd
ns_sockselect -timeout 1000 {} $wfd {}
It looks like the problem is using DuplicateHandle on the socket handle and
passing duplicated handle to the select call.
>From DuplicateHandle docs: "Sockets. No error is returned, but the duplicate
>handle may not be recognized by Winsock at the target process."
>From googling: should work in most cases. I was just unlucky.
Crosscompiled (gcc/mingw) for Windows 64bit Naviserver works perfectly but
there are difficulties in configure/make/install:
We had to make changes to the code (patch attached):
nsthread.h - some variables are not defined,
connchan.c - definition of beXXtoh/htobeXX, as for MSVC,
dstring.c - realloc dstrings as for older MSVC,
exec.c - lowercased header.
Configure magic does not detect some settings for MINGW, they need to
be specified explicitly
./configure --host=x86_64-w64-mingw32 --enable-64bit \
--prefix=<path> --with-zlib=<path>
--with-openssl=<path> --with-tcl=<path>/lib
CFLAGS="-DHAVE_INET_PTON -DHAVE_INET_NTON -DHAVE_GETADDRINFO
-D_WIN32_WINNT=0x600" \
LDFLAGS="-static-libgcc" \
make LIBLIBS="-Wl,-Bstatic -lpthread -Wl,-Bdynamic"
Installation script does not expect .exe extension, workaround
cp nsthread/nsthreadtest.exe nsthread/nsthreadtest
cp nsd/nsd.exe nsd/nsd
cp nsproxy/nsproxy.exe nsproxy/nsproxy
make install
Regards,
Oleg.
naviserver.mingw.diff
Description: Binary data
_______________________________________________ naviserver-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/naviserver-devel
