From: Jelte Jansen Date: Wed, 9 Mar 2005 13:56:01 +0000 (+0000) Subject: add a little randomness to packet id's X-Git-Tag: release-0.50~283 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e03fbfa8521bf7f41cd526cc474c78d95e7a268a;p=thirdparty%2Fldns.git add a little randomness to packet id's --- diff --git a/resolver.c b/resolver.c index b53d6e22..ca48679c 100644 --- a/resolver.c +++ b/resolver.c @@ -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); diff --git a/run-test15.c b/run-test15.c index e1830272..cc3081a1 100644 --- a/run-test15.c +++ b/run-test15.c @@ -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);