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

📄 slapadd.c

📁 开放源码的ldap系统
💻 C
字号:
/* $OpenLDAP: pkg/ldap/servers/slapd/tools/slapadd.c,v 1.5.2.10 2001/07/22 00:53:05 kurt Exp $ *//* * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved. * COPYING RESTRICTIONS APPLY, see COPYRIGHT file */#include "portable.h"#include <stdio.h>#include <ac/stdlib.h>#include <ac/ctype.h>#include <ac/string.h>#include <ac/socket.h>#include <ac/unistd.h>#include "slapcommon.h"intmain( int argc, char **argv ){	char		*buf;	int         lineno;	int         lmax;	int			rc = EXIT_SUCCESS;	slap_tool_init( "slapadd", SLAPADD, argc, argv );	if( !be->be_entry_open ||		!be->be_entry_close ||		!be->be_entry_put )	{		fprintf( stderr, "%s: database doesn't support necessary operations.\n",			progname );		exit( EXIT_FAILURE );	}	buf = NULL;	lmax = 0;	lineno = 0;	if( be->be_entry_open( be, 1 ) != 0 ) {		fprintf( stderr, "%s: could not open database.\n",			progname );		exit( EXIT_FAILURE );	}	while( ldif_read_record( ldiffp, &lineno, &buf, &lmax ) ) {		ID id;		Entry *e = str2entry( buf );		if( e == NULL ) {			fprintf( stderr, "%s: could not parse entry (line=%d)\n",				progname, lineno );			rc = EXIT_FAILURE;			if( continuemode ) continue;			break;		}		/* make sure the DN is valid */		if( dn_normalize( e->e_ndn ) == NULL || e->e_ndn[0] == '\0' ) {			fprintf( stderr, "%s: invalid dn=\"%s\" (line=%d)\n",				progname, e->e_dn, lineno );			rc = EXIT_FAILURE;			entry_free( e );			if( continuemode ) continue;			break;		}		/* make sure the DN is not empty */		if( e->e_ndn == '\0' ) {			fprintf( stderr, "%s: empty dn=\"%s\" (line=%d)\n",				progname, e->e_dn, lineno );			rc = EXIT_FAILURE;			entry_free( e );			if( continuemode ) continue;			break;		}		/* check backend */		if( select_backend( e->e_ndn, is_entry_referral(e) ) != be )		{			fprintf( stderr, "%s: database (%s) not configured to "				"hold dn=\"%s\" (line=%d)\n",				progname,				be ? be->be_suffix[0] : "<none>",				e->e_dn, lineno );			rc = EXIT_FAILURE;			entry_free( e );			if( continuemode ) continue;			break;		}		if( global_schemacheck ) {			/* check schema */			const char *text;			char textbuf[SLAP_TEXT_BUFLEN];			size_t textlen = sizeof textbuf;			rc = entry_schema_check( e, NULL, &text, textbuf, textlen );			if( rc != LDAP_SUCCESS ) {				fprintf( stderr, "%s: dn=\"%s\" (line=%d): %s\n",					progname, e->e_dn, lineno, text );				rc = EXIT_FAILURE;				entry_free( e );				if( continuemode ) continue;				break;			}		}		id = be->be_entry_put( be, e );		if( id == NOID ) {			fprintf( stderr, "%s: could not add entry dn=\"%s\" (line=%d)\n",				progname, e->e_dn, lineno );			rc = EXIT_FAILURE;			entry_free( e );			if( continuemode ) continue;			break;		}				if ( verbose ) {			fprintf( stderr, "added: \"%s\" (%08lx)\n",				e->e_dn, (long) id );		}		entry_free( e );	}	ch_free( buf );	be->be_entry_close( be );	if( be->be_sync ) {		be->be_sync( be );	}	slap_tool_destroy();	return rc;}

⌨️ 快捷键说明

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