@@ -305,13 +305,20 @@ async fn handle_request(
305
305
if let Err ( x) = respond_with_status ( tx. clone ( ) , header. stream_id , status) . await {
306
306
error ! ( "respond get error {:?}" , x) ;
307
307
}
308
+
309
+ return ;
308
310
}
309
311
trace ! ( "Got Message request {:?}" , req) ;
310
312
313
+ let stream_id = header. stream_id ;
311
314
let path = format ! ( "/{}/{}" , req. service, req. method) ;
312
315
if let Some ( x) = methods. get ( & path) {
313
316
let method = x;
314
- let ctx = TtrpcContext { fd, mh : header, metadata : context:: from_pb ( & req. metadata ) } ;
317
+ let ctx = TtrpcContext {
318
+ fd,
319
+ mh : header,
320
+ metadata : context:: from_pb ( & req. metadata ) ,
321
+ } ;
315
322
316
323
match method. handler ( ctx, req) . await {
317
324
Ok ( ( stream_id, body) ) => {
@@ -321,6 +328,10 @@ async fn handle_request(
321
328
}
322
329
Err ( e) => {
323
330
error ! ( "method handle {} get error {:?}" , path, e) ;
331
+ let status = get_status ( Code :: UNKNOWN , e) ;
332
+ if let Err ( e) = respond_with_status ( tx, stream_id, status) . await {
333
+ error ! ( "respond get error {:?}" , e) ;
334
+ }
324
335
}
325
336
}
326
337
} else {
0 commit comments