Exemplo n.º 1
0
        public async Task <IActionResult> DisconnectionAsync([FromBody] DisconnectionRequest request)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(request.UniqueId))
                {
                    return(new BadRequestResult());
                }

                using (await InputRegistrationLock.LockAsync())
                {
                    if (Global.StateMachine.Phase != TumblerPhase.InputRegistration || !Global.StateMachine.AcceptRequest)
                    {
                        return(new ObjectResult(new FailureResponse {
                            Message = "Wrong phase"
                        }));
                    }

                    if (Global.StateMachine.TryRemoveAlice(request.UniqueId))
                    {
                        await Global.StateMachine.BroadcastPeerRegisteredAsync();
                    }
                }

                return(new ObjectResult(new SuccessResponse()));
            }
            catch (Exception ex)
            {
                return(new ObjectResult(new FailureResponse {
                    Message = ex.Message
                }));
            }
        }
Exemplo n.º 2
0
        public void disconnect()
        {
            if (stream != null && client != null)
            {
                DisconnectionRequest request = new DisconnectionRequest()
                {
                    userName = config.userName
                };
                byte[] packet = SharedEncoding.encodeDisconnectionRequest(request);

                try
                {
                    stream.Write(packet, 0, packet.Length);
                }
                finally
                {
                    ClientEvents.messageSent -= sendMessage;
                    client.Close();
                }
            }
        }
Exemplo n.º 3
0
        public async Task PostDisconnectionAsync(DisconnectionRequest request, CancellationToken cancel)
        {
            using (await _asyncLock.LockAsync())
            {
                string requestJsonString = JsonConvert.SerializeObject(request);
                var    content           = new StringContent(
                    requestJsonString,
                    Encoding.UTF8,
                    "application/json");

                HttpResponseMessage response = await PostAsync("disconnection", content, cancel);

                if (!response.IsSuccessStatusCode)
                {
                    throw new HttpRequestException(response.StatusCode.ToString());
                }
                string responseString = await response.Content.ReadAsStringAsync();

                AssertSuccess(responseString);
            }
        }
Exemplo n.º 4
0
        public PacketBase ReadPacket()
        {
            RawPacket rawPacket = ReadRawPacket();

            PacketBase packet;

            switch (rawPacket.Type)
            {
            case PacketType.OnlineCheckRequest:
                packet = new OnlineCheckRequest();
                break;

            case PacketType.OnlineCheckResponse:
                packet = new OnlineCheckResponse();
                break;

            case PacketType.DisconnectionRequest:
                packet = new DisconnectionRequest();
                break;

            case PacketType.DisconnectionResponse:
                packet = new DisconnectionResponse();
                break;

            case PacketType.DisconnectionNotification:
                packet = new DisconnectionNotification();
                break;

            case PacketType.ReconnectionRequest:
                packet = new ReconnectionRequest();
                break;

            case PacketType.FastDataRequest:
                packet = new FastDataRequest();
                break;

            case PacketType.FastDataResponse:
                packet = new FastDataResponse();
                break;

            case PacketType.ConnectionSummaryNotification:
                packet = new ConnectionSummaryNotification();
                break;

            case PacketType.AuthenticationInformationRequestHeader:
                packet = new AuthenticationInformationRequestHeader();
                break;

            case PacketType.AuthenticationInformationResponseHeader:
                packet = new AuthenticationInformationResponseHeader();
                break;

            case PacketType.AuthenticationInformationRequestData:
                packet = new AuthenticationInformationRequestData();
                break;

            case PacketType.AuthenticationInformationResponseData:
                packet = new AuthenticationInformationResponseData();
                break;

            case PacketType.AuthenticationInformationRequestFooter:
                packet = new AuthenticationInformationRequestFooter();
                break;

            case PacketType.AuthenticationInformationResponseFooter:
                packet = new AuthenticationInformationResponseFooter();
                break;

            case PacketType.TusCommonAreaAcquisitionRequest:
                packet = new TusCommonAreaAcquisitionRequest();
                break;

            case PacketType.TusCommonAreaAcquisitionResponse:
                packet = new TusCommonAreaAcquisitionResponse();
                break;

            case PacketType.TusCommonAreaSettingsRequest:
                packet = new TusCommonAreaSettingsRequest();
                break;

            case PacketType.TusCommonAreaSettingsResponse:
                packet = new TusCommonAreaSettingsResponse();
                break;

            case PacketType.TusCommonAreaAddRequest:
                packet = new TusCommonAreaAddRequest();
                break;

            case PacketType.TusCommonAreaAddResponse:
                packet = new TusCommonAreaAddResponse();
                break;

            case PacketType.TusUserAreaWriteRequestHeader:
                packet = new TusUserAreaWriteRequestHeader();
                break;

            case PacketType.TusUserAreaWriteResponseHeader:
                packet = new TusUserAreaWriteResponseHeader();
                break;

            case PacketType.TusUserAreaWriteRequestData:
                packet = new TusUserAreaWriteRequestData();
                break;

            case PacketType.TusUserAreaWriteResponseData:
                packet = new TusUserAreaWriteResponseData();
                break;

            case PacketType.TusUserAreaWriteRequestFooter:
                packet = new TusUserAreaWriteRequestFooter();
                break;

            case PacketType.TusUserAreaWriteResponseFooter:
                packet = new TusUserAreaWriteResponseFooter();
                break;

            case PacketType.TusUserAreaReadRequestHeader:
                packet = new TusUserAreaReadRequestHeader();
                break;

            case PacketType.TusUserAreaReadResponseHeader:
                packet = new TusUserAreaReadResponseHeader();
                break;

            case PacketType.TusUserAreaReadRequestData:
                packet = new TusUserAreaReadRequestData();
                break;

            case PacketType.TusUserAreaReadResponseData:
                packet = new TusUserAreaReadResponseData();
                break;

            case PacketType.TusUserAreaReadRequestFooter:
                packet = new TusUserAreaReadRequestFooter();
                break;

            case PacketType.TusUserAreaReadResponseFooter:
                packet = new TusUserAreaReadResponseFooter();
                break;

            default:
                return(rawPacket);
            }

            packet.Sequence = rawPacket.Sequence;
            packet.ParsePayload(rawPacket.Payload);
            return(packet);
        }