@@ -70,22 +70,22 @@ where
70
70
}
71
71
}
72
72
73
- fn block_service ( & self ) -> Result < & T :: BlockService , Status > {
73
+ fn block_service ( & self ) -> Result < & T :: BlockService , Box < Status > > {
74
74
self . inner
75
75
. block_service ( )
76
- . ok_or_else ( || Status :: new ( Code :: Unimplemented , "not implemented" ) )
76
+ . ok_or_else ( || Box :: new ( Status :: new ( Code :: Unimplemented , "not implemented" ) ) )
77
77
}
78
78
79
- fn fragment_service ( & self ) -> Result < & T :: FragmentService , Status > {
79
+ fn fragment_service ( & self ) -> Result < & T :: FragmentService , Box < Status > > {
80
80
self . inner
81
81
. fragment_service ( )
82
- . ok_or_else ( || Status :: new ( Code :: Unimplemented , "not implemented" ) )
82
+ . ok_or_else ( || Box :: new ( Status :: new ( Code :: Unimplemented , "not implemented" ) ) )
83
83
}
84
84
85
- fn gossip_service ( & self ) -> Result < & T :: GossipService , Status > {
85
+ fn gossip_service ( & self ) -> Result < & T :: GossipService , Box < Status > > {
86
86
self . inner
87
87
. gossip_service ( )
88
- . ok_or_else ( || Status :: new ( Code :: Unimplemented , "not implemented" ) )
88
+ . ok_or_else ( || Box :: new ( Status :: new ( Code :: Unimplemented , "not implemented" ) ) )
89
89
}
90
90
91
91
#[ allow( unused_mut) ]
@@ -101,12 +101,12 @@ where
101
101
}
102
102
}
103
103
104
- fn remote_addr_to_peer ( maybe_addr : Option < SocketAddr > ) -> Result < Peer , Status > {
104
+ fn remote_addr_to_peer ( maybe_addr : Option < SocketAddr > ) -> Result < Peer , Box < Status > > {
105
105
match maybe_addr {
106
106
Some ( addr) => Ok ( addr. into ( ) ) ,
107
- None => Err ( Status :: internal (
107
+ None => Err ( Box :: new ( Status :: internal (
108
108
"transport does not provide the remote address" ,
109
- ) ) ,
109
+ ) ) ) ,
110
110
}
111
111
}
112
112
@@ -119,7 +119,7 @@ where
119
119
& self ,
120
120
req : tonic:: Request < proto:: node:: HandshakeRequest > ,
121
121
) -> Result < tonic:: Response < proto:: node:: HandshakeResponse > , tonic:: Status > {
122
- let peer = remote_addr_to_peer ( req. remote_addr ( ) ) ?;
122
+ let peer = remote_addr_to_peer ( req. remote_addr ( ) ) . map_err ( |e| * e ) ?;
123
123
let req = req. into_inner ( ) ;
124
124
let nonce = & req. nonce ;
125
125
let hr = self . inner . handshake ( peer, nonce) . await ?;
@@ -137,7 +137,7 @@ where
137
137
& self ,
138
138
req : tonic:: Request < proto:: node:: ClientAuthRequest > ,
139
139
) -> Result < tonic:: Response < proto:: node:: ClientAuthResponse > , tonic:: Status > {
140
- let peer = remote_addr_to_peer ( req. remote_addr ( ) ) ?;
140
+ let peer = remote_addr_to_peer ( req. remote_addr ( ) ) . map_err ( |e| * e ) ?;
141
141
let req = req. into_inner ( ) ;
142
142
let node_id = NodeId :: try_from ( & req. node_id [ ..] ) ?;
143
143
let auth = node_id. authenticated ( & req. signature ) ?;
@@ -150,7 +150,7 @@ where
150
150
& self ,
151
151
_: tonic:: Request < proto:: node:: TipRequest > ,
152
152
) -> Result < tonic:: Response < proto:: node:: TipResponse > , tonic:: Status > {
153
- let service = self . block_service ( ) ?;
153
+ let service = self . block_service ( ) . map_err ( |e| * e ) ?;
154
154
let header = service. tip ( ) . await ?;
155
155
let res = proto:: node:: TipResponse {
156
156
block_header : header. into ( ) ,
@@ -162,7 +162,7 @@ where
162
162
& self ,
163
163
req : tonic:: Request < proto:: node:: PeersRequest > ,
164
164
) -> Result < tonic:: Response < proto:: node:: PeersResponse > , tonic:: Status > {
165
- let service = self . gossip_service ( ) ?;
165
+ let service = self . gossip_service ( ) . map_err ( |e| * e ) ?;
166
166
let peers = service. peers ( req. into_inner ( ) . limit ) . await ?;
167
167
let res = proto:: node:: PeersResponse {
168
168
peers : peers
@@ -181,7 +181,7 @@ where
181
181
& self ,
182
182
req : tonic:: Request < proto:: types:: BlockIds > ,
183
183
) -> Result < tonic:: Response < Self :: GetBlocksStream > , tonic:: Status > {
184
- let service = self . block_service ( ) ?;
184
+ let service = self . block_service ( ) . map_err ( |e| * e ) ?;
185
185
let ids = block:: try_ids_from_iter ( req. into_inner ( ) . ids ) ?;
186
186
let stream = service. get_blocks ( ids) . await ?;
187
187
Ok ( tonic:: Response :: new ( OutboundTryStream :: new ( stream) ) )
@@ -193,7 +193,7 @@ where
193
193
& self ,
194
194
req : tonic:: Request < proto:: types:: BlockIds > ,
195
195
) -> Result < tonic:: Response < Self :: GetHeadersStream > , tonic:: Status > {
196
- let service = self . block_service ( ) ?;
196
+ let service = self . block_service ( ) . map_err ( |e| * e ) ?;
197
197
let ids = block:: try_ids_from_iter ( req. into_inner ( ) . ids ) ?;
198
198
let stream = service. get_headers ( ids) . await ?;
199
199
Ok ( tonic:: Response :: new ( OutboundTryStream :: new ( stream) ) )
@@ -206,7 +206,7 @@ where
206
206
& self ,
207
207
req : tonic:: Request < proto:: types:: FragmentIds > ,
208
208
) -> Result < tonic:: Response < Self :: GetFragmentsStream > , tonic:: Status > {
209
- let service = self . fragment_service ( ) ?;
209
+ let service = self . fragment_service ( ) . map_err ( |e| * e ) ?;
210
210
let ids = fragment:: try_ids_from_iter ( req. into_inner ( ) . ids ) ?;
211
211
let stream = service. get_fragments ( ids) . await ?;
212
212
Ok ( tonic:: Response :: new ( OutboundTryStream :: new ( stream) ) )
@@ -219,7 +219,7 @@ where
219
219
& self ,
220
220
req : tonic:: Request < proto:: node:: PullHeadersRequest > ,
221
221
) -> Result < tonic:: Response < Self :: PullHeadersStream > , tonic:: Status > {
222
- let service = self . block_service ( ) ?;
222
+ let service = self . block_service ( ) . map_err ( |e| * e ) ?;
223
223
let ( from, to) = {
224
224
let req = req. into_inner ( ) ;
225
225
(
@@ -237,7 +237,7 @@ where
237
237
& self ,
238
238
req : tonic:: Request < proto:: node:: PullBlocksRequest > ,
239
239
) -> Result < tonic:: Response < Self :: PullBlocksStream > , tonic:: Status > {
240
- let service = self . block_service ( ) ?;
240
+ let service = self . block_service ( ) . map_err ( |e| * e ) ?;
241
241
let req = req. into_inner ( ) ;
242
242
let from = block:: try_ids_from_iter ( req. from ) ?;
243
243
let to = BlockId :: try_from ( & req. to [ ..] ) ?;
@@ -252,7 +252,7 @@ where
252
252
& self ,
253
253
req : tonic:: Request < proto:: node:: PullBlocksToTipRequest > ,
254
254
) -> Result < tonic:: Response < Self :: PullBlocksToTipStream > , tonic:: Status > {
255
- let service = self . block_service ( ) ?;
255
+ let service = self . block_service ( ) . map_err ( |e| * e ) ?;
256
256
let from = block:: try_ids_from_iter ( req. into_inner ( ) . from ) ?;
257
257
let stream = service. pull_blocks_to_tip ( from) . await ?;
258
258
Ok ( tonic:: Response :: new ( OutboundTryStream :: new ( stream) ) )
@@ -262,7 +262,7 @@ where
262
262
& self ,
263
263
req : tonic:: Request < tonic:: Streaming < proto:: types:: Header > > ,
264
264
) -> Result < tonic:: Response < proto:: node:: PushHeadersResponse > , tonic:: Status > {
265
- let service = self . block_service ( ) ?;
265
+ let service = self . block_service ( ) . map_err ( |e| * e ) ?;
266
266
let stream = InboundStream :: new ( req. into_inner ( ) ) ;
267
267
service. push_headers ( Box :: pin ( stream) ) . await ?;
268
268
Ok ( tonic:: Response :: new ( proto:: node:: PushHeadersResponse { } ) )
@@ -272,7 +272,7 @@ where
272
272
& self ,
273
273
req : tonic:: Request < tonic:: Streaming < proto:: types:: Block > > ,
274
274
) -> Result < tonic:: Response < proto:: node:: UploadBlocksResponse > , tonic:: Status > {
275
- let service = self . block_service ( ) ?;
275
+ let service = self . block_service ( ) . map_err ( |e| * e ) ?;
276
276
let stream = InboundStream :: new ( req. into_inner ( ) ) ;
277
277
service. upload_blocks ( Box :: pin ( stream) ) . await ?;
278
278
Ok ( tonic:: Response :: new ( proto:: node:: UploadBlocksResponse { } ) )
@@ -285,8 +285,8 @@ where
285
285
& self ,
286
286
req : tonic:: Request < tonic:: Streaming < proto:: types:: Header > > ,
287
287
) -> Result < tonic:: Response < Self :: BlockSubscriptionStream > , tonic:: Status > {
288
- let service = self . block_service ( ) ?;
289
- let peer = remote_addr_to_peer ( req. remote_addr ( ) ) ?;
288
+ let service = self . block_service ( ) . map_err ( |e| * e ) ?;
289
+ let peer = remote_addr_to_peer ( req. remote_addr ( ) ) . map_err ( |e| * e ) ?;
290
290
let inbound = InboundStream :: new ( req. into_inner ( ) ) ;
291
291
let outbound = service. block_subscription ( peer, Box :: pin ( inbound) ) . await ?;
292
292
let res = self . subscription_response ( outbound) ;
@@ -300,8 +300,8 @@ where
300
300
& self ,
301
301
req : tonic:: Request < tonic:: Streaming < proto:: types:: Fragment > > ,
302
302
) -> Result < tonic:: Response < Self :: FragmentSubscriptionStream > , tonic:: Status > {
303
- let service = self . fragment_service ( ) ?;
304
- let peer = remote_addr_to_peer ( req. remote_addr ( ) ) ?;
303
+ let service = self . fragment_service ( ) . map_err ( |e| * e ) ?;
304
+ let peer = remote_addr_to_peer ( req. remote_addr ( ) ) . map_err ( |e| * e ) ?;
305
305
let inbound = InboundStream :: new ( req. into_inner ( ) ) ;
306
306
let outbound = service
307
307
. fragment_subscription ( peer, Box :: pin ( inbound) )
@@ -317,8 +317,8 @@ where
317
317
& self ,
318
318
req : tonic:: Request < tonic:: Streaming < proto:: node:: Gossip > > ,
319
319
) -> Result < tonic:: Response < Self :: GossipSubscriptionStream > , tonic:: Status > {
320
- let service = self . gossip_service ( ) ?;
321
- let peer = remote_addr_to_peer ( req. remote_addr ( ) ) ?;
320
+ let service = self . gossip_service ( ) . map_err ( |e| * e ) ?;
321
+ let peer = remote_addr_to_peer ( req. remote_addr ( ) ) . map_err ( |e| * e ) ?;
322
322
let inbound = InboundStream :: new ( req. into_inner ( ) ) ;
323
323
let outbound = service. gossip_subscription ( peer, Box :: pin ( inbound) ) . await ?;
324
324
let res = self . subscription_response ( outbound) ;
0 commit comments