C++ で curl ライブラリ API のラッパーを作成しました。そして、私はC++のリクエスト/レスポンスにifを使用しようとしています.curl APIがstrerrorを返すため、サーバーに送信する前にリクエストが失敗することがあります.その文字列エラーをアプリケーションに転送しています.それをきれいにする必要がありますか?
私のコードは次のようになります。
int HttpClientImplCurl::get(void*& aOutBuf, base::Size& aOutSize,void*& aOutRecvHeaderBuf, base::Size& aOutRecvHeaderSize, const char*& errorBuff)
{
HttpClientImplCurlCleaner lCleaner(this); // Cleans up when it goes out of context
struct curl_slist* lHeaders = NULL;
// setup get
CURLcode lCode = curl_easy_setopt(curlHandle, CURLOPT_URL,
aInClient.getUrl().getBuffer());
if (lCode != 0) {
errorBuff = curl_easy_strerror(lCode);
return lCode;
}
}
デストラクタで curl_easy_cleanup(curlHandle) を実行しています。
ここでは、curl_easy_strerror を const char*& errorBuff に設定しています。アプリケーションで使用しています。free(errorBuff) を実行する必要がありますか?
または、次のようにクリーンアップするために使用する必要がある任意のcurlライブラリAPI
struct curl_slist* lHeaders = NULL;
lHeaders = curl_slist_append(lHeaders,lMultiHeader.getBuffer());
curl_slist_free_all(lHeaders);?
それとも不要で、curl_easy_cleanup がクリーンアップを処理しますか?