@@ -1147,14 +1147,22 @@ int32_t scap_fd_read_sockets(scap_t *handle, scap_fdinfo **sockets)
11471147 if (SCAP_FAILURE == scap_fd_read_ipv4_sockets_from_proc_fs (handle , "/proc/net/tcp" , SCAP_L4_TCP , sockets ) ||
11481148 SCAP_FAILURE == scap_fd_read_ipv4_sockets_from_proc_fs (handle , "/proc/net/udp" , SCAP_L4_UDP , sockets ) ||
11491149 SCAP_FAILURE == scap_fd_read_ipv4_sockets_from_proc_fs (handle , "/proc/net/raw" , SCAP_L4_RAW , sockets ) ||
1150- SCAP_FAILURE == scap_fd_read_ipv6_sockets_from_proc_fs (handle , "/proc/net/tcp6" , SCAP_L4_TCP , sockets ) ||
1151- SCAP_FAILURE == scap_fd_read_ipv6_sockets_from_proc_fs (handle , "/proc/net/udp6" , SCAP_L4_UDP , sockets ) ||
1152- SCAP_FAILURE == scap_fd_read_ipv6_sockets_from_proc_fs (handle , "/proc/net/raw6" , SCAP_L4_RAW , sockets ) ||
11531150 SCAP_FAILURE == scap_fd_read_unix_sockets_from_proc_fs (handle , sockets ))
11541151 {
11551152 scap_fd_free_table (handle , sockets );
11561153 return SCAP_FAILURE ;
11571154 }
1155+
1156+ /* We assume if there is /proc/net/tcp6 that ipv6 is avaiable */
1157+ if (0 == access ("/proc/net/tcp6" , R_OK )) {
1158+ if (SCAP_FAILURE == scap_fd_read_ipv6_sockets_from_proc_fs (handle , "/proc/net/tcp6" , SCAP_L4_TCP , sockets ) ||
1159+ SCAP_FAILURE == scap_fd_read_ipv6_sockets_from_proc_fs (handle , "/proc/net/udp6" , SCAP_L4_UDP , sockets ) ||
1160+ SCAP_FAILURE == scap_fd_read_ipv6_sockets_from_proc_fs (handle , "/proc/net/raw6" , SCAP_L4_RAW , sockets ))
1161+ {
1162+ scap_fd_free_table (handle , sockets );
1163+ return SCAP_FAILURE ;
1164+ }
1165+ }
11581166 return SCAP_SUCCESS ;
11591167}
11601168
0 commit comments