diff options
| author | 2026-04-13 17:36:54 -0400 | |
|---|---|---|
| committer | 2026-04-13 17:36:54 -0400 | |
| commit | 4ceadc74f0086168fbc576032ba3e6f23af16e39 (patch) | |
| tree | a542703d78f2b29ac1a756fdceec78e40860bab0 /src/liana/server.c | |
| parent | 77b54c35bf9587450cd636e0d7df37e190e28bfb (diff) | |
| download | camu-4ceadc74f0086168fbc576032ba3e6f23af16e39.tar.gz camu-4ceadc74f0086168fbc576032ba3e6f23af16e39.tar.bz2 camu-4ceadc74f0086168fbc576032ba3e6f23af16e39.zip | |
Changes that went uncommitted for too long
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/liana/server.c')
| -rw-r--r-- | src/liana/server.c | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/liana/server.c b/src/liana/server.c index 04ef54b..5065425 100644 --- a/src/liana/server.c +++ b/src/liana/server.c @@ -1,3 +1,6 @@ +#define AL_LOG_SECTION "liana" +#include <al/log.h> + #include "server.h" #include "handlers.h" #include "list.h" @@ -166,7 +169,7 @@ static void data_connection_closed_callback(void *userdata, struct nn_packet_str } } -static void start_connection_handler(struct lia_node_connection *conn, u32 mask) +static void start_connection_handler(struct lia_node_connection *conn, u64 mask) { struct nn_packet_stream *stream = conn->stream; conn->handler->subscribe(conn->handler, mask); @@ -180,7 +183,7 @@ static void start_connection_handler(struct lia_node_connection *conn, u32 mask) static void subscribe_packet_callback(void *userdata, struct nn_packet_stream *stream, struct nn_packet *packet) { struct lia_node_connection *conn = (struct lia_node_connection *)userdata; - u32 mask = nn_packet_read_u32(packet); + u64 mask = nn_packet_read_u64(packet); nn_packet_stream_return_packet(stream, packet); start_connection_handler(conn, mask); } @@ -203,7 +206,7 @@ static void handle_connection(struct lia_node_connection *conn, struct nn_packet { struct nn_packet_stream *stream = conn->stream; - u32 mask = nn_packet_read_u32(packet); + u64 mask = nn_packet_read_u64(packet); u64 seek_pos = nn_packet_read_u64(packet); al_assert(!conn->ref); @@ -487,7 +490,7 @@ void lia_node_close(struct lia_node *node) al_array_foreach_rev(node->connections, i, conn) { if (conn->stream) { conn->disconnected = true; - nn_packet_stream_disconnect(conn->stream); + //nn_packet_stream_disconnect(conn->stream); } else { free_connection(conn); } @@ -503,6 +506,19 @@ void lia_server_close(struct lia_server *server) } } +void lia_server_force_disconnect_nodes(struct lia_server *server) +{ + struct lia_node *node; + al_array_foreach(server->nodes, i, node) { + struct lia_node_connection *conn; + al_array_foreach_rev(node->connections, j, conn) { + if (conn->stream) { + nn_packet_stream_disconnect(conn->stream); + } + } + } +} + void lia_server_free(struct lia_server *server) { // Assuming we joined on the event loop, server->nodes should be empty. |