X-Git-Url: http://www.lcore.org/git/lcore.git/blobdiff_plain/1e45a1f0bf2ab89879ac9855b76ddfed1c406c3f..be01aa2e4e4e54fd8bb3ea27ac3c6b7978553b6e:/lcore.pas?ds=sidebyside diff --git a/lcore.pas b/lcore.pas index 99fbe98..7db6b3e 100755 --- a/lcore.pas +++ b/lcore.pas @@ -35,8 +35,13 @@ interface const - {for IPv6 it is 1440: 1500 - IP header (40) - TCP/UDP header (20). for ipv4 it is 1460} - packetbasesize = 1440; + {how this number is made up: + - ethernet: MTU 1500 + - be safe for either "ethernet v1" or "PPPoE", both take 8 bytes + - IPv6 header: 40 bytes (IPv4 is 20) + - TCP/UDP header: 20 bytes + } + packetbasesize = 1432; receivebufsize=packetbasesize*8; var @@ -568,7 +573,16 @@ begin internalclose(0); end else begin - internalclose({$ifdef win32}getlasterror{$else}linuxerror{$endif}); + {$ifdef win32} + if getlasterror=WSAEWOULDBLOCK then begin + //the asynchronous nature of windows messages means we sometimes + //get here with the buffer full + //so do nothing in that case + end else + {$endif} + begin + internalclose({$ifdef win32}getlasterror{$else}linuxerror{$endif}); + end end; end;