@@ -1820,6 +1820,18 @@ where
1820
1820
{
1821
1821
fn handle_onion_message ( & self , peer_node_id : PublicKey , msg : & OnionMessage ) {
1822
1822
let logger = WithContext :: from ( & self . logger , Some ( peer_node_id) , None , None ) ;
1823
+ macro_rules! extract_expected_context {
1824
+ ( $context: expr, $expected_context_type: path) => {
1825
+ match $context {
1826
+ Some ( $expected_context_type( context) ) => context,
1827
+ Some ( _) => {
1828
+ debug_assert!( false , "Checked in peel_onion_message" ) ;
1829
+ return ;
1830
+ } ,
1831
+ None => return ,
1832
+ }
1833
+ } ;
1834
+ }
1823
1835
match self . peel_onion_message ( msg) {
1824
1836
Ok ( PeeledOnion :: Receive ( message, context, reply_path) ) => {
1825
1837
log_trace ! (
@@ -1850,14 +1862,8 @@ where
1850
1862
ParsedOnionMessageContents :: AsyncPayments (
1851
1863
AsyncPaymentsMessage :: HeldHtlcAvailable ( msg) ,
1852
1864
) => {
1853
- let context = match context {
1854
- Some ( MessageContext :: AsyncPayments ( context) ) => context,
1855
- Some ( _) => {
1856
- debug_assert ! ( false , "Checked in peel_onion_message" ) ;
1857
- return ;
1858
- } ,
1859
- None => return ,
1860
- } ;
1865
+ let context =
1866
+ extract_expected_context ! ( context, MessageContext :: AsyncPayments ) ;
1861
1867
let response_instructions = self
1862
1868
. async_payments_handler
1863
1869
. handle_held_htlc_available ( msg, context, responder) ;
@@ -1869,14 +1875,8 @@ where
1869
1875
ParsedOnionMessageContents :: AsyncPayments (
1870
1876
AsyncPaymentsMessage :: ReleaseHeldHtlc ( msg) ,
1871
1877
) => {
1872
- let context = match context {
1873
- Some ( MessageContext :: AsyncPayments ( context) ) => context,
1874
- Some ( _) => {
1875
- debug_assert ! ( false , "Checked in peel_onion_message" ) ;
1876
- return ;
1877
- } ,
1878
- None => return ,
1879
- } ;
1878
+ let context =
1879
+ extract_expected_context ! ( context, MessageContext :: AsyncPayments ) ;
1880
1880
self . async_payments_handler . handle_release_held_htlc ( msg, context) ;
1881
1881
} ,
1882
1882
ParsedOnionMessageContents :: DNSResolver ( DNSResolverMessage :: DNSSECQuery (
@@ -1891,10 +1891,8 @@ where
1891
1891
ParsedOnionMessageContents :: DNSResolver ( DNSResolverMessage :: DNSSECProof (
1892
1892
msg,
1893
1893
) ) => {
1894
- let context = match context {
1895
- Some ( MessageContext :: DNSResolver ( context) ) => context,
1896
- _ => return ,
1897
- } ;
1894
+ let context =
1895
+ extract_expected_context ! ( context, MessageContext :: DNSResolver ) ;
1898
1896
self . dns_resolver_handler . handle_dnssec_proof ( msg, context) ;
1899
1897
} ,
1900
1898
ParsedOnionMessageContents :: Custom ( msg) => {
0 commit comments