diff --git a/RemoteIDSpoofer/RemoteIDSpoofer.ino b/RemoteIDSpoofer/RemoteIDSpoofer.ino index 974083e..e3e8bba 100644 --- a/RemoteIDSpoofer/RemoteIDSpoofer.ino +++ b/RemoteIDSpoofer/RemoteIDSpoofer.ino @@ -11,9 +11,8 @@ void setup() { // start the frontend and don't exit until either timer elapse or user ends it // the timer here is set at 2 minutes - unsigned long timer = millis(); - Frontend frontend; - while (!frontend.do_spoof && (millis() - timer < 120000)) { + Frontend frontend(120000); + while (!frontend.do_spoof) { frontend.handleClient(); } diff --git a/RemoteIDSpoofer/frontend.cpp b/RemoteIDSpoofer/frontend.cpp index 24874d5..f004ed1 100644 --- a/RemoteIDSpoofer/frontend.cpp +++ b/RemoteIDSpoofer/frontend.cpp @@ -1,6 +1,6 @@ #include "frontend.h" -Frontend::Frontend() +Frontend::Frontend(unsigned long idletime) : server(80) { // AP parameters @@ -21,10 +21,19 @@ Frontend::Frontend() // Starting the Server server.begin(); + + // record the time the server started and when to end + timer = millis(); + maxtime = timer + idletime; } void Frontend::handleClient() { server.handleClient(); + + // automatically start spoofing if we've passed the maxtime + if (millis() > maxtime) { + startSpoof(); + } } void Frontend::handleOnConnect() { @@ -32,21 +41,22 @@ void Frontend::handleOnConnect() { server.send(200, "text/html", HTML()); } -void Frontend::handleNotFound() { - server.send(404, "text/plain", "Not found"); -} - -void Frontend::startSpoof() { - do_spoof = true; - WiFi.softAPdisconnect (true); -} - void Frontend::handleForm() { latitude = server.arg("latitude").toFloat(); longitude = server.arg("longitude").toFloat(); server.send(200, "text/html", HTML()); } +void Frontend::startSpoof() { + do_spoof = true; + server.stop(); + WiFi.softAPdisconnect (true); +} + +void Frontend::handleNotFound() { + server.send(404, "text/plain", "Not found"); +} + String Frontend::HTML() { String msg = R"rawliteral( @@ -56,7 +66,10 @@ String Frontend::HTML() {