From 6670fd4fdf654dcdd2fab41157fe186e1086e1fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Thu, 16 Jan 2025 11:21:02 +0100 Subject: [PATCH] lsteamclient: Move some networking messages code around. --- lsteamclient/unix_steam_networking_manual.cpp | 164 ++++++++---------- 1 file changed, 77 insertions(+), 87 deletions(-) diff --git a/lsteamclient/unix_steam_networking_manual.cpp b/lsteamclient/unix_steam_networking_manual.cpp index 2b0123cd..0024c1b3 100644 --- a/lsteamclient/unix_steam_networking_manual.cpp +++ b/lsteamclient/unix_steam_networking_manual.cpp @@ -111,6 +111,23 @@ static void receive_messages_utow( uint32_t count, Umsg **u_msgs, Wmsg **w_msgs } } +template< typename Wmsg, typename Umsg > +static void send_messages_wtou( uint32_t count, Wmsg *const *w_msgs, Umsg **u_msgs ) +{ + uint32_t i; + + for (i = 0; i < count; i++) + { + struct networking_message *message = networking_message::from_w( w_msgs[i] ); + auto *w_msg = &message->w_msg( **w_msgs ); + auto *u_msg = message->u_msg( **w_msgs ); + steam_networking_message_wtou( *u_msg, *w_msg ); + /* steamclient library takes ownership */ + message->u_msg( **w_msgs ) = NULL; + u_msgs[i] = u_msg; + } +} + NTSTATUS steamclient_networking_messages_receive_144( void *args ) { struct steamclient_networking_messages_receive_144_params *params = (struct steamclient_networking_messages_receive_144_params *)args; @@ -129,6 +146,66 @@ NTSTATUS steamclient_networking_messages_receive_144( void *args ) return 0; } +NTSTATUS steamclient_networking_messages_receive_147( void *args ) +{ + struct steamclient_networking_messages_receive_147_params *params = (struct steamclient_networking_messages_receive_147_params *)args; + uint32_t i; + + for (i = 0; i < params->count; i++) + { + struct networking_message *message = networking_message::from_w( params->w_msgs[i] ); + auto *w_msg = &message->w_msg( **params->w_msgs ); + auto *u_msg = message->u_msg( **params->w_msgs ); + memcpy( w_msg->m_pData, u_msg->m_pData, u_msg->m_cbSize ); + u_msg->m_pfnRelease( u_msg ); + message->u_msg( **params->w_msgs ) = NULL; + } + + return 0; +} + +NTSTATUS steamclient_networking_message_release_147( void *args ) +{ + struct steamclient_networking_message_release_147_params *params = (struct steamclient_networking_message_release_147_params *)args; + struct networking_message *message = networking_message::from_w( params->w_msg ); + auto *u_msg = message->u_msg( *params->w_msg ); + + if (!message->u_msg( *params->w_msg )) return 0; + u_msg->m_pfnRelease( u_msg ); + message->u_msg( *params->w_msg ) = NULL; + return 0; +} + +NTSTATUS steamclient_networking_messages_receive_153a( void *args ) +{ + struct steamclient_networking_messages_receive_153a_params *params = (struct steamclient_networking_messages_receive_153a_params *)args; + uint32_t i; + + for (i = 0; i < params->count; i++) + { + struct networking_message *message = networking_message::from_w( params->w_msgs[i] ); + auto *w_msg = &message->w_msg( **params->w_msgs ); + auto *u_msg = message->u_msg( **params->w_msgs ); + memcpy( w_msg->m_pData, u_msg->m_pData, u_msg->m_cbSize ); + u_msg->m_pfnRelease( u_msg ); + message->u_msg( **params->w_msgs ) = NULL; + } + + return 0; +} + +NTSTATUS steamclient_networking_message_release_153a( void *args ) +{ + struct steamclient_networking_message_release_153a_params *params = (struct steamclient_networking_message_release_153a_params *)args; + struct networking_message *message = networking_message::from_w( params->w_msg ); + auto *u_msg = message->u_msg( *params->w_msg ); + + if (!message->u_msg( *params->w_msg )) return 0; + u_msg->m_pfnRelease( u_msg ); + message->u_msg( *params->w_msg ) = NULL; + return 0; +} + /* ISteamNetworkingSockets_SteamNetworkingSockets002 */ NTSTATUS ISteamNetworkingSockets_SteamNetworkingSockets002_ReceiveMessagesOnConnection( void *args ) @@ -173,58 +250,6 @@ NTSTATUS ISteamNetworkingSockets_SteamNetworkingSockets004_ReceiveMessagesOnList return 0; } -NTSTATUS steamclient_networking_messages_receive_147( void *args ) -{ - struct steamclient_networking_messages_receive_147_params *params = (struct steamclient_networking_messages_receive_147_params *)args; - uint32_t i; - - for (i = 0; i < params->count; i++) - { - struct networking_message *message = networking_message::from_w( params->w_msgs[i] ); - auto *w_msg = &message->w_msg( **params->w_msgs ); - auto *u_msg = message->u_msg( **params->w_msgs ); - memcpy( w_msg->m_pData, u_msg->m_pData, u_msg->m_cbSize ); - u_msg->m_pfnRelease( u_msg ); - message->u_msg( **params->w_msgs ) = NULL; - } - - return 0; -} - -template< typename Wmsg, typename Umsg > -static void send_messages_wtou( uint32_t count, Wmsg *const *w_msgs, Umsg **u_msgs ) -{ - uint32_t i; - - for (i = 0; i < count; i++) - { - struct networking_message *message = networking_message::from_w( w_msgs[i] ); - auto *w_msg = &message->w_msg( **w_msgs ); - auto *u_msg = message->u_msg( **w_msgs ); - steam_networking_message_wtou( *u_msg, *w_msg ); - /* steamclient library takes ownership */ - message->u_msg( **w_msgs ) = NULL; - u_msgs[i] = u_msg; - } -} - -static void networking_message_release_147( w_SteamNetworkingMessage_t_147 *w_msg ) -{ - struct networking_message *message = networking_message::from_w( w_msg ); - auto *u_msg = message->u_msg( *w_msg ); - - if (!message->u_msg( *w_msg )) return; - u_msg->m_pfnRelease( u_msg ); - message->u_msg( *w_msg ) = NULL; -} - -NTSTATUS steamclient_networking_message_release_147( void *args ) -{ - struct steamclient_networking_message_release_147_params *params = (struct steamclient_networking_message_release_147_params *)args; - networking_message_release_147( params->w_msg ); - return 0; -} - /* ISteamNetworkingSockets_SteamNetworkingSockets006 */ NTSTATUS ISteamNetworkingSockets_SteamNetworkingSockets006_ReceiveMessagesOnConnection( void *args ) @@ -403,41 +428,6 @@ NTSTATUS ISteamNetworkingUtils_SteamNetworkingUtils003_SetConfigValue( void *arg return 0; } -NTSTATUS steamclient_networking_messages_receive_153a( void *args ) -{ - struct steamclient_networking_messages_receive_153a_params *params = (struct steamclient_networking_messages_receive_153a_params *)args; - uint32_t i; - - for (i = 0; i < params->count; i++) - { - struct networking_message *message = networking_message::from_w( params->w_msgs[i] ); - auto *w_msg = &message->w_msg( **params->w_msgs ); - auto *u_msg = message->u_msg( **params->w_msgs ); - memcpy( w_msg->m_pData, u_msg->m_pData, u_msg->m_cbSize ); - u_msg->m_pfnRelease( u_msg ); - message->u_msg( **params->w_msgs ) = NULL; - } - - return 0; -} - -static void networking_message_release_153a( w_SteamNetworkingMessage_t_153a *w_msg ) -{ - struct networking_message *message = networking_message::from_w( w_msg ); - auto *u_msg = message->u_msg( *w_msg ); - - if (!message->u_msg( *w_msg )) return; - u_msg->m_pfnRelease( u_msg ); - message->u_msg( *w_msg ) = NULL; -} - -NTSTATUS steamclient_networking_message_release_153a( void *args ) -{ - struct steamclient_networking_message_release_153a_params *params = (struct steamclient_networking_message_release_153a_params *)args; - networking_message_release_153a( params->w_msg ); - return 0; -} - /* ISteamNetworkingFakeUDPPort_SteamNetworkingFakeUDPPort001 */ NTSTATUS ISteamNetworkingFakeUDPPort_SteamNetworkingFakeUDPPort001_ReceiveMessages( void *args )