- Status = pTcp6Protocol->Connect ( pTcp6Protocol,\r
- &pTcp6->ConnectToken );\r
+ Status = pTcp6Protocol->GetModeData ( pTcp6Protocol,\r
+ NULL,\r
+ NULL,\r
+ NULL,\r
+ NULL,\r
+ &SnpModeData );\r
+ if ( !EFI_ERROR ( Status )) {\r
+ if ( SnpModeData.MediaPresentSupported\r
+ && ( !SnpModeData.MediaPresent )) {\r
+ //\r
+ // Port is not connected to the network\r
+ //\r
+ pTcp6->ConnectToken.CompletionToken.Status = EFI_NO_MEDIA;\r
+\r
+ //\r
+ // Continue with the next port\r
+ //\r
+ gBS->CheckEvent ( pTcp6->ConnectToken.CompletionToken.Event );\r
+ gBS->SignalEvent ( pTcp6->ConnectToken.CompletionToken.Event );\r
+\r
+ //\r
+ // Connection in progress\r
+ //\r
+ Status = EFI_SUCCESS;\r
+ }\r
+ else {\r
+ //\r
+ // Attempt the connection to the remote system\r
+ //\r
+ Status = pTcp6Protocol->Connect ( pTcp6Protocol,\r
+ &pTcp6->ConnectToken );\r
+ }\r
+ }\r