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)
#endif
#ifndef HASP_USE_HTTP_ASYNC
#define HASP_USE_HTTP_ASYNC 0 //(HASP_HAS_NETWORK)
#endif
#ifndef HASP_USE_MDNS
#define HASP_USE_MDNS (HASP_HAS_NETWORK)
#endif
@ -224,6 +228,10 @@ static WiFiSpiClass WiFi;
#include "sys/svc/hasp_http.h"
#endif
#if HASP_USE_HTTP_ASYNC > 0
#include "sys/svc/hasp_http.h"
#endif
#if HASP_USE_CONSOLE > 0
#include "sys/svc/hasp_console.h"
#endif

View File

@ -90,7 +90,7 @@ void setup()
otaSetup();
#endif
#if HASP_USE_HTTP > 0
#if HASP_USE_HTTP > 0 || HASP_USE_HTTP_ASYNC > 0
httpSetup();
#endif
@ -160,8 +160,8 @@ IRAM_ATTR void loop()
break;
case 2:
#if HASP_USE_HTTP > 0
// httpEvery5Seconds();
#if HASP_USE_HTTP_ASYNC > 0
httpEvery5Seconds();
#endif
break;

View File

@ -31,7 +31,7 @@ void networkStart(void)
haspReconnect();
debugStartSyslog();
// mqttStart();
#if HASP_USE_HTTP > 0
#if HASP_USE_HTTP > 0 || HASP_USE_HTTP_ASYNC > 0
httpStart();
#endif
#if HASP_USE_MDNS > 0
@ -45,7 +45,7 @@ void networkStop(void)
debugStopSyslog();
// mqttStop();
#if HASP_USE_HTTP > 0
#if HASP_USE_HTTP > 0 || HASP_USE_HTTP_ASYNC > 0
httpStop();
#endif
mdnsStop();

File diff suppressed because it is too large Load Diff

View File

@ -29,7 +29,7 @@ EthernetClient telnetClient;
static EthernetServer telnetServer(23);
#endif
#if HASP_USE_HTTP > 0
#if HASP_USE_HTTP > 0 || HASP_USE_HTTP_ASYNC > 0
extern hasp_http_config_t http_config;
#endif
@ -48,9 +48,10 @@ void telnet_update_prompt()
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
telnetClient.stop();
@ -60,9 +61,11 @@ void telnetStop(void)
telnetConsole = NULL;
}
static inline void telnetClientDisconnect()
void telnetStop(void)
{
telnetStop();
telnetClientDisconnect();
delete telnetServer;
telnetServer = NULL;
}
void telnetClientLogon()
@ -99,7 +102,7 @@ void telnetAcceptClient()
// telnetClient.print((char)0xFD);
// 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) {
telnetClient.println(F("\r\n" D_USERNAME " "));
telnetLoginState = TELNET_UNAUTHENTICATED;
@ -119,7 +122,7 @@ static inline void telnetProcessLine()
switch(telnetLoginState) {
case TELNET_UNAUTHENTICATED: {
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;
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,
0x01); // Hide characters
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;
break;
}
@ -235,7 +238,7 @@ static void telnetProcessLine(const char* input)
strcasecmp_P(input, PSTR("bye")) == 0) {
telnetClientDisconnect();
} 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) {
telnetClient.println(F("\r\n" D_USERNAME " "));
telnetLoginState = TELNET_UNAUTHENTICATED;
@ -250,7 +253,7 @@ static void telnetProcessLine(const char* input)
}
}
void telnetSetup()
void telnetStart()
{
// telnetSetConfig(settings);
@ -283,6 +286,9 @@ void telnetSetup()
}
}
void telnetSetup()
{telnetStart();}
IRAM_ATTR void telnetLoop()
{
// Basic telnet client handling code from: https://gist.github.com/tablatronix/4793677ca748f5f584c95ec4a2b10303