Commit Graph

59 Commits

Author SHA1 Message Date
Dmitry Timoshkov 07b18a7672 wldap32: Locally cache "supportedControl" rootDSE attribute, and check it in ldap_set_option(LDAP_OPT_SERVER_CONTROLS).
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-03 17:02:12 +02:00
Dmitry Timoshkov ab54779c61 adsldp: Map 1.2.840.113556.1.4.907 to ADSTYPE_NT_SECURITY_DESCRIPTOR.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-02 11:42:51 +02:00
Dmitry Timoshkov af1c34294d adsldp: Add support for IDirectorySearch::SetSearchPreference(ADS_SEARCHPREF_SECURITY_MASK).
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-02 11:42:46 +02:00
Dmitry Timoshkov 0d49dcd39f adsldp: Forward IDirectoryObject::QueryInterface() to parent.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-02 11:42:40 +02:00
Dmitry Timoshkov 59c7e1977c adsldp: Add IDirectoryObject stubs.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-01 20:59:04 +02:00
Dmitry Timoshkov 5a6f56d3a2 adsldp: Sort the attribute types array.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 17:26:52 +02:00
Dmitry Timoshkov 6591ddd58c adsldp: Ignore attribute definitions without NAME.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 17:26:20 +02:00
Dmitry Timoshkov 4cdc333677 adsldp: Initialize also pADsValues->dwType field.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 17:26:16 +02:00
Dmitry Timoshkov f0f24b4be4 adsldp: Store original LDAP values pointer in hReserved.
AD Explorer depends on this.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 17:26:12 +02:00
Dmitry Timoshkov 6ae2d05fb7 adsldp: Blacklist serverless and rootDSE connections in QueryInterface(&IID_IDirectorySearch).
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 17:25:59 +02:00
Dmitry Timoshkov efe7c309cd adsldp/tests: Handle more cases of ERROR_DS_SERVER_DOWN.
Probably server protects itself from quick successive connections
from the same client and returns LDAP_SERVER_DOWN.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 23:10:07 +02:00
Dmitry Timoshkov 57f3d503c4 adsldp: Fix IDirectorySearch::GetColumn() behaviour for not found case.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 23:10:07 +02:00
Dmitry Timoshkov 21959bf00a adsldp: Implement IDirectorySearch::FreeColumn().
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 23:10:06 +02:00
Dmitry Timoshkov 7f98809173 adsldp: Map 1.3.6.1.4.1.1466.115.121.1.7 to ADSTYPE_BOOLEAN.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 23:10:06 +02:00
Dmitry Timoshkov 5a6c8359c9 adsldp: Map 1.3.6.1.4.1.1466.115.121.1.15 to ADSTYPE_CASE_IGNORE_STRING.
According to RFC4517 1.3.6.1.4.1.1466.115.121.1.15 is a Directory string
which should map to one of TeletextString, PrintableString or UniversalString.

Something else should map to ADSTYPE_NT_SECURITY_DESCRIPTOR.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 23:10:06 +02:00
Dmitry Timoshkov 12d1d8aaf4 adsldp: Map 1.3.6.1.4.1.1466.115.121.1.38 to ADSTYPE_CASE_IGNORE_STRING.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 23:10:06 +02:00
Dmitry Timoshkov fd3ef3f545 adsldp: Add support for NAME token with multiple entries.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 23:10:06 +02:00
Dmitry Timoshkov 2c86658e6a adsldp: Require attribute definition to be properly terminated.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 23:10:06 +02:00
Dmitry Timoshkov 1a27b6e527 adsldp: Recognize and skip not supported schema tokens.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 23:10:06 +02:00
Dmitry Timoshkov 5875a659c1 adsldp: Add initial version of attribute schema parser.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-27 21:16:13 +01:00
Dmitry Timoshkov dbe8d61c70 adsldp: Add more traces.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-27 21:16:13 +01:00
Dmitry Timoshkov 032d848ac4 adsldp/tests: Add some tests for IDirectorySearch.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 18:37:08 +01:00
Dmitry Timoshkov e5ecd3b465 adsldp: Add support for special column name "ADsPath" to IDirectorySearch::GetColumn().
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 18:37:02 +01:00
Dmitry Timoshkov 889e66c2fe adsldp: Implement IDirectorySearch::GetColumn().
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 18:36:43 +01:00
Dmitry Timoshkov e53a00944e adsldp: Add special column "ADsPath" at the end of the entry.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 18:36:38 +01:00
Dmitry Timoshkov 3adc9c5b21 adsldp: Implement IDirectorySearch::GetNextColumnName().
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 18:36:34 +01:00
Dmitry Timoshkov d2ab8296d4 adsldp: Improve IDirectorySearch::GetNextRow() end of entries detection logic.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 18:36:28 +01:00
Dmitry Timoshkov 7758d7a11c adsldp: Add a trace.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 18:36:20 +01:00
Dmitry Timoshkov 381b1396b9 adsldp: Fix a memory leak.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 18:36:14 +01:00
Dmitry Timoshkov 093616eede adsldp: Implement IDirectorySearch::GetNextRow().
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 19:27:43 +01:00
Dmitry Timoshkov 6f14d858de adsldp: Implement IDirectorySearch::GetFirstRow().
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 19:27:39 +01:00
Dmitry Timoshkov 17be7f3dad adsldp: Implement IDirectorySearch::CloseSearchHandle().
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 19:27:36 +01:00
Dmitry Timoshkov a083fdab10 adsldp: Implement IDirectorySearch::ExecuteSearch().
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 19:27:33 +01:00
Dmitry Timoshkov 88678882aa adsldp: Add support for ADS_SEARCHPREF_SEARCH_SCOPE to IDirectorySearch::SetSearchPreference().
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 19:27:27 +01:00
Dmitry Timoshkov 66897b455c adsldp: Add IDirectorySearch stubs.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 19:27:21 +01:00
Dmitry Timoshkov 2512bf2c1d adsldp: Forward IADsOpenDSObject::AddRef/Release to base object.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 19:27:15 +01:00
Dmitry Timoshkov 0662aaaddc adsldp: Turn FIXME into a TRACE for IADsOpenDSObject::OpenDSObject().
It's in a good enough state already.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 19:27:10 +01:00
Dmitry Timoshkov fa4820c203 adsldp: Add support for multi-valued attributes to IADs::Get().
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-24 12:39:24 +01:00
Dmitry Timoshkov afeb8edd9d adsldp: Implement IADs::Get().
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-24 12:39:24 +01:00
Dmitry Timoshkov 9c3ca265ad adsldp: Implement IADs::GetInfoEx().
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-24 12:39:24 +01:00
Dmitry Timoshkov 47982e3611 adsldp: Implement IADs::GetInfo().
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-24 12:39:24 +01:00
Dmitry Timoshkov 791791931c adsldp: Add support for IADsOpenDSObject::OpenDSObject(ADS_SECURE_AUTHENTICATION).
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-24 12:36:09 +01:00
Dmitry Timoshkov 18d7356f0c activeds: Implement ADsGetObject.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-19 22:09:32 +01:00
Dmitry Timoshkov 2a1841f5cf activeds: ADsOpenObject should return E_FAIL by default.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-19 22:09:32 +01:00
Dmitry Timoshkov 3eb581db43 adsldp: Bind to an LDAP server after connection.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-19 22:09:32 +01:00
Dmitry Timoshkov e396c01a2b adsldp: If secure open object fails fallback to simple bind.
This matches ADsGetObject() behaviour described in MSDN.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-19 22:09:32 +01:00
Dmitry Timoshkov 631813bf1a adsldp: Implement IParseDisplayName::ParseDisplayName.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-11 22:58:16 +01:00
Dmitry Timoshkov af92668b23 adsldp: Implement IADsOpenDSObject::OpenDSObject.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-11 22:58:16 +01:00
Dmitry Timoshkov 9f20b7f483 adsldp: Add IParseDisplayName stub interface.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-11 22:58:16 +01:00
Dmitry Timoshkov 0bb5b0f21e adsldp/tests: Add some tests for LDAPNamespace.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-13 16:44:24 +01:00