database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
ㆍLDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
LDAP Q&A 1185 게시물 읽기
No. 1185
[질문] vc에서 ldapadd할때 한글 문제
작성자
정원식
작성일
2001-11-06 23:15
조회수
5,626

add부분은 adsi에서 다시 netscape api로 바꾸어서 성공했습니다.

도움 주셔서 감사...^^

 

근데 한글을 입력할때 문제가 생기는데, slapd의 디버그

에러 메세지가 invalid data 네요...뭐..넘 간단한 메세지라 ...

 

netscape api의 함수중에 ldap_utf8copy() 이걸로 UTF8로 변환해서

LDAPMod **mods;

mods[ 5 ]->mod_op = 0;

mods[ 5 ]->mod_type = "description";

mods[ 5 ]->mod_values = description_values;

mods[ 6 ] = NULL;

 

이런식으로 샘플에 있는데로 했는데 일단 컴파일 에러는 없구요..

정작 ldapadd할때 에러로 떨어지네요..

어딘가에 문제가 있긴있을텐데, 이것저것 다 해봤는데도,

도무지 찾질 못하겠어요..

 

염치없는줄 알지만, 알려주시면 감사하겠습니다.

 

아래는 문제의 소스입니다. 혹시 보시면 감잡히실까해서리...

샘플을 보고 한것이기때문에 잘하고 있는지 어떤지도 잘모릅니다.-.-;;

다른 방법이 있다면 다른방법도 알려주시면 고맙겠습니다.

 

LDAP *ld;

LDAPMessage *result;

char *dn;

int i;

int rc;

int msgid;

int finished;

struct timeval zerotime;

LDAPMod **mods;

 

char *objectclass_values[] = { "top", "person", "organizationalPerson", NULL };

char *cn_values[] = { "subset2", NULL };

char *sn_values[] = { "ws, Jung", NULL };

char *givenname_values[] = { "정원식", NULL };

char *telephonenumber_values[] = { "+555 1212", NULL };

char *postalAddress_values[] = { "village 5 - 404", NULL };

char *description_values[] = { "한글아 들어가라!!", NULL };

 

TCHAR szObject[ 128 ];

WCHAR wszObject[ 128 ];

strcpy(szObjectDN, description_values[0]);

 

MultiByteToWideChar(CP_ACP, 0, szObjectDN , -1, wszObject, (strlen( szObject )+1)*sizeof(wszObject[0]));

wszObject[ wcslen ( wszObject ) ] = L'';

 

ldap_utf8copy( description_values[0], (const char *)wszObject );

 

zerotime.tv_sec = zerotime.tv_usec = 0L;

 

// Specify the DN we're adding

dn = "cn=subset2,ou=people,o=xxx.com";

 

// get a handle to an LDAP connection

if ( (ld = ldap_init( "ip", 389 )) == NULL )

{

perror( "ldap_init" );

return 1 ;

}

 

// authenticate to the directory as the Directory Manager

if ( ldap_simple_bind_s( ld, "cn=root,o=xxx.com", "xxxx" ) != LDAP_SUCCESS )//MGR_DN, MGR_PW ) != LDAP_SUCCESS )

{

ldap_perror( ld, "ldap_simple_bind_s" );

return 1 ;

}

 

// Construct the array of values to add

mods = ( LDAPMod ** ) malloc(( NMODS + 1 ) * sizeof( LDAPMod * ));

if ( mods == NULL )

{

fprintf( stderr, "Cannot allocate memory for mods array\n" );

}

for ( i = 0; i < NMODS; i++ )

{

if (( mods[ i ] = ( LDAPMod * ) malloc( sizeof( LDAPMod )))

== NULL )

{

fprintf( stderr, "Cannot allocate memory for mods element\n" );

return 1 ;

}

}

mods[ 0 ]->mod_op = 0;

mods[ 0 ]->mod_type = "objectclass";

mods[ 0 ]->mod_values = objectclass_values;

mods[ 1 ]->mod_op = 0;

mods[ 1 ]->mod_type = "cn";

mods[ 1 ]->mod_values = cn_values;

mods[ 2 ]->mod_op = 0;

mods[ 2 ]->mod_type = "sn";

mods[ 2 ]->mod_values = sn_values;

mods[ 3 ]->mod_op = 0;

mods[ 3 ]->mod_type = "telephonenumber";

mods[ 3 ]->mod_values = telephonenumber_values;

mods[ 4 ]->mod_op = 0;

mods[ 4 ]->mod_type = "postalAddress";

mods[ 4 ]->mod_values = postalAddress_values;

mods[ 5 ]->mod_op = 0;

mods[ 5 ]->mod_type = "description";

mods[ 5 ]->mod_values = description_values;

mods[ 6 ] = NULL;

 

 

// Initiate the add operation

if (( msgid = ldap_add_s( ld, dn, mods )) < 0 )

{

ldap_perror( ld, "ldap_add" );

free_mods( mods );

return 1 ;

}

[Top]
No.
제목
작성자
작성일
조회
1194[질문]LDAP에대한 관련제품들의 비교평가좀 부탁~
이현일
2001-11-07
4648
1197┕>Re: [질문]LDAP에대한 관련제품들의 비교평가좀 부탁~
이윤원
2001-11-09 00:05:15
5939
1193[질문]JAVA 로 Active Directory연결하는데 필요한것?
이단비
2001-11-07
4887
1189[도움요청]LDAP 종류?? [1]
권영식
2001-11-07
5518
1190┕>Re: [도움요청]LDAP 종류??
이수진
2001-11-07 16:29:46
6238
1185[질문] vc에서 ldapadd할때 한글 문제
정원식
2001-11-06
5626
1184[질문] scope에 대한 설명좀 부탁드립니다.
궁금이
2001-11-06
4865
1187┕>Re: [질문] scope에 대한 설명좀 부탁드립니다.
이수진
2001-11-07 15:01:53
5685
1183초보적인질문입니다. ( 인증서 삽입 )
김보람
2001-11-06
5490
1186┕>Re: 초보적인질문입니다. ( 인증서 삽입 )
이수진
2001-11-07 14:43:00
6231
1182LDAPResult 메시지는 무엇?
rionkim
2001-11-06
5262
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다