From 60fbc635136775f26396f978a373034e8fd9f230 Mon Sep 17 00:00:00 2001 From: Andy Green Date: Mon, 11 Feb 2013 09:37:23 +0800 Subject: [PATCH] use part of service buffer to make response not malloc Done with an offset because the encoded key is stored at the start of service_buffer at this time Signed-off-by: Andy Green --- lib/server-handshake.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/lib/server-handshake.c b/lib/server-handshake.c index 71007ec..ce6cb55 100644 --- a/lib/server-handshake.c +++ b/lib/server-handshake.c @@ -83,15 +83,7 @@ handshake_0405(struct libwebsocket_context *context, struct libwebsocket *wsi) /* make a buffer big enough for everything */ - response = (char *)malloc(256 + - wsi->u.hdr.hdrs[WSI_TOKEN_UPGRADE].token_len + - wsi->u.hdr.hdrs[WSI_TOKEN_CONNECTION].token_len + - wsi->u.hdr.hdrs[WSI_TOKEN_PROTOCOL].token_len); - if (!response) { - lwsl_err("Out of memory for response buffer\n"); - goto bail; - } - + response = (char *)context->service_buffer + MAX_WEBSOCKET_04_KEY_LEN; p = response; LWS_CPYAPP(p, "HTTP/1.1 101 Switching Protocols\x0d\x0a" "Upgrade: WebSocket\x0d\x0a" @@ -251,7 +243,6 @@ handshake_0405(struct libwebsocket_context *context, struct libwebsocket *wsi) /* alright clean up and set ourselves into established state */ - free(response); wsi->state = WSI_STATE_ESTABLISHED; wsi->lws_rx_parse_state = LWS_RXPS_NEW; -- 2.7.4