Support statically-linked libcurl for HTTP uploads in Linux
https://breakpad.appspot.com/1064002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1277 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
parent
c590a7f322
commit
9dd2ab720e
1 changed files with 11 additions and 1 deletions
|
@ -70,7 +70,17 @@ bool HTTPUpload::SendRequest(const string &url,
|
||||||
if (!CheckParameters(parameters))
|
if (!CheckParameters(parameters))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
void *curl_lib = dlopen("libcurl.so", RTLD_NOW);
|
// We may have been linked statically; if curl_easy_init is in the
|
||||||
|
// current binary, no need to search for a dynamic version.
|
||||||
|
void* curl_lib = dlopen(NULL, RTLD_NOW);
|
||||||
|
if (!curl_lib || dlsym(curl_lib, "curl_easy_init") == NULL) {
|
||||||
|
dlerror(); // Clear dlerror before attempting to open libraries.
|
||||||
|
dlclose(curl_lib);
|
||||||
|
curl_lib = NULL;
|
||||||
|
}
|
||||||
|
if (!curl_lib) {
|
||||||
|
curl_lib = dlopen("libcurl.so", RTLD_NOW);
|
||||||
|
}
|
||||||
if (!curl_lib) {
|
if (!curl_lib) {
|
||||||
if (error_description != NULL)
|
if (error_description != NULL)
|
||||||
*error_description = dlerror();
|
*error_description = dlerror();
|
||||||
|
|
Loading…
Reference in a new issue