/* Remote architectures we know about. */
enum remote_arch_types {RA_UNKNOWN, RA_WFWG, RA_OS2, RA_WIN95, RA_WINNT,
RA_WIN2K, RA_WINXP, RA_WIN2K3, RA_VISTA,
- RA_SAMBA, RA_CIFSFS, RA_WINXP64};
+ RA_SAMBA, RA_CIFSFS, RA_WINXP64, RA_WIN2K8, RA_WIN7};
/* case handling */
enum case_handling {CASE_LOWER,CASE_UPPER};
protocol [LANMAN1.0]
protocol [LM1.2X002]
protocol [LANMAN2.1]
+
+Win2k8:
+protocol [PC NETWORK PROGRAM 1.0]
+protocol [LANMAN1.0]
+protocol [Windows for Workgroups 3.1a]
+protocol [LM1.2X002]
+protocol [LANMAN2.1]
+protocol [NT LM 0.12]
+protocol [SMB 2.002]
+
+Win7:
+protocol [PC NETWORK PROGRAM 1.0]
+protocol [LANMAN1.0]
+protocol [Windows for Workgroups 3.1a]
+protocol [LM1.2X002]
+protocol [LANMAN2.1]
+protocol [NT LM 0.12]
+protocol [SMB 2.002]
+protocol [SMB 2.???]
+
*/
/*
*
* This appears to be the matrix of which protocol is used by which
* MS product.
- Protocol WfWg Win95 WinNT Win2K OS/2 Vista
- PC NETWORK PROGRAM 1.0 1 1 1 1 1 1
- XENIX CORE 2 2
- MICROSOFT NETWORKS 3.0 2 2
- DOS LM1.2X002 3 3
- MICROSOFT NETWORKS 1.03 3
- DOS LANMAN2.1 4 4
- LANMAN1.0 4 2 3 2
- Windows for Workgroups 3.1a 5 5 5 3 3
- LM1.2X002 6 4 4 4
- LANMAN2.1 7 5 5 5
- NT LM 0.12 6 8 6 6
- SMB 2.001 7
+ Protocol WfWg Win95 WinNT Win2K OS/2 Vista W2K8 Win7
+ PC NETWORK PROGRAM 1.0 1 1 1 1 1 1 1 1
+ XENIX CORE 2 2
+ MICROSOFT NETWORKS 3.0 2 2
+ DOS LM1.2X002 3 3
+ MICROSOFT NETWORKS 1.03 3
+ DOS LANMAN2.1 4 4
+ LANMAN1.0 4 2 3 2 2 2
+ Windows for Workgroups 3.1a 5 5 5 3 3 3 3
+ LM1.2X002 6 4 4 4 4 4
+ LANMAN2.1 7 5 5 5 5 5
+ NT LM 0.12 6 8 6 6 6 6
+ SMB 2.001 7
+ SMB 2.002 7 7
+ SMB 2.??? 8
*
* tim@fsg.com 09/29/95
* Win2K added by matty 17/7/99
#define ARCH_SAMBA 0x20
#define ARCH_CIFSFS 0x40
#define ARCH_VISTA 0x8C /* Vista is like XP/2K */
+#define ARCH_W2K8 0x10C /* W2K8 is like XP/2K */
+#define ARCH_WIN7 0x30C /* Win7 is like W2K8 */
-#define ARCH_ALL 0x7F
+#define ARCH_ALL 0x3FF
/* List of supported protocols, most desired first */
static const struct {
arch &= ( ARCH_WIN95 | ARCH_WINNT | ARCH_WIN2K
| ARCH_CIFSFS);
else if (strcsequal(cliprotos[i], "SMB 2.001"))
- arch = ARCH_VISTA;
+ arch &= ( ARCH_VISTA );
+ else if (strcsequal(cliprotos[i], "SMB 2.002"))
+ arch &= ( ARCH_W2K8 );
+ else if (strcsequal(cliprotos[i], "SMB 2.???"))
+ arch &= ( ARCH_WIN7 );
else if (strcsequal(cliprotos[i], "LANMAN2.1"))
arch &= ( ARCH_WINNT | ARCH_WIN2K | ARCH_OS2 );
else if (strcsequal(cliprotos[i], "LM1.2X002"))
case ARCH_VISTA:
set_remote_arch(RA_VISTA);
break;
+ case ARCH_W2K8:
+ set_remote_arch(RA_WIN2K8);
+ break;
+ case ARCH_WIN7:
+ set_remote_arch(RA_WIN7);
+ break;
case ARCH_OS2:
set_remote_arch(RA_OS2);
break;