Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ability to distinguish between types of DnsException #26

Merged
merged 10 commits into from
Oct 25, 2023

Conversation

lyokha
Copy link
Collaborator

@lyokha lyokha commented Oct 24, 2023

No description provided.

lyokha and others added 10 commits March 28, 2023 12:59
Linux man 3 resolver says:
    Every call to res_ninit() requires a corresponding call to
    res_nclose() to free memory allocated by res_ninit() and subsequent
    calls to res_nquery().
withCResInit which makes sure that allocated resources get correctly
released by wrapping actions following a successful call to c_res_init
in finally handler.
This protects against asynchronous exceptions. If an asynchronous
exception happens somewhere inside of

    rc1 <- c_res_opt_set_use_dnssec stptr
    unless (rc1 == 0) $
        fail "res_init(3) failed"
    resetErrno

then it may leak memory after successful call to res_ninit() inside
c_res_opt_set_use_dnssec.

Note that it is safe to run c_res_close stptr if all fields of stptr
are memzeroed (which is our case before the call to res_ninit()): this
means that wrapping the entire body of withCResInit is safe even if an
asynchronous exception occurs before the call to res_ninit().
@lyokha
Copy link
Collaborator Author

lyokha commented Oct 24, 2023

I don't know how to hide older commits :(

@andreasabel andreasabel merged commit 843f02d into haskell-hvr:master Oct 25, 2023
12 checks passed
@andreasabel
Copy link
Member

Squashing cleaned it up!

Should there be a changelog entry, maybe?

@lyokha
Copy link
Collaborator Author

lyokha commented Oct 25, 2023

Should there be a changelog entry, maybe?

Yes, i think that it makes sense to put this into the changelog for the next release, but this only change seems to be very minor to make a new release.

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.

2 participants