-
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.