range = g_strdup_printf("%llu-", offset);
}
- virMutexLock(&curl->lock);
+ VIR_WITH_MUTEX_LOCK_GUARD(&curl->lock) {
+ curl_easy_setopt(curl->handle, CURLOPT_URL, url);
+ curl_easy_setopt(curl->handle, CURLOPT_RANGE, range);
+ curl_easy_setopt(curl->handle, CURLOPT_WRITEDATA, &buffer);
+ curl_easy_setopt(curl->handle, CURLOPT_UPLOAD, 0);
+ curl_easy_setopt(curl->handle, CURLOPT_HTTPGET, 1);
- curl_easy_setopt(curl->handle, CURLOPT_URL, url);
- curl_easy_setopt(curl->handle, CURLOPT_RANGE, range);
- curl_easy_setopt(curl->handle, CURLOPT_WRITEDATA, &buffer);
- curl_easy_setopt(curl->handle, CURLOPT_UPLOAD, 0);
- curl_easy_setopt(curl->handle, CURLOPT_HTTPGET, 1);
-
- responseCode = esxVI_CURL_Perform(curl, url);
-
- virMutexUnlock(&curl->lock);
+ responseCode = esxVI_CURL_Perform(curl, url);
+ }
if (responseCode < 0) {
return -1;
return -1;
}
- virMutexLock(&curl->lock);
+ VIR_WITH_MUTEX_LOCK_GUARD(&curl->lock) {
+ curl_easy_setopt(curl->handle, CURLOPT_URL, url);
+ curl_easy_setopt(curl->handle, CURLOPT_RANGE, NULL);
+ curl_easy_setopt(curl->handle, CURLOPT_READDATA, &content);
+ curl_easy_setopt(curl->handle, CURLOPT_UPLOAD, 1);
+ curl_easy_setopt(curl->handle, CURLOPT_INFILESIZE, strlen(content));
- curl_easy_setopt(curl->handle, CURLOPT_URL, url);
- curl_easy_setopt(curl->handle, CURLOPT_RANGE, NULL);
- curl_easy_setopt(curl->handle, CURLOPT_READDATA, &content);
- curl_easy_setopt(curl->handle, CURLOPT_UPLOAD, 1);
- curl_easy_setopt(curl->handle, CURLOPT_INFILESIZE, strlen(content));
-
- responseCode = esxVI_CURL_Perform(curl, url);
-
- virMutexUnlock(&curl->lock);
+ responseCode = esxVI_CURL_Perform(curl, url);
+ }
if (responseCode < 0) {
return -1;
}
}
- virMutexLock(&curl->lock);
+ VIR_WITH_MUTEX_LOCK_GUARD(&curl->lock) {
+ curl_easy_setopt(curl->handle, CURLOPT_SHARE, shared->handle);
- curl_easy_setopt(curl->handle, CURLOPT_SHARE, shared->handle);
-
- curl->shared = shared;
- ++shared->count;
-
- virMutexUnlock(&curl->lock);
+ curl->shared = shared;
+ ++shared->count;
+ }
return 0;
}
return -1;
}
- virMutexLock(&curl->lock);
-
- curl_easy_setopt(curl->handle, CURLOPT_SHARE, NULL);
-
- curl->shared = NULL;
- --shared->count;
+ VIR_WITH_MUTEX_LOCK_GUARD(&curl->lock) {
+ curl_easy_setopt(curl->handle, CURLOPT_SHARE, NULL);
- virMutexUnlock(&curl->lock);
+ curl->shared = NULL;
+ --shared->count;
+ }
return 0;
}
}
- virMutexLock(&curl->lock);
-
- curl_multi_add_handle(multi->handle, curl->handle);
-
- curl->multi = multi;
- ++multi->count;
+ VIR_WITH_MUTEX_LOCK_GUARD(&curl->lock) {
+ curl_multi_add_handle(multi->handle, curl->handle);
- virMutexUnlock(&curl->lock);
+ curl->multi = multi;
+ ++multi->count;
+ }
return 0;
}
return -1;
}
- virMutexLock(&curl->lock);
-
- curl_multi_remove_handle(multi->handle, curl->handle);
-
- curl->multi = NULL;
- --multi->count;
+ VIR_WITH_MUTEX_LOCK_GUARD(&curl->lock) {
+ curl_multi_remove_handle(multi->handle, curl->handle);
- virMutexUnlock(&curl->lock);
+ curl->multi = NULL;
+ --multi->count;
+ }
return 0;
}
if (esxVI_Response_Alloc(response) < 0)
return -1;
- virMutexLock(&ctx->curl->lock);
-
- curl_easy_setopt(ctx->curl->handle, CURLOPT_URL, ctx->url);
- curl_easy_setopt(ctx->curl->handle, CURLOPT_RANGE, NULL);
- curl_easy_setopt(ctx->curl->handle, CURLOPT_WRITEDATA, &buffer);
- curl_easy_setopt(ctx->curl->handle, CURLOPT_UPLOAD, 0);
- curl_easy_setopt(ctx->curl->handle, CURLOPT_POSTFIELDS, request);
- curl_easy_setopt(ctx->curl->handle, CURLOPT_POSTFIELDSIZE, strlen(request));
-
- (*response)->responseCode = esxVI_CURL_Perform(ctx->curl, ctx->url);
+ VIR_WITH_MUTEX_LOCK_GUARD(&ctx->curl->lock) {
+ curl_easy_setopt(ctx->curl->handle, CURLOPT_URL, ctx->url);
+ curl_easy_setopt(ctx->curl->handle, CURLOPT_RANGE, NULL);
+ curl_easy_setopt(ctx->curl->handle, CURLOPT_WRITEDATA, &buffer);
+ curl_easy_setopt(ctx->curl->handle, CURLOPT_UPLOAD, 0);
+ curl_easy_setopt(ctx->curl->handle, CURLOPT_POSTFIELDS, request);
+ curl_easy_setopt(ctx->curl->handle, CURLOPT_POSTFIELDSIZE, strlen(request));
- virMutexUnlock(&ctx->curl->lock);
+ (*response)->responseCode = esxVI_CURL_Perform(ctx->curl, ctx->url);
+ }
if ((*response)->responseCode < 0)
goto cleanup;
esxVI_DynamicProperty *dynamicProperty = NULL;
esxVI_UserSession *currentSession = NULL;
g_autofree char *escapedPassword = NULL;
+ VIR_LOCK_GUARD lock = { NULL };
if (!ctx->sessionLock) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Invalid call, no mutex"));
return -1;
}
- virMutexLock(ctx->sessionLock);
+ lock = virLockGuardLock(ctx->sessionLock);
if (!ctx->session) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Invalid call, no session"));
result = 0;
cleanup:
- virMutexUnlock(ctx->sessionLock);
-
esxVI_String_Free(&propertyNameList);
esxVI_ObjectContent_Free(&sessionManager);
esxVI_UserSession_Free(¤tSession);