gnutls-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU gnutls branch, master, updated. gnutls_2_11_6-277-g8f97c15


From: Nikos Mavrogiannopoulos
Subject: [SCM] GNU gnutls branch, master, updated. gnutls_2_11_6-277-g8f97c15
Date: Fri, 11 Mar 2011 20:16:58 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU gnutls".

http://git.savannah.gnu.org/cgit/gnutls.git/commit/?id=8f97c15c8c6a6dd19b911b7e5f2bbeb81af8e59a

The branch, master has been updated
       via  8f97c15c8c6a6dd19b911b7e5f2bbeb81af8e59a (commit)
      from  3871a9b6a7400f45f9c11c49f4c12b1b8f4b7d15 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 8f97c15c8c6a6dd19b911b7e5f2bbeb81af8e59a
Author: Nikos Mavrogiannopoulos <address@hidden>
Date:   Fri Mar 11 21:16:51 2011 +0100

    Added --mtu option.

-----------------------------------------------------------------------

Summary of changes:
 src/cli-gaa.c  |  141 ++++++++++++++++++++++++++++++++-----------------------
 src/cli-gaa.h  |   48 ++++++++++---------
 src/cli.c      |   10 +++-
 src/cli.gaa    |    7 ++-
 src/serv-gaa.c |  129 ++++++++++++++++++++++++++++++---------------------
 src/serv-gaa.h |   40 ++++++++--------
 src/serv.c     |    2 +-
 src/serv.gaa   |    5 ++-
 src/udp-serv.c |    3 +-
 src/udp-serv.h |    2 +-
 10 files changed, 225 insertions(+), 162 deletions(-)

diff --git a/src/cli-gaa.c b/src/cli-gaa.c
index fd9e0e4..fc0f53f 100644
--- a/src/cli-gaa.c
+++ b/src/cli-gaa.c
@@ -132,7 +132,8 @@ void gaa_help(void)
        __gaa_helpsingle('e', "rehandshake", "", "Connect, establish a session 
and rehandshake immediately.");
        __gaa_helpsingle(0, "noticket", "", "Doesn't accept session tickets.");
        __gaa_helpsingle('s', "starttls", "", "Connect, establish a plain 
session and start TLS when EOF or a SIGALRM is received.");
-       __gaa_helpsingle('u', "udp", "", "Use DTLS (datagram TLS).");
+       __gaa_helpsingle('u', "udp", "", "Use DTLS (datagram TLS) over UDP.");
+       __gaa_helpsingle(0, "mtu", "integer ", "Set MTU for datagram TLS.");
        __gaa_helpsingle(0, "crlf", "", "Send CR LF instead of LF.");
        __gaa_helpsingle(0, "x509fmtder", "", "Use DER format for certificates 
to read from.");
        __gaa_helpsingle('f', "fingerprint", "", "Send the openpgp fingerprint, 
instead of the key.");
@@ -172,52 +173,54 @@ typedef struct _gaainfo gaainfo;
 
 struct _gaainfo
 {
-#line 103 "cli.gaa"
+#line 106 "cli.gaa"
        char *rest_args;
-#line 95 "cli.gaa"
+#line 98 "cli.gaa"
        int insecure;
-#line 92 "cli.gaa"
+#line 95 "cli.gaa"
        char *port;
-#line 89 "cli.gaa"
+#line 92 "cli.gaa"
        char *psk_key;
-#line 86 "cli.gaa"
+#line 89 "cli.gaa"
        char *psk_username;
-#line 83 "cli.gaa"
+#line 86 "cli.gaa"
        char *srp_passwd;
-#line 80 "cli.gaa"
+#line 83 "cli.gaa"
        char *srp_username;
-#line 77 "cli.gaa"
+#line 80 "cli.gaa"
        char *x509_certfile;
-#line 74 "cli.gaa"
+#line 77 "cli.gaa"
        char *x509_keyfile;
-#line 71 "cli.gaa"
+#line 74 "cli.gaa"
        char *pgp_subkey;
-#line 68 "cli.gaa"
+#line 71 "cli.gaa"
        char *pgp_certfile;
-#line 65 "cli.gaa"
+#line 68 "cli.gaa"
        char *pgp_keyring;
-#line 62 "cli.gaa"
+#line 65 "cli.gaa"
        char *pgp_keyfile;
-#line 59 "cli.gaa"
+#line 62 "cli.gaa"
        char *x509_crlfile;
-#line 56 "cli.gaa"
+#line 59 "cli.gaa"
        char *x509_cafile;
-#line 53 "cli.gaa"
+#line 56 "cli.gaa"
        char *priorities;
-#line 50 "cli.gaa"
+#line 53 "cli.gaa"
        int verbose;
-#line 47 "cli.gaa"
+#line 50 "cli.gaa"
        int record_size;
-#line 44 "cli.gaa"
+#line 47 "cli.gaa"
        int print_cert;
-#line 41 "cli.gaa"
+#line 44 "cli.gaa"
        int disable_extensions;
-#line 38 "cli.gaa"
+#line 41 "cli.gaa"
        int fingerprint;
-#line 35 "cli.gaa"
+#line 38 "cli.gaa"
        int fmtder;
-#line 32 "cli.gaa"
+#line 35 "cli.gaa"
        int crlf;
+#line 32 "cli.gaa"
+       int mtu;
 #line 29 "cli.gaa"
        int udp;
 #line 26 "cli.gaa"
@@ -284,7 +287,7 @@ static int gaa_error = 0;
 #define GAA_MULTIPLE_OPTION     3
 
 #define GAA_REST                0
-#define GAA_NB_OPTION           31
+#define GAA_NB_OPTION           32
 #define GAAOPTID_version       1
 #define GAAOPTID_help  2
 #define GAAOPTID_list  3
@@ -310,12 +313,13 @@ static int gaa_error = 0;
 #define GAAOPTID_fingerprint   23
 #define GAAOPTID_x509fmtder    24
 #define GAAOPTID_crlf  25
-#define GAAOPTID_udp   26
-#define GAAOPTID_starttls      27
-#define GAAOPTID_noticket      28
-#define GAAOPTID_rehandshake   29
-#define GAAOPTID_resume        30
-#define GAAOPTID_debug 31
+#define GAAOPTID_mtu   26
+#define GAAOPTID_udp   27
+#define GAAOPTID_starttls      28
+#define GAAOPTID_noticket      29
+#define GAAOPTID_rehandshake   30
+#define GAAOPTID_resume        31
+#define GAAOPTID_debug 32
 
 #line 168 "gaa.skel"
 
@@ -592,6 +596,12 @@ struct GAAOPTION_recordsize
        int size1;
 };
 
+struct GAAOPTION_mtu 
+{
+       int arg1;
+       int size1;
+};
+
 struct GAAOPTION_debug 
 {
        int arg1;
@@ -649,6 +659,7 @@ static int gaa_get_option_num(char *str, int status)
                        GAA_CHECK1STR("", GAAOPTID_x509cafile);
                        GAA_CHECK1STR("", GAAOPTID_priority);
                        GAA_CHECK1STR("", GAAOPTID_recordsize);
+                       GAA_CHECK1STR("", GAAOPTID_mtu);
                        GAA_CHECK1STR("d", GAAOPTID_debug);
         case GAA_MULTIPLE_OPTION:
 #line 375 "gaa.skel"
@@ -696,6 +707,7 @@ static int gaa_get_option_num(char *str, int status)
                        GAA_CHECKSTR("fingerprint", GAAOPTID_fingerprint);
                        GAA_CHECKSTR("x509fmtder", GAAOPTID_x509fmtder);
                        GAA_CHECKSTR("crlf", GAAOPTID_crlf);
+                       GAA_CHECKSTR("mtu", GAAOPTID_mtu);
                        GAA_CHECKSTR("udp", GAAOPTID_udp);
                        GAA_CHECKSTR("starttls", GAAOPTID_starttls);
                        GAA_CHECKSTR("noticket", GAAOPTID_noticket);
@@ -729,6 +741,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
        struct GAAOPTION_x509cafile GAATMP_x509cafile;
        struct GAAOPTION_priority GAATMP_priority;
        struct GAAOPTION_recordsize GAATMP_recordsize;
+       struct GAAOPTION_mtu GAATMP_mtu;
        struct GAAOPTION_debug GAATMP_debug;
 
 #line 393 "gaa.skel"
@@ -752,28 +765,28 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
     {
        case GAAOPTID_version:
        OK = 0;
-#line 101 "cli.gaa"
+#line 104 "cli.gaa"
 { cli_version(); exit(0); ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_help:
        OK = 0;
-#line 99 "cli.gaa"
+#line 102 "cli.gaa"
 { gaa_help(); exit(0); ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_list:
        OK = 0;
-#line 98 "cli.gaa"
+#line 101 "cli.gaa"
 { print_list(gaaval->verbose); exit(0); ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_insecure:
        OK = 0;
-#line 96 "cli.gaa"
+#line 99 "cli.gaa"
 { gaaval->insecure = 1 ;};
 
                return GAA_OK;
@@ -783,7 +796,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_port.arg1, gaa_getstr, GAATMP_port.size1);
                gaa_index++;
-#line 93 "cli.gaa"
+#line 96 "cli.gaa"
 { gaaval->port = GAATMP_port.arg1 ;};
 
                return GAA_OK;
@@ -793,7 +806,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_pskkey.arg1, gaa_getstr, GAATMP_pskkey.size1);
                gaa_index++;
-#line 90 "cli.gaa"
+#line 93 "cli.gaa"
 { gaaval->psk_key = GAATMP_pskkey.arg1 ;};
 
                return GAA_OK;
@@ -803,7 +816,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_pskusername.arg1, gaa_getstr, 
GAATMP_pskusername.size1);
                gaa_index++;
-#line 87 "cli.gaa"
+#line 90 "cli.gaa"
 { gaaval->psk_username = GAATMP_pskusername.arg1 ;};
 
                return GAA_OK;
@@ -813,7 +826,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_srppasswd.arg1, gaa_getstr, 
GAATMP_srppasswd.size1);
                gaa_index++;
-#line 84 "cli.gaa"
+#line 87 "cli.gaa"
 { gaaval->srp_passwd = GAATMP_srppasswd.arg1 ;};
 
                return GAA_OK;
@@ -823,7 +836,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_srpusername.arg1, gaa_getstr, 
GAATMP_srpusername.size1);
                gaa_index++;
-#line 81 "cli.gaa"
+#line 84 "cli.gaa"
 { gaaval->srp_username = GAATMP_srpusername.arg1 ;};
 
                return GAA_OK;
@@ -833,7 +846,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_x509certfile.arg1, gaa_getstr, 
GAATMP_x509certfile.size1);
                gaa_index++;
-#line 78 "cli.gaa"
+#line 81 "cli.gaa"
 { gaaval->x509_certfile = GAATMP_x509certfile.arg1 ;};
 
                return GAA_OK;
@@ -843,7 +856,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_x509keyfile.arg1, gaa_getstr, 
GAATMP_x509keyfile.size1);
                gaa_index++;
-#line 75 "cli.gaa"
+#line 78 "cli.gaa"
 { gaaval->x509_keyfile = GAATMP_x509keyfile.arg1 ;};
 
                return GAA_OK;
@@ -853,7 +866,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_pgpsubkey.arg1, gaa_getstr, 
GAATMP_pgpsubkey.size1);
                gaa_index++;
-#line 72 "cli.gaa"
+#line 75 "cli.gaa"
 { gaaval->pgp_subkey = GAATMP_pgpsubkey.arg1 ;};
 
                return GAA_OK;
@@ -863,7 +876,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_pgpcertfile.arg1, gaa_getstr, 
GAATMP_pgpcertfile.size1);
                gaa_index++;
-#line 69 "cli.gaa"
+#line 72 "cli.gaa"
 { gaaval->pgp_certfile = GAATMP_pgpcertfile.arg1 ;};
 
                return GAA_OK;
@@ -873,7 +886,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_pgpkeyring.arg1, gaa_getstr, 
GAATMP_pgpkeyring.size1);
                gaa_index++;
-#line 66 "cli.gaa"
+#line 69 "cli.gaa"
 { gaaval->pgp_keyring = GAATMP_pgpkeyring.arg1 ;};
 
                return GAA_OK;
@@ -883,7 +896,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_pgpkeyfile.arg1, gaa_getstr, 
GAATMP_pgpkeyfile.size1);
                gaa_index++;
-#line 63 "cli.gaa"
+#line 66 "cli.gaa"
 { gaaval->pgp_keyfile = GAATMP_pgpkeyfile.arg1 ;};
 
                return GAA_OK;
@@ -893,7 +906,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_x509crlfile.arg1, gaa_getstr, 
GAATMP_x509crlfile.size1);
                gaa_index++;
-#line 60 "cli.gaa"
+#line 63 "cli.gaa"
 { gaaval->x509_crlfile = GAATMP_x509crlfile.arg1 ;};
 
                return GAA_OK;
@@ -903,7 +916,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_x509cafile.arg1, gaa_getstr, 
GAATMP_x509cafile.size1);
                gaa_index++;
-#line 57 "cli.gaa"
+#line 60 "cli.gaa"
 { gaaval->x509_cafile = GAATMP_x509cafile.arg1 ;};
 
                return GAA_OK;
@@ -913,14 +926,14 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_priority.arg1, gaa_getstr, 
GAATMP_priority.size1);
                gaa_index++;
-#line 54 "cli.gaa"
+#line 57 "cli.gaa"
 { gaaval->priorities = GAATMP_priority.arg1 ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_verbose:
        OK = 0;
-#line 51 "cli.gaa"
+#line 54 "cli.gaa"
 { gaaval->verbose = 1 ;};
 
                return GAA_OK;
@@ -930,46 +943,56 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_recordsize.arg1, gaa_getint, 
GAATMP_recordsize.size1);
                gaa_index++;
-#line 48 "cli.gaa"
+#line 51 "cli.gaa"
 { gaaval->record_size = GAATMP_recordsize.arg1 ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_print_cert:
        OK = 0;
-#line 45 "cli.gaa"
+#line 48 "cli.gaa"
 { gaaval->print_cert = 1 ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_disable_extensions:
        OK = 0;
-#line 42 "cli.gaa"
+#line 45 "cli.gaa"
 { gaaval->disable_extensions = 1 ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_fingerprint:
        OK = 0;
-#line 39 "cli.gaa"
+#line 42 "cli.gaa"
 { gaaval->fingerprint = 1 ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_x509fmtder:
        OK = 0;
-#line 36 "cli.gaa"
+#line 39 "cli.gaa"
 { gaaval->fmtder = 1 ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_crlf:
        OK = 0;
-#line 33 "cli.gaa"
+#line 36 "cli.gaa"
 { gaaval->crlf = 1 ;};
 
                return GAA_OK;
                break;
+       case GAAOPTID_mtu:
+       OK = 0;
+               GAA_TESTMOREARGS;
+               GAA_FILL(GAATMP_mtu.arg1, gaa_getint, GAATMP_mtu.size1);
+               gaa_index++;
+#line 33 "cli.gaa"
+{ gaaval->mtu = GAATMP_mtu.arg1 ;};
+
+               return GAA_OK;
+               break;
        case GAAOPTID_udp:
        OK = 0;
 #line 30 "cli.gaa"
@@ -1019,7 +1042,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAAREST_tmp.arg1, gaa_getstr, GAAREST_tmp.size1);
                gaa_index++;
-#line 104 "cli.gaa"
+#line 107 "cli.gaa"
 { gaaval->rest_args = GAAREST_tmp.arg1; ;};
 
                return GAA_OK;
@@ -1048,7 +1071,7 @@ int gaa(int argc, char **argv, gaainfo *gaaval)
     if(inited == 0)
     {
 
-#line 106 "cli.gaa"
+#line 109 "cli.gaa"
 { gaaval->resume=0; gaaval->noticket=0; gaaval->port="443"; 
gaaval->rest_args=NULL; 
        gaaval->record_size=0; 
        gaaval->fingerprint=0; gaaval->pgp_keyring=NULL; gaaval->x509_crlfile = 
NULL;
@@ -1056,7 +1079,7 @@ int gaa(int argc, char **argv, gaainfo *gaaval)
        gaaval->x509_keyfile=NULL; gaaval->x509_certfile=NULL; gaaval->crlf = 
0; 
        gaaval->srp_username=NULL; gaaval->srp_passwd=NULL; gaaval->fmtder = 0; 
gaaval->starttls =0; 
        gaaval->debug = 0; gaaval->print_cert = 0; gaaval->verbose = 0; 
gaaval->psk_key = NULL; 
-       gaaval->psk_username = NULL; gaaval->priorities = NULL;
+       gaaval->psk_username = NULL; gaaval->priorities = NULL; gaaval->mtu = 
1300;
        gaaval->pgp_subkey = NULL; gaaval->rehandshake = 0; gaaval->udp = 0; ;};
 
     }
diff --git a/src/cli-gaa.h b/src/cli-gaa.h
index aba523e..bebca5f 100644
--- a/src/cli-gaa.h
+++ b/src/cli-gaa.h
@@ -8,52 +8,54 @@ typedef struct _gaainfo gaainfo;
 
 struct _gaainfo
 {
-#line 103 "cli.gaa"
+#line 106 "cli.gaa"
        char *rest_args;
-#line 95 "cli.gaa"
+#line 98 "cli.gaa"
        int insecure;
-#line 92 "cli.gaa"
+#line 95 "cli.gaa"
        char *port;
-#line 89 "cli.gaa"
+#line 92 "cli.gaa"
        char *psk_key;
-#line 86 "cli.gaa"
+#line 89 "cli.gaa"
        char *psk_username;
-#line 83 "cli.gaa"
+#line 86 "cli.gaa"
        char *srp_passwd;
-#line 80 "cli.gaa"
+#line 83 "cli.gaa"
        char *srp_username;
-#line 77 "cli.gaa"
+#line 80 "cli.gaa"
        char *x509_certfile;
-#line 74 "cli.gaa"
+#line 77 "cli.gaa"
        char *x509_keyfile;
-#line 71 "cli.gaa"
+#line 74 "cli.gaa"
        char *pgp_subkey;
-#line 68 "cli.gaa"
+#line 71 "cli.gaa"
        char *pgp_certfile;
-#line 65 "cli.gaa"
+#line 68 "cli.gaa"
        char *pgp_keyring;
-#line 62 "cli.gaa"
+#line 65 "cli.gaa"
        char *pgp_keyfile;
-#line 59 "cli.gaa"
+#line 62 "cli.gaa"
        char *x509_crlfile;
-#line 56 "cli.gaa"
+#line 59 "cli.gaa"
        char *x509_cafile;
-#line 53 "cli.gaa"
+#line 56 "cli.gaa"
        char *priorities;
-#line 50 "cli.gaa"
+#line 53 "cli.gaa"
        int verbose;
-#line 47 "cli.gaa"
+#line 50 "cli.gaa"
        int record_size;
-#line 44 "cli.gaa"
+#line 47 "cli.gaa"
        int print_cert;
-#line 41 "cli.gaa"
+#line 44 "cli.gaa"
        int disable_extensions;
-#line 38 "cli.gaa"
+#line 41 "cli.gaa"
        int fingerprint;
-#line 35 "cli.gaa"
+#line 38 "cli.gaa"
        int fmtder;
-#line 32 "cli.gaa"
+#line 35 "cli.gaa"
        int crlf;
+#line 32 "cli.gaa"
+       int mtu;
 #line 29 "cli.gaa"
        int udp;
 #line 26 "cli.gaa"
diff --git a/src/cli.c b/src/cli.c
index f7ee055..65d2cf5 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -54,7 +54,7 @@
 #define MAX_BUF 4096
 
 /* global stuff here */
-int resume, starttls, insecure, rehandshake, udp;
+int resume, starttls, insecure, rehandshake, udp, mtu;
 const char *hostname = NULL;
 char *service;
 int record_max_size;
@@ -553,10 +553,15 @@ init_tls_session (const char *hostname)
   gnutls_session_t session;
 
   if (udp)
-    gnutls_init_dtls (&session, GNUTLS_CLIENT, 0);
+    {
+      gnutls_init_dtls (&session, GNUTLS_CLIENT, 0);
+      if (mtu)
+        gnutls_dtls_set_mtu(session, mtu);
+    }
   else
     gnutls_init (&session, GNUTLS_CLIENT);
 
+
   if (gnutls_priority_set_direct (session, info.priorities, &err) < 0)
     {
       fprintf (stderr, "Syntax error at: %s\n", err);
@@ -979,6 +984,7 @@ gaa_parser (int argc, char **argv)
   rehandshake = info.rehandshake;
   insecure = info.insecure;
   udp = info.udp;
+  mtu = info.mtu;
   service = info.port;
   record_max_size = info.record_size;
   fingerprint = info.fingerprint;
diff --git a/src/cli.gaa b/src/cli.gaa
index 9b3aa78..0576d5f 100644
--- a/src/cli.gaa
+++ b/src/cli.gaa
@@ -27,7 +27,10 @@ option (noticket) { $noticket = 1 } "Doesn't accept session 
tickets."
 option (s, starttls) { $starttls = 1 } "Connect, establish a plain session and 
start TLS when EOF or a SIGALRM is received."
 
 #int udp;
-option (u, udp) { $udp = 1 } "Use DTLS (datagram TLS)."
+option (u, udp) { $udp = 1 } "Use DTLS (datagram TLS) over UDP."
+
+#int mtu;
+option (mtu) INT "integer" { $mtu = $1 } "Set MTU for datagram TLS."
 
 #int crlf;
 option (crlf) { $crlf = 1 } "Send CR LF instead of LF."
@@ -110,5 +113,5 @@ init { $resume=0; $noticket=0; $port="443"; $rest_args=NULL;
        $x509_keyfile=NULL; $x509_certfile=NULL; $crlf = 0; 
        $srp_username=NULL; $srp_passwd=NULL; $fmtder = 0; $starttls =0; 
        $debug = 0; $print_cert = 0; $verbose = 0; $psk_key = NULL; 
-       $psk_username = NULL; $priorities = NULL;
+       $psk_username = NULL; $priorities = NULL; $mtu = 1300;
        $pgp_subkey = NULL; $rehandshake = 0; $udp = 0; }
diff --git a/src/serv-gaa.c b/src/serv-gaa.c
index e1fd2ec..5acb1d9 100644
--- a/src/serv-gaa.c
+++ b/src/serv-gaa.c
@@ -134,6 +134,7 @@ void gaa_help(void)
        __gaa_helpsingle(0, "http", "", "Act as an HTTP Server.");
        __gaa_helpsingle(0, "echo", "", "Act as an Echo Server.");
        __gaa_helpsingle(0, "udp", "", "Enable UDP server instead of TCP.");
+       __gaa_helpsingle(0, "mtu", "integer ", "Set MTU for datagram TLS.");
        __gaa_helpsingle(0, "dhparams", "FILE ", "DH params file to use.");
        __gaa_helpsingle(0, "x509fmtder", "", "Use DER format for 
certificates");
        __gaa_helpsingle(0, "x509cafile", "FILE ", "Certificate file or PKCS 
#11 URL to use.");
@@ -170,44 +171,46 @@ typedef struct _gaainfo gaainfo;
 
 struct _gaainfo
 {
-#line 91 "serv.gaa"
+#line 94 "serv.gaa"
        char *priorities;
-#line 88 "serv.gaa"
+#line 91 "serv.gaa"
        char *srp_passwd_conf;
-#line 85 "serv.gaa"
+#line 88 "serv.gaa"
        char *srp_passwd;
-#line 82 "serv.gaa"
+#line 85 "serv.gaa"
        char *psk_hint;
-#line 79 "serv.gaa"
+#line 82 "serv.gaa"
        char *psk_passwd;
-#line 76 "serv.gaa"
+#line 79 "serv.gaa"
        int disable_client_cert;
-#line 73 "serv.gaa"
+#line 76 "serv.gaa"
        int require_cert;
-#line 70 "serv.gaa"
+#line 73 "serv.gaa"
        char *x509_dsacertfile;
-#line 67 "serv.gaa"
+#line 70 "serv.gaa"
        char *x509_dsakeyfile;
-#line 64 "serv.gaa"
+#line 67 "serv.gaa"
        char *x509_certfile;
-#line 61 "serv.gaa"
+#line 64 "serv.gaa"
        char *x509_keyfile;
-#line 58 "serv.gaa"
+#line 61 "serv.gaa"
        char *pgp_subkey;
-#line 55 "serv.gaa"
+#line 58 "serv.gaa"
        char *pgp_certfile;
-#line 52 "serv.gaa"
+#line 55 "serv.gaa"
        char *pgp_keyfile;
-#line 49 "serv.gaa"
+#line 52 "serv.gaa"
        char *pgp_keyring;
-#line 46 "serv.gaa"
+#line 49 "serv.gaa"
        char *x509_crlfile;
-#line 43 "serv.gaa"
+#line 46 "serv.gaa"
        char *x509_cafile;
-#line 40 "serv.gaa"
+#line 43 "serv.gaa"
        int fmtder;
-#line 37 "serv.gaa"
+#line 40 "serv.gaa"
        char *dh_params_file;
+#line 37 "serv.gaa"
+       int mtu;
 #line 34 "serv.gaa"
        int udp;
 #line 30 "serv.gaa"
@@ -278,7 +281,7 @@ static int gaa_error = 0;
 #define GAA_MULTIPLE_OPTION     3
 
 #define GAA_REST                0
-#define GAA_NB_OPTION           31
+#define GAA_NB_OPTION           32
 #define GAAOPTID_version       1
 #define GAAOPTID_help  2
 #define GAAOPTID_list  3
@@ -301,15 +304,16 @@ static int gaa_error = 0;
 #define GAAOPTID_x509cafile    20
 #define GAAOPTID_x509fmtder    21
 #define GAAOPTID_dhparams      22
-#define GAAOPTID_udp   23
-#define GAAOPTID_echo  24
-#define GAAOPTID_http  25
-#define GAAOPTID_noticket      26
-#define GAAOPTID_nodb  27
-#define GAAOPTID_quiet 28
-#define GAAOPTID_port  29
-#define GAAOPTID_generate      30
-#define GAAOPTID_debug 31
+#define GAAOPTID_mtu   23
+#define GAAOPTID_udp   24
+#define GAAOPTID_echo  25
+#define GAAOPTID_http  26
+#define GAAOPTID_noticket      27
+#define GAAOPTID_nodb  28
+#define GAAOPTID_quiet 29
+#define GAAOPTID_port  30
+#define GAAOPTID_generate      31
+#define GAAOPTID_debug 32
 
 #line 168 "gaa.skel"
 
@@ -592,6 +596,12 @@ struct GAAOPTION_dhparams
        int size1;
 };
 
+struct GAAOPTION_mtu 
+{
+       int arg1;
+       int size1;
+};
+
 struct GAAOPTION_port 
 {
        int arg1;
@@ -649,6 +659,7 @@ static int gaa_get_option_num(char *str, int status)
                        GAA_CHECK1STR("", GAAOPTID_x509crlfile);
                        GAA_CHECK1STR("", GAAOPTID_x509cafile);
                        GAA_CHECK1STR("", GAAOPTID_dhparams);
+                       GAA_CHECK1STR("", GAAOPTID_mtu);
                        GAA_CHECK1STR("p", GAAOPTID_port);
                        GAA_CHECK1STR("d", GAAOPTID_debug);
         case GAA_MULTIPLE_OPTION:
@@ -692,6 +703,7 @@ static int gaa_get_option_num(char *str, int status)
                        GAA_CHECKSTR("x509cafile", GAAOPTID_x509cafile);
                        GAA_CHECKSTR("x509fmtder", GAAOPTID_x509fmtder);
                        GAA_CHECKSTR("dhparams", GAAOPTID_dhparams);
+                       GAA_CHECKSTR("mtu", GAAOPTID_mtu);
                        GAA_CHECKSTR("udp", GAAOPTID_udp);
                        GAA_CHECKSTR("echo", GAAOPTID_echo);
                        GAA_CHECKSTR("http", GAAOPTID_http);
@@ -729,6 +741,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
        struct GAAOPTION_x509crlfile GAATMP_x509crlfile;
        struct GAAOPTION_x509cafile GAATMP_x509cafile;
        struct GAAOPTION_dhparams GAATMP_dhparams;
+       struct GAAOPTION_mtu GAATMP_mtu;
        struct GAAOPTION_port GAATMP_port;
        struct GAAOPTION_debug GAATMP_debug;
 
@@ -753,21 +766,21 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
     {
        case GAAOPTID_version:
        OK = 0;
-#line 97 "serv.gaa"
+#line 100 "serv.gaa"
 { serv_version(); exit(0); ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_help:
        OK = 0;
-#line 95 "serv.gaa"
+#line 98 "serv.gaa"
 { gaa_help(); exit(0); ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_list:
        OK = 0;
-#line 94 "serv.gaa"
+#line 97 "serv.gaa"
 { print_list(0); exit(0); ;};
 
                return GAA_OK;
@@ -777,7 +790,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_priority.arg1, gaa_getstr, 
GAATMP_priority.size1);
                gaa_index++;
-#line 92 "serv.gaa"
+#line 95 "serv.gaa"
 { gaaval->priorities = GAATMP_priority.arg1 ;};
 
                return GAA_OK;
@@ -787,7 +800,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_srppasswdconf.arg1, gaa_getstr, 
GAATMP_srppasswdconf.size1);
                gaa_index++;
-#line 89 "serv.gaa"
+#line 92 "serv.gaa"
 { gaaval->srp_passwd_conf = GAATMP_srppasswdconf.arg1 ;};
 
                return GAA_OK;
@@ -797,7 +810,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_srppasswd.arg1, gaa_getstr, 
GAATMP_srppasswd.size1);
                gaa_index++;
-#line 86 "serv.gaa"
+#line 89 "serv.gaa"
 { gaaval->srp_passwd = GAATMP_srppasswd.arg1 ;};
 
                return GAA_OK;
@@ -807,7 +820,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_pskhint.arg1, gaa_getstr, GAATMP_pskhint.size1);
                gaa_index++;
-#line 83 "serv.gaa"
+#line 86 "serv.gaa"
 { gaaval->psk_hint = GAATMP_pskhint.arg1 ;};
 
                return GAA_OK;
@@ -817,21 +830,21 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_pskpasswd.arg1, gaa_getstr, 
GAATMP_pskpasswd.size1);
                gaa_index++;
-#line 80 "serv.gaa"
+#line 83 "serv.gaa"
 { gaaval->psk_passwd = GAATMP_pskpasswd.arg1 ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_disable_client_cert:
        OK = 0;
-#line 77 "serv.gaa"
+#line 80 "serv.gaa"
 { gaaval->disable_client_cert = 1 ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_require_cert:
        OK = 0;
-#line 74 "serv.gaa"
+#line 77 "serv.gaa"
 { gaaval->require_cert = 1 ;};
 
                return GAA_OK;
@@ -841,7 +854,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_x509dsacertfile.arg1, gaa_getstr, 
GAATMP_x509dsacertfile.size1);
                gaa_index++;
-#line 71 "serv.gaa"
+#line 74 "serv.gaa"
 { gaaval->x509_dsacertfile = GAATMP_x509dsacertfile.arg1 ;};
 
                return GAA_OK;
@@ -851,7 +864,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_x509dsakeyfile.arg1, gaa_getstr, 
GAATMP_x509dsakeyfile.size1);
                gaa_index++;
-#line 68 "serv.gaa"
+#line 71 "serv.gaa"
 { gaaval->x509_dsakeyfile = GAATMP_x509dsakeyfile.arg1 ;};
 
                return GAA_OK;
@@ -861,7 +874,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_x509certfile.arg1, gaa_getstr, 
GAATMP_x509certfile.size1);
                gaa_index++;
-#line 65 "serv.gaa"
+#line 68 "serv.gaa"
 { gaaval->x509_certfile = GAATMP_x509certfile.arg1 ;};
 
                return GAA_OK;
@@ -871,7 +884,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_x509keyfile.arg1, gaa_getstr, 
GAATMP_x509keyfile.size1);
                gaa_index++;
-#line 62 "serv.gaa"
+#line 65 "serv.gaa"
 { gaaval->x509_keyfile = GAATMP_x509keyfile.arg1 ;};
 
                return GAA_OK;
@@ -881,7 +894,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_pgpsubkey.arg1, gaa_getstr, 
GAATMP_pgpsubkey.size1);
                gaa_index++;
-#line 59 "serv.gaa"
+#line 62 "serv.gaa"
 { gaaval->pgp_subkey = GAATMP_pgpsubkey.arg1 ;};
 
                return GAA_OK;
@@ -891,7 +904,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_pgpcertfile.arg1, gaa_getstr, 
GAATMP_pgpcertfile.size1);
                gaa_index++;
-#line 56 "serv.gaa"
+#line 59 "serv.gaa"
 { gaaval->pgp_certfile = GAATMP_pgpcertfile.arg1 ;};
 
                return GAA_OK;
@@ -901,7 +914,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_pgpkeyfile.arg1, gaa_getstr, 
GAATMP_pgpkeyfile.size1);
                gaa_index++;
-#line 53 "serv.gaa"
+#line 56 "serv.gaa"
 { gaaval->pgp_keyfile = GAATMP_pgpkeyfile.arg1 ;};
 
                return GAA_OK;
@@ -911,7 +924,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_pgpkeyring.arg1, gaa_getstr, 
GAATMP_pgpkeyring.size1);
                gaa_index++;
-#line 50 "serv.gaa"
+#line 53 "serv.gaa"
 { gaaval->pgp_keyring = GAATMP_pgpkeyring.arg1 ;};
 
                return GAA_OK;
@@ -921,7 +934,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_x509crlfile.arg1, gaa_getstr, 
GAATMP_x509crlfile.size1);
                gaa_index++;
-#line 47 "serv.gaa"
+#line 50 "serv.gaa"
 { gaaval->x509_crlfile = GAATMP_x509crlfile.arg1 ;};
 
                return GAA_OK;
@@ -931,14 +944,14 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_x509cafile.arg1, gaa_getstr, 
GAATMP_x509cafile.size1);
                gaa_index++;
-#line 44 "serv.gaa"
+#line 47 "serv.gaa"
 { gaaval->x509_cafile = GAATMP_x509cafile.arg1 ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_x509fmtder:
        OK = 0;
-#line 41 "serv.gaa"
+#line 44 "serv.gaa"
 { gaaval->fmtder = 1 ;};
 
                return GAA_OK;
@@ -948,11 +961,21 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo 
*gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_dhparams.arg1, gaa_getstr, 
GAATMP_dhparams.size1);
                gaa_index++;
-#line 38 "serv.gaa"
+#line 41 "serv.gaa"
 { gaaval->dh_params_file = GAATMP_dhparams.arg1 ;};
 
                return GAA_OK;
                break;
+       case GAAOPTID_mtu:
+       OK = 0;
+               GAA_TESTMOREARGS;
+               GAA_FILL(GAATMP_mtu.arg1, gaa_getint, GAATMP_mtu.size1);
+               gaa_index++;
+#line 38 "serv.gaa"
+{ gaaval->mtu = GAATMP_mtu.arg1 ;};
+
+               return GAA_OK;
+               break;
        case GAAOPTID_udp:
        OK = 0;
 #line 35 "serv.gaa"
@@ -1046,7 +1069,7 @@ int gaa(int argc, char **argv, gaainfo *gaaval)
     if(inited == 0)
     {
 
-#line 101 "serv.gaa"
+#line 104 "serv.gaa"
 { gaaval->generate=0; gaaval->port=5556; gaaval->http=0; gaaval->nodb = 0; 
gaaval->noticket = 0;
        gaaval->x509_cafile = NULL; gaaval->pgp_keyfile=NULL; 
gaaval->pgp_certfile=NULL;
        gaaval->x509_keyfile=NULL; gaaval->x509_certfile=NULL; 
gaaval->x509_crlfile = NULL;
@@ -1055,7 +1078,7 @@ int gaa(int argc, char **argv, gaainfo *gaaval)
        gaaval->pgp_keyring=NULL; gaaval->fmtder = 0;
        gaaval->disable_client_cert = 0; gaaval->priorities = NULL;
        gaaval->dh_params_file=NULL; gaaval->debug=0; gaaval->require_cert = 0; 
gaaval->psk_passwd = 0;
-       gaaval->pgp_subkey = NULL; gaaval->udp = 0; ;};
+       gaaval->pgp_subkey = NULL; gaaval->udp = 0; gaaval->mtu = 1300; ;};
 
     }
     inited = 1;
diff --git a/src/serv-gaa.h b/src/serv-gaa.h
index 0a1d560..ef0ab64 100644
--- a/src/serv-gaa.h
+++ b/src/serv-gaa.h
@@ -8,44 +8,46 @@ typedef struct _gaainfo gaainfo;
 
 struct _gaainfo
 {
-#line 91 "serv.gaa"
+#line 94 "serv.gaa"
        char *priorities;
-#line 88 "serv.gaa"
+#line 91 "serv.gaa"
        char *srp_passwd_conf;
-#line 85 "serv.gaa"
+#line 88 "serv.gaa"
        char *srp_passwd;
-#line 82 "serv.gaa"
+#line 85 "serv.gaa"
        char *psk_hint;
-#line 79 "serv.gaa"
+#line 82 "serv.gaa"
        char *psk_passwd;
-#line 76 "serv.gaa"
+#line 79 "serv.gaa"
        int disable_client_cert;
-#line 73 "serv.gaa"
+#line 76 "serv.gaa"
        int require_cert;
-#line 70 "serv.gaa"
+#line 73 "serv.gaa"
        char *x509_dsacertfile;
-#line 67 "serv.gaa"
+#line 70 "serv.gaa"
        char *x509_dsakeyfile;
-#line 64 "serv.gaa"
+#line 67 "serv.gaa"
        char *x509_certfile;
-#line 61 "serv.gaa"
+#line 64 "serv.gaa"
        char *x509_keyfile;
-#line 58 "serv.gaa"
+#line 61 "serv.gaa"
        char *pgp_subkey;
-#line 55 "serv.gaa"
+#line 58 "serv.gaa"
        char *pgp_certfile;
-#line 52 "serv.gaa"
+#line 55 "serv.gaa"
        char *pgp_keyfile;
-#line 49 "serv.gaa"
+#line 52 "serv.gaa"
        char *pgp_keyring;
-#line 46 "serv.gaa"
+#line 49 "serv.gaa"
        char *x509_crlfile;
-#line 43 "serv.gaa"
+#line 46 "serv.gaa"
        char *x509_cafile;
-#line 40 "serv.gaa"
+#line 43 "serv.gaa"
        int fmtder;
-#line 37 "serv.gaa"
+#line 40 "serv.gaa"
        char *dh_params_file;
+#line 37 "serv.gaa"
+       int mtu;
 #line 34 "serv.gaa"
        int udp;
 #line 30 "serv.gaa"
diff --git a/src/serv.c b/src/serv.c
index 698ab50..461aa0f 100644
--- a/src/serv.c
+++ b/src/serv.c
@@ -1097,7 +1097,7 @@ main (int argc, char **argv)
 #endif
 
   if (info.udp)
-    return udp_server(name, info.port);
+    return udp_server(name, info.port, info.mtu);
   else
     return tcp_server(name, info.port);
 }
diff --git a/src/serv.gaa b/src/serv.gaa
index 93cc85d..b6f018f 100644
--- a/src/serv.gaa
+++ b/src/serv.gaa
@@ -34,6 +34,9 @@ option (echo) { $http = 0 } "Act as an Echo Server."
 #int udp;
 option (udp) { $udp = 1 } "Enable UDP server instead of TCP."
 
+#int mtu;
+option (mtu) INT "integer" { $mtu = $1 } "Set MTU for datagram TLS."
+
 #char *dh_params_file;
 option (dhparams) STR "FILE" { $dh_params_file = $1 } "DH params file to use."
 
@@ -106,4 +109,4 @@ init { $generate=0; $port=5556; $http=0; $nodb = 0; 
$noticket = 0;
        $pgp_keyring=NULL; $fmtder = 0;
        $disable_client_cert = 0; $priorities = NULL;
        $dh_params_file=NULL; $debug=0; $require_cert = 0; $psk_passwd = 0;
-       $pgp_subkey = NULL; $udp = 0; }
+       $pgp_subkey = NULL; $udp = 0; $mtu = 1300; }
diff --git a/src/udp-serv.c b/src/udp-serv.c
index a5ba6e4..8ac3158 100644
--- a/src/udp-serv.c
+++ b/src/udp-serv.c
@@ -21,7 +21,7 @@ static ssize_t pull_func(gnutls_transport_ptr_t p, void * 
data, size_t size);
 
 #define MAX_BUFFER 255     /* Longest string to echo */
 
-int udp_server(const char* name, int port)
+int udp_server(const char* name, int port, int mtu)
 {
     int sock, ret;
     struct sockaddr_in cli_addr;
@@ -53,6 +53,7 @@ int udp_server(const char* name, int port)
           continue;
 
         session = initialize_session(1);
+        if (mtu) gnutls_dtls_set_mtu(session, mtu);
 
         priv.session = session;
         priv.fd = sock;
diff --git a/src/udp-serv.h b/src/udp-serv.h
index 7a481b9..ce4c54d 100644
--- a/src/udp-serv.h
+++ b/src/udp-serv.h
@@ -1,6 +1,6 @@
 #include <gnutls/dtls.h>
 
-int udp_server(const char* name, int port);
+int udp_server(const char* name, int port, int mtu);
 gnutls_session_t initialize_session (int dtls);
 const char * human_addr (const struct sockaddr *sa, socklen_t salen,
             char *buf, size_t buflen);


hooks/post-receive
-- 
GNU gnutls



reply via email to

[Prev in Thread] Current Thread [Next in Thread]