⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 key.c

📁 ldap服务器源码
💻 C
字号:
/* index.c - routines for dealing with attribute indexes *//* $OpenLDAP: pkg/ldap/servers/slapd/back-bdb/key.c,v 1.16.2.4 2007/01/02 21:44:00 kurt Exp $ *//* This work is part of OpenLDAP Software <http://www.openldap.org/>. * * Copyright 2000-2007 The OpenLDAP Foundation. * All rights reserved. * * 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 * <http://www.OpenLDAP.org/license.html>. */#include "portable.h"#include <stdio.h>#include <ac/string.h>#include <ac/socket.h>#include "slap.h"#include "back-bdb.h"#include "idl.h"/* read a key */intbdb_key_read(	Backend	*be,	DB *db,	DB_TXN *txn,	struct berval *k,	ID *ids,	DBC **saved_cursor,	int get_flag){	int rc;	DBT key;	Debug( LDAP_DEBUG_TRACE, "=> key_read\n", 0, 0, 0 );	DBTzero( &key );	bv2DBT(k,&key);	key.ulen = key.size;	key.flags = DB_DBT_USERMEM;	rc = bdb_idl_fetch_key( be, db, txn, &key, ids, saved_cursor, get_flag );	if( rc != LDAP_SUCCESS ) {		Debug( LDAP_DEBUG_TRACE, "<= bdb_index_read: failed (%d)\n",			rc, 0, 0 );	} else {		Debug( LDAP_DEBUG_TRACE, "<= bdb_index_read %ld candidates\n",			(long) BDB_IDL_N(ids), 0, 0 );	}	return rc;}/* Add or remove stuff from index files */intbdb_key_change(	Backend *be,	DB *db,	DB_TXN *txn,	struct berval *k,	ID id,	int op){	int	rc;	DBT	key;	Debug( LDAP_DEBUG_TRACE, "=> key_change(%s,%lx)\n",		op == SLAP_INDEX_ADD_OP ? "ADD":"DELETE", (long) id, 0 );	DBTzero( &key );	bv2DBT(k,&key);	key.ulen = key.size;	key.flags = DB_DBT_USERMEM;	if (op == SLAP_INDEX_ADD_OP) {		/* Add values */#ifdef BDB_TOOL_IDL_CACHING		if ( slapMode & SLAP_TOOL_QUICK )			rc = bdb_tool_idl_add( be, db, txn, &key, id );		else#endif			rc = bdb_idl_insert_key( be, db, txn, &key, id );		if ( rc == DB_KEYEXIST ) rc = 0;	} else {		/* Delete values */		rc = bdb_idl_delete_key( be, db, txn, &key, id );		if ( rc == DB_NOTFOUND ) rc = 0;	}	Debug( LDAP_DEBUG_TRACE, "<= key_change %d\n", rc, 0, 0 );	return rc;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -