Revert "Try to read more than a single packet from the TUN device."

This reverts commit 019126abfd.
This commit is contained in:
Nikos Mavrogiannopoulos
2014-04-06 09:08:44 +02:00
parent 7d07ccb1e4
commit bd9aaa1228
3 changed files with 2 additions and 31 deletions

View File

@@ -64,32 +64,6 @@ ssize_t tls_send(gnutls_session_t session, const void *data,
return data_size;
}
/* Note that data will be modified and must have one byte
* available before its start address.
*/
ssize_t dtls_send_data(gnutls_session_t session, void *data,
size_t data_size, size_t mtu)
{
int ret;
int left = data_size;
uint8_t* p = data;
while(left > 0) {
*(p-1) = AC_PKT_DATA;
ret = gnutls_record_send(session, p-1, MIN(mtu, left+1));
if (ret < 0 && (ret != GNUTLS_E_AGAIN && ret != GNUTLS_E_INTERRUPTED)) {
return ret;
}
if (ret > 0) {
left -= ret-1;
p += ret-1;
}
}
return data_size;
}
/* Same as tls_send() but will not retry on EAGAIN errors */
ssize_t tls_send_nowait(gnutls_session_t session, const void *data,
size_t data_size)

View File

@@ -38,9 +38,6 @@ ssize_t tls_send(gnutls_session_t session, const void *data,
ssize_t tls_send_nowait(gnutls_session_t session, const void *data,
size_t data_size);
ssize_t dtls_send_data(gnutls_session_t session, void *data,
size_t data_size, size_t mtu);
void tls_cork(gnutls_session_t session);
int tls_uncork(gnutls_session_t session);

View File

@@ -1204,7 +1204,7 @@ static int tun_mainloop(struct worker_st *ws, struct timespec *tnow)
int ret, l, e;
unsigned tls_retry;
l = read(ws->tun_fd, ws->buffer + 8, ws->buffer_size-8);
l = read(ws->tun_fd, ws->buffer + 8, ws->conn_mtu);
if (l < 0) {
e = errno;
@@ -1232,7 +1232,7 @@ static int tun_mainloop(struct worker_st *ws, struct timespec *tnow)
ws->buffer[7] = AC_PKT_DATA;
ret = dtls_send_data(ws->dtls_session, ws->buffer + 7, l, ws->conn_mtu+1);
ret = tls_send(ws->dtls_session, ws->buffer + 7, l + 1);
GNUTLS_FATAL_ERR(ret);
if (ret == GNUTLS_E_LARGE_PACKET) {