Check existence of IPV6_V6ONLY in evutil_make_listen_socket_ipv6only() (mingw32)

MinGW 32-bit 5.3.0 does not defines it and our appveyour [1] build
reports this instantly:
    evutil.c: In function 'evutil_make_listen_socket_ipv6only':
    evutil.c:392:40: error: 'IPV6_V6ONLY' undeclared (first use in this function)
      return setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, (void*) &one,

  [1]: https://www.appveyor.com/docs/windows-images-software/#mingw-msys-cygwin

Another solution will be to use mingw64 which has it, but I guess we do
want that #ifdef anyway.

(cherry picked from commit 23e79fd764b9f36f560d470f0fb60295dd942ac2)
This commit is contained in:
Azat Khuzhin 2018-10-28 18:11:22 +03:00 committed by Azat Khuzhin
parent 12e0d88911
commit 1c86523852
No known key found for this signature in database
GPG Key ID: B86086848EF8686D
2 changed files with 5 additions and 1 deletions

View File

@ -388,9 +388,12 @@ evutil_make_listen_socket_reuseable_port(evutil_socket_t sock)
int int
evutil_make_listen_socket_ipv6only(evutil_socket_t sock) evutil_make_listen_socket_ipv6only(evutil_socket_t sock)
{ {
#if defined(IPV6_V6ONLY)
int one = 1; int one = 1;
return setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, (void*) &one, return setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, (void*) &one,
(ev_socklen_t)sizeof(one)); (ev_socklen_t)sizeof(one));
#endif
return 0;
} }
int int

View File

@ -451,7 +451,8 @@ int evutil_make_socket_closeonexec(evutil_socket_t sock);
socket() or accept(). socket() or accept().
@param sock The socket to be closed @param sock The socket to be closed
@return 0 on success, -1 on failure @return 0 on success (whether the operation is supported or not),
-1 on failure
*/ */
EVENT2_EXPORT_SYMBOL EVENT2_EXPORT_SYMBOL
int evutil_closesocket(evutil_socket_t sock); int evutil_closesocket(evutil_socket_t sock);