@@ -367,7 +367,7 @@ impl Responder {
367
367
/// Use when the recipient doesn't need to send back a reply to us.
368
368
pub fn respond ( self ) -> ResponseInstruction {
369
369
ResponseInstruction {
370
- send_path : self . reply_path ,
370
+ destination : Destination :: BlindedPath ( self . reply_path ) ,
371
371
context : None ,
372
372
}
373
373
}
@@ -377,7 +377,7 @@ impl Responder {
377
377
/// Use when the recipient needs to send back a reply to us.
378
378
pub fn respond_with_reply_path ( self , context : MessageContext ) -> ResponseInstruction {
379
379
ResponseInstruction {
380
- send_path : self . reply_path ,
380
+ destination : Destination :: BlindedPath ( self . reply_path ) ,
381
381
context : Some ( context) ,
382
382
}
383
383
}
@@ -386,17 +386,13 @@ impl Responder {
386
386
/// Instructions for how and where to send the response to an onion message.
387
387
#[ derive( Clone ) ]
388
388
pub struct ResponseInstruction {
389
- send_path : BlindedMessagePath ,
389
+ destination : Destination ,
390
390
context : Option < MessageContext > ,
391
391
}
392
392
393
393
impl ResponseInstruction {
394
394
fn into_instructions ( self ) -> MessageSendInstructions {
395
- let destination = Destination :: BlindedPath ( self . send_path ) ;
396
- match self . context {
397
- Some ( context) => MessageSendInstructions :: WithReplyPath { destination, context } ,
398
- None => MessageSendInstructions :: WithoutReplyPath { destination } ,
399
- }
395
+ MessageSendInstructions :: ForReply { instructions : self }
400
396
}
401
397
}
402
398
@@ -425,7 +421,11 @@ pub enum MessageSendInstructions {
425
421
WithoutReplyPath {
426
422
/// The desination where we need to send our message.
427
423
destination : Destination ,
428
- }
424
+ } ,
425
+ /// Indicates that a message is being sent as a reply to a received message.
426
+ ForReply {
427
+ instructions : ResponseInstruction ,
428
+ } ,
429
429
}
430
430
431
431
/// A trait defining behavior for routing an [`OnionMessage`].
@@ -1158,7 +1158,8 @@ where
1158
1158
let ( destination, reply_path) = match instructions {
1159
1159
MessageSendInstructions :: WithSpecifiedReplyPath { destination, reply_path } =>
1160
1160
( destination, Some ( reply_path) ) ,
1161
- MessageSendInstructions :: WithReplyPath { destination, context } => {
1161
+ MessageSendInstructions :: WithReplyPath { destination, context } |
1162
+ MessageSendInstructions :: ForReply { instructions : ResponseInstruction { destination, context : Some ( context) } } => {
1162
1163
match self . create_blinded_path ( context) {
1163
1164
Ok ( reply_path) => ( destination, Some ( reply_path) ) ,
1164
1165
Err ( err) => {
@@ -1171,7 +1172,8 @@ where
1171
1172
}
1172
1173
}
1173
1174
} ,
1174
- MessageSendInstructions :: WithoutReplyPath { destination } =>
1175
+ MessageSendInstructions :: WithoutReplyPath { destination } |
1176
+ MessageSendInstructions :: ForReply { instructions : ResponseInstruction { destination, context : None } } =>
1175
1177
( destination, None ) ,
1176
1178
} ;
1177
1179
0 commit comments