1
0
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:
Sébastien Helleu
2024-04-10 21:58:11 +02:00
parent 976e5e8ae4
commit 90998bd296
3 changed files with 24 additions and 2 deletions
@@ -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;
}
/*
+16
View File
@@ -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.
*/
+1
View File
@@ -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);