@@ -19,9 +19,6 @@ use crate::handlers::connection::cloud_agent::CloudAgentInfo;
19
19
use crate :: handlers:: connection:: legacy_agent_info:: LegacyAgentInfo ;
20
20
use crate :: handlers:: connection:: public_agent:: PublicAgent ;
21
21
use crate :: handlers:: discovery:: { respond_discovery_query, send_discovery_query} ;
22
- use crate :: handlers:: out_of_band:: receiver:: send_handshake_reuse;
23
- use crate :: handlers:: out_of_band:: sender:: send_handshake_reuse_accepted;
24
- use crate :: handlers:: trust_ping:: util:: handle_ping;
25
22
use crate :: handlers:: trust_ping:: TrustPingSender ;
26
23
use crate :: messages:: a2a:: protocol_registry:: ProtocolRegistry ;
27
24
use crate :: messages:: a2a:: A2AMessage ;
@@ -32,6 +29,8 @@ use crate::messages::discovery::disclose::{Disclose, ProtocolDescriptor};
32
29
use crate :: protocols:: connection:: invitee:: state_machine:: { InviteeFullState , InviteeState , SmConnectionInvitee } ;
33
30
use crate :: protocols:: connection:: inviter:: state_machine:: { InviterFullState , InviterState , SmConnectionInviter } ;
34
31
use crate :: protocols:: connection:: pairwise_info:: PairwiseInfo ;
32
+ use crate :: protocols:: oob:: { build_handshake_reuse_accepted_msg, build_handshake_reuse_msg} ;
33
+ use crate :: protocols:: trustping:: build_ping_response;
35
34
use crate :: protocols:: SendClosure ;
36
35
use crate :: utils:: send_message;
37
36
use crate :: utils:: serialization:: SerializableObjectWithState ;
@@ -417,14 +416,23 @@ impl Connection {
417
416
match message {
418
417
A2AMessage :: Ping ( ping) => {
419
418
info ! ( "Answering ping, thread: {}" , ping. get_thread_id( ) ) ;
420
- handle_ping ( wallet_handle, & ping, pw_vk, & did_doc, send_message) . await ?;
419
+ if ping. response_requested {
420
+ send_message (
421
+ wallet_handle,
422
+ pw_vk. to_string ( ) ,
423
+ did_doc. clone ( ) ,
424
+ build_ping_response ( & ping) . to_a2a_message ( ) ,
425
+ )
426
+ . await ?;
427
+ }
421
428
}
422
429
A2AMessage :: OutOfBandHandshakeReuse ( handshake_reuse) => {
423
430
info ! (
424
431
"Answering OutOfBandHandshakeReuse message, thread: {}" ,
425
432
handshake_reuse. get_thread_id( )
426
433
) ;
427
- send_handshake_reuse_accepted ( wallet_handle, & handshake_reuse, pw_vk, & did_doc) . await ?;
434
+ let msg = build_handshake_reuse_accepted_msg ( & handshake_reuse) ?;
435
+ send_message ( wallet_handle, pw_vk. to_string ( ) , did_doc. clone ( ) , msg. to_a2a_message ( ) ) . await ?;
428
436
}
429
437
A2AMessage :: Query ( query) => {
430
438
let supported_protocols = ProtocolRegistry :: init ( ) . get_protocols_for_query ( query. query . as_deref ( ) ) ;
@@ -691,19 +699,20 @@ impl Connection {
691
699
} ) )
692
700
}
693
701
694
- fn parse_generic_message ( message : & str ) -> A2AMessage {
702
+ fn build_basic_message ( message : & str ) -> A2AMessage {
695
703
match :: serde_json:: from_str :: < A2AMessage > ( message) {
696
704
Ok ( a2a_message) => a2a_message,
697
705
Err ( _) => BasicMessage :: create ( )
698
706
. set_content ( message. to_string ( ) )
699
707
. set_time ( )
708
+ . set_out_time ( )
700
709
. to_a2a_message ( ) ,
701
710
}
702
711
}
703
712
704
713
pub async fn send_generic_message ( & self , wallet_handle : WalletHandle , message : & str ) -> VcxResult < String > {
705
714
trace ! ( "Connection::send_generic_message >>> message: {:?}" , message) ;
706
- let message = Self :: parse_generic_message ( message) ;
715
+ let message = Self :: build_basic_message ( message) ;
707
716
let send_message = self . send_message_closure ( wallet_handle) ?;
708
717
send_message ( message) . await . map ( |_| String :: new ( ) )
709
718
}
@@ -748,8 +757,13 @@ impl Connection {
748
757
VcxErrorKind :: NotReady ,
749
758
format ! ( "Can't send handshake-reuse to the counterparty, because their did doc is not available" ) ,
750
759
) ) ?;
751
- send_handshake_reuse ( wallet_handle, & oob. id . 0 , & self . pairwise_info ( ) . pw_vk , & did_doc) . await ?;
752
- Ok ( ( ) )
760
+ send_message (
761
+ wallet_handle,
762
+ self . pairwise_info ( ) . pw_vk . clone ( ) ,
763
+ did_doc. clone ( ) ,
764
+ build_handshake_reuse_msg ( & oob) . to_a2a_message ( ) ,
765
+ )
766
+ . await
753
767
}
754
768
755
769
pub async fn delete ( & self , agency_client : & AgencyClient ) -> VcxResult < ( ) > {
0 commit comments