Annotation of /trunk/samba/patches/samba-3.0.24-variable-os-expansion.patch
Parent Directory | Revision Log
Revision 153 -
(hide annotations)
(download)
Tue May 8 20:52:56 2007 UTC (17 years, 4 months ago) by niro
File size: 5116 byte(s)
Tue May 8 20:52:56 2007 UTC (17 years, 4 months ago) by niro
File size: 5116 byte(s)
-import
1 | niro | 153 | Index: samba-3.0.24/source/include/smb.h |
2 | =================================================================== | ||
3 | --- samba-3.0.24.orig/source/include/smb.h 2007-02-08 15:27:50.000000000 -0600 | ||
4 | +++ samba-3.0.24/source/include/smb.h 2007-02-08 15:31:14.000000000 -0600 | ||
5 | @@ -1436,6 +1436,7 @@ | ||
6 | #define FLAGS2_LONG_PATH_COMPONENTS 0x0001 | ||
7 | #define FLAGS2_EXTENDED_ATTRIBUTES 0x0002 | ||
8 | #define FLAGS2_SMB_SECURITY_SIGNATURES 0x0004 | ||
9 | +#define FLAGS2_UNKNOWN_BIT4 0x0010 | ||
10 | #define FLAGS2_IS_LONG_NAME 0x0040 | ||
11 | #define FLAGS2_EXTENDED_SECURITY 0x0800 | ||
12 | #define FLAGS2_DFS_PATHNAMES 0x1000 | ||
13 | @@ -1499,7 +1500,8 @@ | ||
14 | |||
15 | /* Remote architectures we know about. */ | ||
16 | enum remote_arch_types {RA_UNKNOWN, RA_WFWG, RA_OS2, RA_WIN95, RA_WINNT, | ||
17 | - RA_WIN2K, RA_WINXP, RA_WIN2K3, RA_SAMBA, RA_CIFSFS}; | ||
18 | + RA_WIN2K, RA_WINXP, RA_WIN2K3, RA_VISTA, | ||
19 | + RA_SAMBA, RA_CIFSFS}; | ||
20 | |||
21 | /* case handling */ | ||
22 | enum case_handling {CASE_LOWER,CASE_UPPER}; | ||
23 | Index: samba-3.0.24/source/smbd/negprot.c | ||
24 | =================================================================== | ||
25 | --- samba-3.0.24.orig/source/smbd/negprot.c 2007-02-08 15:27:50.000000000 -0600 | ||
26 | +++ samba-3.0.24/source/smbd/negprot.c 2007-02-08 15:42:10.000000000 -0600 | ||
27 | @@ -263,6 +263,16 @@ | ||
28 | |||
29 | global_encrypted_passwords_negotiated = lp_encrypted_passwords(); | ||
30 | |||
31 | + /* Check the flags field to see if this is Vista. | ||
32 | + WinXP sets it and Vista does not. But we have to | ||
33 | + distinguish from NT which doesn't set it either. */ | ||
34 | + | ||
35 | + if ( (SVAL(inbuf, smb_flg2) & FLAGS2_EXTENDED_SECURITY) && | ||
36 | + ((SVAL(inbuf, smb_flg2) & FLAGS2_UNKNOWN_BIT4) == 0) ) | ||
37 | + { | ||
38 | + set_remote_arch( RA_VISTA ); | ||
39 | + } | ||
40 | + | ||
41 | /* do spnego in user level security if the client | ||
42 | supports it and we can do encrypted passwords */ | ||
43 | |||
44 | @@ -393,6 +403,15 @@ | ||
45 | protocol [LANMAN2.1] | ||
46 | protocol [NT LM 0.12] | ||
47 | |||
48 | +Vista: | ||
49 | +protocol [PC NETWORK PROGRAM 1.0] | ||
50 | +protocol [LANMAN1.0] | ||
51 | +protocol [Windows for Workgroups 3.1a] | ||
52 | +protocol [LM1.2X002] | ||
53 | +protocol [LANMAN2.1] | ||
54 | +protocol [NT LM 0.12] | ||
55 | +protocol [SMB 2.001] | ||
56 | + | ||
57 | OS/2: | ||
58 | protocol [PC NETWORK PROGRAM 1.0] | ||
59 | protocol [XENIX CORE] | ||
60 | @@ -406,18 +425,19 @@ | ||
61 | * | ||
62 | * This appears to be the matrix of which protocol is used by which | ||
63 | * MS product. | ||
64 | - Protocol WfWg Win95 WinNT Win2K OS/2 | ||
65 | - PC NETWORK PROGRAM 1.0 1 1 1 1 1 | ||
66 | + Protocol WfWg Win95 WinNT Win2K OS/2 Vista | ||
67 | + PC NETWORK PROGRAM 1.0 1 1 1 1 1 1 | ||
68 | XENIX CORE 2 2 | ||
69 | MICROSOFT NETWORKS 3.0 2 2 | ||
70 | DOS LM1.2X002 3 3 | ||
71 | MICROSOFT NETWORKS 1.03 3 | ||
72 | DOS LANMAN2.1 4 4 | ||
73 | - LANMAN1.0 4 2 3 | ||
74 | - Windows for Workgroups 3.1a 5 5 5 3 | ||
75 | - LM1.2X002 6 4 4 | ||
76 | - LANMAN2.1 7 5 5 | ||
77 | - NT LM 0.12 6 8 6 | ||
78 | + LANMAN1.0 4 2 3 2 | ||
79 | + Windows for Workgroups 3.1a 5 5 5 3 3 | ||
80 | + LM1.2X002 6 4 4 4 | ||
81 | + LANMAN2.1 7 5 5 5 | ||
82 | + NT LM 0.12 6 8 6 6 | ||
83 | + SMB 2.001 7 | ||
84 | * | ||
85 | * tim@fsg.com 09/29/95 | ||
86 | * Win2K added by matty 17/7/99 | ||
87 | @@ -430,6 +450,7 @@ | ||
88 | #define ARCH_OS2 0x14 /* Again OS/2 is like NT */ | ||
89 | #define ARCH_SAMBA 0x20 | ||
90 | #define ARCH_CIFSFS 0x40 | ||
91 | +#define ARCH_VISTA 0x8C /* Vista is like XP/2K */ | ||
92 | |||
93 | #define ARCH_ALL 0x7F | ||
94 | |||
95 | @@ -493,6 +514,8 @@ | ||
96 | arch &= ( ARCH_WFWG | ARCH_WIN95 ); | ||
97 | else if (strcsequal(p,"NT LM 0.12")) | ||
98 | arch &= ( ARCH_WIN95 | ARCH_WINNT | ARCH_WIN2K | ARCH_CIFSFS); | ||
99 | + else if (strcsequal(p,"SMB 2.001")) | ||
100 | + arch = ARCH_VISTA; | ||
101 | else if (strcsequal(p,"LANMAN2.1")) | ||
102 | arch &= ( ARCH_WINNT | ARCH_WIN2K | ARCH_OS2 ); | ||
103 | else if (strcsequal(p,"LM1.2X002")) | ||
104 | @@ -537,7 +560,13 @@ | ||
105 | set_remote_arch(RA_WINNT); | ||
106 | break; | ||
107 | case ARCH_WIN2K: | ||
108 | - set_remote_arch(RA_WIN2K); | ||
109 | + /* Vista may have been set in the negprot so don't | ||
110 | + override it here */ | ||
111 | + if ( get_remote_arch() != RA_VISTA ) | ||
112 | + set_remote_arch(RA_WIN2K); | ||
113 | + break; | ||
114 | + case ARCH_VISTA: | ||
115 | + set_remote_arch(RA_VISTA); | ||
116 | break; | ||
117 | case ARCH_OS2: | ||
118 | set_remote_arch(RA_OS2); | ||
119 | Index: samba-3.0.24/source/lib/util.c | ||
120 | =================================================================== | ||
121 | --- samba-3.0.24.orig/source/lib/util.c 2007-02-08 15:27:50.000000000 -0600 | ||
122 | +++ samba-3.0.24/source/lib/util.c 2007-02-08 15:31:14.000000000 -0600 | ||
123 | @@ -2182,6 +2182,9 @@ | ||
124 | case RA_WIN2K3: | ||
125 | fstrcpy(remote_arch, "Win2K3"); | ||
126 | break; | ||
127 | + case RA_VISTA: | ||
128 | + fstrcpy(remote_arch, "Vista"); | ||
129 | + break; | ||
130 | case RA_SAMBA: | ||
131 | fstrcpy(remote_arch,"Samba"); | ||
132 | break; |