Commit Graph

68 Commits

Author SHA1 Message Date
Pierangelo Masarati
fa8ee16d38 cleanup naming; minor fixes 2004-10-02 12:05:42 +00:00
Pierangelo Masarati
60d4aaba54 fix, rework and optimize search base; allow orphaned entries addition 2004-09-28 23:27:39 +00:00
Pierangelo Masarati
761f287943 multiple precision with BIGNUM/gmp/ulong 2004-09-26 22:58:47 +00:00
Pierangelo Masarati
b09663d784 consistently check return value of BindParam*; rework macros to ease parameter binding; always add data length to string values (may need to specialize for integers) 2004-09-25 18:11:06 +00:00
Pierangelo Masarati
0055675bfc improve candidate selection when filtering by objectClass 2004-09-22 23:17:32 +00:00
Pierangelo Masarati
53483e012d more definitive improvements; now write operations are consistent; plugged some more leaks/invalid frees; tests are more complete. IBM db2 doesn't pass write test because the entries are written in a different order; need to write a script that sorts the results... 2004-08-25 10:41:13 +00:00
Pierangelo Masarati
a8674f59d7 fix various issues; line up with new tests 2004-08-24 10:31:02 +00:00
Pierangelo Masarati
467524ef92 handle referrals correctly; allow to add suffix entry; fix multiple values add bug; cleanup 2004-08-21 09:38:08 +00:00
Pierangelo Masarati
d12fdece77 allow to search for "auxiliary" objectClasses (i.e. those in ldap_entry_objclasses); allow to return all objectClasses including "auxiliary"; various cleanup 2004-08-20 12:06:03 +00:00
Pierangelo Masarati
b94d5e17e2 rework op/rs structures to deal with opeartional attributes 2004-07-18 21:44:29 +00:00
Pierangelo Masarati
d1b692ceb4 clarify no limits in (internal) searches 2004-06-12 11:33:21 +00:00
Pierangelo Masarati
b76bfe6351 more cleanup 2004-04-20 00:26:42 +00:00
Pierangelo Masarati
93ff139915 split objectClass and attributeType mapping (should cure ITS#3091: Sybase compatibility) 2004-04-15 22:29:52 +00:00
Pierangelo Masarati
b703cfb008 Added provisions for a layer between the backend and the ODBC
for further mucking with data.  This can be of use in ill situations
where not all the required massaging can be done on data with SQL
by means of stored procedures, but overlays are called too early
and cannot be used to make data non LDAP compliant.
- only support for bidirectional DN mucking is provided right now
- support for other values mucking is planned
- write is not completely tested yet
- the API could change quite often; don't rely too much on it

other cleanup has been added.
2004-04-10 09:33:55 +00:00
Pierangelo Masarati
354372987f General improvements:
- There might be special cases that require the unique key to be a string
  (just ran into one); since this is not a generally useful change, it's
  hidden behind #defines.
- Added essential support for telephoneNumber match; the same infrastructure
  might be useful for other specialized matches (also regular matches should
  use it to handle multiple spaces and so!).
- Fixed dynamic backend initialization.
- Cleaned up search base DN normalization (works also if no uppercase function
  is available, using case exact matches).
2004-04-08 09:08:28 +00:00
Pierangelo Masarati
ec6a663820 reset SlapReply flags 2004-03-17 11:50:15 +00:00
Pierangelo Masarati
091246c6fd move limits evaluation to frontend 2004-03-08 18:12:45 +00:00
Pierangelo Masarati
4e57108991 allow search limits based on groups (ITS#2967) 2004-02-18 16:40:36 +00:00
Pierangelo Masarati
eeb9a07823 make file names more slapd-ish; add attribute inheritance to search attributes; precompile uppercased search 2004-01-19 22:13:15 +00:00
Pierangelo Masarati
6c27bf332c cleanup 2004-01-17 18:26:36 +00:00
Pierangelo Masarati
945f3fc9d0 cleanup 2004-01-17 18:07:43 +00:00
Pierangelo Masarati
c4a8f58a0d honor attributeType inheritance as well 2004-01-17 16:27:11 +00:00
Pierangelo Masarati
92a05ccf74 add extra level of parens only if required 2004-01-13 00:33:14 +00:00
Pierangelo Masarati
db395f2cd7 don't search if the filter is invalid; search also if an attribute is undefined for that objectclass, the filter may succeed anyway 2004-01-11 22:50:25 +00:00
Pierangelo Masarati
634324d5b9 allow multiple attribute definitions; honor ldap_entry_objclasses in filter; major cleanup 2004-01-10 10:42:44 +00:00
Pierangelo Masarati
354d8a183c honor objectclass inheritance in filters + some cleanup 2004-01-09 11:43:00 +00:00
Pierangelo Masarati
14da72a97a don't try to decide if uppercase based on LDAP matching rules 2004-01-09 01:53:03 +00:00
Kurt Zeilenga
3c598e89fb Happy new year 2004-01-01 19:15:16 +00:00
Kurt Zeilenga
fd5ded3afb notices and acknowledgements 2003-12-07 19:19:18 +00:00
Pierangelo Masarati
0bb807f4be fix format (ITS#2640?) 2003-07-15 10:57:12 +00:00
Pierangelo Masarati
9caafcb3d9 cleanup; improve error handling 2003-04-16 22:22:57 +00:00
Pierangelo Masarati
d564770156 clarify hasSubordinate filtering 2003-04-16 20:54:56 +00:00
Pierangelo Masarati
d9d5912383 use syntax and matching rules knowledge when preparing SQL filters (to reduce pseudo-normalization efforts and search candidate number) 2003-04-16 10:22:33 +00:00
Pierangelo Masarati
0c67c0493b more cleanup; small improvements 2003-04-15 23:11:31 +00:00
Pierangelo Masarati
1f400adca7 honor attributes request 2003-04-15 22:43:56 +00:00
Pierangelo Masarati
adf3744dd6 fix backsql new API; use berbuf instead of berval 2003-04-15 21:55:25 +00:00
Pierangelo Masarati
805894be1d fix context memory and more cleanup 2003-04-11 23:23:03 +00:00
Pierangelo Masarati
9e66d3d1f0 fix referrals return 2003-04-07 23:21:55 +00:00
Pierangelo Masarati
8995d8341f more new API ... back-sql should be OK 2003-04-03 00:35:16 +00:00
Pierangelo Masarati
09b92f0aeb more new API ... 2003-04-02 22:58:02 +00:00
Hallvard Furuseth
2bcb48361d Remove casts of AVL function pointers. 2002-12-14 22:25:52 +00:00
Pierangelo Masarati
59aea47963 improve limits handling and consistency; return "Admin limit exceeded" instead of "Unwilling to perform" 2002-11-21 12:58:59 +00:00
Pierangelo Masarati
76bf91f553 remove #ifdef SLAP_FILTER_HASSUBORDINATES 2002-11-10 19:48:36 +00:00
Pierangelo Masarati
7b3f889ec1 fix hasSubordinate filtering; now it can be safely turned on 2002-10-26 16:18:31 +00:00
Pierangelo Masarati
c8cfbca64d fix extendedMatch and approx hfilter andling; get rid of subtree_cond (argh, need to trim it from config and docs ...) 2002-08-31 10:39:23 +00:00
Pierangelo Masarati
a8bf275221 cleaner handling of unchecked limit support 2002-08-29 19:43:29 +00:00
Pierangelo Masarati
fbc11bd16a - added the capability to filter based on hasSubordinate attribute
to back-bdb, back-ldbm and back-sql (the latter with limitations);
- added handling of ":dn" attributes to extended rfc2254 filters
  and to matched value filter
- altered the behavior of get_mra() when a matching rule is given:
  now it checks whether it is compatible with the attribute syntax
  and, in case it is, the given mr is used.  In case of no type,
  the check is delayed when filtering
2002-08-29 10:55:48 +00:00
Pierangelo Masarati
f11c6b27e7 Final run of changes to back-sql; IBM db2 support has been tested.
Now related ITSes need be audited and possibly closed.

Enhancements:
  - re-styled code for better readability
  - upgraded backend API to reflect recent changes
  - LDAP schema is checked when loading SQL/LDAP mapping
  - AttributeDescription/ObjectClass pointers used for more efficient
    mapping lookup
  - bervals used where string length is required often
  - atomized write operations by committing at the end of each operation
    and defaulting connection closure to rollback
  - added LDAP access control to write operations
  - fully implemented modrdn (with rdn attrs change, deleteoldrdn,
    access check, parent/children check and more)
  - added parent access control, children control to delete operation
  - added structuralObjectClass operational attribute check and
    value return on search
  - added hasSubordinate operational attribute on demand
  - search limits are appropriately enforced
  - function backsql_strcat() has been made more efficient
  - concat function has been made configurable by means of a pattern
  - added config switches:
      - fail_if_no_mapping	write operations fail if there is no mapping
      - has_ldapinfo_dn_ru	overrides autodetect
      - concat_pattern		a string containing two '?' is used
				(note that "?||?" should be more portable
				than builtin function "CONCAT(?,?)")
      - strcast_func		cast of string constants in "SELECT DISTINCT					statements (needed by PostgreSQL)
      - upper_needs_cast	cast the argument of upper when required
				(basically when building dn substring queries)

Todo:
  - add security checks for SQL statements that can be injected (?)
  - re-test with previously supported RDBMs
  - replace dn_ru and so with normalized dn (no need for upper() and so
    in dn match)
  - implement a backsql_normalize() function to replace the upper()
    conversion routines
  - note that subtree deletion, subtree renaming and so could be easily
    implemented (rollback and consistency checks are available :)
  - implement "lastmod" and other operational stuff (ldap_entries table ?)
2002-08-23 08:54:08 +00:00
Pierangelo Masarati
05348c5fc5 CHANGES:
- now all write operations appear to work correctly with PostgeSQL 7.0
- all write operations have been made transactional (atomic writes to
  entries are committed separately only in case of complete^1 success
  while all other operations are rolled-back by default)
- more cleanup and handling of exceptional conditions

TODO:
- deen to check with different databases and more up to date versions
  of both unixODBC and PostgreSQL.

^1: attribute add/modify/delete operations silently succeed if the
    appropriate add/delete proc does not exist for each attribute;
    this may be correct to hide undesired/unimplemented correspondence
    between LDAP and SQL databases; however, a more appropriate
    LDAP behavior would be a failure with LDAP_UNAVAILABLE if a
    single write operation cannot be executed for such reason
2002-08-16 16:45:24 +00:00
Pierangelo Masarati
115408986c changes:
- re-style according to the style giudelines for better readability
- updated to recent frontend/backend API changes
- fixed a few quirks about normalization
- "optimized" a few memory allocation/string handling functions
- fixed a few quirks about add/modify (still have to look ad modrdn)

todo:
- there is still something broken (at least with PostgreSQL and IBM db2,
  the two RDBMS O have at hand) when adding
- move everything to struct bervals and try to save a few strlen
- try some LDAP/SQL syntax relation to use appropriate value bind if possible
- ...
2002-08-13 17:12:27 +00:00