From a99634c2d339900b46baa1be78dc4d2e76ca45fb Mon Sep 17 00:00:00 2001 From: Thilo Schulz Date: Sat, 16 Feb 2008 22:57:45 +0000 Subject: [PATCH] Fall back to libcurl.so.4 or libcurl.so.4 if the default symlink does not exist. --- code/client/cl_curl.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/code/client/cl_curl.c b/code/client/cl_curl.c index e4db3ebb..216d9ccd 100644 --- a/code/client/cl_curl.c +++ b/code/client/cl_curl.c @@ -100,13 +100,28 @@ qboolean CL_cURL_Init() return qfalse; #else char fn[1024]; - Q_strncpyz( fn, Sys_Cwd( ), sizeof( fn ) ); - strncat(fn, "/", sizeof(fn)-strlen(fn)-1); - strncat(fn, cl_cURLLib->string, sizeof(fn)-strlen(fn)-1); - if( (cURLLib = Sys_LoadLibrary(fn)) == 0 ) + // On some linux distributions there is no libcurl.so symlink, but only libcurl.so.4 + + Q_strncpyz(fn, cl_cURLLib->string, sizeof(fn)); + strncat(fn, ".4", sizeof(fn)-strlen(fn)-1); + + if((cURLLib = Sys_LoadLibrary(fn)) == 0) { - return qfalse; + Q_strncpyz(fn, cl_cURLLib->string, sizeof(fn)); + strncat(fn, ".3", sizeof(fn)-strlen(fn)-1); + + if((cURLLib = Sys_LoadLibrary(fn)) == 0) + { + Q_strncpyz( fn, Sys_Cwd( ), sizeof( fn ) ); + strncat(fn, "/", sizeof(fn)-strlen(fn)-1); + strncat(fn, cl_cURLLib->string, sizeof(fn)-strlen(fn)-1); + + if( (cURLLib = Sys_LoadLibrary(fn)) == 0 ) + { + return qfalse; + } + } } #endif /* _WIN32 */ }