dns-domain: change dns_srv_type_is_valid() return value to bool

For similar reasons as dns_name_is_root() got changed in the previous
commit.
This commit is contained in:
Lennart Poettering
2015-11-25 22:00:07 +01:00
parent dc477e7385
commit 7e8131e9c6
4 changed files with 29 additions and 37 deletions
+2 -7
View File
@@ -1041,13 +1041,8 @@ static int bus_method_resolve_service(sd_bus_message *message, void *userdata, s
if (isempty(type))
type = NULL;
else {
r = dns_srv_type_verify(type);
if (r < 0)
return r;
if (r == 0)
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid SRV service type '%s'", type);
}
else if (!dns_srv_type_is_valid(type))
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid SRV service type '%s'", type);
r = dns_name_is_valid(domain);
if (r < 0)
+6 -8
View File
@@ -838,12 +838,12 @@ static bool srv_type_label_is_valid(const char *label, size_t n) {
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];
@@ -851,18 +851,16 @@ int dns_srv_type_verify(const char *name) {
/* 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++;
}
@@ -901,7 +899,7 @@ int dns_service_join(const char *name, const char *type, const char *domain, cha
assert(domain);
assert(ret);
if (!dns_srv_type_verify(type))
if (!dns_srv_type_is_valid(type))
return -EINVAL;
if (!name)
+1 -2
View File
@@ -72,8 +72,7 @@ bool dns_name_is_single_label(const char *name);
int dns_name_to_wire_format(const char *domain, uint8_t *buffer, size_t len);
int dns_srv_type_verify(const char *name);
bool dns_srv_type_is_valid(const char *name);
bool dns_service_name_is_valid(const char *name);
int dns_service_join(const char *name, const char *type, const char *domain, char **ret);
+20 -20
View File
@@ -327,27 +327,27 @@ static void test_dns_service_name_is_valid(void) {
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) {
static void test_dns_srv_type_is_valid(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_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_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);
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) {
@@ -443,7 +443,7 @@ int main(int argc, char *argv[]) {
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();