summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaiki Ueno <dueno@redhat.com>2018-11-16 14:25:49 +0100
committerDaiki Ueno <dueno@redhat.com>2018-11-18 06:43:51 +0100
commit0bd0db32e78ac8a4460c8e492e3a113fef6786c8 (patch)
tree7a8257dd1c5928225e60e6470c24d2a9a4e291d6 /src
parent398ed4b42f80fd379fdc1b80cc3d02086894ed87 (diff)
downloadgnutls-0bd0db32e78ac8a4460c8e492e3a113fef6786c8.tar.gz
serv: add --maxearlydata option
Also exercise this in testcompat-tls13-openssl.sh. Signed-off-by: Daiki Ueno <dueno@redhat.com>
Diffstat (limited to 'src')
-rw-r--r--src/serv-args.def8
-rw-r--r--src/serv.c10
2 files changed, 17 insertions, 1 deletions
diff --git a/src/serv-args.def b/src/serv-args.def
index 6c17998da0..7c4c32479c 100644
--- a/src/serv-args.def
+++ b/src/serv-args.def
@@ -49,6 +49,14 @@ flag = {
};
flag = {
+ name = maxearlydata;
+ arg-type = number;
+ arg-range = "1->4294967296";
+ descrip = "The maximum early data size to accept";
+ doc = "";
+};
+
+flag = {
name = nocookie;
descrip = "Don't require cookie on DTLS sessions";
doc = "";
diff --git a/src/serv.c b/src/serv.c
index d0b5914bc0..2ceb3dbf1f 100644
--- a/src/serv.c
+++ b/src/serv.c
@@ -408,8 +408,16 @@ gnutls_session_t initialize_session(int dtls)
gnutls_session_ticket_enable_server(session,
&session_ticket_key);
- if (earlydata)
+ if (earlydata) {
gnutls_anti_replay_enable(session, anti_replay);
+ if (HAVE_OPT(MAXEARLYDATA)) {
+ ret = gnutls_record_set_max_early_data_size(session, OPT_VALUE_MAXEARLYDATA);
+ if (ret < 0) {
+ fprintf(stderr, "Could not set max early data size: %s\n", gnutls_strerror(ret));
+ exit(1);
+ }
+ }
+ }
if (sni_hostname != NULL)
gnutls_handshake_set_post_client_hello_function(session,