1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-24 02:04:21 +03:00

128 Commits

Author SHA1 Message Date
Andrew Bartlett
8374d6f0dc Sort output of schema for OpenLDAP during conversion
This avoids the need to assume that the schema is sorted on load,
which happens more often and is a major performace issue in the
Samba4's use of ldb.

Andrew Bartlett
2009-03-06 12:12:24 +11:00
Andrew Bartlett
17aac8cad2 Remove ad2oLschema, insted call it directly from provision-backend
This removes a level of indirection via external binaries in the
provision-backend code, and also makes better use of our internal code
for loading schema from an LDIF file.

Remaining to do: Sort the output again, as the load from LDIF is
unsorted (also needed because the normal LDB load from sorted input is too slow
anyway, and is only needed here).

Andrew Bartlett
2009-03-05 16:52:11 +11:00
Andrew Bartlett
52542e1aff Pull in all the schema information during DRS schema fetch
This includes things such as allowed attributes, which were not
populated into the schema structure before.

Andrew Bartlett
2009-03-04 14:06:11 +11:00
Jelmer Vernooij
94069bd274 s4: Use same function signature for convert_* as s3. 2009-03-01 19:55:46 +01:00
Jelmer Vernooij
9ffb6d2d9e Add allow_badcharcnv argument to all conversion function, for
consistency with Samba 3.
2009-03-01 06:33:40 +01:00
Simo Sorce
1cd7fe7194 Fix headers, ldb_includes.h is a private header,
do not reference it from ldb.h
2009-02-23 17:38:11 -05:00
Stefan Metzmacher
2dc838341d s4:dsdb/schema: s/class/sclass
metze
2009-02-02 13:08:40 +01:00
Simo Sorce
d4aeed879b Fix all other modules to use ldb_module.h instead of ldb_private.h
The only 2 modules escaping the rule so far are rootdse and partitions
2009-01-30 17:07:25 -05:00
Jelmer Vernooij
bd64688c6a Fix more compiler warnings in various places. 2008-12-23 22:57:11 +01:00
Andrew Bartlett
012a6524f7 Treat DN+STring as a binary string for now
This matches the way we work with DN+Binary.  We need this for the
OpenLDAP backend.

Andrew Bartlett
2008-12-20 15:11:40 +11:00
Andrew Bartlett
6488afaafe Now store the GUID and SID from a DN over DRSUAPI into ldb.
Until the extended DN work was compleated, there was no way to store
the additional metadata.

Andrew Bartlett
2008-12-20 14:44:39 +11:00
Andrew Bartlett
6c298c06f3 Don't treat the DN+binary syntax as a DN.
This should fix the OpenLDAP backend
2008-12-02 14:22:24 +11:00
Stefan Metzmacher
a1f76f7afe s4:dsdb/schema: add a function to generate the "extendedClassInfo" values
metze
2008-11-16 16:37:28 +01:00
Stefan Metzmacher
3c0f03ade2 s4:dsdb/schema: add a function to generate the "extendedAttributeInfo" values
metze
2008-11-16 16:37:27 +01:00
Stefan Metzmacher
203544e690 s4:dsdb/schema: use pointers for rangeLower and rangeUpper.
This makes clear there's an value stored in the schema,
as they can be '0'.

metze
2008-11-16 16:37:27 +01:00
Stefan Metzmacher
6770fd12cc s4:dsdb/schema: we don't need to use find_syntax_map_by_ad_oid() as the syntax is already known
metze
2008-11-16 16:37:27 +01:00
Stefan Metzmacher
f0b3f98b4f s4: dsdb/schema: fix the equality and comment of DN+String syntax
metze
2008-11-08 08:02:28 +01:00
Jelmer Vernooij
23302413b3 Remove unused include param/param.h. 2008-10-24 16:37:56 +02:00
Jelmer Vernooij
37d885c51a Remove iconv_convenience argument from convert_string{,talloc}() but
make them wrappers around convert_string{,talloc}_convenience().
2008-10-24 14:26:46 +02:00
Jelmer Vernooij
09a63accb8 Move charset library to top level. 2008-10-24 00:06:35 +02:00
Jelmer Vernooij
6a89b59ca6 Add TALLOC_CTX pointer to strhex_to_data_blob for consistency with Samba
3.
2008-10-18 18:09:04 +02:00
Jelmer Vernooij
9565999755 Fix include paths to new location of libutil. 2008-10-11 21:31:42 +02:00
Andrew Bartlett
7d9f18609b Remove DESCRIPTION from generated schema lines.
This is not permitted in the AD aggregate schema, and more trouble
than it is worth in the OpenLDAP schema due to escaping issues.

Andrew Bartlett
2008-10-06 14:16:30 -07:00
Andrew Bartlett
c412a930ad Fix Domain Trust creation with Windows 2008 (and many other tools)
A dITConentRules attribute (unlike objectClasses) must not contain a
'SUP'.

The ADSI layer in Windows would download the whole schema, and
validate it.  Thanks to the team at Microsoft for very long debugging
session to find this.

Andrew Bartlett
2008-10-06 14:16:29 -07:00
Simo Sorce
508527890a Merge ldb_search() and ldb_search_exp_fmt() into a simgle function.
The previous ldb_search() interface made it way too easy to leak results,
and being able to use a printf-like expression turns to be really useful.
2008-09-23 18:17:46 -04:00
Andrew Bartlett
acf11ddd5f Fix failure to load the schema on read-only DB.
This also tries to simplify the logic in the schema -> @ATTRIBUTES and
@INDEXES code.

Andrew Bartlett
(This used to be commit a383b8bf88a5681f9c9c6839ba645c872a735051)
2008-09-12 07:45:28 +10:00
Andrew Bartlett
ab555eb199 Remove the complexity of transactions from the attributes-setting code.
I think it is just too complex and error prone to init and cancel
transactions during the module init code.  Instead, this isn't prone
to races as it will always achieve a steady state (eventually), and
most cases will never do the write.

Andrew Bartlett
(This used to be commit d60977cc7f89f89f34187f310c91d1ab7db6ccf2)
2008-09-11 20:51:26 +10:00
Andrew Bartlett
d30caa011c Make cn=aggregate output less pretty, by more like Win2008.
I'm not sure if this fixes bug #5713, as this is not consistantly
reproducably on my equipment.

Andrew Bartlett
(This used to be commit 02d6645efc84179efd652dd29ab32f62ae310147)
2008-09-11 12:36:58 +10:00
Andrew Bartlett
ffc9f85bfb Fix reversed test trying to fix bug #5713
(It instead ensured that only 'top' had a SUP keyword)

This clearly shows that 937b466266256d26d02cf8d48e72a26272fe8627 was
not a full or correct fix, but despite this I can no longer reproduce
the issue.  Further investigation is required.

Andrew Bartlett
(This used to be commit 95a9e9b6b84866cd300b1d19915627c6718b4dde)
2008-09-09 18:02:05 +10:00
Andrew Bartlett
e7cc705efb Fix bug #5713 by correcting the generated schema.
This bug is entitled 'Schema patch breaks interoperability with
Microsoft MMC consoles.', and it does so very spectacularly.

The issue is that we would include an entry:
objectClasses: ( 2.5.6.0 NAME 'top' SUP top ABSTRACT..

The MMC Active Directory Users and Computers snap in presumably
objected to the 'loop' this would present. The fixed entry is:

objectClasses: ( 2.5.6.0 NAME 'top' ABSTRACT

Thanks to Matthias Dieter Wallnöfer <mwallnoefer@yahoo.de> for his
persistance in getting me to look at this.

Andrew Bartlett
(This used to be commit 937b466266256d26d02cf8d48e72a26272fe8627)
2008-09-09 16:21:22 +10:00
Andrew Bartlett
3d3fc7bdaa Stop every ldb startup doing a write to the database.
Something in the search stack adds a distinguisedName record, which
isn't in the message we generate.  So we compare, fail and rewrite the
record - every time ldb starts up...

Andrew Bartlett
(This used to be commit 44775d1ed4a4b8edc66a06e2b3710aba6a0dd019)
2008-08-21 16:42:03 +10:00
Andrew Bartlett
fa3f3bee83 Set both attributes and indexes into the database on schema load.
This ensures that a rudementary schema is always present (for
bootstrapping), and that the indexes are maintained equal to the
schema (rather than hard-coded).

Andrew Bartlett
(This used to be commit 747d683b0d92c3b1cde67245d514977a2c87dc44)
2008-08-21 12:58:00 +10:00
Andrew Bartlett
6e5f2454ac Apply attributes (and their syntax) from the schema into ldb
This changes the @ATTRIBUTES record to be for bootstrapping only,
before we find the schema.

Andrew Bartlett
(This used to be commit 358477fcc041d5fb2e6ac5641c2f899cc49cfb69)
2008-08-20 15:46:46 +10:00
Andrew Bartlett
18e86ccf86 Split schema_init.c into smaller bits.
This should make schema manipulation a little easier to follow.

Andrew Bartlett
(This used to be commit 300ed83526e75d834bd23ddd1c1c26ebe2555e0f)
2008-08-20 13:22:16 +10:00
Andrew Bartlett
bb80a19714 Note the ldb syntax for attribute syntaxes in the table.
This includes additional Samba-specific syntaxes made available from
the ldif_handlers code.

This commit also changes some table to use #defines, to ensure
consistancy in other parts of the code.

Andrew Bartlett
(This used to be commit e26a5efd9a580ed3728e1f449e367b1cd4a73b5f)
2008-08-18 20:30:27 +10:00
Andrew Bartlett
dbde9cbea0 Fix segfaults when loading the schema fails.
(This used to be commit 9643db1a011edc95aa903908cec708b3a3566e71)
2008-08-18 20:20:24 +10:00
Andrew Bartlett
46c94dd8b2 Merge the two attribute syntax tables.
This merges the table once found in the oLschema2ldif tool (and moved
many times) with the table used for DRSUAPI.

The OpenLDAP schema map has been updated, to ensure that despite a
number of attributes being declared as OIDs, they are actually used as
strings (as they are actually LDAP class/attribute names).

Andrew Bartlett
(This used to be commit 61f2958c84beeedcf369ccdc02afed0c8055b108)
2008-08-18 10:16:45 +10:00
Andrew Bartlett
16112762e7 Generate the subSchema in cn=Aggregate
This reads the schema from the in-memory structure, when the magic
attributes are requested.  The code is a modified version of that used
in the ad2oLschema tool (now shared).

The schema_fsmo module handles the insertion of the generated result.

As such, this commit also removes these entries from the setup/schema.ldif

Metze's previous stub of this functionality is also removed.

Andrew Bartlett
(This used to be commit c7c32ec7b42bdf0f7b669644516438c71b364e60)
2008-08-15 20:40:57 +10:00
Andrew Bartlett
5971fd6b9c Fix warnings in new prefixMap code
(This used to be commit b8770a4fd8408473593fa4c6600bce056183958d)
2008-07-28 08:02:18 +10:00
Stefan Metzmacher
2385e33095 dsdb/schema: make more clear where we create the value for the new prefix mapping
metze
(This used to be commit c92eb8b776c17f12622837daeb1786862f380269)
2008-07-26 21:45:22 +02:00
Stefan Metzmacher
118ecc54ba dsdb/schema: dsdb_write_prefixes_to_ldb() should do the reverse of dsdb_read_prefixes_to_ldb()
metze
(This used to be commit 34ea9d4a0b1270a27412bf939d7e897a5d68d0a6)
2008-07-26 21:45:15 +02:00
Andrew Bartlett
1f285560bc Merge branch 'v4-0-test' of ssh://git.samba.org/data/git/samba into 4-0-local
(This used to be commit b12dd8ee5443ebfc204d1684f541d68ffb351197)
2008-07-25 11:58:51 +10:00
Andrew Bartlett
404846d887 Try to avoid a memory leak if we re-set the global schema
However, try also not to pull a schema out from under a running ldb
session.

Andrew Bartlett
(This used to be commit 7cf9b9dd0bb35835a7c6e9897ea99951a33c63c7)
2008-07-25 11:58:24 +10:00
Anatoliy Atanasov
05583308fe dsdb_create_prefix_mapping() implementation checks for existing prefix maping in ldb.
if one not found it creates a mapping for it and updates the prefixMap schema attribute in ldb.
(This used to be commit bbe895db7144b192981fad9ab6bbd3ebacb8d299)
2008-07-24 11:54:38 +10:00
Andrew Bartlett
b4691ad560 Use common code to fill in allowedAttributes in kludge_acl.
This code is now in common with ad2oLschema.

Andrew Bartlett
(This used to be commit 0a797388ca442c3ad4809888897b1c63b65a7fdf)
2008-07-11 15:11:32 +10:00
Andrew Bartlett
83d90d6cd6 Make ad2oLschema even simpler, by moving the heavy work into dsdb.
This will allow the kludge_acl and schema code to leverage the same
work.  (We might even get schema validation soon! :-)

Andrew Bartlett
(This used to be commit cecd04ce1f8ce2af2fb654b3abc1499092405d60)
2008-07-10 15:52:44 +10:00
Andrew Bartlett
7e851ada55 Move ad2oLschema and oLschema2ldif into Samba4, out of LDB
LDB does not know about nor process the AD schema, so it makes no
sense to have this tool there.  I've been changing it anyway, to use a
common schema manipulation library, and will enhance these links in
the future.

Andrew Bartlett
(This used to be commit c7704805b9a3541e4c8768278c8289b0aa6ed5e3)
2008-07-02 21:30:08 +10:00
Andrew Bartlett
fe174cc141 Fill in the auxiliary classes into the dsdb_schema.
Andrew Bartlett
(This used to be commit 615564b3daec0ffe17d05599b7ec8688619f5c65)
2008-07-02 15:19:49 +10:00
Stefan Metzmacher
2a918a353f schema_fsmo: prepare auto allocation of schema oid prefixes
This implements the logic in the schema_fsmo_add() function,
but it only calls a dummy dsdb_create_prefix_mapping() yet.

metze
(This used to be commit 9018b85e834de6714a78304ba1c7018838e30a61)
2008-07-01 17:58:47 +02:00
Stefan Metzmacher
db0a105aae schema_fsmo: move fsmo info into struct dsdb_schema
metze
(This used to be commit 8538d305c803268c712a90879f29a2a74ba0ef03)
2008-07-01 16:55:43 +02:00