diff options
Diffstat (limited to 'src/serv.c')
-rw-r--r-- | src/serv.c | 14 |
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 |