[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-devel] [task #7017] Implement DNS client

From: Simon Goldschmidt
Subject: [lwip-devel] [task #7017] Implement DNS client
Date: Mon, 19 Nov 2007 19:34:21 +0000
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv: Gecko/20071025 Firefox/

Follow-up Comment #51, task #7017 (project lwip):

Uhhm, hust a question, but has anyone really stress-tested this DNS client? I
just did and discovered some issues. Since this is not really my code, I'm
posting them here (although I'm happy to change the code if you let me ;-)

- When a response is received, the name of this response is not checked
against the name in the dns_table entry, thus giving wrong results when
reusing entries (because a previous entry was aborted that had the same
transaction ID, used as the table index)

-> Possible solutions:
 1. don't abort pending request until timed out
 2. don't use transaction ID directly as index, but use it as a unique id and
search for that ID in the array (of course slower than the current
implementation but still faster than comparing the name)

- Every call to dns_gethostbyname results in sending queries for ALL entries
in dns_table resulting in the same request being sent many times.

-> Don't use dns_check_entries() in dns_gethostbyname()

- struct dns_query and function dns_query() have the same name - leads to
warnings with many compilers

- (This one comes from reading the code) If dns_query() doesn't find an empty
entry, it reuses the oldest entry, even if that is still waiting for a
response (while others might be completed)


Reply to this item at:


  Nachricht geschickt von/durch Savannah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]