Skip to content

Commit

Permalink
Check existence of IPV6_V6ONLY in evutil_make_listen_socket_ipv6only(…
Browse files Browse the repository at this point in the history
…) (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.
  • Loading branch information
azat committed Oct 28, 2018
1 parent 931ec23 commit 23e79fd
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 1 deletion.
3 changes: 3 additions & 0 deletions evutil.c
Original file line number Diff line number Diff line change
Expand Up @@ -388,9 +388,12 @@ evutil_make_listen_socket_reuseable_port(evutil_socket_t sock)
int
evutil_make_listen_socket_ipv6only(evutil_socket_t sock)
{
#if defined(IPV6_V6ONLY)
int one = 1;
return setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, (void*) &one,
(ev_socklen_t)sizeof(one));
#endif
return 0;
}

int
Expand Down
3 changes: 2 additions & 1 deletion include/event2/util.h
Original file line number Diff line number Diff line change
Expand Up @@ -451,7 +451,8 @@ int evutil_make_socket_closeonexec(evutil_socket_t sock);
socket() or accept().
@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
int evutil_closesocket(evutil_socket_t sock);
Expand Down

0 comments on commit 23e79fd

Please sign in to comment.