16:32:16 | Start |
16:32:17 | tst_get_unused_port() get port 37429
|
| == create an IPv4 socket == |
16:32:17 | socket(domain:AF_INET, type:SOCK_STREAM, protocol:0)
|
16:32:17 | return sockfd=4
|
| == bind IPv4 socket to port 37429 == |
16:32:17 | bind(sockfd:4, my_addr:0x3ffe797925c, addrlen:16)
|
16:32:17 | return 0
|
| == listen on IPv4 socket == |
16:32:17 | listen(sockfd:4, backlog:100)
|
16:32:17 | return 0
|
| == create an IPv6 socket == |
16:32:17 | socket(domain:AF_INET6, type:SOCK_STREAM, protocol:0)
|
16:32:17 | return sockfd=5
|
16:32:17 | inet_pton(af:AF_INET6, src:"::FFFF:127.0.0.1", dst:0x3ffe7979274)
|
16:32:17 | return 1, dst=0000:0000:0000:0000:0000:ffff:7f00:0001
|
| == enable the IPV6_V6ONLY option == |
16:32:17 | setsockopt(sockfd:5, level:IPPROTO_IPV6, optname:IPV6_V6ONLY, optval:0x3ffe7979258, optlen:4)
|
16:32:17 | return 0
|
| == connect IPv6 socket to IPv4 socket == |
16:32:17 | connect(sockfd:5, serv_addr:0x3ffe797926c, addrlen:28)
|
16:32:17 | return error ENETUNREACH
|
| == disable the IPV6_V6ONLY option == |
16:32:17 | setsockopt(sockfd:5, level:IPPROTO_IPV6, optname:IPV6_V6ONLY, optval:0x3ffe7979258, optlen:4)
|
16:32:17 | return 0
|
| == connect IPv6 socket to IPv4 socket == |
16:32:17 | connect(sockfd:5, serv_addr:0x3ffe797926c, addrlen:28)
|
16:32:17 | return 0
|
| == accept the connect on IPv4 socket == |
16:32:18 | accept(sockfd:4, addr:0x3ffe797925c, addrlen:0x3ffe7979254)
|
16:32:18 | return 6
|
| == send message on IPv4 socket == |
16:32:18 | send(sockfd:6, buf:0x3ffe79791f0, len:100, flags:0)
|
16:32:18 | return 100
|
16:32:18 | recv(sockfd:5, buf:0x3ffe79791f0, len:100, flags:0)
|
16:32:18 | return 100
|
16:32:18 | close(6)
|
16:32:18 | close(5)
|
16:32:18 | close(4)
|
| OK |
16:32:18 | End |