DNSPacketWriter pw(packet, DNSName(qname), DNSRecordContent::TypeToNumber(qtype));
pw.getHeader()->rd=wantRecursion;
- pw.getHeader()->id=dns_random(UINT16_MAX);
+ pw.getHeader()->id=dns_random_uint16();
if(!subnet.empty() || !ecsRange.empty()) {
EDNSSubnetOpts opt;
nr.domain = domain;
nr.ip = caIp.toStringWithPort();
nr.attempts = 0;
- nr.id = dns_random(0xffff);
+ nr.id = dns_random_uint16();
nr.next = time(0);
d_nqueue.push_back(nr);
throw std::runtime_error("Unreachable at " __FILE__ ":" + boost::lexical_cast<std::string>(__LINE__)); // cannot be reached
};
}
+
+uint16_t dns_random_uint16()
+{
+ return dns_random(0x10000);
+}
void dns_random_init(const std::string& data = "", bool force_reinit = false);
uint32_t dns_random(uint32_t n);
+uint16_t dns_random_uint16();
#endif
void DNSPacket::setQuestion(int op, const DNSName &qd, int newqtype)
{
memset(&d,0,sizeof(d));
- d.id=dns_random(0xffff);
+ d.id=dns_random_uint16();
d.rd=d.tc=d.aa=false;
d.qr=false;
d.qdcount=1; // is htons'ed later on
throw PDNSException("Unable to UDP connect to remote nameserver "+d_remote.toStringWithPort()+": "+stringerror());
}
- d_xor=dns_random(0xffff);
+ d_xor=dns_random_uint16();
g_log<<Logger::Error<<"DNS Proxy launched, local port "<<ntohs(local.sin4.sin_port)<<", remote "<<d_remote.toStringWithPort()<<endl;
}
DNSPacketWriter pw(packet, zone, QType::IXFR);
pw.getHeader()->qr=0;
pw.getHeader()->rd=0;
- pw.getHeader()->id=dns_random(0xffff);
+ pw.getHeader()->id=dns_random_uint16();
pw.startRecord(zone, QType::SOA, 0, QClass::IN, DNSResourceRecord::AUTHORITY);
oursr.d_content->toPacket(pw);
buf.resize(bufsize);
vector<uint8_t> vpacket;
// string mapped0x20=dns0x20(domain);
- uint16_t qid = dns_random(0xffff);
+ uint16_t qid = dns_random_uint16();
DNSPacketWriter pw(vpacket, domain, type);
pw.getHeader()->rd=sendRDQuery;
}
vector<uint8_t> outpacket;
DNSPacketWriter pw(outpacket, DNSName(argv[2]), QType::SOA, 1, Opcode::Notify);
- pw.getHeader()->id = dns_random(UINT16_MAX);
+ pw.getHeader()->id = dns_random_uint16();
if(send(sock, &outpacket[0], outpacket.size(), 0) < 0) {
cerr<<"Unable to send notify to "<<addr.toStringWithPort()<<": "+stringerror()<<endl;
uint16_t randomid;
vector<uint8_t> packet;
DNSPacketWriter pw(packet, domain, type);
- pw.getHeader()->id = randomid = dns_random(0xffff);
+ pw.getHeader()->id = randomid = dns_random_uint16();
if(dnssecOK) {
pw.addOpt(2800, 0, EDNSOpts::DNSSECOK);
vector<uint8_t> packet;
DNSPacketWriter pw(packet, domain, QType::AXFR);
- pw.getHeader()->id = dns_random(0xffff);
+ pw.getHeader()->id = dns_random_uint16();
if(!tt.name.empty()) {
if (tt.algo == DNSName("hmac-md5"))
}
DNSPacket forwardPacket(*p);
- forwardPacket.setID(dns_random(0xffff));
+ forwardPacket.setID(dns_random_uint16());
forwardPacket.setRemote(&remote);
uint16_t len=htons(forwardPacket.getString().length());
string buffer((const char*)&len, 2);
tkrc.d_keysize = output.size();
tkrc.d_key = output;
tkrc.d_othersize = 0;
- pwtkey.getHeader()->id = dns_random(0xffff);
+ pwtkey.getHeader()->id = dns_random_uint16();
pwtkey.startRecord(gssctx.getLabel(), QType::TKEY, 3600, QClass::ANY, DNSResourceRecord::ADDITIONAL, false);
tkrc.toPacket(pwtkey);
pwtkey.commit();
DNSPacketWriter pw(packet, DNSName(argv[3]), 252);
- pw.getHeader()->id = dns_random(0xffff);
+ pw.getHeader()->id = dns_random_uint16();
if (tsig) {
TSIGRecordContent trc;
vector<uint8_t> packet;
DNSPacketWriter pw(packet, qname, qtype);
- pw.getHeader()->id=dns_random(0xffff);
+ pw.getHeader()->id=dns_random_uint16();
pw.getHeader()->rd=1;
string msg ="Doing stub resolving, using resolvers: ";
DNSPacketWriter pw(packet, qname, QType::A);
pw.getHeader()->rd=true;
pw.getHeader()->qr=false;
- pw.getHeader()->id=dns_random(UINT16_MAX);
+ pw.getHeader()->id=dns_random_uint16();
string qpacket((const char*)&packet[0], packet.size());
pw.startRecord(qname, QType::A, ttd);
pw2.getHeader()->rd=true;
pw2.getHeader()->qr=false;
- pw2.getHeader()->id=dns_random(UINT16_MAX);
+ pw2.getHeader()->id=dns_random_uint16();
qpacket.assign((const char*)&packet[0], packet.size());
found = rpc.getResponsePacket(tag, qpacket, time(nullptr), &fpacket, &age, &qhash);
DNSPacketWriter pw(packet, qname, QType::A);
pw.getHeader()->rd=true;
pw.getHeader()->qr=false;
- pw.getHeader()->id=dns_random(UINT16_MAX);
+ pw.getHeader()->id=dns_random_uint16();
string qpacket(reinterpret_cast<const char*>(&packet[0]), packet.size());
pw.startRecord(qname, QType::A, ttd);