Commit 66ff25c0 authored by Jeremy C. Reed's avatar Jeremy C. Reed
Browse files

Add beginning of

rewrite host(1) in C++ from scratch using BIND 10's libdns.

(This doesn't compile yet.)


git-svn-id: svn://bind10.isc.org/svn/bind10/branches/f2f200910@148 e5f2f494-b856-4b98-b285-d166d9295462
parent 538098d8
Rewriting host(1) in C++ from scratch using BIND 10's libdns.
Initial functionality:
host _hostname_ [server]
-r disable recursive processing
-t _type_ specific query type
/*
host rewritten in C++ using BIND 10 DNS library
*/
#include <arpa/inet.h>
#include <iostream>
using namespace std; // I don't understand why this is needed for cout
/* #include "name.h" */
#include "rrset.h"
#include "message.h"
using namespace isc::dns;
char* dns_type = "A"; // A is the default lookup type
int
main(int argc, char* argv[])
{
Message msg;
if (argc) {
cout << argv[0];
msg.setQid(0); // does this matter?
// TODO: add switch for this
msg.setRD(true); // set recursive bit
msg.addQuestion(Name(argv[0]),
RRClass::IN, // IN class only for now
RRType(dns_type));
msg.toWire();
int s = socket(PF_INET, // IPv4 for now
SOCK_DGRAM, IPPROTO_UDP); // UDP for now
if (s < 0) {
cerr << "failed to open socket" << endl;
return (1);
}
char* sin_addr;
inet_pton(AF_INET, "127.0.0.1", sin_addr);
int size = sizeof(sin_addr);
msg.SingleBuffer().sendTo(s, sin_addr, size);
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment