Mercurial > hg > freeDiameter-dtls
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;