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 2041 게시물 읽기
No. 2041
C API 연동시 bind 에러
작성자
윤성중
작성일
2004-04-02 17:14
조회수
7,939

많은 분들의 도움으로 어렵게 ldap을 설치했습니다.

그리고 이번에는 C API와 연동하여 ldap을 사용 하려고 했는데

에러가 발생했습니다. 에러는

[root@rose ldap]# gcc test.c -lldap         

[root@rose ldap]# ./a.out

 Type in a name to searhc for on LDAP server saturn :
base
ldap_bind: Protocol error
        additional info: requested protocol version not allowed
2[root@rose ldap]#

그리고 php와 연동 할때도

Warning: ldap_bind(): Unable to bind to server: Protocol error

와 같은 에러가 났습니다.

 

물론 slapd.conf 에서 ACL은 다음과 같이 정의 해줬습니다.

 

access to * by * read

로 했습니다

 

이 글에 대한 댓글이 총 2건 있습니다.

test.c 파일 내용입니다.

---------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <ldap.h>
#include <string.h>
#include <time.h>
#include <sys/time.h>

#define SEARCHBASE "dc=mmu,dc=eci,dc=net"

void check_result_and_print(LDAP *ld, LDAPMessage *res);

main()
{
 LDAP *ld;
 LDAPMessage *res;
 int numfound;
 char *User=NULL;
 char *Passwd= NULL;
 char line[BUFSIZ],search[]="cn";
 
 printf("\n Type in a name to searhc for on LDAP server saturn :\n");
 fgets(line, 20 , stdin);
 strcat(search,line);
 search[strlen(search)-1]='\0';
 
 if((ld=ldap_init("localhost",389)) == NULL){
  fprintf(stderr, "1");
  exit(1);
 }

 if (ldap_simple_bind_s(ld,NULL ,NULL ) != LDAP_SUCCESS){
  ldap_perror(ld,"ldap_bind");
  fprintf(stderr, "2");
  exit(2);
 }

 if(ldap_search_s(ld,SEARCHBASE,LDAP_SCOPE_SUBTREE,search,NULL,0,&res)==-1){
  ldap_perror(ld,"Ldap_search");
  fprintf(stderr, "3");
  exit(1);
 }
 
 if((numfound=ldap_count_entries(ld,res))==-1){
  ldap_perror(ld,"ldap_count_entries");
  exit(1);
 }
 ldap_msgfree(res);
 ldap_unbind(ld);
 printf("Found %d entries of name %s \n\n",numfound,line);
 exit(0);

윤성중님이 2004-04-02 17:15에 작성한 댓글입니다. Edit

int version = LDAP_VERSION3;
(void)ldap_set_option(ld,LDAP_OPT_PROTOCOL_VERSION,&version );

를 ldap_simple_bind_s 앞에 써주시면 됩니다.

 

이상준님이 2005-08-01 17:55에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
2047ACI 질문입니다. [1]
초보
2004-04-16
7463
2045Replication 시 오류 [2]
김병훈
2004-04-13
7367
2044질문급] MS 2000 의 AD 궁금한 점이...고수의 헬프를 기다리며 [2]
구리스
2004-04-12
7237
2041C API 연동시 bind 에러 [2]
윤성중
2004-04-02
7939
2040replication 이 안되는데요.. 해결 부탁드립니다.
이준호
2004-04-01
7778
2038어찌된 일일까요?? 리플리케이션 질문입니다. [3]
초보
2004-03-31
7979
2037또 ldap 설치시 오류 [3]
윤성중
2004-03-30
9448
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다