- assert(aprotocol == AVAHI_PROTO_UNSPEC || aprotocol == AVAHI_PROTO_INET || aprotocol == AVAHI_PROTO_INET6);
-
- if (!AVAHI_IF_VALID(interface)) {
- avahi_server_set_errno(server, AVAHI_ERR_INVALID_INTERFACE);
- return NULL;
- }
-
- if (name && !avahi_is_valid_service_name(name)) {
- avahi_server_set_errno(server, AVAHI_ERR_INVALID_SERVICE_NAME);
- return NULL;
- }
-
- if (!avahi_is_valid_service_type(type)) {
- avahi_server_set_errno(server, AVAHI_ERR_INVALID_SERVICE_TYPE);
- return NULL;
- }
-
- if (domain && !avahi_is_valid_domain_name(domain)) {
- avahi_server_set_errno(server, AVAHI_ERR_INVALID_DOMAIN_NAME);
- return NULL;
- }
+ 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, AVAHI_PROTO_VALID(aprotocol), AVAHI_ERR_INVALID_PROTOCOL);
+ AVAHI_CHECK_VALIDITY_RETURN_NULL(server, !domain || avahi_is_valid_domain_name(domain), AVAHI_ERR_INVALID_DOMAIN_NAME);
+ AVAHI_CHECK_VALIDITY_RETURN_NULL(server, !name || avahi_is_valid_service_name(name), AVAHI_ERR_INVALID_SERVICE_NAME);
+ AVAHI_CHECK_VALIDITY_RETURN_NULL(server, avahi_is_valid_service_type_strict(type), AVAHI_ERR_INVALID_SERVICE_TYPE);
+ AVAHI_CHECK_VALIDITY_RETURN_NULL(server, AVAHI_FLAGS_VALID(flags, AVAHI_LOOKUP_USE_WIDE_AREA|AVAHI_LOOKUP_USE_MULTICAST|AVAHI_LOOKUP_NO_TXT|AVAHI_LOOKUP_NO_ADDRESS), AVAHI_ERR_INVALID_FLAGS);