s3-pdb_ipa: Add supprted encryption types to struct pdb_trusted_domain
authorSumit Bose <sbose@redhat.com>
Thu, 23 Jun 2011 15:52:06 +0000 (17:52 +0200)
committerGünther Deschner <gd@samba.org>
Wed, 31 Aug 2011 10:53:36 +0000 (12:53 +0200)
Signed-off-by: Günther Deschner <gd@samba.org>
source3/include/passdb.h
source3/passdb/pdb_ipa.c

index b42491d834c7af42117836e73c5c86167bbe9ce8..1d0f2f36be4b82f8465c84d951750cd2bd6f0856 100644 (file)
@@ -268,6 +268,7 @@ struct pdb_trusted_domain {
        uint32_t trust_type;
        uint32_t trust_attributes;
        uint32_t *trust_posix_offset;
+       uint32_t *supported_enc_type;
        DATA_BLOB trust_forest_trust_info;
 };
 
index 65164e5865705507137fc09797b9211b0979dcec..15e65e0c2249dfa4b9134bd5de69551453cbd1ea 100644 (file)
@@ -36,6 +36,7 @@
 #define LDAP_ATTRIBUTE_TRUST_ATTRIBUTES "sambaTrustAttributes"
 #define LDAP_ATTRIBUTE_TRUST_DIRECTION "sambaTrustDirection"
 #define LDAP_ATTRIBUTE_TRUST_POSIX_OFFSET "sambaTrustPosixOffset"
+#define LDAP_ATTRIBUTE_SUPPORTED_ENC_TYPE "sambaSupportedEncryptionTypes"
 #define LDAP_ATTRIBUTE_TRUST_PARTNER "sambaTrustPartner"
 #define LDAP_ATTRIBUTE_FLAT_NAME "sambaFlatName"
 #define LDAP_ATTRIBUTE_TRUST_AUTH_OUTGOING "sambaTrustAuthOutgoing"
@@ -376,6 +377,18 @@ static bool fill_pdb_trusted_domain(TALLOC_CTX *mem_ctx,
                return false;
        }
 
+       td->supported_enc_type = talloc(td, uint32_t);
+       if (td->supported_enc_type == NULL) {
+               return false;
+       }
+       res = get_uint32_t_from_ldap_msg(ldap_state, entry,
+                                        LDAP_ATTRIBUTE_SUPPORTED_ENC_TYPE,
+                                        td->supported_enc_type);
+       if (!res) {
+               return false;
+       }
+
+
        get_data_blob_from_ldap_msg(td, ldap_state, entry,
                                    LDAP_ATTRIBUTE_TRUST_FOREST_TRUST_INFO,
                                    &td->trust_forest_trust_info);
@@ -542,6 +555,16 @@ static NTSTATUS ipasam_set_trusted_domain(struct pdb_methods *methods,
                }
        }
 
+       if (td->supported_enc_type != NULL) {
+               res = smbldap_make_mod_uint32_t(priv2ld(ldap_state), entry,
+                                               &mods,
+                                               LDAP_ATTRIBUTE_SUPPORTED_ENC_TYPE,
+                                               *td->supported_enc_type);
+               if (!res) {
+                       return NT_STATUS_UNSUCCESSFUL;
+               }
+       }
+
        if (td->trust_auth_outgoing.data != NULL) {
                smbldap_make_mod_blob(priv2ld(ldap_state), entry, &mods,
                                      LDAP_ATTRIBUTE_TRUST_AUTH_OUTGOING,