{"action":"created","issue":{"url":"https://api.github.com/repos/trailofbits/algo/issues/1120","repository_url":"https://api.github.com/repos/trailofbits/algo","labels_url":"https://api.github.com/repos/trailofbits/algo/issues/1120/labels{/name}","comments_url":"https://api.github.com/repos/trailofbits/algo/issues/1120/comments","events_url":"https://api.github.com/repos/trailofbits/algo/issues/1120/events","html_url":"https://github.com/trailofbits/algo/pull/1120","id":361275861,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE2Mjg2NzQy","number":1120,"title":"Allow more flexible DNSCrypt configuration","user":{"login":"davidemyers","id":26753976,"node_id":"MDQ6VXNlcjI2NzUzOTc2","avatar_url":"https://avatars2.githubusercontent.com/u/26753976?v=4","gravatar_id":"","url":"https://api.github.com/users/davidemyers","html_url":"https://github.com/davidemyers","followers_url":"https://api.github.com/users/davidemyers/followers","following_url":"https://api.github.com/users/davidemyers/following{/other_user}","gists_url":"https://api.github.com/users/davidemyers/gists{/gist_id}","starred_url":"https://api.github.com/users/davidemyers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidemyers/subscriptions","organizations_url":"https://api.github.com/users/davidemyers/orgs","repos_url":"https://api.github.com/users/davidemyers/repos","events_url":"https://api.github.com/users/davidemyers/events{/privacy}","received_events_url":"https://api.github.com/users/davidemyers/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-09-18T12:18:11Z","updated_at":"2018-09-18T12:33:25Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/trailofbits/algo/pulls/1120","html_url":"https://github.com/trailofbits/algo/pull/1120","diff_url":"https://github.com/trailofbits/algo/pull/1120.diff","patch_url":"https://github.com/trailofbits/algo/pull/1120.patch"},"body":"<!--- Provide a general summary of your changes in the Title above -->\r\n\r\n## Description\r\n<!--- Describe your changes in detail -->\r\nThis PR changes how the encrypted DNS servers are configured in `config.cfg` in order to allow the user to specify any DNSCrypt servers included in the public server list. The servers are now configured the same way that non-encrypted servers are and there is no special code for handling `cloudflare-ipv6`.\r\n\r\nI also changed the location of the `cache_file` for the `public-resolvers` list to eliminate the errors that were occurring when `dnscrypt-proxy` starts.\r\n\r\n## Motivation and Context\r\n<!--- Why is this change required? What problem does it solve? -->\r\n<!--- If it fixes an open issue, please link to the issue here. -->\r\nThe motivation is to allow a user to easily choose [Quad9](https://quad9.net) as a provider once their DNSCrypt support is out of [beta](https://quad9.net/privacy-dnscrypt-testing). In my testing Quad9 works fine, but to use it during beta an addition to `[sources]` in `dnscrypt-proxy.toml` is required as their servers are not yet in the public servers list. This addition is *not* part of this PR.\r\n\r\nIf anyone reading this PR wants to try Quad9 while still in beta, add the following to `[sources]` in `roles/dns_encryption/templates/dnscrypt-proxy.toml.j2`:\r\n```\r\n  [sources.quad9-resolvers]\r\n  urls = [\"https://www.quad9.net/quad9-resolvers.md\"]\r\n  minisign_key = \"RWQBphd2+f6eiAqBsvDZEBXBGHQBJfeG6G+wJPPKxCZMoEQYpmoysKUN\"\r\n  cache_file = \"/run/dnscrypt-proxy/quad9-resolvers.md\"\r\n  refresh_delay = 72\r\n  prefix = \"\"\r\n```\r\n\r\nThen use the following in `config.cfg`:\r\n```\r\ndnscrypt_servers:\r\n  ipv4:\r\n#   - cloudflare\r\n#   - google\r\n    - quad9 dnscrypt ip4-filter-pri\r\n  ipv6:\r\n#   - cloudflare-ipv6\r\n    - quad9 dnscrypt ip6-filter-pri\r\n```\r\n\r\n## How Has This Been Tested?\r\n<!--- Please describe in detail how you tested your changes. -->\r\n<!--- Include details of your testing environment, tests ran to see how -->\r\n<!--- your change affects other areas of the code, etc. -->\r\nI tested the templating code by running Ansible to invoke the `template` module directly. I also deployed several times to DigitalOcean and reviewed the `dnscrypt-proxy` startup logs.\r\n\r\n## Types of changes\r\n<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)\r\n\r\n## Checklist:\r\n<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->\r\n- [x] I have read the **CONTRIBUTING** document.\r\n- [x] My code follows the code style of this project.\r\n- [ ] My change requires a change to the documentation.\r\n- [ ] I have updated the documentation accordingly.\r\n- [ ] I have added tests to cover my changes.\r\n- [ ] All new and existing tests passed.\r\n"},"comment":{"url":"https://api.github.com/repos/trailofbits/algo/issues/comments/422373482","html_url":"https://github.com/trailofbits/algo/pull/1120#issuecomment-422373482","issue_url":"https://api.github.com/repos/trailofbits/algo/issues/1120","id":422373482,"node_id":"MDEyOklzc3VlQ29tbWVudDQyMjM3MzQ4Mg==","user":{"login":"davidemyers","id":26753976,"node_id":"MDQ6VXNlcjI2NzUzOTc2","avatar_url":"https://avatars2.githubusercontent.com/u/26753976?v=4","gravatar_id":"","url":"https://api.github.com/users/davidemyers","html_url":"https://github.com/davidemyers","followers_url":"https://api.github.com/users/davidemyers/followers","following_url":"https://api.github.com/users/davidemyers/following{/other_user}","gists_url":"https://api.github.com/users/davidemyers/gists{/gist_id}","starred_url":"https://api.github.com/users/davidemyers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidemyers/subscriptions","organizations_url":"https://api.github.com/users/davidemyers/orgs","repos_url":"https://api.github.com/users/davidemyers/repos","events_url":"https://api.github.com/users/davidemyers/events{/privacy}","received_events_url":"https://api.github.com/users/davidemyers/received_events","type":"User","site_admin":false},"created_at":"2018-09-18T12:33:25Z","updated_at":"2018-09-18T12:33:25Z","author_association":"CONTRIBUTOR","body":"I was expecting Travis to start upon submission, after which I would edit the PR to check off \"All new and existing tests passed\", but it doesn't look like it has started."}}
{"actor":{"display_login":"davidemyers"}}