Skip to content

Expose library/utility functions to tools#860

Merged
bradh352 merged 12 commits intoc-ares:mainfrom
bradh352:semi-public
Aug 22, 2024
Merged

Expose library/utility functions to tools#860
bradh352 merged 12 commits intoc-ares:mainfrom
bradh352:semi-public

Conversation

@bradh352
Copy link
Member

@bradh352 bradh352 commented Aug 21, 2024

The tools like adig and ahost can take advantage of some of the library functions within c-ares. We can't really split these library functions into a helper library without possibly breaking users. Technically if we could guarantee they rely on pkg-config or cmake helpers we could make it work ... we can revisit that in the future, maybe if we make a c-ares 2.0 where people might expect more breakage (but I still wouldn't want to break API/ABI).

So what this does is it just exports some symbols in headers that aren't distributed so end users aren't meant to use the symbols, but any utilities or tests built by c-ares can. It does clutter up some of the namespace, but all these symbols are guaranteed to be prefixed with ares_ so there shouldn't ever be symbol clashes due to this for end users and its not so many symbols that it should affect any load times.

There will be zero API/ABI guarantees for these symbols. They can change from release to release, this is ok since they are not public.

I'm not entirely thrilled with doing this solution, but I want to avoid thing like hand-written parsers, such as is used in #856.

Authored-By: Brad House (@bradh352)

@bradh352 bradh352 merged commit 7f19f16 into c-ares:main Aug 22, 2024
@bradh352 bradh352 deleted the semi-public branch August 22, 2024 23:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant