
LDAP 연산 중 ldap_mod_replace 함수를 사용하여 레코드를 수정할 때, 기존의 속성값과 새로운 속성값이 충돌할 경우, 기존 속성값은 삭제되고 새로운 속성값이 삽입됩니다.
예시를 통해 ldap_mod_replace 함수를 사용하여 레코드를 수정하는 방법을 알려드리겠습니다.
#hostingforum.kr
c
#include
int main() {
LDAP *ld;
int rc;
BerValue *dn, *attr;
// LDAP 연결
ld = ldap_init("localhost", 389);
if (!ld) {
printf("LDAP 연결 실패n");
return -1;
}
// DN과 속성값 설정
dn = malloc(sizeof(BerValue));
attr = malloc(sizeof(BerValue));
// DN 설정
strcpy((char *)dn->bv_val, "cn=John Doe,dc=example,dc=com");
dn->bv_len = strlen((char *)dn->bv_val);
// 속성값 설정
strcpy((char *)attr->bv_val, "mail=john.doe@example.com");
attr->bv_len = strlen((char *)attr->bv_val);
// ldap_mod_replace 함수 호출
rc = ldap_mod_replace(ld, dn, attr, NULL, 0);
if (rc != LDAP_SUCCESS) {
printf("LDAP 수정 실패n");
}
// LDAP 연결 종료
ldap_unbind(ld);
return 0;
}
ldap_mod_replace 함수와 다른 연산 함수들 간의 차이는 다음과 같습니다.
- ldap_mod_add: 새로운 속성값을 추가합니다.
- ldap_mod_delete: 속성값을 삭제합니다.
- ldap_mod_replace: 기존 속성값을 삭제하고 새로운 속성값을 삽입합니다.
- ldap_mod_replace_s: ldap_mod_replace 함수와 동일하지만, LDAP_SUCCESS를 반환하지 않습니다.
2025-03-21 06:22