Use c-ares for DNS resolving

XMLWordPrintable

    • Type: Change Request
    • Resolution: Duplicate
    • Priority: Minor
    • None
    • Affects Version/s: 2.0.0
    • Component/s: None
    • None
    • Environment:
      Alpine Linux (uClibc)

      uClibc does not have res_send() implemented so 2.0.0 fails to build completely, while 1.8 works like a charm. (see https://support.zabbix.com/browse/ZBX-5197)

      The res_send() was introduced as a response to https://support.zabbix.com/browse/ZBXNEXT-467 (you cannot pick DNS over tcp due to limitation in libresolv).

      I suggest using the c-ares library for dns resolution. The API looks fairly similar to libresolv, so the porting should not bee a too big job.
      Benefits:

      • all platforms will have full DNS functionality
      • you will be able to choose between TCP or UDP for DNS lookups
      • since c-ares is available for both *nix and windows, you can use same code for all platforms (you can get rid of lots of the #if #else in code)

      Drawbacks:

      • Yet another external dependency. (curl will most likely already depend on c-ares though)

      It could be added an an optional dependency but that would make the #if #else logic alot worse than today.

            Assignee:
            Unassigned
            Reporter:
            Natanael Copa
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: