GBase8d_C_API_08_添加条目_使用同步函数添加条目的例子
/*
* Copyright(c) 2004-2009, 南大通用数据技术股份有限公司. All rights reserved.
*
* 文件名称: ldap_add_s.c
* 说 明: 调用同步函数ldap_add_s(),添加一个新条目到LDAP Server。
*
* 当前版本: 5.0
* 作 者: GBase
* 完成日期: 2008.6.2
*/
/* Windows平台和UNIX/Linux平台分开包含头文件 */
#ifdef WIN32
#include "..\..\include\samples.h"
#else
#include "../../include/samples.h"
#endif
/*
* 函数名称: main
* 函数说明: 向LDAP Server同步添加一个条目。
* 输入参数:
* void
* 返回值 :
* 0: 成功
* -1: 失败
*/
int main(void)
{
LDAP *ld; /* LDAP 会话句柄 */
/* 添加的值 */
char *objectClass_values[] = {"top", "organization", "organizationalperson",
NULL};
char *cn_values[] = {"Richard Petersen","Gil Petersen", NULL};
char *telephoneNumber_values[] = {"02283719090", NULL};
char *postalCode_values[] = {"300071", NULL};
char *o_values[] = {"ITEC", NULL};
char *sn_values[] = {"Petersen", NULL};
/* 添加的属性和属性值,每种属性和属性值用一个LDAPMod类型数据表示 */
LDAPMod objectClassattr = {LDAP_MOD_ADD, "objectclass", objectClass_values};
LDAPMod cnattr = {LDAP_MOD_ADD, "cn", cn_values};
LDAPMod oattr = {LDAP_MOD_ADD, "o", o_values};
LDAPMod snattr = {LDAP_MOD_ADD, "sn", sn_values};
LDAPMod telephoneNumberattr = {LDAP_MOD_ADD, "telephoneNumber",
telephoneNumber_values};
LDAPMod postalCodeattr = {LDAP_MOD_ADD, "postalCode", postalCode_values};
LDAPMod *attrs[] = {&objectClassattr, &cnattr, &oattr, &snattr,
&telephoneNumberattr, &postalCodeattr, NULL};
int rc_bind; /* ldap_simple_bind_s返回结果 */
/* 添加DN */
char *dn = "cn=Richard Petersen, " BASE_DN;
int msgid;
/* 获得到LDAP server的会话句柄 */
ld = ldap_init(HOST, PORT);
/* 绑定LDAP server */
rc_bind = ldap_simple_bind_s(ld, BIND_DN, PASSWORD);
/* 绑定失败处理 */
if (rc_bind != LDAP_SUCCESS)
{
ldap_perror(ld, "ldap_simple_bind_s");
return -1;
}
/* 添加新条目 */
msgid = ldap_add_s(ld, dn, attrs);
/* 显示处理结果 */
ldap_perror(ld, "ldap_add");
ldap_unbind(ld);
return 0;
}