return true;
}
-int dns_srv_type_verify(const char *name) {
+bool dns_srv_type_is_valid(const char *name) {
unsigned c = 0;
int r;
if (!name)
- return 0;
+ return false;
for (;;) {
char label[DNS_LABEL_MAX];
/* This more or less implements RFC 6335, Section 5.1 */
r = dns_label_unescape(&name, label, sizeof(label));
- if (r == -EINVAL)
- return 0;
if (r < 0)
- return r;
+ return false;
if (r == 0)
break;
if (c >= 2)
- return 0;
+ return false;
if (!srv_type_label_is_valid(label, r))
- return 0;
+ return false;
c++;
}
assert(domain);
assert(ret);
- if (!dns_srv_type_verify(type))
+ if (!dns_srv_type_is_valid(type))
return -EINVAL;
if (!name)
assert_se(!dns_service_name_is_valid("this is an overly long string that is certainly longer than 63 characters"));
}
-static void test_dns_srv_type_verify(void) {
-
- assert_se(dns_srv_type_verify("_http._tcp") > 0);
- assert_se(dns_srv_type_verify("_foo-bar._tcp") > 0);
- assert_se(dns_srv_type_verify("_w._udp") > 0);
- assert_se(dns_srv_type_verify("_a800._tcp") > 0);
- assert_se(dns_srv_type_verify("_a-800._tcp") > 0);
-
- assert_se(dns_srv_type_verify(NULL) == 0);
- assert_se(dns_srv_type_verify("") == 0);
- assert_se(dns_srv_type_verify("x") == 0);
- assert_se(dns_srv_type_verify("_foo") == 0);
- assert_se(dns_srv_type_verify("_tcp") == 0);
- assert_se(dns_srv_type_verify("_") == 0);
- assert_se(dns_srv_type_verify("_foo.") == 0);
- assert_se(dns_srv_type_verify("_föo._tcp") == 0);
- assert_se(dns_srv_type_verify("_f\no._tcp") == 0);
- assert_se(dns_srv_type_verify("_800._tcp") == 0);
- assert_se(dns_srv_type_verify("_-800._tcp") == 0);
- assert_se(dns_srv_type_verify("_-foo._tcp") == 0);
- assert_se(dns_srv_type_verify("_piep._foo._udp") == 0);
+static void test_dns_srv_type_is_valid(void) {
+
+ assert_se(dns_srv_type_is_valid("_http._tcp"));
+ assert_se(dns_srv_type_is_valid("_foo-bar._tcp"));
+ assert_se(dns_srv_type_is_valid("_w._udp"));
+ assert_se(dns_srv_type_is_valid("_a800._tcp"));
+ assert_se(dns_srv_type_is_valid("_a-800._tcp"));
+
+ assert_se(!dns_srv_type_is_valid(NULL));
+ assert_se(!dns_srv_type_is_valid(""));
+ assert_se(!dns_srv_type_is_valid("x"));
+ assert_se(!dns_srv_type_is_valid("_foo"));
+ assert_se(!dns_srv_type_is_valid("_tcp"));
+ assert_se(!dns_srv_type_is_valid("_"));
+ assert_se(!dns_srv_type_is_valid("_foo."));
+ assert_se(!dns_srv_type_is_valid("_föo._tcp"));
+ assert_se(!dns_srv_type_is_valid("_f\no._tcp"));
+ assert_se(!dns_srv_type_is_valid("_800._tcp"));
+ assert_se(!dns_srv_type_is_valid("_-800._tcp"));
+ assert_se(!dns_srv_type_is_valid("_-foo._tcp"));
+ assert_se(!dns_srv_type_is_valid("_piep._foo._udp"));
}
static void test_dns_service_join_one(const char *a, const char *b, const char *c, int r, const char *d) {
test_dns_name_is_valid();
test_dns_name_to_wire_format();
test_dns_service_name_is_valid();
- test_dns_srv_type_verify();
+ test_dns_srv_type_is_valid();
test_dns_service_join();
test_dns_service_split();
test_dns_name_change_suffix();