Sending the query

We start main() with the following code:

/*dns_query.c*/int main(int argc, char *argv[]) {    if (argc < 3) {        printf("Usage:\n\tdns_query hostname type\n");        printf("Example:\n\tdns_query example.com aaaa\n");        exit(0);    }    if (strlen(argv[1]) > 255) {        fprintf(stderr, "Hostname too long.");        exit(1);    }

The preceding code checks that the user passed in a hostname and record type to query. If they didn't, it prints a helpful message. It also checks that the hostname isn't more than 255 characters long. Hostnames longer than that aren't allowed by the DNS standard, and checking it now ensures that we don't need to allocate too much memory.

We then try to interpret the record type requested by the user. We support the following options ...

Get Hands-On Network Programming with C now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.