+ } else if((iodns->type & IODNS_REVERSE)) {
+ char hostname[NI_MAXHOST];
+ if(!(ret = getnameinfo(iodns->request.addr.address, iodns->request.addr.addresslen, hostname, sizeof(hostname), NULL, 0, 0))) {
+ dnsresult = malloc(sizeof(*dnsresult));
+ dnsresult->type = IODNS_RECORD_PTR;
+ dnsresult->result.host = strdup(hostname);
+ dnsresult->next = iodns->result;
+ iodns->result = dnsresult;
+
+ if(iodns->request.addr.address->sa_family == AF_INET) {
+ char str[INET_ADDRSTRLEN];
+ inet_ntop(AF_INET, &((struct sockaddr_in *)iodns->request.addr.address)->sin_addr, str, INET_ADDRSTRLEN);
+ iolog_trigger(IOLOG_DEBUG, "Resolved %s to (PTR): %s", str, hostname);
+ } else {
+ char str[INET6_ADDRSTRLEN];
+ inet_ntop(AF_INET6, &((struct sockaddr_in6 *)iodns->request.addr.address)->sin6_addr, str, INET6_ADDRSTRLEN);
+ iolog_trigger(IOLOG_DEBUG, "Resolved %s to (PTR): %s", str, hostname);
+ }
+
+ querystate = IODNSEVENT_SUCCESS;
+ } else {
+ iolog_trigger(IOLOG_WARNING, "getnameinfo returned error code: %d", ret);
+ }
+
+ }