#define MAX_NAME_LEN 8096
#define MAX_DATA_LEN 8096
-#define C_DNS_SD "_services._dns-sd._udp.local"
+#define C_DNS_SD "_services._dns-sd._udp.local"
struct dns_header {
uint16_t id;
uint16_t answers;
uint16_t authority;
uint16_t additional;
-};
+} __attribute__((packed));
struct dns_srv_data {
uint16_t priority;
extern int cfg_proto;
extern int cfg_no_subnet;
-void dns_send_question(struct interface *iface, const char *question, int type, int multicast);
+void dns_send_question(struct interface *iface, struct sockaddr *to,
+ const char *question, int type, int multicast);
void dns_init_answer(void);
void dns_add_answer(int type, const uint8_t *rdata, uint16_t rdlength, int ttl);
-void dns_send_answer(struct interface *iface, const char *answer);
-void dns_reply_a(struct interface *iface, int ttl);
+void dns_send_answer(struct interface *iface, struct sockaddr *to, const char *answer);
+void dns_reply_a(struct interface *iface, struct sockaddr *to, int ttl);
const char* dns_type_string(uint16_t type);
void dns_handle_packet(struct interface *iface, struct sockaddr *s, uint16_t port, uint8_t *buf, int len);