- assert(address->proto == AVAHI_PROTO_INET || address->proto == AVAHI_PROTO_INET6);
-
- if (!AVAHI_IF_VALID(interface)) {
- avahi_server_set_errno(server, AVAHI_ERR_INVALID_INTERFACE);
- return NULL;
- }
-
- if (!AVAHI_FLAGS_VALID(flags, AVAHI_LOOKUP_USE_WIDE_AREA|AVAHI_LOOKUP_USE_MULTICAST)) {
- avahi_server_set_errno(server, AVAHI_ERR_INVALID_FLAGS);
- return NULL;
- }
-
- if (address->proto == AVAHI_PROTO_INET)
- n = avahi_reverse_lookup_name_ipv4(&address->data.ipv4);
- else
- n = avahi_reverse_lookup_name_ipv6(&address->data.ipv6);
-
- if (!n) {
- avahi_server_set_errno(server, AVAHI_ERR_NO_MEMORY);
- return NULL;
- }
-
- k = avahi_key_new(n, AVAHI_DNS_CLASS_IN, AVAHI_DNS_TYPE_PTR);
- avahi_free(n);
+ AVAHI_CHECK_VALIDITY_RETURN_NULL(server, AVAHI_IF_VALID(interface), AVAHI_ERR_INVALID_INTERFACE);
+ AVAHI_CHECK_VALIDITY_RETURN_NULL(server, AVAHI_PROTO_VALID(protocol), AVAHI_ERR_INVALID_PROTOCOL);
+ AVAHI_CHECK_VALIDITY_RETURN_NULL(server, address->proto == AVAHI_PROTO_INET || address->proto == AVAHI_PROTO_INET6, AVAHI_ERR_INVALID_PROTOCOL);
+ AVAHI_CHECK_VALIDITY_RETURN_NULL(server, AVAHI_FLAGS_VALID(flags, AVAHI_LOOKUP_USE_WIDE_AREA|AVAHI_LOOKUP_USE_MULTICAST), AVAHI_ERR_INVALID_FLAGS);
+
+ avahi_reverse_lookup_name(address, n, sizeof(n));