Add HASP_USE_HTTP_ASYNC

This commit is contained in:
fvanroie 2021-07-02 16:00:51 +02:00
parent 56c0f6e784
commit 84f5685ca7
5 changed files with 2448 additions and 15 deletions

View File

@ -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

View File

@ -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;

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -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