set connection callback before connection completed to allow early messages

Signed-off-by: David Brooks <dave@bcs.co.nz>
Signed-off-by: Andy Green <andy@warmcat.com>
--

 lib/client-handshake.c |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)
This commit is contained in:
David Brooks 2012-04-20 12:16:52 +08:00 committed by Andy Green
parent 6c6a3d3caf
commit 993343b5e4

View file

@ -241,14 +241,33 @@ libwebsocket_client_connect(struct libwebsocket_context *context,
} else
wsi->c_origin = NULL;
wsi->c_callback = NULL;
if (protocol) {
const char *pc;
struct libwebsocket_protocols *pp;
wsi->c_protocol = malloc(strlen(protocol) + 1);
if (wsi->c_protocol == NULL)
goto oom3;
strcpy(wsi->c_protocol, protocol);
pc = protocol;
while (*pc && *pc != ',')
pc++;
n = pc - protocol;
pp = context->protocols;
while (pp->name && !wsi->c_callback) {
if (!strncmp(protocol, pp->name, n))
wsi->c_callback = pp->callback;
pp++;
}
} else
wsi->c_protocol = NULL;
if (!wsi->c_callback)
wsi->c_callback = context->protocols[0].callback;
/* set up appropriate masking */
wsi->xor_mask = xor_no_mask;