mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-09 00:00:04 +01:00
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:
parent
6c6a3d3caf
commit
993343b5e4
1 changed files with 19 additions and 0 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue