+
+ unless ($^O eq 'MSWin32') {
+ if ($] >= 5.6) {
+ eval {
+ require Socket; Socket->import(qw(IPPROTO_TCP TCP_NODELAY));
+ };
+ } else {
+ dbg("IPPROTO_TCP and TCP_NODELAY manually defined");
+ eval 'sub IPPROTO_TCP { 6 };';
+ eval 'sub TCP_NODELAY { 1 };';
+ }
+ }
+ # http://support.microsoft.com/support/kb/articles/Q150/5/37.asp
+ # defines EINPROGRESS as 10035. We provide it here because some
+ # Win32 users report POSIX::EINPROGRESS is not vendor-supported.
+ if ($^O eq 'MSWin32') {
+ eval '*EINPROGRESS = sub { 10036 };';
+ eval '*EWOULDBLOCK = *EAGAIN = sub { 10035 };';
+ eval '*F_GETFL = sub { 0 };';
+ eval '*F_SETFL = sub { 0 };';
+ $blocking_supported = 1;
+ }