Skip to content

Commit

Permalink
Updated webConverter
Browse files Browse the repository at this point in the history
  • Loading branch information
Stefan Kremser committed Apr 4, 2018
1 parent a054b1d commit f292151
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 80 deletions.
2 changes: 2 additions & 0 deletions esp8266_deauther/language.h
Expand Up @@ -604,6 +604,8 @@ static const char W_PWNED[] PROGMEM = "pwned";
static const char W_DEAUTHER[] PROGMEM = "deauth.me";
static const char W_WEBINTERFACE[] PROGMEM = "/web";
static const char W_DOWNLOAD[] PROGMEM = "download";
static const char W_CONTENT_ENCODING[] PROGMEM = "Content-Encoding";
static const char W_CACHE_CONTROL[] PROGMEM = "Cache-Control";
static const char W_STREAM[] PROGMEM = "application/octet-stream";
static const char W_HTML[] PROGMEM = "text/html";
static const char W_CSS[] PROGMEM = "text/css";
Expand Down
148 changes: 78 additions & 70 deletions esp8266_deauther/wifi.h
Expand Up @@ -194,10 +194,10 @@ void handleFileList() {
server.send(200, str(W_JSON).c_str(), output);
}

void sendProgmem(const char* ptr, size_t size, String type) {
server.sendHeader(String(F("Content-Encoding")).c_str(), "gzip");
server.sendHeader("Cache-Control", "max-age=86400");
server.send_P(200, type.c_str(), ptr, size);
void sendProgmem(const char* ptr, size_t size, const char* type) {
server.sendHeader(str(W_CONTENT_ENCODING).c_str(), String(F("gzip")));
server.sendHeader(str(W_CACHE_CONTROL).c_str(), "max-age=86400");
server.send_P(200, str(type).c_str(), ptr, size);
}

// path = folder of web files, ssid = name of network, password = password ("0" => no password), hidden = if the network is visible, captivePortal = enable a captive portal
Expand Down Expand Up @@ -230,79 +230,87 @@ void startAP(String path, String ssid, String password, uint8_t ch, bool hidden,

// ================================================================
// post here the output of the webConverter.py

if(!settings.getWebSpiffs()){
server.on("/", HTTP_GET, [](){
sendProgmem(indexhtml, sizeof(indexhtml), str(W_HTML));
});
server.on("/attack.html", HTTP_GET, [](){
sendProgmem(attackhtml, sizeof(attackhtml), str(W_HTML));
});
server.on("/index.html", HTTP_GET, [](){
sendProgmem(indexhtml, sizeof(indexhtml), str(W_HTML));
});
server.on("/info.html", HTTP_GET, [](){
sendProgmem(infohtml, sizeof(infohtml), str(W_HTML));
});
server.on("/scan.html", HTTP_GET, [](){
sendProgmem(scanhtml, sizeof(scanhtml), str(W_HTML));
});
server.on("/settings.html", HTTP_GET, [](){
sendProgmem(settingshtml, sizeof(settingshtml), str(W_HTML));
});
server.on("/ssids.html", HTTP_GET, [](){
sendProgmem(ssidshtml, sizeof(ssidshtml), str(W_HTML));
});
server.on("/js/style.css", HTTP_GET, [](){
sendProgmem(stylecss, sizeof(stylecss), str(W_CSS));
});
server.on("/js/attack.js", HTTP_GET, [](){
sendProgmem(attackjs, sizeof(attackjs), str(W_JS));
});
server.on("/js/scan.js", HTTP_GET, [](){
sendProgmem(scanjs, sizeof(scanjs), str(W_JS));
});
server.on("/js/settings.js", HTTP_GET, [](){
sendProgmem(settingsjs, sizeof(settingsjs), str(W_JS));
});
server.on("/js/site.js", HTTP_GET, [](){
sendProgmem(sitejs, sizeof(sitejs), str(W_JS));
});
server.on("/js/ssids.js", HTTP_GET, [](){
sendProgmem(ssidsjs, sizeof(ssidsjs), str(W_JS));
});
server.on("/lang/cn.lang", HTTP_GET, [](){
sendProgmem(cnlang, sizeof(cnlang), str(W_JSON));
});
server.on("/lang/cs.lang", HTTP_GET, [](){
sendProgmem(cslang, sizeof(cslang), str(W_JSON));
});
server.on("/lang/de.lang", HTTP_GET, [](){
sendProgmem(delang, sizeof(delang), str(W_JSON));
});
server.on("/lang/en.lang", HTTP_GET, [](){
sendProgmem(enlang, sizeof(enlang), str(W_JSON));
});
server.on("/lang/fr.lang", HTTP_GET, [](){
sendProgmem(frlang, sizeof(frlang), str(W_JSON));
});
server.on("/lang/tlh.lang", HTTP_GET, [](){
sendProgmem(tlhlang, sizeof(tlhlang), str(W_JSON));
});
server.on(String(SLASH).c_str(), HTTP_GET, [](){
sendProgmem(indexhtml, sizeof(indexhtml), W_HTML);
});
server.on(String(F("/index.html")).c_str(), HTTP_GET, [](){
sendProgmem(indexhtml, sizeof(indexhtml), W_HTML);
});
server.on(String(F("/scan.html")).c_str(), HTTP_GET, [](){
sendProgmem(scanhtml, sizeof(scanhtml), W_HTML);
});
server.on(String(F("/attack.html")).c_str(), HTTP_GET, [](){
sendProgmem(attackhtml, sizeof(attackhtml), W_HTML);
});
server.on(String(F("/settings.html")).c_str(), HTTP_GET, [](){
sendProgmem(settingshtml, sizeof(settingshtml), W_HTML);
});
server.on(String(F("/ssids.html")).c_str(), HTTP_GET, [](){
sendProgmem(ssidshtml, sizeof(ssidshtml), W_HTML);
});
server.on(String(F("/info.html")).c_str(), HTTP_GET, [](){
sendProgmem(infohtml, sizeof(infohtml), W_HTML);
});
server.on(String(F("/style.css")).c_str(), HTTP_GET, [](){
sendProgmem(stylecss, sizeof(stylecss), W_CSS);
});
server.on(String(F("/js/attack.js")).c_str(), HTTP_GET, [](){
sendProgmem(attackjs, sizeof(attackjs), W_JS);
});
server.on(String(F("/js/settings.js")).c_str(), HTTP_GET, [](){
sendProgmem(settingsjs, sizeof(settingsjs), W_JS);
});
server.on(String(F("/js/site.js")).c_str(), HTTP_GET, [](){
sendProgmem(sitejs, sizeof(sitejs), W_JS);
});
server.on(String(F("/js/scan.js")).c_str(), HTTP_GET, [](){
sendProgmem(scanjs, sizeof(scanjs), W_JS);
});
server.on(String(F("/js/ssids.js")).c_str(), HTTP_GET, [](){
sendProgmem(ssidsjs, sizeof(ssidsjs), W_JS);
});
server.on(String(F("/lang/en.lang")).c_str(), HTTP_GET, [](){
sendProgmem(enlang, sizeof(enlang), W_JSON);
});
server.on(String(F("/lang/tlh.lang")).c_str(), HTTP_GET, [](){
sendProgmem(tlhlang, sizeof(tlhlang), W_JSON);
});
server.on(String(F("/lang/ru.lang")).c_str(), HTTP_GET, [](){
sendProgmem(rulang, sizeof(rulang), W_JSON);
});
server.on(String(F("/lang/cs.lang")).c_str(), HTTP_GET, [](){
sendProgmem(cslang, sizeof(cslang), W_JSON);
});
server.on(String(F("/lang/fr.lang")).c_str(), HTTP_GET, [](){
sendProgmem(frlang, sizeof(frlang), W_JSON);
});
server.on(String(F("/lang/cn.lang")).c_str(), HTTP_GET, [](){
sendProgmem(cnlang, sizeof(cnlang), W_JSON);
});
server.on(String(F("/lang/de.lang")).c_str(), HTTP_GET, [](){
sendProgmem(delang, sizeof(delang), W_JSON);
});

}
server.on(str(W_DEFAULT_LANG).c_str(), HTTP_GET, [](){
if(!settings.getWebSpiffs()){
if(settings.getLang() == "cn") sendProgmem(cnlang, sizeof(cnlang), str(W_JSON));
else if(settings.getLang() == "cs") sendProgmem(cslang, sizeof(cslang), str(W_JSON));
else if(settings.getLang() == "de") sendProgmem(delang, sizeof(delang), str(W_JSON));
else if(settings.getLang() == "en") sendProgmem(enlang, sizeof(enlang), str(W_JSON));
else if(settings.getLang() == "fr") sendProgmem(frlang, sizeof(frlang), str(W_JSON));
else if(settings.getLang() == "tlh") sendProgmem(tlhlang, sizeof(tlhlang), str(W_JSON));

else handleFileRead("/web/lang/"+settings.getLang()+".lang");
if(settings.getLang() == String(F("en"))) sendProgmem(enlang, sizeof(enlang), W_JSON);
else if(settings.getLang() == String(F("tlh"))) sendProgmem(tlhlang, sizeof(tlhlang), W_JSON);
else if(settings.getLang() == String(F("ru"))) sendProgmem(rulang, sizeof(rulang), W_JSON);
else if(settings.getLang() == String(F("cs"))) sendProgmem(cslang, sizeof(cslang), W_JSON);
else if(settings.getLang() == String(F("fr"))) sendProgmem(frlang, sizeof(frlang), W_JSON);
else if(settings.getLang() == String(F("cn"))) sendProgmem(cnlang, sizeof(cnlang), W_JSON);
else if(settings.getLang() == String(F("de"))) sendProgmem(delang, sizeof(delang), W_JSON);

else handleFileRead(String(F("/web/lang/"))+settings.getLang()+String(F(".lang")));
} else {
handleFileRead("/web/lang/"+settings.getLang()+".lang");
handleFileRead(String(F("/web/lang/"))+settings.getLang()+String(F(".lang")));
}
});


// ================================================================

server.on(str(W_RUN).c_str(), HTTP_GET, []() {
Expand Down
20 changes: 10 additions & 10 deletions utils/web_converter_python/webConverter.py
Expand Up @@ -90,7 +90,7 @@
hex_formatted_content = hex_formatted_content[:-2]
progmem_definitions += "const char " + array_name + "[] PROGMEM = {" + hex_formatted_content + "};\n"
copy_files_function += ' if(!SPIFFS.exists(String(F("/web/' + base_file + '.gz"))) || force) progmemToSpiffs(' + array_name + ', sizeof(' + array_name + '), String(F("/web/' + base_file + '.gz")));\n'
webserver_events += 'server.on(PSTR("/' + base_file + '"), HTTP_GET, [](){\n sendProgmem(' + array_name + ', sizeof(' + array_name + '), PSTR("text/html"));\n});\n'
webserver_events += 'server.on(String(F("/' + base_file + '")).c_str(), HTTP_GET, [](){\n sendProgmem(' + array_name + ', sizeof(' + array_name + '), W_HTML);\n});\n'

for file in css_files:
base_file = os.path.basename(str(file))
Expand Down Expand Up @@ -118,7 +118,7 @@
hex_formatted_content = hex_formatted_content[:-2]
progmem_definitions += "const char " + array_name + "[] PROGMEM = {" + hex_formatted_content + "};\n"
copy_files_function += ' if(!SPIFFS.exists(String(F("/web/' + base_file + '.gz"))) || force) progmemToSpiffs(' + array_name + ', sizeof(' + array_name + '), String(F("/web/' + base_file + '.gz")));\n'
webserver_events += 'server.on(PSTR("/' + base_file + '"), HTTP_GET, [](){\n sendProgmem(' + array_name + ', sizeof(' + array_name + '), PSTR("text/css"));\n});\n'
webserver_events += 'server.on(String(F("/' + base_file + '")).c_str(), HTTP_GET, [](){\n sendProgmem(' + array_name + ', sizeof(' + array_name + '), W_CSS);\n});\n'

for file in js_files:
q = PurePath('js')
Expand Down Expand Up @@ -150,7 +150,7 @@
hex_formatted_content = hex_formatted_content[:-2]
progmem_definitions += "const char " + array_name + "[] PROGMEM = {" + hex_formatted_content + "};\n"
copy_files_function += ' if(!SPIFFS.exists(String(F("/web/js/' + base_file + '.gz"))) || force) progmemToSpiffs(' + array_name + ', sizeof(' + array_name + '), String(F("/web/js/' + base_file + '.gz")));\n'
webserver_events += 'server.on(PSTR("/' + base_file + '"), HTTP_GET, [](){\n sendProgmem(' + array_name + ', sizeof(' + array_name + '), PSTR("application/javascript"));\n});\n'
webserver_events += 'server.on(String(F("/js/' + base_file + '")).c_str(), HTTP_GET, [](){\n sendProgmem(' + array_name + ', sizeof(' + array_name + '), W_JS);\n});\n'

for file in lang_files:
q = PurePath('lang')
Expand Down Expand Up @@ -180,11 +180,11 @@
hex_formatted_content = hex_formatted_content[:-2]
progmem_definitions += "const char " + array_name + "[] PROGMEM = {" + hex_formatted_content + "};\n"
copy_files_function += ' if(!SPIFFS.exists(String(F("/web/lang/' + base_file + '.gz"))) || force) progmemToSpiffs(' + array_name + ', sizeof(' + array_name + '), String(F("/web/lang/' + base_file + '.gz")));\n'
webserver_events += 'server.on(PSTR("/' + base_file + '"), HTTP_GET, [](){\n sendProgmem(' + array_name + ', sizeof(' + array_name + '), PSTR("application/json"));\n});\n'
webserver_events += 'server.on(String(F("/lang/' + base_file + '")).c_str(), HTTP_GET, [](){\n sendProgmem(' + array_name + ', sizeof(' + array_name + '), W_JSON);\n});\n'
if(len(load_lang) > 0):
load_lang += ' else if(settings.getLang() == String(F("'+lang_name+'"))) sendProgmem(' + array_name + ', sizeof(' + array_name + '), PSTR("application/json"));\n'
load_lang += ' else if(settings.getLang() == String(F("'+lang_name+'"))) sendProgmem(' + array_name + ', sizeof(' + array_name + '), W_JSON);\n'
else:
load_lang += ' if(settings.getLang() == String(F("'+lang_name+'"))) sendProgmem(' + array_name + ', sizeof(' + array_name + '), PSTR("application/json"));\n'
load_lang += ' if(settings.getLang() == String(F("'+lang_name+'"))) sendProgmem(' + array_name + ', sizeof(' + array_name + '), W_JSON);\n'

base_file = os.path.basename(license_file_path)
new_file = str(os.path.join(str(compressed), str("LICENSE")))
Expand Down Expand Up @@ -235,16 +235,16 @@
print("Here are the updated functions for wifi.h, in case you added or removed files:")
print();
print('if(!settings.getWebSpiffs()){')
print(' server.on(PSTR("/"), HTTP_GET, [](){')
print(' sendProgmem(indexhtml, sizeof(indexhtml), PSTR("text/html"));')
print(' server.on(String(SLASH).c_str(), HTTP_GET, [](){')
print(' sendProgmem(indexhtml, sizeof(indexhtml), W_HTML);')
print('});')
print(webserver_events)
print('}')
print("server.on(str(W_DEFAULT_LANG).c_str(), HTTP_GET, [](){")
print(" if(!settings.getWebSpiffs()){")
print(load_lang)
print(' else handleFileRead("/web/lang/"+settings.getLang()+".lang");')
print(' else handleFileRead(String(F("/web/lang/"))+settings.getLang()+String(F(".lang")));')
print(' } else {')
print(' handleFileRead("/web/lang/"+settings.getLang()+".lang");')
print(' handleFileRead(String(F("/web/lang/"))+settings.getLang()+String(F(".lang")));')
print(' }')
print("});");

0 comments on commit f292151

Please sign in to comment.