1. Fixed one bug in Undi driver.

2. Add default branch to meet CYGWINGCC build in Tcp4Dispatcher.c.
3. Sync the latest network stack library.
4. Fixed one bug in Mtftp4Support.c, for AsciiStrCpy() return the pointer to head of string, not the tail of string.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3741 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
vanjeff 2007-08-30 06:58:37 +00:00
parent dc59293a36
commit b61439a709
7 changed files with 83 additions and 64 deletions

View File

@ -29,6 +29,7 @@ Abstract:
#include <Library/DebugLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Library/BaseMemoryLib.h>
#define NET_PROTO_HDR(Buf, Type) ((Type *) ((Buf)->BlockOp[0].Head))
@ -416,13 +417,13 @@ IpIoCreateSndEntry (
//
// Set the fields of OverrideData
//
*OverrideData = * (EFI_IP4_OVERRIDE_DATA *) Override;
NetCopyMem (OverrideData, Override, sizeof (*OverrideData));
}
//
// Set the fields of TxData
//
EFI_IP4 (TxData->DestinationAddress) = Dest;
NetCopyMem (&TxData->DestinationAddress, &Dest, sizeof (EFI_IPv4_ADDRESS));
TxData->OverrideData = OverrideData;
TxData->OptionsLength = 0;
TxData->OptionsBuffer = NULL;
@ -761,7 +762,6 @@ IpIoOpen (
{
EFI_STATUS Status;
EFI_IP4_PROTOCOL *Ip;
EFI_IPv4_ADDRESS ZeroIp;
if (IpIo->IsConfigured) {
return EFI_ACCESS_DENIED;
@ -782,8 +782,7 @@ IpIoOpen (
// (0.0.0.0, 0.0.0.0, 0.0.0.0). Delete this statement if Ip modified
// its code
//
EFI_IP4 (ZeroIp) = 0;
Status = Ip->Routes (Ip, TRUE, &ZeroIp, &ZeroIp, &ZeroIp);
Status = Ip->Routes (Ip, TRUE, &mZeroIp4Addr, &mZeroIp4Addr, &mZeroIp4Addr);
if (EFI_ERROR (Status) && (EFI_NOT_FOUND != Status)) {
return Status;
@ -1147,8 +1146,8 @@ IpIoConfigIp (
Ip4ConfigData->SubnetMask = Ip4ModeData.ConfigData.SubnetMask;
}
IpInfo->Addr = EFI_IP4 (Ip4ConfigData->StationAddress);
IpInfo->SubnetMask = EFI_IP4 (Ip4ConfigData->SubnetMask);
NetCopyMem (&IpInfo->Addr, &Ip4ConfigData->StationAddress, sizeof (IP4_ADDR));
NetCopyMem (&IpInfo->SubnetMask, &Ip4ConfigData->SubnetMask, sizeof (IP4_ADDR));
Status = Ip->Receive (Ip, &IpInfo->DummyRcvToken);
if (EFI_ERROR (Status)) {

View File

@ -46,6 +46,7 @@
DebugLib
UefiBootServicesTableLib
MemoryAllocationLib
BaseMemoryLib
[Protocols]
gEfiIp4ProtocolGuid # PROTOCOL ALWAYS_CONSUMED

View File

@ -30,6 +30,7 @@ Abstract:
#include <Library/DebugLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/MemoryAllocationLib.h>
#include <library/BaseMemoryLib.h>
STATIC
VOID
@ -77,6 +78,7 @@ UdpIoWrapTx (
EFI_UDP4_TRANSMIT_DATA *UdpTxData;
EFI_STATUS Status;
UINT32 Count;
IP4_ADDR Ip;
Token = NetAllocatePool (sizeof (UDP_TX_TOKEN) +
sizeof (EFI_UDP4_FRAGMENT_DATA) * (Packet->BlockOpNum - 1));
@ -116,15 +118,21 @@ UdpIoWrapTx (
UdpTxData->GatewayAddress = NULL;
if (EndPoint != NULL) {
EFI_IP4 (Token->UdpSession.SourceAddress) = HTONL (EndPoint->LocalAddr);
EFI_IP4 (Token->UdpSession.DestinationAddress) = HTONL (EndPoint->RemoteAddr);
Ip = HTONL (EndPoint->LocalAddr);
NetCopyMem (&Token->UdpSession.SourceAddress, &Ip, sizeof (EFI_IPv4_ADDRESS));
Ip = HTONL (EndPoint->RemoteAddr);
NetCopyMem (&Token->UdpSession.DestinationAddress, &Ip, sizeof (EFI_IPv4_ADDRESS));
Token->UdpSession.SourcePort = EndPoint->LocalPort;
Token->UdpSession.DestinationPort = EndPoint->RemotePort;
UdpTxData->UdpSessionData = &Token->UdpSession;
}
if (Gateway != 0) {
EFI_IP4 (Token->Gateway) = HTONL (Gateway);
Ip = HTONL (Gateway);
NetCopyMem (&Token->Gateway, &Ip, sizeof (EFI_IPv4_ADDRESS));
UdpTxData->GatewayAddress = &Token->Gateway;
}
@ -670,11 +678,14 @@ UdpIoOnDgramRcvd (
}
UdpSession = &UdpRxData->UdpSession;
Points.LocalAddr = EFI_NTOHL (UdpSession->DestinationAddress);
Points.LocalPort = UdpSession->DestinationPort;
Points.RemoteAddr = EFI_NTOHL (UdpSession->SourceAddress);
Points.RemotePort = UdpSession->SourcePort;
NetCopyMem (&Points.LocalAddr, &UdpSession->DestinationAddress, sizeof (IP4_ADDR));
NetCopyMem (&Points.RemoteAddr, &UdpSession->SourceAddress, sizeof (IP4_ADDR));
Points.LocalAddr = NTOHL (Points.LocalAddr);
Points.RemoteAddr = NTOHL (Points.RemoteAddr);
Token->CallBack (Netbuf, &Points, EFI_SUCCESS, Token->Context);
ON_EXIT:

View File

@ -46,6 +46,7 @@
DebugLib
UefiBootServicesTableLib
MemoryAllocationLib
BaseMemoryLib
[Protocols]
gEfiUdp4ServiceBindingProtocolGuid # PROTOCOL ALWAYS_CONSUMED

View File

@ -305,11 +305,16 @@ Mtftp4SendRequest (
Packet->OpCode = HTONS (Instance->Operation);
Cur = Packet->Rrq.Filename;
Cur = (UINT8 *) AsciiStrCpy ((CHAR8 *) Cur, (CHAR8 *) Token->Filename);
Cur += AsciiStrLen ((CHAR8 *) Token->Filename);
Cur = (UINT8 *) AsciiStrCpy ((CHAR8 *) Cur, (CHAR8 *) Mode);
Cur += AsciiStrLen ((CHAR8 *) Mode);
for (Index = 0; Index < Token->OptionCount; ++Index) {
Cur = (UINT8 *) AsciiStrCpy ((CHAR8 *) Cur, (CHAR8 *) Options[Index].OptionStr);
Cur += AsciiStrLen ((CHAR8 *) Options[Index].OptionStr);
Cur = (UINT8 *) AsciiStrCpy ((CHAR8 *) Cur, (CHAR8 *) Options[Index].ValueStr);
Cur += AsciiStrLen ((CHAR8 *) (CHAR8 *) Options[Index].ValueStr);
}
return Mtftp4SendPacket (Instance, Nbuf);

View File

@ -707,6 +707,8 @@ Tcp4Dispatcher (
return Tcp4Route (Tcb, (TCP4_ROUTE_INFO *) Data);
default:
return EFI_UNSUPPORTED;
}
return EFI_SUCCESS;