From c7f67142c0693e73355e1a5748f729fad04415e0 Mon Sep 17 00:00:00 2001 From: Kai Blin Date: Tue, 6 Mar 2012 08:49:16 +0100 Subject: s4 dns: Fix TCP handling in the DNS server Autobuild-User: Kai Blin Autobuild-Date: Tue Mar 6 21:17:19 CET 2012 on sn-devel-104 --- source4/lib/stream/packet.c | 12 ++++++++++++ source4/lib/stream/packet.h | 1 + 2 files changed, 13 insertions(+) (limited to 'source4/lib/stream') diff --git a/source4/lib/stream/packet.c b/source4/lib/stream/packet.c index 3a7f600560..b36d6507ef 100644 --- a/source4/lib/stream/packet.c +++ b/source4/lib/stream/packet.c @@ -612,3 +612,15 @@ _PUBLIC_ NTSTATUS packet_full_request_u32(void *private_data, DATA_BLOB blob, si } return NT_STATUS_OK; } + +_PUBLIC_ NTSTATUS packet_full_request_u16(void *private_data, DATA_BLOB blob, size_t *size) +{ + if (blob.length < 2) { + return STATUS_MORE_ENTRIES; + } + *size = 2 + RSVAL(blob.data, 0); + if (*size > blob.length) { + return STATUS_MORE_ENTRIES; + } + return NT_STATUS_OK; +} diff --git a/source4/lib/stream/packet.h b/source4/lib/stream/packet.h index a274bd397c..32c26686c3 100644 --- a/source4/lib/stream/packet.h +++ b/source4/lib/stream/packet.h @@ -61,5 +61,6 @@ void packet_queue_run(struct packet_context *pc); */ NTSTATUS packet_full_request_nbt(void *private_data, DATA_BLOB blob, size_t *size); NTSTATUS packet_full_request_u32(void *private_data, DATA_BLOB blob, size_t *size); +NTSTATUS packet_full_request_u16(void *private_data, DATA_BLOB blob, size_t *size); -- cgit