summaryrefslogtreecommitdiff
path: root/source4/libcli/dgram/mailslot.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2005-04-13 05:50:02 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:11:31 -0500
commit63ddff3d7b59fef8c8f2340803b85cde33a49402 (patch)
treebf97774f6d6e74dc2091b40b8b0088a073bbda6f /source4/libcli/dgram/mailslot.c
parent481e80afc46d92be8e5c5c4325a9ef9ddb86c907 (diff)
downloadsamba-63ddff3d7b59fef8c8f2340803b85cde33a49402.tar.gz
samba-63ddff3d7b59fef8c8f2340803b85cde33a49402.tar.bz2
samba-63ddff3d7b59fef8c8f2340803b85cde33a49402.zip
r6323: added server side support for dgram NTLOGON requests. NT4 workstations can now login
to a Samba4 domain. (This used to be commit df146d64ebce6b462c08a1f30919390fcf8196cb)
Diffstat (limited to 'source4/libcli/dgram/mailslot.c')
-rw-r--r--source4/libcli/dgram/mailslot.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/source4/libcli/dgram/mailslot.c b/source4/libcli/dgram/mailslot.c
index ca9a66a729..d7c0870ded 100644
--- a/source4/libcli/dgram/mailslot.c
+++ b/source4/libcli/dgram/mailslot.c
@@ -167,7 +167,7 @@ NTSTATUS dgram_mailslot_send(struct nbt_dgram_socket *dgmsock,
msg = &packet.data.msg;
/* this length calculation is very crude - it should be based on gensize
calls */
- msg->length = 138 + strlen(mailslot_name) + request->length;
+ msg->length = 138 + strlen(mailslot_name) + request->length;
msg->offset = 0;
msg->source_name = *src_name;
@@ -194,3 +194,21 @@ NTSTATUS dgram_mailslot_send(struct nbt_dgram_socket *dgmsock,
return status;
}
+
+/*
+ return the mailslot data portion from a mailslot packet
+*/
+DATA_BLOB dgram_mailslot_data(struct nbt_dgram_packet *dgram)
+{
+ struct smb_trans_body *trans = &dgram->data.msg.body.smb.body.trans;
+ DATA_BLOB ret = trans->data;
+ int pad = trans->data_offset - (70 + strlen(trans->mailslot_name));
+
+ if (pad < 0 || pad > ret.length) {
+ DEBUG(2,("Badly formatted data in mailslot - pad = %d\n", pad));
+ return data_blob(NULL, 0);
+ }
+ ret.data += pad;
+ ret.length -= pad;
+ return ret;
+}