Skip to content

Commit 2fbd80c

Browse files
committed
feat(server): add Transport to on_request
1 parent e682844 commit 2fbd80c

File tree

9 files changed

+32
-295
lines changed

9 files changed

+32
-295
lines changed

examples/hello.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ static PHRASE: &'static [u8] = b"Hello World!";
1414
struct Hello;
1515

1616
impl Handler<HttpStream> for Hello {
17-
fn on_request(&mut self, _: Request) -> Next {
17+
fn on_request(&mut self, _: Request<HttpStream>) -> Next {
1818
Next::write()
1919
}
2020
fn on_request_readable(&mut self, _: &mut Decoder<HttpStream>) -> Next {

examples/server.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ impl Echo {
4646
}
4747

4848
impl Handler<HttpStream> for Echo {
49-
fn on_request(&mut self, req: Request) -> Next {
49+
fn on_request(&mut self, req: Request<HttpStream>) -> Next {
5050
match *req.uri() {
5151
RequestUri::AbsolutePath(ref path) => match (req.method(), &path[..]) {
5252
(&Get, "/") | (&Get, "/echo") => {

examples/sync.rs

Lines changed: 0 additions & 278 deletions
This file was deleted.

src/client/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ impl<H: Handler<T>, T: Transport> http::MessageHandler<T> for Message<H, T> {
310310
self.handler.on_request_writable(transport)
311311
}
312312

313-
fn on_incoming(&mut self, head: http::ResponseHead) -> Next {
313+
fn on_incoming(&mut self, head: http::ResponseHead, _: &T) -> Next {
314314
trace!("on_incoming {:?}", head);
315315
let resp = response::new(head);
316316
self.handler.on_response(resp)

src/http/conn.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ impl<K: Key, T: Transport, H: MessageHandler<T>> ConnInner<K, T, H> {
164164
trace!("decoder = {:?}", decoder);
165165
let keep_alive = self.keep_alive_enabled && head.should_keep_alive();
166166
let mut handler = scope.create(Seed(&self.key, &self.ctrl.0));
167-
let next = handler.on_incoming(head);
167+
let next = handler.on_incoming(head, &self.transport);
168168
trace!("handler.on_incoming() -> {:?}", next);
169169

170170
match next.interest {
@@ -231,7 +231,7 @@ impl<K: Key, T: Transport, H: MessageHandler<T>> ConnInner<K, T, H> {
231231
if http1.keep_alive {
232232
http1.keep_alive = head.should_keep_alive();
233233
}
234-
let next = http1.handler.on_incoming(head);
234+
let next = http1.handler.on_incoming(head, &self.transport);
235235
http1.reading = Reading::Wait(decoder);
236236
trace!("handler.on_incoming() -> {:?}", next);
237237
Some(next)
@@ -874,7 +874,7 @@ impl Chunk {
874874

875875
pub trait MessageHandler<T: Transport> {
876876
type Message: Http1Message;
877-
fn on_incoming(&mut self, head: http::MessageHead<<Self::Message as Http1Message>::Incoming>) -> Next;
877+
fn on_incoming(&mut self, head: http::MessageHead<<Self::Message as Http1Message>::Incoming>, transport: &T) -> Next;
878878
fn on_outgoing(&mut self, head: &mut http::MessageHead<<Self::Message as Http1Message>::Outgoing>) -> Next;
879879
fn on_decode(&mut self, &mut http::Decoder<T>) -> Next;
880880
fn on_encode(&mut self, &mut http::Encoder<T>) -> Next;

src/server/message.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ impl<H: Handler<T>, T: Transport> Message<H, T> {
2828
impl<H: Handler<T>, T: Transport> http::MessageHandler<T> for Message<H, T> {
2929
type Message = http::ServerMessage;
3030

31-
fn on_incoming(&mut self, head: http::RequestHead) -> Next {
31+
fn on_incoming(&mut self, head: http::RequestHead, transport: &T) -> Next {
3232
trace!("on_incoming {:?}", head);
33-
let req = request::new(head);
33+
let req = request::new(head, transport);
3434
self.handler.on_request(req)
3535
}
3636

src/server/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ impl Listening {
324324
/// Each event handler returns it's desired `Next` action.
325325
pub trait Handler<T: Transport> {
326326
/// This event occurs first, triggering when a `Request` has been parsed.
327-
fn on_request(&mut self, request: Request) -> Next;
327+
fn on_request(&mut self, request: Request<T>) -> Next;
328328
/// This event occurs each time the `Request` is ready to be read from.
329329
fn on_request_readable(&mut self, request: &mut http::Decoder<T>) -> Next;
330330
/// This event occurs after the first time this handled signals `Next::write()`.

0 commit comments

Comments
 (0)