summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--avahi-core/query-sched.c20
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);