* fhandler_socket.cc (fhandler_socket::bind): Don't run explicit
local socket test in SO_REUSEADDR case on systems supporting enhanced socket security. Explain why. Only call address_in_use for AF_INET sockets. * net.cc (cygwin_setsockopt): Don't call setsockopt to set SO_REUSEADDR on systems supporting enhanced socket security. Add comment. * wincap.h (wincaps::has_enhanced_socket_security): New element. * wincap.cc: Implement above element throughout.
This commit is contained in:
@@ -33,6 +33,7 @@ static NO_COPY wincaps wincap_unknown = {
|
||||
has_disabled_user_tos_setting:false,
|
||||
has_fileid_dirinfo:false,
|
||||
has_exclusiveaddruse:false,
|
||||
has_enhanced_socket_security:false,
|
||||
has_buggy_restart_scan:false,
|
||||
has_mandatory_integrity_control:false,
|
||||
needs_logon_sid_in_sid_list:true,
|
||||
@@ -64,6 +65,7 @@ static NO_COPY wincaps wincap_nt4 = {
|
||||
has_disabled_user_tos_setting:false,
|
||||
has_fileid_dirinfo:false,
|
||||
has_exclusiveaddruse:false,
|
||||
has_enhanced_socket_security:false,
|
||||
has_buggy_restart_scan:false,
|
||||
has_mandatory_integrity_control:false,
|
||||
needs_logon_sid_in_sid_list:true,
|
||||
@@ -95,6 +97,7 @@ static NO_COPY wincaps wincap_nt4sp4 = {
|
||||
has_disabled_user_tos_setting:false,
|
||||
has_fileid_dirinfo:false,
|
||||
has_exclusiveaddruse:true,
|
||||
has_enhanced_socket_security:false,
|
||||
has_buggy_restart_scan:false,
|
||||
has_mandatory_integrity_control:false,
|
||||
needs_logon_sid_in_sid_list:true,
|
||||
@@ -126,6 +129,7 @@ static NO_COPY wincaps wincap_2000 = {
|
||||
has_disabled_user_tos_setting:true,
|
||||
has_fileid_dirinfo:true,
|
||||
has_exclusiveaddruse:true,
|
||||
has_enhanced_socket_security:false,
|
||||
has_buggy_restart_scan:true,
|
||||
has_mandatory_integrity_control:false,
|
||||
needs_logon_sid_in_sid_list:true,
|
||||
@@ -157,6 +161,7 @@ static NO_COPY wincaps wincap_2000sp4 = {
|
||||
has_disabled_user_tos_setting:true,
|
||||
has_fileid_dirinfo:true,
|
||||
has_exclusiveaddruse:true,
|
||||
has_enhanced_socket_security:false,
|
||||
has_buggy_restart_scan:true,
|
||||
has_mandatory_integrity_control:false,
|
||||
needs_logon_sid_in_sid_list:true,
|
||||
@@ -188,6 +193,7 @@ static NO_COPY wincaps wincap_xp = {
|
||||
has_disabled_user_tos_setting:true,
|
||||
has_fileid_dirinfo:true,
|
||||
has_exclusiveaddruse:true,
|
||||
has_enhanced_socket_security:false,
|
||||
has_buggy_restart_scan:false,
|
||||
has_mandatory_integrity_control:false,
|
||||
needs_logon_sid_in_sid_list:false,
|
||||
@@ -219,6 +225,7 @@ static NO_COPY wincaps wincap_xpsp1 = {
|
||||
has_disabled_user_tos_setting:true,
|
||||
has_fileid_dirinfo:true,
|
||||
has_exclusiveaddruse:true,
|
||||
has_enhanced_socket_security:false,
|
||||
has_buggy_restart_scan:false,
|
||||
has_mandatory_integrity_control:false,
|
||||
needs_logon_sid_in_sid_list:false,
|
||||
@@ -250,6 +257,7 @@ static NO_COPY wincaps wincap_xpsp2 = {
|
||||
has_disabled_user_tos_setting:true,
|
||||
has_fileid_dirinfo:true,
|
||||
has_exclusiveaddruse:true,
|
||||
has_enhanced_socket_security:false,
|
||||
has_buggy_restart_scan:false,
|
||||
has_mandatory_integrity_control:false,
|
||||
needs_logon_sid_in_sid_list:false,
|
||||
@@ -281,6 +289,7 @@ static NO_COPY wincaps wincap_2003 = {
|
||||
has_disabled_user_tos_setting:true,
|
||||
has_fileid_dirinfo:true,
|
||||
has_exclusiveaddruse:true,
|
||||
has_enhanced_socket_security:true,
|
||||
has_buggy_restart_scan:false,
|
||||
has_mandatory_integrity_control:false,
|
||||
needs_logon_sid_in_sid_list:false,
|
||||
@@ -312,6 +321,7 @@ static NO_COPY wincaps wincap_vista = {
|
||||
has_disabled_user_tos_setting:true,
|
||||
has_fileid_dirinfo:true,
|
||||
has_exclusiveaddruse:true,
|
||||
has_enhanced_socket_security:true,
|
||||
has_buggy_restart_scan:false,
|
||||
has_mandatory_integrity_control:true,
|
||||
needs_logon_sid_in_sid_list:false,
|
||||
|
||||
Reference in New Issue
Block a user