Skip to content

Commit 11ab664

Browse files
authored
Merge pull request #1 from Garados007/develop
Develop
2 parents 6c24fe4 + b95c8bd commit 11ab664

37 files changed

+474
-308
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,5 @@ obj
44
TestResults
55
# vscode files
66
.vscode
7+
# under development
8+
MaxLib.WebServer.Files

MaxLib.WebServer.Test/Services/TestHttpHeaderParser.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ public void Init()
1919
server.AddWebService(new HttpHeaderParser());
2020
test = new TestTask(server)
2121
{
22-
CurrentState = WebServiceType.PreParseRequest,
23-
TerminationState = WebServiceType.PreParseRequest
22+
CurrentStage = ServerStage.ReadRequest,
23+
TerminationStage = ServerStage.ReadRequest,
2424
};
2525
}
2626

MaxLib.WebServer.Test/Services/TestHttpHeaderPostParser.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ public void Init()
1818
server.AddWebService(new HttpHeaderPostParser());
1919
test = new TestTask(server)
2020
{
21-
CurrentState = WebServiceType.PostParseRequest,
22-
TerminationState = WebServiceType.PostParseRequest,
21+
CurrentStage = ServerStage.ParseRequest,
22+
TerminationStage = ServerStage.ParseRequest,
2323
};
2424
}
2525

MaxLib.WebServer.Test/Services/TestHttpHeaderSpecialAction.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ public void Init()
1818
server.AddWebService(new HttpHeaderSpecialAction());
1919
test = new TestTask(server)
2020
{
21-
CurrentState = WebServiceType.PostParseRequest,
22-
TerminationState = WebServiceType.PostParseRequest,
21+
CurrentStage = ServerStage.ParseRequest,
22+
TerminationStage = ServerStage.ParseRequest,
2323
};
2424
}
2525

MaxLib.WebServer.Test/Services/TestHttpResponseCreator.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ public void Init()
1818
server.AddWebService(new HttpResponseCreator());
1919
test = new TestTask(server)
2020
{
21-
CurrentState = WebServiceType.PreCreateResponse,
22-
TerminationState = WebServiceType.PreCreateResponse,
21+
CurrentStage = ServerStage.CreateResponse,
22+
TerminationStage = ServerStage.CreateResponse,
2323
};
2424
}
2525

MaxLib.WebServer.Test/Services/TestHttpSender.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ public void Init()
1919
server.AddWebService(new HttpSender());
2020
test = new TestTask(server)
2121
{
22-
CurrentState = WebServiceType.SendResponse,
23-
TerminationState = WebServiceType.SendResponse,
22+
CurrentStage = ServerStage.SendResponse,
23+
TerminationStage = ServerStage.SendResponse,
2424
};
2525
}
2626

MaxLib.WebServer/Api/ApiService.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace MaxLib.WebServer.Api
66
public abstract class ApiService : WebService
77
{
88
public ApiService(params string[] endpoint)
9-
: base(WebServiceType.PreCreateDocument)
9+
: base(ServerStage.CreateDocument)
1010
{
1111
Endpoint = endpoint ?? throw new ArgumentNullException(nameof(endpoint));
1212
}

MaxLib.WebServer/Chunked/ChunkedResponseCreator.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ public class ChunkedResponseCreator : WebService
88
{
99
public bool OnlyWithLazy { get; private set; }
1010

11-
public ChunkedResponseCreator(bool onlyWithLazy = false) : base(WebServiceType.PreCreateResponse)
11+
public ChunkedResponseCreator(bool onlyWithLazy = false)
12+
: base(ServerStage.CreateResponse)
1213
{
1314
OnlyWithLazy = onlyWithLazy;
1415
if (onlyWithLazy)

MaxLib.WebServer/HttpSession.cs MaxLib.WebServer/HttpConnection.cs

+4-3
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
namespace MaxLib.WebServer
77
{
88
[Serializable]
9-
public class HttpSession
9+
public class HttpConnection
1010
{
11-
public byte[] SessionKey { get; set; }
11+
public byte[] ConnectionKey { get; set; }
1212

1313
public string Ip { get; set; }
1414

@@ -18,7 +18,8 @@ public class HttpSession
1818

1919
public int LastWorkTime { get; set; }
2020

21-
public Dictionary<object, object> SessionInformation { get; private set; } = new Dictionary<object, object>();
21+
public Dictionary<object, object> SessionInformation { get; private set; }
22+
= new Dictionary<object, object>();
2223

2324
public void AlwaysSyncSessionInformation(Dictionary<object, object> information)
2425
=> SessionInformation = information ?? throw new ArgumentNullException(nameof(information));

MaxLib.WebServer/HttpDocument.cs

-2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ public object this[object identifer]
2727
set => Information[identifer] = value;
2828
}
2929

30-
public HttpSession Session { get; set; }
31-
3230
public void Dispose()
3331
{
3432
foreach (var ds in DataSources.ToArray()) ds.Dispose();

MaxLib.WebServer/Lazy/LazyTask.cs

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System;
1+
using System.Data;
2+
using System;
23
using System.Collections.Generic;
34

45
namespace MaxLib.WebServer.Lazy
@@ -8,7 +9,7 @@ public class LazyTask
89
{
910
public Server Server { get; }
1011

11-
public HttpSession Session { get; }
12+
public HttpConnection Connection { get; }
1213

1314
public HttpRequestHeader Header { get; }
1415

@@ -24,7 +25,7 @@ public LazyTask(WebProgressTask task)
2425
{
2526
_ = task ?? throw new ArgumentNullException(nameof(task));
2627
Server = task.Server;
27-
Session = task.Session;
28+
Connection = task.Connection;
2829
Header = task.Document.RequestHeader;
2930
Information = task.Document.Information;
3031
}

MaxLib.WebServer/MaxLib.WebServer.csproj.include

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<Project>
33

44
<PropertyGroup>
5-
<Version>1.0.1</Version>
5+
<Version>2.0.0</Version>
66
<AssemblyVersion>$(Version).0</AssemblyVersion>
77
<FileVersion>$(Version).0</FileVersion>
88
</PropertyGroup>

MaxLib.WebServer/SSL/DualSecureWebServer.cs

+8-8
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,16 @@ public DualSecureWebServer(DualSecureWebServerSettings settings) : base(settings
1616
WebServerLog.Add(ServerLogType.Information, GetType(), "StartUp", "The use of dual mode is critical");
1717
}
1818

19-
protected override async Task ClientStartListen(HttpSession session)
19+
protected override async Task ClientStartListen(HttpConnection connection)
2020
{
21-
if (session.NetworkStream == null && DualSettings.Certificate != null)
21+
if (connection.NetworkStream == null && DualSettings.Certificate != null)
2222
{
23-
var peaker = new StreamPeaker(session.NetworkClient.GetStream());
23+
var peaker = new StreamPeaker(connection.NetworkClient.GetStream());
2424
var mark = peaker.FirstByte;
2525
if (mark != 0 && (mark < 32 || mark >= 127))
2626
{
2727
var ssl = new SslStream(peaker, false);
28-
session.NetworkStream = ssl;
28+
connection.NetworkStream = ssl;
2929
ssl.AuthenticateAsServer(
3030
serverCertificate: DualSettings.Certificate,
3131
clientCertificateRequired: false,
@@ -35,14 +35,14 @@ protected override async Task ClientStartListen(HttpSession session)
3535
if (!ssl.IsAuthenticated)
3636
{
3737
ssl.Dispose();
38-
session.NetworkClient.Close();
39-
AllSessions.Remove(session);
38+
connection.NetworkClient.Close();
39+
AllConnections.Remove(connection);
4040
return;
4141
}
4242
}
43-
else session.NetworkStream = peaker;
43+
else connection.NetworkStream = peaker;
4444
}
45-
await base.ClientStartListen(session);
45+
await base.ClientStartListen(connection);
4646
}
4747

4848
class StreamPeaker : Stream

MaxLib.WebServer/SSL/SecureWebServer.cs

+7-7
Original file line numberDiff line numberDiff line change
@@ -76,18 +76,18 @@ protected virtual void SecureClientConnected(TcpClient client)
7676
return;
7777
}
7878
//prepare session
79-
var session = CreateRandomSession();
80-
session.NetworkClient = client;
81-
session.Ip = client.Client.RemoteEndPoint is IPEndPoint iPEndPoint
79+
var connection = CreateRandomConnection();
80+
connection.NetworkClient = client;
81+
connection.Ip = client.Client.RemoteEndPoint is IPEndPoint iPEndPoint
8282
? iPEndPoint.Address.ToString()
8383
: client.Client.RemoteEndPoint.ToString();
84-
AllSessions.Add(session);
84+
AllConnections.Add(connection);
8585
//listen to connection
8686
_ = Task.Run(async () =>
8787
{
8888
//authentificate as server and establish ssl connection
8989
var stream = new SslStream(client.GetStream(), false);
90-
session.NetworkStream = stream;
90+
connection.NetworkStream = stream;
9191
stream.AuthenticateAsServer(
9292
serverCertificate: SecureSettings.Certificate,
9393
clientCertificateRequired: false,
@@ -98,11 +98,11 @@ protected virtual void SecureClientConnected(TcpClient client)
9898
{
9999
stream.Dispose();
100100
client.Close();
101-
AllSessions.Remove(session);
101+
AllConnections.Remove(connection);
102102
return;
103103
}
104104

105-
await SafeClientStartListen(session);
105+
await SafeClientStartListen(connection);
106106
});
107107
}
108108
}

0 commit comments

Comments
 (0)