summaryrefslogtreecommitdiff
path: root/source4/smbd/request.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2003-12-04 11:01:58 +0000
committerAndrew Tridgell <tridge@samba.org>2003-12-04 11:01:58 +0000
commit42c6a2548a658a198f128cdce36b9fcf869c33c8 (patch)
tree45addf4f9e93d6d12b4f4d6fa44b8f4a9e16119d /source4/smbd/request.c
parent2e5ae6f0650962db86fcdb1290f9a7c8b07b1410 (diff)
downloadsamba-42c6a2548a658a198f128cdce36b9fcf869c33c8.tar.gz
samba-42c6a2548a658a198f128cdce36b9fcf869c33c8.tar.bz2
samba-42c6a2548a658a198f128cdce36b9fcf869c33c8.zip
merged more updates from Jim Myers
(This used to be commit 03bf30659640d684073f92d64da6e911edb65a73)
Diffstat (limited to 'source4/smbd/request.c')
-rw-r--r--source4/smbd/request.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/source4/smbd/request.c b/source4/smbd/request.c
index 3eb849d11f..65bf71051f 100644
--- a/source4/smbd/request.c
+++ b/source4/smbd/request.c
@@ -362,7 +362,34 @@ size_t req_push_str(struct request_context *req, char *dest, const char *str, in
return len;
}
-
+/*
+ append raw bytes into the data portion of the request packet
+ return the number of bytes added
+*/
+size_t req_append_bytes(struct request_context *req,
+ const uint8 *bytes, size_t byte_len)
+{
+ req_grow_allocation(req, byte_len + req->out.data_size);
+ memcpy(req->out.data + req->out.data_size, bytes, byte_len);
+ req_grow_data(req, byte_len + req->out.data_size);
+ return byte_len;
+}
+/*
+ append variable block (type 5 buffer) into the data portion of the request packet
+ return the number of bytes added
+*/
+size_t req_append_var_block(struct request_context *req,
+ const uint8 *bytes, uint16 byte_len)
+{
+ req_grow_allocation(req, byte_len + 3 + req->out.data_size);
+ SCVAL(req->out.data + req->out.data_size, 0, 5);
+ SSVAL(req->out.data + req->out.data_size, 1, byte_len); /* add field length */
+ if (byte_len > 0) {
+ memcpy(req->out.data + req->out.data_size + 3, bytes, byte_len);
+ }
+ req_grow_data(req, byte_len + 3 + req->out.data_size);
+ return byte_len + 3;
+}
/*
pull a UCS2 string from a request packet, returning a talloced unix string