@@ -216,31 +216,36 @@ class Web {
216
216
}
217
217
218
218
private:
219
- inline void checkRedirect (AsyncWebServerRequest *request) {
220
- if ((mConfig ->sys .protectionMask & PROT_MASK_INDEX) != PROT_MASK_INDEX)
221
- request->redirect (F (" /index" ));
222
- else if ((mConfig ->sys .protectionMask & PROT_MASK_LIVE) != PROT_MASK_LIVE)
223
- request->redirect (F (" /live" ));
224
- else if ((mConfig ->sys .protectionMask & PROT_MASK_HISTORY) != PROT_MASK_HISTORY)
225
- request->redirect (F (" /history" ));
226
- else if ((mConfig ->sys .protectionMask & PROT_MASK_SERIAL) != PROT_MASK_SERIAL)
227
- request->redirect (F (" /serial" ));
228
- else if ((mConfig ->sys .protectionMask & PROT_MASK_SYSTEM) != PROT_MASK_SYSTEM)
229
- request->redirect (F (" /system" ));
230
- else
231
- request->redirect (F (" /login" ));
232
- }
233
-
234
- void checkProtection (AsyncWebServerRequest *request) {
219
+ bool checkProtection (AsyncWebServerRequest *request) {
235
220
if (mApp ->isProtected (request->client ()->remoteIP ().toString ().c_str (), " " , true )) {
236
- checkRedirect (request);
237
- return ;
221
+ if ((mConfig ->sys .protectionMask & PROT_MASK_INDEX) != PROT_MASK_INDEX) {
222
+ request->redirect (F (" /index" ));
223
+ return true ;
224
+ } else if ((mConfig ->sys .protectionMask & PROT_MASK_LIVE) != PROT_MASK_LIVE) {
225
+ request->redirect (F (" /live" ));
226
+ return true ;
227
+ } else if ((mConfig ->sys .protectionMask & PROT_MASK_HISTORY) != PROT_MASK_HISTORY) {
228
+ request->redirect (F (" /history" ));
229
+ return true ;
230
+ } else if ((mConfig ->sys .protectionMask & PROT_MASK_SERIAL) != PROT_MASK_SERIAL) {
231
+ request->redirect (F (" /serial" ));
232
+ return true ;
233
+ } else if ((mConfig ->sys .protectionMask & PROT_MASK_SYSTEM) != PROT_MASK_SYSTEM) {
234
+ request->redirect (F (" /system" ));
235
+ return true ;
236
+ } else {
237
+ request->redirect (F (" /login" ));
238
+ return true ;
239
+ }
238
240
}
241
+
242
+ return false ;
239
243
}
240
244
241
245
void getPage (AsyncWebServerRequest *request, uint16_t mask, const uint8_t *zippedHtml, uint32_t len) {
242
246
if (CHECK_MASK (mConfig ->sys .protectionMask , mask))
243
- checkProtection (request);
247
+ if (checkProtection (request))
248
+ return ;
244
249
245
250
AsyncWebServerResponse *response = beginResponse (request, 200 , F (" text/html; charset=UTF-8" ), zippedHtml, len);
246
251
response->addHeader (F (" Content-Encoding" ), " gzip" );
@@ -337,6 +342,7 @@ class Web {
337
342
if (String (request->arg (" pwd" )) == String (mConfig ->sys .adminPwd )) {
338
343
mApp ->unlock (request->client ()->remoteIP ().toString ().c_str (), true );
339
344
request->redirect (" /index" );
345
+ return ;
340
346
}
341
347
}
342
348
0 commit comments