updated some info levels based on WSPP docs
authorAndrew Tridgell <tridge@samba.org>
Mon, 2 Jun 2008 01:02:57 +0000 (11:02 +1000)
committerAndrew Tridgell <tridge@samba.org>
Mon, 2 Jun 2008 01:02:57 +0000 (11:02 +1000)
(This used to be commit f84620324a8cebcd2fd19388d910928ca1ad1334)

source4/libcli/raw/interfaces.h
source4/libcli/raw/rawsetfileinfo.c
source4/libcli/raw/trans2.h

index 19d51893a616411c7f211bb3446cee38d91b9728..8e23510f0691348663ab6f7386a0fd34d6dbb849 100644 (file)
@@ -906,15 +906,24 @@ enum smb_setfileinfo_level {
        RAW_SFILEINFO_RENAME_INFORMATION      = SMB_SFILEINFO_RENAME_INFORMATION,
        RAW_SFILEINFO_DISPOSITION_INFORMATION = SMB_SFILEINFO_DISPOSITION_INFORMATION,
        RAW_SFILEINFO_POSITION_INFORMATION    = SMB_SFILEINFO_POSITION_INFORMATION,
+       RAW_SFILEINFO_FULL_EA_INFORMATION     = SMB_SFILEINFO_FULL_EA_INFORMATION,
        RAW_SFILEINFO_MODE_INFORMATION        = SMB_SFILEINFO_MODE_INFORMATION,
        RAW_SFILEINFO_ALLOCATION_INFORMATION  = SMB_SFILEINFO_ALLOCATION_INFORMATION,
        RAW_SFILEINFO_END_OF_FILE_INFORMATION = SMB_SFILEINFO_END_OF_FILE_INFORMATION,
-       RAW_SFILEINFO_1023                    = SMB_SFILEINFO_1023,
+       RAW_SFILEINFO_PIPE_INFORMATION        = SMB_SFILEINFO_PIPE_INFORMATION,
+       RAW_SFILEINFO_VALID_DATA_INFORMATION  = SMB_SFILEINFO_VALID_DATA_INFORMATION,
+       RAW_SFILEINFO_SHORT_NAME_INFORMATION  = SMB_SFILEINFO_SHORT_NAME_INFORMATION,
        RAW_SFILEINFO_1025                    = SMB_SFILEINFO_1025,
+       RAW_SFILEINFO_1027                    = SMB_SFILEINFO_1027,
        RAW_SFILEINFO_1029                    = SMB_SFILEINFO_1029,
+       RAW_SFILEINFO_1030                    = SMB_SFILEINFO_1030,
+       RAW_SFILEINFO_1031                    = SMB_SFILEINFO_1031,
        RAW_SFILEINFO_1032                    = SMB_SFILEINFO_1032,
-       RAW_SFILEINFO_1039                    = SMB_SFILEINFO_1039,
-       RAW_SFILEINFO_1040                    = SMB_SFILEINFO_1040,
+       RAW_SFILEINFO_1036                    = SMB_SFILEINFO_1036,
+       RAW_SFILEINFO_1041                    = SMB_SFILEINFO_1041,
+       RAW_SFILEINFO_1042                    = SMB_SFILEINFO_1042,
+       RAW_SFILEINFO_1043                    = SMB_SFILEINFO_1043,
+       RAW_SFILEINFO_1044                    = SMB_SFILEINFO_1044,
        
        /* cope with breakage in SMB2 */
        RAW_SFILEINFO_RENAME_INFORMATION_SMB2 = SMB_SFILEINFO_RENAME_INFORMATION|0x80000000,
@@ -1901,7 +1910,7 @@ union smb_lock {
                        uint16_t ulock_cnt;
                        uint16_t lock_cnt;
                        struct smb_lock_entry {
-                               uint16_t pid;
+                               uint32_t pid; /* 16 bits in SMB1 */
                                uint64_t offset;
                                uint64_t count;
                        } *locks; /* unlocks are first in the arrray */
index 16052e87086eaa5b9f86b9ecc46d51d4f4c0ab5d..5a4706778a4a0e2b586a634cda87c231f54d0504 100644 (file)
@@ -110,12 +110,20 @@ bool smb_raw_setfileinfo_passthru(TALLOC_CTX *mem_ctx,
        }
 
                /* Unhandled levels */
-       case RAW_SFILEINFO_1023:
+       case RAW_SFILEINFO_PIPE_INFORMATION:
+       case RAW_SFILEINFO_VALID_DATA_INFORMATION:
+       case RAW_SFILEINFO_SHORT_NAME_INFORMATION:
        case RAW_SFILEINFO_1025:
+       case RAW_SFILEINFO_1027:
        case RAW_SFILEINFO_1029:
+       case RAW_SFILEINFO_1030:
+       case RAW_SFILEINFO_1031:
        case RAW_SFILEINFO_1032:
-       case RAW_SFILEINFO_1039:
-       case RAW_SFILEINFO_1040:
+       case RAW_SFILEINFO_1036:
+       case RAW_SFILEINFO_1041:
+       case RAW_SFILEINFO_1042:
+       case RAW_SFILEINFO_1043:
+       case RAW_SFILEINFO_1044:
                break;
 
        default:
@@ -227,12 +235,21 @@ static bool smb_raw_setinfo_backend(struct smbcli_tree *tree,
                                                    parms, blob);
                
                /* Unhandled passthru levels */
-       case RAW_SFILEINFO_1023:
+       case RAW_SFILEINFO_PIPE_INFORMATION:
+       case RAW_SFILEINFO_VALID_DATA_INFORMATION:
+       case RAW_SFILEINFO_SHORT_NAME_INFORMATION:
+       case RAW_SFILEINFO_FULL_EA_INFORMATION:
        case RAW_SFILEINFO_1025:
+       case RAW_SFILEINFO_1027:
        case RAW_SFILEINFO_1029:
+       case RAW_SFILEINFO_1030:
+       case RAW_SFILEINFO_1031:
        case RAW_SFILEINFO_1032:
-       case RAW_SFILEINFO_1039:
-       case RAW_SFILEINFO_1040:
+       case RAW_SFILEINFO_1036:
+       case RAW_SFILEINFO_1041:
+       case RAW_SFILEINFO_1042:
+       case RAW_SFILEINFO_1043:
+       case RAW_SFILEINFO_1044:
                return smb_raw_setfileinfo_passthru(mem_ctx, parms->generic.level,
                                                    parms, blob);
 
index 5b7987aa8caa8d5d1fe67364a12e46accbf0b1f7..63632eb5edbda403b98afde7696a568fddd6ec76 100644 (file)
@@ -217,32 +217,37 @@ Found 13 valid levels
 #define SMB_SFILEINFO_UNIX_INFO2                       0x20b
 #define SMB_SFILEINFO_BASIC_INFORMATION                        1004
 #define SMB_SFILEINFO_RENAME_INFORMATION               1010
+#define SMB_SFILEINFO_LINK_INFORMATION                 1011
 #define SMB_SFILEINFO_DISPOSITION_INFORMATION          1013
 #define SMB_SFILEINFO_POSITION_INFORMATION             1014
+#define SMB_SFILEINFO_FULL_EA_INFORMATION              1015
 #define SMB_SFILEINFO_MODE_INFORMATION                 1016
 #define SMB_SFILEINFO_ALLOCATION_INFORMATION           1019
 #define SMB_SFILEINFO_END_OF_FILE_INFORMATION          1020
-
-/* filemon shows FilePipeInformation */
-#define SMB_SFILEINFO_1023                             1023
+#define SMB_SFILEINFO_PIPE_INFORMATION                 1023
+#define SMB_SFILEINFO_VALID_DATA_INFORMATION           1039
+#define SMB_SFILEINFO_SHORT_NAME_INFORMATION           1040
 
 /* filemon shows FilePipeRemoteInformation */
 #define SMB_SFILEINFO_1025                             1025
 
+/* vista scan responds */
+#define SMB_SFILEINFO_1027                             1027
+
 /* filemon shows CopyOnWriteInformation */
 #define SMB_SFILEINFO_1029                             1029
 
 /* filemon shows OleClassIdInformation */
 #define SMB_SFILEINFO_1032                             1032
 
-/* seems to be the file size - perhaps valid data size? 
-   filemon shows 'InheritContentIndexInfo'
-*/
-#define SMB_SFILEINFO_1039                             1039
-
-/* OLE_INFORMATION? */
-#define SMB_SFILEINFO_1040                             1040
-
+/* vista scan responds to these */
+#define SMB_SFILEINFO_1030                             1030
+#define SMB_SFILEINFO_1031                             1031
+#define SMB_SFILEINFO_1036                             1036
+#define SMB_SFILEINFO_1041                             1041
+#define SMB_SFILEINFO_1042                             1042
+#define SMB_SFILEINFO_1043                             1043
+#define SMB_SFILEINFO_1044                             1044
 
 /* trans2 findfirst levels */
 /*