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

index 546bcb0cb101559145e79c5b65adc652874781b8..b42491d834c7af42117836e73c5c86167bbe9ce8 100644 (file)
@@ -267,6 +267,7 @@ struct pdb_trusted_domain {
        uint32_t trust_direction;
        uint32_t trust_type;
        uint32_t trust_attributes;
+       uint32_t *trust_posix_offset;
        DATA_BLOB trust_forest_trust_info;
 };
 
index bc27520c9dbeefaa54abc9e0e07ef4964706227f..65164e5865705507137fc09797b9211b0979dcec 100644 (file)
@@ -35,6 +35,7 @@
 #define LDAP_ATTRIBUTE_TRUST_TYPE "sambaTrustType"
 #define LDAP_ATTRIBUTE_TRUST_ATTRIBUTES "sambaTrustAttributes"
 #define LDAP_ATTRIBUTE_TRUST_DIRECTION "sambaTrustDirection"
+#define LDAP_ATTRIBUTE_TRUST_POSIX_OFFSET "sambaTrustPosixOffset"
 #define LDAP_ATTRIBUTE_TRUST_PARTNER "sambaTrustPartner"
 #define LDAP_ATTRIBUTE_FLAT_NAME "sambaFlatName"
 #define LDAP_ATTRIBUTE_TRUST_AUTH_OUTGOING "sambaTrustAuthOutgoing"
@@ -364,6 +365,17 @@ static bool fill_pdb_trusted_domain(TALLOC_CTX *mem_ctx,
                return false;
        }
 
+       td->trust_posix_offset = talloc(td, uint32_t);
+       if (td->trust_posix_offset == NULL) {
+               return false;
+       }
+       res = get_uint32_t_from_ldap_msg(ldap_state, entry,
+                                        LDAP_ATTRIBUTE_TRUST_POSIX_OFFSET,
+                                        td->trust_posix_offset);
+       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);
@@ -520,6 +532,16 @@ static NTSTATUS ipasam_set_trusted_domain(struct pdb_methods *methods,
                }
        }
 
+       if (td->trust_posix_offset != NULL) {
+               res = smbldap_make_mod_uint32_t(priv2ld(ldap_state), entry,
+                                               &mods,
+                                               LDAP_ATTRIBUTE_TRUST_POSIX_OFFSET,
+                                               *td->trust_posix_offset);
+               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,