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>