soup_server_message_get_socket() returns NULL in a websocket handler
Hello, this looks like a regression introduced with commit 798c44b7.
After this commit getting the GSocket
from a ServerMessage
in a websocket handler returns NULL.
#include <libsoup/soup.h>
static void
websocket_handler(SoupServer *server,
SoupServerMessage *msg,
const char *path,
SoupWebsocketConnection *connection,
gpointer user_data)
{
GSocket *socket = soup_server_message_get_socket(msg);
g_assert(socket != NULL);
}
int
main (int argc, char **argv)
{
GMainLoop *loop;
SoupServer *server;
GError *error = NULL;
server = soup_server_new ("server-header", "simple-httpd ", NULL);
soup_server_listen_all (server, 8443, 0, &error);
soup_server_add_websocket_handler(server,
"/",
NULL,
NULL,
websocket_handler,
NULL,
NULL);
g_print ("\nWaiting for requests...\n");
loop = g_main_loop_new (NULL, TRUE);
g_main_loop_run (loop);
return 0;
}
You can trigger the code path with the following command:
websocat "ws://localhost:8443"