1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-04 17:47:26 +03:00

464 Commits

Author SHA1 Message Date
Andrew Bartlett
e9f4dbce64 s4:schema Add the GUID to each defaultObjectCategory when loading from LDIF
This makes these full extended DNs, so we set the right values into
the database, even before we actually set the schema objects
themselves.

Andrew Bartlett
2009-11-17 10:38:03 +11:00
Andrew Bartlett
39b8f31d66 s4:dsdb Load objectGUID and extended DN defaultObjectCategory into the schema
The load of defaultObjectCategory as an extended DN means we need to
use the common parsing functions I just split out, rather than the
GET_DS_DN macro.

The objectGUIDs are loaded so that we can create the extended DN when
we load from LDIF (and are loaded for the other cases for
consistency).

Also adapt callers to API changes needed for common parsing code

Andrew Bartlett
2009-11-17 10:38:02 +11:00
Andrew Bartlett
58ded23b86 s4:dsdb Break up 'parse a DN from DRSUAPI' into a subfunction
This should make it easier to call this function from the DRS schema
load code, rather than duplicate it.

(we may do the same with other functions in future).

Andrew Bartlett
2009-11-17 10:38:01 +11:00
Andrew Bartlett
a9f6a56227 s4:dsdb/schema Add more unit tests for DN+Binary syntaxes 2009-11-12 16:34:43 +11:00
Andrew Bartlett
081d57345f s4:dsdb/schema Allow a schema set when bound against a remote LDAP server 2009-11-12 16:34:15 +11:00
Andrew Bartlett
2a601719f2 s4:dsdb Add expected value tests for most DRS syntax conversions
I've left out those for which I could not find an expected value in my
default Windows 2003 server's database, and the values that rely on
the current prefix map at the time.

Andrew Bartlett
2009-11-12 16:34:12 +11:00
Andrew Bartlett
9ba1870fb9 s4:Fix regression in dsdb_dn code - all parses of the DN would be rejected
This is most likely the cause of the DRS replication failures I
observed with my changes.

Andrew Bartlett
2009-11-12 16:34:11 +11:00
Andrew Bartlett
d6563801d1 s4:dsdb/schema Simplify schema loading from ldb messages
It turns out that we always add the class/attribute to the schema.
2009-11-12 16:34:09 +11:00
Andrew Bartlett
f0d43e9e56 s4:dsdb Use new dsdb_dn code in LDB modules and Samba4 schema
This converts the code from using the binary DN code in ldb_dn to
using a special Samba-specfic wrapper around ldb_dn.

We also use the dsdb_dn code for DN+Binary and DN+String comparisons
(changed from treating them as Binary blobs)

Andrew Bartlett
2009-11-12 16:34:04 +11:00
Kamen Mazdrashki
0f531e3a2a s4/drs: Refactor to be more SAMBA.Coding style compliant
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-11-06 14:05:50 +01:00
Kamen Mazdrashki
c236bb537f s4/drs: Remove unused structures and functions
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-11-06 14:05:50 +01:00
Kamen Mazdrashki
db82023af2 s4/drs: remove unused num_prefixes and prefixes from dsdb_schema
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-11-06 14:05:49 +01:00
Kamen Mazdrashki
b9dd44ee39 s4/drs: dsdb_create_prefix_mapping() refactored
TODO: this function may be refactored further.
Actually we don't need to look up for the OID supplied,
but just call sdb_schema_pfm_make_attid() - it will
search for the OID anyway and add it if necessary

Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-11-06 14:05:48 +01:00
Kamen Mazdrashki
9405377a70 s4/drs: prefixMap lookup by full_OID implementation
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-11-06 14:05:48 +01:00
Kamen Mazdrashki
1aae751a68 s4/drs: dsdb_write_prefixes_from_schema_to_ldb() refactored
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-11-06 14:05:47 +01:00
Kamen Mazdrashki
82539b7d66 s4/drs: dsdb_read_prefixes_from_ldb() refactored
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-11-06 14:05:46 +01:00
Kamen Mazdrashki
9da33436e4 s4/drs: refactor dsdb_load_oid_mappings_ldb() to use _dsdb_prefixmap_from_ldb_val()
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-11-06 14:05:45 +01:00
Kamen Mazdrashki
5381d8d157 s4/drs: Load prefixMap from ldb_val moved in separate function
It is to be used later in several places when we need such conversion.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-11-06 14:05:45 +01:00
Kamen Mazdrashki
fc05386c0d s4/drs: dsdb_schema_pfm_from_drsuapi_pfm() to accept partial drsuapi_prefixMap
"partial drsuapi_prefixMap" is a prefix map without last entry
being special - i.e. map that does not contains schema_info entry.

Test for dsdb_schema_pfm_from_drsuapi_pfm() were also extended to
cover both 'full' and 'partial' map conversion.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-11-06 14:05:44 +01:00
Kamen Mazdrashki
ba4d87f817 s4/drs: dsdb_map_int2oid() replaced by dsdb_schema_pfm_oid_from_attid()
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-11-06 14:05:43 +01:00
Kamen Mazdrashki
01302b8202 s4/drs: dsdb_map_oid2int() replaced by dsdb_schema_pfm_make_attid()
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-11-06 14:05:43 +01:00
Kamen Mazdrashki
ddab9d1fe7 s4/drs: dsdb_verify_oid_mappings_drsuapi() replaced by dsdb_schema_pfm_contains_drsuapi_pfm()
dsdb_schema_pfm_contains_drsuapi_pfm() is part of reimplemented
prefixMap interface.

This name was choosen to clearly show, that this a week verification
in case we want to determine if remote schema is changed.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-11-06 14:05:42 +01:00
Kamen Mazdrashki
28b6eb9494 s4/drs: dsdb_get_oid_mappings_drsuapi() to use new prefixMap interface
dsdb_get_oid_mappings_drsuapi() just need to call
dsdb_drsuapi_pfm_from_schema_pfm() to get filled-in DRSUAPI
prefixMap.

Perhaps it won't be bad to rename this function to have
more expressive name in the future

Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-11-06 14:05:42 +01:00
Kamen Mazdrashki
a83385303b s4/drs: dsdb_load_oid_mappings_drsuapi() -> dsdb_load_prefixmap_from_drsuapi()
Also, dsdb_load_oid_mappings_drsuapi() was reimplemented to use
dsdb_schema_pfm_from_drsuapi_pfm() function to load
drsuapi_prefixMap into schema->prefixmap

Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-11-06 14:05:41 +01:00
Kamen Mazdrashki
3729272f0a s4/drs: dsdb_schema uses dsdb_schema_prefixmap definition
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-11-06 14:05:41 +01:00
Kamen Mazdrashki
b54ec122b2 s4/drs: Move schema_prefixMap allocation in separate function
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-11-06 14:05:40 +01:00
Kamen Mazdrashki
6210237b5a s4/drs: schema_prefixMap to/from drsuapi_prefixMap conversion implementation
Along with this, dsdb_schema_pfm_contains_drsuapi_pfm()
function is implemented to replace previous implementation
for dsdb_verify_oid_mappings_drsuapi().
Name of the function clearly implies how week this verification is,
as currently it is used to indicate "Schema modified on remote"
condition.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-11-06 14:05:39 +01:00
Kamen Mazdrashki
3fe4310df7 s4/drs: Implement binary-oid-lookup into prefixMap
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-11-06 14:05:38 +01:00
Kamen Mazdrashki
f4475368f0 s4/drs: Move making of partial-binary-oid to a separate function
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-11-06 14:05:37 +01:00
Kamen Mazdrashki
39ab7b8ebd s4/drs: Fix memory leek in prefixMap
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-11-06 14:05:37 +01:00
Nadezhda Ivanova
1fc47e1228 Version 1.0 of the directory service acls module.
At this point, support for checks on LDAP add, delete, rename and modify.
Old kludge_acl is still there to handle the searches.
This module is synchronous as the async version was impossible to debug,
will be converted to async after some user testing.
2009-11-05 17:34:12 +02:00
Endi S. Dewata
8097280b46 s4 - Mapped AD schema to existing FDS schema. 2009-11-02 16:36:53 +11:00
Kamen Mazdrashki
9393d94ad4 s4/drs: prefixMap main interface implementation
Currenly implemented functions are:
dsdb_schema_pfm_new(), dsdb_schema_pfm_make_attid()
and dsdb_schema_pfm_oid_from_attid()
2009-10-21 11:49:51 +03:00
Kamen Mazdrashki
4dc90c0851 s4/drs(tort): Unit test for prefixMap implementation.
Currenly those tests cover only the main part of the interface,
i.e. dsdb_schema_pfm_new(), dsdb_schema_pfm_make_attid()
and dsdb_schema_pfm_oid_from_attid()
2009-10-21 11:49:50 +03:00
Kamen Mazdrashki
784e0c199e s4/drs: prefixMap module initial definition 2009-10-16 12:54:14 +03:00
Kamen Mazdrashki
40a8a22684 s4/drs: Propagate redefinition of drsuapi_DsReplicaOID into code base
The biggest change is that 'oid' field is transmited in binary format.
Also the field name is changed to 'binary_oid' so that
field format to be clear for callers.

After those changes, Samba4 should work the way it works before -
i.e. no added value here but we should not fail when
partial-oid is part of prefixMap transmited from Win server.

Also, thre is a bug in this patch - partial-binary-OIDs are
not handled correctly. Partial-binary-OIDs received during
replication will be encoded, but not handled correctly.
2009-10-16 12:54:14 +03:00
Andrew Bartlett
d511d889a0 s4:schema Add some error checking to the schema load 2009-10-12 16:51:03 +11:00
Andrew Bartlett
aee3c19015 s4:dsdb Make dsdb_read_prefixes_from_ldb static 2009-10-12 16:51:03 +11:00
Andrew Bartlett
c9f70fc3c7 s4:dsdb Search for the schema with dsdb_module_search(), in schema_fsmo
This avoids using an ldb_search(), which would run from the top of the
module stack.  This will help us load the schema before the partitions
are initialised.

Andrew Bartlett
2009-10-12 16:51:02 +11:00
Matthias Dieter Wallnöfer
cb143eafef s4:schema_inferiors - Fix wrong check 2009-10-03 15:49:40 +02:00
Andrew Bartlett
0e028fcb7d s4:dsdb add systemPossibleInferiors to schema code
This allows us to figure out what the system can add, which will not
be in possibleInferiors due to the systemOnly flag.

Andrew Bartlett
2009-10-03 12:37:55 +02:00
Andrew Tridgell
fd22e03047 s4-ldb: Add support for binary blobs in DNs
AD has the concept of a DN prefixed with B:NN:XXXXXX: that contains a
binary blob. We need to support those in order to give correctly
formatted binary blobs for things like wellKnownObjects

This implementation is not ideal, as it allows for binary blobs on all
DNs, whereas it should only allow them on those with a syntax of
2.5.5.7. We should clean this up in the future, but meanwhile this
implementation at least gets us a working DC join of w2k8 to s4.

This patch also uses a static function for marking DNs as invalid,
which is very useful when debugging this code, as you can break on it
in gdb.
2009-10-02 12:03:05 +10:00
Andrew Tridgell
075f9e2c29 s4-dsdb: cope with windows sending extra pad bytes 2009-09-23 14:01:30 -07:00
Andrew Tridgell
bb3bdb3a62 s4-ldb: added a bunch more debug for DC join
These additional debug messages were added to help us track down
w2k8->s4 domain join
2009-09-22 17:10:06 -07:00
Andrew Bartlett
399c7160d5 s4:ldb Add 'single-value' support to LDB.
This is currently only triggered via Samba4's schema code.
2009-09-21 20:50:26 -07:00
Nadezhda Ivanova
9e85192e64 Merge branch 'master' of git://git.samba.org/samba 2009-09-21 17:29:28 -07:00
Nadezhda Ivanova
10c6f3f71a Initial Implementation of the DS objects access checks.
Currently disabled. The search will be greatly modified,
also the object tree stuff will be simplified.
2009-09-21 17:27:50 -07:00
Andrew Tridgell
ac56fed2f4 s4-schema: don't trace the schema load (too verbose) 2009-09-21 15:27:05 -07:00
Anatoliy Atanasov
663fe5530f Handle dsdb_class_by_lDAPDisplayName returned values in schema_inferiors.c 2009-09-19 15:42:44 -07:00
Andrew Tridgell
f1ce4f9945 s4-dsdb: use DLIST_ADD() not DLIST_ADD_END()
Using DLIST_ADD_END() to construct a long list is very inefficient (it
is O(n^2). These lists are not ordered, so using DLIST_ADD() is much
better.
2009-09-15 11:48:12 -07:00