]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
move port info to socket creation time. Removed more dead(?) code
authorMiek Gieben <miekg@NLnetLabs.nl>
Wed, 10 Aug 2005 12:15:53 +0000 (12:15 +0000)
committerMiek Gieben <miekg@NLnetLabs.nl>
Wed, 10 Aug 2005 12:15:53 +0000 (12:15 +0000)
ldns/rdata.h
net.c
rdata.c
resolver.c

index 94749aee4eb718d0fa458b1020473791b12c9bf9..10451cac13fa31d4218ce611be86d21f912e1e5b 100644 (file)
@@ -283,10 +283,11 @@ uint32_t  ldns_str2period(const char *nptr, const char **endptr);
 /** 
  * returns the native sockaddr representation from the rdf.
  * \param[in] rd the ldns_rdf to operate on
+ * \param[in] port what port to use. 0 means; use default (53)
  * \return struct sockaddr* the address in the format so other
  * functions can use it (sendto)
  */
-struct sockaddr_storage * ldns_rdf2native_sockaddr_storage(ldns_rdf *rd);
+struct sockaddr_storage * ldns_rdf2native_sockaddr_storage(ldns_rdf *rd, uint16_t port);
 
 /* misc */
 /**
diff --git a/net.c b/net.c
index f1f7f7b9a73496ce0aaf6ce4d01e32090a7d8e85..44347b74534dc9f2a50532ae53ada199323ae9cf 100644 (file)
--- a/net.c
+++ b/net.c
@@ -85,7 +85,8 @@ ldns_send(ldns_pkt **result, ldns_resolver *r, ldns_pkt *query_pkt)
        /* loop through all defined nameservers */
        for (i = 0; i < ldns_resolver_nameserver_count(r); i++) {
 
-               ns = ldns_rdf2native_sockaddr_storage(ns_rand_array[i]);
+               ns = ldns_rdf2native_sockaddr_storage(ns_rand_array[i],
+                               ldns_resolver_port(r));
 
                if ((ns->ss_family == AF_INET && 
                                ldns_resolver_ip6(r) == LDNS_RESOLV_INET6)
diff --git a/rdata.c b/rdata.c
index 080ac2246d5d01c82ccc32a72e7d450091a3204d..3714ee1216defb4a3f271370b1aeb8ba55f4a874 100644 (file)
--- a/rdata.c
+++ b/rdata.c
@@ -115,7 +115,7 @@ ldns_rdf2native_int32(ldns_rdf *rd)
 }
 
 struct sockaddr_storage *
-ldns_rdf2native_sockaddr_storage(ldns_rdf *rd)
+ldns_rdf2native_sockaddr_storage(ldns_rdf *rd, uint16_t port)
 {
        struct sockaddr_storage *data;
        struct sockaddr_in  *data_in;
@@ -129,17 +129,21 @@ ldns_rdf2native_sockaddr_storage(ldns_rdf *rd)
                return NULL;
        }
 
+       if (port == 0) {
+               port =  LDNS_PORT;
+       }
+
        switch(ldns_rdf_get_type(rd)) {
                case LDNS_RDF_TYPE_A:
                        data->ss_family = AF_INET;
                        data_in = (struct sockaddr_in*) data;
-                       data_in->sin_port = htons(LDNS_PORT); 
+                       data_in->sin_port = htons(port); 
                        memcpy(&(data_in->sin_addr), ldns_rdf_data(rd), ldns_rdf_size(rd));
                        return data;
                case LDNS_RDF_TYPE_AAAA:
                        data->ss_family = AF_INET6;
                        data_in6 = (struct sockaddr_in6*) data;
-                       data_in6->sin6_port = htons(LDNS_PORT); 
+                       data_in6->sin6_port = htons(port); 
 
                        memcpy(&data_in6->sin6_addr, ldns_rdf_data(rd), ldns_rdf_size(rd));
                        return data;
index 105f9dc69f5094f3b91a6c33434e75c82c24dc79..8a7bb0af4e9af4bb68bec2bd1a668be4d9eabbc3 100644 (file)
@@ -792,8 +792,6 @@ ldns_axfr_start(ldns_resolver *resolver,
         ldns_buffer *query_wire;
 
         struct sockaddr_storage *ns;
-        struct sockaddr_in *ns4;
-        struct sockaddr_in6 *ns6;
         socklen_t ns_len = 0;
         ldns_status status;
 
@@ -812,21 +810,16 @@ ldns_axfr_start(ldns_resolver *resolver,
                return LDNS_STATUS_ADDRESS_ERR;
        }
        /* For AXFR, we have to make the connection ourselves */
-       ns = ldns_rdf2native_sockaddr_storage(resolver->_nameservers[0]);
+       ns = ldns_rdf2native_sockaddr_storage(resolver->_nameservers[0], 
+                       ldns_resolver_port(resolver));
 
        /* Determine the address size.
         */
        switch(ns->ss_family) {
                case AF_INET:
-                       ns4 = (struct sockaddr_in*) ns;
-                       ns4->sin_port = htons(
-                                       ldns_resolver_port(resolver));
                        ns_len = (socklen_t)sizeof(struct sockaddr_in);
                        break;
                case AF_INET6:
-                       ns6 = (struct sockaddr_in6*) ns;
-                       ns6->sin6_port = htons(
-                                       ldns_resolver_port(resolver));
                        ns_len = (socklen_t)sizeof(struct sockaddr_in6);
                        break;
                 default: