static void get_methods()

in src/main/native/org/apache/commons/crypto/OpenSslInfoNative.c [57:73]


static void get_methods(JNIEnv *env, HMODULE openssl)
{
  LOAD_DYNAMIC_SYMBOL_FALLBACK(__dlsym_OpenSSL_version_num, dlsym_OpenSSL_version_num, env, openssl, "OpenSSL_version_num", "SSLeay"); // SSLeay fallback needed by LibreSSL 2.x
  LOAD_DYNAMIC_SYMBOL_FALLBACK(__dlsym_OpenSSL_version, dlsym_OpenSSL_version, env, openssl, "OpenSSL_version", "SSLeay_version"); // SSLeay fallback needed by LibreSSL 2.x
#ifdef UNIX
  Dl_info info;
  (void) dladdr(dlsym_OpenSSL_version_num, &info); // ignore the return code
  strncpy(dynamicLibraryPath, info.dli_fname, sizeof(dynamicLibraryPath) - 1); // allow for null
#endif
#ifdef WINDOWS
  LPWSTR lpFilename;
  WCHAR buffer[80];
  lpFilename = buffer;
  (void) GetModuleFileName(openssl, lpFilename, sizeof(buffer)); // ignore return code
  wcstombs(dynamicLibraryPath, buffer, sizeof(dynamicLibraryPath));
  #endif
}