svn commit: samba r11618 - in branches/SAMBA_4_0/source/lib/stream: .

tridge at samba.org tridge at samba.org
Thu Nov 10 00:25:58 GMT 2005


Author: tridge
Date: 2005-11-10 00:25:57 +0000 (Thu, 10 Nov 2005)
New Revision: 11618

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=11618

Log:

added a generic '32 bit length prefix' full packet helper to the packet code



Modified:
   branches/SAMBA_4_0/source/lib/stream/packet.c
   branches/SAMBA_4_0/source/lib/stream/packet.h


Changeset:
Modified: branches/SAMBA_4_0/source/lib/stream/packet.c
===================================================================
--- branches/SAMBA_4_0/source/lib/stream/packet.c	2005-11-09 19:37:13 UTC (rev 11617)
+++ branches/SAMBA_4_0/source/lib/stream/packet.c	2005-11-10 00:25:57 UTC (rev 11618)
@@ -388,16 +388,31 @@
 /*
   a full request checker for NBT formatted packets (first 3 bytes are length)
 */
-NTSTATUS packet_full_request_nbt(void *private, DATA_BLOB blob, size_t *packet_size)
+NTSTATUS packet_full_request_nbt(void *private, DATA_BLOB blob, size_t *size)
 {
 	if (blob.length < 4) {
 		return STATUS_MORE_ENTRIES;
 	}
-	*packet_size = 4 + smb_len(blob.data);
-	if (*packet_size > blob.length) {
+	*size = 4 + smb_len(blob.data);
+	if (*size > blob.length) {
 		return STATUS_MORE_ENTRIES;
 	}
 	return NT_STATUS_OK;
 }
 
 
+/*
+  work out if a packet is complete for protocols that use a 32 bit network byte
+  order length
+*/
+NTSTATUS packet_full_request_u32(void *private, DATA_BLOB blob, size_t *size)
+{
+	if (blob.length < 4) {
+		return STATUS_MORE_ENTRIES;
+	}
+	*size = 4 + RIVAL(blob.data, 0);
+	if (*size > blob.length) {
+		return STATUS_MORE_ENTRIES;
+	}
+	return NT_STATUS_OK;
+}

Modified: branches/SAMBA_4_0/source/lib/stream/packet.h
===================================================================
--- branches/SAMBA_4_0/source/lib/stream/packet.h	2005-11-09 19:37:13 UTC (rev 11617)
+++ branches/SAMBA_4_0/source/lib/stream/packet.h	2005-11-10 00:25:57 UTC (rev 11618)
@@ -46,5 +46,7 @@
 /*
   pre-canned handlers
 */
-NTSTATUS packet_full_request_nbt(void *private, DATA_BLOB blob, size_t *packet_size);
+NTSTATUS packet_full_request_nbt(void *private, DATA_BLOB blob, size_t *size);
+NTSTATUS packet_full_request_u32(void *private, DATA_BLOB blob, size_t *size);
 
+



More information about the samba-cvs mailing list