]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
add a little randomness to packet id's
authorJelte Jansen <jeltejan@NLnetLabs.nl>
Wed, 9 Mar 2005 13:56:01 +0000 (13:56 +0000)
committerJelte Jansen <jeltejan@NLnetLabs.nl>
Wed, 9 Mar 2005 13:56:01 +0000 (13:56 +0000)
resolver.c
run-test15.c

index b53d6e2237aafd375eca2a8107fce9053f731984..ca48679c47fa267fcaa9093be95559501634b184 100644 (file)
@@ -570,6 +570,7 @@ ldns_resolver_send(ldns_resolver *r, ldns_rdf *name, ldns_rr_type type, ldns_rr_
 {
        ldns_pkt *query_pkt;
        ldns_pkt *answer_pkt;
+       uint16_t id;
 
        assert(r != NULL);
        assert(name != NULL);
@@ -598,6 +599,12 @@ ldns_resolver_send(ldns_resolver *r, ldns_rdf *name, ldns_rr_type type, ldns_rr_
                printf("Failed to generate pkt\n");
                return NULL;
        }
+       
+       /* TODO: time is a terrible seed */
+       srand((unsigned) time(NULL));
+       id = (uint16_t) rand();
+
+       ldns_pkt_set_id(query_pkt, id);
 
        /* return NULL on error */
        answer_pkt = ldns_send(r, query_pkt);
index e1830272d089c060e4eafc6d5103681c97a2c507..cc3081a14e86517bab13f87b1cfa824d641504a0 100644 (file)
@@ -43,7 +43,10 @@ main(int argc, char **argv)
 
        pkt = ldns_pkt_query_new(qname, ldns_get_rr_type_by_name(type), 0, LDNS_RD);
 
-       ldns_pkt_set_id(pkt, 46789);
+       /* if you make packet yourself, set the id yourself */
+       /* you should not use time as the only seed */
+       srand((unsigned) time(NULL));
+       ldns_pkt_set_id(pkt, (uint16_t) rand());
 
        ldns_pkt_tsig_sign(pkt, "jelte.", "vBUWJnkgDw4YTobXtbUD6XED5Qg74tnghYX3tzKzfsI=", 300, "hmac-md5.sig-alg.reg.int", NULL);
        mac = ldns_rr_rdf(ldns_pkt_tsig(pkt), 3);