public async Task <bool> Do(byte option) { Telnet.TelnetOptionState state = GetState(option); switch (state) { case Telnet.TelnetOptionState.Disabled: // Initiating SetOption(option, Telnet.TelnetOptionState.Waiting); await SendTelnet(Telnet.Command.DO, option); return(true); case Telnet.TelnetOptionState.Waiting: // Responding SetOption(option, Telnet.TelnetOptionState.Enabled); await SendTelnet(Telnet.Command.DO, option); return(true); } return(false); }
public void SetOption(byte option, Telnet.TelnetOptionState state) { using var opts = Options.Lock(); Telnet.TelnetOptionState currentState = GetState(option, opts); opts.Value[option] = state; }