/* SMB2 lease bits */
#define SMB2_LEASE_NONE 0x00
-#define SMB2_LEASE_READ 0x01
-#define SMB2_LEASE_HANDLE 0x02
-#define SMB2_LEASE_WRITE 0x04
/* SMB2 lease flags */
#define SMB2_LEASE_FLAG_BREAK_IN_PROGRESS 0x00000002
#ifndef _LIBCLI_SMB_SMB2_LEASE_H_
#define _LIBCLI_SMB_SMB2_LEASE_H_
-/*
- SMB2 lease structure (per MS-SMB2 2.2.13)
-*/
-struct smb2_lease_key {
- uint64_t data[2];
-};
-
-struct smb2_lease {
- struct smb2_lease_key lease_key;
- uint32_t lease_state;
- uint32_t lease_flags;
- uint64_t lease_duration; /* should be 0 */
- /* only for v2 */
- struct smb2_lease_key parent_lease_key;
- uint16_t lease_epoch;
-};
+#include "librpc/gen_ndr/smb2_lease_struct.h"
/*
* Parse a smb2 lease create context. Return -1 on error, buffer.length on
smb2cli_echo.c
tstream_smbXcli_np.c
''',
- deps='LIBCRYPTO errors gensec krb5samba smb_transport',
+ deps='''
+ LIBCRYPTO NDR_SMB2_LEASE_STRUCT errors gensec krb5samba
+ smb_transport
+ ''',
public_deps='talloc samba-util',
private_library=True,
public_headers='''
--- /dev/null
+#include "idl_types.h"
+
+/*
+ miscellaneous IDL structures
+*/
+
+[
+ pointer_default(unique)
+]
+interface smb2_lease_struct
+{
+ /*
+ * SMB2 lease structure (per MS-SMB2 2.2.13)
+ */
+ typedef [public] struct {
+ hyper data[2];
+ } smb2_lease_key;
+
+ typedef [public,bitmap32bit] bitmap {
+ SMB2_LEASE_READ = 0x01,
+ SMB2_LEASE_WRITE = 0x02,
+ SMB2_LEASE_HANDLE = 0x04
+ } smb2_lease_state;
+
+ typedef [public] struct {
+ smb2_lease_key lease_key;
+ smb2_lease_state lease_state;
+ uint32 lease_flags;
+ uint32 lease_duration; /* should be 0 */
+ smb2_lease_key parent_lease_key;
+ uint16 lease_epoch;
+ } smb2_lease;
+};
\ No newline at end of file
oxidresolver.idl samr.idl server_id.idl srvsvc.idl winreg.idl dcerpc.idl
drsblobs.idl efs.idl frstrans.idl mgmt.idl netlogon.idl
notify.idl
+ smb2_lease_struct.idl
policyagent.idl scerpc.idl svcctl.idl wkssvc.idl eventlog6.idl backupkey.idl
fsrvp.idl witness.idl''',
options='--header --ndr-parser --samba3-ndr-server --server --client --python',
public_deps='ndr NDR_SECURITY'
)
+bld.SAMBA_SUBSYSTEM('NDR_SMB2_LEASE_STRUCT',
+ source='gen_ndr/ndr_smb2_lease_struct.c',
+ public_deps='ndr',
+ public_headers='gen_ndr/smb2_lease_struct.h'
+ )
+
bld.SAMBA_SUBSYSTEM('NDR_SCHANNEL',
source='ndr/ndr_schannel.c gen_ndr/ndr_schannel.c',
public_deps='ndr ndr_nbt'
#include "source4/libcli/raw/smb.h"
#include "../libcli/smb/smb_common.h"
#include "librpc/gen_ndr/misc.h" /* for struct GUID */
+#include "librpc/gen_ndr/smb2_lease_struct.h"
/* this structure is just a wrapper for a string, the only reason we
bother with this is that it allows us to check the length provided