{"id":1299,"date":"2009-11-30T22:22:37","date_gmt":"2009-11-30T21:22:37","guid":{"rendered":"http:\/\/daniel.haxx.se\/blog\/?p=1299"},"modified":"2009-11-30T22:22:37","modified_gmt":"2009-11-30T21:22:37","slug":"c-ares-1-7-0","status":"publish","type":"post","link":"https:\/\/daniel.haxx.se\/blog\/2009\/11\/30\/c-ares-1-7-0\/","title":{"rendered":"c-ares 1.7.0"},"content":{"rendered":"<p>The first <a href=\"http:\/\/c-ares.haxx.se\/\">c-ares <\/a>release so far in 2009 took place today when we shipped c-ares 1.7.0 and uploaded it to the web site.<\/p>\n<p>News this time include:<\/p>\n<ul>\n<li>Added <a href=\"http:\/\/c-ares.haxx.se\/ares_library_init.html\">ares_library_init<\/a>() and <a href=\"http:\/\/c-ares.haxx.se\/ares_library_cleanup.html\">ares_library_cleanup<\/a>()<\/li>\n<li>Added ares_parse_srv_reply(), ares_parse_txt_reply() and ares_free_data()<\/li>\n<li>in6_addr is not used in ares.h anymore, but a private ares_in6_addr is<br \/>\ninstead declared and used<\/li>\n<li>ares_gethostbyname() now supports &#8216;AF_UNSPEC&#8217; as a family for resolving<br \/>\neither AF_INET6 or AF_INET<\/li>\n<li>a build-time configured ares_socklen_t is now used instead of socklen_t<\/li>\n<li>new &#8211;enable-curldebug configure option<\/li>\n<li>ARES_ECANCELLED is now sent as reason for ares_cancel()<\/li>\n<li>new &#8211;enable-symbol-hiding configure option<\/li>\n<li>new Makefile.msvc for any MSVC compiler or MS Visual Studio version<\/li>\n<li>addrttl and addr6ttl structs renamed to ares_addrttl and ares_addr6ttl<\/li>\n<li>naming convention for libraries built with MSVC, see README.msvc<\/li>\n<\/ul>\n<p>The set of bugfixes done include these:<\/p>\n<ul>\n<li>ares_parse_*_reply() functions now return ARES_EBADRESP instead of<br \/>\nARES_EBADNAME if the name in the response failed to decode<\/li>\n<li>only expose\/export symbols starting with &#8216;ares_&#8217;<\/li>\n<li>fix \\Device\\TCP handle leaks triggered by buggy iphlpapi.dll<\/li>\n<li>init without internet gone no longer fails<\/li>\n<li>out of bounds memory overwrite triggered with malformed \/etc\/hosts file<\/li>\n<li>function prototypes in man pages out of sync with ares.h<\/li>\n<\/ul>\n<p>As usual, c-ares would be nothing without the fierce and skillful help provided by a team of volunteer hackers. We always need more help and assitance, join the c-ares mailing list and join in the fun!<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/c-ares.haxx.se\/\"><img loading=\"lazy\" decoding=\"async\" class=\"size-thumbnail wp-image-1412  aligncenter\" title=\"c-ares\" src=\"http:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2009\/11\/cares-150x52.png\" alt=\"c-ares\" width=\"150\" height=\"52\" srcset=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2009\/11\/cares-150x52.png 150w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2009\/11\/cares-300x104.png 300w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2009\/11\/cares.png 460w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The first c-ares release so far in 2009 took place today when we shipped c-ares 1.7.0 and uploaded it to the web site. News this time include: Added ares_library_init() and ares_library_cleanup() Added ares_parse_srv_reply(), ares_parse_txt_reply() and ares_free_data() in6_addr is not used in ares.h anymore, but a private ares_in6_addr is instead declared and used ares_gethostbyname() now supports &hellip; <a href=\"https:\/\/daniel.haxx.se\/blog\/2009\/11\/30\/c-ares-1-7-0\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">c-ares 1.7.0<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[239,6],"tags":[213,95],"class_list":["post-1299","post","type-post","status-publish","format-standard","hentry","category-c-ares-floss","category-floss","tag-c-ares","tag-release"],"_links":{"self":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/1299","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/comments?post=1299"}],"version-history":[{"count":7,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/1299\/revisions"}],"predecessor-version":[{"id":1417,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/1299\/revisions\/1417"}],"wp:attachment":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/media?parent=1299"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/categories?post=1299"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/tags?post=1299"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}