@@ -1160,19 +1160,24 @@ bool GetCheckedIPs (SocketAsyncEventArgs e, out IPAddress [] addresses)
1160
1160
// while skipping entries that do not match the address family
1161
1161
DnsEndPoint dep = e . RemoteEndPoint as DnsEndPoint ;
1162
1162
if ( dep != null ) {
1163
- var possibleAddresses = Dns . GetHostAddresses ( dep . Host ) ;
1164
- var numberOfAddresses = 0 ;
1165
- int [ ] addressIndices = new int [ possibleAddresses . Length ] ;
1166
- for ( var i = 0 ; i < possibleAddresses . Length ; i ++ ) {
1167
- if ( possibleAddresses [ i ] . AddressFamily == dep . AddressFamily ) {
1168
- addressIndices [ numberOfAddresses ] = i ;
1169
- numberOfAddresses ++ ;
1163
+ if ( dep . AddressFamily == AddressFamily . Unspecified )
1164
+ {
1165
+ addresses = Dns . GetHostAddresses ( dep . Host ) ;
1166
+ } else {
1167
+ var possibleAddresses = Dns . GetHostAddresses ( dep . Host ) ;
1168
+ var numberOfAddresses = 0 ;
1169
+ int [ ] addressIndices = new int [ possibleAddresses . Length ] ;
1170
+ for ( var i = 0 ; i < possibleAddresses . Length ; i ++ ) {
1171
+ if ( possibleAddresses [ i ] . AddressFamily == dep . AddressFamily ) {
1172
+ addressIndices [ numberOfAddresses ] = i ;
1173
+ numberOfAddresses ++ ;
1174
+ }
1170
1175
}
1171
- }
1172
- addresses = new IPAddress [ numberOfAddresses ] ;
1173
- for ( var i = 0 ; i < numberOfAddresses ; i ++ )
1174
- addresses [ i ] = possibleAddresses [ addressIndices [ i ] ] ;
1175
1176
1177
+ addresses = new IPAddress [ numberOfAddresses ] ;
1178
+ for ( var i = 0 ; i < numberOfAddresses ; i ++ )
1179
+ addresses [ i ] = possibleAddresses [ addressIndices [ i ] ] ;
1180
+ }
1176
1181
return true ;
1177
1182
} else {
1178
1183
e . ConnectByNameError = null ;
0 commit comments