From 39686072d5539003f8a2e2679311c5057ee82041 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sat, 14 Aug 2004 18:24:33 +0000 Subject: r1824: nicer handling of NBT session replies, and handling of bad packets with the async SMB code (This used to be commit cef94978f43a8326b6cf1888c15ca8c568ebe9f8) --- source4/libcli/raw/clitransport.c | 6 ++++++ source4/libcli/raw/rawrequest.c | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'source4/libcli/raw') diff --git a/source4/libcli/raw/clitransport.c b/source4/libcli/raw/clitransport.c index 784a6f1798..03a0540be0 100644 --- a/source4/libcli/raw/clitransport.c +++ b/source4/libcli/raw/clitransport.c @@ -353,6 +353,12 @@ static void smbcli_transport_finish_recv(struct smbcli_transport *transport) req->in.size = len; req->in.allocated = req->in.size; + /* handle NBT session replies */ + if (req->in.buffer[0] != 0) { + req->status = NT_STATUS_OK; + goto async; + } + /* handle non-SMB replies */ if (req->in.size < NBT_HDR_SIZE + MIN_SMB_SIZE) { req->state = SMBCLI_REQUEST_ERROR; diff --git a/source4/libcli/raw/rawrequest.c b/source4/libcli/raw/rawrequest.c index 70e924a99f..bc87af4297 100644 --- a/source4/libcli/raw/rawrequest.c +++ b/source4/libcli/raw/rawrequest.c @@ -252,7 +252,7 @@ static void smbcli_req_grow_allocation(struct smbcli_request *req, uint_t new_si To cope with this req->out.ptr is supplied. This will be updated to point at the same offset into the packet as before this call */ -static void smbcli_req_grow_data(struct smbcli_request *req, uint_t new_size) +void smbcli_req_grow_data(struct smbcli_request *req, uint_t new_size) { int delta; @@ -299,7 +299,7 @@ BOOL smbcli_request_receive(struct smbcli_request *req) event_loop_once(req->transport->event.ctx); } - return True; + return req->state == SMBCLI_REQUEST_DONE; } -- cgit