Skip to content

Commit fa661ab

Browse files
Ticket #107 : Start to support VPN bridge
1 parent 1879c24 commit fa661ab

34 files changed

Lines changed: 945 additions & 402 deletions

FaasNet.EventMesh.sln

Lines changed: 38 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FaasNet.RaftConsensus.Core"
2929
EndProject
3030
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FaasNet.RaftConsensus.Client", "src\RaftConsensus\FaasNet.RaftConsensus.Client\FaasNet.RaftConsensus.Client.csproj", "{9FD70B89-220D-47E7-958D-E10F493F9436}"
3131
EndProject
32-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FaasNet.EventMesh.Runtime.Console", "src\EventMesh\FaasNet.EventMesh.Runtime.Console\FaasNet.EventMesh.Runtime.Console.csproj", "{C212B250-18DD-4F63-B0B3-003FA45A8A9A}"
33-
EndProject
3432
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FaasNet.RaftConsensus.RocksDB", "src\RaftConsensus\FaasNet.RaftConsensus.RocksDB\FaasNet.RaftConsensus.RocksDB.csproj", "{7C4A643C-FEE8-484E-BE0B-8842FB986F20}"
3533
EndProject
3634
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FaasNet.EventMesh.Seed", "src\EventMesh\FaasNet.EventMesh.Seed\FaasNet.EventMesh.Seed.csproj", "{667C381E-E073-4D5C-A6F4-ADFC8EA9D4A0}"
3735
EndProject
38-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FaasNet.EventMesh.Seed.Console", "src\EventMesh\FaasNet.EventMesh.Seed.Console\FaasNet.EventMesh.Seed.Console.csproj", "{19A0FABD-C40F-4E83-ADB6-DF285BAE4C99}"
39-
EndProject
4036
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FaasNet.EventMesh.Seed.AMQP", "src\EventMesh\FaasNet.EventMesh.Seed.AMQP\FaasNet.EventMesh.Seed.AMQP.csproj", "{2DDF1EB1-B20F-419F-9A09-34A5550D4467}"
4137
EndProject
4238
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "01. Seeds", "01. Seeds", "{B7CDEBEF-C508-4EFA-BEC9-9D9D6E5D80C5}"
@@ -51,6 +47,18 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FaasNet.EventMesh.Protocols
5147
EndProject
5248
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FaasNet.EventMesh.Protocols", "src\EventMesh\FaasNet.EventMesh.Protocols\FaasNet.EventMesh.Protocols.csproj", "{E90801D3-9D40-4B3F-AA3F-4015C03262A5}"
5349
EndProject
50+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FaasNet.EventMesh.Seed.RocksDB", "src\EventMesh\FaasNet.EventMesh.Seed.RocksDB\FaasNet.EventMesh.Seed.RocksDB.csproj", "{BC11A4F8-00BE-431C-9F15-75D4F8106DFF}"
51+
EndProject
52+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FaasNet.EventMesh.Seed.VpnBridge", "src\EventMesh\FaasNet.EventMesh.Seed.VpnBridge\FaasNet.EventMesh.Seed.VpnBridge.csproj", "{FC1A6988-7E69-492A-B7EF-73E481D80FEB}"
53+
EndProject
54+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FaasNet.EventMesh.Common", "src\EventMesh\FaasNet.EventMesh.Common\FaasNet.EventMesh.Common.csproj", "{6884598F-5743-4A2A-B3B9-679FEDA81D6B}"
55+
EndProject
56+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "01. Console", "01. Console", "{E26134A4-0C4E-4362-A5A0-712254365135}"
57+
EndProject
58+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FaasNet.EventMesh.FirstConsole", "src\EventMesh\FaasNet.EventMesh.FirstConsole\FaasNet.EventMesh.FirstConsole.csproj", "{394401D8-D005-49E1-A735-47284C034D44}"
59+
EndProject
60+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FaasNet.EventMesh.SecondConsole", "src\EventMesh\FaasNet.EventMesh.SecondConsole\FaasNet.EventMesh.SecondConsole.csproj", "{FBD50A91-127A-44F7-BF12-4666448086B9}"
61+
EndProject
5462
Global
5563
GlobalSection(SolutionConfigurationPlatforms) = preSolution
5664
Debug|Any CPU = Debug|Any CPU
@@ -89,10 +97,6 @@ Global
8997
{9FD70B89-220D-47E7-958D-E10F493F9436}.Debug|Any CPU.Build.0 = Debug|Any CPU
9098
{9FD70B89-220D-47E7-958D-E10F493F9436}.Release|Any CPU.ActiveCfg = Release|Any CPU
9199
{9FD70B89-220D-47E7-958D-E10F493F9436}.Release|Any CPU.Build.0 = Release|Any CPU
92-
{C212B250-18DD-4F63-B0B3-003FA45A8A9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
93-
{C212B250-18DD-4F63-B0B3-003FA45A8A9A}.Debug|Any CPU.Build.0 = Debug|Any CPU
94-
{C212B250-18DD-4F63-B0B3-003FA45A8A9A}.Release|Any CPU.ActiveCfg = Release|Any CPU
95-
{C212B250-18DD-4F63-B0B3-003FA45A8A9A}.Release|Any CPU.Build.0 = Release|Any CPU
96100
{7C4A643C-FEE8-484E-BE0B-8842FB986F20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
97101
{7C4A643C-FEE8-484E-BE0B-8842FB986F20}.Debug|Any CPU.Build.0 = Debug|Any CPU
98102
{7C4A643C-FEE8-484E-BE0B-8842FB986F20}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -101,10 +105,6 @@ Global
101105
{667C381E-E073-4D5C-A6F4-ADFC8EA9D4A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
102106
{667C381E-E073-4D5C-A6F4-ADFC8EA9D4A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
103107
{667C381E-E073-4D5C-A6F4-ADFC8EA9D4A0}.Release|Any CPU.Build.0 = Release|Any CPU
104-
{19A0FABD-C40F-4E83-ADB6-DF285BAE4C99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
105-
{19A0FABD-C40F-4E83-ADB6-DF285BAE4C99}.Debug|Any CPU.Build.0 = Debug|Any CPU
106-
{19A0FABD-C40F-4E83-ADB6-DF285BAE4C99}.Release|Any CPU.ActiveCfg = Release|Any CPU
107-
{19A0FABD-C40F-4E83-ADB6-DF285BAE4C99}.Release|Any CPU.Build.0 = Release|Any CPU
108108
{2DDF1EB1-B20F-419F-9A09-34A5550D4467}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
109109
{2DDF1EB1-B20F-419F-9A09-34A5550D4467}.Debug|Any CPU.Build.0 = Debug|Any CPU
110110
{2DDF1EB1-B20F-419F-9A09-34A5550D4467}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -125,6 +125,26 @@ Global
125125
{E90801D3-9D40-4B3F-AA3F-4015C03262A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
126126
{E90801D3-9D40-4B3F-AA3F-4015C03262A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
127127
{E90801D3-9D40-4B3F-AA3F-4015C03262A5}.Release|Any CPU.Build.0 = Release|Any CPU
128+
{BC11A4F8-00BE-431C-9F15-75D4F8106DFF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
129+
{BC11A4F8-00BE-431C-9F15-75D4F8106DFF}.Debug|Any CPU.Build.0 = Debug|Any CPU
130+
{BC11A4F8-00BE-431C-9F15-75D4F8106DFF}.Release|Any CPU.ActiveCfg = Release|Any CPU
131+
{BC11A4F8-00BE-431C-9F15-75D4F8106DFF}.Release|Any CPU.Build.0 = Release|Any CPU
132+
{FC1A6988-7E69-492A-B7EF-73E481D80FEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
133+
{FC1A6988-7E69-492A-B7EF-73E481D80FEB}.Debug|Any CPU.Build.0 = Debug|Any CPU
134+
{FC1A6988-7E69-492A-B7EF-73E481D80FEB}.Release|Any CPU.ActiveCfg = Release|Any CPU
135+
{FC1A6988-7E69-492A-B7EF-73E481D80FEB}.Release|Any CPU.Build.0 = Release|Any CPU
136+
{6884598F-5743-4A2A-B3B9-679FEDA81D6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
137+
{6884598F-5743-4A2A-B3B9-679FEDA81D6B}.Debug|Any CPU.Build.0 = Debug|Any CPU
138+
{6884598F-5743-4A2A-B3B9-679FEDA81D6B}.Release|Any CPU.ActiveCfg = Release|Any CPU
139+
{6884598F-5743-4A2A-B3B9-679FEDA81D6B}.Release|Any CPU.Build.0 = Release|Any CPU
140+
{394401D8-D005-49E1-A735-47284C034D44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
141+
{394401D8-D005-49E1-A735-47284C034D44}.Debug|Any CPU.Build.0 = Debug|Any CPU
142+
{394401D8-D005-49E1-A735-47284C034D44}.Release|Any CPU.ActiveCfg = Release|Any CPU
143+
{394401D8-D005-49E1-A735-47284C034D44}.Release|Any CPU.Build.0 = Release|Any CPU
144+
{FBD50A91-127A-44F7-BF12-4666448086B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
145+
{FBD50A91-127A-44F7-BF12-4666448086B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
146+
{FBD50A91-127A-44F7-BF12-4666448086B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
147+
{FBD50A91-127A-44F7-BF12-4666448086B9}.Release|Any CPU.Build.0 = Release|Any CPU
128148
EndGlobalSection
129149
GlobalSection(SolutionProperties) = preSolution
130150
HideSolutionNode = FALSE
@@ -138,17 +158,21 @@ Global
138158
{1186F448-3722-443F-A0C8-A0D4216D23D9} = {3A7C8C56-A93C-4722-9397-EF82EB5E4655}
139159
{69259CDF-1E32-4310-9155-BC095FFDBECD} = {7A13262A-D1E6-4210-BA95-03A0741CBFA4}
140160
{9FD70B89-220D-47E7-958D-E10F493F9436} = {7A13262A-D1E6-4210-BA95-03A0741CBFA4}
141-
{C212B250-18DD-4F63-B0B3-003FA45A8A9A} = {20A0BD99-A4F3-4FD5-A6FA-1935D7464DB8}
142161
{7C4A643C-FEE8-484E-BE0B-8842FB986F20} = {7A13262A-D1E6-4210-BA95-03A0741CBFA4}
143162
{667C381E-E073-4D5C-A6F4-ADFC8EA9D4A0} = {B7CDEBEF-C508-4EFA-BEC9-9D9D6E5D80C5}
144-
{19A0FABD-C40F-4E83-ADB6-DF285BAE4C99} = {20A0BD99-A4F3-4FD5-A6FA-1935D7464DB8}
145163
{2DDF1EB1-B20F-419F-9A09-34A5550D4467} = {B7CDEBEF-C508-4EFA-BEC9-9D9D6E5D80C5}
146164
{B7CDEBEF-C508-4EFA-BEC9-9D9D6E5D80C5} = {6E495E0A-0DC8-4E42-8C58-3C48506D3D24}
147165
{2D703121-6391-42AB-8D68-8AD85EB5BB4B} = {7A13262A-D1E6-4210-BA95-03A0741CBFA4}
148166
{07C9335C-511F-49A1-AD60-BB0C709971C4} = {B7CDEBEF-C508-4EFA-BEC9-9D9D6E5D80C5}
149167
{225E35C4-C3C2-4319-96BF-CBF86DCB5C46} = {6E495E0A-0DC8-4E42-8C58-3C48506D3D24}
150168
{3442A638-E7C0-45CC-8A7D-F2A40D65AB93} = {225E35C4-C3C2-4319-96BF-CBF86DCB5C46}
151169
{E90801D3-9D40-4B3F-AA3F-4015C03262A5} = {225E35C4-C3C2-4319-96BF-CBF86DCB5C46}
170+
{BC11A4F8-00BE-431C-9F15-75D4F8106DFF} = {B7CDEBEF-C508-4EFA-BEC9-9D9D6E5D80C5}
171+
{FC1A6988-7E69-492A-B7EF-73E481D80FEB} = {B7CDEBEF-C508-4EFA-BEC9-9D9D6E5D80C5}
172+
{6884598F-5743-4A2A-B3B9-679FEDA81D6B} = {E26134A4-0C4E-4362-A5A0-712254365135}
173+
{E26134A4-0C4E-4362-A5A0-712254365135} = {20A0BD99-A4F3-4FD5-A6FA-1935D7464DB8}
174+
{394401D8-D005-49E1-A735-47284C034D44} = {E26134A4-0C4E-4362-A5A0-712254365135}
175+
{FBD50A91-127A-44F7-BF12-4666448086B9} = {E26134A4-0C4E-4362-A5A0-712254365135}
152176
EndGlobalSection
153177
GlobalSection(ExtensibilityGlobals) = postSolution
154178
SolutionGuid = {B9BD3B8C-B2C9-468F-BF54-66BFE9B565EC}

src/EventMesh/FaasNet.EventMesh.Client/Constants.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@ public class Constants
99
public const string DefaultUrl = "localhost";
1010
public const string DefaultVpn = "default";
1111
public const string DefaultIPAddress = "127.0.0.1";
12+
1213
public static Dictionary<Commands, Commands> MappingRequestToResponse = new Dictionary<Commands, Commands>
1314
{
15+
{ Commands.GET_ALL_BRIDGE_VPN_REQUEST, Commands.GET_ALL_BRIDGE_VPN_RESPONSE },
1416
{ Commands.ADD_BRIDGE_REQUEST, Commands.ADD_BRIDGE_RESPONSE },
1517
{ Commands.DISCONNECT_REQUEST, Commands.DISCONNECT_RESPONSE },
1618
{ Commands.HEARTBEAT_REQUEST, Commands.HEARTBEAT_RESPONSE },

src/EventMesh/FaasNet.EventMesh.Client/EventMeshClient.cs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,39 @@ public EventMeshClient(string url = Constants.DefaultUrl, int port = Constants.D
104104
}
105105
}
106106

107+
public async Task<IEnumerable<BridgeServerResponse>> GetAllBridges(CancellationToken cancellationToken = default(CancellationToken))
108+
{
109+
using (var udpClient = new UdpClient())
110+
{
111+
var writeCtx = new WriteBufferContext();
112+
var package = PackageRequestBuilder.GetAllBridge();
113+
package.Serialize(writeCtx);
114+
var payload = writeCtx.Buffer.ToArray();
115+
await udpClient.SendAsync(payload, payload.Count(), new IPEndPoint(_ipAddr, _port)).WithCancellation(cancellationToken);
116+
var resultPayload = await udpClient.ReceiveAsync().WithCancellation(cancellationToken);
117+
var readCtx = new ReadBufferContext(resultPayload.Buffer);
118+
var packageResult = Package.Deserialize(readCtx);
119+
EnsureSuccessStatus(package, packageResult);
120+
return (packageResult as GetAllBridgeResponse).Servers;
121+
}
122+
}
123+
124+
public async Task AddBridge(string vpn, string url, int port, string targetVpn, CancellationToken cancellationToken = default(CancellationToken))
125+
{
126+
using (var udpClient = new UdpClient())
127+
{
128+
var writeCtx = new WriteBufferContext();
129+
var package = PackageRequestBuilder.AddBridge(vpn, url, port, targetVpn);
130+
package.Serialize(writeCtx);
131+
var payload = writeCtx.Buffer.ToArray();
132+
await udpClient.SendAsync(payload, payload.Count(), new IPEndPoint(_ipAddr, _port)).WithCancellation(cancellationToken);
133+
var resultPayload = await udpClient.ReceiveAsync().WithCancellation(cancellationToken);
134+
var readCtx = new ReadBufferContext(resultPayload.Buffer);
135+
var packageResult = Package.Deserialize(readCtx);
136+
EnsureSuccessStatus(package, packageResult);
137+
}
138+
}
139+
107140
internal static void EnsureSuccessStatus(Package packageRequest, Package packageResponse)
108141
{
109142
if (packageResponse.Header.Status != HeaderStatus.SUCCESS)

src/EventMesh/FaasNet.EventMesh.Client/Messages/AddBridgeRequest.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-

2-
using FaasNet.RaftConsensus.Client.Messages;
1+
using FaasNet.RaftConsensus.Client.Messages;
32

43
namespace FaasNet.EventMesh.Client.Messages
54
{
65
public class AddBridgeRequest : Package
76
{
87
#region Properties
98

10-
public string Vpn { get; set; }
9+
public string SourceVpn { get; set; }
1110
public string TargetVpn { get; set; }
1211
public string TargetUrn { get; set; }
1312
public int TargetPort { get; set; }
@@ -17,15 +16,15 @@ public class AddBridgeRequest : Package
1716
public override void Serialize(WriteBufferContext context)
1817
{
1918
base.Serialize(context);
20-
context.WriteString(Vpn);
19+
context.WriteString(SourceVpn);
2120
context.WriteString(TargetVpn);
2221
context.WriteString(TargetUrn);
2322
context.WriteInteger(TargetPort);
2423
}
2524

2625
public void Extract(ReadBufferContext context)
2726
{
28-
Vpn = context.NextString();
27+
SourceVpn = context.NextString();
2928
TargetVpn = context.NextString();
3029
TargetUrn = context.NextString();
3130
TargetPort = context.NextInt();

src/EventMesh/FaasNet.EventMesh.Client/Messages/Commands.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ public class Commands : IEquatable<Commands>
7979
/// Result returned when a VPN is added.
8080
/// </summary>
8181
public static Commands ADD_VPN_RESPONSE = new Commands(17, "ADD_VPN_RESPONSE");
82-
/// <summary>
8382
/// Request sent to read the next message.
8483
/// </summary>
8584
public static Commands READ_NEXT_MESSAGE_REQUEST = new Commands(18, "READ_MESSAGE_REQUEST");
@@ -95,6 +94,14 @@ public class Commands : IEquatable<Commands>
9594
/// Result returned when message is sent.
9695
/// </summary>
9796
public static Commands READ_TOPIC_MESSAGE_RESPONSE = new Commands(21, "READ_TOPIC_MESSAGE_RESPONSE");
97+
/// <summary>
98+
/// Request sent to get all VPN bridge.
99+
/// </summary>
100+
public static Commands GET_ALL_BRIDGE_VPN_REQUEST = new Commands(22, "GET_ALL_BRIDGE_VPN_REQUEST");
101+
/// <summary>
102+
/// Result returned when VPN are returned.
103+
/// </summary>
104+
public static Commands GET_ALL_BRIDGE_VPN_RESPONSE = new Commands(23, "GET_ALL_BRIDGE_VPN_RESPONSE");
98105

99106
private Commands(int code)
100107
{

src/EventMesh/FaasNet.EventMesh.Client/Messages/Errors.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ public class Errors : IEquatable<Errors>
88
public static Errors NO_ACTIVE_SESSION = new Errors("NO_ACTIVE_SESSION");
99
public static Errors NOT_AUTHORIZED = new Errors("NOT_AUTHORIZED");
1010
public static Errors NO_BRIDGE_SERVER = new Errors("NO_BRIDGE_SERVER");
11+
public static Errors TARGET_NOT_REACHABLE = new Errors("TARGET_NOT_REACHABLE");
1112
public static Errors INVALID_URL = new Errors("INVALID_URL");
1213
public static Errors INVALID_CLIENT = new Errors("INVALID_CLIENT");
1314
public static Errors INVALID_SESSION = new Errors("INVALID_SESSION");
@@ -18,6 +19,8 @@ public class Errors : IEquatable<Errors>
1819
public static Errors BRIDGE_EXISTS = new Errors("BRIDGE_EXISTS");
1920
public static Errors UNKNOWN_BRIDGE = new Errors("UNKNOWN_BRIDGE");
2021
public static Errors UNKNOWN_VPN = new Errors("UNKNOWN_VPN");
22+
public static Errors UNKNOWN_SOURCE_VPN = new Errors("UNKNOWN_SOURCE_VPN");
23+
public static Errors UNKNOWN_TARGET_VPN = new Errors("UNKNOWN_TARGET_VPN");
2124
public static Errors UNAUTHORIZED_PUBLISH = new Errors("UNAUTHORIZED_PUBLISH");
2225
public static Errors UNAUTHORIZED_SUBSCRIBE = new Errors("UNAUTHORIZED_SUBSCRIBE");
2326
public static Errors SESSION_LIFETIME_TOOLONG = new Errors("SESSION_LIFETIME_TOOLONG");
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
using FaasNet.RaftConsensus.Client.Messages;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
5+
namespace FaasNet.EventMesh.Client.Messages
6+
{
7+
public class GetAllBridgeResponse : Package
8+
{
9+
public IEnumerable<BridgeServerResponse> Servers { get; set; }
10+
11+
public override void Serialize(WriteBufferContext context)
12+
{
13+
base.Serialize(context);
14+
context.WriteInteger(Servers.Count());
15+
foreach(var server in Servers)
16+
{
17+
server.Serialize(context);
18+
}
19+
}
20+
21+
public void Extract(ReadBufferContext context)
22+
{
23+
var result = new List<BridgeServerResponse>();
24+
int nbServers = context.NextInt();
25+
for(int i = 0; i < nbServers; i++)
26+
{
27+
result.Add(BridgeServerResponse.Deserialize(context));
28+
}
29+
30+
Servers = result;
31+
}
32+
}
33+
34+
public class BridgeServerResponse
35+
{
36+
public string SourceVpn { get; set; }
37+
public string TargetUrn { get; set; }
38+
public int TargetPort { get; set; }
39+
public string TargetVpn { get; set; }
40+
41+
public void Serialize(WriteBufferContext context)
42+
{
43+
context.WriteString(SourceVpn);
44+
context.WriteString(TargetUrn);
45+
context.WriteInteger(TargetPort);
46+
context.WriteString(TargetVpn);
47+
}
48+
49+
public static BridgeServerResponse Deserialize(ReadBufferContext context)
50+
{
51+
return new BridgeServerResponse
52+
{
53+
SourceVpn = context.NextString(),
54+
TargetUrn = context.NextString(),
55+
TargetPort = context.NextInt(),
56+
TargetVpn = context.NextString()
57+
};
58+
}
59+
}
60+
}

src/EventMesh/FaasNet.EventMesh.Client/Messages/Package.cs

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -63,16 +63,6 @@ public static Package Deserialize(ReadBufferContext context)
6363
return result;
6464
}
6565

66-
if (Commands.ADD_BRIDGE_REQUEST == header.Command)
67-
{
68-
var result = new AddBridgeRequest
69-
{
70-
Header = header
71-
};
72-
result.Extract(context);
73-
return result;
74-
}
75-
7666
if (Commands.DISCONNECT_REQUEST == header.Command)
7767
{
7868
var result = new DisconnectRequest
@@ -113,7 +103,8 @@ public static Package Deserialize(ReadBufferContext context)
113103
return result;
114104
}
115105

116-
if(Commands.ADD_VPN_REQUEST == header.Command)
106+
107+
if (Commands.ADD_VPN_REQUEST == header.Command)
117108
{
118109
var result = new AddVpnRequest
119110
{
@@ -122,7 +113,6 @@ public static Package Deserialize(ReadBufferContext context)
122113
result.Extract(context);
123114
return result;
124115
}
125-
126116
if (Commands.READ_NEXT_MESSAGE_REQUEST == header.Command)
127117
{
128118
var result = new ReadNextMessageRequest { Header = header };
@@ -151,6 +141,20 @@ public static Package Deserialize(ReadBufferContext context)
151141
return result;
152142
}
153143

144+
if (Commands.ADD_BRIDGE_REQUEST == header.Command)
145+
{
146+
var result = new AddBridgeRequest { Header = header };
147+
result.Extract(context);
148+
return result;
149+
}
150+
151+
if (Commands.GET_ALL_BRIDGE_VPN_RESPONSE == header.Command)
152+
{
153+
var result = new GetAllBridgeResponse { Header = header };
154+
result.Extract(context);
155+
return result;
156+
}
157+
154158
return new Package
155159
{
156160
Header = header

src/EventMesh/FaasNet.EventMesh.Client/Messages/PackageRequestBuilder.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,15 @@ public static Package HeartBeat()
1818
return result;
1919
}
2020

21+
public static Package GetAllBridge()
22+
{
23+
var result = new Package
24+
{
25+
Header = new Header(Commands.GET_ALL_BRIDGE_VPN_REQUEST, HeaderStatus.SUCCESS, GenerateRandomSeq())
26+
};
27+
return result;
28+
}
29+
2130
public static Package AddVPN(string vpn)
2231
{
2332
var result = new AddVpnRequest
@@ -102,7 +111,7 @@ public static Package AddBridge(string vpn, string urn, int port, string targetV
102111
TargetPort = port,
103112
TargetUrn = urn,
104113
TargetVpn = targetVpn,
105-
Vpn = vpn
114+
SourceVpn = vpn
106115
};
107116
return result;
108117
}

0 commit comments

Comments
 (0)