My changes for trasacation error handling for not needed for dump commands. Fixed the same.
Signed-off-by: Ankur Sharma <ankursha...@vmware.com> Acked-by: Nithin Raju <nit...@vmware.com> Acked-by: Eitan Eliahu <elia...@vmware.com> --- datapath-windows/ovsext/Flow.c | 61 +++++++++++++----------------------------- 1 file changed, 18 insertions(+), 43 deletions(-) diff --git a/datapath-windows/ovsext/Flow.c b/datapath-windows/ovsext/Flow.c index f6e7bdb..d6d4964 100644 --- a/datapath-windows/ovsext/Flow.c +++ b/datapath-windows/ovsext/Flow.c @@ -356,8 +356,7 @@ OvsFlowNlCmdHandler(POVS_USER_PARAMS_CONTEXT usrParamsCtx, done: - if ((nlError != NL_ERROR_SUCCESS) && - (usrParamsCtx->outputBuffer)) { + if (nlError != NL_ERROR_SUCCESS) { POVS_MESSAGE_ERROR msgError = (POVS_MESSAGE_ERROR) usrParamsCtx->outputBuffer; BuildErrorMsg(msgIn, msgError, nlError); @@ -378,55 +377,31 @@ NTSTATUS OvsFlowNlGetCmdHandler(POVS_USER_PARAMS_CONTEXT usrParamsCtx, UINT32 *replyLen) { - NTSTATUS rc = STATUS_SUCCESS; + NTSTATUS status = STATUS_SUCCESS; NL_ERROR nlError = NL_ERROR_SUCCESS; POVS_MESSAGE msgIn = (POVS_MESSAGE)usrParamsCtx->inputBuffer; - POVS_MESSAGE msgOut = (POVS_MESSAGE)usrParamsCtx->outputBuffer; - PNL_MSG_HDR nlMsgHdr = &(msgIn->nlMsg); - PGENL_MSG_HDR genlMsgHdr = &(msgIn->genlMsg); - POVS_HDR ovsHdr = &(msgIn->ovsHdr); - - NL_BUFFER nlBuf; - - if (!(usrParamsCtx->outputBuffer)) { - /* No output buffer */ - rc = STATUS_INVALID_BUFFER_SIZE; - goto done; - } if (usrParamsCtx->devOp == OVS_TRANSACTION_DEV_OP) { - rc = _FlowNlGetCmdHandler(usrParamsCtx, replyLen); - } else { - rc = _FlowNlDumpCmdHandler(usrParamsCtx, replyLen); - } - - if ((nlError != NL_ERROR_SUCCESS) && - (usrParamsCtx->outputBuffer)) { - POVS_MESSAGE_ERROR msgError = (POVS_MESSAGE_ERROR) - usrParamsCtx->outputBuffer; - BuildErrorMsg(msgIn, msgError, nlError); - *replyLen = msgError->nlMsg.nlmsgLen; - rc = STATUS_SUCCESS; - goto done; - } - - if (rc == STATUS_SUCCESS) { - NlBufInit(&nlBuf, usrParamsCtx->outputBuffer, - usrParamsCtx->outputLength); - - /* Prepare nl Msg headers */ - rc = NlFillOvsMsg(&nlBuf, nlMsgHdr->nlmsgType, 0, - nlMsgHdr->nlmsgSeq, nlMsgHdr->nlmsgPid, - genlMsgHdr->cmd, OVS_FLOW_VERSION, - ovsHdr->dp_ifindex); - - if (rc == STATUS_SUCCESS) { - *replyLen = msgOut->nlMsg.nlmsgLen; + status = _FlowNlGetCmdHandler(usrParamsCtx, replyLen); + + /* No trasanctional errors as of now. + * If we have something then we need to convert rc to + * nlError. */ + if ((nlError != NL_ERROR_SUCCESS) && + (usrParamsCtx->outputBuffer)) { + POVS_MESSAGE_ERROR msgError = (POVS_MESSAGE_ERROR) + usrParamsCtx->outputBuffer; + BuildErrorMsg(msgIn, msgError, nlError); + *replyLen = msgError->nlMsg.nlmsgLen; + status = STATUS_SUCCESS; + goto done; } + } else { + status = _FlowNlDumpCmdHandler(usrParamsCtx, replyLen); } done: - return rc; + return status; } /* -- 1.9.1 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev