return NULL;
}
-sd_resolve* sd_resolve_new(unsigned n_proc) {
+_public_ sd_resolve* sd_resolve_new(unsigned n_proc) {
sd_resolve *resolve = NULL;
int i, r;
if (n_proc > MAX_WORKERS)
n_proc = MAX_WORKERS;
- resolve = malloc(sizeof(sd_resolve));
+ resolve = new(sd_resolve, 1);
if (!resolve) {
errno = ENOMEM;
goto fail;
return NULL;
}
-void sd_resolve_free(sd_resolve *resolve) {
+_public_ void sd_resolve_free(sd_resolve *resolve) {
int i;
int saved_errno = errno;
unsigned p;
errno = saved_errno;
}
-int sd_resolve_fd(sd_resolve *resolve) {
+_public_ int sd_resolve_fd(sd_resolve *resolve) {
assert(resolve);
return resolve->fds[RESPONSE_RECV_FD];
if (*length < l)
return NULL;
- ai = malloc(sizeof(struct addrinfo));
+ ai = new(struct addrinfo, 1);
if (!ai)
goto fail;
return 0;
}
-int sd_resolve_wait(sd_resolve *resolve, int block) {
+_public_ int sd_resolve_wait(sd_resolve *resolve, int block) {
int handled = 0;
assert(resolve);
resolve->current_index -= MAX_QUERIES;
}
- q = resolve->queries[resolve->current_index] = malloc(sizeof(sd_resolve_query));
+ q = resolve->queries[resolve->current_index] = new(sd_resolve_query, 1);
if (!q) {
errno = ENOMEM;
return NULL;
return q;
}
-sd_resolve_query* sd_resolve_getaddrinfo(sd_resolve *resolve, const char *node, const char *service, const struct addrinfo *hints) {
+_public_ sd_resolve_query* sd_resolve_getaddrinfo(sd_resolve *resolve, const char *node, const char *service, const struct addrinfo *hints) {
AddrInfoRequest data[BUFSIZE/sizeof(AddrInfoRequest) + 1] = {};
AddrInfoRequest *req = data;
sd_resolve_query *q;
return NULL;
}
-int sd_resolve_getaddrinfo_done(sd_resolve *resolve, sd_resolve_query* q, struct addrinfo **ret_res) {
+_public_ int sd_resolve_getaddrinfo_done(sd_resolve *resolve, sd_resolve_query* q, struct addrinfo **ret_res) {
int ret;
assert(resolve);
assert(q);
return ret;
}
-sd_resolve_query* sd_resolve_getnameinfo(sd_resolve *resolve, const struct sockaddr *sa, socklen_t salen, int flags, int gethost, int getserv) {
+_public_ sd_resolve_query* sd_resolve_getnameinfo(sd_resolve *resolve, const struct sockaddr *sa, socklen_t salen, int flags, int gethost, int getserv) {
NameInfoRequest data[BUFSIZE/sizeof(NameInfoRequest) + 1] = {};
NameInfoRequest *req = data;
sd_resolve_query *q;
return NULL;
}
-int sd_resolve_getnameinfo_done(sd_resolve *resolve, sd_resolve_query* q, char *ret_host, size_t hostlen, char *ret_serv, size_t servlen) {
+_public_ int sd_resolve_getnameinfo_done(sd_resolve *resolve, sd_resolve_query* q, char *ret_host, size_t hostlen, char *ret_serv, size_t servlen) {
int ret;
assert(resolve);
assert(q);
return NULL;
}
-sd_resolve_query* sd_resolve_res_query(sd_resolve *resolve, const char *dname, int class, int type) {
+_public_ sd_resolve_query* sd_resolve_res_query(sd_resolve *resolve, const char *dname, int class, int type) {
return resolve_res(resolve, REQUEST_RES_QUERY, dname, class, type);
}
-sd_resolve_query* sd_resolve_res_search(sd_resolve *resolve, const char *dname, int class, int type) {
+_public_ sd_resolve_query* sd_resolve_res_search(sd_resolve *resolve, const char *dname, int class, int type) {
return resolve_res(resolve, REQUEST_RES_SEARCH, dname, class, type);
}
-int sd_resolve_res_done(sd_resolve *resolve, sd_resolve_query* q, unsigned char **answer) {
+_public_ int sd_resolve_res_done(sd_resolve *resolve, sd_resolve_query* q, unsigned char **answer) {
int ret;
assert(resolve);
assert(q);
return ret < 0 ? -errno : ret;
}
-sd_resolve_query* sd_resolve_getnext(sd_resolve *resolve) {
+_public_ sd_resolve_query* sd_resolve_get_next(sd_resolve *resolve) {
assert(resolve);
return resolve->done_head;
}
-int sd_resolve_getnqueries(sd_resolve *resolve) {
+_public_ int sd_resolve_get_n_queries(sd_resolve *resolve) {
assert(resolve);
return resolve->n_queries;
}
-void sd_resolve_cancel(sd_resolve *resolve, sd_resolve_query* q) {
+_public_ void sd_resolve_cancel(sd_resolve *resolve, sd_resolve_query* q) {
int i;
int saved_errno = errno;
errno = saved_errno;
}
-void sd_resolve_freeaddrinfo(struct addrinfo *ai) {
+_public_ void sd_resolve_freeaddrinfo(struct addrinfo *ai) {
int saved_errno = errno;
while (ai) {
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) {
+_public_ int sd_resolve_isdone(sd_resolve *resolve, sd_resolve_query*q) {
assert(resolve);
assert(q);
assert(q->resolve == resolve);
return q->done;
}
-void sd_resolve_setuserdata(sd_resolve *resolve, sd_resolve_query *q, void *userdata) {
+_public_ void sd_resolve_setuserdata(sd_resolve *resolve, sd_resolve_query *q, void *userdata) {
assert(q);
assert(resolve);
assert(q->resolve = resolve);
q->userdata = userdata;
}
-void* sd_resolve_getuserdata(sd_resolve *resolve, sd_resolve_query *q) {
+_public_ void* sd_resolve_getuserdata(sd_resolve *resolve, sd_resolve_query *q) {
assert(q);
assert(resolve);
assert(q->resolve = resolve);