# HG changeset patch # User Sebastien Decugis # Date 1371693303 -28800 # Node ID 33b94b5b828939f34886ee877b3f8138fe68d885 # Parent 835fe2345db672edb7f7c44dac74b8558ed50c53 Use path_mtu instead of MTU. Now large packets exchange are successful. diff -r 835fe2345db6 -r 33b94b5b8289 libfdcore/sctp_dtls.c --- 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;