From 6141b6a49f18b88b01bb101bea22d2cc10235602 Mon Sep 17 00:00:00 2001 From: Justin Maggard Date: Thu, 24 Feb 2011 16:25:30 -0800 Subject: Detect Mac OS X as a separate client type. --- docs-xml/manpages-3/smb.conf.5.xml | 1 + source3/include/smb.h | 2 +- source3/lib/util.c | 3 +++ source3/smbd/sesssetup.c | 4 ++++ 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/docs-xml/manpages-3/smb.conf.5.xml b/docs-xml/manpages-3/smb.conf.5.xml index 7423fc4e45..a9aa32fd0d 100644 --- a/docs-xml/manpages-3/smb.conf.5.xml +++ b/docs-xml/manpages-3/smb.conf.5.xml @@ -488,6 +488,7 @@ chmod 1770 /usr/local/samba/lib/usershares The architecture of the remote machine. It currently recognizes Samba (Samba), the Linux CIFS file system (CIFSFS), OS/2, (OS2), + Mac OS X (OSX), Windows for Workgroups (WfWg), Windows 9x/ME (Win95), Windows NT (WinNT), Windows 2000 (Win2K), diff --git a/source3/include/smb.h b/source3/include/smb.h index d3fa3f2790..49c653e8f3 100644 --- a/source3/include/smb.h +++ b/source3/include/smb.h @@ -1456,7 +1456,7 @@ enum ldap_passwd_sync_types {LDAP_PASSWD_SYNC_ON, LDAP_PASSWD_SYNC_OFF, LDAP_PAS /* 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_OSX}; /* case handling */ enum case_handling {CASE_LOWER,CASE_UPPER}; diff --git a/source3/lib/util.c b/source3/lib/util.c index e70dd6a341..99c4200eb3 100644 --- a/source3/lib/util.c +++ b/source3/lib/util.c @@ -1858,6 +1858,9 @@ void set_remote_arch(enum remote_arch_types type) case RA_CIFSFS: remote_arch_str = "CIFSFS"; break; + case RA_OSX: + remote_arch_str = "OSX"; + break; default: ra_type = RA_UNKNOWN; remote_arch_str = "UNKNOWN"; diff --git a/source3/smbd/sesssetup.c b/source3/smbd/sesssetup.c index d9333502b8..3cb07bea74 100644 --- a/source3/smbd/sesssetup.c +++ b/source3/smbd/sesssetup.c @@ -1095,6 +1095,10 @@ static void reply_sesssetup_and_X_spnego(struct smb_request *req) } else { ra_lanman_string( native_lanman ); } + } else if ( ra_type == RA_VISTA ) { + if ( strncmp(native_os, "Mac OS X", 8) == 0 ) { + set_remote_arch(RA_OSX); + } } /* Did we get a valid vuid ? */ -- cgit