A stack which works with or without an Mbed os library. Provides IPv4 or IPv6 with a full 1500 byte buffer.
Dependents: oldheating gps motorhome heating
Diff: udp/dns/dnsreply.cpp
- Revision:
- 32:679654f2d023
- Parent:
- 30:e34173b7585c
- Child:
- 35:93c39d260a83
--- a/udp/dns/dnsreply.cpp Fri Aug 11 17:41:52 2017 +0000 +++ b/udp/dns/dnsreply.cpp Thu Aug 17 14:21:02 2017 +0000 @@ -4,10 +4,11 @@ #include "ip4.h" #include "ip6.h" #include "ar.h" -#include "dnscache.h" +#include "dnscache.h" #include "dns.h" #include "dnshdr.h" #include "dnsname.h" +#include "dhcp.h" #define DEBUG false @@ -167,13 +168,16 @@ if (DnsReplyRecordNameAsIp4 && DnsReplyName[0] ) ArAddName4(DnsReplyRecordNameAsIp4, DnsReplyName, dnsProtocol); if (DnsReplyRecordNameAsIp6[0] && DnsReplyName[0] ) ArAddName6(DnsReplyRecordNameAsIp6, DnsReplyName, dnsProtocol); } - -static void sendToDn(int dnsProtocol) +static void sendToDnsCache(int dnsProtocol) { - if (DnsReplyIp4 && DnsReplyRecordName[0]) DnsCacheAddIp4Record(DnsReplyIp4, DnsReplyRecordName, dnsProtocol); - if (DnsReplyIp6[0] && DnsReplyRecordName[0]) DnsCacheAddIp6Record(DnsReplyIp6, DnsReplyRecordName, dnsProtocol); - if (DnsReplyRecordNameAsIp4 && DnsReplyName[0] ) DnsCacheAddIp4Record(DnsReplyRecordNameAsIp4, DnsReplyName, dnsProtocol); - if (DnsReplyRecordNameAsIp6[0] && DnsReplyName[0] ) DnsCacheAddIp6Record(DnsReplyRecordNameAsIp6, DnsReplyName, dnsProtocol); + char strippedName[100]; + if (DnsReplyRecordName[0]) DnsStripNameFromFullName(dnsProtocol, DnsReplyRecordName, sizeof(strippedName), strippedName); + if (DnsReplyName[0] ) DnsStripNameFromFullName(dnsProtocol, DnsReplyName , sizeof(strippedName), strippedName); + + if (DnsReplyIp4 && DnsReplyRecordName[0]) DnsCacheAddIp4Record(DnsReplyIp4, strippedName, dnsProtocol); + if (DnsReplyIp6[0] && DnsReplyRecordName[0]) DnsCacheAddIp6Record(DnsReplyIp6, strippedName, dnsProtocol); + if (DnsReplyRecordNameAsIp4 && DnsReplyName[0] ) DnsCacheAddIp4Record(DnsReplyRecordNameAsIp4, strippedName, dnsProtocol); + if (DnsReplyRecordNameAsIp6[0] && DnsReplyName[0] ) DnsCacheAddIp6Record(DnsReplyRecordNameAsIp6, strippedName, dnsProtocol); } int DnsReplyHandle(int dnsProtocol, int *pSize) { @@ -191,7 +195,7 @@ if (scanAnswer()) return DO_NOTHING; readAnswer(); sendToAr(dnsProtocol); - sendToDn(dnsProtocol); + sendToDnsCache(dnsProtocol); } return DO_NOTHING;