summaryrefslogtreecommitdiff
path: root/src/serv.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/serv.c')
-rw-r--r--src/serv.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/serv.c b/src/serv.c
index 6043fed7fe..ced393822f 100644
--- a/src/serv.c
+++ b/src/serv.c
@@ -88,6 +88,7 @@ unsigned alpn_protos_size = 0;
gnutls_datum_t session_ticket_key;
gnutls_anti_replay_t anti_replay;
+int record_max_size;
static void tcp_server(const char *name, int port);
/* end of globals */
@@ -477,6 +478,17 @@ gnutls_session_t initialize_session(int dtls)
GNUTLS_CERT_REQUEST);
}
+ /* use the record size limit extension */
+ if (record_max_size > 0) {
+ if (gnutls_record_set_max_recv_size(session, record_max_size) <
+ 0) {
+ fprintf(stderr,
+ "Cannot set the maximum record receive size to %d.\n",
+ record_max_size);
+ exit(1);
+ }
+ }
+
if (HAVE_OPT(HEARTBEAT))
gnutls_heartbeat_enable(session,
GNUTLS_HB_PEER_ALLOWED_TO_SEND);
@@ -1723,6 +1735,8 @@ static void cmd_parser(int argc, char **argv)
else
http = 1;
+ record_max_size = OPT_VALUE_RECORDSIZE;
+
if (HAVE_OPT(X509FMTDER))
x509ctype = GNUTLS_X509_FMT_DER;
else