mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-02-11 15:12:24 +00:00
update main projects
This commit is contained in:
@@ -3,6 +3,7 @@ using System.IO;
|
||||
using System.Net.Security;
|
||||
using System.Net.Sockets;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Emby.Common.Implementations.Net;
|
||||
using Emby.Server.Implementations.HttpServer;
|
||||
@@ -33,10 +34,10 @@ namespace Emby.Server.Core
|
||||
/// <returns>IHttpServer.</returns>
|
||||
public static IHttpServer CreateServer(IServerApplicationHost applicationHost,
|
||||
ILogManager logManager,
|
||||
IServerConfigurationManager config,
|
||||
IServerConfigurationManager config,
|
||||
INetworkManager networkmanager,
|
||||
IMemoryStreamFactory streamProvider,
|
||||
string serverName,
|
||||
string serverName,
|
||||
string defaultRedirectpath,
|
||||
ITextEncoding textEncoding,
|
||||
ISocketFactory socketFactory,
|
||||
@@ -51,16 +52,16 @@ namespace Emby.Server.Core
|
||||
var logger = logManager.GetLogger("HttpServer");
|
||||
|
||||
return new HttpListenerHost(applicationHost,
|
||||
logger,
|
||||
config,
|
||||
serverName,
|
||||
defaultRedirectpath,
|
||||
networkmanager,
|
||||
streamProvider,
|
||||
textEncoding,
|
||||
socketFactory,
|
||||
cryptoProvider,
|
||||
json,
|
||||
logger,
|
||||
config,
|
||||
serverName,
|
||||
defaultRedirectpath,
|
||||
networkmanager,
|
||||
streamProvider,
|
||||
textEncoding,
|
||||
socketFactory,
|
||||
cryptoProvider,
|
||||
json,
|
||||
xml,
|
||||
environment,
|
||||
certificate,
|
||||
@@ -82,7 +83,7 @@ namespace Emby.Server.Core
|
||||
{
|
||||
var netSocket = (NetAcceptSocket)acceptSocket;
|
||||
|
||||
return new NetworkStream(netSocket.Socket, ownsSocket);
|
||||
return new WritableNetworkStream(netSocket.Socket, ownsSocket);
|
||||
}
|
||||
|
||||
public Task AuthenticateSslStreamAsServer(Stream stream, ICertificate certificate)
|
||||
@@ -108,4 +109,80 @@ namespace Emby.Server.Core
|
||||
|
||||
public X509Certificate X509Certificate { get; private set; }
|
||||
}
|
||||
|
||||
public class WritableNetworkStream : Stream
|
||||
{
|
||||
private readonly Socket _socket;
|
||||
|
||||
public WritableNetworkStream(Socket socket, bool ownsSocket)
|
||||
{
|
||||
_socket = socket;
|
||||
}
|
||||
|
||||
public override void Flush()
|
||||
{
|
||||
}
|
||||
|
||||
public override bool CanRead
|
||||
{
|
||||
get { return true; }
|
||||
}
|
||||
public override bool CanSeek
|
||||
{
|
||||
get { return false; }
|
||||
}
|
||||
public override bool CanWrite
|
||||
{
|
||||
get { return true; }
|
||||
}
|
||||
public override long Length
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
public override long Position
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
set { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public override void Write(byte[] buffer, int offset, int count)
|
||||
{
|
||||
_socket.Send(buffer, offset, count, SocketFlags.None);
|
||||
}
|
||||
|
||||
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
|
||||
{
|
||||
return _socket.BeginSend(buffer, offset, count, SocketFlags.None, callback, state);
|
||||
}
|
||||
|
||||
public override void EndWrite(IAsyncResult asyncResult)
|
||||
{
|
||||
_socket.EndSend(asyncResult);
|
||||
}
|
||||
|
||||
public override void SetLength(long value)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public override long Seek(long offset, SeekOrigin origin)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public override int Read(byte[] buffer, int offset, int count)
|
||||
{
|
||||
return _socket.Receive(buffer, offset, count, SocketFlags.None);
|
||||
}
|
||||
|
||||
public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
|
||||
{
|
||||
return _socket.BeginReceive(buffer, offset, count, SocketFlags.None, callback, state);
|
||||
}
|
||||
|
||||
public override int EndRead(IAsyncResult asyncResult)
|
||||
{
|
||||
return _socket.EndReceive(asyncResult);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user