ret = kr_resolve_query_finalize(&task->req, NULL, addr,
handle->type == UV_UDP ? SOCK_DGRAM : SOCK_STREAM,
pkt);
- if (ret == KNOT_STATE_FAIL) {
- return kr_error(EINVAL); /* @todo: What error code should it return. */
+ if (ret != kr_ok()) {
+ return ret;
}
}
/* Send using given protocol */
struct kr_rplan *rplan = &request->rplan;
if (knot_wire_get_qr(packet->wire) != 0) {
- return request->state;
+ return kr_ok();
}
/* No query left for resolution */
if (kr_rplan_empty(rplan)) {
- return KNOT_STATE_FAIL;
+ return kr_error(EINVAL);
}
/* If we have deferred answers, resume them. */
struct kr_query *qry = array_tail(rplan->pending);
* building the query i.e. the space needed for the cookie
* cannot be allocated in the cookie layer. */
if (!outbound_request_update_cookies(request, src, dst)) {
- return KNOT_STATE_FAIL;
+ return kr_error(EINVAL);
}
}
#endif /* defined(ENABLE_COOKIES) */
int ret = query_finalize(request, qry, packet);
if (ret != 0) {
- return KNOT_STATE_FAIL;
+ return kr_error(EINVAL);
}
WITH_DEBUG {
}
}
- return request->state;
+ return kr_ok();
}
int kr_resolve_finish(struct kr_request *request, int state)
* @param dst address of the name server
* @param type used socket type (SOCK_STREAM, SOCK_DGRAM)
* @param packet [in,out] query packet to be finalised
- * @return any state
+ * @return kr_ok() or error code
*/
KR_EXPORT
int kr_resolve_query_finalize(struct kr_request *request, struct sockaddr *src,