Merge tag 'upstream/4.0.5+dfsg1' into samba_4.0_ivo
[abartlet/samba-debian.git] / source4 / libcli / raw / interfaces.h
index f3ce4e9c5f2b8fa8b81f21edeb541b64f98b6ca8..547f8a9a63b17da26fe2d69ef2c362402562622a 100644 (file)
@@ -22,7 +22,7 @@
 #ifndef __LIBCLI_RAW_INTERFACES_H__
 #define __LIBCLI_RAW_INTERFACES_H__
 
-#include "libcli/raw/smb.h"
+#include "source4/libcli/raw/smb.h"
 #include "../libcli/smb/smb_common.h"
 #include "librpc/gen_ndr/misc.h" /* for struct GUID */
 
@@ -283,6 +283,8 @@ union smb_tcon {
                } in;
                struct {
                        uint16_t options;
+                       uint32_t max_access;
+                       uint32_t guest_max_access;
                        char *dev_type;
                        char *fs_type;
                        uint16_t tid;
@@ -924,8 +926,8 @@ enum smb_setfileinfo_level {
        RAW_SFILEINFO_END_OF_FILE_INFO        = SMB_SFILEINFO_END_OF_FILE_INFO,
        RAW_SFILEINFO_UNIX_BASIC              = SMB_SFILEINFO_UNIX_BASIC,
        RAW_SFILEINFO_UNIX_INFO2              = SMB_SFILEINFO_UNIX_INFO2,
-       RAW_SFILEINFO_UNIX_LINK               = SMB_SFILEINFO_UNIX_LINK,
-       RAW_SFILEINFO_UNIX_HLINK              = SMB_SFILEINFO_UNIX_HLINK,
+       RAW_SFILEINFO_UNIX_LINK               = SMB_SET_FILE_UNIX_LINK,
+       RAW_SFILEINFO_UNIX_HLINK              = SMB_SET_FILE_UNIX_HLINK,
        RAW_SFILEINFO_BASIC_INFORMATION       = SMB_SFILEINFO_BASIC_INFORMATION,
        RAW_SFILEINFO_RENAME_INFORMATION      = SMB_SFILEINFO_RENAME_INFORMATION,
        RAW_SFILEINFO_LINK_INFORMATION        = SMB_SFILEINFO_LINK_INFORMATION,
@@ -1140,7 +1142,7 @@ union smb_setfileinfo {
                } in;
        } unix_link, unix_hlink;
 
-       /* RAW_FILEINFO_SET_SEC_DESC */
+       /* RAW_SFILEINFO_SEC_DESC */
        struct {
                enum smb_setfileinfo_level level;
                struct {
@@ -1344,6 +1346,26 @@ union smb_fsinfo {
 };
 
 
+enum smb_setfsinfo_level {
+               RAW_SETFS_UNIX_INFO                      = SMB_SET_CIFS_UNIX_INFO};
+
+union smb_setfsinfo {
+       /* generic interface */
+       struct {
+               enum smb_fsinfo_level level;
+       } generic;
+
+       /* TRANS2 RAW_QFS_UNIX_INFO interface */
+       struct {
+               enum smb_fsinfo_level level;
+
+               struct {
+                       uint16_t major_version;
+                       uint16_t minor_version;
+                       uint64_t capability;
+               } in;
+       } unix_info;
+};
 
 enum smb_open_level {
        RAW_OPEN_OPEN,
@@ -1709,6 +1731,14 @@ union smb_open {
                        struct security_descriptor *sec_desc;
                        bool   durable_open;
                        struct smb2_handle *durable_handle;
+
+                       /* data for durable handle v2 */
+                       bool durable_open_v2;
+                       struct GUID create_guid;
+                       bool persistent_open;
+                       uint32_t timeout;
+                       struct smb2_handle *durable_handle_v2;
+
                        bool   query_maximal_access;
                        NTTIME timewarp;
                        bool   query_on_disk_id;
@@ -1741,6 +1771,12 @@ union smb_open {
                        uint32_t maximal_access;
                        uint8_t on_disk_id[32];
                        struct smb2_lease lease_response;
+                       bool durable_open;
+
+                       /* durable handle v2 */
+                       bool durable_open_v2;
+                       bool persistent_open;
+                       uint32_t timeout;
 
                        /* tagged blobs in the reply */
                        struct smb2_create_blobs blobs;