Skip to content
Snippets Groups Projects
Commit 442ae80b authored by Ondraco's avatar Ondraco Committed by Andy Green
Browse files
parent f3d1d41b
No related branches found
No related tags found
No related merge requests found
......@@ -20,7 +20,11 @@
*/
#include "private-libwebsockets.h"
#ifdef LWS_HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#if defined(WIN32) || defined(_WIN32)
#else
#include <sys/wait.h>
......@@ -340,6 +344,9 @@ just_kill_connection:
if (n)
lwsl_debug("closing: shutdown ret %d\n", LWS_ERRNO);
// This causes problems with disconnection when the events are half closing connection
// FD_READ | FD_CLOSE (33)
#ifndef _WIN32_WCE
/* libuv: no event available to guarantee completion */
if (!LWS_LIBUV_ENABLED(context)) {
......@@ -349,6 +356,7 @@ just_kill_connection:
context->timeout_secs);
return;
}
#endif
}
#endif
......@@ -987,11 +995,13 @@ lwsl_timestamp(int level, char *p, int len)
#endif
int n;
#ifndef _WIN32_WCE
#ifdef WIN32
ptm = localtime(&o_now);
#else
if (localtime_r(&o_now, &tm))
ptm = &tm;
#endif
#endif
p[0] = '\0';
for (n = 0; n < LLL_COUNT; n++) {
......
......@@ -114,9 +114,18 @@ struct sockaddr_in;
#include <stddef.h>
#include <stdint.h>
#include <basetsd.h>
#ifndef _WIN32_WCE
#include <fcntl.h>
#else
#define _O_RDONLY 0x0000
#define O_RDONLY _O_RDONLY
#endif
#ifdef _WIN32_WCE
#define strcasecmp _stricmp
#else
#define strcasecmp stricmp
#endif
#define getdtablesize() 30000
#define LWS_INLINE __inline
......
......@@ -271,7 +271,10 @@ lws_plat_set_socket_options(struct lws_context *context, lws_sockfd_type fd)
u_long optl = 1;
DWORD dwBytesRet;
struct tcp_keepalive alive;
int protonbr;
#ifndef _WIN32_WCE
struct protoent *tcp_proto;
#endif
if (context->ka_time) {
/* enable keepalive on this socket */
......@@ -291,13 +294,18 @@ lws_plat_set_socket_options(struct lws_context *context, lws_sockfd_type fd)
/* Disable Nagle */
optval = 1;
#ifndef _WIN32_WCE
tcp_proto = getprotobyname("TCP");
if (!tcp_proto) {
lwsl_err("getprotobyname() failed with error %d\n", LWS_ERRNO);
return 1;
}
protonbr = tcp_proto->p_proto;
#else
protonbr = 6;
#endif
setsockopt(fd, tcp_proto->p_proto, TCP_NODELAY, (const char *)&optval, optlen);
setsockopt(fd, protonbr, TCP_NODELAY, (const char *)&optval, optlen);
/* We are nonblocking... */
ioctlsocket(fd, FIONBIO, &optl);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment