diff options
author | Stefan Metzmacher <metze@samba.org> | 2011-08-12 14:50:09 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2011-08-12 18:06:04 +0200 |
commit | c485df9530fda65fb1a2142f53c60638d2ca1923 (patch) | |
tree | ec6cdf534838e86dbe3ab2a0904c9dc73f01c598 /source3/libsmb | |
parent | 58003b5a77910ec54fd84f71a26e582af0f83e98 (diff) | |
download | samba-c485df9530fda65fb1a2142f53c60638d2ca1923.tar.gz |
s3:libsmb: abstract the incoming dispatch function via a function pointer
This will allow handling of SMB2 in future.
metze
Diffstat (limited to 'source3/libsmb')
-rw-r--r-- | source3/libsmb/async_smb.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/source3/libsmb/async_smb.c b/source3/libsmb/async_smb.c index b3de5af50b0..b07eee9e10e 100644 --- a/source3/libsmb/async_smb.c +++ b/source3/libsmb/async_smb.c @@ -228,6 +228,9 @@ bool cli_smb_req_set_pending(struct tevent_req *req) } static void cli_smb_received(struct tevent_req *subreq); +static NTSTATUS cli_state_dispatch_smb1(struct cli_state *cli, + TALLOC_CTX *frame, + uint8_t *inbuf); static bool cli_state_receive_next(struct cli_state *cli) { @@ -246,6 +249,8 @@ static bool cli_state_receive_next(struct cli_state *cli) req = cli->conn.pending[0]; state = tevent_req_data(req, struct cli_smb_state); + cli->conn.dispatch_incoming = cli_state_dispatch_smb1; + /* * We're the first ones, add the read_smb request that waits for the * answer from the server @@ -579,10 +584,6 @@ static void cli_smb_sent(struct tevent_req *subreq) } } -static NTSTATUS cli_state_dispatch_smb1(struct cli_state *cli, - TALLOC_CTX *frame, - uint8_t *inbuf); - static void cli_smb_received(struct tevent_req *subreq) { struct cli_state *cli = tevent_req_callback_data( @@ -612,7 +613,7 @@ static void cli_smb_received(struct tevent_req *subreq) return; } - status = cli_state_dispatch_smb1(cli, frame, inbuf); + status = cli->conn.dispatch_incoming(cli, frame, inbuf); TALLOC_FREE(frame); if (NT_STATUS_IS_OK(status)) { /* |