Commit graph

83 commits

Author SHA1 Message Date
Adam Warner
ecde222512 [Staging] 3.1 (#1502)
* Fix handling of wildcard help text

* Rewrite help text for better handling of params

* Replace misleading letter variable

* stash changes on branch switch, else it fails if any changes have been made.

* Make changes according to comment in #1384

* Update queryFunc()

* Allow scanList() to search files using a wildcard by removing quotes wrapped around `${list}`
* scanList() will not provide a domain ouput on each string if exact is specified (`grep -l`)
* Remove unused processWildcards() function
* Return a message if no domain is specified
* IDN domains are converted to punycode when running a `pihole -q` search if the `python` package is available, otherwise will revert to current behaviour
* Scan Blacklist & Wildcards first, exiting from search if a match is found (Fixes #1330)
* Use one `grep` subshell to search for all "*.domains" lists at once (opposed to looping to get every matching file name, and then spawning a `grep` instance for every matching file)
* queryFunc() will not return "(0 results)" output from files where no match is found
* Sort results based off list number
* Return a message if no results are found

* Update basic-install.sh

* Update block page. Allow for setupVars setting of CUSTOMBLOCKPAGE (bool) to prevent it being overwritten

* simplify

* further simplify

* fix inteliJ IDEA complaints

* even further simplify

* tidy up output

* revert line, looks tidyer

* clarify

* Revert "Ensure any changes to blocking page are updated."

* We test for dpkg lock on line 830 directly, no need for the check also
in the template section.

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>

* Display FTL version & version.sh rewrite

While testing to make sure `pihole -v` would output `pihole-FTL version`, I noticed some options didn't work how I expected them to. For example, if I use `pihole -v -p`, I would expect to see the version output of Pi-hole Core. Instead, I'm informed that it's an invalid option.

I've had the following things in mind while rewriting this:
  * I'm operating under the assumption that FTL is only installed if the Admin Console is (Line 113 exit 0)
  * I have modified the help text to only output with `pihole -v --help`
  * I have modified all output to be more similar to the output style of `grep` and `curl` (Ditching ":::")

Testing output:
```
w3k@MCT:~$ pihole -v
  Pi-hole version is v3.0.1-14-ga928cd3 (Latest: v3.0.1)
  Admin Console version is v3.0-9-g3760482 (Latest: v3.0.1)
  FTL version is v2.6.2 (Latest: v2.6.2)
w3k@MCT:~$ pihole -v -c
  Current Pi-hole version is v3.0.1-14-ga928cd3
  Current Admin Console version is v3.0-9-g3760482
  Current FTL version is v2.6.2
w3k@MCT:~$ pihole -v -l
  Latest Pi-hole version is v3.0.1
  Latest Admin Console version is v3.0.1
  Latest FTL version is v2.6.2
w3k@MCT:~$ pihole -v -p --hash
  Current Pi-hole hash is a928cd3
w3k@MCT:~$ pihole -v -a --hash
  Current Admin Console hash is 3760482
w3k@MCT:~$ pihole -v --help
Usage: pihole -v [REPO | OPTION] [OPTION]
Show Pi-hole, Web Admin & FTL versions
  <Shows all Repositories and Options>
w3k@MCT:~$ pihole -v -foo
  Invalid Option!
```

* Update -h to work as --hash

Also provide error output as per https://github.com/pi-hole/pi-hole/pull/1447#issuecomment-300600093

* Perform EXACT searches on HOSTS lists correctly

`\s` on the end may be overkill, but it is the existing scanList() behaviour.

* Fixed indentation

* Minimise string duplication & other minor changes

Instead of duplicating output strings, rewrite core/web/ftlOutput() into one neat versionOutput().

* Modified syntax to be valid for Shellcheck

* Log and echo gateway responses

* Update queryFunc() to search Whitelist

If there is a match in Whitelist/Blacklist/Wildcards, `[ ! -t 1 ]` will cause the search to end if the terminal is closed when the script is called. This has the intended effect of allowing a user to search for a W/B/W domain (as well as all the adlists it's found in) using `pihole -q` via Terminal, but the script will stop searching after a W/B/W match when called by the block page.

* Wrap in double brackets

* Provide remote hashes for version.sh

 * Provide remote hashes for comparison
 * Use double braces for all conditions (for consistency)
 * Suppress potential "cd" error output
 * Provide "not applicable" output upon any hash request for FTL

* whitelist on website blocked doesnt work (#1452)

Since Pi-hole redirects ad domains to itself, accessing the script via de.ign.com is the same as pi.hole in this case. The fix should be as simple as adding a / before admin on this line.

* Solve piholeLogFlush.sh having to be issued 2 x to clear logs (#1460)

Simplified the command -v syntax, and added a sleep 3 timer to the first execution of the log rotation. The second execution was being issued while the first was still running, thus it would fail and you would have to issue the "Flush Logs" command a second time.

* Use `echo "ABC" | pihole tricorder` to upload to Pi-hole's medical tricorder. Uses SSL if available.

* Update list.sh

I believe this has feature parity with `sed /foo/ Id` but also supports busybox, and my alpine docker ;)

* Document `sed` substitution for user readability

Comment the oneliner with explanations of what each step does.

* Update Help Output (#1467)



* File consistency

* Tabs to 2 spaces
* Corrected indenting
* Double braced conditionals
* Quoted variables within conditionals

* Standardise core help text

* Added help text for disable command
* Added help text for logging command

* Clean up

* Fixed certain new lines and spaces

* Sync with development branch

* Formatting consistency

* Tabs to 2 spaces
* Corrected indenting
* Double braced conditionals
* Quoted variables within conditionals
* Fixed certain newlines and spaces

* Admin help text

* Added help text for interface command

* Sync with development branch

* Formatting consistency

* Tabs to 2 spaces
* Fixed some wording
* Fixed certain spaces

* Formatting consistency

* Minor wording changes
* Tabs to 2 spaces
* Corrected indenting
* Double braced conditionals
* Quoted variables within conditionals
* Fixed certain newlines and spaces

* Blacklist help text

* Formatting consistency

* Tabs to 2 spaces
* Corrected indenting

* Cronometer help text

* Formatting consistency

* Fixed certain newlines and spaces
* Corrected indenting

* Checkout warning alteration

* Add checkout help text

* Corrected help output

* Show help for "pihole -a -i --help"

* Fix "pihole disable --help" and "pihole -l --help"

* Show help for "pihole -v -h" 

* Indent output text
* Minor help text change

* Show help for "pihole checkout --help"

* Tricorder: Insecure Opt-out

* Check to see if Tricorder is being called directly
* Provide opt-out for insecure transmission of debug log
* Remove mention of internal function from help menu

* 🌮 is the new :shipit: squirrel

* Wording changes and bug fix

* Fix wildcard help text

* -wild is not a valid option since we're already using -wild

* Fix logrotation: manual flushing should be done twice, but automated rotation at midnight should only be done *once*!

* Print echos only when manual flushing is requested

* Add "quiet" mode + update comments in the cron file

* Confirm Tricorder is online

* Scan port 9998 to confirm the availability of "tricorder.pi-hole.net"
* Exit codes for upload process

* Formatting consistency

* Add link to Windows DNS Swapper

See #1400

* Install loopback firewall rules for FTL (#1419)

* Install loopback firewall rules for FTL

* FirewallD FTL ports

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>

* Remove firewallD FTL local rules.

Local rules should not be blocked in firewallD, not requred for internal service FTD>

* Reinstate https rules, and delete FTL rules

Fixes earlier commit.

* Retrieve local repos on repair (#1481)

* Retrieve local repos on repair

* Change conditional to check for repair
* Change wording of Update/Reconfigure message
* Fixed indenting

* Perform "git reset --hard" on reconfigure

* Change directory before trying to reset repository. Fixes #1489

* No need to `cd $PWD` as it doesn't affect flow of caller script.

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>

* Refine output of password status in basic-install.sh:displayFinalMessage(). Fixes #1488 (#1490)

* Rewrite Chronometer to output more stats

* Fix output IPv4 addr when removing CIDR notation (#1498)

* Move wildcards file if blocking is disabled (#1495)

* Move wildcards file if blocking is diabled

* Delete newline

* Roll back merge #1417 (#1494)

* Update ISSUE_TEMPLATE.md

* Remove Question option

* Prefer ULA over GUA addresses [IPv6] (#1508)

* On installs with GUA and ULA's we should prefer ULA's as it's been demonstrated that GUA's can and often are rotated by ISPs. Fixes #1473

* Add test for link-local address detection

* Add ULA-only and GUA-only tests

* Add test_IPv6_GUA_ULA_test and test_IPv6_ULA_GUA_test

* Add ""

* Add mock_command_2 command that can mock a command with more than one argument (as "ip -6 address") and result multiple lines of results

* Make mock_command_2 more similar to the original mock_command

* Correct comments

* Fixed remaining comments

* Fixed one last comment...

* Fixed a comment...

* Add weekly logrotation of FTL's log (#1509)

* Update LICENSE of the project to EUPL v1.2

* Make clear that NO is the default if the user just hits return (#1514)

* Add tricorderFunc back as usable function (#1515)

As per #1464

* Don't update FTL when there is a core update (as this will update FTL a second time). Fixes #1516

* Add FTL tests to the test suite (#1510)

* Add first version of FTL tests

* Wait one second to allow FTL to start up and analyze our mock log

* Add test_FTL_telnet_statistics

* Added test_FTL_telnet_top_clients

* Add test_FTL_telnet_top_domains

* Revert "Add FTL tests to the test suite (#1510)" (#1519)

This reverts commit cf6a1ac9ad.

* Trim version output when update is successful (#1527)

* Change ownership of /etc/pihole to user/group pihole. Fixes #1529 (#1530)

* Delete temporary files after installing the FTL binary. Fixes #1525

* Change from admin to approvers teams

* Introduce new file black.list for blacklist content

* Add "pihole -g -b" to *only* update black.list (saves a bunch of time when adding/changing only blacklisted files - won'tdownload lal lists, but only processes the blacklist and restars dnsmasq)

* Remove useless cat

* Improve displayed messages and overall logic

* Disable black.list on "pihole disable"

* cp + rm === mv (well, almost)
2017-06-20 22:17:41 +01:00
DL6ER
9cc392fa02
Update Marks PR after the Promo code has been merged 2017-05-04 11:43:48 +02:00
Adam Warner
9c136a5579
functionise Hashing 2017-05-02 22:24:37 +01:00
Mcat12
a96b4d28e1 Merge pull request #1365 from pi-hole/adlistImprovements
Adlist improvements
2017-04-06 16:15:50 -04:00
Adam Warner
3cf9942465
spacing fixed 2017-03-31 23:00:56 +01:00
Adam Warner
153031482f
Add delete mode to adlist command. Might be abetter way to do this 2017-03-31 22:51:10 +01:00
Adam Warner
af2cff5177
remove call to user list 2017-03-31 20:13:04 +01:00
Adam Warner
5435b93df2
remove spaces 2017-03-31 20:05:45 +01:00
Adam Warner
3a3dde6298
add adlist argument redirector 2017-03-31 20:03:56 +01:00
Adam Warner
b4bc90fb85
add in CustomizeAdlists function 2017-03-31 19:35:52 +01:00
Patrick O'Brien
a463250ecf don't hash an empty password 2017-03-27 13:37:19 -04:00
Patrick O'Brien
ee296f36c1 mask password input on command line 2017-03-23 18:47:30 -04:00
DL6ER
47a6786e8f
Use proper test syntax 2017-03-06 14:02:56 +01:00
DL6ER
a69fcbb91e
Bugfix for when deleting host-record 2017-03-06 13:44:13 +01:00
DL6ER
baefec86f2
Add CLI teleporter feature 2017-03-05 14:08:44 +01:00
DL6ER
dd971b6ee5
Default behavior is old behavir (listen on gravity interface (e.g. eth0), permit all origins) 2017-03-03 22:58:41 +01:00
DL6ER
7ba47f504c
Add special "except-interface" line in case of listening on all interfaces 2017-03-01 12:15:04 +01:00
DL6ER
0be1717ff4
Fix config error 2017-03-01 11:46:48 +01:00
DL6ER
189a4e0078
Add option to skip restarting of dnsmasq 2017-03-01 11:26:06 +01:00
DL6ER
3adf8785d8
Move "all" down in help text to not suggest that it is the default 2017-03-01 11:07:05 +01:00
DL6ER
b74862bfc5
Actually apply new setting by restarting dnsmasq 2017-03-01 11:02:08 +01:00
DL6ER
01273124ea
Change to -i, interface 2017-03-01 10:59:55 +01:00
DL6ER
721ada7e16
Fix typo 2017-03-01 10:52:21 +01:00
DL6ER
bd9dc91396
Add response for users manually setting this up via CLI 2017-03-01 10:50:13 +01:00
DL6ER
de6c43a8d3
Setup interface listening behavior of dnsmasq 2017-03-01 10:46:20 +01:00
DL6ER
ce6c465942 Merge pull request #1266 from pi-hole/new/host-record
Add host-record option
2017-02-23 17:32:10 +01:00
Jacob Salmela
7a1a2dec67
update license to EUPL on core files 2017-02-22 11:55:20 -06:00
DL6ER
7ed1bbad49
Add host-record option 2017-02-22 14:43:07 +01:00
DL6ER
dad18dc5de
Changed keywords 2017-01-25 10:35:45 +01:00
DL6ER
5c95c4074b
Remove static leases from DHCP static leases file 2017-01-25 10:35:03 +01:00
DL6ER
4301b9a12a
Add static DHCP leases to new file 2017-01-25 10:33:25 +01:00
DL6ER
6a89c6bf3b
Silence rm warning if no DHCP server is used 2017-01-23 15:06:36 +01:00
DL6ER
8bb9dd460b
Be able to disable the DHCP domain name 2017-01-18 12:22:03 +01:00
DL6ER
1ed2a8637f
Removed debug echo's 2017-01-13 23:39:57 +01:00
DL6ER
bd1c5a42e8
Allow multiple DNS servers 2017-01-13 17:49:55 +01:00
DL6ER
b56ca2b834
Add DNSSEC support to Pi-hole core 2017-01-12 16:02:41 +01:00
DL6ER
168397e90d
Fixed typo in webpage.sh 2017-01-05 21:45:06 +01:00
DL6ER
200995bf29
Make IPv6 features of Pi-hole DHCP server switchable 2017-01-03 14:24:33 +01:00
DL6ER
3a90c1c192
Source setupVars.conf before trying to access variables 2017-01-03 13:34:01 +01:00
DL6ER
ad61852804
Test against empty string 2017-01-02 11:10:38 +01:00
DL6ER
dbd8aee4ee
Add 'local' domain if not set in setupVers.conf 2017-01-02 11:08:54 +01:00
DL6ER
677694b01a
Set 24h lease time if settings was empty before 2017-01-02 11:05:40 +01:00
DL6ER
85f0241c0d
Reprocess DHCP settings after update 2017-01-02 10:50:59 +01:00
DL6ER
5c7fc05a32 Enable DHCP logging by default 2016-12-30 16:31:57 +00:00
DL6ER
9181a4a1d8 Apply dhcp lease time also for IPv6 2016-12-29 14:26:23 +00:00
DL6ER
3268e1611a Backend accept and apply dhcp lease time 2016-12-29 14:19:44 +00:00
DL6ER
cf724176dc Do stateful DHCPv6 and SLAAC 2016-12-28 20:02:48 +00:00
DL6ER
1e627c7e8f Make webpage.sh fully library style 2016-12-28 16:25:14 +00:00
DL6ER
9af26cbaac Major simplification of webpage.sh 2016-12-28 02:14:47 +00:00
DL6ER
321ea8a3a9 Merge branch 'development' into webUIprivacymode 2016-12-27 21:27:11 +01:00