OpenVAS Libraries  9.0.2
Data Structures | Macros | Typedefs | Enumerations
smb.h File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <ctype.h>
#include <errno.h>
#include "charset.h"

Go to the source code of this file.

Data Structures

struct  _smb_iconv_t
 

Macros

#define SMB_PORT1   445
 
#define SMB_PORT2   139
 
#define SMB_PORTS   "445 139"
 
#define smb_com   8
 
#define smb_rcls   9
 
#define smb_reh   10
 
#define smb_err   11
 
#define smb_flg   13
 
#define smb_flg2   14
 
#define smb_pidhigh   16
 
#define smb_ss_field   18
 
#define smb_tid   28
 
#define smb_pid   30
 
#define smb_uid   32
 
#define smb_mid   34
 
#define smb_wct   36
 
#define smb_vwv   37
 
#define smb_vwv0   37
 
#define smb_vwv1   39
 
#define smb_vwv2   41
 
#define smb_vwv3   43
 
#define smb_vwv4   45
 
#define smb_vwv5   47
 
#define smb_vwv6   49
 
#define smb_vwv7   51
 
#define smb_vwv8   53
 
#define smb_vwv9   55
 
#define smb_vwv10   57
 
#define smb_vwv11   59
 
#define smb_vwv12   61
 
#define smb_vwv13   63
 
#define smb_vwv14   65
 
#define smb_vwv15   67
 
#define smb_vwv16   69
 
#define smb_vwv17   71
 
#define STR_TERMINATE   1
 
#define STR_UPPER   2
 
#define STR_ASCII   4
 
#define STR_UNICODE   8
 
#define STR_NOALIGN   16
 
#define STR_TERMINATE_ASCII   128
 
#define NEGOTIATE_SECURITY_USER_LEVEL   0x01
 
#define NEGOTIATE_SECURITY_CHALLENGE_RESPONSE   0x02
 
#define NEGOTIATE_SECURITY_SIGNATURES_ENABLED   0x04
 
#define NEGOTIATE_SECURITY_SIGNATURES_REQUIRED   0x08
 
#define FLAGS2_LONG_PATH_COMPONENTS   0x0001
 
#define FLAGS2_EXTENDED_ATTRIBUTES   0x0002
 
#define FLAGS2_SMB_SECURITY_SIGNATURES   0x0004
 
#define FLAGS2_UNKNOWN_BIT4   0x0010
 
#define FLAGS2_IS_LONG_NAME   0x0040
 
#define FLAGS2_EXTENDED_SECURITY   0x0800
 
#define FLAGS2_DFS_PATHNAMES   0x1000
 
#define FLAGS2_READ_PERMIT_EXECUTE   0x2000
 
#define FLAGS2_32_BIT_ERROR_CODES   0x4000
 
#define FLAGS2_UNICODE_STRINGS   0x8000
 
#define FLAGS2_WIN2K_SIGNATURE   0xC852 /* Hack alert ! For now... JRA. */
 
#define TCONX_FLAG_EXTENDED_RESPONSE   0x8
 
#define CAP_RAW_MODE   0x0001
 
#define CAP_MPX_MODE   0x0002
 
#define CAP_UNICODE   0x0004
 
#define CAP_LARGE_FILES   0x0008
 
#define CAP_NT_SMBS   0x0010
 
#define CAP_RPC_REMOTE_APIS   0x0020
 
#define CAP_STATUS32   0x0040
 
#define CAP_LEVEL_II_OPLOCKS   0x0080
 
#define CAP_LOCK_AND_READ   0x0100
 
#define CAP_NT_FIND   0x0200
 
#define CAP_DFS   0x1000
 
#define CAP_W2K_SMBS   0x2000
 
#define CAP_LARGE_READX   0x4000
 
#define CAP_LARGE_WRITEX   0x8000
 
#define CAP_UNIX   0x800000 /* Capabilities for UNIX extensions. Created by HP. */
 
#define CAP_EXTENDED_SECURITY   0x80000000
 
#define UCS2_SHIFT   0
 
#define UCS2_CHAR(c)   ((c) << UCS2_SHIFT)
 
#define UCS2_TO_CHAR(c)   (((c) >> UCS2_SHIFT) & 0xff)
 
#define COPY_UCS2_CHAR(dest, src)
 
#define SAFE_FREE(x)   do { if ((x) != NULL) {free(x); x=NULL;} } while(0)
 
#define SMB_MALLOC_P(type)   (type *)malloc(sizeof(type))
 
#define SMB_REALLOC(p, s)   Realloc((p),(s),True) /* Always frees p on error or s == 0 */
 
#define SMB_STRDUP(s)   strdup(s)
 
#define SMB_STRNDUP(s, n)   strndup(s,n)
 
#define smb_len(buf)   (PVAL(buf,3)|(PVAL(buf,2)<<8)|((PVAL(buf,1)&1)<<16))
 

Typedefs

typedef struct _smb_iconv_tsmb_iconv_t
 
typedef uint64_t NTTIME
 

Enumerations

enum  protocol_types {
  PROTOCOL_NONE, PROTOCOL_CORE, PROTOCOL_COREPLUS, PROTOCOL_LANMAN1,
  PROTOCOL_LANMAN2, PROTOCOL_NT1
}
 

Macro Definition Documentation

§ CAP_DFS

#define CAP_DFS   0x1000

§ CAP_EXTENDED_SECURITY

#define CAP_EXTENDED_SECURITY   0x80000000

§ CAP_LARGE_FILES

#define CAP_LARGE_FILES   0x0008

§ CAP_LARGE_READX

#define CAP_LARGE_READX   0x4000

§ CAP_LARGE_WRITEX

#define CAP_LARGE_WRITEX   0x8000

§ CAP_LEVEL_II_OPLOCKS

#define CAP_LEVEL_II_OPLOCKS   0x0080

§ CAP_LOCK_AND_READ

#define CAP_LOCK_AND_READ   0x0100

§ CAP_MPX_MODE

#define CAP_MPX_MODE   0x0002

§ CAP_NT_FIND

#define CAP_NT_FIND   0x0200

§ CAP_NT_SMBS

#define CAP_NT_SMBS   0x0010

§ CAP_RAW_MODE

#define CAP_RAW_MODE   0x0001

§ CAP_RPC_REMOTE_APIS

#define CAP_RPC_REMOTE_APIS   0x0020

§ CAP_STATUS32

#define CAP_STATUS32   0x0040

§ CAP_UNICODE

#define CAP_UNICODE   0x0004

§ CAP_UNIX

#define CAP_UNIX   0x800000 /* Capabilities for UNIX extensions. Created by HP. */

§ CAP_W2K_SMBS

#define CAP_W2K_SMBS   0x2000

§ COPY_UCS2_CHAR

#define COPY_UCS2_CHAR (   dest,
  src 
)
Value:
(((unsigned char *)(dest))[0] = ((unsigned char *)(src))[0],\
((unsigned char *)(dest))[1] = ((unsigned char *)(src))[1], (dest))

§ FLAGS2_32_BIT_ERROR_CODES

#define FLAGS2_32_BIT_ERROR_CODES   0x4000

§ FLAGS2_DFS_PATHNAMES

#define FLAGS2_DFS_PATHNAMES   0x1000

§ FLAGS2_EXTENDED_ATTRIBUTES

#define FLAGS2_EXTENDED_ATTRIBUTES   0x0002

§ FLAGS2_EXTENDED_SECURITY

#define FLAGS2_EXTENDED_SECURITY   0x0800

§ FLAGS2_IS_LONG_NAME

#define FLAGS2_IS_LONG_NAME   0x0040

§ FLAGS2_LONG_PATH_COMPONENTS

#define FLAGS2_LONG_PATH_COMPONENTS   0x0001

§ FLAGS2_READ_PERMIT_EXECUTE

#define FLAGS2_READ_PERMIT_EXECUTE   0x2000

§ FLAGS2_SMB_SECURITY_SIGNATURES

#define FLAGS2_SMB_SECURITY_SIGNATURES   0x0004

§ FLAGS2_UNICODE_STRINGS

#define FLAGS2_UNICODE_STRINGS   0x8000

§ FLAGS2_UNKNOWN_BIT4

#define FLAGS2_UNKNOWN_BIT4   0x0010

§ FLAGS2_WIN2K_SIGNATURE

#define FLAGS2_WIN2K_SIGNATURE   0xC852 /* Hack alert ! For now... JRA. */

§ NEGOTIATE_SECURITY_CHALLENGE_RESPONSE

#define NEGOTIATE_SECURITY_CHALLENGE_RESPONSE   0x02

§ NEGOTIATE_SECURITY_SIGNATURES_ENABLED

#define NEGOTIATE_SECURITY_SIGNATURES_ENABLED   0x04

§ NEGOTIATE_SECURITY_SIGNATURES_REQUIRED

#define NEGOTIATE_SECURITY_SIGNATURES_REQUIRED   0x08

§ NEGOTIATE_SECURITY_USER_LEVEL

#define NEGOTIATE_SECURITY_USER_LEVEL   0x01

§ SAFE_FREE

#define SAFE_FREE (   x)    do { if ((x) != NULL) {free(x); x=NULL;} } while(0)

§ smb_com

#define smb_com   8

§ smb_err

#define smb_err   11

§ smb_flg

#define smb_flg   13

§ smb_flg2

#define smb_flg2   14

§ smb_len

#define smb_len (   buf)    (PVAL(buf,3)|(PVAL(buf,2)<<8)|((PVAL(buf,1)&1)<<16))

§ SMB_MALLOC_P

#define SMB_MALLOC_P (   type)    (type *)malloc(sizeof(type))

§ smb_mid

#define smb_mid   34

§ smb_pid

#define smb_pid   30

§ smb_pidhigh

#define smb_pidhigh   16

§ SMB_PORT1

#define SMB_PORT1   445

§ SMB_PORT2

#define SMB_PORT2   139

§ SMB_PORTS

#define SMB_PORTS   "445 139"

§ smb_rcls

#define smb_rcls   9

§ SMB_REALLOC

#define SMB_REALLOC (   p,
 
)    Realloc((p),(s),True) /* Always frees p on error or s == 0 */

§ smb_reh

#define smb_reh   10

§ smb_ss_field

#define smb_ss_field   18

§ SMB_STRDUP

#define SMB_STRDUP (   s)    strdup(s)

§ SMB_STRNDUP

#define SMB_STRNDUP (   s,
 
)    strndup(s,n)

§ smb_tid

#define smb_tid   28

§ smb_uid

#define smb_uid   32

§ smb_vwv

#define smb_vwv   37

§ smb_vwv0

#define smb_vwv0   37

§ smb_vwv1

#define smb_vwv1   39

§ smb_vwv10

#define smb_vwv10   57

§ smb_vwv11

#define smb_vwv11   59

§ smb_vwv12

#define smb_vwv12   61

§ smb_vwv13

#define smb_vwv13   63

§ smb_vwv14

#define smb_vwv14   65

§ smb_vwv15

#define smb_vwv15   67

§ smb_vwv16

#define smb_vwv16   69

§ smb_vwv17

#define smb_vwv17   71

§ smb_vwv2

#define smb_vwv2   41

§ smb_vwv3

#define smb_vwv3   43

§ smb_vwv4

#define smb_vwv4   45

§ smb_vwv5

#define smb_vwv5   47

§ smb_vwv6

#define smb_vwv6   49

§ smb_vwv7

#define smb_vwv7   51

§ smb_vwv8

#define smb_vwv8   53

§ smb_vwv9

#define smb_vwv9   55

§ smb_wct

#define smb_wct   36

§ STR_ASCII

#define STR_ASCII   4

§ STR_NOALIGN

#define STR_NOALIGN   16

§ STR_TERMINATE

#define STR_TERMINATE   1

§ STR_TERMINATE_ASCII

#define STR_TERMINATE_ASCII   128

§ STR_UNICODE

#define STR_UNICODE   8

§ STR_UPPER

#define STR_UPPER   2

§ TCONX_FLAG_EXTENDED_RESPONSE

#define TCONX_FLAG_EXTENDED_RESPONSE   0x8

§ UCS2_CHAR

#define UCS2_CHAR (   c)    ((c) << UCS2_SHIFT)

§ UCS2_SHIFT

#define UCS2_SHIFT   0

§ UCS2_TO_CHAR

#define UCS2_TO_CHAR (   c)    (((c) >> UCS2_SHIFT) & 0xff)

Typedef Documentation

§ NTTIME

typedef uint64_t NTTIME

§ smb_iconv_t

typedef struct _smb_iconv_t * smb_iconv_t

Enumeration Type Documentation

§ protocol_types

Enumerator
PROTOCOL_NONE 
PROTOCOL_CORE 
PROTOCOL_COREPLUS 
PROTOCOL_LANMAN1 
PROTOCOL_LANMAN2 
PROTOCOL_NT1