//\r
// Fill in the port list if necessary\r
//\r
+ pSocket->errno = ENETDOWN;\r
if ( NULL == pSocket->pPortList ) {\r
LocalAddress.sin_len = sizeof ( LocalAddress );\r
LocalAddress.sin_family = AF_INET;\r
NULL );\r
}\r
if ( EFI_ERROR ( Status )) {\r
- DEBUG (( DEBUG_LISTEN,\r
- "ERROR - Failed to configure the Ip4 port, Status: %r\r\n",\r
- Status ));\r
- switch ( Status ) {\r
- case EFI_ACCESS_DENIED:\r
- pSocket->errno = EACCES;\r
- break;\r
-\r
- default:\r
- case EFI_DEVICE_ERROR:\r
- pSocket->errno = EIO;\r
- break;\r
-\r
- case EFI_INVALID_PARAMETER:\r
- pSocket->errno = EADDRNOTAVAIL;\r
- break;\r
-\r
- case EFI_NO_MAPPING:\r
- pSocket->errno = EAFNOSUPPORT;\r
- break;\r
-\r
- case EFI_OUT_OF_RESOURCES:\r
- pSocket->errno = ENOBUFS;\r
- break;\r
-\r
- case EFI_UNSUPPORTED:\r
- pSocket->errno = EOPNOTSUPP;\r
- break;\r
+ if ( !pSocket->bConfigured ) {\r
+ DEBUG (( DEBUG_LISTEN,\r
+ "ERROR - Failed to configure the Ip4 port, Status: %r\r\n",\r
+ Status ));\r
+ switch ( Status ) {\r
+ case EFI_ACCESS_DENIED:\r
+ pSocket->errno = EACCES;\r
+ break;\r
+\r
+ default:\r
+ case EFI_DEVICE_ERROR:\r
+ pSocket->errno = EIO;\r
+ break;\r
+\r
+ case EFI_INVALID_PARAMETER:\r
+ pSocket->errno = EADDRNOTAVAIL;\r
+ break;\r
+\r
+ case EFI_NO_MAPPING:\r
+ pSocket->errno = EAFNOSUPPORT;\r
+ break;\r
+\r
+ case EFI_OUT_OF_RESOURCES:\r
+ pSocket->errno = ENOBUFS;\r
+ break;\r
+\r
+ case EFI_UNSUPPORTED:\r
+ pSocket->errno = EOPNOTSUPP;\r
+ break;\r
+ }\r
}\r
}\r
else {\r
pIp4->ModeData.RouteTable[Index].GatewayAddress.Addr[3]));\r
}\r
pPort->bConfigured = TRUE;\r
+ pSocket->bConfigured = TRUE;\r
\r
//\r
// Start the first read on the port\r
// The socket is connected\r
//\r
pSocket->State = SOCKET_STATE_CONNECTED;\r
+ pSocket->errno = 0;\r
}\r
\r
//\r
//\r
pPort = pNextPort;\r
}\r
-\r
- //\r
- // Determine the configuration status\r
- //\r
- if ( NULL != pSocket->pPortList ) {\r
- pSocket->bConfigured = TRUE;\r
- }\r
}\r
\r
//\r
// Determine the socket configuration status\r
//\r
- if ( !EFI_ERROR ( Status )) {\r
- Status = pSocket->bConfigured ? EFI_SUCCESS : EFI_NOT_STARTED;\r
- }\r
+ Status = pSocket->bConfigured ? EFI_SUCCESS : EFI_NOT_STARTED;\r
\r
//\r
// Return the port connected state.\r