summaryrefslogtreecommitdiff
path: root/src/gnutls.h
diff options
context:
space:
mode:
authorTed Zlatanov <tzz@lifelogs.com>2012-04-09 08:46:16 -0400
committerTed Zlatanov <tzz@lifelogs.com>2012-04-09 08:46:16 -0400
commita18ecafa99e7e7c3caa35ed68dd8a7b9b5d2b8e3 (patch)
tree51714f1203b0b06d44591f57f245ca7c94acde48 /src/gnutls.h
parentb4d3bc10dc84f6b01a2b6b215d0e489555aa6edd (diff)
downloademacs-a18ecafa99e7e7c3caa35ed68dd8a7b9b5d2b8e3.tar.gz
Limit number of GnuTLS handshakes per connection.
* gnutls.c (gnutls_log_function2i): Convenience log function. (emacs_gnutls_read): Use new log functions, `gnutls_handshakes_tried' process member, and `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake attempts per process (connection). * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit. Add convenience `GNUTLS_LOG2i' macro. * process.c (make_process): * process.h: Add integer `gnutls_handshakes_tried' member to process struct.
Diffstat (limited to 'src/gnutls.h')
-rw-r--r--src/gnutls.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gnutls.h b/src/gnutls.h
index 474da77aec5..37b9a2eb4df 100644
--- a/src/gnutls.h
+++ b/src/gnutls.h
@@ -23,6 +23,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <gnutls/gnutls.h>
#include <gnutls/x509.h>
+/* This limits the attempts to handshake per process (connection). */
+#define GNUTLS_EMACS_HANDSHAKES_LIMIT 100
+
typedef enum
{
/* Initialization stages. */
@@ -53,6 +56,8 @@ typedef enum
#define GNUTLS_LOG2(level, max, string, extra) do { if (level <= max) { gnutls_log_function2 (level, "(Emacs) " string, extra); } } while (0)
+#define GNUTLS_LOG2i(level, max, string, extra) do { if (level <= max) { gnutls_log_function2i (level, "(Emacs) " string, extra); } } while (0)
+
extern EMACS_INT
emacs_gnutls_write (struct Lisp_Process *proc, const char *buf, EMACS_INT nbyte);
extern EMACS_INT