This is would be my first contribution to the library and before starting to code, I would like to have your opinion on the following points:
I am thinking on implementing a "reinit" function based on the following closed PR (https://github.com/c-ares/c-ares/pull/272).
My main concern is to trigger a "reinit" when the content of the resolv.conf file has changed.
1. "ares_reinit" would be a public function, library consumers must have the possibility to trigger a reinit.
2. Is it possible to call the following functions "init_by_options", "init_by_env" or "init_by_resolv" without worrying to break
something on a channel? Would like to reuse those functions...
3. Based on the resolvconf scenario, we should call "reinit" when the file's "mtime" has changed. In order to track a change, a new variable would be added to the "ares_channeldata" struct.
3.1 Each time "ares_gethostbyname" is triggered, we should check if the file has changed (by comparing what we have in "ares_channeldata" and the actual "mtime").
4. Having c-ares to trigger a reinit by itself should be optional, the consumer of the library must be aware of that.
I look forward to have your feedback!
Received on 2020-06-11