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 })); } }
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(); } } }
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); } }
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); }