static int prepareExtendRequest(KSI_NetworkClient *client, KSI_ExtendReq *req, KSI_RequestHandle **handle) { int res = KSI_UNKNOWN_ERROR; KSI_ExtendPdu *pdu = NULL; res = KSI_ExtendReq_enclose(req, client->extUser, client->extPass, &pdu); if (res != KSI_OK) goto cleanup; res = prepareRequest( client, pdu, (int (*)(void *, unsigned char **, unsigned *))KSI_ExtendPdu_serialize, handle, ((KSI_HttpClient*)client)->urlExtender, "Extend request"); if (res != KSI_OK) goto cleanup; res = KSI_OK; cleanup: KSI_ExtendPdu_setRequest(pdu, NULL); KSI_ExtendPdu_free(pdu); return res; }
static int prepareExtendRequest(KSI_NetworkClient *client, KSI_ExtendReq *req, KSI_RequestHandle **handle) { int res = KSI_UNKNOWN_ERROR; KSI_ExtendPdu *pdu = NULL; KSI_Integer *pReqId = NULL; KSI_Integer *reqId = NULL; TcpClient_Endpoint *endp = NULL; if (client == NULL || req == NULL || handle == NULL) { res = KSI_INVALID_ARGUMENT; goto cleanup; } endp = client->extender->implCtx; if (endp->host == NULL || endp->port == 0) { res = KSI_EXTENDER_NOT_CONFIGURED; goto cleanup; } res = KSI_ExtendReq_getRequestId(req, &pReqId); if (res != KSI_OK) goto cleanup; if (pReqId == NULL) { res = KSI_Integer_new(client->ctx, ++client->requestCount, &reqId); if (res != KSI_OK) goto cleanup; res = KSI_ExtendReq_setRequestId(req, reqId); if (res != KSI_OK) goto cleanup; reqId = NULL; } res = KSI_ExtendReq_enclose(req, client->extender->ksi_user, client->extender->ksi_pass, &pdu); if (res != KSI_OK) goto cleanup; res = prepareRequest( client, pdu, (int (*)(void *, unsigned char **, size_t *))KSI_ExtendPdu_serialize, handle, endp->host, endp->port, "Extend request"); if (res != KSI_OK) goto cleanup; res = KSI_OK; cleanup: KSI_ExtendPdu_setRequest(pdu, NULL); KSI_ExtendPdu_free(pdu); return res; }