public void VerifyThatNotifyMessageIsReceivedAndDeviceInformationIsPopulated() { //arrange var fakeSocket = new MockedNotifySocket(); var fakeSocketFactory = A.Fake<ISocketFactory>(); var fakeResponsFactory = A.Fake<IResponseFactory>(); var messageParser = new MessageParser(); var fakeDeviceInfoCollector = A.Fake<IDeviceInfoCollector>(); A.CallTo(() => fakeSocketFactory.CreateListeningSocket()).Returns(fakeSocket); EndPoint dummyEndPoint = new IPEndPoint(IPAddress.Any, 0); DeviceInformation deviceInformation = null; A.CallTo(() => fakeDeviceInfoCollector.Collect(A<Message>.Ignored)) .Returns(new DeviceInformation { Location = "http://1.1.1.1/service.xml" }); var listener = new DiscoveryListener(fakeSocketFactory, fakeResponsFactory, messageParser, fakeDeviceInfoCollector); listener.DeviceDiscovered += (sender, e) => { deviceInformation = e; }; //act listener.Listen(); //assert Assert.AreEqual("http://1.1.1.1/service.xml", deviceInformation.Location); }
public AgentBase() { Parser = new MessageParser(); var config = ConfigSection.Instance; MessageCount = config == null ? 3 : config.MessageCount; DiscoveryAddress = IPAddress.Parse(config == null ? "239.255.255.250" : config.Address); Port = config == null ? 1900 : config.Port; Ttl = config == null ? 4 : config.Ttl; }
/// <summary> /// Creates a GeneratedCodeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names. /// Each array parameter may be null, to indicate a lack of values. /// The parameter order is designed to make it feasible to format the generated code readably. /// </summary> public GeneratedCodeInfo(Type clrType, MessageParser parser, string[] propertyNames, string[] oneofNames, Type[] nestedEnums, GeneratedCodeInfo[] nestedTypes) { NestedTypes = nestedTypes ?? EmptyCodeInfo; NestedEnums = nestedEnums ?? ReflectionUtil.EmptyTypes; ClrType = clrType; Parser = parser; PropertyNames = propertyNames ?? EmptyNames; OneofNames = oneofNames ?? EmptyNames; }
/// <summary> /// CloseConnectionDuplicateClientNameEventArgs Constructor /// </summary> /// <param name="parsed">a simple MessageParse</param> internal CloseConnectionDuplicateClientNameEventArgs(MessageParser parsed) { #if DEBUG FCP2Protocol.ArgsDebug(this, parsed); #endif #if DEBUG parsed.PrintAccessCount(); #endif }
/// <summary> /// EndListPeerNotesEventArgs Constructor /// </summary> /// <param name="parsed">a simple MessageParse</param> internal EndListPeerNotesEventArgs(MessageParser parsed) { #if DEBUG FCP2Protocol.ArgsDebug(this, parsed); #endif #if DEBUG parsed.PrintAccessCount(); #endif }
internal SendingToNetworkEventArgs(MessageParser parsed) { #if DEBUG FCP2Protocol.ArgsDebug(this, parsed); #endif #if DEBUG parsed.PrintAccessCount(); #endif }
public void TestMethod1() { Assembly assembly = Assembly.GetExecutingAssembly(); string text; using (var textStreamReader = new StreamReader(assembly.GetManifestResourceStream("SMTPLibrary.Tests.TestEMail.txt"))) { text = textStreamReader.ReadToEnd(); } MessageParser parser = new MessageParser(text); }
/// <summary> /// PersistentPutDirEventArgs Constructor /// </summary> /// <param name="parsed">a simple MessageParse</param> internal PersistentPutDirEventArgs(MessageParser parsed) { #if DEBUG FCP2Protocol.ArgsDebug(this, parsed); #endif #if DEBUG parsed.PrintAccessCount(); #endif }
public void MessageParser_Test_SerializeAddress_Fails_InvalidAddressDelimiter() { MessageParser parser = new MessageParser(); byte[] bytes = GetTestBytes(); Assert.AreEqual(60, bytes.Length); bytes[1] = (byte)','; parser.Parse(bytes); }
public void MessageParser_Test_SerializeTypeTags_Fails_NullTypeTag() { MessageParser parser = new MessageParser(); byte[] bytes = GetTestBytes(); Assert.AreEqual(60, bytes.Length); bytes[9] = byte.MinValue; parser.Parse(bytes); }
public void MessageParser_Test_SerializeAddress_Fails_InvalidAddressPadding() { MessageParser parser = new MessageParser(); byte[] bytes = GetTestBytes(); Assert.AreEqual(60, bytes.Length); bytes[1] = byte.MinValue; parser.Parse(bytes); }
public void VerifySearchMessageIsCorrectlyParsed() { //arrange MessageParser parser = new MessageParser(); string rawString = "M-SEARCH HTTP/1.1\r\n" + "LOCATION: http://1.1.1.1/\r\n" + "\r\n"; //act var message = parser.Parse(rawString); //assert Assert.AreEqual("M-SEARCH HTTP/1.1",message.MessageLine); Assert.AreEqual("http://1.1.1.1/", message.Headers["LOCATION"]); }
public void TestBadStringForNullResult() { var logMock = new Mock<ILog>(); logMock.Setup(s => s.DebugFormat(It.IsAny<string>(), It.IsAny<object>())).Verifiable(); var parser = new MessageParser{ Logger = logMock.Object }; Message expectedResult = null; var result = parser.Process("some string"); result.ShouldBeEquivalentTo(result); logMock.Verify(); }
public void TestParse() { var mp = new MessageParser(); var result = mp.Parse(Message1, IPAddress.Loopback); Assert.AreEqual(Facility.LocalUse7, result.Facility); Assert.AreEqual(Severity.Debug, result.Severity); Assert.AreEqual(new DateTimeOffset(2015,12,10,22,14,15,new TimeSpan(0,0,0,0)), result.DateTimeOffset); Assert.AreEqual("Hello World!", result.Message); result = mp.Parse(Message2, IPAddress.Loopback); Assert.AreEqual(SyslogMessage.DefaultFacility, result.Facility); Assert.AreEqual(SyslogMessage.DefaultSeverity, result.Severity); Assert.AreEqual(new DateTimeOffset(2015, 12, 10, 5, 14, 15, new TimeSpan(0, 1, 0, 0)), result.DateTimeOffset); Assert.AreEqual("Hello World!", result.Message); result = mp.Parse(Message3, IPAddress.Loopback); Assert.AreEqual(SyslogMessage.DefaultFacility, result.Facility); Assert.AreEqual(SyslogMessage.DefaultSeverity, result.Severity); Assert.AreEqual(new DateTimeOffset(2015, 12, 10, 5, 14, 15, new TimeSpan(0, 1, 0, 0)), result.DateTimeOffset); Assert.AreEqual("Hello World!", result.Message); result = mp.Parse(Message4, IPAddress.Loopback); Assert.AreEqual(Facility.LocalUse4, result.Facility); Assert.AreEqual(Severity.Notice, result.Severity); Assert.AreEqual("Hello World!", result.Message); result = mp.Parse(Message5, IPAddress.Loopback); Assert.AreEqual(SyslogMessage.DefaultFacility, result.Facility); Assert.AreEqual(SyslogMessage.DefaultSeverity, result.Severity); Assert.AreEqual("Hello World!", result.Message); result = mp.Parse(string.Empty, IPAddress.Loopback); Assert.AreEqual(SyslogMessage.DefaultFacility, result.Facility); Assert.AreEqual(SyslogMessage.DefaultSeverity, result.Severity); Assert.AreEqual(string.Empty, result.Message); result = mp.Parse(null, IPAddress.Loopback); Assert.AreEqual(SyslogMessage.DefaultFacility, result.Facility); Assert.AreEqual(SyslogMessage.DefaultSeverity, result.Severity); Assert.AreEqual(string.Empty, result.Message); result = mp.Parse(null, null); Assert.AreEqual(SyslogMessage.DefaultFacility, result.Facility); Assert.AreEqual(SyslogMessage.DefaultSeverity, result.Severity); Assert.AreEqual(string.Empty, result.Message); }
public void Vista50PFullMessage() { var message = "@[01000001000---------],0e5,[f707000600e5800c0c020000],\"ARMED ***AWAY***** ALL SECURE **\""; var logMock = new Mock<ILog>(); logMock.Setup(s => s.DebugFormat(It.IsAny<string>(), It.IsAny<object>())).Verifiable(); var parser = new MessageParser{ Logger = logMock.Object }; Message expectedResult = null; var result = parser.Process(message); result.ShouldBeEquivalentTo(expectedResult); logMock.Verify(); }
public void Parse_WhenDataChunkContainsNoSeperator_ThenNothingIsObserved() { //Arrange const string dataToSend = "Hello World!"; const string seperator = "<seperator>"; const string dataToSendIncludingSeperator = dataToSend + seperator; var dataToSendInBytes = Encoding.UTF8.GetBytes(dataToSendIncludingSeperator); var dataToSendInBytesCount = Encoding.UTF8.GetByteCount(dataToSendIncludingSeperator); var messageParser = new MessageParser(seperator); var subject = new Subject<string>(); var dataRead = string.Empty; subject.Subscribe(testDataMessage => dataRead = testDataMessage); //Act messageParser.Parse(new DataChunk(dataToSendInBytes, dataToSendInBytesCount), subject); //Assert Assert.AreEqual(dataToSend, dataRead); }
/// <summary> /// ConfigDataEventArgs Constructor /// </summary> /// <param name="parsed">a simple MessageParse</param> internal ConfigDataEventArgs(MessageParser parsed) { #if DEBUG FCP2Protocol.ArgsDebug(this, parsed); #endif config = parsed; /* Too much to parse by hand - * we would duplicate most of the nodes * datastructures for configuration * Therfore we expose the MessageParser directly... * * C# 4.0 - dynamic type could be the solution! * * * * * */ #if DEBUG parsed.PrintAccessCount(); #endif }
public void MessageParser_Test_Parse() { MessageParser parser = new MessageParser(); MessageBuilder builder = new MessageBuilder(); builder.SetAddress("/test"); builder.PushAtom(new Atom(TypeTag.OscInt32)); builder.PushAtom(new byte[] { (byte)5 }); builder.PushAtom(5.0f); builder.PushAtom(6.0); builder.PushAtom(7); builder.PushAtom(8L); builder.PushAtom("Test"); // Test osc.net.Message message = builder.ToMessage(); byte[] bytes = parser.Parse(message); osc.net.Message parsedMessage = parser.Parse(bytes); byte[] reparsedBytes = parser.Parse(parsedMessage); Assert.AreEqual(message, parsedMessage); CollectionAssert.AreEqual(bytes, reparsedBytes); }
public void VerifyThatSearchRequestWillBeAnsweredCorrectly() { //arrange var fakeSocket = new MockedSearchSocket(); var fakeSocketFactory = A.Fake<ISocketFactory>(); var fakeResponsFactory = A.Fake<IResponseFactory>(); var messageParser = new MessageParser(); var fakeDeviceInfoCollector = A.Fake<IDeviceInfoCollector>(); A.CallTo(() => fakeSocketFactory.CreateListeningSocket()).Returns(fakeSocket); EndPoint dummyEndPoint = new IPEndPoint(IPAddress.Any, 0); Message receivedMessage = null; var listener = new DiscoveryListener(fakeSocketFactory, fakeResponsFactory, messageParser, fakeDeviceInfoCollector); listener.SearchMessageReceived += (sender, e) => { receivedMessage = e; }; //act listener.Listen(); listener.Stop(); //assert Assert.AreEqual("M-SEARCH * HTTP/1.1", receivedMessage.MessageLine); Assert.AreEqual("http://1.1.1.1/service.xml", receivedMessage.Headers["LOCATION"]); }
public void GetPortReturnsPortNumberAsUnsignedInteger() { parser = new MessageParser(new byte[] { 0x99, 0xAA }); Assert.AreEqual(39338, (int)parser.GetPort()); }
public MessageBasedSensorModel(MessageParser parser) { messageParser = parser; }
public ProtobufDeserializer() { parser = new MessageParser <T>(() => new T()); }
public void GetIPAddressRemovesBytesAsTheyAreReturned() { parser = new MessageParser(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 }); _ = parser.GetIPAddress(); Assert.AreEqual(IPAddress.Parse("5.6.7.8"), parser.GetIPAddress()); }
public void GetShortRemovesBytesAsTheyAreReturned() { parser = new MessageParser(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 }); _ = parser.GetShort(); Assert.AreEqual(1027, parser.GetShort()); }
public static void UpdateSmifStatus(string NodeName, string Data) { try { Form form = Application.OpenForms["FormManual"]; ComboBox portName; if (form == null) { return; } portName = form.Controls.Find("Cb_SMIFSelect", true).FirstOrDefault() as ComboBox; if (portName == null) { return; } if (portName.InvokeRequired) { UpdateData ph = new UpdateData(UpdateSmifStatus); portName.BeginInvoke(ph, NodeName, Data); } else { if (portName.Text.Equals(NodeName)) { Node port = NodeManagement.Get(NodeName); MessageParser parser = new MessageParser(port.Brand); port.Status = parser.ParseMessage(Transaction.Command.LoadPortType.ReadStatus, Data); foreach (KeyValuePair <string, string> item in port.Status) { Label StsLb = form.Controls.Find(item.Key + "_lb", true).FirstOrDefault() as Label; if (StsLb != null) { StsLb.Text = item.Value; if (item.Key.Equals("SLOTPOS")) { ComboBox Slot_cb = form.Controls.Find("Move_To_Slot_cb", true).FirstOrDefault() as ComboBox; if (Slot_cb != null) { if (item.Value.Equals("255")) { Slot_cb.SelectedIndex = 0; } else { Slot_cb.SelectedIndex = Convert.ToInt32(item.Value); } } //Lab_I_Slot_11 for (int i = 1; i <= 25; i++) { StsLb = form.Controls.Find("Lab_I_Slot_" + i.ToString("00"), true).FirstOrDefault() as Label; if (i == Convert.ToInt32(item.Value)) { StsLb.BackColor = Color.Yellow; } else { StsLb.BackColor = Color.Silver; } } } } } } } } catch { logger.Error("UpdateSmifStatus: Update fail."); } }
public void GetStringRemovesBytesIncludingZeroByteAsTheyAreReturned() { parser = new MessageParser(new byte[] { 72, 105, 0, 66, 121, 101 }); _ = parser.GetString(); Assert.AreEqual(66, parser.GetByte()); }
public void Parse_WhenDataChunkIsNull_ThrowsException() { var messageParser = new MessageParser("<Seperator>"); messageParser.Parse(null, null); }
public void GetByteRemovesByteAsItIsReturned() { parser = new MessageParser(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 }); _ = parser.GetByte(); Assert.AreEqual(2, parser.GetByte()); }
public void GetByteReturnsFirstByteOfBuffer() { parser = new MessageParser(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 }); Assert.AreEqual(1, parser.GetByte()); }
private byte[] GetTestBytes() { MessageParser parser = new MessageParser(); MessageBuilder builder = new MessageBuilder(); builder.SetAddress("/test"); builder.PushAtom(new Atom(TypeTag.OscInt32)); builder.PushAtom(new byte[] { (byte)5 }); builder.PushAtom(5.0f); builder.PushAtom(6.0); builder.PushAtom(7); builder.PushAtom(8L); builder.PushAtom("Test"); return parser.Parse(builder.ToMessage()); }
private void ProcessNegotiate(NegotiationToken token, string source) { var parsed = MessageParser.Parse(token.InitialToken.MechToken.Value); ExplodeObject(parsed, $"Kerberos Message ({source})"); }
public void GetPortReturnsFirstTwoBytesOfBufferAsNetworkOrderPortNumber() { parser = new MessageParser(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 }); Assert.AreEqual(258, parser.GetPort()); }
/// <summary> /// Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names. /// Each array parameter may be null, to indicate a lack of values. /// The parameter order is designed to make it feasible to format the generated code readably. /// </summary> public GeneratedClrTypeInfo(Type clrType, MessageParser parser, string[] propertyNames, string[] oneofNames, Type[] nestedEnums, GeneratedClrTypeInfo[] nestedTypes) : this(clrType, parser, propertyNames, oneofNames, nestedEnums, null, nestedTypes) { }
public void GetBytesRemovesBytseAsTheyAreReturned() { parser = new MessageParser(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 }); _ = parser.GetBytes(4); CollectionAssert.AreEqual(new byte[] { 5, 6 }, parser.GetBytes(2)); }
static void TestBytesToMessage() { byte[] b = new byte[1000]; byte[] ival = BitConverter.GetBytes(123); byte[] fval = BitConverter.GetBytes(321.123f); if (BitConverter.IsLittleEndian) { Array.Reverse(ival); Array.Reverse(fval); } int i = 0; b[i++] = (byte)'/'; b[i++] = (byte)'a'; b[i++] = (byte)'/'; b[i++] = (byte)'b'; b[i++] = (byte)'/'; // 4 b[i++] = (byte)'c'; b[i++] = (byte)0; b[i++] = (byte)0; b[i++] = (byte)','; // 8 b[i++] = (byte)'i'; b[i++] = (byte)'f'; b[i++] = (byte)'s'; b[i++] = (byte)'b'; // 12 b[i++] = byte.MinValue; b[i++] = byte.MinValue; b[i++] = byte.MinValue; b[i++] = ival[0]; // 16 b[i++] = ival[1]; b[i++] = ival[2]; b[i++] = ival[3]; b[i++] = fval[0]; // 20 b[i++] = fval[1]; b[i++] = fval[2]; b[i++] = fval[3]; b[i++] = 0; // 24 b[i++] = 0; b[i++] = 0; b[i++] = 6; b[i++] = (byte)'f'; // 28 b[i++] = (byte)'o'; b[i++] = (byte)'O'; b[i++] = (byte)'b'; b[i++] = (byte)'a'; // 32 b[i++] = (byte)'r'; b[i++] = byte.MinValue; b[i++] = byte.MinValue; b[i++] = 0; // 36 b[i++] = 0; b[i++] = 0; b[i++] = 7; b[i++] = (byte)'f'; // 40 b[i++] = (byte)'o'; b[i++] = (byte)'O'; b[i++] = (byte)'b'; b[i++] = (byte)'a'; // 44 b[i++] = (byte)'r'; b[i++] = (byte)'R'; b[i++] = byte.MinValue; var parser = new MessageParser(); var message = parser.Parse(b); PrintMessage(message); }
public ProtobuffedMercuryRequest([NotNull] RawMercuryRequest request, MessageParser <T> parser) { this.Request = request; _parser = parser; }
public void LoginTest() { // send: // - hello // - feature // - auth TcpSocketMock socket = new TcpSocketMock(); MessageFactory messageFactory = new MessageFactory(); socket.Connect("bin-short.whatsapp.net", 5222); List<byte> helloMessage = messageFactory.CreateHelloMessage(); socket.Send(helloMessage.ToArray()); ProtocolNode features = messageFactory.CreateFeaturesNode(); socket.Send(features.ToBytes()); ProtocolNode authNode = messageFactory.CreateAuthNode(); socket.Send(authNode.ToBytes()); // receive // - start (tream) // - features // - challenge byte[] startMessage = new byte[7]; socket.Receive(startMessage, SocketFlags.None); MessageParser parser = new MessageParser(); ProtocolNode startNode = parser.ParseNode(startMessage); Console.WriteLine(startNode.ToString()); byte[] serverFeaturesMessage = new byte[10]; socket.Receive(serverFeaturesMessage, SocketFlags.None); parser = new MessageParser(); ProtocolNode serverFeaturesNode = parser.ParseNode(serverFeaturesMessage); Console.WriteLine(serverFeaturesNode.ToString()); byte[] challengeMessage = new byte[97]; socket.Receive(challengeMessage, SocketFlags.None); //send // - response parser = new MessageParser(); ProtocolNode challengeNode = parser.ParseNode(challengeMessage); Console.WriteLine(challengeNode.ToString()); Dictionary<string, string> challengeParameters = messageFactory.ProcessChallenge(challengeNode); string nonce = challengeParameters["nonce"]; string qop = challengeParameters["qop"]; string charset = challengeParameters["charset"]; string algorithm = challengeParameters["algorithm"]; WhatsAppApi api = new WhatsAppApi(); ProtocolNode authResponseNode = messageFactory.CreateAuthResponseNode("s.whatsapp.net", "555198765432", api.EncryptPassword("175422846762539"), nonce, qop, charset); socket.Send(authResponseNode.ToBytes()); byte[] serverMessage = new byte[1024]; socket.Receive(serverMessage, SocketFlags.None); parser = new MessageParser(); ProtocolNode resultNode = parser.ParseNode(serverMessage); Console.WriteLine(resultNode.ToString()); Assert.AreEqual(resultNode.tag, "success"); }
public void GetShortReturnsFirstTwoBytesOfBufferAs16BitInteger() { parser = new MessageParser(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 }); Assert.AreEqual(513, parser.GetShort()); }
static T Deserialize <T>(byte[] data) where T : IMessage <T>, new() { var parser = new MessageParser <T>(() => new T()); return(parser.ParseFrom(new MemoryStream(data))); }
public void MessageParser_Test_SerializeTypeTags_Fails_InvalidTypeTag() { MessageParser parser = new MessageParser(); byte[] bytes = GetTestBytes(); Assert.AreEqual(60, bytes.Length); bytes[9] = (byte)'x'; parser.Parse(bytes); }
private MessageParser GetParser(MockedBotServerConfiguration serverConfig = null) { var parser = new MessageParser(serverConfig ?? new MockedBotServerConfiguration(), serverConfig?.Language ?? "en-us", 0); return(parser); }
/// <summary> /// Parses the failure. /// </summary> /// <typeparam name="U"></typeparam> /// <param name="data">The data.</param> /// <returns></returns> public static U Parse <U>(byte[] data) where U : IMessage <U>, new() { MessageParser <U> parser = new MessageParser <U>(() => new U()); return(parser.ParseFrom(data)); }
static void Main(string[] args) { int error; steamClient = (SteamClient008)Steamworks.CreateInterface(SteamClient008.InterfaceVersion, out error); if (steamClient == null) { Console.WriteLine("Unable to get SteamClient."); return; } pipe = steamClient.CreateSteamPipe(); user = steamClient.ConnectToGlobalUser(pipe); _handler += new EventHandler(ConsoleEvent); SetConsoleCtrlHandler(_handler, true); steamFriends = ( SteamFriends001 )steamClient.GetISteamFriends(user, pipe, SteamFriends001.InterfaceVersion); steamUser = (SteamUser012)steamClient.GetISteamUser(user, pipe, SteamUser012.InterfaceVersion); FriendsName = steamFriends.GetPersonaName(); RelayTargets = new List <RelayUser>(); ircClient = new IrcClient(RelayNick); ircClient.AlternateNickname = RelayNick + "`"; ircClient.Debugger.Debugging = DebugMode.All; ConnectionParser connection = ircClient.ConnectionParser; MessageParser message = ircClient.MessageParser; connection.Connected += new EventHandler <InfoEventArgs>(connection_Connected); message.ChannelMessage += new EventHandler <MessageEventArgs>(message_ChannelMessage); running = ircClient.Connect(RelayNetwork); DateTime lastUpdate = DateTime.Now; while (running) { ircClient.UpdateIn(); if ((DateTime.Now - lastUpdate) >= RelayDelay && connected) { ircClient.UpdateOut(); lastUpdate = DateTime.Now; } else { ircClient.UpdateOut(); } if (!connected) { continue; } Callback callback; SteamCallHandle steamCall; if (Steamworks.Steam_BGetCallback(pipe, out callback, out steamCall)) { Console.WriteLine("Callback: " + callback.CallbackNum); if (callback.CallbackNum == FriendChatMsg.Callback) { FriendChatMsg chatMsg = ( FriendChatMsg )callback.CallbackObject; SteamID sender = new SteamID(chatMsg.Sender); SteamID reciever = new SteamID(chatMsg.Reciever); if (sender.Equals(steamUser.GetSteamID())) { Steamworks.Steam_FreeLastCallback(pipe); continue; } string msg; FriendMsgType msgType; steamFriends.GetChatMessage(reciever, ( int )chatMsg.ChatID, out msg, 400, out msgType); if (msgType != FriendMsgType.Chat) { Steamworks.Steam_FreeLastCallback(pipe); continue; } string senderStr = steamFriends.GetFriendPersonaName(sender); msg = msg.Replace("\n", " ").Replace("\r", " ").Replace("DCC", ""); RelayUser ru = new RelayUser() { SteamID = sender, LastMessage = DateTime.Now.Subtract(TimeSpan.FromSeconds(1)), }; if (!RelayTargets.Contains(ru)) { RelayTargets.Add(ru); } RelayUser realUser = RelayTargets.Find(new Predicate <RelayUser>((ruser) => { return(ruser.SteamID.Equals(sender)); })); if (msg.StartsWith("!relayon")) { realUser.RelayingIRC = true; steamFriends.SendMsgToFriend(sender, FriendMsgType.ChatSent, "You are now added to the relay list."); } else if (msg.StartsWith("!relayoff")) { realUser.RelayingIRC = false; steamFriends.SendMsgToFriend(sender, FriendMsgType.ChatSent, "You have been removed from the relay list."); } else { if (!realUser.RelayingIRC) { Steamworks.Steam_FreeLastCallback(pipe); continue; } if ((DateTime.Now - realUser.LastMessage) >= TimeSpan.FromSeconds(1)) { realUser.LastMessage = DateTime.Now; ircClient.SendMessage(RelayChannel, senderStr + ": " + msg); } else { steamFriends.SendMsgToFriend(sender, FriendMsgType.ChatSent, "You are sending messages too fast."); } } } Steamworks.Steam_FreeLastCallback(pipe); } } }
public void GetStringReturnsBytesUpToFirstZeroByteAsString() { parser = new MessageParser(new byte[] { 72, 105, 0, 66, 121, 101 }); Assert.AreEqual("Hi", parser.GetString()); }
public string Serialize() { return(MessageParser.Serialize(ToBase())); }
public RequestDecoder(MessageParser messageParser) : base(messageParser) { }
public void GetIPAddressReturnsFirstFourBytesOfBufferAsNetworkOrderIPAddress() { parser = new MessageParser(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 }); Assert.AreEqual(IPAddress.Parse("1.2.3.4"), parser.GetIPAddress()); }
public void MessageStartWithTest() { var message = "!test stuff"; MessageParser.MessageStatsWith(message, "!test").Should().BeTrue(); }
/// <summary> /// 处理消息,先进行<see cref="MessageParser.ParseMessage(string)"/> /// </summary> /// <param name="messageStr"></param> /// <returns></returns> public string ProcessMessage(string messageStr) { IMessage message = MessageParser.ParseMessage(messageStr); return(ProcessMessage(message)); }
public void RemoveTriggerWordTest() { MessageParser.RemoveTriggerWord("!test hello").Should().Be("hello"); }
public MessageBasedSensorModel(string message) { messageParser = new MessageParser(message); }
public static Marshaller <TMessage> GetMarshaller <TMessage>(MessageParser <TMessage> parser) where TMessage : IMessage <TMessage> => Marshallers.Create <TMessage>(r => r.ToByteArray(), data => parser.ParseFrom(data));
static void TestMessageToBytes() { var messageBuilder = new MessageBuilder(); messageBuilder.SetAddress("/a/b/c"); messageBuilder.PushAtom(123); messageBuilder.PushAtom(321.123f); messageBuilder.PushAtom("foObar"); messageBuilder.PushAtom(Encoding.ASCII.GetBytes("foObarR")); var message = messageBuilder.ToMessage(); PrintMessage(message); var parser = new MessageParser(); var bytes = parser.Parse(message); // round trip var newmessage = parser.Parse(bytes); System.Diagnostics.Debug.Assert(message.Equals(newmessage), "Roundtrip messages are not equal."); PrintMessage(newmessage); }
public static Method <TRequest, TResponse> CreateServiceMethod <TRequest, TResponse>(string methodName, MessageParser <TRequest> requestParser, MessageParser <TResponse> responseParser) where TRequest : IMessage <TRequest> where TResponse : IMessage <TResponse> { return(new Method <TRequest, TResponse>(MethodType.Unary, "ServiceName", methodName, GetMarshaller(requestParser), GetMarshaller(responseParser))); }
public Form1() { InitializeComponent(); stringHandler = new MessageParser(); }
public void GetStringReturnsRemainingBytesAsStringWhenBufferContainsNoZeroBytes() { parser = new MessageParser(new byte[] { 72, 101, 108, 108, 111 }); Assert.AreEqual("Hello", parser.GetString()); }
public void Parse_WhenObserverIsNull_ThrowsException() { var messageParser = new MessageParser("<Seperator>"); messageParser.Parse(new DataChunk(new byte[1], 1), null); }
public void GetStringReturnsEmptyStringWhenBufferIsEmpty() { parser = new MessageParser(new byte[] { }); Assert.AreEqual("", parser.GetString()); }
public int Send(byte[] buffer) { if (buffer[0] == 'W' && buffer[1] == 'A') { //received hello, must wait for features protocolPhase = 1; } else { MessageParser parser = new MessageParser(); ProtocolNode node = parser.ParseNode(buffer); if (node.tag == "stream:features") { //received features, must wait for auth protocolPhase = 2; } else if (node.tag == "auth") { protocolPhase = 3; receiveBuffer = new List<byte>(); //<stream:stream from="s.whatsapp.net"></stream:stream> Dictionary<string, string> startNodeAttributes = new Dictionary<string, string>(); startNodeAttributes["from"] = "s.whatsapp.net"; ProtocolNode startNode = new ProtocolNode("stream:stream", startNodeAttributes, null, ""); receiveBuffer.AddRange(startNode.ToBytes()); // <stream:features> // <receipt_acks></receipt_acks> //</stream:features> ProtocolNode receiptAcksNode = new ProtocolNode("receipt_acks", null, null, ""); List<ProtocolNode> featuresNodeChildren = new List<ProtocolNode>(); featuresNodeChildren.Add(receiptAcksNode); ProtocolNode featuresNode = new ProtocolNode("stream:features", null, featuresNodeChildren, ""); receiveBuffer.AddRange(featuresNode.ToBytes()); // <challenge xmlns="urn:ietf:params:xml:ns:xmpp-sasl">bm9uY2U9IjE0OTcxOTQ2MzkyMSIscW9wPSJhdXRoIixjaGFyc2V0PXV0Zi04LGFsZ29yaXRobT1tZDUtc2Vzcw==</challenge> Dictionary<string, string> attributes = new Dictionary<string, string>(); attributes["xmlns"] = "urn:ietf:params:xml:ns:xmpp-sasl"; ProtocolNode challenge = new ProtocolNode("challenge", attributes, null, "bm9uY2U9IjE0OTcxOTQ2MzkyMSIscW9wPSJhdXRoIixjaGFyc2V0PXV0Zi04LGFsZ29yaXRobT1tZDUtc2Vzcw=="); receiveBuffer.AddRange(challenge.ToBytes()); } else if (node.tag == "response") { //received //<response xmlns="urn:ietf:params:xml:ns:xmpp-sasl">dXNlcm5hbWU9IjU1NTE5ODc2NTQzMiIscmVhbG09InMud2hhdHNhcHAubmV0Iixub25jZT0iMTQ5NzE5NDYzOTIxIixjbm9uY2U9IjM2MzgzNTNhMzUzNTM1MzEzOTM4MzczNjM1MzQzMzMyM2EzODMxMzIzODYxMzQzMDM4MzMzNzMxMzE2MTM4NjU2MTYzMzk2MTMzNjM2MzY0MzYzODMwNjM2MzMzNjMzOTMyIixuYz0wMDAwMDAwMSxxb3A9YXV0aCxkaWdlc3QtdXJpPSJ4bXBwL3Mud2hhdHNhcHAubmV0IixyZXNwb25zZT1lM2Q5MjIxOTRlN2M3MTBlYmE3YjEyNjI4Mjc5MTgzMyxjaGFyc2V0PXV0Zi04</response> //must verify and send success MessageFactory factory = new MessageFactory(); Dictionary<string,string> encodedAttributes = factory.ProcessChallenge(node); if (encodedAttributes["username"] == "555198765432" && encodedAttributes["realm"] == "s.whatsapp.net" && encodedAttributes["nonce"] == "149719463921" && encodedAttributes["nc"] == "00000001" && encodedAttributes["qop"] == "auth" && encodedAttributes["digest-uri"] == "xmpp/s.whatsapp.net" && encodedAttributes["charset"] == "utf-8") { //&& encodedAttributes["cnonce"] == "aaaaa" //&& encodedAttributes["response"] == "e3d922194e7c710eba7b126282791833" //TODO: validate cnonce e response //send //<success xmlns="urn:ietf:params:xml:ns:xmpp-sasl" status="active" kind="free" creation="1338065926" expiration="1369601926"></success> ProtocolNode success = new ProtocolNode("success", null, null, ""); receiveBuffer.AddRange(success.ToBytes()); } } } return buffer.Length; }
public void GetBytesReturnsFirstNBytesOfBuffer() { parser = new MessageParser(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 }); CollectionAssert.AreEqual(new byte[] { 1, 2, 3, 4 }, parser.GetBytes(4)); }