static int prepareAggregationRequest(KSI_NetworkClient *client, KSI_AggregationReq *req, KSI_RequestHandle **handle) { int res = KSI_UNKNOWN_ERROR; KSI_AggregationPdu *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->aggregator->implCtx; if (endp->host == NULL || endp->port == 0) { res = KSI_AGGREGATOR_NOT_CONFIGURED; goto cleanup; } res = KSI_AggregationReq_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_AggregationReq_setRequestId(req, reqId); if (res != KSI_OK) goto cleanup; reqId = NULL; } res = KSI_AggregationReq_enclose(req, client->aggregator->ksi_user, client->aggregator->ksi_pass, &pdu); if (res != KSI_OK) goto cleanup; res = prepareRequest( client, pdu, (int (*)(void *, unsigned char **, size_t *))KSI_AggregationPdu_serialize, handle, endp->host, endp->port, "Aggregation request"); if (res != KSI_OK) goto cleanup; res = KSI_OK; cleanup: KSI_AggregationPdu_setRequest(pdu, NULL); KSI_AggregationPdu_free(pdu); return res; }
static int prepareAggregationRequest(KSI_NetworkClient *client, KSI_AggregationReq *req, KSI_RequestHandle **handle) { int res = KSI_UNKNOWN_ERROR; KSI_AggregationPdu *pdu = NULL; res = KSI_AggregationReq_enclose(req, client->aggrUser, client->aggrPass, &pdu); if (res != KSI_OK) goto cleanup; res = prepareRequest( client, pdu, (int (*)(void *, unsigned char **, unsigned *))KSI_AggregationPdu_serialize, handle, ((KSI_HttpClient*)client)->urlAggregator, "Aggregation request"); cleanup: KSI_AggregationPdu_setRequest(pdu, NULL); KSI_AggregationPdu_free(pdu); return res; }