changeset 1227:33b94b5b8289

Use path_mtu instead of MTU. Now large packets exchange are successful.
author Sebastien Decugis <sdecugis@freediameter.net>
date Thu, 20 Jun 2013 09:55:03 +0800
parents 835fe2345db6
children cf9bad611f90
files libfdcore/sctp_dtls.c
diffstat 1 files changed, 3 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/libfdcore/sctp_dtls.c	Thu Jun 20 09:42:07 2013 +0800
+++ b/libfdcore/sctp_dtls.c	Thu Jun 20 09:55:03 2013 +0800
@@ -680,6 +680,7 @@
 {
 	ssize_t ret;
 	size_t sent = 0;
+	size_t maxlen = gnutls_dtls_get_data_mtu(conn->cc_tls_para.session);
 	TRACE_ENTRY("%p %p %zd", conn, buf, len);
 	
 	CHECK_PARAMS(conn);
@@ -699,8 +700,8 @@
 	/* Now send the data over this stream. Do it in a loop in case the length is larger than the MTU */
 	do {
 		size_t tosend = len - sent;
-		if (tosend > DTLS_SCTP_MTU)
-			tosend = DTLS_SCTP_MTU;
+		if (tosend > maxlen)
+			tosend = maxlen;
 		CHECK_GNUTLS_DO( ret = fd_tls_send_handle_error(conn, conn->cc_tls_para.session, buf + sent, tosend),  );
 		if (ret <= 0)
 			return ENOTCONN;
"Welcome to our mercurial repository"