ldap을 init하고 binding할때 sync(동기)방식과 async(비동기)방식이
있죠 밑에 코드들은 동기방식이 아닌 비동기 방식으로 binding 했을때
동기방식처럼 결과가 넘어올때까지 기다리는게 아니라 나중에 그 값을
받아서 그 상태를 채크하기 위해 필요한 루틴 같네요.
비동기 방식을 써서 binding 하셨으면 필요한 루틴으로 생각됩니다.
-- 이정관 님이 쓰신 글:
>> 안녕하십니까.. IPlanet 디렉토리 서버를 사용하고 있는데요.
>> add.c와 del.c 샘플코드를 보니까.. 아래와 같은 코드가 항상
>> 있는데요..
>>
>> /* Poll for the result */
>> finished = 0;
>> while ( !finished ) {
>> rc = ldap_result( ld, msgid, LDAP_MSG_ONE, &zerotime, &result );
>> switch ( rc ) {
>> case -1:
>> /* some error occurred */
>> ldap_perror( ld, "ldap_result" );
>> return( 1 );
>> case 0:
>> /* Timeout was exceeded. No entries are ready for retrieval */
>> break;
>> default:
>> /* Should be finished here */
>> finished = 1;
>> if (( rc = ldap_result2error( ld, result, 0 )) == LDAP_SUCCESS ) {
>> *ret = 1;
>> } else {
>> ldap_err2string( rc );
>> }
>> ldap_msgfree( result );
>> }
>> }
>>
>> 실제 프로그래밍할때 이부분을 삭제해도 대세에 큰 영향이 있나요?
>> add와 delete할때 성공이 되었는지 여부를 아는 정도외에 실제 add나
>> delete할때 문제가 되는지 궁금합니다.
|