private async Task DoReceiveBind(SmsServerSession session, SgipMessageBind message) { var response = new SgipMessageBindResponse() { SequenceId1 = message.SequenceId1, SequenceId2 = message.SequenceId2, SequenceId3 = message.SequenceId3 }; var userName = this.Configurations.UserName; var password = this.Configurations.Password; var u = message.LoginName; var p = message.Password; //send the response if (userName == u && password == p) { response.Status = 0; //SUCCESS session.IsAuthenticated = true; } else { response.Status = 1; //FAILED; } await session.SendAsync(response); }
protected override async Task <bool> DoConnectAsync() { var config = this.Configurations; var userName = config.UserName; var password = config.Password; var sids = this.SequenceId; var m = new SgipMessageBind() { SequenceId3 = sids[0], SequenceId2 = sids[1], SequenceId1 = sids[2], LoginName = userName, Password = password }; await this.Send(m); var evt = new AutoResetEvent(false); this.ConnectEvent = evt; TimeSpan timeout = TimeSpan.FromSeconds(10); evt.WaitOne(timeout); return(this.Status == SmsClientStatus.Connected); }
public NetworkMessage CreateNetworkMessage(BinaryReader reader) { uint byteCount = reader.NetworkReadUInt32(); SgipCommands command = (SgipCommands)reader.NetworkReadUInt32(); SgipMessage message = null; uint sid3 = reader.NetworkReadUInt32(); uint sid2 = reader.NetworkReadUInt32(); uint sid1 = reader.NetworkReadUInt32(); switch (command) { case SgipCommands.BindResponse: message = new SgipMessageBindResponse(); break; case SgipCommands.Bind: message = new SgipMessageBind(); break; case SgipCommands.Unbind: message = new SgipMessageUnbind(); break; case SgipCommands.UnbindResponse: message = new SgipMessageUnbindResponse(); break; case SgipCommands.Submit: message = new SgipMessageSubmit(); break; case SgipCommands.SubmitResponse: message = new SgipMessageSubmitResponse(); break; case SgipCommands.Deliver: //receive sms message = new SgipMessageDeliver(); break; case SgipCommands.DeliverResponse: message = new SgipMessageDeliverResponse(); break; case SgipCommands.Report: message = new SgipMessageReport(); break; case SgipCommands.ReportResponse: message = new SgipMessageReportResponse(); break; case SgipCommands.None: default: message = new SgipMessage(); break; } if (message != null) { message.Command = command; message.ByteCount = byteCount; message.SequenceId1 = sid1; message.SequenceId2 = sid2; message.SequenceId3 = sid3; message.NetworkRead(reader); } return(message); }