From: Karel Slany Date: Mon, 25 Jul 2016 11:33:45 +0000 (+0200) Subject: Function kr_resolve_query_finalize() returns error code. X-Git-Tag: v1.1.0~2^2~29 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=82c80c31823d22fe8573303b04addf0fb2db364e;p=thirdparty%2Fknot-resolver.git Function kr_resolve_query_finalize() returns error code. --- diff --git a/daemon/worker.c b/daemon/worker.c index c27084a67..26dc6d80d 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -478,8 +478,8 @@ static int qr_task_send(struct qr_task *task, uv_handle_t *handle, struct sockad 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 */ diff --git a/lib/resolve.c b/lib/resolve.c index 7a61695b4..513fcb197 100644 --- a/lib/resolve.c +++ b/lib/resolve.c @@ -817,12 +817,12 @@ int kr_resolve_query_finalize(struct kr_request *request, struct sockaddr *src, 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); @@ -843,14 +843,14 @@ int kr_resolve_query_finalize(struct kr_request *request, struct sockaddr *src, * 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 { @@ -870,7 +870,7 @@ int kr_resolve_query_finalize(struct kr_request *request, struct sockaddr *src, } } - return request->state; + return kr_ok(); } int kr_resolve_finish(struct kr_request *request, int state) diff --git a/lib/resolve.h b/lib/resolve.h index 312de6e70..fe4349636 100644 --- a/lib/resolve.h +++ b/lib/resolve.h @@ -187,7 +187,7 @@ int kr_resolve_produce(struct kr_request *request, struct sockaddr **dst, int *t * @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,