From a487913cb30fcc039b0d2a8037eb28d1381e6002 Mon Sep 17 00:00:00 2001 From: deuce <> Date: Tue, 5 Jun 2007 19:39:28 +0000 Subject: [PATCH] Add a HACK_HACK_HACK macro which will hopefully fix SSH in Win32 regardless of the compiler. --- src/syncterm/st_crypt.h | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/src/syncterm/st_crypt.h b/src/syncterm/st_crypt.h index 06296cc30f..a303bdc841 100644 --- a/src/syncterm/st_crypt.h +++ b/src/syncterm/st_crypt.h @@ -8,33 +8,42 @@ #define C_RET int #endif +#ifdef _WIN32 + #define HACK_HACK_HACK __stdcall +#else + #define HACK_HACK_HACK +#endif + struct crypt_funcs { - C_RET (*PopData)( C_IN CRYPT_HANDLE envelope, C_OUT void C_PTR buffer, + C_RET (HACK_HACK_HACK *PopData)( C_IN CRYPT_HANDLE envelope, C_OUT void C_PTR buffer, C_IN int length, C_OUT int C_PTR bytesCopied ); - C_RET (*PushData)( C_IN CRYPT_HANDLE envelope, C_IN void C_PTR buffer, + C_RET (HACK_HACK_HACK *PushData)( C_IN CRYPT_HANDLE envelope, C_IN void C_PTR buffer, C_IN int length, C_OUT int C_PTR bytesCopied ); - C_RET (*FlushData)( C_IN CRYPT_HANDLE envelope ); - C_RET (*Init)( void ); - C_RET (*End)( void ); - C_RET (*CreateSession)( C_OUT CRYPT_SESSION C_PTR session, + C_RET (HACK_HACK_HACK *FlushData)( C_IN CRYPT_HANDLE envelope ); + C_RET (HACK_HACK_HACK *Init)( void ); + C_RET (HACK_HACK_HACK *End)( void ); + C_RET (HACK_HACK_HACK *CreateSession)( C_OUT CRYPT_SESSION C_PTR session, C_IN CRYPT_USER cryptUser, C_IN CRYPT_SESSION_TYPE formatType ); - C_RET (*GetAttribute)( C_IN CRYPT_HANDLE cryptHandle, + C_RET (HACK_HACK_HACK *GetAttribute)( C_IN CRYPT_HANDLE cryptHandle, C_IN CRYPT_ATTRIBUTE_TYPE attributeType, C_OUT int C_PTR value ); - C_RET (*GetAttributeString)( C_IN CRYPT_HANDLE cryptHandle, + C_RET (HACK_HACK_HACK *GetAttributeString)( C_IN CRYPT_HANDLE cryptHandle, C_IN CRYPT_ATTRIBUTE_TYPE attributeType, C_OUT void C_PTR value, C_OUT int C_PTR valueLength ); - C_RET (*SetAttribute)( C_IN CRYPT_HANDLE cryptHandle, + C_RET (HACK_HACK_HACK *SetAttribute)( C_IN CRYPT_HANDLE cryptHandle, C_IN CRYPT_ATTRIBUTE_TYPE attributeType, C_IN int value ); - C_RET (*SetAttributeString)( C_IN CRYPT_HANDLE cryptHandle, + C_RET (HACK_HACK_HACK *SetAttributeString)( C_IN CRYPT_HANDLE cryptHandle, C_IN CRYPT_ATTRIBUTE_TYPE attributeType, C_IN void C_PTR value, C_IN int valueLength ); - C_RET (*DestroySession)( C_IN CRYPT_SESSION session ); - C_RET (*AddRandom)( C_IN void C_PTR randomData, C_IN int randomDataLength ); + C_RET (HACK_HACK_HACK *DestroySession)( C_IN CRYPT_SESSION session ); + C_RET (HACK_HACK_HACK *AddRandom)( C_IN void C_PTR randomData, C_IN int randomDataLength ); }; + +#undef HACK_HACK_HACK + extern struct crypt_funcs cl; extern int crypt_loaded; -- GitLab