Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(114)

Unified Diff: third_party/libevent/test/regress_dns.c

Issue 1531573008: move libevent into base (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix shim path Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/libevent/test/regress.rpc ('k') | third_party/libevent/test/regress_http.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/libevent/test/regress_dns.c
diff --git a/third_party/libevent/test/regress_dns.c b/third_party/libevent/test/regress_dns.c
deleted file mode 100644
index 129cdad498f339a6a3f30ace628d097f9197451e..0000000000000000000000000000000000000000
--- a/third_party/libevent/test/regress_dns.c
+++ /dev/null
@@ -1,376 +0,0 @@
-/*
- * Copyright (c) 2003-2006 Niels Provos <provos@citi.umich.edu>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifdef WIN32
-#include <winsock2.h>
-#include <windows.h>
-#endif
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#include <sys/queue.h>
-#ifndef WIN32
-#include <sys/socket.h>
-#include <signal.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#endif
-#ifdef HAVE_NETINET_IN6_H
-#include <netinet/in6.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-
-#include "event.h"
-#include "evdns.h"
-#include "log.h"
-
-static int dns_ok = 0;
-static int dns_err = 0;
-
-void dns_suite(void);
-
-static void
-dns_gethostbyname_cb(int result, char type, int count, int ttl,
- void *addresses, void *arg)
-{
- dns_ok = dns_err = 0;
-
- if (result == DNS_ERR_TIMEOUT) {
- fprintf(stdout, "[Timed out] ");
- dns_err = result;
- goto out;
- }
-
- if (result != DNS_ERR_NONE) {
- fprintf(stdout, "[Error code %d] ", result);
- goto out;
- }
-
- fprintf(stderr, "type: %d, count: %d, ttl: %d: ", type, count, ttl);
-
- switch (type) {
- case DNS_IPv6_AAAA: {
-#if defined(HAVE_STRUCT_IN6_ADDR) && defined(HAVE_INET_NTOP) && defined(INET6_ADDRSTRLEN)
- struct in6_addr *in6_addrs = addresses;
- char buf[INET6_ADDRSTRLEN+1];
- int i;
- /* a resolution that's not valid does not help */
- if (ttl < 0)
- goto out;
- for (i = 0; i < count; ++i) {
- const char *b = inet_ntop(AF_INET6, &in6_addrs[i], buf,sizeof(buf));
- if (b)
- fprintf(stderr, "%s ", b);
- else
- fprintf(stderr, "%s ", strerror(errno));
- }
-#endif
- break;
- }
- case DNS_IPv4_A: {
- struct in_addr *in_addrs = addresses;
- int i;
- /* a resolution that's not valid does not help */
- if (ttl < 0)
- goto out;
- for (i = 0; i < count; ++i)
- fprintf(stderr, "%s ", inet_ntoa(in_addrs[i]));
- break;
- }
- case DNS_PTR:
- /* may get at most one PTR */
- if (count != 1)
- goto out;
-
- fprintf(stderr, "%s ", *(char **)addresses);
- break;
- default:
- goto out;
- }
-
- dns_ok = type;
-
-out:
- event_loopexit(NULL);
-}
-
-static void
-dns_gethostbyname(void)
-{
- fprintf(stdout, "Simple DNS resolve: ");
- dns_ok = 0;
- evdns_resolve_ipv4("www.monkey.org", 0, dns_gethostbyname_cb, NULL);
- event_dispatch();
-
- if (dns_ok == DNS_IPv4_A) {
- fprintf(stdout, "OK\n");
- } else {
- fprintf(stdout, "FAILED\n");
- exit(1);
- }
-}
-
-static void
-dns_gethostbyname6(void)
-{
- fprintf(stdout, "IPv6 DNS resolve: ");
- dns_ok = 0;
- evdns_resolve_ipv6("www.ietf.org", 0, dns_gethostbyname_cb, NULL);
- event_dispatch();
-
- if (dns_ok == DNS_IPv6_AAAA) {
- fprintf(stdout, "OK\n");
- } else if (!dns_ok && dns_err == DNS_ERR_TIMEOUT) {
- fprintf(stdout, "SKIPPED\n");
- } else {
- fprintf(stdout, "FAILED (%d)\n", dns_ok);
- exit(1);
- }
-}
-
-static void
-dns_gethostbyaddr(void)
-{
- struct in_addr in;
- in.s_addr = htonl(0x7f000001ul); /* 127.0.0.1 */
- fprintf(stdout, "Simple reverse DNS resolve: ");
- dns_ok = 0;
- evdns_resolve_reverse(&in, 0, dns_gethostbyname_cb, NULL);
- event_dispatch();
-
- if (dns_ok == DNS_PTR) {
- fprintf(stdout, "OK\n");
- } else {
- fprintf(stdout, "FAILED\n");
- exit(1);
- }
-}
-
-static int n_server_responses = 0;
-
-static void
-dns_server_request_cb(struct evdns_server_request *req, void *data)
-{
- int i, r;
- const char TEST_ARPA[] = "11.11.168.192.in-addr.arpa";
- for (i = 0; i < req->nquestions; ++i) {
- struct in_addr ans;
- ans.s_addr = htonl(0xc0a80b0bUL); /* 192.168.11.11 */
- if (req->questions[i]->type == EVDNS_TYPE_A &&
- req->questions[i]->dns_question_class == EVDNS_CLASS_INET &&
- !strcmp(req->questions[i]->name, "zz.example.com")) {
- r = evdns_server_request_add_a_reply(req, "zz.example.com",
- 1, &ans.s_addr, 12345);
- if (r<0)
- dns_ok = 0;
- } else if (req->questions[i]->type == EVDNS_TYPE_AAAA &&
- req->questions[i]->dns_question_class == EVDNS_CLASS_INET &&
- !strcmp(req->questions[i]->name, "zz.example.com")) {
- char addr6[17] = "abcdefghijklmnop";
- r = evdns_server_request_add_aaaa_reply(req, "zz.example.com",
- 1, addr6, 123);
- if (r<0)
- dns_ok = 0;
- } else if (req->questions[i]->type == EVDNS_TYPE_PTR &&
- req->questions[i]->dns_question_class == EVDNS_CLASS_INET &&
- !strcmp(req->questions[i]->name, TEST_ARPA)) {
- r = evdns_server_request_add_ptr_reply(req, NULL, TEST_ARPA,
- "ZZ.EXAMPLE.COM", 54321);
- if (r<0)
- dns_ok = 0;
- } else {
- fprintf(stdout, "Unexpected question %d %d \"%s\" ",
- req->questions[i]->type,
- req->questions[i]->dns_question_class,
- req->questions[i]->name);
- dns_ok = 0;
- }
- }
- r = evdns_server_request_respond(req, 0);
- if (r<0) {
- fprintf(stdout, "Couldn't send reply. ");
- dns_ok = 0;
- }
-}
-
-static void
-dns_server_gethostbyname_cb(int result, char type, int count, int ttl,
- void *addresses, void *arg)
-{
- if (result != DNS_ERR_NONE) {
- fprintf(stdout, "Unexpected result %d. ", result);
- dns_ok = 0;
- goto out;
- }
- if (count != 1) {
- fprintf(stdout, "Unexpected answer count %d. ", count);
- dns_ok = 0;
- goto out;
- }
- switch (type) {
- case DNS_IPv4_A: {
- struct in_addr *in_addrs = addresses;
- if (in_addrs[0].s_addr != htonl(0xc0a80b0bUL) || ttl != 12345) {
- fprintf(stdout, "Bad IPv4 response \"%s\" %d. ",
- inet_ntoa(in_addrs[0]), ttl);
- dns_ok = 0;
- goto out;
- }
- break;
- }
- case DNS_IPv6_AAAA: {
-#if defined (HAVE_STRUCT_IN6_ADDR) && defined(HAVE_INET_NTOP) && defined(INET6_ADDRSTRLEN)
- struct in6_addr *in6_addrs = addresses;
- char buf[INET6_ADDRSTRLEN+1];
- if (memcmp(&in6_addrs[0].s6_addr, "abcdefghijklmnop", 16)
- || ttl != 123) {
- const char *b = inet_ntop(AF_INET6, &in6_addrs[0],buf,sizeof(buf));
- fprintf(stdout, "Bad IPv6 response \"%s\" %d. ", b, ttl);
- dns_ok = 0;
- goto out;
- }
-#endif
- break;
- }
- case DNS_PTR: {
- char **addrs = addresses;
- if (strcmp(addrs[0], "ZZ.EXAMPLE.COM") || ttl != 54321) {
- fprintf(stdout, "Bad PTR response \"%s\" %d. ",
- addrs[0], ttl);
- dns_ok = 0;
- goto out;
- }
- break;
- }
- default:
- fprintf(stdout, "Bad response type %d. ", type);
- dns_ok = 0;
- }
-
- out:
- if (++n_server_responses == 3) {
- event_loopexit(NULL);
- }
-}
-
-static void
-dns_server(void)
-{
- int sock;
- struct sockaddr_in my_addr;
- struct evdns_server_port *port;
- struct in_addr resolve_addr;
-
- dns_ok = 1;
- fprintf(stdout, "DNS server support: ");
-
- /* Add ourself as the only nameserver, and make sure we really are
- * the only nameserver. */
- evdns_nameserver_ip_add("127.0.0.1:35353");
- if (evdns_count_nameservers() != 1) {
- fprintf(stdout, "Couldn't set up.\n");
- exit(1);
- }
-
- /* Now configure a nameserver port. */
- sock = socket(AF_INET, SOCK_DGRAM, 0);
- if (sock == -1) {
- perror("socket");
- exit(1);
- }
-#ifdef WIN32
- {
- u_long nonblocking = 1;
- ioctlsocket(sock, FIONBIO, &nonblocking);
- }
-#else
- fcntl(sock, F_SETFL, O_NONBLOCK);
-#endif
- memset(&my_addr, 0, sizeof(my_addr));
- my_addr.sin_family = AF_INET;
- my_addr.sin_port = htons(35353);
- my_addr.sin_addr.s_addr = htonl(0x7f000001UL);
- if (bind(sock, (struct sockaddr*)&my_addr, sizeof(my_addr)) < 0) {
- perror("bind");
- exit (1);
- }
- port = evdns_add_server_port(sock, 0, dns_server_request_cb, NULL);
-
- /* Send two queries. */
- evdns_resolve_ipv4("zz.example.com", DNS_QUERY_NO_SEARCH,
- dns_server_gethostbyname_cb, NULL);
- evdns_resolve_ipv6("zz.example.com", DNS_QUERY_NO_SEARCH,
- dns_server_gethostbyname_cb, NULL);
- resolve_addr.s_addr = htonl(0xc0a80b0bUL); /* 192.168.11.11 */
- evdns_resolve_reverse(&resolve_addr, 0,
- dns_server_gethostbyname_cb, NULL);
-
- event_dispatch();
-
- if (dns_ok) {
- fprintf(stdout, "OK\n");
- } else {
- fprintf(stdout, "FAILED\n");
- exit(1);
- }
-
- evdns_close_server_port(port);
- evdns_shutdown(0); /* remove ourself as nameserver. */
-#ifdef WIN32
- closesocket(sock);
-#else
- close(sock);
-#endif
-}
-
-void
-dns_suite(void)
-{
- dns_server(); /* Do this before we call evdns_init. */
-
- evdns_init();
- dns_gethostbyname();
- dns_gethostbyname6();
- dns_gethostbyaddr();
-
- evdns_shutdown(0);
-}
« no previous file with comments | « third_party/libevent/test/regress.rpc ('k') | third_party/libevent/test/regress_http.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698