dns.c Changelog

New in version 20110114

January 17th, 2011
  • Fix bug where dns_srv_print() failed to print a trailing NUL character.

New in version 20100813 (August 16th, 2010)

  • Add socket.c into contrib/. I've been using and developing this for a year or so within other projects. Conceptually it's a simple wrapper around the BSD sockets API that handles DNS lookups and SSL negotiation transparently and asynchronously.
  • After creating a socket with so_open(), the caller sets the appropriate modes, e.g. so_connect() and so_starttls(). The caller can then wait for them to complete (they'll return EAGAIN if necessary), or more conveniently ignore the result and move directly to attempting reads and writes. Errors from the previous states, including EAGAIN, will be returned on any read or write attempts until those states are complete.
  • Use so_pollfd() and so_events() just like the dns.c counterparts. They return, respectively, the appropriate descriptor and event flags depending on which internal state is executing. The application need only worry about issuing logical read/write operations.

New in version 20100709 (July 15th, 2010)

  • Fix MinGW build by adding internal dns_strsep() and DNS_ETIMEDOUT.

New in version 20100708 (July 9th, 2010)

  • Check the validity of the length returned by dns_d_expand() before passing it as the source length to dns_d_cleave() inside of dns_hints_query() else we might do an invalid read. Thanks to Anonymous.
  • Tag rel-20100708 (d493a0f7d8f1d67ef312a7ca3e142660895b32d8).
  • NOTE: Forgot to bump DNS_V_REL for the 20100708 release, and because the new stats interface was in the trunk also should have bumped DNS_V_API. Too late now.

New in version 20100515 (June 8th, 2010)

  • Loop over nameservers resolv.conf:options.attempts times.
  • Enforce SPF canonical name query limits when running MX and PTR mechanisms.
  • Add dns_p_study() to learn and store section ranges.
  • Keep track of section ranges in dns_p_push().
  • Refactor dns_p_merge() to improve performance on large packets.
  • Add dns_p_make() for malloc'ing and initializing a new packet.
  • Enforce SPF term query limits. Changed the layout of struct spf_limits in anticipation of enforcing limits on MX and PTR host queries.
  • Fix bug in the VM instruction generator for jump indices of more than 255.

New in version 20100416 (April 18th, 2010)

  • Added SSHFP support.
  • Tag rel-20100416 (5bd9963e693510e485a1f081f6c98a95d84debfe).
  • 90% passage rate on the OpenSPF test suite. Need to simulate timeouts to pass the TempError tests. Some of the grammar tests are debatable.
  • Added OpenSPF YAML test suite processor. Requires libyaml.

New in version 0.5 (April 17th, 2009)

  • Fix bug where we didn't fallback from "bind" method to "file" method if the recurse flag was disabled.
  • Search generator may have changed the qname. So, in dns_ai_nextent() canonicalize the qname from the answer, not the qname originally submitted to the resolver.