
LDAP 서버에 새로운 사용자 정보를 업데이트할 때, ldap_mod_replace 함수를 사용하여 attribute 값을 변경할 때 기존의 attribute 값이 삭제되는 현상은 ldap_mod_replace 함수의 특징으로 인한 것입니다.
ldap_mod_replace 함수는 기존의 attribute 값을 삭제하고 새로운 값을 등록하는 함수로, 기존의 attribute 값이 삭제되는 것은 정상적인 동작입니다.
기존의 attribute 값을 유지하고 새로운 값을 등록하려면 ldap_mod_add 함수를 사용하는 것이 좋습니다. ldap_mod_add 함수는 기존의 attribute 값을 유지하고 새로운 값을 등록하는 함수로, 기존의 attribute 값이 삭제되지 않습니다.
다음은 ldap_mod_add 함수를 사용하여 attribute 값을 업데이트하는 예제입니다.
Ldap* ld;
char* dn = "cn=myuser,dc=example,dc=com";
char* attrName = "mail";
char* new_val = "newmail@example.com";
int rc = ldap_mod_add(ld, dn, attrName, new_val);
if (rc == LDAP_SUCCESS) {
printf("성공적으로 업데이트되었습니다.");
} else {
printf("실패했습니다.");
}
이 예제에서는 ldap_mod_add 함수를 사용하여 attribute 값을 업데이트하고, 기존의 attribute 값이 유지됩니다.
2025-05-03 19:01