Skip to content

Commit 3160c47

Browse files
committed
Rule script handler method parameter changed from string to function
1 parent 0f0d4a5 commit 3160c47

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

src/Surging.Core/Surging.Core.Protocol.Tcp/TcpProtocolModule.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,17 @@ public class TcpProtocolModule : EnginePartModule
1919
public override void Initialize(AppModuleContext serviceProvider)
2020
{
2121
base.Initialize(serviceProvider);
22-
var config =new Dictionary<string, object>();
23-
config.Add("script", @"parser.Fixed(4).Handler(""function(buffer){
22+
var config = new Dictionary<string, object>();
23+
config.Add("script", @"parser.Fixed(4).Handler(
24+
function(buffer){
2425
var buf = BytesUtils.Slice(buffer,1,4);
2526
parser.Fixed(buffer.ReadableBytes).Result(buf);
26-
}"").Handler(""function(buffer){parser.Fixed(8).Result(buffer);}"")
27-
.Handler(""function(buffer){parser.Result('处理完成','gb2312').Complete();}"")");
28-
var network= serviceProvider.ServiceProvoider.GetInstances<INetworkProvider<TcpServerProperties>>().CreateNetwork(new TcpServerProperties
27+
}).Handler(
28+
function(buffer){parser.Fixed(8).Result(buffer);}
29+
).Handler(
30+
function(buffer){parser.Result('处理完成','gb2312').Complete();}
31+
)");
32+
var network= serviceProvider.ServiceProvoider.GetInstances<INetworkProvider<TcpServerProperties>>().CreateNetwork(new TcpServerProperties
2933
{
3034
ParserType = PayloadParserType.Script,
3135
PayloadType = PayloadType.String,

src/Surging.Core/Surging.Core.Protocol.Tcp/Util/TcpRuleWorkflow.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Collections.Generic;
44
using System.Linq;
55
using System.Text;
6+
using System.Text.RegularExpressions;
67
using System.Threading.Tasks;
78

89
namespace Surging.Core.Protocol.Tcp.Util
@@ -17,7 +18,9 @@ public class TcpRuleWorkflow
1718

1819
public TcpRuleWorkflow(string actionExpression) : this()
1920
{
20-
Context.Add("expression", actionExpression);
21+
var str = Regex.Replace(actionExpression, @"(\.Handler\()[.\r|\n|\t|\s]*?(?=(function))", ".Handler(\"", RegexOptions.IgnoreCase);
22+
str = Regex.Replace(str, @"(})[.\r|\n|\t|\s]*?(?=(\)))", "}\"", RegexOptions.IgnoreCase);
23+
Context.Add("expression", str ?? "1 == 1");
2124
}
2225

2326
public TcpRuleWorkflow(string workflowName,string ruleName,string expression,string ruleActionName, Dictionary<string, object> context)

0 commit comments

Comments
 (0)