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