* sd-resolve:
- make sure event loop integration works similar to event loop integration in other libs
- maybe drop _free() call, introduce _unref() instead
- - sd_resolve_freeanswer() is probably pointless, we don't define such a function for any other return values, but expect people to call free directly
- maybe simplify function calls that take a sd_resolve_query object, to not also require the matching sd_resolve?
- maybe drop the "n_proc" parameter to sd_resolve_new()?
- change all functions to return "int" and negative errno errors
#include "util.h"
DEFINE_TRIVIAL_CLEANUP_FUNC(sd_resolve*, sd_resolve_free);
-DEFINE_TRIVIAL_CLEANUP_FUNC(unsigned char *, sd_resolve_freeanswer);
DEFINE_TRIVIAL_CLEANUP_FUNC(struct addrinfo*, sd_resolve_freeaddrinfo);
#define _cleanup_resolve_free_ _cleanup_(sd_resolve_freep)
-#define _cleanup_resolve_answer_free_ _cleanup_(sd_resolve_freeanswerp)
#define _cleanup_resolve_addrinfo_free_ _cleanup_(sd_resolve_freeaddrinfop)
errno = saved_errno;
}
-void sd_resolve_freeanswer(unsigned char *answer) {
- int saved_errno = errno;
-
- if (!answer)
- return;
-
- free(answer);
-
- errno = saved_errno;
-}
-
int sd_resolve_isdone(sd_resolve *resolve, sd_resolve_query*q) {
assert(resolve);
assert(q);
int r = 1, ret;
_cleanup_resolve_free_ sd_resolve *resolve = NULL;
_cleanup_resolve_addrinfo_free_ struct addrinfo *ai = NULL;
- _cleanup_resolve_answer_free_ unsigned char *srv = NULL;
+ _cleanup_free_ unsigned char *srv = NULL;
sd_resolve_query *q1, *q2, *q3;
struct addrinfo hints = {};
struct sockaddr_in sa = {};