mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-27 05:06:44 +00:00
Add HASP_USE_HTTP_ASYNC
This commit is contained in:
parent
56c0f6e784
commit
84f5685ca7
@ -58,6 +58,10 @@
|
|||||||
#define HASP_USE_HTTP (HASP_HAS_NETWORK)
|
#define HASP_USE_HTTP (HASP_HAS_NETWORK)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef HASP_USE_HTTP_ASYNC
|
||||||
|
#define HASP_USE_HTTP_ASYNC 0 //(HASP_HAS_NETWORK)
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef HASP_USE_MDNS
|
#ifndef HASP_USE_MDNS
|
||||||
#define HASP_USE_MDNS (HASP_HAS_NETWORK)
|
#define HASP_USE_MDNS (HASP_HAS_NETWORK)
|
||||||
#endif
|
#endif
|
||||||
@ -224,6 +228,10 @@ static WiFiSpiClass WiFi;
|
|||||||
#include "sys/svc/hasp_http.h"
|
#include "sys/svc/hasp_http.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if HASP_USE_HTTP_ASYNC > 0
|
||||||
|
#include "sys/svc/hasp_http.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#if HASP_USE_CONSOLE > 0
|
#if HASP_USE_CONSOLE > 0
|
||||||
#include "sys/svc/hasp_console.h"
|
#include "sys/svc/hasp_console.h"
|
||||||
#endif
|
#endif
|
||||||
|
@ -90,7 +90,7 @@ void setup()
|
|||||||
otaSetup();
|
otaSetup();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HASP_USE_HTTP > 0
|
#if HASP_USE_HTTP > 0 || HASP_USE_HTTP_ASYNC > 0
|
||||||
httpSetup();
|
httpSetup();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -160,8 +160,8 @@ IRAM_ATTR void loop()
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
#if HASP_USE_HTTP > 0
|
#if HASP_USE_HTTP_ASYNC > 0
|
||||||
// httpEvery5Seconds();
|
httpEvery5Seconds();
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ void networkStart(void)
|
|||||||
haspReconnect();
|
haspReconnect();
|
||||||
debugStartSyslog();
|
debugStartSyslog();
|
||||||
// mqttStart();
|
// mqttStart();
|
||||||
#if HASP_USE_HTTP > 0
|
#if HASP_USE_HTTP > 0 || HASP_USE_HTTP_ASYNC > 0
|
||||||
httpStart();
|
httpStart();
|
||||||
#endif
|
#endif
|
||||||
#if HASP_USE_MDNS > 0
|
#if HASP_USE_MDNS > 0
|
||||||
@ -45,7 +45,7 @@ void networkStop(void)
|
|||||||
|
|
||||||
debugStopSyslog();
|
debugStopSyslog();
|
||||||
// mqttStop();
|
// mqttStop();
|
||||||
#if HASP_USE_HTTP > 0
|
#if HASP_USE_HTTP > 0 || HASP_USE_HTTP_ASYNC > 0
|
||||||
httpStop();
|
httpStop();
|
||||||
#endif
|
#endif
|
||||||
mdnsStop();
|
mdnsStop();
|
||||||
|
2419
src/sys/svc/hasp_http_async.cpp
Normal file
2419
src/sys/svc/hasp_http_async.cpp
Normal file
File diff suppressed because it is too large
Load Diff
@ -29,7 +29,7 @@ EthernetClient telnetClient;
|
|||||||
static EthernetServer telnetServer(23);
|
static EthernetServer telnetServer(23);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HASP_USE_HTTP > 0
|
#if HASP_USE_HTTP > 0 || HASP_USE_HTTP_ASYNC > 0
|
||||||
extern hasp_http_config_t http_config;
|
extern hasp_http_config_t http_config;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -48,9 +48,10 @@ void telnet_update_prompt()
|
|||||||
bufferedTelnetClient.flush();
|
bufferedTelnetClient.flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
void telnetStop(void)
|
static void telnetClientDisconnect()
|
||||||
{
|
{
|
||||||
LOG_TRACE(TAG_TELN, F(D_TELNET_CLOSING_CONNECTION), telnetClient.remoteIP().toString().c_str());
|
if(telnetClient.connected())
|
||||||
|
LOG_TRACE(TAG_TELN, F(D_TELNET_CLOSING_CONNECTION), telnetClient.remoteIP().toString().c_str());
|
||||||
Log.unregisterOutput(1); // telnetClient
|
Log.unregisterOutput(1); // telnetClient
|
||||||
telnetClient.stop();
|
telnetClient.stop();
|
||||||
|
|
||||||
@ -60,9 +61,11 @@ void telnetStop(void)
|
|||||||
telnetConsole = NULL;
|
telnetConsole = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void telnetClientDisconnect()
|
void telnetStop(void)
|
||||||
{
|
{
|
||||||
telnetStop();
|
telnetClientDisconnect();
|
||||||
|
delete telnetServer;
|
||||||
|
telnetServer = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void telnetClientLogon()
|
void telnetClientLogon()
|
||||||
@ -99,7 +102,7 @@ void telnetAcceptClient()
|
|||||||
// telnetClient.print((char)0xFD);
|
// telnetClient.print((char)0xFD);
|
||||||
// telnetClient.print((char)0x1B);
|
// telnetClient.print((char)0x1B);
|
||||||
|
|
||||||
#if HASP_USE_HTTP > 0
|
#if HASP_USE_HTTP > 0 || HASP_USE_HTTP_ASYNC > 0
|
||||||
if(strlen(http_config.user) != 0 || strlen(http_config.password) != 0) {
|
if(strlen(http_config.user) != 0 || strlen(http_config.password) != 0) {
|
||||||
telnetClient.println(F("\r\n" D_USERNAME " "));
|
telnetClient.println(F("\r\n" D_USERNAME " "));
|
||||||
telnetLoginState = TELNET_UNAUTHENTICATED;
|
telnetLoginState = TELNET_UNAUTHENTICATED;
|
||||||
@ -119,7 +122,7 @@ static inline void telnetProcessLine()
|
|||||||
switch(telnetLoginState) {
|
switch(telnetLoginState) {
|
||||||
case TELNET_UNAUTHENTICATED: {
|
case TELNET_UNAUTHENTICATED: {
|
||||||
telnetClient.printf(PSTR(D_PASSWORD" %c%c%c"), 0xFF, 0xFB, 0x01); // Hide characters
|
telnetClient.printf(PSTR(D_PASSWORD" %c%c%c"), 0xFF, 0xFB, 0x01); // Hide characters
|
||||||
#if HASP_USE_HTTP > 0
|
#if HASP_USE_HTTP > 0 || HASP_USE_HTTP_ASYNC > 0
|
||||||
telnetLoginState = strcmp(telnetInputBuffer, http_config.user) == 0 ? TELNET_USERNAME_OK : TELNET_USERNAME_NOK;
|
telnetLoginState = strcmp(telnetInputBuffer, http_config.user) == 0 ? TELNET_USERNAME_OK : TELNET_USERNAME_NOK;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -205,7 +208,7 @@ static void telnetProcessLine(const char* input)
|
|||||||
snprintf_P(buffer, sizeof(buffer), PSTR(D_PASSWORD " %c%c%c\n"), 0xFF, 0xFB,
|
snprintf_P(buffer, sizeof(buffer), PSTR(D_PASSWORD " %c%c%c\n"), 0xFF, 0xFB,
|
||||||
0x01); // Hide characters
|
0x01); // Hide characters
|
||||||
telnetClient.print(buffer);
|
telnetClient.print(buffer);
|
||||||
#if HASP_USE_HTTP > 0
|
#if HASP_USE_HTTP > 0 || HASP_USE_HTTP_ASYNC > 0
|
||||||
telnetLoginState = strcmp(input, http_config.user) == 0 ? TELNET_USERNAME_OK : TELNET_USERNAME_NOK;
|
telnetLoginState = strcmp(input, http_config.user) == 0 ? TELNET_USERNAME_OK : TELNET_USERNAME_NOK;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -235,7 +238,7 @@ static void telnetProcessLine(const char* input)
|
|||||||
strcasecmp_P(input, PSTR("bye")) == 0) {
|
strcasecmp_P(input, PSTR("bye")) == 0) {
|
||||||
telnetClientDisconnect();
|
telnetClientDisconnect();
|
||||||
} else if(strcasecmp_P(input, PSTR("logoff")) == 0) {
|
} else if(strcasecmp_P(input, PSTR("logoff")) == 0) {
|
||||||
#if HASP_USE_HTTP > 0
|
#if HASP_USE_HTTP > 0 || HASP_USE_HTTP_ASYNC > 0
|
||||||
if(strcmp(input, http_config.password) == 0) {
|
if(strcmp(input, http_config.password) == 0) {
|
||||||
telnetClient.println(F("\r\n" D_USERNAME " "));
|
telnetClient.println(F("\r\n" D_USERNAME " "));
|
||||||
telnetLoginState = TELNET_UNAUTHENTICATED;
|
telnetLoginState = TELNET_UNAUTHENTICATED;
|
||||||
@ -250,7 +253,7 @@ static void telnetProcessLine(const char* input)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void telnetSetup()
|
void telnetStart()
|
||||||
{
|
{
|
||||||
// telnetSetConfig(settings);
|
// telnetSetConfig(settings);
|
||||||
|
|
||||||
@ -283,6 +286,9 @@ void telnetSetup()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void telnetSetup()
|
||||||
|
{telnetStart();}
|
||||||
|
|
||||||
IRAM_ATTR void telnetLoop()
|
IRAM_ATTR void telnetLoop()
|
||||||
{
|
{
|
||||||
// Basic telnet client handling code from: https://gist.github.com/tablatronix/4793677ca748f5f584c95ec4a2b10303
|
// Basic telnet client handling code from: https://gist.github.com/tablatronix/4793677ca748f5f584c95ec4a2b10303
|
||||||
|
Loading…
x
Reference in New Issue
Block a user