ソースを参照

* Move some ip code

Bryan Drewery 16 年 前
コミット
7a37fd1ffb
1 ファイル変更24 行追加20 行削除
  1. 24 20
      src/adns.c

+ 24 - 20
src/adns.c

@@ -315,6 +315,29 @@ static dns_query_t *alloc_query(void *client_data, dns_callback_t callback, cons
 	return q;
 }
 
+static void query_transform_ip(dns_query_t* q, const char* ip) {
+	/* We need to transform the ip address into the proper form
+	 * for reverse lookup. */
+	if (strchr(ip, ':')) {
+		char temp[128] = "";
+
+		socket_ipv6_to_dots(ip, temp);
+		sdprintf("dots: %s", temp);
+		size_t iplen = strlen(temp) + 9 + 1;
+		q->ip = (char *) my_calloc(1, iplen);
+		//		reverse_ip(temp, q->ip);
+		strlcat(q->ip, temp, iplen);
+		strlcat(q->ip, "ip6.arpa", iplen);
+		sdprintf("reversed ipv6 ip: %s", q->ip);
+	}
+	else {
+		size_t iplen = strlen(ip) + 13 + 1;
+		q->ip = (char *) my_calloc(1, iplen);
+		reverse_ip(ip, q->ip);
+		strlcat(q->ip, ".in-addr.arpa", iplen);
+	}
+}
+
 static int get_dns_idx()
 {
 	int i, sock;
@@ -638,26 +661,7 @@ int egg_dns_reverse(const char *ip, interval_t timeout, dns_callback_t callback,
 	q = alloc_query(client_data, callback, ip);
 	sdprintf("egg_dns_reverse(%s, %d) -> %d", ip, timeout, q->id);
 
-	/* We need to transform the ip address into the proper form
-	 * for reverse lookup. */
-	if (strchr(ip, ':')) {
-		char temp[128] = "";
-
-		socket_ipv6_to_dots(ip, temp);
-sdprintf("dots: %s", temp);
-		size_t iplen = strlen(temp) + 9 + 1;
-		q->ip = (char *) my_calloc(1, iplen);
-//		reverse_ip(temp, q->ip);
-		strlcat(q->ip, temp, iplen);
-		strlcat(q->ip, "ip6.arpa", iplen);
-sdprintf("reversed ipv6 ip: %s", q->ip);
-	}
-	else {
-		size_t iplen = strlen(ip) + 13 + 1;
-		q->ip = (char *) my_calloc(1, iplen);
-		reverse_ip(ip, q->ip);
-		strlcat(q->ip, ".in-addr.arpa", iplen);
-	}
+	query_transform_ip(q, ip);
 
         dns_send_query(q);