mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2024-11-17 22:16:39 +00:00
Move ConvertBsdSocketFlags() to WinSockHelper
This commit is contained in:
parent
49acca8cf7
commit
c89a1b2d46
2 changed files with 51 additions and 50 deletions
|
@ -41,50 +41,6 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd.Impl
|
|||
RefCount = 1;
|
||||
}
|
||||
|
||||
private static SocketFlags ConvertBsdSocketFlags(BsdSocketFlags bsdSocketFlags)
|
||||
{
|
||||
SocketFlags socketFlags = SocketFlags.None;
|
||||
|
||||
if (bsdSocketFlags.HasFlag(BsdSocketFlags.Oob))
|
||||
{
|
||||
socketFlags |= SocketFlags.OutOfBand;
|
||||
}
|
||||
|
||||
if (bsdSocketFlags.HasFlag(BsdSocketFlags.Peek))
|
||||
{
|
||||
socketFlags |= SocketFlags.Peek;
|
||||
}
|
||||
|
||||
if (bsdSocketFlags.HasFlag(BsdSocketFlags.DontRoute))
|
||||
{
|
||||
socketFlags |= SocketFlags.DontRoute;
|
||||
}
|
||||
|
||||
if (bsdSocketFlags.HasFlag(BsdSocketFlags.Trunc))
|
||||
{
|
||||
socketFlags |= SocketFlags.Truncated;
|
||||
}
|
||||
|
||||
if (bsdSocketFlags.HasFlag(BsdSocketFlags.CTrunc))
|
||||
{
|
||||
socketFlags |= SocketFlags.ControlDataTruncated;
|
||||
}
|
||||
|
||||
bsdSocketFlags &= ~(BsdSocketFlags.Oob |
|
||||
BsdSocketFlags.Peek |
|
||||
BsdSocketFlags.DontRoute |
|
||||
BsdSocketFlags.DontWait |
|
||||
BsdSocketFlags.Trunc |
|
||||
BsdSocketFlags.CTrunc);
|
||||
|
||||
if (bsdSocketFlags != BsdSocketFlags.None)
|
||||
{
|
||||
Logger.Warning?.Print(LogClass.ServiceBsd, $"Unsupported socket flags: {bsdSocketFlags}");
|
||||
}
|
||||
|
||||
return socketFlags;
|
||||
}
|
||||
|
||||
public LinuxError Accept(out ISocket newSocket)
|
||||
{
|
||||
try
|
||||
|
@ -199,7 +155,7 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd.Impl
|
|||
shouldBlockAfterOperation = true;
|
||||
}
|
||||
|
||||
receiveSize = Socket.Receive(buffer, ConvertBsdSocketFlags(flags));
|
||||
receiveSize = Socket.Receive(buffer, WinSockHelper.ConvertBsdSocketFlags(flags));
|
||||
|
||||
result = LinuxError.SUCCESS;
|
||||
}
|
||||
|
@ -243,7 +199,7 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd.Impl
|
|||
return LinuxError.EOPNOTSUPP;
|
||||
}
|
||||
|
||||
receiveSize = Socket.ReceiveFrom(buffer[..size], ConvertBsdSocketFlags(flags), ref temp);
|
||||
receiveSize = Socket.ReceiveFrom(buffer[..size], WinSockHelper.ConvertBsdSocketFlags(flags), ref temp);
|
||||
|
||||
remoteEndPoint = (IPEndPoint)temp;
|
||||
result = LinuxError.SUCCESS;
|
||||
|
@ -267,7 +223,7 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd.Impl
|
|||
{
|
||||
try
|
||||
{
|
||||
sendSize = Socket.Send(buffer, ConvertBsdSocketFlags(flags));
|
||||
sendSize = Socket.Send(buffer, WinSockHelper.ConvertBsdSocketFlags(flags));
|
||||
|
||||
return LinuxError.SUCCESS;
|
||||
}
|
||||
|
@ -283,7 +239,7 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd.Impl
|
|||
{
|
||||
try
|
||||
{
|
||||
sendSize = Socket.SendTo(buffer[..size], ConvertBsdSocketFlags(flags), remoteEndPoint);
|
||||
sendSize = Socket.SendTo(buffer[..size], WinSockHelper.ConvertBsdSocketFlags(flags), remoteEndPoint);
|
||||
|
||||
return LinuxError.SUCCESS;
|
||||
}
|
||||
|
@ -493,7 +449,7 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd.Impl
|
|||
|
||||
try
|
||||
{
|
||||
int receiveSize = Socket.Receive(ConvertMessagesToBuffer(message), ConvertBsdSocketFlags(flags), out SocketError socketError);
|
||||
int receiveSize = Socket.Receive(ConvertMessagesToBuffer(message), WinSockHelper.ConvertBsdSocketFlags(flags), out SocketError socketError);
|
||||
|
||||
if (receiveSize > 0)
|
||||
{
|
||||
|
@ -531,7 +487,7 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd.Impl
|
|||
|
||||
try
|
||||
{
|
||||
int sendSize = Socket.Send(ConvertMessagesToBuffer(message), ConvertBsdSocketFlags(flags), out SocketError socketError);
|
||||
int sendSize = Socket.Send(ConvertMessagesToBuffer(message), WinSockHelper.ConvertBsdSocketFlags(flags), out SocketError socketError);
|
||||
|
||||
if (sendSize > 0)
|
||||
{
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
using Ryujinx.Common.Logging;
|
||||
using Ryujinx.HLE.HOS.Services.Sockets.Bsd.Types;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
@ -343,5 +344,49 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd.Impl
|
|||
|
||||
return LinuxError.SUCCESS;
|
||||
}
|
||||
|
||||
public static SocketFlags ConvertBsdSocketFlags(BsdSocketFlags bsdSocketFlags)
|
||||
{
|
||||
SocketFlags socketFlags = SocketFlags.None;
|
||||
|
||||
if (bsdSocketFlags.HasFlag(BsdSocketFlags.Oob))
|
||||
{
|
||||
socketFlags |= SocketFlags.OutOfBand;
|
||||
}
|
||||
|
||||
if (bsdSocketFlags.HasFlag(BsdSocketFlags.Peek))
|
||||
{
|
||||
socketFlags |= SocketFlags.Peek;
|
||||
}
|
||||
|
||||
if (bsdSocketFlags.HasFlag(BsdSocketFlags.DontRoute))
|
||||
{
|
||||
socketFlags |= SocketFlags.DontRoute;
|
||||
}
|
||||
|
||||
if (bsdSocketFlags.HasFlag(BsdSocketFlags.Trunc))
|
||||
{
|
||||
socketFlags |= SocketFlags.Truncated;
|
||||
}
|
||||
|
||||
if (bsdSocketFlags.HasFlag(BsdSocketFlags.CTrunc))
|
||||
{
|
||||
socketFlags |= SocketFlags.ControlDataTruncated;
|
||||
}
|
||||
|
||||
bsdSocketFlags &= ~(BsdSocketFlags.Oob |
|
||||
BsdSocketFlags.Peek |
|
||||
BsdSocketFlags.DontRoute |
|
||||
BsdSocketFlags.DontWait |
|
||||
BsdSocketFlags.Trunc |
|
||||
BsdSocketFlags.CTrunc);
|
||||
|
||||
if (bsdSocketFlags != BsdSocketFlags.None)
|
||||
{
|
||||
Logger.Warning?.Print(LogClass.ServiceBsd, $"Unsupported socket flags: {bsdSocketFlags}");
|
||||
}
|
||||
|
||||
return socketFlags;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue