void-packages/srcpkgs/LGOGDownloader/patches/curl-7.87.patch

91 lines
2.8 KiB
Diff

Force destruction of downloader before curl_global_cleanup
See: https://github.com/Sude-/lgogdownloader/commit/6ce6aeb1dc06f8af1508c5ce6ee71775b8d188b3
Index: LGOGDownloader-3.9/main.cpp
===================================================================
--- LGOGDownloader-3.9.orig/main.cpp
+++ LGOGDownloader-3.9/main.cpp
@@ -607,9 +607,10 @@ int main(int argc, char *argv[])
std::cerr << std::endl;
}
+ int res = 0;
// Init curl globally
curl_global_init(CURL_GLOBAL_ALL);
-
+ {
Downloader downloader;
int iLoginTries = 0;
@@ -636,8 +637,8 @@ int main(int argc, char *argv[])
// Login failed, cleanup
if (!bLoginOK && !bIsLoggedin)
{
- curl_global_cleanup();
- return 1;
+ res = 1;
+ goto end;
}
// Make sure that config file and cookie file are only readable/writable by owner
@@ -699,15 +700,14 @@ int main(int argc, char *argv[])
Util::setFilePermissions(Globals::globalConfig.sConfigFilePath, boost::filesystem::owner_read | boost::filesystem::owner_write);
if (Globals::globalConfig.bSaveConfig)
{
- curl_global_cleanup();
- return 0;
+ goto end;
}
}
else
{
std::cerr << "Failed to create config: " << Globals::globalConfig.sConfigFilePath << std::endl;
- curl_global_cleanup();
- return 1;
+ res = 1;
+ goto end;
}
}
else if (Globals::globalConfig.bResetConfig)
@@ -719,26 +719,23 @@ int main(int argc, char *argv[])
if (!Globals::globalConfig.bRespectUmask)
Util::setFilePermissions(Globals::globalConfig.sConfigFilePath, boost::filesystem::owner_read | boost::filesystem::owner_write);
- curl_global_cleanup();
- return 0;
+ goto end;
}
else
{
std::cerr << "Failed to create config: " << Globals::globalConfig.sConfigFilePath << std::endl;
- curl_global_cleanup();
- return 1;
+ res = 1;
+ goto end;
}
}
bool bInitOK = downloader.init();
if (!bInitOK)
{
- curl_global_cleanup();
- return 1;
+ res = 1;
+ goto end;
}
- int res = 0;
-
if (Globals::globalConfig.bShowWishlist)
downloader.showWishlist();
else if (Globals::globalConfig.bUpdateCache)
@@ -801,7 +798,8 @@ int main(int argc, char *argv[])
// Orphan check was called at the same time as download. Perform it after download has finished
if (!Globals::globalConfig.sOrphanRegex.empty() && Globals::globalConfig.bDownload)
downloader.checkOrphans();
-
+ }
+end:
curl_global_cleanup();
return res;