mirror of
https://github.com/weechat/weechat.git
synced 2026-06-28 05:46:38 +02:00
relay/api: fix reconnection to remote after disconnection
This commit is contained in:
@@ -106,9 +106,14 @@ relay_remote_network_close_connection (struct t_relay_remote *remote)
|
||||
#endif /* _WIN32 */
|
||||
remote->sock = -1;
|
||||
}
|
||||
relay_websocket_deflate_free (remote->ws_deflate);
|
||||
remote->ws_deflate = NULL;
|
||||
relay_websocket_deflate_reinit (remote->ws_deflate);
|
||||
remote->synced = 0;
|
||||
if (remote->partial_ws_frame)
|
||||
{
|
||||
free (remote->partial_ws_frame);
|
||||
remote->partial_ws_frame = NULL;
|
||||
}
|
||||
remote->partial_ws_frame_size = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -136,6 +136,22 @@ relay_websocket_deflate_free_stream_inflate (struct t_relay_websocket_deflate *w
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Reinitializes a t_relay_websocket_deflate structure.
|
||||
*/
|
||||
|
||||
void
|
||||
relay_websocket_deflate_reinit (struct t_relay_websocket_deflate *ws_deflate)
|
||||
{
|
||||
ws_deflate->enabled = 0;
|
||||
ws_deflate->server_context_takeover = 0;
|
||||
ws_deflate->server_context_takeover = 0;
|
||||
ws_deflate->window_bits_deflate = 0;
|
||||
ws_deflate->window_bits_inflate = 0;
|
||||
relay_websocket_deflate_free_stream_deflate (ws_deflate);
|
||||
relay_websocket_deflate_free_stream_inflate (ws_deflate);
|
||||
}
|
||||
|
||||
/*
|
||||
* Frees a websocket deflate structure.
|
||||
*/
|
||||
|
||||
@@ -63,6 +63,7 @@ struct t_relay_websocket_frame
|
||||
extern struct t_relay_websocket_deflate *relay_websocket_deflate_alloc ();
|
||||
extern int relay_websocket_deflate_init_stream_deflate (struct t_relay_websocket_deflate *ws_deflate);
|
||||
extern int relay_websocket_deflate_init_stream_inflate (struct t_relay_websocket_deflate *ws_deflate);
|
||||
extern void relay_websocket_deflate_reinit (struct t_relay_websocket_deflate *ws_deflate);
|
||||
extern void relay_websocket_deflate_free (struct t_relay_websocket_deflate *ws_deflate);
|
||||
extern int relay_websocket_is_valid_http_get (enum t_relay_protocol protocol,
|
||||
const char *message);
|
||||
|
||||
Reference in New Issue
Block a user