s4:libcli/raw: remove SMBkeepalive
[metze/samba/wip.git] / source4 / libcli / raw / smb.h
index d4091acf488221856c970742a93bbab8b71a140f..ee22ae097cf0fa8d61d0bb2bc9428e36839279b4 100644 (file)
@@ -23,8 +23,8 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#ifndef _SMB_H
-#define _SMB_H
+#ifndef _RAW_SMB_H
+#define _RAW_SMB_H
 
 /* deny modes */
 #define DENY_DOS 0
 #define NTCREATEX_OPTIONS_INVALID_PARAM_MASK    (NTCREATEX_OPTIONS_OPFILTER | \
                                                 NTCREATEX_OPTIONS_SYNC_ALERT | \
                                                 NTCREATEX_OPTIONS_ASYNC_ALERT | \
-                                                NTCREATEX_OPTIONS_OPFILTER | \
                                                 0xFF000000)
 
 /*
- * We reuse some ignored flags for private use.
+ * private_flags field in ntcreatex
  * This values have different meaning for some ntvfs backends.
- *
- * TODO: use values that are ignore for sure...
  */
-#define NTCREATEX_OPTIONS_PRIVATE_DENY_DOS      0x00010000
-#define NTCREATEX_OPTIONS_PRIVATE_DENY_FCB      0x00020000
-#define NTCREATEX_OPTIONS_PRIVATE_MASK          (NTCREATEX_OPTIONS_PRIVATE_DENY_DOS | \
-                                                NTCREATEX_OPTIONS_PRIVATE_DENY_FCB)
+#define NTCREATEX_OPTIONS_PRIVATE_DENY_DOS      0x0001
+#define NTCREATEX_OPTIONS_PRIVATE_DENY_FCB      0x0002
+
 
 /* ntcreatex impersonation field */
 #define NTCREATEX_IMPERSONATION_ANONYMOUS      0
 #define SMBffirst        0x82   /* find first */
 #define SMBfunique       0x83   /* find unique */
 #define SMBfclose        0x84   /* find close */
-#define SMBkeepalive     0x85   /* keepalive */
 #define SMBinvalid       0xFE   /* invalid command */
 
 /* Extended 2.0 protocol */
 #define DESIRED_ACCESS_PIPE 0x2019f
  
 
-/* Mapping of generic access rights for files to specific rights. */
-#define FILE_GENERIC_ALL (STANDARD_RIGHTS_REQUIRED_ACCESS| NT_ACCESS_SYNCHRONIZE_ACCESS|FILE_ALL_ACCESS)
-
-#define FILE_GENERIC_READ (STANDARD_RIGHTS_READ_ACCESS|FILE_READ_DATA|FILE_READ_ATTRIBUTES|\
-                                                       FILE_READ_EA|NT_ACCESS_SYNCHRONIZE_ACCESS)
-
-#define FILE_GENERIC_WRITE (STANDARD_RIGHTS_WRITE_ACCESS|FILE_WRITE_DATA|FILE_WRITE_ATTRIBUTES|\
-                           FILE_WRITE_EA|FILE_APPEND_DATA|NT_ACCESS_SYNCHRONIZE_ACCESS)
-
-#define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE_ACCESS|FILE_READ_ATTRIBUTES|\
-                           FILE_EXECUTE|NT_ACCESS_SYNCHRONIZE_ACCESS)
-
-
-/* FileAttributes (search attributes) field */
-#define FILE_ATTRIBUTE_READONLY                0x0001
-#define FILE_ATTRIBUTE_HIDDEN          0x0002
-#define FILE_ATTRIBUTE_SYSTEM          0x0004
-#define FILE_ATTRIBUTE_VOLUME          0x0008
-#define FILE_ATTRIBUTE_DIRECTORY       0x0010
-#define FILE_ATTRIBUTE_ARCHIVE         0x0020
-#define FILE_ATTRIBUTE_DEVICE          0x0040
-#define FILE_ATTRIBUTE_NORMAL          0x0080
-#define FILE_ATTRIBUTE_TEMPORARY       0x0100
-#define FILE_ATTRIBUTE_SPARSE          0x0200
-#define FILE_ATTRIBUTE_REPARSE_POINT   0x0400
-#define FILE_ATTRIBUTE_COMPRESSED      0x0800
-#define FILE_ATTRIBUTE_OFFLINE         0x1000
-#define FILE_ATTRIBUTE_NONINDEXED      0x2000
-#define FILE_ATTRIBUTE_ENCRYPTED       0x4000
-#define FILE_ATTRIBUTE_ALL_MASK        0x7FFF
-
 /* Flags - combined with attributes. */
 #define FILE_FLAG_WRITE_THROUGH    0x80000000L
 #define FILE_FLAG_NO_BUFFERING     0x20000000L
 #define FILE_WAS_CREATED 2
 #define FILE_WAS_OVERWRITTEN 3
 
-/* File type flags */
-#define FILE_TYPE_DISK  0
-#define FILE_TYPE_BYTE_MODE_PIPE 1
-#define FILE_TYPE_MESSAGE_MODE_PIPE 2
-#define FILE_TYPE_PRINTER 3
-#define FILE_TYPE_COMM_DEVICE 4
-#define FILE_TYPE_UNKNOWN 0xFFFF
-
 /* Flag for NT transact rename call. */
 #define RENAME_REPLACE_IF_EXISTS 1
 
 #define FILE_NOTIFY_CHANGE_NAME \
        (FILE_NOTIFY_CHANGE_FILE_NAME|FILE_NOTIFY_CHANGE_DIR_NAME)
 
+#define FILE_NOTIFY_CHANGE_ALL \
+       (FILE_NOTIFY_CHANGE_FILE_NAME   | FILE_NOTIFY_CHANGE_DIR_NAME | \
+        FILE_NOTIFY_CHANGE_ATTRIBUTES  | FILE_NOTIFY_CHANGE_SIZE | \
+        FILE_NOTIFY_CHANGE_LAST_WRITE  | FILE_NOTIFY_CHANGE_LAST_ACCESS | \
+        FILE_NOTIFY_CHANGE_CREATION    | FILE_NOTIFY_CHANGE_EA | \
+        FILE_NOTIFY_CHANGE_SECURITY    | FILE_NOTIFY_CHANGE_STREAM_NAME | \
+        FILE_NOTIFY_CHANGE_STREAM_SIZE | FILE_NOTIFY_CHANGE_STREAM_WRITE)
+
 /* change notify action results */
 #define NOTIFY_ACTION_ADDED 1
 #define NOTIFY_ACTION_REMOVED 2
 
 /* where to find the base of the SMB packet proper */
 /* REWRITE TODO: smb_base needs to be removed */
-#define smb_base(buf) (((char *)(buf))+4)
+#define smb_base(buf) (((const char *)(buf))+4)
 
 /* we don't allow server strings to be longer than 48 characters as
    otherwise NT will not honour the announce packets */
 #define NEGOTIATE_SECURITY_SIGNATURES_ENABLED  0x04
 #define NEGOTIATE_SECURITY_SIGNATURES_REQUIRED 0x08
 
-/* NT Flags2 bits - cifs6.txt section 3.1.2 */
-#define FLAGS2_LONG_PATH_COMPONENTS    0x0001
-#define FLAGS2_EXTENDED_ATTRIBUTES     0x0002
-#define FLAGS2_SMB_SECURITY_SIGNATURES 0x0004
-#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
-
-
 /* CIFS protocol capabilities */
 #define CAP_RAW_MODE           0x00000001
 #define CAP_MPX_MODE           0x00000002
 #define UID_FIELD_INVALID 0
 
 /* Lock types. */
+#define LOCKING_ANDX_EXCLUSIVE_LOCK  0x00
 #define LOCKING_ANDX_SHARED_LOCK     0x01
 #define LOCKING_ANDX_OPLOCK_RELEASE  0x02
 #define LOCKING_ANDX_CHANGE_LOCKTYPE 0x04
 
 #include "libcli/raw/trans2.h"
 #include "libcli/raw/interfaces.h"
+#include "libcli/smb/smb_common.h"
 
-#endif /* _SMB_H */
+#endif /* _RAW_SMB_H */