From e25627942e5c3a344043a00280629725fa4918ff Mon Sep 17 00:00:00 2001 From: Pierangelo Masarati Date: Mon, 10 Dec 2001 21:49:07 +0000 Subject: [PATCH] missing files (sorry) --- servers/slapd/back-monitor/bind.c | 82 +++++++++++++++++++++++++ servers/slapd/back-monitor/modify.c | 94 +++++++++++++++++++++++++++++ 2 files changed, 176 insertions(+) create mode 100644 servers/slapd/back-monitor/bind.c create mode 100644 servers/slapd/back-monitor/modify.c diff --git a/servers/slapd/back-monitor/bind.c b/servers/slapd/back-monitor/bind.c new file mode 100644 index 0000000000..910f3a1feb --- /dev/null +++ b/servers/slapd/back-monitor/bind.c @@ -0,0 +1,82 @@ +/* bind.c - monitor backend bind routine */ +/* + * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ +/* + * Copyright 2001 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + * + * Copyright 2001, Pierangelo Masarati, All rights reserved. + * + * This work has beed deveolped for the OpenLDAP Foundation + * in the hope that it may be useful to the Open Source community, + * but WITHOUT ANY WARRANTY. + * + * Permission is granted to anyone to use this software for any purpose + * on any computer system, and to alter it and redistribute it, subject + * to the following restrictions: + * + * 1. The author and SysNet s.n.c. are not responsible for the consequences + * of use of this software, no matter how awful, even if they arise from + * flaws in it. + * + * 2. The origin of this software must not be misrepresented, either by + * explicit claim or by omission. Since few users ever read sources, + * credits should appear in the documentation. + * + * 3. Altered versions must be plainly marked as such, and must not be + * misrepresented as being the original software. Since few users + * ever read sources, credits should appear in the documentation. + * SysNet s.n.c. cannot be responsible for the consequences of the + * alterations. + * + * 4. This notice may not be removed or altered. + */ + +#include "portable.h" + +#include + +#include +#include "back-monitor.h" + +/* + * At present, only rootdn can bind with simple bind + */ + +int +monitor_back_bind( + Backend *be, + Connection *conn, + Operation *op, + const char *dn, + const char *ndn, + int method, + struct berval *cred, + char** edn + +) +{ + struct monitorinfo *mi = (struct monitorinfo *) be->be_private; + +#ifdef NEW_LOGGING + LDAP_LOG(( "backend", LDAP_LEVEL_ENTRY, + "monitor_back_bind: dn: %s.\n", dn )); +#else + Debug(LDAP_DEBUG_ARGS, "==> monitor_back_bind: dn: %s\n%s%s", + dn, "", ""); +#endif + + if ( method == LDAP_AUTH_SIMPLE + && be_isroot_pw( be, conn, ndn, cred ) ) { + *edn = ch_strdup( be_root_dn( be ) ); + return( 0 ); + } + + send_ldap_result( conn, op, LDAP_INVALID_CREDENTIALS, + NULL, NULL, NULL, NULL ); + + return( 1 ); +} + diff --git a/servers/slapd/back-monitor/modify.c b/servers/slapd/back-monitor/modify.c new file mode 100644 index 0000000000..54ba7b3e85 --- /dev/null +++ b/servers/slapd/back-monitor/modify.c @@ -0,0 +1,94 @@ +/* modify.c - monitor backend modify routine */ +/* + * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ +/* + * Copyright 2001 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + * + * Copyright 2001, Pierangelo Masarati, All rights reserved. + * + * This work has beed deveolped for the OpenLDAP Foundation + * in the hope that it may be useful to the Open Source community, + * but WITHOUT ANY WARRANTY. + * + * Permission is granted to anyone to use this software for any purpose + * on any computer system, and to alter it and redistribute it, subject + * to the following restrictions: + * + * 1. The author and SysNet s.n.c. are not responsible for the consequences + * of use of this software, no matter how awful, even if they arise from + * flaws in it. + * + * 2. The origin of this software must not be misrepresented, either by + * explicit claim or by omission. Since few users ever read sources, + * credits should appear in the documentation. + * + * 3. Altered versions must be plainly marked as such, and must not be + * misrepresented as being the original software. Since few users + * ever read sources, credits should appear in the documentation. + * SysNet s.n.c. cannot be responsible for the consequences of the + * alterations. + * + * 4. This notice may not be removed or altered. + */ + +#include "portable.h" + +#include + +#include +#include + +#include "slap.h" +#include "back-monitor.h" +#include "proto-back-monitor.h" + +int +monitor_back_modify( + Backend *be, + Connection *conn, + Operation *op, + const char *dn, + const char *ndn, + Modifications *modlist +) +{ + int rc = 0; + struct monitorinfo *mi = (struct monitorinfo *) be->be_private; + Entry *matched; + Entry *e; + +#ifdef NEW_LOGGING + LDAP_LOG(( "backend", LDAP_LEVEL_ENTRY, + "monitor_back_modify: enter\n" )); +#else + Debug(LDAP_DEBUG_ARGS, "monitor_back_modify:\n", 0, 0, 0); +#endif + + /* acquire and lock entry */ + monitor_cache_dn2entry( mi, ndn, &e, &matched ); + if ( e == NULL ) { + send_ldap_result( conn, op, LDAP_NO_SUCH_OBJECT, + matched ? matched->e_dn : NULL, + NULL, NULL, NULL ); + if ( matched != NULL ) { + monitor_cache_release( mi, matched ); + return( 0 ); + } + } + + if ( !acl_check_modlist( be, conn, op, e, modlist )) { + rc = LDAP_INSUFFICIENT_ACCESS; + } else { + rc = monitor_entry_modify( mi, e, modlist ); + } + + send_ldap_result( conn, op, rc, NULL, NULL, NULL, NULL ); + + monitor_cache_release( mi, e ); + + return( 0 ); +} + -- 2.39.5