@@ -74,14 +74,16 @@ def connection_made(self, transport: transports.BaseTransport) -> None:
7474 def data_received (self , data : bytes ) -> None :
7575 addr = self .transport .get_extra_info ('peername' )
7676 logger .info ("Received response from %s." , addr )
77- if self .session .state == "WaitForSupportedAppProtocolRes " :
77+ if self .session .session_parameters . request_type . lower () == "sap " :
7878 packet = SupportedAppMessage (data )
79- elif "Dc " in self .session .state :
79+ elif "dc " in self .session .session_parameters . request_type . lower () :
8080 packet = EXIDCMessage (data )
8181 else :
8282 packet = EXIMessage (data )
8383 self .process_incoming_message (packet )
8484
85+
86+
8587 def eof_received (self ) -> Optional [bool ]:
8688 logger .info ('Received EOF.' )
8789 if self .transport .can_write_eof ():
@@ -103,7 +105,14 @@ def process_incoming_message(self, v2gtp_message: V2GTPMessage) -> None:
103105 :return:
104106 """
105107 if self .message_handler .is_valid (v2gtp_message ):
106- payload = v2gtp_message .payload .getfieldval ("payloadContent" )
108+ try :
109+ payload = v2gtp_message .payload .getfieldval ("payloadContent" )
110+ except AttributeError as ex :
111+ template = "An exception of type {0} occurred. Arguments:\n {1!r}"
112+ message = template .format (type (ex ).__name__ , ex .args )
113+ logger .error (message + '\n v2gtp_message has no field payloadContent, incorrect payload' )
114+ raise
115+
107116 message_type = v2gtp_message .get_payload_type ()
108117 logger .info ("Payload type: " + str (message_type ))
109118 logger .debug ("Received EXI msg to be decoded: " + hexdump .dump (payload , len (payload ), ' ' ))
@@ -167,6 +176,7 @@ def process_reaction(self, reaction) -> None:
167176 self .session .reset_sequence_timer ()
168177 self .session .message_timer .start ()
169178 self .send (xml_string , message , request )
179+ self .session .session_parameters .request_type = reaction .msg_type
170180 self .session .save_session_data (reaction .extra_data )
171181 self .session .next_state ()
172182
0 commit comments