mirror of https://github.com/acidanthera/audk.git
Return the proper status after one of the ports is configured for UDP or IP communications.
Reviewed by: Ankit Singh of Dell Submitted by: lpleahy git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13604 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
36384ceb64
commit
bb3aa953b3
|
@ -749,6 +749,7 @@ EslIp4RxComplete (
|
||||||
//
|
//
|
||||||
// Fill in the port list if necessary
|
// Fill in the port list if necessary
|
||||||
//
|
//
|
||||||
|
pSocket->errno = ENETDOWN;
|
||||||
if ( NULL == pSocket->pPortList ) {
|
if ( NULL == pSocket->pPortList ) {
|
||||||
LocalAddress.sin_len = sizeof ( LocalAddress );
|
LocalAddress.sin_len = sizeof ( LocalAddress );
|
||||||
LocalAddress.sin_family = AF_INET;
|
LocalAddress.sin_family = AF_INET;
|
||||||
|
@ -804,34 +805,36 @@ EslIp4RxComplete (
|
||||||
NULL );
|
NULL );
|
||||||
}
|
}
|
||||||
if ( EFI_ERROR ( Status )) {
|
if ( EFI_ERROR ( Status )) {
|
||||||
DEBUG (( DEBUG_LISTEN,
|
if ( !pSocket->bConfigured ) {
|
||||||
"ERROR - Failed to configure the Ip4 port, Status: %r\r\n",
|
DEBUG (( DEBUG_LISTEN,
|
||||||
Status ));
|
"ERROR - Failed to configure the Ip4 port, Status: %r\r\n",
|
||||||
switch ( Status ) {
|
Status ));
|
||||||
case EFI_ACCESS_DENIED:
|
switch ( Status ) {
|
||||||
pSocket->errno = EACCES;
|
case EFI_ACCESS_DENIED:
|
||||||
break;
|
pSocket->errno = EACCES;
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
case EFI_DEVICE_ERROR:
|
case EFI_DEVICE_ERROR:
|
||||||
pSocket->errno = EIO;
|
pSocket->errno = EIO;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EFI_INVALID_PARAMETER:
|
case EFI_INVALID_PARAMETER:
|
||||||
pSocket->errno = EADDRNOTAVAIL;
|
pSocket->errno = EADDRNOTAVAIL;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EFI_NO_MAPPING:
|
case EFI_NO_MAPPING:
|
||||||
pSocket->errno = EAFNOSUPPORT;
|
pSocket->errno = EAFNOSUPPORT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EFI_OUT_OF_RESOURCES:
|
case EFI_OUT_OF_RESOURCES:
|
||||||
pSocket->errno = ENOBUFS;
|
pSocket->errno = ENOBUFS;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EFI_UNSUPPORTED:
|
case EFI_UNSUPPORTED:
|
||||||
pSocket->errno = EOPNOTSUPP;
|
pSocket->errno = EOPNOTSUPP;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -876,6 +879,7 @@ EslIp4RxComplete (
|
||||||
pIp4->ModeData.RouteTable[Index].GatewayAddress.Addr[3]));
|
pIp4->ModeData.RouteTable[Index].GatewayAddress.Addr[3]));
|
||||||
}
|
}
|
||||||
pPort->bConfigured = TRUE;
|
pPort->bConfigured = TRUE;
|
||||||
|
pSocket->bConfigured = TRUE;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Start the first read on the port
|
// Start the first read on the port
|
||||||
|
@ -886,6 +890,7 @@ EslIp4RxComplete (
|
||||||
// The socket is connected
|
// The socket is connected
|
||||||
//
|
//
|
||||||
pSocket->State = SOCKET_STATE_CONNECTED;
|
pSocket->State = SOCKET_STATE_CONNECTED;
|
||||||
|
pSocket->errno = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -893,21 +898,12 @@ EslIp4RxComplete (
|
||||||
//
|
//
|
||||||
pPort = pNextPort;
|
pPort = pNextPort;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Determine the configuration status
|
|
||||||
//
|
|
||||||
if ( NULL != pSocket->pPortList ) {
|
|
||||||
pSocket->bConfigured = TRUE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Determine the socket configuration status
|
// Determine the socket configuration status
|
||||||
//
|
//
|
||||||
if ( !EFI_ERROR ( Status )) {
|
Status = pSocket->bConfigured ? EFI_SUCCESS : EFI_NOT_STARTED;
|
||||||
Status = pSocket->bConfigured ? EFI_SUCCESS : EFI_NOT_STARTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Return the port connected state.
|
// Return the port connected state.
|
||||||
|
|
|
@ -591,6 +591,7 @@ EslUdp4RxComplete (
|
||||||
//
|
//
|
||||||
// Fill in the port list if necessary
|
// Fill in the port list if necessary
|
||||||
//
|
//
|
||||||
|
pSocket->errno = ENETDOWN;
|
||||||
if ( NULL == pSocket->pPortList ) {
|
if ( NULL == pSocket->pPortList ) {
|
||||||
LocalAddress.sin_len = sizeof ( LocalAddress );
|
LocalAddress.sin_len = sizeof ( LocalAddress );
|
||||||
LocalAddress.sin_family = AF_INET;
|
LocalAddress.sin_family = AF_INET;
|
||||||
|
@ -640,34 +641,36 @@ EslUdp4RxComplete (
|
||||||
NULL );
|
NULL );
|
||||||
}
|
}
|
||||||
if ( EFI_ERROR ( Status )) {
|
if ( EFI_ERROR ( Status )) {
|
||||||
DEBUG (( DEBUG_LISTEN,
|
if ( !pSocket->bConfigured ) {
|
||||||
"ERROR - Failed to configure the Udp4 port, Status: %r\r\n",
|
DEBUG (( DEBUG_LISTEN,
|
||||||
Status ));
|
"ERROR - Failed to configure the Udp4 port, Status: %r\r\n",
|
||||||
switch ( Status ) {
|
Status ));
|
||||||
case EFI_ACCESS_DENIED:
|
switch ( Status ) {
|
||||||
pSocket->errno = EACCES;
|
case EFI_ACCESS_DENIED:
|
||||||
break;
|
pSocket->errno = EACCES;
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
case EFI_DEVICE_ERROR:
|
case EFI_DEVICE_ERROR:
|
||||||
pSocket->errno = EIO;
|
pSocket->errno = EIO;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EFI_INVALID_PARAMETER:
|
case EFI_INVALID_PARAMETER:
|
||||||
pSocket->errno = EADDRNOTAVAIL;
|
pSocket->errno = EADDRNOTAVAIL;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EFI_NO_MAPPING:
|
case EFI_NO_MAPPING:
|
||||||
pSocket->errno = EAFNOSUPPORT;
|
pSocket->errno = EAFNOSUPPORT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EFI_OUT_OF_RESOURCES:
|
case EFI_OUT_OF_RESOURCES:
|
||||||
pSocket->errno = ENOBUFS;
|
pSocket->errno = ENOBUFS;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EFI_UNSUPPORTED:
|
case EFI_UNSUPPORTED:
|
||||||
pSocket->errno = EOPNOTSUPP;
|
pSocket->errno = EOPNOTSUPP;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -685,6 +688,7 @@ EslUdp4RxComplete (
|
||||||
pConfigData->RemoteAddress.Addr[3],
|
pConfigData->RemoteAddress.Addr[3],
|
||||||
pConfigData->RemotePort ));
|
pConfigData->RemotePort ));
|
||||||
pPort->bConfigured = TRUE;
|
pPort->bConfigured = TRUE;
|
||||||
|
pSocket->bConfigured = TRUE;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Start the first read on the port
|
// Start the first read on the port
|
||||||
|
@ -695,6 +699,7 @@ EslUdp4RxComplete (
|
||||||
// The socket is connected
|
// The socket is connected
|
||||||
//
|
//
|
||||||
pSocket->State = SOCKET_STATE_CONNECTED;
|
pSocket->State = SOCKET_STATE_CONNECTED;
|
||||||
|
pSocket->errno = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -702,21 +707,12 @@ EslUdp4RxComplete (
|
||||||
//
|
//
|
||||||
pPort = pNextPort;
|
pPort = pNextPort;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Determine the configuration status
|
|
||||||
//
|
|
||||||
if ( NULL != pSocket->pPortList ) {
|
|
||||||
pSocket->bConfigured = TRUE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Determine the socket configuration status
|
// Determine the socket configuration status
|
||||||
//
|
//
|
||||||
if ( !EFI_ERROR ( Status )) {
|
Status = pSocket->bConfigured ? EFI_SUCCESS : EFI_NOT_STARTED;
|
||||||
Status = pSocket->bConfigured ? EFI_SUCCESS : EFI_NOT_STARTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Return the port connected state.
|
// Return the port connected state.
|
||||||
|
|
|
@ -585,6 +585,7 @@ EslUdp6RxComplete (
|
||||||
//
|
//
|
||||||
// Fill in the port list if necessary
|
// Fill in the port list if necessary
|
||||||
//
|
//
|
||||||
|
pSocket->errno = ENETDOWN;
|
||||||
if ( NULL == pSocket->pPortList ) {
|
if ( NULL == pSocket->pPortList ) {
|
||||||
ZeroMem ( &LocalAddress, sizeof ( LocalAddress ));
|
ZeroMem ( &LocalAddress, sizeof ( LocalAddress ));
|
||||||
LocalAddress.sin6_len = sizeof ( LocalAddress );
|
LocalAddress.sin6_len = sizeof ( LocalAddress );
|
||||||
|
@ -657,34 +658,36 @@ EslUdp6RxComplete (
|
||||||
NULL );
|
NULL );
|
||||||
}
|
}
|
||||||
if ( EFI_ERROR ( Status )) {
|
if ( EFI_ERROR ( Status )) {
|
||||||
DEBUG (( DEBUG_LISTEN,
|
if ( !pSocket->bConfigured ) {
|
||||||
"ERROR - Failed to configure the Udp6 port, Status: %r\r\n",
|
DEBUG (( DEBUG_LISTEN,
|
||||||
Status ));
|
"ERROR - Failed to configure the Udp6 port, Status: %r\r\n",
|
||||||
switch ( Status ) {
|
Status ));
|
||||||
case EFI_ACCESS_DENIED:
|
switch ( Status ) {
|
||||||
pSocket->errno = EACCES;
|
case EFI_ACCESS_DENIED:
|
||||||
break;
|
pSocket->errno = EACCES;
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
case EFI_DEVICE_ERROR:
|
case EFI_DEVICE_ERROR:
|
||||||
pSocket->errno = EIO;
|
pSocket->errno = EIO;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EFI_INVALID_PARAMETER:
|
case EFI_INVALID_PARAMETER:
|
||||||
pSocket->errno = EADDRNOTAVAIL;
|
pSocket->errno = EADDRNOTAVAIL;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EFI_NO_MAPPING:
|
case EFI_NO_MAPPING:
|
||||||
pSocket->errno = EAFNOSUPPORT;
|
pSocket->errno = EAFNOSUPPORT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EFI_OUT_OF_RESOURCES:
|
case EFI_OUT_OF_RESOURCES:
|
||||||
pSocket->errno = ENOBUFS;
|
pSocket->errno = ENOBUFS;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EFI_UNSUPPORTED:
|
case EFI_UNSUPPORTED:
|
||||||
pSocket->errno = EOPNOTSUPP;
|
pSocket->errno = EOPNOTSUPP;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -726,6 +729,7 @@ EslUdp6RxComplete (
|
||||||
pConfigData->RemoteAddress.Addr[15],
|
pConfigData->RemoteAddress.Addr[15],
|
||||||
pConfigData->RemotePort ));
|
pConfigData->RemotePort ));
|
||||||
pPort->bConfigured = TRUE;
|
pPort->bConfigured = TRUE;
|
||||||
|
pSocket->bConfigured = TRUE;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Start the first read on the port
|
// Start the first read on the port
|
||||||
|
@ -736,6 +740,7 @@ EslUdp6RxComplete (
|
||||||
// The socket is connected
|
// The socket is connected
|
||||||
//
|
//
|
||||||
pSocket->State = SOCKET_STATE_CONNECTED;
|
pSocket->State = SOCKET_STATE_CONNECTED;
|
||||||
|
pSocket->errno = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -743,21 +748,12 @@ EslUdp6RxComplete (
|
||||||
//
|
//
|
||||||
pPort = pNextPort;
|
pPort = pNextPort;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Determine the configuration status
|
|
||||||
//
|
|
||||||
if ( NULL != pSocket->pPortList ) {
|
|
||||||
pSocket->bConfigured = TRUE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Determine the socket configuration status
|
// Determine the socket configuration status
|
||||||
//
|
//
|
||||||
if ( !EFI_ERROR ( Status )) {
|
Status = pSocket->bConfigured ? EFI_SUCCESS : EFI_NOT_STARTED;
|
||||||
Status = pSocket->bConfigured ? EFI_SUCCESS : EFI_NOT_STARTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Return the port connected state.
|
// Return the port connected state.
|
||||||
|
|
Loading…
Reference in New Issue