return CURL_SOCKET_BAD;
}
- if(setsockopt(msgsock, SOL_SOCKET, SO_KEEPALIVE,
- (void *)&flag, sizeof(flag))) {
- error = SOCKERRNO;
- logmsg("setsockopt(SO_KEEPALIVE) failed with error (%d) %s",
- error, curlx_strerror(error, errbuf, sizeof(errbuf)));
- sclose(msgsock);
- return CURL_SOCKET_BAD;
+#if defined(_WIN32) && defined(USE_UNIX_SOCKETS)
+ if(socket_domain != AF_UNIX) {
+#endif
+ if(setsockopt(msgsock, SOL_SOCKET, SO_KEEPALIVE,
+ (void *)&flag, sizeof(flag))) {
+ error = SOCKERRNO;
+ logmsg("setsockopt(SO_KEEPALIVE) failed with error (%d) %s",
+ error, curlx_strerror(error, errbuf, sizeof(errbuf)));
+ sclose(msgsock);
+ return CURL_SOCKET_BAD;
+ }
+#if defined(_WIN32) && defined(USE_UNIX_SOCKETS)
}
+#endif
/*
** As soon as this server accepts a connection from the test harness it
goto sws_cleanup;
}
- flag = 1;
- if(setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void *)&flag, sizeof(flag))) {
- error = SOCKERRNO;
- logmsg("setsockopt(SO_REUSEADDR) failed with error (%d) %s",
- error, curlx_strerror(error, errbuf, sizeof(errbuf)));
- goto sws_cleanup;
+#if defined(_WIN32) && defined(USE_UNIX_SOCKETS)
+ if(socket_domain != AF_UNIX) {
+#endif
+ flag = 1;
+ if(setsockopt(sock, SOL_SOCKET, SO_REUSEADDR,
+ (void *)&flag, sizeof(flag))) {
+ error = SOCKERRNO;
+ logmsg("setsockopt(SO_REUSEADDR) failed with error (%d) %s",
+ error, curlx_strerror(error, errbuf, sizeof(errbuf)));
+ goto sws_cleanup;
+ }
+#if defined(_WIN32) && defined(USE_UNIX_SOCKETS)
}
+#endif
if(curlx_nonblock(sock, TRUE)) {
error = SOCKERRNO;
logmsg("curlx_nonblock failed with error (%d) %s",
(void)unix_socket;
#endif
- do {
- attempt++;
- flag = 1;
- rc = setsockopt(sock, SOL_SOCKET, SO_REUSEADDR,
- (void *)&flag, sizeof(flag));
- if(rc) {
- error = SOCKERRNO;
- logmsg("setsockopt(SO_REUSEADDR) failed with error (%d) %s",
- error, curlx_strerror(error, errbuf, sizeof(errbuf)));
- if(maxretr) {
- rc = curlx_wait_ms(delay);
- if(rc) {
- /* should not happen */
- error = SOCKERRNO;
- logmsg("curlx_wait_ms() failed with error (%d) %s",
- error, curlx_strerror(error, errbuf, sizeof(errbuf)));
- sclose(sock);
- return CURL_SOCKET_BAD;
- }
- if(got_exit_signal) {
- logmsg("signalled to die, exiting...");
- sclose(sock);
- return CURL_SOCKET_BAD;
+#if defined(_WIN32) && defined(USE_UNIX_SOCKETS)
+ if(socket_domain != AF_UNIX) {
+#endif
+ do {
+ attempt++;
+ flag = 1;
+ rc = setsockopt(sock, SOL_SOCKET, SO_REUSEADDR,
+ (void *)&flag, sizeof(flag));
+ if(rc) {
+ error = SOCKERRNO;
+ logmsg("setsockopt(SO_REUSEADDR) failed with error (%d) %s",
+ error, curlx_strerror(error, errbuf, sizeof(errbuf)));
+ if(maxretr) {
+ rc = curlx_wait_ms(delay);
+ if(rc) {
+ /* should not happen */
+ error = SOCKERRNO;
+ logmsg("curlx_wait_ms() failed with error (%d) %s",
+ error, curlx_strerror(error, errbuf, sizeof(errbuf)));
+ sclose(sock);
+ return CURL_SOCKET_BAD;
+ }
+ if(got_exit_signal) {
+ logmsg("signalled to die, exiting...");
+ sclose(sock);
+ return CURL_SOCKET_BAD;
+ }
+ totdelay += delay;
+ delay *= 2; /* double the sleep for next attempt */
}
- totdelay += delay;
- delay *= 2; /* double the sleep for next attempt */
}
- }
- } while(rc && maxretr--);
+ } while(rc && maxretr--);
- if(rc) {
- logmsg("setsockopt(SO_REUSEADDR) failed %d times in %d ms. Error (%d) %s",
- attempt, totdelay,
- error, curlx_strerror(error, errbuf, sizeof(errbuf)));
- logmsg("Continuing anyway...");
+ if(rc) {
+ logmsg("setsockopt(SO_REUSEADDR) failed %d times in %d ms. "
+ "Error (%d) %s", attempt, totdelay,
+ error, curlx_strerror(error, errbuf, sizeof(errbuf)));
+ logmsg("Continuing anyway...");
+ }
+#if defined(_WIN32) && defined(USE_UNIX_SOCKETS)
}
+#endif
/* When the specified listener port is zero, it is actually a
request to let the system choose a non-zero available port. */