summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2009-04-12 19:03:01 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2009-04-12 19:03:01 +0000
commitef1b439669f7f952633eea3879defb357224eb4c (patch)
treeb8170a8246d754661934927b82cb7090c4653e0c
parente12c90217b8de612d2dfa429a71ad458b1754cf1 (diff)
dnsd: stop using oversized buffer. trim comment.
-rw-r--r--networking/dnsd.c27
1 files changed, 10 insertions, 17 deletions
diff --git a/networking/dnsd.c b/networking/dnsd.c
index 5dbaec1eb..56ede3fca 100644
--- a/networking/dnsd.c
+++ b/networking/dnsd.c
@@ -24,15 +24,10 @@
#define DEBUG 0
enum {
- /* Can tweak this */
+ /* can tweak this */
DEFAULT_TTL = 120,
-/* Cannot get bigger packets than 512 per RFC1035.
- * In practice this can be set considerably smaller:
- * Length of response packet is header (12B) + 2*type(4B) + 2*class(4B) +
- * ttl(4B) + rlen(2B) + r (MAX_NAME_LEN = 21B) +
- * 2*querystring (2 MAX_NAME_LEN = 42B), all together 90 Bytes
- */
+ /* cannot get bigger packets than 512 per RFC1035. */
MAX_PACK_LEN = 512,
IP_STRING_LEN = sizeof(".xxx.xxx.xxx.xxx"),
MAX_NAME_LEN = IP_STRING_LEN - 1 + sizeof(".in-addr.arpa"),
@@ -225,9 +220,9 @@ OPCODE 0 standard query (QUERY)
2 server status request (STATUS)
AA Authoritative Answer - this bit is valid in responses.
Responding name server is an authority for the domain name
- in question section. Answer section may have multiple owner names
- because of aliases. The AA bit corresponds to the name which matches
- the query name, or the first owner name in the answer section.
+ in question section. Answer section may have multiple owner names
+ because of aliases. The AA bit corresponds to the name which matches
+ the query name, or the first owner name in the answer section.
TC TrunCation - this message was truncated.
RD Recursion Desired - this bit may be set in a query and
is copied into the response. If RD is set, it directs
@@ -240,10 +235,10 @@ RCODE Response code.
0 No error condition
1 Format error
2 Server failure - server was unable to process the query
- due to a problem with the name server.
+ due to a problem with the name server.
3 Name Error - meaningful only for responses from
- an authoritative name server. The referenced domain name
- does not exist.
+ an authoritative name server. The referenced domain name
+ does not exist.
4 Not Implemented.
5 Refused.
QDCOUNT number of entries in the question section.
@@ -293,7 +288,7 @@ QTYPE a two octet type of the query.
255 a request for all records
QCLASS a two octet code that specifies the class of the query.
1 the Internet
- (others are historic only)
+ (others are historic only)
255 any class
4.1.3. Resource record format
@@ -464,9 +459,7 @@ int dnsd_main(int argc UNUSED_PARAM, char **argv)
unsigned lsa_size;
int udps, opts;
uint16_t port = 53;
- /* Paranoid sizing: querystring x2 + ttl + outr_rlen + answstr */
- /* I'd rather see process_packet() fixed instead... */
- uint8_t buf[MAX_PACK_LEN * 2 + 4 + 2 + (MAX_NAME_LEN+1)];
+ uint8_t buf[MAX_PACK_LEN + 1];
opts = getopt32(argv, "vi:c:t:p:d", &listen_interface, &fileconf, &sttl, &sport);
//if (opts & 0x1) // -v