Advertisement
michalmonday

esp8266_deauther (Setting.load examine)

Jul 15th, 2018
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 20.28 KB | None | 0 0
  1. #include "Settings.h"
  2.  
  3. Settings::Settings() {
  4.     macSt = (uint8_t*)malloc(6);
  5.     macAP = (uint8_t*)malloc(6);
  6. }
  7.  
  8. void Settings::load() {
  9.     Serial.println("void Settings::load() entrance");
  10.     delay(500);
  11.     DynamicJsonBuffer jsonBuffer(4000);
  12.    
  13.     Serial.println("void Settings::load() 2");
  14.     delay(500);
  15.  
  16.    
  17.     // check & read file
  18.     String json = getJsonStr();
  19.  
  20.     Serial.println("void Settings::load() 3");
  21.     delay(500);
  22.  
  23.     checkFile(FILE_PATH, json);
  24.  
  25.     Serial.println("void Settings::load() 4");
  26.     delay(500);
  27.    
  28.     JsonObject& data = parseJSONFile(FILE_PATH, jsonBuffer);
  29.  
  30.     Serial.println("void Settings::load() 5");
  31.     delay(500);
  32.  
  33.     // VERSION
  34.     version = data.get<String>("version");
  35.  
  36.     Serial.println("void Settings::load() 6");
  37.     delay(500);
  38.  
  39.     // AP
  40.     if (data.containsKey(keyword(S_SSID))) setSSID(data.get<String>(keyword(S_SSID)));
  41.  
  42.     Serial.println("void Settings::load() 7");
  43.     delay(500);
  44.  
  45.     if (data.containsKey(keyword(S_PASSWORD))) setPassword(data.get<String>(keyword(S_PASSWORD)));
  46.  
  47.     Serial.println("void Settings::load() 7 - a");
  48.     delay(500);
  49.  
  50.     if (data.containsKey(keyword(S_CHANNEL))) setChannel(data.get<uint8_t>(keyword(S_CHANNEL)));
  51.     Serial.println("void Settings::load() 7 - b");
  52.     delay(500);
  53.  
  54.     if (data.containsKey(keyword(S_HIDDEN))) setHidden(data.get<bool>(keyword(S_HIDDEN)));
  55.     Serial.println("void Settings::load() 7 - c");
  56.     delay(500);
  57.  
  58.     if (data.containsKey(keyword(S_CAPTIVEPORTAL))) setCaptivePortal(data.get<bool>(keyword(S_CAPTIVEPORTAL)));
  59.     Serial.println("void Settings::load() 7 - d");
  60.     delay(500);
  61.  
  62.     // GENERAL
  63.     if (data.containsKey(keyword(S_LANG))) setLang(data.get<String>(keyword(S_LANG)));
  64.     Serial.println("void Settings::load() 7 - e");
  65.     delay(500);
  66.  
  67.     if (data.containsKey(keyword(S_DISPLAYINTERFACE))) setDisplayInterface(data.get<bool>(keyword(S_DISPLAYINTERFACE)));
  68.     Serial.println("void Settings::load() 7 - f");
  69.     delay(500);
  70.  
  71.     if (data.containsKey(keyword(S_DISPLAY_TIMEOUT))) setDisplayTimeout(data.get<uint32_t>(keyword(S_DISPLAY_TIMEOUT)));
  72.     Serial.println("void Settings::load() 7 - g");
  73.     delay(500);
  74.  
  75.     if (data.containsKey(keyword(S_SERIALINTERFACE))) setSerialInterface(data.get<bool>(keyword(S_SERIALINTERFACE)));
  76.     Serial.println("void Settings::load() 7 - h");
  77.     delay(500);
  78.  
  79.     if (data.containsKey(keyword(S_SERIAL_ECHO))) setSerialEcho(data.get<bool>(keyword(S_SERIAL_ECHO)));
  80.     Serial.println("void Settings::load() 7 - i");
  81.     delay(500);
  82.  
  83.     if (data.containsKey(keyword(S_WEBINTERFACE))) setWebInterface(data.get<bool>(keyword(S_WEBINTERFACE)));
  84.     Serial.println("void Settings::load() 7 - j");
  85.     delay(500);
  86.  
  87.     if (data.containsKey(keyword(S_WEB_SPIFFS))) setWebSpiffs(data.get<bool>(keyword(S_WEB_SPIFFS)));
  88.     Serial.println("void Settings::load() 7 - k");
  89.     delay(500);
  90.  
  91.     if (data.containsKey(keyword(S_LEDENABLED))) setLedEnabled(data.get<bool>(keyword(S_LEDENABLED)));
  92.     Serial.println("void Settings::load() 7 - l");
  93.     delay(500);
  94.  
  95.     if (data.containsKey(keyword(S_MAXCH))) setMaxCh(data.get<uint8_t>(keyword(S_MAXCH)));
  96.     Serial.println("void Settings::load() 7 - m");
  97.     delay(500);
  98.  
  99.     if (data.containsKey(keyword(S_MACAP))) setMacAP(data.get<String>(keyword(S_MACAP)));
  100.     Serial.println("void Settings::load() 7 - n");
  101.     delay(500);
  102.  
  103.     if (data.containsKey(keyword(S_MACST))) setMacSt(data.get<String>(keyword(S_MACST)));
  104.     Serial.println("void Settings::load() 7 - o");
  105.     delay(500);
  106.  
  107.     // SCAN
  108.     if (data.containsKey(keyword(S_CHTIME))) setChTime(data.get<uint16_t>(keyword(S_CHTIME)));
  109.     Serial.println("void Settings::load() 7 - p");
  110.     delay(500);
  111.  
  112.     if (data.containsKey(keyword(S_MIN_DEAUTHS))) setMinDeauths(data.get<uint16_t>(keyword(S_MIN_DEAUTHS)));
  113.     Serial.println("void Settings::load() 7 - q");
  114.     delay(500);
  115.  
  116.     // ATTACK
  117.     if (data.containsKey(keyword(S_ATTACKTIMEOUT))) setAttackTimeout(data.get<uint32_t>(keyword(S_ATTACKTIMEOUT)));
  118.     Serial.println("void Settings::load() 7 - r");
  119.     delay(500);
  120.  
  121.     if (data.containsKey(keyword(S_FORCEPACKETS))) setForcePackets(data.get<uint8_t>(keyword(S_FORCEPACKETS)));
  122.     Serial.println("void Settings::load() 7 - s");
  123.     delay(500);
  124.  
  125.     if (data.containsKey(keyword(S_DEAUTHSPERTARGET))) setDeauthsPerTarget(data.get<uint16_t>(keyword(S_DEAUTHSPERTARGET))); // was on new line
  126.     Serial.println("void Settings::load() 7 - t");
  127.     delay(500);
  128.  
  129.     if (data.containsKey(keyword(S_DEAUTHREASON))) setDeauthReason(data.get<uint8_t>(keyword(S_DEAUTHREASON)));
  130.     Serial.println("void Settings::load() 7 - u");
  131.     delay(500);
  132.  
  133.     if (data.containsKey(keyword(S_BEACONCHANNEL))) setBeaconChannel(data.get<bool>(keyword(S_BEACONCHANNEL)));
  134.     Serial.println("void Settings::load() 7 - v");
  135.     delay(500);
  136.  
  137.     if (data.containsKey(keyword(S_BEACONINTERVAL))) setBeaconInterval(data.get<bool>(keyword(S_BEACONINTERVAL)));
  138.     Serial.println("void Settings::load() 7 - w");
  139.     delay(500);
  140.  
  141.     if (data.containsKey(keyword(S_RANDOMTX))) setRandomTX(data.get<bool>(keyword(S_RANDOMTX)));
  142.     Serial.println("void Settings::load() 7 - x");
  143.     delay(500);
  144.  
  145.     if (data.containsKey(keyword(S_PROBESPERSSID))) setProbesPerSSID(data.get<uint8_t>(keyword(S_PROBESPERSSID)));
  146.  
  147.     Serial.println("void Settings::load() 8");
  148.     delay(500);
  149.  
  150.     if (version != VERSION) {
  151.         // reset();
  152.         copyWebFiles(true);
  153.         version = VERSION;
  154.         changed = true;
  155.     }
  156.  
  157.     Serial.println("void Settings::load() 9");
  158.     delay(500);
  159.  
  160.     prnt(S_SETTINGS_LOADED);
  161.     prntln(FILE_PATH);
  162.  
  163.     // check and fix mac
  164.     if (!macValid(macSt)) getRandomMac(macSt);
  165.  
  166.     if (!macValid(macAP)) getRandomMac(macAP);
  167.  
  168.     save(true); // force saving
  169. }
  170.  
  171. void Settings::load(String filepath) {
  172.     String tmp = FILE_PATH;
  173.  
  174.     FILE_PATH = filepath;
  175.     load();
  176.     FILE_PATH = tmp;
  177. }
  178.  
  179. void Settings::reset() {
  180.     // VERSION
  181.     version = VERSION;
  182.  
  183.     // AP
  184.     setSSID("pwned");
  185.     setPassword("deauther");
  186.     setChannel(1);
  187.     setHidden(false);
  188.     setCaptivePortal(true);
  189.  
  190.     // GENERAL
  191.     setLang("en");
  192.     setAutosave(true);
  193.     setAutosaveTime(10000);
  194.     setDisplayInterface(USE_DISPLAY);
  195.     setDisplayTimeout(600);
  196.     setSerialInterface(true);
  197.     setSerialEcho(true);
  198.     setWebInterface(true);
  199.     setWebSpiffs(false);
  200.     setLedEnabled(true);
  201.     setMaxCh(14);
  202.     wifi_get_macaddr(STATION_IF, macSt);
  203.     wifi_get_macaddr(SOFTAP_IF, macAP);
  204.  
  205.     // SCAN
  206.     setChTime(384);
  207.     setMinDeauths(3);
  208.  
  209.     // ATTACK
  210.     setAttackTimeout(600);
  211.     setForcePackets(3);
  212.     setDeauthsPerTarget(20);
  213.     setDeauthReason(1);
  214.     setBeaconChannel(false);
  215.     setBeaconInterval(false);
  216.     setRandomTX(false);
  217.     setProbesPerSSID(1);
  218.  
  219.     prntln(S_SETTINGS_RESETED);
  220. }
  221.  
  222. String Settings::getJsonStr() {
  223.     DynamicJsonBuffer jsonBuffer(4000);
  224.     JsonObject& data = jsonBuffer.createObject();
  225.  
  226.     // Version
  227.     data.set("version", VERSION);
  228.  
  229.     // AP
  230.     data.set(keyword(S_SSID), ssid);
  231.     data.set(keyword(S_PASSWORD), password);
  232.     data.set(keyword(S_CHANNEL), channel);
  233.     data.set(keyword(S_HIDDEN), hidden);
  234.     data.set(keyword(S_CAPTIVEPORTAL), captivePortal);
  235.  
  236.     // GENERAL
  237.     data.set(keyword(S_LANG), lang);
  238.     data.set(keyword(S_AUTOSAVE), autosave);
  239.     data.set(keyword(S_AUTOSAVETIME), autosaveTime);
  240.     data.set(keyword(S_DISPLAYINTERFACE), displayInterface);
  241.     data.set(keyword(S_DISPLAY_TIMEOUT), displayTimeout);
  242.     data.set(keyword(S_SERIALINTERFACE), serialInterface);
  243.     data.set(keyword(S_SERIAL_ECHO), serialEcho);
  244.     data.set(keyword(S_WEBINTERFACE), webInterface);
  245.     data.set(keyword(S_WEB_SPIFFS), webSpiffs);
  246.     data.set(keyword(S_LEDENABLED), ledEnabled);
  247.     data.set(keyword(S_MAXCH), maxCh);
  248.     data.set(keyword(S_MACAP), macToStr(getMacAP()));
  249.     data.set(keyword(S_MACST), macToStr(getMacSt()));
  250.  
  251.     // SCAN
  252.     data.set(keyword(S_CHTIME), chTime);
  253.     data.set(keyword(S_MIN_DEAUTHS), minDeauths);
  254.  
  255.     // ATTACK
  256.     data.set(keyword(S_ATTACKTIMEOUT), attackTimeout);
  257.     data.set(keyword(S_FORCEPACKETS), forcePackets);
  258.     data.set(keyword(S_DEAUTHSPERTARGET), deauthsPerTarget);
  259.     data.set(keyword(S_DEAUTHREASON), deauthReason);
  260.     data.set(keyword(S_BEACONCHANNEL), beaconChannel);
  261.     data.set(keyword(S_BEACONINTERVAL), beaconInterval);
  262.     data.set(keyword(S_RANDOMTX), randomTX);
  263.     data.set(keyword(S_PROBESPERSSID), probesPerSSID);
  264.  
  265.     String buf;
  266.     data.printTo(buf);
  267.  
  268.     return buf;
  269. }
  270.  
  271. void Settings::save(bool force) {
  272.     if (force || changed) {
  273.         String buf = getJsonStr();
  274.  
  275.         if (writeFile(FILE_PATH, buf)) {
  276.             prnt(S_SETTINGS_SAVED);
  277.             prntln(FILE_PATH);
  278.             changed = false;
  279.         } else {
  280.             prnt(F("ERROR: saving "));
  281.             prntln(FILE_PATH);
  282.         }
  283.     }
  284. }
  285.  
  286. void Settings::save(bool force, String filepath) {
  287.     String tmp = FILE_PATH;
  288.  
  289.     FILE_PATH = filepath;
  290.     save(force);
  291.     FILE_PATH = tmp;
  292. }
  293.  
  294. void Settings::print() {
  295.     String settingsJson = getJsonStr();
  296.  
  297.     settingsJson.replace("{", "{\r\n");
  298.     settingsJson.replace("}", "\r\n}");
  299.     settingsJson.replace(",", "\r\n");
  300.     prntln(S_SETTINGS_HEADER);
  301.     prntln(settingsJson);
  302. }
  303.  
  304. void Settings::set(const char* str, String value) {
  305.     // booleans
  306.     if (eqls(str, S_BEACONCHANNEL)) setBeaconChannel(s2b(value));
  307.     else if (eqls(str, S_AUTOSAVE)) setAutosave(s2b(value));
  308.     else if (eqls(str, S_BEACONINTERVAL)) setBeaconInterval(s2b(value));
  309.     else if (eqls(str, S_SERIALINTERFACE)) setSerialInterface(s2b(value));
  310.     else if (eqls(str, S_DISPLAYINTERFACE)) setDisplayInterface(s2b(value));
  311.     else if (eqls(str, S_WEBINTERFACE)) setWebInterface(s2b(value));
  312.     else if (eqls(str, S_RANDOMTX)) setRandomTX(s2b(value));
  313.     else if (eqls(str, S_LEDENABLED)) setLedEnabled(s2b(value));
  314.     else if (eqls(str, S_HIDDEN)) setHidden(s2b(value));
  315.     else if (eqls(str, S_CAPTIVEPORTAL)) setCaptivePortal(s2b(value));
  316.     else if (eqls(str, S_SERIAL_ECHO)) setSerialEcho(s2b(value));
  317.     else if (eqls(str, S_WEB_SPIFFS)) setWebSpiffs(s2b(value));
  318.  
  319.     // integer
  320.     else if (eqls(str, S_FORCEPACKETS)) setForcePackets(value.toInt());
  321.     else if (eqls(str, S_AUTOSAVETIME)) setAutosaveTime(value.toInt());
  322.     else if (eqls(str, S_DEAUTHSPERTARGET)) setDeauthsPerTarget(value.toInt());
  323.     else if (eqls(str, S_CHTIME)) setChTime(value.toInt());
  324.     else if (eqls(str, S_MAXCH)) setMaxCh(value.toInt());
  325.     else if (eqls(str, S_CHANNEL)) setChannel(value.toInt());
  326.     else if (eqls(str, S_DEAUTHREASON)) setDeauthReason(value.toInt());
  327.     else if (eqls(str, S_ATTACKTIMEOUT)) setAttackTimeout(value.toInt());
  328.     else if (eqls(str, S_PROBESPERSSID)) setProbesPerSSID(value.toInt());
  329.     else if (eqls(str, S_MIN_DEAUTHS)) setMinDeauths(value.toInt());
  330.     else if (eqls(str, S_DISPLAY_TIMEOUT)) setDisplayTimeout(value.toInt());
  331.  
  332.     // strings
  333.     else if (eqls(str, S_LANG)) setLang(value);
  334.     else if (eqls(str, S_SSID)) setSSID(value);
  335.     else if (eqls(str, S_PASSWORD)) setPassword(value);
  336.     else if (eqls(str, S_MACAP)) setMacAP(value);
  337.     else if (eqls(str, S_MACST)) setMacSt(value);
  338.     else if (eqls(str, S_MAC) && value.equalsIgnoreCase("random")) {
  339.         setMacSt(value);
  340.         setMacAP(value);
  341.     }
  342.  
  343.     else if (eqls(str, S_VERSION)) prntln(S_ERROR_VERSION);
  344.  
  345.     else {
  346.         prnt(S_ERROR_NOT_FOUND);
  347.         prntln(str);
  348.         return;
  349.     }
  350.  
  351.     prnt(S_CHANGED_SETTING);
  352.     prntln(str);
  353. }
  354.  
  355. String Settings::get(const char* str) {
  356.     if (eqls(str, S_SETTINGS)) print();
  357.     // booleans
  358.     else if (eqls(str, S_BEACONCHANNEL)) return b2s(beaconChannel);
  359.     else if (eqls(str, S_AUTOSAVE)) return b2s(autosave);
  360.     else if (eqls(str, S_BEACONINTERVAL)) return b2s(beaconInterval);
  361.     else if (eqls(str, S_SERIALINTERFACE)) return b2s(serialInterface);
  362.     else if (eqls(str, S_DISPLAYINTERFACE)) return b2s(displayInterface);
  363.     else if (eqls(str, S_WEBINTERFACE)) return b2s(webInterface);
  364.     else if (eqls(str, S_RANDOMTX)) return b2s(randomTX);
  365.     else if (eqls(str, S_LEDENABLED)) return b2s(ledEnabled);
  366.     else if (eqls(str, S_HIDDEN)) return b2s(hidden);
  367.     else if (eqls(str, S_CAPTIVEPORTAL)) return b2s(captivePortal);
  368.     else if (eqls(str, S_SERIAL_ECHO)) return b2s(serialEcho);
  369.     else if (eqls(str, S_WEB_SPIFFS)) return b2s(webSpiffs);
  370.  
  371.     // integer
  372.     else if (eqls(str, S_FORCEPACKETS)) return (String)forcePackets;
  373.     else if (eqls(str, S_AUTOSAVETIME)) return (String)autosaveTime;
  374.     else if (eqls(str, S_DEAUTHSPERTARGET)) return (String)deauthsPerTarget;
  375.     else if (eqls(str, S_CHTIME)) return (String)chTime;
  376.     else if (eqls(str, S_ATTACKTIMEOUT)) return (String)attackTimeout;
  377.     else if (eqls(str, S_MAXCH)) return (String)maxCh;
  378.     else if (eqls(str, S_CHANNEL)) return (String)channel;
  379.     else if (eqls(str, S_DEAUTHREASON)) return (String)deauthReason;
  380.     else if (eqls(str, S_PROBESPERSSID)) return (String)probesPerSSID;
  381.     else if (eqls(str, S_MIN_DEAUTHS)) return (String)minDeauths;
  382.     else if (eqls(str, S_DISPLAY_TIMEOUT)) return (String)displayTimeout;
  383.  
  384.     // strings
  385.     else if (eqls(str, S_SSID)) return ssid;
  386.     else if (eqls(str, S_LANG)) return lang;
  387.     else if (eqls(str, S_PASSWORD)) return password;
  388.     else if (eqls(str, S_MACAP)) return macToStr(getMacAP());
  389.     else if (eqls(str, S_MACST)) return macToStr(getMacSt());
  390.     else if (eqls(str, S_MAC)) return "AP: " + macToStr(macAP) + ", Station: " + macToStr(macSt);
  391.     else if (eqls(str, S_VERSION)) return version;
  392.  
  393.     else {
  394.         prnt(S_ERROR_NOT_FOUND);
  395.         prntln(str);
  396.     }
  397.  
  398.     return "";
  399. }
  400.  
  401. // ===== GETTERS ===== //
  402. String Settings::getVersion() {
  403.     return version;
  404. }
  405.  
  406. uint16_t Settings::getDeauthsPerTarget() {
  407.     return deauthsPerTarget;
  408. }
  409.  
  410. uint8_t Settings::getDeauthReason() {
  411.     return deauthReason;
  412. }
  413.  
  414. bool Settings::getBeaconChannel() {
  415.     return beaconChannel;
  416. }
  417.  
  418. uint8_t Settings::getForcePackets() {
  419.     return forcePackets;
  420. }
  421.  
  422. bool Settings::getAutosave() {
  423.     return autosave;
  424. }
  425.  
  426. uint32_t Settings::getAutosaveTime() {
  427.     return autosaveTime;
  428. }
  429.  
  430. uint8_t Settings::getMaxCh() {
  431.     return maxCh;
  432. }
  433.  
  434. bool Settings::getBeaconInterval() {
  435.     return beaconInterval;
  436. }
  437.  
  438. uint8_t Settings::getChannel() {
  439.     return channel;
  440. }
  441.  
  442. String Settings::getSSID() {
  443.     return ssid;
  444. }
  445.  
  446. String Settings::getPassword() {
  447.     return password;
  448. }
  449.  
  450. bool Settings::getSerialInterface() {
  451.     return serialInterface;
  452. }
  453.  
  454. bool Settings::getDisplayInterface() {
  455.     return displayInterface;
  456. }
  457.  
  458. bool Settings::getWebInterface() {
  459.     return webInterface;
  460. }
  461.  
  462. uint16_t Settings::getChTime() {
  463.     return chTime;
  464. }
  465.  
  466. uint8_t* Settings::getMacSt() {
  467.     return macSt;
  468. }
  469.  
  470. uint8_t* Settings::getMacAP() {
  471.     return macAP;
  472. }
  473.  
  474. bool Settings::getRandomTX() {
  475.     return randomTX;
  476. }
  477.  
  478. uint32_t Settings::getAttackTimeout() {
  479.     return attackTimeout;
  480. }
  481.  
  482. bool Settings::getLedEnabled() {
  483.     return ledEnabled;
  484. }
  485.  
  486. uint8_t Settings::getProbesPerSSID() {
  487.     return probesPerSSID;
  488. }
  489.  
  490. bool Settings::getHidden() {
  491.     return hidden;
  492. }
  493.  
  494. bool Settings::getCaptivePortal() {
  495.     return captivePortal;
  496. }
  497.  
  498. uint16_t Settings::getMinDeauths() {
  499.     return minDeauths;
  500. }
  501.  
  502. uint32_t Settings::getDisplayTimeout() {
  503.     return displayTimeout;
  504. }
  505.  
  506. String Settings::getLang() {
  507.     return lang;
  508. }
  509.  
  510. bool Settings::getSerialEcho() {
  511.     return serialEcho;
  512. }
  513.  
  514. bool Settings::getWebSpiffs() {
  515.     return webSpiffs;
  516. }
  517.  
  518. // ===== SETTERS ===== //
  519.  
  520. void Settings::setDeauthsPerTarget(uint16_t deauthsPerTarget) {
  521.     Settings::deauthsPerTarget = deauthsPerTarget;
  522.     changed                    = true;
  523. }
  524.  
  525. void Settings::setDeauthReason(uint8_t deauthReason) {
  526.     Settings::deauthReason = deauthReason;
  527.     changed                = true;
  528. }
  529.  
  530. void Settings::setBeaconChannel(bool beaconChannel) {
  531.     Settings::beaconChannel = beaconChannel;
  532.     changed                 = true;
  533. }
  534.  
  535. void Settings::setForcePackets(uint8_t forcePackets) {
  536.     if (forcePackets > 0) {
  537.         Settings::forcePackets = forcePackets;
  538.         changed                = true;
  539.     }
  540. }
  541.  
  542. void Settings::setAutosave(bool autosave) {
  543.     Settings::autosave = autosave;
  544.     changed            = true;
  545. }
  546.  
  547. void Settings::setAutosaveTime(uint32_t autosaveTime) {
  548.     Settings::autosaveTime = autosaveTime;
  549.     changed                = true;
  550. }
  551.  
  552. void Settings::setMaxCh(uint8_t maxCh) {
  553.     Settings::maxCh = maxCh;
  554.     changed         = true;
  555. }
  556.  
  557. void Settings::setBeaconInterval(bool beaconInterval) {
  558.     Settings::beaconInterval = beaconInterval;
  559.     changed                  = true;
  560. }
  561.  
  562. void Settings::setChannel(uint8_t channel) {
  563.     if ((channel >= 1) && (channel <= maxCh)) {
  564.         Settings::channel = channel;
  565.         setWifiChannel(channel);
  566.         changed = true;
  567.         prnt(S_CHANNEL_CHANGE);
  568.         prntln(channel);
  569.     } else {
  570.         prnt(S_CHANNEL_ERROR);
  571.         prntln(maxCh);
  572.     }
  573. }
  574.  
  575. void Settings::setSSID(String ssid) {
  576.     if ((ssid.length() > 0) && (ssid.length() <= 32)) {
  577.         ssid           = fixUtf8(ssid);
  578.         Settings::ssid = ssid;
  579.         changed        = true;
  580.     } else {
  581.         prntln(S_ERROR_SSID_LEN);
  582.     }
  583. }
  584.  
  585. void Settings::setPassword(String password) {
  586.     if ((password.length() >= 8) && (password.length() <= 32)) {
  587.         password           = fixUtf8(password);
  588.         Settings::password = password;
  589.         changed            = true;
  590.     } else {
  591.         prntln(S_ERROR_PASSWORD_LEN);
  592.     }
  593. }
  594.  
  595. void Settings::setSerialInterface(bool serialInterface) {
  596.     Settings::serialInterface = serialInterface;
  597.     changed                   = true;
  598. }
  599.  
  600. void Settings::setDisplayInterface(bool displayInterface) {
  601.     Settings::displayInterface = displayInterface;
  602.     changed                    = true;
  603. }
  604.  
  605. void Settings::setWebInterface(bool webInterface) {
  606.     Settings::webInterface = webInterface;
  607.     changed                = true;
  608. }
  609.  
  610. void Settings::setChTime(uint16_t chTime) {
  611.     Settings::chTime = chTime;
  612.     changed          = true;
  613. }
  614.  
  615. void Settings::setMacSt(String macStr) {
  616.     uint8_t mac[6];
  617.  
  618.     if (eqls(macStr, S_RANDOM)) getRandomMac(mac);
  619.     else strToMac(macStr, mac);
  620.  
  621.     setMacSt(mac);
  622. }
  623.  
  624. bool Settings::setMacSt(uint8_t* macSt) {
  625.     if (macSt[0] % 2 == 0) {
  626.         memcpy(Settings::macSt, macSt, 6);
  627.         changed = true;
  628.         return true;
  629.     }
  630.     return false;
  631. }
  632.  
  633. void Settings::setMacAP(String macStr) {
  634.     uint8_t mac[6];
  635.  
  636.     if (eqls(macStr, S_RANDOM)) getRandomMac(mac);
  637.     else strToMac(macStr, mac);
  638.  
  639.     setMacAP(mac);
  640. }
  641.  
  642. bool Settings::setMacAP(uint8_t* macAP) {
  643.     if (macAP[0] % 2 == 0) {
  644.         memcpy(Settings::macAP, macAP, 6);
  645.         changed = true;
  646.         return true;
  647.     }
  648.     return false;
  649. }
  650.  
  651. void Settings::setRandomTX(bool randomTX) {
  652.     Settings::randomTX = randomTX;
  653.     changed            = true;
  654. }
  655.  
  656. void Settings::setAttackTimeout(uint32_t attackTimeout) {
  657.     Settings::attackTimeout = attackTimeout;
  658.     changed                 = true;
  659. }
  660.  
  661. void Settings::setLedEnabled(bool ledEnabled) {
  662.     Settings::ledEnabled = ledEnabled;
  663.     changed              = true;
  664. }
  665.  
  666. void Settings::setProbesPerSSID(uint8_t probesPerSSID) {
  667.     if (probesPerSSID > 0) {
  668.         Settings::probesPerSSID = probesPerSSID;
  669.         changed                 = true;
  670.     }
  671. }
  672.  
  673. void Settings::setHidden(bool hidden) {
  674.     Settings::hidden = hidden;
  675.     changed          = true;
  676. }
  677.  
  678. void Settings::setCaptivePortal(bool captivePortal) {
  679.     Settings::captivePortal = captivePortal;
  680.     changed                 = true;
  681. }
  682.  
  683. void Settings::setMinDeauths(uint16_t minDeauths) {
  684.     Settings::minDeauths = minDeauths;
  685.     changed              = true;
  686. }
  687.  
  688. void Settings::setDisplayTimeout(uint32_t displayTimeout) {
  689.     Settings::displayTimeout = displayTimeout;
  690.     changed                  = true;
  691. }
  692.  
  693. void Settings::setLang(String lang) {
  694.     Settings::lang = lang;
  695.     changed        = true;
  696. }
  697.  
  698. void Settings::setSerialEcho(bool serialEcho) {
  699.     Settings::serialEcho = serialEcho;
  700.     changed              = true;
  701. }
  702.  
  703. void Settings::setWebSpiffs(bool webSpiffs) {
  704.     Settings::webSpiffs = webSpiffs;
  705.     changed             = true;
  706. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement