From 7021138886d72b3f4ffa9cf7fa2391b25597d767 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Thu, 31 Oct 2002 01:56:05 +0000
Subject: [PATCH] Created smb_incmsg(), opposite function of smb_freemsg().

---
 src/smblib/smblib.c | 22 ++++++++++++++++++++++
 src/smblib/smblib.h |  1 +
 2 files changed, 23 insertions(+)

diff --git a/src/smblib/smblib.c b/src/smblib/smblib.c
index 2698c62f8a..f98797b6ed 100644
--- a/src/smblib/smblib.c
+++ b/src/smblib/smblib.c
@@ -1497,6 +1497,28 @@ int SMBCALL smb_incdat(smb_t* smb, ulong offset, ulong length, ushort headers)
 	return(0);
 }
 
+/****************************************************************************/
+/* Increments data allocation records (message references) by number of		*/
+/* headers specified (usually 1)											*/
+/* The opposite function of smb_freemsg()									*/
+/****************************************************************************/
+int SMBCALL smb_incmsg(smb_t* smb, smbmsg_t* msg)
+{
+	int		i;
+	ushort	x;
+
+	if(smb->status.attr&SMB_HYPERALLOC)  /* Nothing to do */
+		return(0);
+
+	for(x=0;x<msg->hdr.total_dfields;x++) {
+		if((i=smb_incdat(smb,msg->hdr.offset+msg->dfield[x].offset
+			,msg->dfield[x].length,1))!=0)
+			return(i); 
+	}
+
+	return(0);
+}
+
 /****************************************************************************/
 /* De-allocates blocks for header record									*/
 /* Returns non-zero on error												*/
diff --git a/src/smblib/smblib.h b/src/smblib/smblib.h
index 58419677ba..9274c0e3fd 100644
--- a/src/smblib/smblib.h
+++ b/src/smblib/smblib.h
@@ -127,6 +127,7 @@ SMBEXPORT long	SMBCALL smb_hallochdr(smb_t* smb);
 SMBEXPORT long	SMBCALL smb_allocdat(smb_t* smb, ulong length, ushort headers);
 SMBEXPORT long	SMBCALL smb_fallocdat(smb_t* smb, ulong length, ushort headers);
 SMBEXPORT long	SMBCALL smb_hallocdat(smb_t* smb);
+SMBEXPORT int	SMBCALL smb_incmsg(smb_t* smb, smbmsg_t* msg);
 SMBEXPORT int 	SMBCALL smb_incdat(smb_t* smb, ulong offset, ulong length, ushort headers);
 SMBEXPORT int 	SMBCALL smb_freemsg(smb_t* smb, smbmsg_t* msg);
 SMBEXPORT int 	SMBCALL smb_freemsgdat(smb_t* smb, ulong offset, ulong length, ushort headers);
-- 
GitLab