Skip to content

Commit ae11a83

Browse files
Prepare MSSP Support
1 parent 26161aa commit ae11a83

File tree

9 files changed

+477
-9
lines changed

9 files changed

+477
-9
lines changed

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
# User-specific files (MonoDevelop/Xamarin Studio)
1414
*.userprefs
15+
*.log
1516

1617
# Build results
1718
[Dd]ebug/
@@ -29,6 +30,8 @@ bld/
2930

3031
# Visual Studio 2015/2017 cache/options directory
3132
.vs/
33+
.history/
34+
.vscode/
3235
# Uncomment if you have tasks that create the project's static files in wwwroot
3336
#wwwroot/
3437

TelnetNegotiationCore.TestServer/Program.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ static void Main(string[] args)
1010
var log = new LoggerConfiguration()
1111
.Enrich.FromLogContext()
1212
.WriteTo.Console()
13-
.WriteTo.File(new CompactJsonFormatter(), "log.txt")
13+
.WriteTo.File(new CompactJsonFormatter(), "logresult.log")
1414
.MinimumLevel.Verbose()
1515
.CreateLogger();
1616

TelnetNegotiationCore.UnitTests/UnitTest1.cs

+12
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
using NUnit.Framework;
2+
using TelnetNegotiationCore;
23

34
namespace TelnetNegotiationCore.UnitTests
45
{
6+
[TestFixture]
57
public class Tests
68
{
79
[SetUp]
@@ -12,6 +14,16 @@ public void Setup()
1214
[Test]
1315
public void Test1()
1416
{
17+
var ti = new TelnetInterpretor();
18+
var a = new MSSPConfig()
19+
{
20+
Name = () => "John",
21+
Ansi = () => true,
22+
Areas = () => 5
23+
};
24+
25+
ti.MSSPReadConfig(a);
26+
1527
Assert.Pass();
1628
}
1729
}

TelnetNegotiationCore/MockServer.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,5 +70,5 @@ public void HandleDevice(object obj)
7070
telnet.RegisterCharsetOrder(new[] { "utf-8", "iso-8859-1" });
7171
telnet.ProcessAsync().ConfigureAwait(false).GetAwaiter().GetResult();
7272
}
73-
}
73+
}
7474
}

TelnetNegotiationCore/State.cs

+7-3
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ public enum State
1414
Willing,
1515
Refusing,
1616
#endregion Standard Negotiation
17+
#region MSSP
18+
DoMSSP,
19+
DontMSSP,
20+
#endregion MSSP
1721
#region NAWS
1822
WillDoNAWS,
1923
WontDoNAWS,
@@ -61,7 +65,7 @@ public enum State
6165
BadSubNegotiation,
6266
BadSubNegotiationEscaping,
6367
BadSubNegotiationEvaluating,
64-
BadSubNegotiationCompleting
65-
#endregion
66-
}
68+
BadSubNegotiationCompleting,
69+
#endregion
70+
}
6771
}

TelnetNegotiationCore/TelnetCharsetInterpretor.cs

+8-1
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ private async Task CompleteAcceptedCharsetAsync(StateMachine<State, Trigger>.Tra
182182
}
183183
catch(Exception ex)
184184
{
185-
_Logger.Error(ex, "Unexpected error during Accepting Charset Negotation.");
185+
_Logger.Error(ex, "Unexpected error during Accepting Charset Negotiation.");
186186
await _OutputStream.BaseStream.WriteAsync(new byte[] { (byte)Trigger.IAC, (byte)Trigger.SB, (byte)Trigger.CHARSET, (byte)Trigger.REJECTED, (byte)Trigger.IAC, (byte)Trigger.SE });
187187
}
188188
}
@@ -227,6 +227,13 @@ private static byte[] CharacterSets()
227227
return pre.Concat(defaultcharsets).Concat(post).ToArray();
228228
}
229229

230+
231+
/// <summary>
232+
/// Register the preferred order of character sets.
233+
/// </summary>
234+
/// <remarks>
235+
/// TODO: Make this take in EncodingInfo instead of string.
236+
/// </remarks>
230237
public void RegisterCharsetOrder(IEnumerable<string> order)
231238
{
232239
var reversed = order.Reverse().ToList();

0 commit comments

Comments
 (0)