mirror of
https://gitlab.com/openconnect/ocserv.git
synced 2026-02-10 16:57:00 +08:00
corrected DTLS data sending.
This commit is contained in:
@@ -72,11 +72,12 @@ ssize_t dtls_send_data(gnutls_session_t session, void *data,
|
||||
{
|
||||
int ret;
|
||||
int left = data_size;
|
||||
uint8_t* p = data;
|
||||
uint8_t* p = data, *p1;
|
||||
|
||||
while(left > 0) {
|
||||
*(p-1) = AC_PKT_DATA;
|
||||
ret = gnutls_record_send(session, p-1, MIN(mtu, left+1));
|
||||
p1 = p-1;
|
||||
*(p1) = AC_PKT_DATA;
|
||||
ret = gnutls_record_send(session, p1, MIN(mtu, left+1));
|
||||
if (ret < 0 && (ret != GNUTLS_E_AGAIN && ret != GNUTLS_E_INTERRUPTED)) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -1230,9 +1230,7 @@ static int tun_mainloop(struct worker_st *ws, struct timespec *tnow)
|
||||
oclog(ws, LOG_TRANSFER_DEBUG, "sending %d byte(s)\n", l);
|
||||
if (ws->udp_state == UP_ACTIVE) {
|
||||
|
||||
ws->buffer[7] = AC_PKT_DATA;
|
||||
|
||||
ret = dtls_send_data(ws->dtls_session, ws->buffer + 7, l, ws->conn_mtu+1);
|
||||
ret = dtls_send_data(ws->dtls_session, ws->buffer + 8, l, ws->conn_mtu+1);
|
||||
GNUTLS_FATAL_ERR(ret);
|
||||
|
||||
if (ret == GNUTLS_E_LARGE_PACKET) {
|
||||
|
||||
Reference in New Issue
Block a user