mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-25 20:26:41 +00:00
Detect Ctrl-C and Ctrl-D in Putty #291
This commit is contained in:
parent
b2a3e7425a
commit
f309e7cc25
@ -26,7 +26,7 @@ static WiFiServer* telnetServer;
|
|||||||
WiFiClient telnetClient;
|
WiFiClient telnetClient;
|
||||||
static WiFiServer* telnetServer;
|
static WiFiServer* telnetServer;
|
||||||
#else
|
#else
|
||||||
//#include <STM32Ethernet.h>
|
// #include <STM32Ethernet.h>
|
||||||
EthernetClient telnetClient;
|
EthernetClient telnetClient;
|
||||||
static EthernetServer telnetServer(23);
|
static EthernetServer telnetServer(23);
|
||||||
#endif
|
#endif
|
||||||
@ -376,7 +376,18 @@ IRAM_ATTR void telnetLoop()
|
|||||||
/* Active Client: Process user input */
|
/* Active Client: Process user input */
|
||||||
if(telnetClient.connected()) {
|
if(telnetClient.connected()) {
|
||||||
if(telnetConsole) {
|
if(telnetConsole) {
|
||||||
while(telnetConsole->readKey()) {
|
while(int16_t key = telnetConsole->readKey()) {
|
||||||
|
switch(key) {
|
||||||
|
case 0xf8:
|
||||||
|
case KEY_CTRL('C'): // ^C = Cancel (Quit)
|
||||||
|
telnetClientDisconnect();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 0xec:
|
||||||
|
case KEY_CTRL('D'): // ^D = Disconnect (Logout)
|
||||||
|
LOG_DEBUG(TAG_TELN, "Ctrl-D");
|
||||||
|
break;
|
||||||
|
}
|
||||||
if(!telnetConsole) return; // the telnetConsole was destroyed
|
if(!telnetConsole) return; // the telnetConsole was destroyed
|
||||||
if(bufferedTelnetClient.available() <= 0) bufferedTelnetClient.flush(); // flush pending updates
|
if(bufferedTelnetClient.available() <= 0) bufferedTelnetClient.flush(); // flush pending updates
|
||||||
};
|
};
|
||||||
@ -385,6 +396,7 @@ IRAM_ATTR void telnetLoop()
|
|||||||
telnetConsole = new ConsoleInput(&bufferedTelnetClient, HASP_CONSOLE_BUFFER);
|
telnetConsole = new ConsoleInput(&bufferedTelnetClient, HASP_CONSOLE_BUFFER);
|
||||||
if(telnetConsole) {
|
if(telnetConsole) {
|
||||||
telnetConsole->setLineCallback(telnetProcessLine);
|
telnetConsole->setLineCallback(telnetProcessLine);
|
||||||
|
telnetConsole->setDebug(true);
|
||||||
} else {
|
} else {
|
||||||
telnetClientDisconnect();
|
telnetClientDisconnect();
|
||||||
LOG_ERROR(TAG_TELN, F(D_TELNET_FAILED));
|
LOG_ERROR(TAG_TELN, F(D_TELNET_FAILED));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user