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 */ }
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; }
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; }
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; }
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; }
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 */ }
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; }