Skip to content

Commit c9bdf16

Browse files
authored
Merge pull request #87 from Tim-Zhang/fix-handle-request
async-server: fix problems in handle request
2 parents f417031 + 98b8bf3 commit c9bdf16

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

src/asynchronous/server.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,13 +305,20 @@ async fn handle_request(
305305
if let Err(x) = respond_with_status(tx.clone(), header.stream_id, status).await {
306306
error!("respond get error {:?}", x);
307307
}
308+
309+
return;
308310
}
309311
trace!("Got Message request {:?}", req);
310312

313+
let stream_id = header.stream_id;
311314
let path = format!("/{}/{}", req.service, req.method);
312315
if let Some(x) = methods.get(&path) {
313316
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+
};
315322

316323
match method.handler(ctx, req).await {
317324
Ok((stream_id, body)) => {
@@ -321,6 +328,10 @@ async fn handle_request(
321328
}
322329
Err(e) => {
323330
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+
}
324335
}
325336
}
326337
} else {

0 commit comments

Comments
 (0)