2004-11-02 07:18:24 +00:00
# ifndef _REQUEST_H
# define _REQUEST_H
2004-07-16 03:10:48 +00:00
/*
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 0213 9 , USA .
*/
2004-11-02 07:18:24 +00:00
# include "signing.h"
2004-07-16 03:10:48 +00:00
/*
Shared state structure between client and server , representing the basic packet .
*/
struct request_buffer {
/* the raw SMB buffer, including the 4 byte length header */
2004-12-04 13:56:25 +00:00
uint8_t * buffer ;
2004-07-16 03:10:48 +00:00
/* 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 ;
2004-07-16 03:57:04 +00:00
/* the start of the SMB header - this is always buffer+4 */
2004-12-04 13:56:25 +00:00
uint8_t * hdr ;
2004-07-16 03:10:48 +00:00
/* the command words and command word count. vwv points
into the raw buffer */
2004-12-04 13:56:25 +00:00
uint8_t * vwv ;
2004-07-16 03:10:48 +00:00
uint_t wct ;
/* the data buffer and size. data points into the raw buffer */
2004-12-04 13:56:25 +00:00
uint8_t * data ;
2004-07-16 03:10:48 +00:00
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 */
2004-12-04 13:56:25 +00:00
uint8_t * ptr ;
2004-07-16 03:57:04 +00:00
} ;
2004-07-16 03:10:48 +00:00
2004-11-02 07:18:24 +00:00
# endif