[SCM] Samba Shared Repository - branch v3-6-test updated

Günther Deschner gd at samba.org
Wed Feb 9 16:53:42 MST 2011


The branch, v3-6-test has been updated
       via  dad0ef4 s3-waf: make ads support detection a little more robust.
       via  ef7b513 s3: move some stuff out of smb.h to better locations.
       via  6445bb1 s3: remove unused struct uuid_flat.
       via  0696a5c s3-waf: make sure we dont activate dnsupdate support w/o gssapi.
      from  ff769d5 Oops. Need to test for if(!NT_STATUS_IS_OK(..)) for error. (cherry picked from commit 5218fe4d9282c863c8c2f55db08983b20eb72f26)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -----------------------------------------------------------------
commit dad0ef4f89118ac84fe5226a97826445a87f7f7a
Author: Günther Deschner <gd at samba.org>
Date:   Wed Feb 9 22:43:41 2011 +0100

    s3-waf: make ads support detection a little more robust.
    
    Guenther
    
    Autobuild-User: Günther Deschner <gd at samba.org>
    Autobuild-Date: Wed Feb  9 23:38:50 CET 2011 on sn-devel-104
    (cherry picked from commit d0406ab7f035c7a777b9494712e7b9b52df95a19)

commit ef7b513227da4073363865bcb291dde852aa0994
Author: Günther Deschner <gd at samba.org>
Date:   Wed Feb 9 20:56:57 2011 +0100

    s3: move some stuff out of smb.h to better locations.
    
    Guenther
    (cherry picked from commit 65bb6b35241a29a514fef3be547398c9cd3c2e09)

commit 6445bb187661e290c70fc6f2f55b2583a315d41b
Author: Günther Deschner <gd at samba.org>
Date:   Wed Feb 9 20:51:47 2011 +0100

    s3: remove unused struct uuid_flat.
    
    Guenther
    (cherry picked from commit 4303d34da9c0da048348c63468c25381d8d0084c)

commit 0696a5cde3647fadd21e0b8becb2027646449cb9
Author: Günther Deschner <gd at samba.org>
Date:   Wed Feb 9 20:51:12 2011 +0100

    s3-waf: make sure we dont activate dnsupdate support w/o gssapi.
    
    Guenther
    (cherry picked from commit 9239db35e6c77e645a85dbb9a315902d24b87503)

-----------------------------------------------------------------------

Summary of changes:
 source3/include/passdb.h   |    2 +
 source3/include/smb.h      |   13 ----------
 source3/libsmb/clirap.c    |    2 +
 source3/libsmb/namequery.c |    3 ++
 source3/wscript            |   54 +++++++++++++++++++++++++++++++++++++++-----
 5 files changed, 55 insertions(+), 19 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/include/passdb.h b/source3/include/passdb.h
index b07c117..ac6dd21 100644
--- a/source3/include/passdb.h
+++ b/source3/include/passdb.h
@@ -117,6 +117,8 @@ struct login_cache {
 #define SAMU_BUFFER_V4		4
 #define SAMU_BUFFER_LATEST	SAMU_BUFFER_V4
 
+#define MAX_HOURS_LEN 32
+
 struct samu {
 	struct pdb_methods *methods;
 
diff --git a/source3/include/smb.h b/source3/include/smb.h
index 95c1d62..f99bf59 100644
--- a/source3/include/smb.h
+++ b/source3/include/smb.h
@@ -143,9 +143,6 @@ typedef union unid_t {
 } unid_t;
 
 /* pipe string names */
-#define PIPE_LANMAN   "\\PIPE\\LANMAN"
-
-#define MAX_HOURS_LEN 32
 
 #ifndef MAXSUBAUTHS
 #define MAXSUBAUTHS 15 /* max sub authorities in a SID */
@@ -1785,9 +1782,6 @@ struct ip_service {
 	unsigned port;
 };
 
-/* Special name type used to cause a _kerberos DNS lookup. */
-#define KDC_NAME_TYPE 0xDCDC
-
 struct ea_struct {
 	uint8 flags;
 	char *name;
@@ -1808,13 +1802,6 @@ struct ea_list {
 /* Prefix for xattrs storing streams. */
 #define SAMBA_XATTR_MARKER "user.SAMBA_STREAMS"
 
-#define UUID_SIZE 16
-
-#define UUID_FLAT_SIZE 16
-typedef struct uuid_flat {
-	uint8 info[UUID_FLAT_SIZE];
-} UUID_FLAT;
-
 /* map readonly options */
 enum mapreadonly_options {MAP_READONLY_NO, MAP_READONLY_YES, MAP_READONLY_PERMISSIONS};
 
diff --git a/source3/libsmb/clirap.c b/source3/libsmb/clirap.c
index 8541af4..781dbe6 100644
--- a/source3/libsmb/clirap.c
+++ b/source3/libsmb/clirap.c
@@ -25,6 +25,8 @@
 #include "../lib/crypto/arcfour.h"
 #include "async_smb.h"
 
+#define PIPE_LANMAN   "\\PIPE\\LANMAN"
+
 /****************************************************************************
  Call a remote api
 ****************************************************************************/
diff --git a/source3/libsmb/namequery.c b/source3/libsmb/namequery.c
index 64452d5..0da495d 100644
--- a/source3/libsmb/namequery.c
+++ b/source3/libsmb/namequery.c
@@ -1815,6 +1815,9 @@ static NTSTATUS resolve_hosts(const char *name, int name_type,
  Resolve via "ADS" method.
 *********************************************************/
 
+/* Special name type used to cause a _kerberos DNS lookup. */
+#define KDC_NAME_TYPE 0xDCDC
+
 static NTSTATUS resolve_ads(const char *name,
 			    int name_type,
 			    const char *sitename,
diff --git a/source3/wscript b/source3/wscript
index 7dd87d7..3aa5d2a 100644
--- a/source3/wscript
+++ b/source3/wscript
@@ -598,9 +598,6 @@ msg.msg_acctrightslen = sizeof(fd);
                     headers='netdb.h netgroup.h',
                     cflags="-Werror-implicit-function-declaration")
 
-    #FIXME: Should just be set when krb5 and ldap requirements are fulfilled
-    if Options.options.with_ads:
-        conf.DEFINE('WITH_ADS', '1')
 
     # Look for CUPS
     if Options.options.with_cups:
@@ -839,8 +836,6 @@ return krb5_kt_resolve(context, "WRFILE:api", &keytab);
             headers='krb5.h', lib='krb5', execute=True,
             msg="Checking whether the WRFILE:-keytab is supported");
 
-        conf.DEFINE('HAVE_KRB5', '1')
-
     else:
         conf.SET_TARGET_TYPE('krb5', 'EMPTY')
         conf.SET_TARGET_TYPE('gssapi', 'EMPTY')
@@ -848,6 +843,50 @@ return krb5_kt_resolve(context, "WRFILE:api", &keytab);
         conf.SET_TARGET_TYPE('com_err', 'EMPTY')
         conf.SET_TARGET_TYPE('k5crypto', 'EMPTY')
 
+    if Options.options.with_ads:
+        use_ads=True
+        if not conf.CONFIG_SET('HAVE_ENCTYPE_ARCFOUR_HMAC_MD5'):
+            print "arcfour-hmac-md5 encryption type not found in -lkrb5"
+            use_ads=False
+        if not conf.CONFIG_SET('HAVE_KRB5_MK_REQ_EXTENDED'):
+            print "krb5_mk_req_extended not found in -lkrb5"
+            use_ads=False
+        if not conf.CONFIG_SET('HAVE_KRB5_PRINCIPAL2SALT') or \
+           not conf.CONFIG_SET('HAVE_KRB5_GET_PW_SALT'):
+            print "no CREATE_KEY_FUNCTIONS detected"
+            use_ads=False
+        if not conf.CONFIG_SET('HAVE_KRB5_GET_PERMITTED_ENCTYPES') or \
+           not conf.CONFIG_SET('HAVE_KRB5_GET_DEFAULT_IN_TKT_ETYPES'):
+            print "no GET_ENCTYPES_FUNCTIONS detected"
+            use_ads=False
+        if not conf.CONFIG_SET('HAVE_KRB5_KT_FREE_ENTRY') or \
+           not conf.CONFIG_SET('HAVE_KRB5_FREE_KEYTAB_ENTRY_CONTENTS'):
+            print "no KT_FREE_FUNCTION detected"
+            use_ads=False
+        if not conf.CONFIG_SET('HAVE_KRB5_C_VERIFY_CHECKSUM') or \
+           not conf.CONFIG_SET('HAVE_KRB5_VERIFY_CHECKSUM'):
+            print "no KRB5_VERIFY_CHECKSUM_FUNCTION detected"
+            use_ads=False
+        if not conf.CONFIG_SET('KRB5_TICKET_HAS_KEYINFO'):
+            # We only need the following functions if we can't get the enctype
+            # and kvno out of the ticket directly (ie. on Heimdal).
+            if not conf.CONFIG_SET('free_AP_REQ'):
+                print "no KRB5_AP_REQ_FREE_FUNCTION detected"
+                use_ads=False
+            if not conf.CONFIG_SET('HAVE_KRB5_DECODE_AP_REQ'):
+                print "no KRB5_AP_REQ_DECODING_FUNCTION detected"
+                use_ads=False
+        if use_ads:
+            conf.DEFINE('WITH_ADS', '1')
+            conf.DEFINE('HAVE_KRB5', '1')
+            conf.DEFINE('HAVE_GSSAPI', '1')
+        else:
+            print "krb5 libs don't have all features required for Active Directory support"
+            conf.undefine('HAVE_KRB5_H')
+            conf.undefine('HAVE_GSSAPI_H')
+            conf.undefine('HAVE_GSSAPI_GSSAPI_GENERIC_H')
+            conf.undefine('HAVE_GSSAPI_GSSAPI_H')
+
     if Options.options.with_utmp:
         conf.CHECK_FUNCS('pututline pututxline updwtmp updwtmpx getutmpx getutxent')
         conf.CHECK_STRUCTURE_MEMBER('struct utmp', 'ut_name', headers='utmp.h',
@@ -1013,7 +1052,10 @@ int i; i = PAM_RADIO_TYPE;
         conf.CHECK_FUNCS_IN('uuid_generate', 'uuid')
         if not conf.CONFIG_SET('HAVE_UUID_UUID_H') and not conf.CONFIG_SET('HAVE_UUID_GENERATE'):
             print "--with-dnsupdate=yes but uuid support not sufficient"
-        conf.DEFINE('WITH_DNS_UPDATES', 1)
+        elif not conf.CONFIG_SET('HAVE_GSSAPI'):
+            print "--with-dnsupdate=yes but gssapi support not sufficient"
+        else:
+            conf.DEFINE('WITH_DNS_UPDATES', 1)
     else:
         conf.SET_TARGET_TYPE('uuid', 'EMPTY')
     conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')


-- 
Samba Shared Repository


More information about the samba-cvs mailing list