]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
put edns_udp_size in resolver also
authorMiek Gieben <miekg@NLnetLabs.nl>
Tue, 15 Mar 2005 10:26:31 +0000 (10:26 +0000)
committerMiek Gieben <miekg@NLnetLabs.nl>
Tue, 15 Mar 2005 10:26:31 +0000 (10:26 +0000)
ldns/resolver.h
resolver.c

index 43f7246b05bd4d40d0d50f0351eb266bb01a21f9..00c4ec4d1020c3596c5964cae3670f733ceb91f4 100644 (file)
@@ -86,6 +86,8 @@ struct ldns_struct_resolver
           keep the current pkt */
        ldns_pkt *_cur_axfr_pkt;
        uint16_t _axfr_i;
+       /* EDNS0 stuff only bufsize atm */
+       uint16_t _edns_udp_size;
 };
 typedef struct ldns_struct_resolver ldns_resolver;
 
@@ -124,6 +126,7 @@ ldns_status ldns_resolver_push_nameserver_rr_list(ldns_resolver *, ldns_rr_list
 uint8_t ldns_resolver_retry(ldns_resolver *);
 uint8_t ldns_resolver_retrans(ldns_resolver *);
 uint8_t ldns_resolver_ip6(ldns_resolver *);
+uint16_t ldns_resolver_edns_udp_size(ldns_resolver *);
 
 ldns_pkt * ldns_resolver_bgsend();
 ldns_pkt * ldns_resolver_send(ldns_resolver *, ldns_rdf*, ldns_rr_type, ldns_rr_class, uint16_t);
@@ -141,6 +144,7 @@ void ldns_resolver_set_retrans(ldns_resolver *, uint8_t);
 void ldns_resolver_set_retry(ldns_resolver *, uint8_t);
 void ldns_resolver_set_ip6(ldns_resolver *, uint8_t);
 void ldns_resolver_set_fail(ldns_resolver *, bool);
+void ldns_resolver_set_edns_udp_size(ldns_resolver *, uint16_t);
 
 /**
  * Prepares the resolver for an axfr query
index 26008b822b6b66cd86facbf6357ab292b2ba0dfc..e74b90c7290ae2ab5159c8c520f3a00572c11fef 100644 (file)
@@ -38,6 +38,12 @@ ldns_resolver_port(ldns_resolver *r)
        return r->_port;
 }
 
+uint16_t
+ldns_resolver_edns_udp_size(ldns_resolver *r)
+{
+               return r->_edns_udp_size;
+}
+
 uint8_t
 ldns_resolver_retry(ldns_resolver *r)
 {
@@ -255,6 +261,12 @@ ldns_resolver_push_nameserver_rr_list(ldns_resolver *r, ldns_rr_list *rrlist)
        }
 }
 
+void
+ldns_resolver_set_edns_udp_size(ldns_resolver *r, uint16_t s)
+{
+               r->_edns_udp_size = s;
+}
+
 void
 ldns_resolver_set_recursive(ldns_resolver *r, bool re)
 {
@@ -410,6 +422,7 @@ ldns_resolver_new(void)
        ldns_resolver_set_retry(r, 4);
        ldns_resolver_set_retrans(r, 5);
        ldns_resolver_set_fail(r, false);
+       ldns_resolver_set_edns_udp_size(r, 0);
 
        r->_timeout.tv_sec = LDNS_DEFAULT_TIMEOUT_SEC;
        r->_timeout.tv_usec = LDNS_DEFAULT_TIMEOUT_USEC;
@@ -641,6 +654,12 @@ ldns_resolver_send(ldns_resolver *r, ldns_rdf *name, ldns_rr_type type, ldns_rr_
                printf("Failed to generate pkt\n");
                return NULL;
        }
+       /* transfer the udp_edns_size from the resolver to the packet */
+       if (ldns_resolver_edns_udp_size(r) != 0) {
+               ldns_pkt_set_edns_udp_size(query_pkt,
+                               ldns_resolver_edns_udp_size(r));
+       }
+
        if (ldns_resolver_debug(r)) {
                ldns_pkt_print(stdout, query_pkt);
        }