From 23bf46ea026b603a6aeb57bf905fda74a1542438 Mon Sep 17 00:00:00 2001 From: Bill Zimmerman Date: Thu, 10 Sep 2020 19:41:36 +0200 Subject: [PATCH 01/13] Update BACKERS.md --- BACKERS.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/BACKERS.md b/BACKERS.md index 62820084..5b88cc6d 100644 --- a/BACKERS.md +++ b/BACKERS.md @@ -14,6 +14,16 @@ Development of RaspAP is made possible thanks to our awesome sponsors. If you us Recurring and one-time donors are vital to the continued development of this project. Join these awesome donors by pledging via [OpenCollective](https://opencollective.com/raspap) or [PayPal](https://paypal.me/billzgithub). +## OpenCollective +Navisense GmbH - $500 +Wechaty - $20 +Pheppy - $10 +Mark H - $10 +Phil K - $10 +T.Paul L - $5 +Wouter D - $20 +Andy N - $20 + ## PayPal Ray E - "This project is awesome and just works; saved me and my client tons of work. Thank you!" - $20 Erin C - "Just got Raspap up and running, looks very cool, thanks!" -$20 CAD From 4b1c5b802c1abb59353922b6f0017886219b4643 Mon Sep 17 00:00:00 2001 From: billz Date: Fri, 11 Sep 2020 19:03:14 +0100 Subject: [PATCH 02/13] =?UTF-8?q?Implement=20beacon=5Fint=20+=20disassoc?= =?UTF-8?q?=5Flow=5Fack=20hostapd=20options.=20Addresses=20#666?= =?UTF-8?q?=F0=9F=98=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- includes/hostapd.php | 27 +++++++++++++++++++++++---- templates/hostapd/advanced.php | 21 +++++++++++++++++++++ 2 files changed, 44 insertions(+), 4 deletions(-) diff --git a/includes/hostapd.php b/includes/hostapd.php index bc2ce48a..fd0a89c4 100755 --- a/includes/hostapd.php +++ b/includes/hostapd.php @@ -77,7 +77,14 @@ function DisplayHostAPDConfig() $arrConfig[$arrLine[0]]=$arrLine[1]; } }; - + // assign beacon_int boolean if value is set + if (isset($arrConfig['beacon_int'])) { + $arrConfig['beacon_interval_bool'] = 1; + } + // assign disassoc_low_ack boolean if value is set + if (isset($arrConfig['disassoc_low_ack'])) { + $arrConfig['disassoc_low_ack_bool'] = 1; + } // assign country_code from iw reg if not set in config if (!isset($arrConfig['country_code']) && isset($country_code[0])) { $arrConfig['country_code'] = $country_code[0]; @@ -213,12 +220,19 @@ function SaveHostAPDConfig($wpa_array, $enc_types, $modes, $interfaces, $status) $status->addMessage('Unknown interface '.htmlspecialchars($_POST['interface'], ENT_QUOTES), 'danger'); $good_input = false; } - if (strlen($_POST['country_code']) !== 0 && strlen($_POST['country_code']) != 2) { $status->addMessage('Country code must be blank or two characters', 'danger'); $good_input = false; } - + if (isset($_POST['beaconintervalEnable'])) { + if (!is_numeric($_POST['beacon_interval'])) { + $status->addMessage('Beacon interval must be a numeric value', 'danger'); + $good_input = false; + } elseif ($_POST['beacon_interval'] < 15 || $_POST['beacon_interval'] > 65535) { + $status->addMessage('Beacon interval must be between 15 and 65535', 'danger'); + $good_input = false; + } + } $_POST['max_num_sta'] = (int) $_POST['max_num_sta']; $_POST['max_num_sta'] = $_POST['max_num_sta'] > 2007 ? 2007 : $_POST['max_num_sta']; $_POST['max_num_sta'] = $_POST['max_num_sta'] < 1 ? null : $_POST['max_num_sta']; @@ -231,7 +245,12 @@ function SaveHostAPDConfig($wpa_array, $enc_types, $modes, $interfaces, $status) $config.= 'ctrl_interface_group=0'.PHP_EOL; $config.= 'auth_algs=1'.PHP_EOL; $config.= 'wpa_key_mgmt=WPA-PSK'.PHP_EOL; - $config.= 'beacon_int=100'.PHP_EOL; + if (isset($_POST['beaconintervalEnable'])) { + $config.= 'beacon_int='.$_POST['beacon_interval'].PHP_EOL; + } + if (isset($_POST['disassoc_low_ackEnable'])) { + $config.= 'disassoc_low_ack=0'.PHP_EOL; + } $config.= 'ssid='.$_POST['ssid'].PHP_EOL; $config.= 'channel='.$_POST['channel'].PHP_EOL; if ($_POST['hw_mode'] === 'n') { diff --git a/templates/hostapd/advanced.php b/templates/hostapd/advanced.php index 1b0c94d5..d275458a 100644 --- a/templates/hostapd/advanced.php +++ b/templates/hostapd/advanced.php @@ -37,6 +37,27 @@ +
+
+
+ + /> + +
+
+
+ +
+
+
+
+
+ + /> + +
+
+
From b898230823222ff667a0066e3e71e8deda7aad1e Mon Sep 17 00:00:00 2001 From: billz Date: Fri, 11 Sep 2020 20:33:18 +0100 Subject: [PATCH 03/13] Update messages + compile .po --- locale/en_US/LC_MESSAGES/messages.mo | Bin 15213 -> 15605 bytes locale/en_US/LC_MESSAGES/messages.po | 6 ++++++ 2 files changed, 6 insertions(+) diff --git a/locale/en_US/LC_MESSAGES/messages.mo b/locale/en_US/LC_MESSAGES/messages.mo index 6bb8ff091bd8c29c6b1f9eb52a8e4c47d04fd1db..9e94d89e4b8a8bc49aa6148fa1d58e38f9980da9 100644 GIT binary patch literal 15605 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

-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 Axc~qF literal 15213 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 G8vhq{)8IA$ diff --git a/locale/en_US/LC_MESSAGES/messages.po b/locale/en_US/LC_MESSAGES/messages.po index 39a7dd54..089b2cb3 100644 --- a/locale/en_US/LC_MESSAGES/messages.po +++ b/locale/en_US/LC_MESSAGES/messages.po @@ -447,6 +447,12 @@ msgstr "Maximum number of clients" msgid "Configures the max_num_sta option of hostapd. The default and maximum is 2007. If empty or 0, the default applies." msgstr "Configures the max_num_sta option of hostapd. The default and maximum is 2007. If empty or 0, the default applies." +msgid "Beacon interval" +msgstr "Beacon interval" + +msgid "Disable disassoc_low_ack" +msgstr "Disable disassoc_low_ack" + #: includes/networking.php msgid "Summary" msgstr "Summary" From 18e21ad3e7c7864cf38b60e44ea9c4bb959d5e6e Mon Sep 17 00:00:00 2001 From: billz Date: Sat, 12 Sep 2020 13:02:37 +0100 Subject: [PATCH 04/13] Added disassoc_low_ack help text --- locale/en_US/LC_MESSAGES/messages.mo | Bin 15605 -> 15763 bytes locale/en_US/LC_MESSAGES/messages.po | 3 +++ templates/hostapd/advanced.php | 3 +++ 3 files changed, 6 insertions(+) diff --git a/locale/en_US/LC_MESSAGES/messages.mo b/locale/en_US/LC_MESSAGES/messages.mo index 9e94d89e4b8a8bc49aa6148fa1d58e38f9980da9..f7562e1c0610dd071eafea1040ac084f7ea5d220 100644 GIT binary patch literal 15763 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 pq@&+SN57M%-$t`eWe(R?yQpbtL@pMzuI zn{Yh*5bg;_?dv!P!oA^0*aZ3K%;x9Qunp3*bVD? z+I`mY1E}Xe#m@vd$+89NxznJYTL*W8U$*6&poX*=N{<_$^uNuPZ-E`;pMuisP#O`Z zLyh-HsOMUs^l5`sbv(ESJR6RN=R?`!QmFo}g3{v_ScZ2%jd#-iX}d>5wY%8n+u;oI zr^3D91yJp6hO*DKQ2pEk)$T*K{4pp!Ua|Lo4>6VVA(S4Y4{)5_;RMJ(XCgmGz+<7t z>B4DnE!4O!gR;-f@H6lMXyD6G`u`7= zIHPek^>ZjZ1Rev`&nZxPu7?`Wxo}sw39A0Zw){GqzZFW)N1(>>JT&lCC_P3VoVK?o zls(2n&F2)$IdBsBg;09^l%1Yn4{7BD}q1rzK$}R&?^K~AS z-d8}`;RjH5*#h^5PeJMZCR97`+5DfOo*Ri$dTs*Lyw8Bre=d|Bt@i#IQ0sQPoD^gj-2oF`fKLiN7^ zj)fOOwX+#Y-|OHE_!Fph-i7M-KcVJv?8G#F7$`jthZ;u{lph=mrN{Bmz&5Do)#?iVnb51W6}=HG>~>n?|;_s2u&F$qqA)1k)M z4W(BP)O@Y8* z8EQN~f_nZ*NLA-|_WtgZ(*E~{8rLCEemc#Te->(dOQ1s73OEa{g^EvCLCwQmP~&_U zs=p_o{P+#X6geX%^DI0ZDj!2V_bn*9UJpmXyWpZZL1l*FxE82uhDl zQ2JkL%ddqU%Y{B~W@^ z4>gW^p@CbV?D{%Xd+$Km;{!Mb?lCLnevqZ*90u8foD(hAT3!fw#QDC>zXUb^e}U3> z|JkXYbD`RAfwIeLsQK!J(t86O2fqPjmuunP@J=YbAB7t46E^=M)N`*xJ@*mRypKIH z)q8&^J&u67-vZTc7gYZ_nE0XPIZ*R{Ayhlp+VWeW>~tSge_QPR7ohC)2Gly+3Z>`R zIcfd<;NIjv1NVWmEKh*y|1>xju7hf42uk1cq5S(hQ2jm*)$g-#JbV`_evCLO)pIwf zaqI=<2M0mvF%cR#4eGgNQ1g5`)c8CoJxXvdcrH|bmq4wX&G!D)P|w{0HJ&?d{!yEM z9Llb*+587kdW@Qz?#E-G#yJN{uSHPvvD}uQ4yTeY*z(Jv^tu5`pSz*-e*jAFC!zZL z4OBmWgcIRbsP^|cI<@D)Q2k7U>VH0z|D0&^-IhI2_A5b+?`)`gmq0y#1=RC5L-l_z z)OFXSu`stofu| z3}?Y*@YC=dsCl>?YMkGL>hE@VAbbRB|9us%fV<64^Q)kqTMuQ|uR_`5a;W*d8mj&8 zTHa^NpMo0yb5QkPwfqCre!LZqfVU#QMRbKJobSMEk=t$lOYk0Kz~(2xUm#PFSCG#m zy7o_ztcS!#~TFJdoMs1AwNcR-Gy`^4ahaf8Auy2Kg?MU2l{4hRqz26~cQF%vZgRCncNy z0674eh-gmMBD$s^s}RMtmyrtcK5{vt>r&)=gsD%iukqW0{2TIBWF_(%QbvA-=z1M_ zHA%4-z&nt4ZC=<9ISsiIxe9p^k>Bh31F{kMXM`~9oP->RT#V>C43RJEdJ36_oPzuY z@sZCV{YZAbNn#Un8xkY`j?6}Wis*U}`DBu+{rs+$O#FTc`JW({A$epSqU-OG?j*$; zfNb;5a+?+kXDs3NC|lw(e*fTFfsu-6B$I#LH0maBf7>R=O(E%{ugcfd3csh z3lAgvA~zwoAY+k#K;A=i1<2naW032R8<9tmWyqokQ0%|knDPbL=O3pE%-9r ziX5W+{3tGmLEnOoF!tunZ?ZYFdU2<5b2%@HOeyq(I5KXj-7&1|%R0_+KghAltVn66Jai}&O>bJW&(~{4ZY1?V(2`jN} z$Z4VGfM;5lF6uM|&y76p=gq=Gm|I5+q}@{Nl}%e`_PFWtVl}RMd5MW)H}-RNO(dn2 z62tP`qG|2uGLcsv@X9JrHOLqJz?9r58Vt*MQz_-$*i&NzZjh@>@Lbkc0WAV*CCzo& z=1L`vyILoXy<#aFI9g$h?iDMYmX9g#596p5#vgkx#L@$$V268Q>0_ItcxSC~tJ+v4 z?q{C-9JUH+dz)-+3=7@J&pF9&U7_bPsRoZ=+-|{H=*MMD;Uu$E@T0h{YT3{Cd3nQ> z7sEVNw#^$qGG5^J6uf++SrV4b(lCkxx9Ax+$TP_^Xvs4}VWn)!IEh!Dj1St$>hl_% zMV+h6^3csEiEgazEb4cIKF@UbdqpqF1YQA#VMLpzM}CxOSSp7DejXpF-s`7pG_|g= zsNiEB)7I+P)bg+|OR9k^U7hVkVIicoFzEIBDtMK_zNYA|UlUY{YnXg2FH4)Sm+2v2 zV#H`^@?Ni7Da6TusqPmmMOkH5bMxFr)7ER`LPG}AG|xzytk%cbd@sTV>H0$TR&T&( zwbqq%hss1@0b7KXATAG?MVf{zlOtn_6=tl*!#HlRPCdngp~>~TWjBY#X)ayTwMk7D zr}g^p5oXFRiBNrl0w+mr#@|kxF21tclo_qEoRWg zcWr2<-T6HWl2(#nRrb!TcoD(8m#KF15pKmyE4n5=7~;2OGvJrwid!&!Zn=kPncvj2 zpfQcYa()(J+2fw7;&;8}u!t8GV!u@IX0T-_gfrh7evD{Uv4nBWqzAVWV;O}W?3tNk zhRG4`sX8MWO3^=yrxXMfHWXd*hQ;HWeBwzxge6@6uQ5R6(U@XCqc5{?WN$6e)OVxm z)YDOqho2a4eXdZ6l9AZq4^GR7p;(#h>@SB5Is;%sH8 zNM=bMQDUcyWU1X3m*PJxz7*RBlD5u)BTcrKlR2uE32<`x8opyAKGQp7nxdhoDaUe* zngTC&+ICXSuJxVXck{`z+Ub28=y!VGFC{MS4<<;K5sGnY*y$75_PsNWiI+Qlb|Aoc zG*}{JubcB~DO1;6U1^7=s9HUZP7&)isw;F09IEoHjBqfhE5-+QEUA>z8koF#D&*{u z^q_OZGS4fu6j*W2ayIdbwu3B@Ij4!-0S;u_7e~%=ofS>D7Rz#X>VCnb*=gnY`fjJ+3I@; zo^0{CK`-aNepuj$lKf_FtDD6T$6o320!6&6pVgIKlyd`arLn#Kbtfy! z4)iNg$t-FyIjKM*`J6Kg zWGvVAnoWyVi)gN&;=t+(BV&3(Ohwsq=mn!;e(d(bN_Nurd^rIEBNX5X&q zK_*qBZZ}V=)Rf?k)uFa(ovykgYI;WCxKJI&wl_mw;_Gh~i*6YYNH?AorhY@PMJtm9 zp)q%agA;9iBZDWexUFme=^X~J{o=Jn*}_$p?Rfo=(=C^%IbC<%QP$1pBYS?AyEVwm z?7=

-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 Axc~qF diff --git a/locale/en_US/LC_MESSAGES/messages.po b/locale/en_US/LC_MESSAGES/messages.po index 089b2cb3..7a4a937a 100644 --- a/locale/en_US/LC_MESSAGES/messages.po +++ b/locale/en_US/LC_MESSAGES/messages.po @@ -453,6 +453,9 @@ msgstr "Beacon interval" msgid "Disable disassoc_low_ack" msgstr "Disable disassoc_low_ack" +msgid "Do not disassociate stations based on excessive transmission failures." +msgstr "Do not disassociate stations based on excessive transmission failures." + #: includes/networking.php msgid "Summary" msgstr "Summary" diff --git a/templates/hostapd/advanced.php b/templates/hostapd/advanced.php index d275458a..0ee47899 100644 --- a/templates/hostapd/advanced.php +++ b/templates/hostapd/advanced.php @@ -56,6 +56,9 @@ />

+

+ +

From 5189853c19435a7e70cf7a9cfe756f5f0c7ae260 Mon Sep 17 00:00:00 2001 From: billz Date: Sat, 19 Sep 2020 22:24:15 +0100 Subject: [PATCH 05/13] Added validate_host() --- includes/functions.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/includes/functions.php b/includes/functions.php index 4d299314..1304d61f 100755 --- a/includes/functions.php +++ b/includes/functions.php @@ -452,3 +452,8 @@ function getBridgedState() return $arrHostapdConf['BridgedEnable']; } +// Validates a host or FQDN +function validate_host($host) { + return preg_match('/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i', $host); +} + From b533b7ab985c1dff0bccaca9145006e48408c904 Mon Sep 17 00:00:00 2001 From: billz Date: Sat, 19 Sep 2020 22:24:58 +0100 Subject: [PATCH 06/13] Update cp dnsmasq_custom --- installers/raspap.sudoers | 1 + 1 file changed, 1 insertion(+) diff --git a/installers/raspap.sudoers b/installers/raspap.sudoers index 4d40eaa9..ae42393c 100644 --- a/installers/raspap.sudoers +++ b/installers/raspap.sudoers @@ -36,5 +36,6 @@ www-data ALL=(ALL) NOPASSWD:/etc/raspap/openvpn/configauth.sh www-data ALL=(ALL) NOPASSWD:/bin/chmod o+r /tmp/hostapd.log www-data ALL=(ALL) NOPASSWD:/bin/chmod o+r /tmp/dnsmasq.log www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/dnsmasqdata /etc/dnsmasq.d/090_adblock.conf +www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/dnsmasq_custom /etc/raspap/adblock/custom.txt www-data ALL=(ALL) NOPASSWD:/etc/raspap/adblock/update_blocklist.sh From 3644109cec313cf6344bb5221da122497e156680 Mon Sep 17 00:00:00 2001 From: billz Date: Sat, 19 Sep 2020 22:26:52 +0100 Subject: [PATCH 07/13] Validate/handle custom hosts input --- includes/adblock.php | 39 +++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/includes/adblock.php b/includes/adblock.php index 64bfdc84..be61549e 100755 --- a/includes/adblock.php +++ b/includes/adblock.php @@ -11,6 +11,7 @@ function DisplayAdBlockConfig() { $status = new StatusMessages(); $enabled = false; + $custom_enabled = false; if (!RASPI_MONITOR_ENABLED) { if (isset($_POST['saveadblocksettings'])) { @@ -20,13 +21,38 @@ function DisplayAdBlockConfig() } elseif ($_POST['adblock-enable'] == "0") { $config = null; } - file_put_contents("/tmp/dnsmasqdata", $config); - system('sudo cp /tmp/dnsmasqdata '.RASPI_ADBLOCK_CONFIG, $return); + if ($_POST['adblock-custom-enable'] == "1") { + // validate custom hosts input + $lines = preg_split('/\r\n|\n|\r/', trim($_POST['adblock-custom-hosts'])); + foreach ($lines as $line) { + $ip_host = preg_split('/\s+/', $line); + $index++; + //echo $host[1] . '
'; + if (!filter_var($ip_host[0], FILTER_VALIDATE_IP)) { + $errors .= _('Invalid custom IP address found on line '.$index); + break; + } + if (!validate_host($ip_host[1])) { + $errors .= _('Invalid custom host found on line '.$index); + break; + } + } + file_put_contents("/tmp/dnsmasq_custom", $_POST['adblock-custom-hosts']); + system("sudo cp /tmp/dnsmasq_custom " .RASPI_ADBLOCK_LISTPATH .'custom.txt', $return); + $config.= 'addn-hosts=' .RASPI_ADBLOCK_LISTPATH .'custom.txt'.PHP_EOL; + $custom_enabled = true; + } - if ($return == 0) { - $status->addMessage('Adblock configuration updated successfully', 'success'); + if (empty($errors)) { + file_put_contents("/tmp/dnsmasqdata", $config); + system('sudo cp /tmp/dnsmasqdata '.RASPI_ADBLOCK_CONFIG, $return); + if ($return == 0) { + $status->addMessage('Adblock configuration updated successfully', 'success'); + } else { + $status->addMessage('Adblock configuration failed to be updated.', 'danger'); + } } else { - $status->addMessage('Adblock configuration failed to be updated.', 'danger'); + $status->addMessage($errors, 'danger'); } } elseif (isset($_POST['restartadblock']) || isset($_POST['startadblock'])) { exec('sudo /bin/systemctl restart dnsmasq.service', $dnsmasq, $return); @@ -53,7 +79,8 @@ function DisplayAdBlockConfig() "status", "serviceStatus", "dnsmasq_state", - "enabled" + "enabled", + "custom_enabled" ) ); } From 656e5d83ad6d6e0287f8cef18485869985b0b8fd Mon Sep 17 00:00:00 2001 From: billz Date: Sat, 19 Sep 2020 22:27:32 +0100 Subject: [PATCH 08/13] Template updates for custom blocklists --- templates/adblock.php | 4 +++- templates/adblock/custom.php | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 templates/adblock/custom.php diff --git a/templates/adblock.php b/templates/adblock.php index 34ad4ebe..103620e2 100755 --- a/templates/adblock.php +++ b/templates/adblock.php @@ -31,7 +31,8 @@ @@ -39,6 +40,7 @@
+
diff --git a/templates/adblock/custom.php b/templates/adblock/custom.php new file mode 100644 index 00000000..8701cdb0 --- /dev/null +++ b/templates/adblock/custom.php @@ -0,0 +1,33 @@ + +
+

+
+
+
+ +
+ aria-describedby="adblock-description"> + +
+
+

+ + IPv4 example: 0.0.0.0 badhost.com") ?> +

+ addn-hosts directive to the dnsmasq configuration.") ?> +
+

+
+
+
+
+ '.htmlspecialchars($adblock_custom, ENT_QUOTES).''; + ?> +
+
+
From 5a62436d84cc2c3b2a472a35cad979f44b66a660 Mon Sep 17 00:00:00 2001 From: billz Date: Sat, 19 Sep 2020 22:50:33 +0100 Subject: [PATCH 09/13] Update en_US messages, compile .mo --- locale/en_US/LC_MESSAGES/messages.mo | Bin 15763 -> 16673 bytes locale/en_US/LC_MESSAGES/messages.po | 21 +++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/locale/en_US/LC_MESSAGES/messages.mo b/locale/en_US/LC_MESSAGES/messages.mo index f7562e1c0610dd071eafea1040ac084f7ea5d220..54e887d87808db6009bd27ec62bd42a2fef903c1 100644 GIT binary patch literal 16673 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 pq@&+SN57M%-$t`IPv4 example: 0.0.0.0 badhost.com" +msgstr "IPv4 example: 0.0.0.0 badhost.com" + +msgid "This option adds an addn-hosts directive to the dnsmasq configuration." +msgstr "This option adds an addn-hosts directive to the dnsmasq configuration." + +msgid "Custom blocklist not defined" +msgstr "Custom blocklist not defined" + +msgid "Invalid custom IP address found on line " +msgstr "Invalid custom IP address found on line " + +msgid "Invalid custom host found on line " +msgstr "Invalid custom host found on line " + From 9b02fc5b2770bfdc6762ff89e3be34dc1eb2e9ca Mon Sep 17 00:00:00 2001 From: billz Date: Sun, 20 Sep 2020 07:38:21 +0100 Subject: [PATCH 10/13] Remove debug output --- includes/adblock.php | 1 - 1 file changed, 1 deletion(-) diff --git a/includes/adblock.php b/includes/adblock.php index be61549e..ead21f0f 100755 --- a/includes/adblock.php +++ b/includes/adblock.php @@ -27,7 +27,6 @@ function DisplayAdBlockConfig() foreach ($lines as $line) { $ip_host = preg_split('/\s+/', $line); $index++; - //echo $host[1] . '
'; if (!filter_var($ip_host[0], FILTER_VALIDATE_IP)) { $errors .= _('Invalid custom IP address found on line '.$index); break; From 3c5737224eeb4fa409b0eac9845993283ddffdef Mon Sep 17 00:00:00 2001 From: billz Date: Sun, 20 Sep 2020 09:42:13 +0100 Subject: [PATCH 11/13] Check for empty strings --- includes/adblock.php | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/includes/adblock.php b/includes/adblock.php index ead21f0f..74f94e51 100755 --- a/includes/adblock.php +++ b/includes/adblock.php @@ -24,19 +24,21 @@ function DisplayAdBlockConfig() if ($_POST['adblock-custom-enable'] == "1") { // validate custom hosts input $lines = preg_split('/\r\n|\n|\r/', trim($_POST['adblock-custom-hosts'])); - foreach ($lines as $line) { - $ip_host = preg_split('/\s+/', $line); - $index++; - if (!filter_var($ip_host[0], FILTER_VALIDATE_IP)) { - $errors .= _('Invalid custom IP address found on line '.$index); - break; - } - if (!validate_host($ip_host[1])) { - $errors .= _('Invalid custom host found on line '.$index); - break; + if (!in_array("", $lines, true)) { + foreach ($lines as $line) { + $ip_host = preg_split('/\s+/', $line); + $index++; + if (!filter_var($ip_host[0], FILTER_VALIDATE_IP)) { + $errors .= _('Invalid custom IP address found on line '.$index); + break; + } + if (!validate_host($ip_host[1])) { + $errors .= _('Invalid custom host found on line '.$index); + break; + } } } - file_put_contents("/tmp/dnsmasq_custom", $_POST['adblock-custom-hosts']); + file_put_contents("/tmp/dnsmasq_custom", $_POST['adblock-custom-hosts'].PHP_EOL); system("sudo cp /tmp/dnsmasq_custom " .RASPI_ADBLOCK_LISTPATH .'custom.txt', $return); $config.= 'addn-hosts=' .RASPI_ADBLOCK_LISTPATH .'custom.txt'.PHP_EOL; $custom_enabled = true; From d437eac1dfd5e566dfb234fc155d4df58f2dfe2d Mon Sep 17 00:00:00 2001 From: DArcy Rush Date: Sun, 20 Sep 2020 11:11:55 +0200 Subject: [PATCH 12/13] Update README Adblock wiki link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e6f65833..f2a8fe5a 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ Please [read this](https://github.com/billz/raspap-webgui/wiki/Reporting-issues) ## Ad Blocking This feature uses DNS blacklisting to block requests for ads, trackers and other undesirable hosts. To enable ad blocking, simply respond to the prompt during the installation. As a beta release, we encourage testing and feedback from users of RaspAP. -Details are [provided here](https://github.com/billz/raspap-webgui/wiki/Ad-blocking-(Beta)). +Details are [provided here](https://github.com/billz/raspap-webgui/wiki/Ad-blocking). ## Bridged AP By default RaspAP configures a routed AP for your clients to connect to. A bridged AP configuration is also possible. Slide the **Bridged AP mode** toggle under the **Advanced** tab of **Configure hotspot**, then save and restart the hotspot. From 2108d5b79f060c787ca76d90e56ae236a582f7e0 Mon Sep 17 00:00:00 2001 From: Robert Duncan <46305753+RobertDuncan42@users.noreply.github.com> Date: Tue, 22 Sep 2020 11:25:24 -0400 Subject: [PATCH 13/13] Update dashboard.php --- includes/dashboard.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/dashboard.php b/includes/dashboard.php index 60c3aa83..c4c0ded5 100755 --- a/includes/dashboard.php +++ b/includes/dashboard.php @@ -90,7 +90,7 @@ function DisplayDashboard(&$extraFooterScripts) define('SSIDMAXLEN', 32); // Warning iw comes with: "Do NOT screenscrape this tool, we don't consider its output stable." exec('iw dev ' .$_SESSION['wifi_client_interface']. ' link ', $stdoutIw); - $stdoutIwAllLinesGlued = implode(' ', $stdoutIw); + $stdoutIwAllLinesGlued = implode('+', $stdoutIw); // Break lines with character illegal in SSID and MAC addr $stdoutIwWRepSpaces = preg_replace('/\s\s+/', ' ', $stdoutIwAllLinesGlued); preg_match('/Connected to (([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2}))/', $stdoutIwWRepSpaces, $matchesBSSID) || $matchesBSSID[1] = ''; @@ -102,7 +102,7 @@ function DisplayDashboard(&$extraFooterScripts) $wlanHasLink = true; } - if (!preg_match('/SSID: ([^ ]{1,'.SSIDMAXLEN.'})/', $stdoutIwWRepSpaces, $matchesSSID)) { + if (!preg_match('/SSID: ([^+]{1,'.SSIDMAXLEN.'})/', $stdoutIwWRepSpaces, $matchesSSID)) { $wlanHasLink = false; $matchesSSID[1] = 'None'; }