]> code.delx.au - gnu-emacs/commitdiff
* gnutls.c (Fgnutls_boot): Send the server name over
authorToke Høiland-Jørgensen <toke@toke.dk>
Wed, 26 Nov 2014 21:56:57 +0000 (22:56 +0100)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Wed, 26 Nov 2014 21:56:57 +0000 (22:56 +0100)
Fixes: debbugs:18208
* gnutls.c (Fgnutls_boot): Send the server name over (bug#18208).

src/ChangeLog
src/gnutls.c

index da8746c3ff8c24cfd0b47f8d260e9d47f5cd2a01..17e3c5988a67694ea19cdbc2d98a4598ceb4e48b 100644 (file)
@@ -1,3 +1,7 @@
+2014-11-26  Toke Høiland-Jørgensen  <toke@toke.dk>  (tiny change)
+
+       * gnutls.c (Fgnutls_boot): Send the server name over (bug#18208).
+
 2014-11-25  Paul Eggert  <eggert@cs.ucla.edu>
 
        Fix gnutls problems caught by static checking.
index baadaaf29b2ed544343dc6d2d01c2a7073f51010..5a4b39f789a12cfe1a401d4f5cd8aa45e098022b 100644 (file)
@@ -187,6 +187,9 @@ DEF_GNUTLS_FN (int, gnutls_x509_crt_get_key_id,
 DEF_GNUTLS_FN (const char*, gnutls_sec_param_get_name, (gnutls_sec_param_t));
 DEF_GNUTLS_FN (const char*, gnutls_sign_algorithm_get_name,
               (gnutls_sign_algorithm_t));
+DEF_GNUTLS_FN (int, gnutls_server_name_set, (gnutls_session_t,
+                                            gnutls_server_name_type_t,
+                                            const void *, size_t));
 
 static bool
 init_gnutls_functions (void)
@@ -335,6 +338,7 @@ init_gnutls_functions (void)
 #define fn_gnutls_x509_crt_get_key_id           gnutls_x509_crt_get_key_id
 #define fn_gnutls_sec_param_get_name            gnutls_sec_param_get_name
 #define fn_gnutls_sign_algorithm_get_name       gnutls_sign_algorithm_get_name
+#define fn_gnutls_server_name_set              gnutls_server_name_set
 
 #endif /* !WINDOWSNT */
 
@@ -1414,6 +1418,11 @@ one trustfile (usually a CA bundle).  */)
   if (ret < GNUTLS_E_SUCCESS)
     return gnutls_make_error (ret);
 
+  ret = fn_gnutls_server_name_set (state, GNUTLS_NAME_DNS, c_hostname,
+                                  strlen(c_hostname));
+  if (ret < GNUTLS_E_SUCCESS)
+    return gnutls_make_error (ret);
+
   GNUTLS_INITSTAGE (proc) = GNUTLS_STAGE_CRED_SET;
   ret = emacs_gnutls_handshake (XPROCESS (proc));
   if (ret < GNUTLS_E_SUCCESS)