mirror of
https://github.com/cesanta/mongoose.git
synced 2025-06-11 12:14:41 +08:00
Fixed wrong behavior of mg_set_option() with option "listening_port" caused by SO_REUSEADDR when using Windows
This commit is contained in:
parent
704f057384
commit
a39861b7bf
@ -525,10 +525,15 @@ static int ns_parse_port_string(const char *str, union socket_address *sa) {
|
||||
// 'sa' must be an initialized address to bind to
|
||||
static sock_t ns_open_listening_socket(union socket_address *sa) {
|
||||
socklen_t len = sizeof(*sa);
|
||||
sock_t on = 1, sock = INVALID_SOCKET;
|
||||
#ifndef _WIN32
|
||||
sock_t on = 1;
|
||||
#endif
|
||||
sock_t sock = INVALID_SOCKET;
|
||||
|
||||
if ((sock = socket(sa->sa.sa_family, SOCK_STREAM, 6)) != INVALID_SOCKET &&
|
||||
#ifndef _WIN32
|
||||
!setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void *) &on, sizeof(on)) &&
|
||||
#endif
|
||||
!bind(sock, &sa->sa, sa->sa.sa_family == AF_INET ?
|
||||
sizeof(sa->sin) : sizeof(sa->sa)) &&
|
||||
!listen(sock, SOMAXCONN)) {
|
||||
|
Loading…
Reference in New Issue
Block a user