summaryrefslogtreecommitdiff
path: root/src/common.c
diff options
context:
space:
mode:
authorOlga <olyasib12@gmail.com>2012-08-28 00:12:56 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2012-08-30 20:04:18 +0200
commit3f2e9a0d1231f2555626305b752f73c87afbe6f2 (patch)
treeb903ca9de4bf9dd613627382b6f429e50551ee71 /src/common.c
parent23934e9fe103c3026491b25255467637cc1df89f (diff)
downloadgnutls-3f2e9a0d1231f2555626305b752f73c87afbe6f2.tar.gz
Added Heartbeat extension support.
Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
Diffstat (limited to 'src/common.c')
-rw-r--r--src/common.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/common.c b/src/common.c
index 1b881a8bb4..4b21e22c7a 100644
--- a/src/common.c
+++ b/src/common.c
@@ -34,6 +34,7 @@
#include <gnutls/gnutls.h>
#include <gnutls/x509.h>
#include <gnutls/openpgp.h>
+#include <gnutls/crypto.h>
#include <time.h>
#include <common.h>
@@ -1040,18 +1041,20 @@ print_list (const char *priorities, int verbose)
int check_command(gnutls_session_t session, const char* str)
{
-int len = strlen(str);
-
+ size_t len = strnlen(str, 128);
+ fprintf (stderr, "*** Processing %zu bytes command: %s\n", len, str);
if (len > 2 && str[0] == str[1] && str[0] == '*')
- {
- if (strncmp(str, "**REHANDSHAKE**",
- sizeof ("**REHANDSHAKE**") - 1) == 0)
- {
+ {
+ if (strncmp(str, "**REHANDSHAKE**", sizeof ("**REHANDSHAKE**") - 1) == 0)
+ {
fprintf (stderr, "*** Sending rehandshake request\n");
- gnutls_rehandshake (session);
+ gnutls_rehandshake (session);
return 1;
- }
- }
+ } else if (strncmp(str, "**HEARTBEAT**", sizeof ("**HEARTBEAT**") - 1) == 0) {
+ gnutls_heartbeat_ping_rnd (session);
+ return 2;
+ }
+ }
return 0;
}