diff options
author | Federico Lucifredi <flucifredi@acm.org> | 2008-01-28 01:53:45 +0000 |
---|---|---|
committer | Federico Lucifredi <flucifredi@acm.org> | 2008-01-28 01:53:45 +0000 |
commit | 6fcd179ecd7cd04a6170458e964d1ffd8e41a86d (patch) | |
tree | c011deb953b8909b35923876ad558f3f32525a1e /avahi-core/query-sched.c | |
parent | 731c6749bfa3b0766a8646bc24777e117e4bee26 (diff) |
importing code to append SEC signatures to records, part II.
git-svn-id: file:///home/lennart/svn/public/avahi/branches/federico2@1745 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe
Diffstat (limited to 'avahi-core/query-sched.c')
-rw-r--r-- | avahi-core/query-sched.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/avahi-core/query-sched.c b/avahi-core/query-sched.c index 3a363f2..e6b2613 100644 --- a/avahi-core/query-sched.c +++ b/avahi-core/query-sched.c @@ -237,6 +237,7 @@ static void append_known_answers_and_send(AvahiQueryScheduler *s, AvahiDnsPacket FILE *fp; /* used to load the private keys */ EVP_PKEY *private_key; /* key used in signing */ AvahiRecord *r; /* used to handle records */ + AvahiRecord *s; /* used to handle signatures */ assert(s); assert(p); @@ -269,7 +270,7 @@ static void append_known_answers_and_send(AvahiQueryScheduler *s, AvahiDnsPacket r = avahi_get_local_zsk_pubkey(ka->record->ttl); printf("appended to record type %d named %s at entrypoint\n", ka->record->key->type, ka->record->key->name); - /*append the public key record */ + /*append the public key record DNSKEY RR */ result = avahi_dns_packet_append_record(p, r, 0, 0); if (!result) { @@ -292,6 +293,19 @@ static void append_known_answers_and_send(AvahiQueryScheduler *s, AvahiDnsPacket fclose(fp); + /* generate RRSIG record for transitive trust */ + s = avahi_dnssec_sign_record(r, ka->record->ttl, private_key) + + /*append the transitive trust record RRSIG RR */ + result = avahi_dns_packet_append_record(p, s, 0, 0); + + if (!result) { + avahi_log_error("appending of rdata failed."); + assert(result); + } + + avahi_dns_packet_set_field(p, AVAHI_DNS_FIELD_ARCOUNT, 2); /*increment record count for ARCOUNT */ + avahi_interface_send_packet(s->interface, p); avahi_dns_packet_free(p); |