summaryrefslogtreecommitdiffstats
path: root/ldap_convert.c
diff options
context:
space:
mode:
authorMartin Nagy <mnagy@redhat.com>2009-03-25 17:59:54 +0100
committerMartin Nagy <mnagy@redhat.com>2009-03-25 17:59:54 +0100
commit743aed3ee3952c13f79289d1a7b8efe2aeaa20bf (patch)
tree698ef5b696dba655c11399be7bcd85f96094890c /ldap_convert.c
parent571bf6b7f2fd9ca6551b207e60f486473c45ba96 (diff)
downloadldap_driver_testing-743aed3ee3952c13f79289d1a7b8efe2aeaa20bf.tar.gz
ldap_driver_testing-743aed3ee3952c13f79289d1a7b8efe2aeaa20bf.tar.xz
ldap_driver_testing-743aed3ee3952c13f79289d1a7b8efe2aeaa20bf.zip
Refactoring related to isc_buffer_t.
Diffstat (limited to 'ldap_convert.c')
-rw-r--r--ldap_convert.c69
1 files changed, 23 insertions, 46 deletions
diff --git a/ldap_convert.c b/ldap_convert.c
index 2c02f28..24da32f 100644
--- a/ldap_convert.c
+++ b/ldap_convert.c
@@ -70,37 +70,23 @@ isc_result_t
dn_to_dnsname(isc_mem_t *mctx, const char *dn, dns_name_t *target)
{
isc_result_t result;
- ld_string_t *str;
- isc_buffer_t source_buffer;
- isc_buffer_t target_buffer;
- dns_name_t tmp_name;
- unsigned char target_base[DNS_NAME_MAXWIRE];
+ DECLARE_BUFFERED_NAME(name);
+ ld_string_t *str = NULL;
+ isc_buffer_t buffer;
REQUIRE(mctx != NULL);
REQUIRE(dn != NULL);
- str = NULL;
- result = ISC_R_SUCCESS;
-
- /* Convert the DN into a DNS name. */
+ INIT_BUFFERED_NAME(name);
CHECK(str_new(mctx, &str));
- CHECK(dn_to_text(dn, str));
-
- /* TODO: fix this */
- isc_buffer_init(&source_buffer, str_buf(str), str_len(str) - 1);
- isc_buffer_add(&source_buffer, str_len(str) - 1);
- isc_buffer_init(&target_buffer, target_base, sizeof(target_base));
- /* Now create a dns_name_t struct. */
- dns_name_init(&tmp_name, NULL);
- dns_name_setbuffer(&tmp_name, &target_buffer);
-
- CHECK(dns_name_fromtext(&tmp_name, &source_buffer, dns_rootname, 0,
- NULL));
+ CHECK(dn_to_text(dn, str));
+ str_to_isc_buffer(str, &buffer);
+ CHECK(dns_name_fromtext(&name, &buffer, dns_rootname, 0, NULL));
cleanup:
if (result != ISC_R_FAILURE)
- result = dns_name_dupwithoffsets(&tmp_name, mctx, target);
+ result = dns_name_dupwithoffsets(&name, mctx, target);
str_destroy(&str);
@@ -206,14 +192,6 @@ isc_result_t
dnsname_to_dn(ldap_db_t *ldap_db, dns_name_t *name, ld_string_t *target)
{
isc_result_t result;
-
- DECLARE_BUFFERED_NAME(zone);
-
- dns_name_t labels;
-
- dns_namereln_t reln;
- int order;
- unsigned int common_labels;
int label_count;
const char *zone_dn = NULL;
@@ -221,34 +199,33 @@ dnsname_to_dn(ldap_db_t *ldap_db, dns_name_t *name, ld_string_t *target)
REQUIRE(name != NULL);
REQUIRE(target != NULL);
+ /* Find the DN of the zone we belong to. */
+ {
+ DECLARE_BUFFERED_NAME(zone);
+ int dummy;
+ unsigned int common_labels;
- INIT_BUFFERED_NAME(zone);
-
- dns_name_init(&labels, NULL);
+ INIT_BUFFERED_NAME(zone);
- /* Find the DN of the zone we belong to. */
- CHECK(get_zone_dn(ldap_db, name, &zone_dn, &zone));
+ CHECK(get_zone_dn(ldap_db, name, &zone_dn, &zone));
- reln = dns_name_fullcompare(name, &zone, &order, &common_labels);
- INSIST(reln == dns_namereln_subdomain || reln == dns_namereln_equal);
- label_count = dns_name_countlabels(name);
- label_count -= common_labels;
+ dns_name_fullcompare(name, &zone, &dummy, &common_labels);
+ label_count = dns_name_countlabels(name) - common_labels;
+ }
str_clear(target);
if (label_count > 0) {
- isc_buffer_t buffer;
- char target_base[DNS_NAME_MAXTEXT];
- isc_region_t region;
+ DECLARE_BUFFER(buffer, DNS_NAME_MAXTEXT);
+ dns_name_t labels;
- isc_buffer_init(&buffer, target_base, sizeof(target_base));
+ INIT_BUFFER(buffer);
+ dns_name_init(&labels, NULL);
dns_name_getlabelsequence(name, 0, label_count, &labels);
CHECK(dns_name_totext(&labels, ISC_TRUE, &buffer));
- isc_buffer_usedregion(&buffer, &region);
CHECK(str_cat_char(target, "idnsName="));
- CHECK(str_cat_char_len(target, (char *)region.base,
- region.length));
+ CHECK(str_cat_isc_buffer(target, &buffer));
CHECK(str_cat_char(target, ", "));
}
CHECK(str_cat_char(target, zone_dn));