@@ -10,11 +10,12 @@ use bitcoin::network::serialize::{serialize, BitcoinHash};
10
10
use lightning:: ln:: channel:: { Channel , ChannelKeys } ;
11
11
use lightning:: ln:: channelmanager:: { HTLCFailReason , PendingHTLCStatus } ;
12
12
use lightning:: ln:: msgs;
13
- use lightning:: ln:: msgs:: { MsgDecodable , ErrorAction } ;
13
+ use lightning:: ln:: msgs:: { ErrorAction } ;
14
14
use lightning:: chain:: chaininterface:: { FeeEstimator , ConfirmationTarget } ;
15
15
use lightning:: chain:: transaction:: OutPoint ;
16
16
use lightning:: util:: reset_rng_state;
17
17
use lightning:: util:: logger:: Logger ;
18
+ use lightning:: util:: ser:: { Readable , Reader } ;
18
19
19
20
mod utils;
20
21
@@ -119,8 +120,9 @@ pub fn do_test(data: &[u8]) {
119
120
}
120
121
121
122
macro_rules! decode_msg {
122
- ( $MsgType: path, $len: expr) => {
123
- match <( $MsgType) >:: decode( get_slice!( $len) ) {
123
+ ( $MsgType: path, $len: expr) => { {
124
+ let mut reader = Reader :: new( :: std:: io:: Cursor :: new( get_slice!( $len) ) ) ;
125
+ match <( $MsgType) >:: read( & mut reader) {
124
126
Ok ( msg) => msg,
125
127
Err ( e) => match e {
126
128
msgs:: DecodeError :: UnknownRealmByte => return ,
@@ -131,11 +133,11 @@ pub fn do_test(data: &[u8]) {
131
133
msgs:: DecodeError :: ExtraAddressesPerType => return ,
132
134
msgs:: DecodeError :: BadLengthDescriptor => return ,
133
135
msgs:: DecodeError :: ShortRead => panic!( "We picked the length..." ) ,
134
- msgs:: DecodeError :: InvalidValue => panic!( "Writeable not used yet... " ) ,
135
- msgs:: DecodeError :: Io ( _ ) => panic!( "Writeable not used yet..." ) ,
136
+ msgs:: DecodeError :: InvalidValue => panic!( "Should not happen with p2p message decoding " ) ,
137
+ msgs:: DecodeError :: Io ( e ) => panic!( format! ( "{}" , e ) ) ,
136
138
}
137
139
}
138
- }
140
+ } }
139
141
}
140
142
141
143
macro_rules! decode_msg_with_len16 {
@@ -145,21 +147,7 @@ pub fn do_test(data: &[u8]) {
145
147
Some ( slice) => slice,
146
148
None => return ,
147
149
} [ $begin_len..$begin_len + 2 ] ) ;
148
- match <( $MsgType) >:: decode( get_slice!( $begin_len as usize + 2 + ( extra_len as usize ) * $factor) ) {
149
- Ok ( msg) => msg,
150
- Err ( e) => match e {
151
- msgs:: DecodeError :: UnknownRealmByte => return ,
152
- msgs:: DecodeError :: UnknownRequiredFeature => return ,
153
- msgs:: DecodeError :: BadPublicKey => return ,
154
- msgs:: DecodeError :: BadSignature => return ,
155
- msgs:: DecodeError :: BadText => return ,
156
- msgs:: DecodeError :: ExtraAddressesPerType => return ,
157
- msgs:: DecodeError :: BadLengthDescriptor => return ,
158
- msgs:: DecodeError :: ShortRead => panic!( "We picked the length..." ) ,
159
- msgs:: DecodeError :: InvalidValue => panic!( "Writeable not used yet..." ) ,
160
- msgs:: DecodeError :: Io ( _) => panic!( "Writeable not used yet..." ) ,
161
- }
162
- }
150
+ decode_msg!( $MsgType, $begin_len as usize + 2 + ( extra_len as usize ) * $factor)
163
151
}
164
152
}
165
153
}
0 commit comments