projects
/
project
/
mdnsd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Keep source sockaddr for every cached DNS record
[project/mdnsd.git]
/
dns.h
diff --git
a/dns.h
b/dns.h
index 791159f7b7a5b571006809a27aeb64807b5f0257..38ab41f85b8df4e05fed15af21bde1226140d6c0 100644
(file)
--- a/
dns.h
+++ b/
dns.h
@@
-40,7
+40,7
@@
#define MAX_NAME_LEN 8096
#define MAX_DATA_LEN 8096
#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;
struct dns_header {
uint16_t id;
@@
-55,28
+55,29
@@
struct dns_srv_data {
uint16_t priority;
uint16_t weight;
uint16_t port;
uint16_t priority;
uint16_t weight;
uint16_t port;
-} __attribute__((packed
, aligned(2)
));
+} __attribute__((packed));
struct dns_answer {
uint16_t type;
uint16_t class;
uint32_t ttl;
uint16_t rdlength;
struct dns_answer {
uint16_t type;
uint16_t class;
uint32_t ttl;
uint16_t rdlength;
-} __attribute__((packed
, aligned(2)
));
+} __attribute__((packed));
struct dns_question {
uint16_t type;
uint16_t class;
struct dns_question {
uint16_t type;
uint16_t class;
-} __attribute__((packed
, aligned(2)
));
+} __attribute__((packed));
struct interface;
extern int cfg_proto;
extern int cfg_no_subnet;
struct interface;
extern int cfg_proto;
extern int cfg_no_subnet;
-void dns_send_question(struct interface *iface, const char *question, int type, int
un
icast);
+void dns_send_question(struct interface *iface, const char *question, int type, int
mult
icast);
void dns_init_answer(void);
void dns_add_answer(int type, const uint8_t *rdata, uint16_t rdlength, int ttl);
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_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);
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);