diff --git a/lsteamclient/unix_steam_networking_manual.cpp b/lsteamclient/unix_steam_networking_manual.cpp index 8db37b50..c11d35dc 100644 --- a/lsteamclient/unix_steam_networking_manual.cpp +++ b/lsteamclient/unix_steam_networking_manual.cpp @@ -6,6 +6,97 @@ WINE_DEFAULT_DEBUG_CHANNEL(steamclient); +static void steam_networking_message_utow( w_SteamNetworkingMessage_t_144 &dst, const u_SteamNetworkingMessage_t_144 &src ) +{ + dst.m_cbSize = src.m_cbSize; + dst.m_conn = src.m_conn; + dst.m_sender = src.m_sender; + dst.m_nConnUserData = src.m_nConnUserData; + dst.m_usecTimeReceived = src.m_usecTimeReceived; + dst.m_nMessageNumber = src.m_nMessageNumber; + dst.m_nChannel = src.m_nChannel; +} + +static void steam_networking_message_utow( w_SteamNetworkingMessage_t_147 &dst, const u_SteamNetworkingMessage_t_147 &src ) +{ + dst.m_cbSize = src.m_cbSize; + dst.m_conn = src.m_conn; + dst.m_identityPeer = src.m_identityPeer; + dst.m_nConnUserData = src.m_nConnUserData; + dst.m_usecTimeReceived = src.m_usecTimeReceived; + dst.m_nMessageNumber = src.m_nMessageNumber; + dst.m_nChannel = src.m_nChannel; + dst.m_nFlags = src.m_nFlags; + dst.m_nUserData = src.m_nUserData; +} + +static void steam_networking_message_utow( w_SteamNetworkingMessage_t_153a &dst, const u_SteamNetworkingMessage_t_153a &src ) +{ + dst.m_cbSize = src.m_cbSize; + dst.m_conn = src.m_conn; + dst.m_identityPeer = src.m_identityPeer; + dst.m_nConnUserData = src.m_nConnUserData; + dst.m_usecTimeReceived = src.m_usecTimeReceived; + dst.m_nMessageNumber = src.m_nMessageNumber; + dst.m_nChannel = src.m_nChannel; + dst.m_nFlags = src.m_nFlags; + dst.m_nUserData = src.m_nUserData; + dst.m_idxLane = src.m_idxLane; +} + +static void U_CDECL u_SteamNetworkingMessage_t_147_FreeData( u_SteamNetworkingMessage_t_147 *msg ) +{ + free( msg->m_pData ); + msg->m_pData = NULL; +} + +static void steam_networking_message_wtou( u_SteamNetworkingMessage_t_147& dst, const w_SteamNetworkingMessage_t_147& src ) +{ + if (!dst.m_pData) + { + dst.m_pData = malloc( src.m_cbSize ); + dst.m_pfnFreeData = u_SteamNetworkingMessage_t_147_FreeData; + } + + memcpy( dst.m_pData, src.m_pData, src.m_cbSize ); + dst.m_cbSize = src.m_cbSize; + dst.m_conn = src.m_conn; + dst.m_identityPeer = src.m_identityPeer; + dst.m_nConnUserData = src.m_nConnUserData; + dst.m_usecTimeReceived = src.m_usecTimeReceived; + dst.m_nMessageNumber = src.m_nMessageNumber; + dst.m_nChannel = src.m_nChannel; + dst.m_nFlags = src.m_nFlags; + dst.m_nUserData = src.m_nUserData; +} + +static void U_CDECL u_SteamNetworkingMessage_t_153a_FreeData( u_SteamNetworkingMessage_t_153a *msg ) +{ + free( msg->m_pData ); + msg->m_pData = NULL; +} + +static void steam_networking_message_wtou( u_SteamNetworkingMessage_t_153a& dst, const w_SteamNetworkingMessage_t_153a& src ) +{ + if (!dst.m_pData) + { + dst.m_pData = malloc( src.m_cbSize ); + dst.m_pfnFreeData = u_SteamNetworkingMessage_t_153a_FreeData; + } + + memcpy( dst.m_pData, src.m_pData, src.m_cbSize ); + dst.m_cbSize = src.m_cbSize; + dst.m_conn = src.m_conn; + dst.m_identityPeer = src.m_identityPeer; + dst.m_nConnUserData = src.m_nConnUserData; + dst.m_usecTimeReceived = src.m_usecTimeReceived; + dst.m_nMessageNumber = src.m_nMessageNumber; + dst.m_nChannel = src.m_nChannel; + dst.m_nFlags = src.m_nFlags; + dst.m_nUserData = src.m_nUserData; + dst.m_idxLane = src.m_idxLane; +} + static void receive_messages_utow_144( uint32_t count, u_SteamNetworkingMessage_t_144 **u_msgs, w_SteamNetworkingMessage_t_144 **w_msgs ) { @@ -15,16 +106,8 @@ static void receive_messages_utow_144( uint32_t count, u_SteamNetworkingMessage_ { struct networking_message *message = networking_message::from_w( w_msgs[i] ); auto *w_msg = &message->w_msg( **w_msgs ); - u_SteamNetworkingMessage_t_144 *u_msg = u_msgs[i]; - message->u_msg( **w_msgs ) = u_msg; - - w_msg->m_cbSize = u_msg->m_cbSize; - w_msg->m_conn = u_msg->m_conn; - w_msg->m_sender = u_msg->m_sender; - w_msg->m_nConnUserData = u_msg->m_nConnUserData; - w_msg->m_usecTimeReceived = u_msg->m_usecTimeReceived; - w_msg->m_nMessageNumber = u_msg->m_nMessageNumber; - w_msg->m_nChannel = u_msg->m_nChannel; + message->u_msg( **w_msgs ) = u_msgs[i]; + steam_networking_message_utow( *w_msg, *u_msgs[i] ); } } @@ -99,18 +182,8 @@ static void receive_messages_utow_147( uint32_t count, u_SteamNetworkingMessage_ { struct networking_message *message = networking_message::from_w( w_msgs[i] ); auto *w_msg = &message->w_msg( **w_msgs ); - u_SteamNetworkingMessage_t_147 *u_msg = u_msgs[i]; - message->u_msg( **w_msgs ) = u_msg; - - w_msg->m_cbSize = u_msg->m_cbSize; - w_msg->m_conn = u_msg->m_conn; - w_msg->m_identityPeer = u_msg->m_identityPeer; - w_msg->m_nConnUserData = u_msg->m_nConnUserData; - w_msg->m_usecTimeReceived = u_msg->m_usecTimeReceived; - w_msg->m_nMessageNumber = u_msg->m_nMessageNumber; - w_msg->m_nChannel = u_msg->m_nChannel; - w_msg->m_nFlags = u_msg->m_nFlags; - w_msg->m_nUserData = u_msg->m_nUserData; + message->u_msg( **w_msgs ) = u_msgs[i]; + steam_networking_message_utow( *w_msg, *u_msgs[i] ); } } @@ -132,12 +205,6 @@ NTSTATUS steamclient_networking_messages_receive_147( void *args ) return 0; } -static void U_CDECL u_SteamNetworkingMessage_t_147_FreeData( u_SteamNetworkingMessage_t_147 *msg ) -{ - free( msg->m_pData ); - msg->m_pData = NULL; -} - static void send_messages_wtou_147( uint32_t count, w_SteamNetworkingMessage_t_147 *const *w_msgs, u_SteamNetworkingMessage_t_147 **u_msgs ) { @@ -147,25 +214,8 @@ static void send_messages_wtou_147( uint32_t count, w_SteamNetworkingMessage_t_1 { struct networking_message *message = networking_message::from_w( w_msgs[i] ); auto *w_msg = &message->w_msg( **w_msgs ); - u_SteamNetworkingMessage_t_147 *u_msg = message->u_msg( **w_msgs ); - - if (!u_msg->m_pData) - { - u_msg->m_pData = malloc( w_msg->m_cbSize ); - u_msg->m_pfnFreeData = u_SteamNetworkingMessage_t_147_FreeData; - } - - memcpy( u_msg->m_pData, w_msg->m_pData, w_msg->m_cbSize ); - u_msg->m_cbSize = w_msg->m_cbSize; - u_msg->m_conn = w_msg->m_conn; - u_msg->m_identityPeer = w_msg->m_identityPeer; - u_msg->m_nConnUserData = w_msg->m_nConnUserData; - u_msg->m_usecTimeReceived = w_msg->m_usecTimeReceived; - u_msg->m_nMessageNumber = w_msg->m_nMessageNumber; - u_msg->m_nChannel = w_msg->m_nChannel; - u_msg->m_nFlags = w_msg->m_nFlags; - u_msg->m_nUserData = w_msg->m_nUserData; - + 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; @@ -376,19 +426,8 @@ static void receive_messages_utow_153a( uint32_t count, u_SteamNetworkingMessage { struct networking_message *message = networking_message::from_w( w_msgs[i] ); auto *w_msg = &message->w_msg( **w_msgs ); - u_SteamNetworkingMessage_t_153a *u_msg = u_msgs[i]; - message->u_msg( **w_msgs ) = u_msg; - - w_msg->m_cbSize = u_msg->m_cbSize; - w_msg->m_conn = u_msg->m_conn; - w_msg->m_identityPeer = u_msg->m_identityPeer; - w_msg->m_nConnUserData = u_msg->m_nConnUserData; - w_msg->m_usecTimeReceived = u_msg->m_usecTimeReceived; - w_msg->m_nMessageNumber = u_msg->m_nMessageNumber; - w_msg->m_nChannel = u_msg->m_nChannel; - w_msg->m_nFlags = u_msg->m_nFlags; - w_msg->m_nUserData = u_msg->m_nUserData; - w_msg->m_idxLane = u_msg->m_idxLane; + message->u_msg( **w_msgs ) = u_msgs[i]; + steam_networking_message_utow( *w_msg, *u_msgs[i] ); } } @@ -410,12 +449,6 @@ NTSTATUS steamclient_networking_messages_receive_153a( void *args ) return 0; } -static void U_CDECL u_SteamNetworkingMessage_t_153a_FreeData( u_SteamNetworkingMessage_t_153a *msg ) -{ - free( msg->m_pData ); - msg->m_pData = NULL; -} - static void send_messages_wtou_153a( uint32_t count, w_SteamNetworkingMessage_t_153a *const *w_msgs, u_SteamNetworkingMessage_t_153a **u_msgs ) { @@ -425,26 +458,8 @@ static void send_messages_wtou_153a( uint32_t count, w_SteamNetworkingMessage_t_ { struct networking_message *message = networking_message::from_w( w_msgs[i] ); auto *w_msg = &message->w_msg( **w_msgs ); - u_SteamNetworkingMessage_t_153a *u_msg = message->u_msg( **w_msgs ); - - if (!u_msg->m_pData) - { - u_msg->m_pData = malloc( w_msg->m_cbSize ); - u_msg->m_pfnFreeData = u_SteamNetworkingMessage_t_153a_FreeData; - } - - memcpy( u_msg->m_pData, w_msg->m_pData, w_msg->m_cbSize ); - u_msg->m_cbSize = w_msg->m_cbSize; - u_msg->m_conn = w_msg->m_conn; - u_msg->m_identityPeer = w_msg->m_identityPeer; - u_msg->m_nConnUserData = w_msg->m_nConnUserData; - u_msg->m_usecTimeReceived = w_msg->m_usecTimeReceived; - u_msg->m_nMessageNumber = w_msg->m_nMessageNumber; - u_msg->m_nChannel = w_msg->m_nChannel; - u_msg->m_nFlags = w_msg->m_nFlags; - u_msg->m_nUserData = w_msg->m_nUserData; - u_msg->m_idxLane = w_msg->m_idxLane; - + 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;