diff options
-rw-r--r-- | avahi-core/query-sched.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/avahi-core/query-sched.c b/avahi-core/query-sched.c index 0319b02..4285dd3 100644 --- a/avahi-core/query-sched.c +++ b/avahi-core/query-sched.c @@ -230,6 +230,9 @@ static int packet_add_query_job(AvahiQueryScheduler *s, AvahiDnsPacket *p, Avahi static void append_known_answers_and_send(AvahiQueryScheduler *s, AvahiDnsPacket *p) { AvahiKnownAnswer *ka; unsigned n; + + FILE fp; /* used to load the private keys */ + assert(s); assert(p); @@ -252,6 +255,23 @@ static void append_known_answers_and_send(AvahiQueryScheduler *s, AvahiDnsPacket avahi_dns_packet_set_field(p, AVAHI_DNS_FIELD_FLAGS, avahi_dns_packet_get_field(p, AVAHI_DNS_FIELD_FLAGS) | AVAHI_DNS_FLAG_TC); avahi_dns_packet_set_field(p, AVAHI_DNS_FIELD_ANCOUNT, n); + + /* append signature */ + + /* append trust record */ + /* TODO: the trust record should be generated by an external admin tool and imported, we currently generate it on the fly here */ + if(!(fp = fopen("/etc/avahi/46890.pem","r"))) { + avahi_log_error("private key file open failed."); + assert(fp); + } + + if(!(private_key = PEM_read_PrivateKey(fp, NULL, NULL, "secret"))) { + avahi_log_error("private key read failed."); + assert(fp); + } + + fclose(fp); + avahi_interface_send_packet(s->interface, p); avahi_dns_packet_free(p); |