diff options
author | Simo Sorce <ssorce@server.ipatest.com> | 2009-05-23 19:33:43 +0200 |
---|---|---|
committer | Martin Nagy <mnagy@redhat.com> | 2009-05-25 15:10:26 +0200 |
commit | 3cdea10bb5d2dd8fd05d1dca629f8d6491e130e8 (patch) | |
tree | 41b0555a23dac0a4971241f8f001526818b88343 /src | |
parent | 826078820fe1a392a6cb81a285b336798069429f (diff) | |
download | ldap_driver-3cdea10bb5d2dd8fd05d1dca629f8d6491e130e8.tar.gz ldap_driver-3cdea10bb5d2dd8fd05d1dca629f8d6491e130e8.tar.xz ldap_driver-3cdea10bb5d2dd8fd05d1dca629f8d6491e130e8.zip |
Enable reading TTL for ldap entry
Diffstat (limited to 'src')
-rw-r--r-- | src/ldap_helper.c | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/src/ldap_helper.c b/src/ldap_helper.c index cd7e83a..e9fffbd 100644 --- a/src/ldap_helper.c +++ b/src/ldap_helper.c @@ -55,6 +55,8 @@ #include "util.h" +#define DEFAULT_TTL 86400 + /* Max type length definitions, from lib/dns/master.c */ #define MINTSIZ (65535 - 12 - 1 - 2 - 2 - 4 - 2) #define TOKENSIZ (8*1024) @@ -891,26 +893,27 @@ get_rdataclass(ldap_entry_t *ldap_entry) } static dns_ttl_t -get_ttl(ldap_entry_t *ldap_entry) +get_ttl(ldap_entry_t *entry) { - UNUSED(ldap_entry); - - /* - * TODO: Not implemented yet. - */ -#if 0 + const char *ttl_attr = "dnsTTL"; isc_textregion_t ttl_text; + ldap_value_list_t values; + isc_result_t result; + isc_uint32_t ttl; - ttl_text.base = "86400"; + REQUIRE(entry != NULL); + + result = get_values(entry, ttl_attr, &values); + if (result == ISC_R_NOTFOUND) + return DEFAULT_TTL; + + ttl_text.base = HEAD(values)->value; ttl_text.length = strlen(ttl_text.base); result = dns_ttl_fromtext(&ttl_text, &ttl); - if (result != ISC_R_SUCCESS) { - seen_error = ISC_TRUE; - break; - } -#endif + if (result != ISC_R_SUCCESS) + return DEFAULT_TTL; - return 86400; + return ttl; } static isc_result_t |