mirror of
https://github.com/samba-team/samba.git
synced 2025-01-26 10:04:02 +03:00
bacee255dd
I actually don't like this idea of sharing the request buffer structure between client and server, and I'll see if I can convince abartlet to revert it. It ties the two pieces of code far more intimately than is justified, and will certainly lead to ugliness as the client and server take different paths of development. I would far prefer we just pass 2 arguments (pointer and length) to the signing calls instead of 1 (the request). (This used to be commit 70838a921185c091d0e774dd5fb0546693999e8f)
58 lines
1.7 KiB
C
58 lines
1.7 KiB
C
/*
|
|
Unix SMB/CIFS implementation.
|
|
SMB parameters and setup
|
|
Copyright (C) Andrew Tridgell 2003
|
|
Copyright (C) James Myers 2003 <myersjj@samba.org>
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
*/
|
|
|
|
/*
|
|
Shared state structure between client and server, representing the basic packet.
|
|
*/
|
|
|
|
struct request_buffer {
|
|
/* the raw SMB buffer, including the 4 byte length header */
|
|
char *buffer;
|
|
|
|
/* the size of the raw buffer, including 4 byte header */
|
|
uint_t size;
|
|
|
|
/* how much has been allocated - on reply the buffer is over-allocated to
|
|
prevent too many realloc() calls
|
|
*/
|
|
uint_t allocated;
|
|
|
|
/* the start of the SMB header - this is always buffer+4 */
|
|
char *hdr;
|
|
|
|
/* the command words and command word count. vwv points
|
|
into the raw buffer */
|
|
char *vwv;
|
|
uint_t wct;
|
|
|
|
/* the data buffer and size. data points into the raw buffer */
|
|
char *data;
|
|
uint_t data_size;
|
|
|
|
/* ptr is used as a moving pointer into the data area
|
|
* of the packet. The reason its here and not a local
|
|
* variable in each function is that when a realloc of
|
|
* a send packet is done we need to move this
|
|
* pointer */
|
|
char *ptr;
|
|
};
|
|
|