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