X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=servers%2Fslapd%2Fcontrols.c;h=1900312250e856026279a1b2e7cc95c3ee3255e9;hb=89812424f4f844053cc2607e3e5e9382b0825bb8;hp=16a9e3fcdce63f07ef6a5b5df0fe5149c40d26ab;hpb=21796e671ab5c352ccefcd5bf6e054dcd6290472;p=openldap diff --git a/servers/slapd/controls.c b/servers/slapd/controls.c index 16a9e3fcdc..1900312250 100644 --- a/servers/slapd/controls.c +++ b/servers/slapd/controls.c @@ -1,13 +1,18 @@ /* $OpenLDAP$ */ -/* - * Copyright 1999-2003 The OpenLDAP Foundation. +/* This work is part of OpenLDAP Software . + * + * Copyright 1998-2004 The OpenLDAP Foundation. * All rights reserved. * - * Redistribution and use in source and binary forms are permitted only - * as authorized by the OpenLDAP Public License. A copy of this - * license is available at http://www.OpenLDAP.org/license.html or - * in file LICENSE in the top-level directory of the distribution. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted only as authorized by the OpenLDAP + * Public License. + * + * A copy of this license is available in the file LICENSE in the + * top-level directory of the distribution or, alternatively, at + * . */ + #include "portable.h" #include @@ -84,11 +89,9 @@ static struct slap_control control_defs[] = { { LDAP_CONTROL_VALUESRETURNFILTER, SLAP_CTRL_SEARCH, NULL, parseValuesReturnFilter, LDAP_SLIST_ENTRY_INITIALIZER(next) }, -#ifdef LDAP_CONTROL_PAGEDRESULTS { LDAP_CONTROL_PAGEDRESULTS, SLAP_CTRL_SEARCH, NULL, parsePagedResults, LDAP_SLIST_ENTRY_INITIALIZER(next) }, -#endif #ifdef LDAP_CONTROL_X_DOMAIN_SCOPE { LDAP_CONTROL_X_DOMAIN_SCOPE, SLAP_CTRL_FRONTEND|SLAP_CTRL_SEARCH, NULL, @@ -110,9 +113,11 @@ static struct slap_control control_defs[] = { { LDAP_CONTROL_SYNC, SLAP_CTRL_HIDE|SLAP_CTRL_SEARCH, NULL, parseLDAPsync, LDAP_SLIST_ENTRY_INITIALIZER(next) }, +#ifdef LDAP_CONTROL_MODIFY_INCREMENT { LDAP_CONTROL_MODIFY_INCREMENT, SLAP_CTRL_HIDE|SLAP_CTRL_MODIFY, NULL, parseModifyIncrement, LDAP_SLIST_ENTRY_INITIALIZER(next) }, +#endif { LDAP_CONTROL_MANAGEDSAIT, SLAP_CTRL_ACCESS, NULL, parseManageDSAit, LDAP_SLIST_ENTRY_INITIALIZER(next) }, @@ -696,8 +701,8 @@ static int parseProxyAuthz ( SlapReply *rs, LDAPControl *ctrl ) { - int rc; - struct berval dn = { 0, NULL }; + int rc; + struct berval dn = { 0, NULL }; if ( op->o_proxy_authz != SLAP_NO_CONTROL ) { rs->sr_text = "proxy authorization control specified multiple times"; @@ -746,8 +751,8 @@ static int parseProxyAuthz ( } rc = slap_sasl_getdn( op->o_conn, op, - ctrl->ldctl_value.bv_val, ctrl->ldctl_value.bv_len, - NULL, &dn, SLAP_GETDN_AUTHZID ); + ctrl->ldctl_value.bv_val, ctrl->ldctl_value.bv_len, + NULL, &dn, SLAP_GETDN_AUTHZID ); if( rc != LDAP_SUCCESS || !dn.bv_len ) { if ( dn.bv_val ) { @@ -755,6 +760,7 @@ static int parseProxyAuthz ( } rs->sr_text = "authzId mapping failed"; return LDAP_PROXY_AUTHZ_FAILURE; + } #ifdef NEW_LOGGING @@ -814,7 +820,6 @@ static int parseNoOp ( return LDAP_SUCCESS; } -#ifdef LDAP_CONTROL_PAGEDRESULTS static int parsePagedResults ( Operation *op, SlapReply *rs, @@ -895,7 +900,6 @@ static int parsePagedResults ( return LDAP_SUCCESS; } -#endif static int parseAssert ( Operation *op, @@ -993,10 +997,17 @@ static int parsePreRead ( } for( i=0; ildctl_iscritical ) { + rs->sr_text = dummy ? dummy : "postread control: unknown attributeType"; + return rc; + } } op->o_preread = ctrl->ldctl_iscritical @@ -1042,10 +1053,17 @@ static int parsePostRead ( } for( i=0; ildctl_iscritical ) { + rs->sr_text = dummy ? dummy : "postread control: unknown attributeType"; + return rc; + } } op->o_postread = ctrl->ldctl_iscritical