@@ -6211,6 +6211,39 @@ static bool handle_gc_lossless_packet(const GC_Session *c, GC_Chat *chat, const
62116211 return true;
62126212}
62136213
6214+ non_null (1 , 2 , 3 , 4 , 6 ) nullable (8 )
6215+ static int handle_gc_lossy_packet_decoded (
6216+ const GC_Session * c , GC_Chat * chat , GC_Connection * gconn , const GC_Peer * peer ,
6217+ uint8_t packet_type , const uint8_t * data , uint16_t payload_len , void * userdata )
6218+ {
6219+ switch (packet_type ) {
6220+ case GP_MESSAGE_ACK : {
6221+ return handle_gc_message_ack (chat , gconn , data , payload_len );
6222+ }
6223+
6224+ case GP_PING : {
6225+ return handle_gc_ping (chat , gconn , data , payload_len );
6226+ }
6227+
6228+ case GP_INVITE_RESPONSE_REJECT : {
6229+ return handle_gc_invite_response_reject (c , chat , data , payload_len , userdata );
6230+ }
6231+
6232+ case GP_CUSTOM_PACKET : {
6233+ return handle_gc_custom_packet (c , chat , peer , data , payload_len , false, userdata );
6234+ }
6235+
6236+ case GP_CUSTOM_PRIVATE_PACKET : {
6237+ return handle_gc_custom_private_packet (c , chat , peer , data , payload_len , false, userdata );
6238+ }
6239+
6240+ default : {
6241+ LOGGER_WARNING (chat -> log , "Warning: handling invalid lossy group packet type 0x%02x" , packet_type );
6242+ return -1 ;
6243+ }
6244+ }
6245+ }
6246+
62146247/** @brief Handles lossy groupchat message packets.
62156248 *
62166249 * This function assumes the length has already been validated.
@@ -6259,41 +6292,7 @@ static bool handle_gc_lossy_packet(const GC_Session *c, GC_Chat *chat, const uin
62596292 return false;
62606293 }
62616294
6262- int ret = -1 ;
6263- const uint16_t payload_len = (uint16_t )len ;
6264-
6265- switch (packet_type ) {
6266- case GP_MESSAGE_ACK : {
6267- ret = handle_gc_message_ack (chat , gconn , data , payload_len );
6268- break ;
6269- }
6270-
6271- case GP_PING : {
6272- ret = handle_gc_ping (chat , gconn , data , payload_len );
6273- break ;
6274- }
6275-
6276- case GP_INVITE_RESPONSE_REJECT : {
6277- ret = handle_gc_invite_response_reject (c , chat , data , payload_len , userdata );
6278- break ;
6279- }
6280-
6281- case GP_CUSTOM_PACKET : {
6282- ret = handle_gc_custom_packet (c , chat , peer , data , payload_len , false, userdata );
6283- break ;
6284- }
6285-
6286- case GP_CUSTOM_PRIVATE_PACKET : {
6287- ret = handle_gc_custom_private_packet (c , chat , peer , data , payload_len , false, userdata );
6288- break ;
6289- }
6290-
6291- default : {
6292- LOGGER_WARNING (chat -> log , "Warning: handling invalid lossy group packet type 0x%02x" , packet_type );
6293- free (data );
6294- return false;
6295- }
6296- }
6295+ const int ret = handle_gc_lossy_packet_decoded (c , chat , gconn , peer , packet_type , data , (uint16_t )len , userdata );
62976296
62986297 free (data );
62996298
0 commit comments