summaryrefslogtreecommitdiffstats
path: root/avahi-core/entry.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2005-10-27 19:11:34 +0000
committerLennart Poettering <lennart@poettering.net>2005-10-27 19:11:34 +0000
commitf6712902a92eb82b6c8d7e7fd0980a20a716fa0d (patch)
tree039df978bd7ea226c54fdce3aa6b17ee5728d492 /avahi-core/entry.c
parenta950fddba0cc84e64bc72eb621429ba05540e98e (diff)
* format unknown DNS records according to RFC3597
* add some DNS class and type validity checks to avahi_server_add() * move DNS type and class definitions to avahi-common/defs.h git-svn-id: file:///home/lennart/svn/public/avahi/trunk@896 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe
Diffstat (limited to 'avahi-core/entry.c')
-rw-r--r--avahi-core/entry.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/avahi-core/entry.c b/avahi-core/entry.c
index fd0e233..3621fe3 100644
--- a/avahi-core/entry.c
+++ b/avahi-core/entry.c
@@ -176,6 +176,15 @@ static AvahiEntry * server_add_internal(
AVAHI_CHECK_VALIDITY_RETURN_NULL(s, r->ttl != 0, AVAHI_ERR_INVALID_TTL);
AVAHI_CHECK_VALIDITY_RETURN_NULL(s, !avahi_key_is_pattern(r->key), AVAHI_ERR_IS_PATTERN);
AVAHI_CHECK_VALIDITY_RETURN_NULL(s, avahi_record_is_valid(r), AVAHI_ERR_INVALID_RECORD);
+ AVAHI_CHECK_VALIDITY_RETURN_NULL(s, r->key->clazz == AVAHI_DNS_CLASS_IN, AVAHI_ERR_INVALID_DNS_CLASS);
+ AVAHI_CHECK_VALIDITY_RETURN_NULL(s,
+ (r->key->type != 0) &&
+ (r->key->type != AVAHI_DNS_TYPE_ANY) &&
+ (r->key->type != AVAHI_DNS_TYPE_OPT) &&
+ (r->key->type != AVAHI_DNS_TYPE_TKEY) &&
+ (r->key->type != AVAHI_DNS_TYPE_TSIG) &&
+ (r->key->type != AVAHI_DNS_TYPE_IXFR) &&
+ (r->key->type != AVAHI_DNS_TYPE_AXFR), AVAHI_ERR_INVALID_DNS_TYPE);
if (flags & AVAHI_PUBLISH_UPDATE) {
AvahiRecord *old_record;