Skip to content

Commit

Permalink
WolfSSL: Use a custom UTF-8 aware _stat on Windows
Browse files Browse the repository at this point in the history
  • Loading branch information
CookiePLMonster committed Mar 20, 2022
1 parent 4aec3b7 commit d07ec5d
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 6 deletions.
4 changes: 3 additions & 1 deletion 3rdparty/wolfssl/extra/win32/user_settings.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,9 @@ extern FILE* wolfSSL_fopen_utf8(const char* name, const char* mode);
#define XFFLUSH fflush

#include <sys/stat.h>
#define XSTAT _stat
extern int wolfSSL_stat_utf8(const char* path, struct _stat* buffer);
#define XSTAT wolfSSL_stat_utf8
#define XSTAT_TYPE struct _stat
#define XS_ISREG(s) (s & _S_IFREG)
#define SEPARATOR_CHAR ';'

Expand Down
5 changes: 2 additions & 3 deletions 3rdparty/wolfssl/wolfssl.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,7 @@
<ClCompile Include="wolfssl\wolfcrypt\src\ge_low_mem.c" />
<ClCompile Include="wolfssl\wolfcrypt\src\ge_operations.c" />
<ClCompile Include="wolfssl\wolfcrypt\src\hash.c" />
<ClCompile Include="wolfssl\wolfcrypt\src\hc128.c" />
<ClCompile Include="wolfssl\wolfcrypt\src\hmac.c" />
<ClCompile Include="wolfssl\wolfcrypt\src\idea.c" />
<ClCompile Include="wolfssl\wolfcrypt\src\integer.c" />
<ClCompile Include="wolfssl\wolfcrypt\src\kdf.c" />
<ClCompile Include="wolfssl\wolfcrypt\src\logging.c" />
Expand All @@ -115,10 +113,11 @@
<ClCompile Include="wolfssl\wolfcrypt\src\pkcs12.c" />
<ClCompile Include="wolfssl\wolfcrypt\src\poly1305.c" />
<ClCompile Include="wolfssl\wolfcrypt\src\pwdbased.c" />
<ClCompile Include="wolfssl\wolfcrypt\src\rabbit.c" />
<ClCompile Include="wolfssl\wolfcrypt\src\random.c" />
<ClCompile Include="wolfssl\wolfcrypt\src\rc2.c" />
<ClCompile Include="wolfssl\wolfcrypt\src\ripemd.c" />
<ClCompile Include="wolfssl\wolfcrypt\src\rsa.c" />
<ClCompile Include="wolfssl\wolfcrypt\src\sakke.c" />
<ClCompile Include="wolfssl\wolfcrypt\src\sha.c" />
<ClCompile Include="wolfssl\wolfcrypt\src\sha256.c" />
<ClCompile Include="wolfssl\wolfcrypt\src\sha3.c" />
Expand Down
14 changes: 12 additions & 2 deletions rpcs3/rpcs3qt/curl_handle.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,19 @@ std::string curl_handle::get_verbose_error(CURLcode code)
}

#ifdef _WIN32
// Function exported from our user_settings.h in WolfSSL, implemented in RPCS3
extern "C" FILE* wolfSSL_fopen_utf8(const char* name, const char* mode)
// Functions exported from our user_settings.h in WolfSSL, implemented in RPCS3
extern "C"
{

FILE* wolfSSL_fopen_utf8(const char* name, const char* mode)
{
return _wfopen(utf8_to_wchar(name).c_str(), utf8_to_wchar(mode).c_str());
}

int wolfSSL_stat_utf8(const char* path, struct _stat* buffer)
{
return _wstat(utf8_to_wchar(path).c_str(), buffer);
}

}
#endif

0 comments on commit d07ec5d

Please sign in to comment.