use context service buffer instead of stack for server_socket_service
Reduces lws_server_socket_service from 4208 to 80 stack allocation
on x86_64
Signed-off-by: Andy Green <andy.green@linaro.org>
diff --git a/lib/server.c b/lib/server.c
index aa51b12..5f746f5 100644
--- a/lib/server.c
+++ b/lib/server.c
@@ -126,8 +126,6 @@
int lws_server_socket_service(struct libwebsocket_context *context,
struct libwebsocket *wsi, struct pollfd *pollfd)
{
- unsigned char buf[LWS_SEND_BUFFER_PRE_PADDING + 1 +
- LWS_MAX_SOCKET_IO_BUF + LWS_SEND_BUFFER_POST_PADDING];
struct libwebsocket *new_wsi;
int accept_fd;
unsigned int clilen;
@@ -153,10 +151,10 @@
#ifdef LWS_OPENSSL_SUPPORT
if (wsi->ssl)
- len = SSL_read(wsi->ssl, buf, sizeof buf);
+ len = SSL_read(wsi->ssl, context->service_buffer, sizeof context->service_buffer);
else
#endif
- len = recv(pollfd->fd, buf, sizeof buf, 0);
+ len = recv(pollfd->fd, context->service_buffer, sizeof context->service_buffer, 0);
if (len < 0) {
lwsl_debug("Socket read returned %d\n", len);
@@ -171,7 +169,7 @@
return 0;
}
- n = libwebsocket_read(context, wsi, buf, len);
+ n = libwebsocket_read(context, wsi, context->service_buffer, len);
if (n < 0)
/* we closed wsi */
return 0;