Commit 651e947e authored by Eli Zaretskii's avatar Eli Zaretskii
Browse files

Allow Emacs on w32 to build against and work with GnuTLS 3.x.

 src/gnutls.c (init_gnutls_functions): Load gnutls_check_version.
 Load gnutls_transport_set_lowat only if GnuTLS version is below
 2.11.1.
 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
 GnuTLS versions below 2.11.1.
 lisp/term/w32-win.el (dynamic-library-alist) <gnutls>: Load
 libgnutls-28.dll, from GnuTLS version 3.x, in preference to
 libgnutls-26.dll.
parent 7da5b944
2012-01-01 Eli Zaretskii <eliz@gnu.org>
* term/w32-win.el (dynamic-library-alist) <gnutls>: Load
libgnutls-28.dll, from GnuTLS version 3.x, in preference to
libgnutls-26.dll.
2011-12-31 Andreas Schwab <schwab@linux-m68k.org> 2011-12-31 Andreas Schwab <schwab@linux-m68k.org>
* emacs-lisp/bytecomp.el (byte-compile-file): Fix indentation. * emacs-lisp/bytecomp.el (byte-compile-file): Fix indentation.
......
...@@ -210,7 +210,7 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.") ...@@ -210,7 +210,7 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.")
'(gdk-pixbuf "libgdk_pixbuf-2.0-0.dll") '(gdk-pixbuf "libgdk_pixbuf-2.0-0.dll")
'(glib "libglib-2.0-0.dll") '(glib "libglib-2.0-0.dll")
'(gobject "libgobject-2.0-0.dll") '(gobject "libgobject-2.0-0.dll")
'(gnutls "libgnutls-26.dll"))) '(gnutls "libgnutls-28.dll" "libgnutls-26.dll")))
;;; multi-tty support ;;; multi-tty support
(defvar w32-initialized nil (defvar w32-initialized nil
......
2012-01-01 Eli Zaretskii <eliz@gnu.org>
* gnutls.c (init_gnutls_functions): Load gnutls_check_version.
Load gnutls_transport_set_lowat only if GnuTLS version is below
2.11.1.
(emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
GnuTLS versions below 2.11.1.
2011-12-31 Antoine Levitt <antoine.levitt@gmail.com> 2011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
* xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
......
...@@ -125,6 +125,7 @@ DEF_GNUTLS_FN (ssize_t, gnutls_record_send, ...@@ -125,6 +125,7 @@ DEF_GNUTLS_FN (ssize_t, gnutls_record_send,
(gnutls_session_t, const void *, size_t)); (gnutls_session_t, const void *, size_t));
DEF_GNUTLS_FN (const char *, gnutls_strerror, (int)); DEF_GNUTLS_FN (const char *, gnutls_strerror, (int));
DEF_GNUTLS_FN (void, gnutls_transport_set_errno, (gnutls_session_t, int)); DEF_GNUTLS_FN (void, gnutls_transport_set_errno, (gnutls_session_t, int));
DEF_GNUTLS_FN (const char *, gnutls_check_version, (const char *));
DEF_GNUTLS_FN (void, gnutls_transport_set_lowat, (gnutls_session_t, int)); DEF_GNUTLS_FN (void, gnutls_transport_set_lowat, (gnutls_session_t, int));
DEF_GNUTLS_FN (void, gnutls_transport_set_ptr2, DEF_GNUTLS_FN (void, gnutls_transport_set_ptr2,
(gnutls_session_t, gnutls_transport_ptr_t, (gnutls_session_t, gnutls_transport_ptr_t,
...@@ -184,7 +185,11 @@ init_gnutls_functions (Lisp_Object libraries) ...@@ -184,7 +185,11 @@ init_gnutls_functions (Lisp_Object libraries)
LOAD_GNUTLS_FN (library, gnutls_record_send); LOAD_GNUTLS_FN (library, gnutls_record_send);
LOAD_GNUTLS_FN (library, gnutls_strerror); LOAD_GNUTLS_FN (library, gnutls_strerror);
LOAD_GNUTLS_FN (library, gnutls_transport_set_errno); LOAD_GNUTLS_FN (library, gnutls_transport_set_errno);
LOAD_GNUTLS_FN (library, gnutls_transport_set_lowat); 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_ptr2);
LOAD_GNUTLS_FN (library, gnutls_transport_set_pull_function); LOAD_GNUTLS_FN (library, gnutls_transport_set_pull_function);
LOAD_GNUTLS_FN (library, gnutls_transport_set_push_function); LOAD_GNUTLS_FN (library, gnutls_transport_set_push_function);
...@@ -282,7 +287,12 @@ emacs_gnutls_handshake (struct Lisp_Process *proc) ...@@ -282,7 +287,12 @@ emacs_gnutls_handshake (struct Lisp_Process *proc)
(Note: this is probably not strictly necessary as the lowat (Note: this is probably not strictly necessary as the lowat
value is only used when no custom pull/push functions are value is only used when no custom pull/push functions are
set.) */ set.) */
fn_gnutls_transport_set_lowat (state, 0); /* According to GnuTLS NEWS file, lowat level has been set to
zero by default in version 2.11.1, and the function
gnutls_transport_set_lowat was removed from the library in
version 2.99.0. */
if (!fn_gnutls_check_version ("2.11.1"))
fn_gnutls_transport_set_lowat (state, 0);
#else #else
/* This is how GnuTLS takes sockets: as file descriptors passed /* This is how GnuTLS takes sockets: as file descriptors passed
in. For an Emacs process socket, infd and outfd are the in. For an Emacs process socket, infd and outfd are the
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment