#include "glob.h"
#include "nterr.h"
#include "smb_common.h"
#include "../common/smb2status.h"
#include "mgmt/user_session.h"
#include "connection.h"
static int check_smb2_hdr(struct smb2_hdr *hdr)
{ … }
static const __le16 smb2_req_struct_sizes[NUMBER_OF_SMB2_COMMANDS] = …;
static const bool has_smb2_data_area[NUMBER_OF_SMB2_COMMANDS] = …;
static int smb2_get_data_area_len(unsigned int *off, unsigned int *len,
struct smb2_hdr *hdr)
{ … }
static int smb2_calc_size(void *buf, unsigned int *len)
{ … }
static inline int smb2_query_info_req_len(struct smb2_query_info_req *h)
{ … }
static inline int smb2_set_info_req_len(struct smb2_set_info_req *h)
{ … }
static inline int smb2_read_req_len(struct smb2_read_req *h)
{ … }
static inline int smb2_write_req_len(struct smb2_write_req *h)
{ … }
static inline int smb2_query_dir_req_len(struct smb2_query_directory_req *h)
{ … }
static inline int smb2_ioctl_req_len(struct smb2_ioctl_req *h)
{ … }
static inline int smb2_ioctl_resp_len(struct smb2_ioctl_req *h)
{ … }
static int smb2_validate_credit_charge(struct ksmbd_conn *conn,
struct smb2_hdr *hdr)
{ … }
int ksmbd_smb2_check_message(struct ksmbd_work *work)
{ … }
int smb2_negotiate_request(struct ksmbd_work *work)
{ … }