08:40:26 | Start |
08:40:27 | tst_get_unused_port() get port 35997
|
| == create an IPv4 socket == |
08:40:27 | socket(domain:AF_INET, type:SOCK_STREAM, protocol:0)
|
08:40:27 | return sockfd=4
|
| == bind IPv4 socket to port 35997 == |
08:40:27 | bind(sockfd:4, my_addr:0x7ffee77bc560, addrlen:16)
|
08:40:27 | return 0
|
| == listen on IPv4 socket == |
08:40:27 | listen(sockfd:4, backlog:100)
|
08:40:27 | return 0
|
| == create an IPv6 socket == |
08:40:27 | socket(domain:AF_INET6, type:SOCK_STREAM, protocol:0)
|
08:40:27 | return sockfd=5
|
08:40:27 | inet_pton(af:AF_INET6, src:"::FFFF:127.0.0.1", dst:0x7ffee77bc578)
|
08:40:27 | return 1, dst=0000:0000:0000:0000:0000:ffff:7f00:0001
|
| == enable the IPV6_V6ONLY option == |
08:40:27 | setsockopt(sockfd:5, level:IPPROTO_IPV6, optname:IPV6_V6ONLY, optval:0x7ffee77bc55c, optlen:4)
|
08:40:27 | return 0
|
| == connect IPv6 socket to IPv4 socket == |
08:40:28 | connect(sockfd:5, serv_addr:0x7ffee77bc570, addrlen:28)
|
08:40:28 | return error ENETUNREACH
|
| == disable the IPV6_V6ONLY option == |
08:40:28 | setsockopt(sockfd:5, level:IPPROTO_IPV6, optname:IPV6_V6ONLY, optval:0x7ffee77bc55c, optlen:4)
|
08:40:28 | return 0
|
| == connect IPv6 socket to IPv4 socket == |
08:40:28 | connect(sockfd:5, serv_addr:0x7ffee77bc570, addrlen:28)
|
08:40:28 | return 0
|
| == accept the connect on IPv4 socket == |
08:40:28 | accept(sockfd:4, addr:0x7ffee77bc560, addrlen:0x7ffee77bc558)
|
08:40:28 | return 6
|
| == send message on IPv4 socket == |
08:40:28 | send(sockfd:6, buf:0x7ffee77bc4f0, len:100, flags:0)
|
08:40:28 | return 100
|
08:40:28 | recv(sockfd:5, buf:0x7ffee77bc4f0, len:100, flags:0)
|
08:40:28 | return 100
|
08:40:28 | close(6)
|
08:40:28 | close(5)
|
08:40:28 | close(4)
|
| OK |
08:40:28 | End |