[Patch] Allows tun_mainloop to handle multiple packets in single read.

Kazuyoshi Aizawa admin2 at whiteboard.ne.jp
Tue Nov 22 11:43:32 EST 2011


Hi,

I've created a patch for openconnect v3.14 for Solaris environment.

[Issue]
It seems tun_mainloop() assumes that reading data from /dev/tun
device only have one packet, and the data must start from the
beginning of the packet.
But Solaris's tun driver could include multiple packets into single
read(2), and the last packet would be truncated because buffer has
only 2,000 byte of the size. Thus, next read(2) would return middle
of packet data.
It gets packet data corrupted, and results in lowering a performance.

[Summary of patch]
Modified tun_mainloop and enabled it to handle multiple packets
included in single read.
I believe this code is safe for other OS environments, but just in
case, I isolated the code within ifdef __sun__ satatement.

Thanks,

Kazuyoshi Aizawa
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/openconnect-devel/attachments/20111123/0ea44506/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: tun.c-3.14-patch-solaris
Type: application/octet-stream
Size: 1447 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/openconnect-devel/attachments/20111123/0ea44506/attachment.obj>


More information about the openconnect-devel mailing list