Ejemplo n.º 1
0
static bool
init_libxml2_functions (void)
{
#ifdef WINDOWSNT
    if (libxml2_loaded_p ())
        return true;
    else
    {
        HMODULE library;

        if (!(library = w32_delayed_load (Qlibxml2)))
        {
            message1 ("libxml2 library not found");
            return false;
        }

        if (! load_dll_functions (library))
            goto bad_library;

        Vlibrary_cache = Fcons (Fcons (Qlibxml2, Qt), Vlibrary_cache);
        return true;
    }

bad_library:
    Vlibrary_cache = Fcons (Fcons (Qlibxml2, Qnil), Vlibrary_cache);

    return false;
#else  /* !WINDOWSNT */
    return true;
#endif	/* !WINDOWSNT */
}
Ejemplo n.º 2
0
static int
init_gnutls_functions (Lisp_Object libraries)
{
  HMODULE library;
  int max_log_level = 1;

  if (!(library = w32_delayed_load (libraries, Qgnutls_dll)))
    {
      GNUTLS_LOG (1, max_log_level, "GnuTLS library not found");
      return 0;
    }

  LOAD_GNUTLS_FN (library, gnutls_alert_get);
  LOAD_GNUTLS_FN (library, gnutls_alert_get_name);
  LOAD_GNUTLS_FN (library, gnutls_alert_send_appropriate);
  LOAD_GNUTLS_FN (library, gnutls_anon_allocate_client_credentials);
  LOAD_GNUTLS_FN (library, gnutls_anon_free_client_credentials);
  LOAD_GNUTLS_FN (library, gnutls_bye);
  LOAD_GNUTLS_FN (library, gnutls_certificate_allocate_credentials);
  LOAD_GNUTLS_FN (library, gnutls_certificate_free_credentials);
  LOAD_GNUTLS_FN (library, gnutls_certificate_get_peers);
  LOAD_GNUTLS_FN (library, gnutls_certificate_set_verify_flags);
  LOAD_GNUTLS_FN (library, gnutls_certificate_set_x509_crl_file);
  LOAD_GNUTLS_FN (library, gnutls_certificate_set_x509_key_file);
  LOAD_GNUTLS_FN (library, gnutls_certificate_set_x509_trust_file);
  LOAD_GNUTLS_FN (library, gnutls_certificate_type_get);
  LOAD_GNUTLS_FN (library, gnutls_certificate_verify_peers2);
  LOAD_GNUTLS_FN (library, gnutls_credentials_set);
  LOAD_GNUTLS_FN (library, gnutls_deinit);
  LOAD_GNUTLS_FN (library, gnutls_dh_set_prime_bits);
  LOAD_GNUTLS_FN (library, gnutls_error_is_fatal);
  LOAD_GNUTLS_FN (library, gnutls_global_init);
  LOAD_GNUTLS_FN (library, gnutls_global_set_log_function);
  LOAD_GNUTLS_FN (library, gnutls_global_set_log_level);
  LOAD_GNUTLS_FN (library, gnutls_global_set_mem_functions);
  LOAD_GNUTLS_FN (library, gnutls_handshake);
  LOAD_GNUTLS_FN (library, gnutls_init);
  LOAD_GNUTLS_FN (library, gnutls_priority_set_direct);
  LOAD_GNUTLS_FN (library, gnutls_record_check_pending);
  LOAD_GNUTLS_FN (library, gnutls_record_recv);
  LOAD_GNUTLS_FN (library, gnutls_record_send);
  LOAD_GNUTLS_FN (library, gnutls_strerror);
  LOAD_GNUTLS_FN (library, gnutls_transport_set_errno);
  LOAD_GNUTLS_FN (library, gnutls_transport_set_lowat);
  LOAD_GNUTLS_FN (library, gnutls_transport_set_ptr2);
  LOAD_GNUTLS_FN (library, gnutls_transport_set_pull_function);
  LOAD_GNUTLS_FN (library, gnutls_transport_set_push_function);
  LOAD_GNUTLS_FN (library, gnutls_x509_crt_check_hostname);
  LOAD_GNUTLS_FN (library, gnutls_x509_crt_deinit);
  LOAD_GNUTLS_FN (library, gnutls_x509_crt_import);
  LOAD_GNUTLS_FN (library, gnutls_x509_crt_init);

  max_log_level = global_gnutls_log_level;

  GNUTLS_LOG2 (1, max_log_level, "GnuTLS library loaded:",
	       SDATA (Fget (Qgnutls_dll, QCloaded_from)));
  return 1;
}
Ejemplo n.º 3
0
static bool
init_zlib_functions (void)
{
  HMODULE library = w32_delayed_load (Qzlib);

  if (!library)
    return false;

  LOAD_DLL_FN (library, inflateInit2_);
  LOAD_DLL_FN (library, inflate);
  LOAD_DLL_FN (library, inflateEnd);
  return true;
}
Ejemplo n.º 4
0
static bool
init_zlib_functions (void)
{
  HMODULE library = w32_delayed_load (Qzlib_dll);

  if (!library)
    {
      message1 ("zlib library not found");
      return false;
    }

  LOAD_ZLIB_FN (library, inflateInit2_);
  LOAD_ZLIB_FN (library, inflate);
  LOAD_ZLIB_FN (library, inflateEnd);
  return true;
}
Ejemplo n.º 5
0
static bool
init_json_functions (void)
{
  HMODULE library = w32_delayed_load (Qjson);

  if (!library)
    return false;

  LOAD_DLL_FN (library, json_set_alloc_funcs);
  LOAD_DLL_FN (library, json_delete);
  LOAD_DLL_FN (library, json_array);
  LOAD_DLL_FN (library, json_array_append_new);
  LOAD_DLL_FN (library, json_array_size);
  LOAD_DLL_FN (library, json_object);
  LOAD_DLL_FN (library, json_object_set_new);
  LOAD_DLL_FN (library, json_null);
  LOAD_DLL_FN (library, json_true);
  LOAD_DLL_FN (library, json_false);
  LOAD_DLL_FN (library, json_integer);
  LOAD_DLL_FN (library, json_real);
  LOAD_DLL_FN (library, json_stringn);
  LOAD_DLL_FN (library, json_dumps);
  LOAD_DLL_FN (library, json_dump_callback);
  LOAD_DLL_FN (library, json_integer_value);
  LOAD_DLL_FN (library, json_real_value);
  LOAD_DLL_FN (library, json_string_value);
  LOAD_DLL_FN (library, json_string_length);
  LOAD_DLL_FN (library, json_array_get);
  LOAD_DLL_FN (library, json_object_get);
  LOAD_DLL_FN (library, json_object_size);
  LOAD_DLL_FN (library, json_object_iter_key);
  LOAD_DLL_FN (library, json_object_iter);
  LOAD_DLL_FN (library, json_object_iter_value);
  LOAD_DLL_FN (library, json_object_key_to_iter);
  LOAD_DLL_FN (library, json_object_iter_next);
  LOAD_DLL_FN (library, json_loads);
  LOAD_DLL_FN (library, json_load_callback);

  init_json ();

  return true;
}
Ejemplo n.º 6
0
static int
init_libxml2_functions (void)
{
#ifdef WINDOWSNT
  if (libxml2_loaded_p ())
    return 1;
  else
    {
      HMODULE library;

      if (!(library = w32_delayed_load (Qlibxml2_dll)))
	{
	  message1 ("libxml2 library not found");
	  return 0;
	}

      /* LOAD_XML2_FN jumps to bad_library if it fails to find the
	 named function.  */
      LOAD_XML2_FN (library, htmlReadMemory);
      LOAD_XML2_FN (library, xmlReadMemory);
      LOAD_XML2_FN (library, xmlDocGetRootElement);
      LOAD_XML2_FN (library, xmlFreeDoc);
      LOAD_XML2_FN (library, xmlCleanupParser);
      LOAD_XML2_FN (library, xmlCheckVersion);

      Vlibrary_cache = Fcons (Fcons (Qlibxml2_dll, Qt), Vlibrary_cache);
      return 1;
    }

 bad_library:
  Vlibrary_cache = Fcons (Fcons (Qlibxml2_dll, Qnil), Vlibrary_cache);

  return 0;
#else  /* !WINDOWSNT */
  return 1;
#endif	/* !WINDOWSNT */
}
Ejemplo n.º 7
0
static int
init_gnutls_functions (Lisp_Object libraries)
{
    HMODULE library;
    int max_log_level = 1;

    if (!(library = w32_delayed_load (libraries, Qgnutls_dll)))
    {
        GNUTLS_LOG (1, max_log_level, "GnuTLS library not found");
        return 0;
    }

    LOAD_GNUTLS_FN (library, gnutls_alert_get);
    LOAD_GNUTLS_FN (library, gnutls_alert_get_name);
    LOAD_GNUTLS_FN (library, gnutls_alert_send_appropriate);
    LOAD_GNUTLS_FN (library, gnutls_anon_allocate_client_credentials);
    LOAD_GNUTLS_FN (library, gnutls_anon_free_client_credentials);
    LOAD_GNUTLS_FN (library, gnutls_bye);
    LOAD_GNUTLS_FN (library, gnutls_certificate_allocate_credentials);
    LOAD_GNUTLS_FN (library, gnutls_certificate_free_credentials);
    LOAD_GNUTLS_FN (library, gnutls_certificate_get_peers);
    LOAD_GNUTLS_FN (library, gnutls_certificate_set_verify_flags);
    LOAD_GNUTLS_FN (library, gnutls_certificate_set_x509_crl_file);
    LOAD_GNUTLS_FN (library, gnutls_certificate_set_x509_key_file);
    LOAD_GNUTLS_FN (library, gnutls_certificate_set_x509_trust_file);
    LOAD_GNUTLS_FN (library, gnutls_certificate_type_get);
    LOAD_GNUTLS_FN (library, gnutls_certificate_verify_peers2);
    LOAD_GNUTLS_FN (library, gnutls_credentials_set);
    LOAD_GNUTLS_FN (library, gnutls_deinit);
    LOAD_GNUTLS_FN (library, gnutls_dh_set_prime_bits);
    LOAD_GNUTLS_FN (library, gnutls_error_is_fatal);
    LOAD_GNUTLS_FN (library, gnutls_global_init);
    LOAD_GNUTLS_FN (library, gnutls_global_set_log_function);
    LOAD_GNUTLS_FN (library, gnutls_global_set_log_level);
    LOAD_GNUTLS_FN (library, gnutls_global_set_mem_functions);
    LOAD_GNUTLS_FN (library, gnutls_handshake);
    LOAD_GNUTLS_FN (library, gnutls_init);
    LOAD_GNUTLS_FN (library, gnutls_priority_set_direct);
    LOAD_GNUTLS_FN (library, gnutls_record_check_pending);
    LOAD_GNUTLS_FN (library, gnutls_record_recv);
    LOAD_GNUTLS_FN (library, gnutls_record_send);
    LOAD_GNUTLS_FN (library, gnutls_strerror);
    LOAD_GNUTLS_FN (library, gnutls_transport_set_errno);
    LOAD_GNUTLS_FN (library, gnutls_check_version);
    /* We don't need to call gnutls_transport_set_lowat in GnuTLS 2.11.1
       and later, and the function was removed entirely in 3.0.0.  */
    if (!fn_gnutls_check_version ("2.11.1"))
        LOAD_GNUTLS_FN (library, gnutls_transport_set_lowat);
    LOAD_GNUTLS_FN (library, gnutls_transport_set_ptr2);
    LOAD_GNUTLS_FN (library, gnutls_transport_set_pull_function);
    LOAD_GNUTLS_FN (library, gnutls_transport_set_push_function);
    LOAD_GNUTLS_FN (library, gnutls_x509_crt_check_hostname);
    LOAD_GNUTLS_FN (library, gnutls_x509_crt_deinit);
    LOAD_GNUTLS_FN (library, gnutls_x509_crt_import);
    LOAD_GNUTLS_FN (library, gnutls_x509_crt_init);

    max_log_level = global_gnutls_log_level;

    {
        Lisp_Object name = CAR_SAFE (Fget (Qgnutls_dll, QCloaded_from));
        GNUTLS_LOG2 (1, max_log_level, "GnuTLS library loaded:",
                     STRINGP (name) ? (const char *) SDATA (name) : "unknown");
    }

    return 1;
}