Beispiel #1
0
 public static ReservedSid CreateAsError(Status.ErrorCode error)
 {
     return new ReservedSid
     {
         Error = error
     };
 }
Beispiel #2
0
 private void CreateRequiredFeatureIsMissing(string featureName)
 {
     _errorCommand = new Status(
         InformationMessageHeader,
         Status.ErrorSeverity.Fatal,
         Status.ErrorCode.RequiredFeatureIsMissing,
         $"Feature {featureName} is required");
 }
        public override async Task Effect(StateMachineEvent evt, Command parameter)
        {
            if (parameter != null)
            {
                var status = new Status(new InformationMessageHeader(), Status.ErrorSeverity.Fatal, Status.ErrorCode.InvalidState, $"Command {parameter.FourCc()} is invalid or not available in PROTOCOL state.");
                status.OffendingCommandOrMissingFeature.Value = parameter.FourCc();
                await Sender.SendMessage(status.ToMessage());
            }

            await User.Close();
        }
        public override async Task Effect(StateMachineEvent evt, Command parameter)
        {
            if (parameter != null)
            {
                var status = new Status(new InformationMessageHeader(), Status.ErrorSeverity.Fatal, Status.ErrorCode.InvalidState, $"Command {parameter.FourCc()} is invalid or not available in IDENTIFY state.");
                status.OffendingCommandOrMissingFeature.Value = parameter.FourCc();
                await Sender.SendMessage(status.ToMessage());
            }

            if (evt.InternalEvent != InternalEvent.DisconnectOccured)
            {
                var quit = new Quit(new InformationMessageHeader(), User.Sid);
                await Sender.SendMessage(quit.ToMessage());
            }

            await User.Close();
        }
Beispiel #5
0
        public async Task Open(IPAddress clientIPv4, IPAddress clientIPv6)
        {
            var catalog = ServiceProxy.Create<ICatalog>(new Uri("fabric:/FabricAdcHub.ServiceFabric/Catalog"));
            var reservation = await catalog.ReserveSid();
            if (reservation.Error != Status.ErrorCode.NoError)
            {
                var command = new Status(new InformationMessageHeader(), Status.ErrorSeverity.Fatal, reservation.Error, "All your connection are reject by us.");
                await SendCommand(command);
                Dispose();
                return;
            }

            _sid = reservation.Sid;
            var user = GetUser(_sid);
            await user.Open(clientIPv4, clientIPv6);
            await GetSender(_sid).SubscribeAsync<ISenderEvents>(this);
            _adcReader = RunInfiniteRead();
        }
 private void CreateRequiredFieldIsMissing(string fieldName)
 {
     var status = new Status(
         InformationMessageHeader,
         Status.ErrorSeverity.Fatal,
         Status.ErrorCode.RequiredInfFieldIsMissingOrBad,
         $"Field {fieldName} is required");
     status.MissingInfField.Value = fieldName;
     _errorCommand = status;
 }
 private void CreateNonUniqueNick()
 {
     _errorCommand = new Status(
         InformationMessageHeader,
         Status.ErrorSeverity.Fatal,
         Status.ErrorCode.NickTaken,
         string.Empty);
 }
 private void CreateInvalidNick()
 {
     _errorCommand = new Status(
         InformationMessageHeader,
         Status.ErrorSeverity.Fatal,
         Status.ErrorCode.NickInvalid,
         string.Empty);
 }
 private void CreateInvalidIPv6(string correctIp)
 {
     var status = new Status(
         InformationMessageHeader,
         Status.ErrorSeverity.Fatal,
         Status.ErrorCode.InvalidIp,
         string.Empty);
     status.InvalidInfIpv6.Value = correctIp;
     _errorCommand = status;
 }