summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dist/IO/lib/IO/Socket.pm2
-rw-r--r--dist/IO/t/cachepropagate-tcp.t1
-rw-r--r--dist/IO/t/cachepropagate-unix.t1
3 files changed, 2 insertions, 2 deletions
diff --git a/dist/IO/lib/IO/Socket.pm b/dist/IO/lib/IO/Socket.pm
index 529423b5fd..5d4b19e2ab 100644
--- a/dist/IO/lib/IO/Socket.pm
+++ b/dist/IO/lib/IO/Socket.pm
@@ -249,6 +249,8 @@ sub accept {
$peer = accept($new,$sock)
or return;
+ ${*$new}{$_} = ${*$sock}{$_} for qw( io_socket_domain io_socket_type io_socket_proto );
+
return wantarray ? ($new, $peer)
: $new;
}
diff --git a/dist/IO/t/cachepropagate-tcp.t b/dist/IO/t/cachepropagate-tcp.t
index 6bc2efed91..b9104bba09 100644
--- a/dist/IO/t/cachepropagate-tcp.t
+++ b/dist/IO/t/cachepropagate-tcp.t
@@ -43,7 +43,6 @@ SKIP: {
my $new = $listener->accept();
- local $TODO = "this information isn't cached for accepted sockets";
is($new->sockdomain(), $d, 'domain match');
SKIP: {
skip "no Socket::SO_PROTOCOL", 1 if !defined(eval { Socket::SO_PROTOCOL });
diff --git a/dist/IO/t/cachepropagate-unix.t b/dist/IO/t/cachepropagate-unix.t
index 3e3a73ab2f..2f8c55e1f8 100644
--- a/dist/IO/t/cachepropagate-unix.t
+++ b/dist/IO/t/cachepropagate-unix.t
@@ -47,7 +47,6 @@ SKIP: {
my $new = $listener->accept();
- $TODO = "this information isn't cached for accepted sockets";
is($new->sockdomain(), $d, 'domain match');
SKIP: {
skip "no Socket::SO_PROTOCOL", 1 if !defined(eval { Socket::SO_PROTOCOL });