Commit Graph

114 Commits

Author SHA1 Message Date
Hallvard Furuseth
93fbb87545 Give OperationBuffer normal struct members instead of using
LBER_ALIGNED_BUFFER(OPERATION_BUFFER_SIZE), as discussed in ITS#4078.
Add a corresponding SyncOperationBuffer in overlays/syncprov.c.
2007-05-18 23:54:26 +00:00
Kurt Zeilenga
da6d9eb046 happy new year 2007-01-02 20:00:42 +00:00
Howard Chu
45fbb173b7 Pass op to slap_mods_check() 2006-12-24 06:55:02 +00:00
Kurt Zeilenga
acbb5cf689 Happy new year! 2006-01-03 23:11:52 +00:00
Luke Howard
b6fffd1417 Add orr_modlist member to request structure, containing a list of
modifications to be applied by the backend atomically with a modify
RDN request.

Handle updating of RDN values in frontend.

Code that calls a backend's be_modrdn should call slap_modrdn2mods(op, rs)
before invoking the backend and cleanup with slap_mods_free( op->orr_modlist, 1 ).
See do_modrdn() for an example.
2006-01-01 09:23:24 +00:00
Luke Howard
d4c9c3b60e Use local SSF for internal SLAPI operations (probably need to do same
in connection_fake_init()) too)
2005-12-24 13:16:48 +00:00
Howard Chu
7dcb68f6fa Move CSN invocations to backends 2005-10-13 11:58:44 +00:00
Luke Howard
65ac57bcac Plug leaks 2005-08-01 15:23:12 +00:00
Luke Howard
71d76fbeba slap_mods2entry() should not zero pointers into the modifications
list because checking is performed on these, rather than the entry.

slap_mods_free() now takes an extra argument indicating whether to
free the values or not.
2005-08-01 02:16:02 +00:00
Luke Howard
6f0edd6c22 Call slap_mods2entry() in do_add(), so that global overlays (including
global SLAPI plugins) have access to op->ora_e.

Note that slap_mods2entry() is still called in fe_op_add() in order to
add any operational attributes.
2005-07-31 04:56:27 +00:00
Luke Howard
f5afe4fdc7 Back out previous commit, appears not to match frontend - still
investigating
2005-07-30 08:30:36 +00:00
Luke Howard
98e49eca60 slapi_add_internal_pb() should not set op->ora_e, this is done by frontend 2005-07-30 08:19:26 +00:00
Luke Howard
38f10e1f63 PBlock SlapReply needs to be a pointer into that supplied by caller
for overlay ops
2005-07-27 10:09:44 +00:00
Luke Howard
f87a07910f Support object extensions on internal SLAPI operations 2005-07-26 09:56:18 +00:00
Luke Howard
48c951007a Harmonize Slapi_PBlock field nomenclature with rest of slapd 2005-07-25 11:13:15 +00:00
Luke Howard
4836f2a5c5 Heads up: fix for SLAPI compliance: when calling slapi_pblock_set() with
an integer or long integer parameter, the value argument is a pointer to
the integeral value rather than the value itself.
2005-07-25 10:53:45 +00:00
Luke Howard
93540e339a Use SLAPI_LOG_OPERATION instead of private flag 2005-07-25 10:24:02 +00:00
Luke Howard
ddbbbe2348 more SLAPI cleanups 2005-07-25 10:06:03 +00:00
Luke Howard
43ec05a45a use slapi_pblock_delete_param() 2005-07-25 05:03:09 +00:00
Luke Howard
8d48005d83 Careful not to disturb result codes 2005-07-25 04:43:07 +00:00
Luke Howard
4c513d05f7 plug leak 2005-07-25 04:39:58 +00:00
Luke Howard
48d1046a35 Make slapi_pblock directly overlaid on operation/connection/slapreply
structures

This removes a lot of copying. It's still a bit tricky where the internal
slapd data types are different to those exposed via SLAPI (eg. modifications)
or the internal values are not allocated on the heap (eg. controls). Some
copying is necessary in these cases.
2005-07-25 04:19:33 +00:00
Luke Howard
69230b2b9f more slapi cleanup 2005-07-23 13:21:28 +00:00
Luke Howard
92df34238a Cleanup of SLAPI internal operation code; use frontendDB rather than
duplicating frontend code, and o->o_callback rather than overriding
entry send clalbacks.

Support for SLAPI internal operation plugins.
2005-07-23 12:03:13 +00:00
Pierangelo Masarati
02870e815b renamed slapi_int_init_connection => slapi_int_connection_init for consistency; blind fix to ITS#3879 2005-07-22 16:57:20 +00:00
Luke Howard
cb786e3330 Remove SLAPI pblock from operation structure 2005-07-22 07:54:17 +00:00
Luke Howard
0b631c0d2f fix error in previous commit 2005-07-22 05:38:32 +00:00
Luke Howard
44bb946436 More use of SLAPI accessor macros 2005-07-22 05:33:47 +00:00
Luke Howard
de10624dc3 Use accessor macros for SLAPI parameter blocks, should make it
easier to move into overlay private data
2005-07-22 05:26:15 +00:00
Luke Howard
c477ad064f Set SLAPI_REQUESTOR_ISROOT for internal operations 2005-07-22 05:14:42 +00:00
Luke Howard
e2853c98f8 more cleanups 2005-07-21 18:17:57 +00:00
Luke Howard
f9633806da more cleanups 2005-07-21 18:16:32 +00:00
Luke Howard
ffe20229dc Move most of SLAPI frontend into overlay 2005-07-21 16:35:20 +00:00
Luke Howard
7129f9ef91 Factor out common code in SLAPI internal ops
Allow internal operation pblock to forward connection/operation parameters
2005-07-21 08:34:25 +00:00
Luke Howard
d6d202693d Fix order of statements in SLAPI internal modrdn implementation 2005-07-20 08:19:22 +00:00
Luke Howard
25ae11ccd9 Unset intop callback parameters before they go out of scope 2005-07-20 04:24:02 +00:00
Luke Howard
4832af0a50 Fix callback API for cast safety
Copy controls returned by backend to pblock before they go out of scope
2005-07-19 08:39:56 +00:00
Luke Howard
9e9c4b5397 Implement more of SLAPI 5.x - all SLAPI internal operations now take pblocks
as the canonical argument (wrappers for old APIs are provided)
2005-07-19 06:48:45 +00:00
Hallvard Furuseth
d449c9d08b Silence "unused variable" warnings 2005-07-14 19:18:55 +00:00
Howard Chu
8f58409749 Add SLAP_MOD_INTERNAL flag to Modifications, allow internal ops to bypass
ACL checks when modifying user-modifiable attributes as non-root user.
2005-06-04 09:44:39 +00:00
Kurt Zeilenga
18c3f9e093 Add manage obsolete attributes capability. 2005-05-13 23:51:43 +00:00
Luke Howard
82d3c103e9 Support LDAP_MOD_INCREMENT in slapi_modify_internal() 2005-01-27 06:20:31 +00:00
Kurt Zeilenga
dc0eacd40b Happy New Year! 2005-01-01 20:49:32 +00:00
Pierangelo Masarati
2f5e17d056 improve usability of global ovrlays for write operations; may need to anticipate SLAPI accordingly. More work needed for add (overlays need to understand they're global and call slap_mods2entry() explicitly) 2004-12-11 17:48:15 +00:00
Howard Chu
916e931065 Always exclude subordinates from top-level ops so glue overlay can
intercept. Now a single syncprov works over the entire glued context.
2004-12-04 19:26:22 +00:00
Howard Chu
dbe5e00929 Use SLAP_CONTROL_* constants 2004-11-23 16:02:07 +00:00
Howard Chu
7e87f54716 Revert ITS#3353 patch, it needs to be reworked. 2004-10-06 05:51:38 +00:00
Pierangelo Masarati
bf8e890ea7 fix global configuration patch (ITS#3353) 2004-10-04 20:57:14 +00:00
Jong Hyuk Choi
98dc97bcb9 memory leak fixes 2004-09-11 02:02:09 +00:00
Luke Howard
ea6f5bad65 This patch fixes some subtle interactions between SLAPI and syncrepl. Due to
SLAPI always assigning connection and operation IDs of zero for internal
operations, such operations would cause a stale contextCSN to be returned from
slap_get_commit_csn(). As a result, SLAPI internal updates would be invisible
to replicas until an external update was made. Also, SLAPI internal operations
never called slap_graduate_commit_csn() which leaked pending CSNs.

Also included in this patch is a general cleanup of some of the SLAPI code.

Note that we need to use a separate mutex on conn_nextid to avoid a deadlock
where a post-operation plugin tries to acquire connections_mutex, having locked
the per-connection mutex, while the listener thread tries to acquire the
per-connection mutex (having locked connections_mutex). connection.c needs to
be fixed to acquire mutexes in the same order.
2004-08-25 11:52:55 +00:00