import type { FunctionalComponent } from 'preact';
import { h } from 'preact';
import './LanguageSelect.css';

const LanguageSelect: FunctionalComponent<{ lang: string }> = ({ lang }) => {
  return (
    <div class="language-select-wrapper">
      <svg
        aria-hidden="true"
        focusable="false"
        role="img"
        xmlns="http://www.w3.org/2000/svg"
        viewBox="0 0 88.6 77.3"
        height="1.2em"
        width="1.2em"
      >
        <path
          fill="currentColor"
          d="M61,24.6h7.9l18.7,51.6h-7.7l-5.4-15.5H54.3l-5.6,15.5h-7.2L61,24.6z M72.6,55l-8-22.8L56.3,55H72.6z"
        />
        <path
          fill="currentColor"
          d="M53.6,60.6c-10-4-16-9-22-14c0,0,1.3,1.3,0,0c-6,5-20,13-20,13l-4-6c8-5,10-6,19-13c-2.1-1.9-12-13-13-19h8          c4,9,10,14,10,14c10-8,10-19,10-19h8c0,0-1,13-12,24l0,0c5,5,10,9,19,13L53.6,60.6z M1.6,16.6h56v-8h-23v-7h-9v7h-24V16.6z"
        />
      </svg>
      <select
        class="language-select"
        value={lang}
        onChange={(e) => {
          const newLang = e.target.value;
          if (newLang === 'en') {
            window.location.pathname = `/getting-started`;
          } else {
            window.location.pathname = `/${newLang}/getting-started`;
          }
          // TODO: Preserve the current page, if it exists:
          // const oldPathname = window.location.pathname;
          // const oldPathnameParts = oldPathname.split('/');
          // oldPathnameParts.shift();
          // if (/^[a-z]{2}$/.test(oldPathnameParts[0])) {
          //   oldPathnameParts.shift();
          // }
          // if (newLang !== 'en') {
          //   oldPathnameParts.unshift(newLang);
          // }
          // window.location.pathname = '/' + oldPathnameParts.join('/');
        }}
      >
        <option value="en">
          <span>English</span>
        </option>
        <option value="de">
          <span>Deutsch</span>
        </option>
        <option value="nl">
          <span>Nederlands</span>
        </option>
        <option value="fi">
          <span>Suomi</span>
        </option>
        <option value="es">
          <span>Español</span>
        </option>
        <option value="zh-CN">
          <span>简体中文</span>
        </option>
        <option value="zh-TW">
          <span>繁体中文</span>
        </option>
      </select>
    </div>
  );
};

export default LanguageSelect;
'>torrent</option>
<option value='traffic'>traffic</option>
</select> <input type='submit' value='switch'/></form></td></tr>
<tr><td class='sub'>Unnamed repository; edit this file 'description' to name the repository.</td><td class='sub right'></td></tr></table>
<table class='tabs'><tr><td>
<a href='/ansg191/coredns/about/'>about</a><a href='/ansg191/coredns/'>summary</a><a href='/ansg191/coredns/refs/?id=6fcb2dda77f54af3c38ef95d4a85e3abf6e75ccc'>refs</a><a class='active' href='/ansg191/coredns/log/vendor/golang.org/x/net/CONTRIBUTORS?showmsg=1&amp;follow=1'>log</a><a href='/ansg191/coredns/tree/vendor/golang.org/x/net/CONTRIBUTORS?id=6fcb2dda77f54af3c38ef95d4a85e3abf6e75ccc'>tree</a><a href='/ansg191/coredns/commit/vendor/golang.org/x/net/CONTRIBUTORS?id=6fcb2dda77f54af3c38ef95d4a85e3abf6e75ccc&amp;follow=1'>commit</a><a href='/ansg191/coredns/diff/vendor/golang.org/x/net/CONTRIBUTORS?id=6fcb2dda77f54af3c38ef95d4a85e3abf6e75ccc&amp;follow=1'>diff</a></td><td class='form'><form class='right' method='get' action='/ansg191/coredns/log/vendor/golang.org/x/net/CONTRIBUTORS'>
<input type='hidden' name='id' value='6fcb2dda77f54af3c38ef95d4a85e3abf6e75ccc'/><input type='hidden' name='showmsg' value='1'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/ansg191/coredns/log/?id=6fcb2dda77f54af3c38ef95d4a85e3abf6e75ccc&amp;showmsg=1&amp;follow=1'>root</a>/<a href='/ansg191/coredns/log/vendor?id=6fcb2dda77f54af3c38ef95d4a85e3abf6e75ccc&amp;showmsg=1&amp;follow=1'>vendor</a>/<a href='/ansg191/coredns/log/vendor/golang.org?id=6fcb2dda77f54af3c38ef95d4a85e3abf6e75ccc&amp;showmsg=1&amp;follow=1'>golang.org</a>/<a href='/ansg191/coredns/log/vendor/golang.org/x?id=6fcb2dda77f54af3c38ef95d4a85e3abf6e75ccc&amp;showmsg=1&amp;follow=1'>x</a>/<a href='/ansg191/coredns/log/vendor/golang.org/x/net?id=6fcb2dda77f54af3c38ef95d4a85e3abf6e75ccc&amp;showmsg=1&amp;follow=1'>net</a>/<a href='/ansg191/coredns/log/vendor/golang.org/x/net/CONTRIBUTORS?id=6fcb2dda77f54af3c38ef95d4a85e3abf6e75ccc&amp;showmsg=1&amp;follow=1'>CONTRIBUTORS</a> (<a href='/ansg191/coredns/log/vendor/golang.org/x/net/CONTRIBUTORS?id=6fcb2dda77f54af3c38ef95d4a85e3abf6e75ccc&amp;showmsg=1'>unfollow</a>)</div><div class='content'><table class='list nowrap'><tr class='nohover'><th class='left'>Age</th><th class='left'>Commit message (<a href='/ansg191/coredns/log/vendor/golang.org/x/net/CONTRIBUTORS?id=6fcb2dda77f54af3c38ef95d4a85e3abf6e75ccc&amp;follow=1'>Collapse</a>)</th><th class='left'>Author</th><th class='left'>Files</th><th class='left'>Lines</th></tr>
<tr class='logheader'><td><span title='2018-05-25 23:00:11 +0100'>2018-05-25</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/plugin/forward/proxy.go?id=833e3ddaf07204f32fa3e4b71583d158a074d34a&amp;follow=1'>plugin/forward: erase expired connections by timer (#1782)</a></td><td><img src='//www.gravatar.com/avatar/13cf34712525e2848d4468120b95674e?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Ruslan Drozhdzh
</td><td>3</td><td><span class='deletions'>-17</span>/<span class='insertions'>+189</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
* plugin/forward: erase expired connection by timer

 - in previous implementation, the expired connections resided in
   cache until new request to the same upstream/protocol came. In
   case if the upstream was unhealthy new request may come long time
   later or may not come at all. All this time expired connections
   held system resources (file descriptors, ephemeral ports). In my
   fix the expired connections and related resources are released
   by timer
 - decreased the complexity of taking connection from cache. The list
   of connections is treated as stack (LIFO queue), i.e. the connection
   is taken from the end of queue (the most fresh connection) and
   returned to the end (as it was implemented before). The remarkable
   thing is that all connections in the stack appear to be ordered by
   'used' field
 - the cleanup() method finds the first good (not expired) connection
   in stack with binary search, since all connections are ordered by
   'used' field

* fix race conditions

* minor enhancement

* add comments


</td></tr>
<tr class='logheader'><td><span title='2018-05-25 11:43:54 +0100'>2018-05-25</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/plugin/template/README.md?id=94ced8255b42c90b934f0aa106ea813dcdeaae52&amp;follow=1'>RFC dont have a hyphen (#1837)</a></td><td><img src='//www.gravatar.com/avatar/25ba01eee5a1c0e007e810afe805766c?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Miek Gieben
</td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+2</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2018-05-24 14:30:01 +0100'>2018-05-24</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/test/reverse_test.go?id=2758a756dd32197fdc20e0094ea9a22227649da4&amp;follow=1'>Implement deprecation notice for 1.1.4 (#1833)</a></td><td><img src='//www.gravatar.com/avatar/25ba01eee5a1c0e007e810afe805766c?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Miek Gieben
</td><td>20</td><td><span class='deletions'>-1306</span>/<span class='insertions'>+9</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
* Implement deprecation notice for 1.1.4

This still allows all the config to be parsed, but noops it:

* -log; always set the log to stdout; no matter what.
* https_google; removed from the proxy implementation.
* reverse plugin: set to deprecated.

* Whole of reverse can go

* Remove test for deprecated plugin


</td></tr>
<tr class='logheader'><td><span title='2018-05-24 08:00:16 +0100'>2018-05-24</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/coremain/version.go?id=b0fd575c658c22d082e1ac776a15ad8d188e76f7&amp;follow=1'>Release 1.1.3</a><span class='decoration'><a class='tag-deco' href='/ansg191/coredns/tag/?h=v1.1.3'>v1.1.3</a></span></td><td><img src='//www.gravatar.com/avatar/25ba01eee5a1c0e007e810afe805766c?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Miek Gieben
</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2018-05-24 07:51:59 +0100'>2018-05-24</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/plugin/rewrite/README.md?id=c0fbef07147552b48eca243ce9839a7920686745&amp;follow=1'>generate doc for 1.1.3 (#1832)</a></td><td><img src='//www.gravatar.com/avatar/25ba01eee5a1c0e007e810afe805766c?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Miek Gieben
</td><td>37</td><td><span class='deletions'>-89</span>/<span class='insertions'>+202</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2018-05-23 23:17:26 +0100'>2018-05-23</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/OWNERS?id=4ec613e186fa1aa62c96791ed0bdc94e92a5522d&amp;follow=1'>Enable new features of Corbot (#1831)</a></td><td><img src='//www.gravatar.com/avatar/25ba01eee5a1c0e007e810afe805766c?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Miek Gieben
</td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+9</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
enable alias and add one, so that "/plugin: forward" adds a label
called plugin-forward to the issue.

enable branches that automatically delete merged branches.

</td></tr>
<tr class='logheader'><td><span title='2018-05-23 21:31:54 +0100'>2018-05-23</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/test/file_upstream_test.go?id=1ae8a9e3219e29c0000848a8d2b1fb17faed8eb0&amp;follow=1'>Add upstream unit test (#1830)</a></td><td><img src='//www.gravatar.com/avatar/25ba01eee5a1c0e007e810afe805766c?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Miek Gieben
</td><td>1</td><td><span class='deletions'>-7</span>/<span class='insertions'>+8</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
Fix the upstream unit test to actually test it.

</td></tr>
<tr class='logheader'><td><span title='2018-05-23 08:57:59 -0400'>2018-05-23</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/plugin/kubernetes/setup_test.go?id=003e104fca728b0412fae2e139c84f416acf76ae&amp;follow=1'>ADD ignoreemptyservice option for kubernetes plugin (#1813)</a></td><td><img src='//www.gravatar.com/avatar/82e757f7460cb2175d2a624c09153c42?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> darkweaver87
</td><td>7</td><td><span class='deletions'>-3</span>/<span class='insertions'>+218</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
* ADD: ignoreemptyservice option for kubernetes plugin

* Modify documentation and rename option to add space

* UPD: Add unit tests

* UPD: gofmt

* Add unit test for ignore emptyservice

* gofmt

* xfr tests failed

* Rename emptyservice to empty_service


</td></tr>
<tr class='logheader'><td><span title='2018-05-23 08:50:27 -0400'>2018-05-23</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/test/file_upstream_test.go?id=0f74281a533a86b7b5ccaa0173d440d80d709308&amp;follow=1'>Revert pkg/nonwriter changes (#1829)</a></td><td><img src='//www.gravatar.com/avatar/25ba01eee5a1c0e007e810afe805766c?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Miek Gieben
</td><td>4</td><td><span class='deletions'>-19</span>/<span class='insertions'>+81</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
The DoH work (#1619) made changes to pkg/nonwriter.Writer that in
hindsight were not backwards compatible; it added override for the
LocalAddr() and RemoteAddr(). Instead of rolling back that PR, this PR
reverts those changes and creates a DoHWriter for use in the
https-server.go side of things.

This was only caught in the integration test making this hard to catch,
so we add a upstream_file_test.go that tries (doesn't work yet) to test
this in the unit tests as well. Esp. helpful when 'git bisecting'.

Fixes #1826

</td></tr>
<tr class='logheader'><td><span title='2018-05-22 15:38:25 +0100'>2018-05-22</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/plugin/whoami/README.md?id=49891d21037fbcf699d9376a39c23762fdb16899&amp;follow=1'>Add links to whoami plugin reading material (#1815)</a></td><td><img src='//www.gravatar.com/avatar/bf59cd38a9c9084b6a66bf4fce47f691?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Ahmet Alp Balkan
</td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+7</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
* Add links to whoami plugin reading material

* create See Also section


</td></tr>
<tr class='logheader'><td><span title='2018-05-21 19:40:46 +0100'>2018-05-21</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/plugin/pkg/nonwriter/nonwriter.go?id=18b92e1117b67d27f98b14b46b19385c2dd23645&amp;follow=1'>make CoreDNS DoH Server (#1619)</a></td><td><img src='//www.gravatar.com/avatar/25ba01eee5a1c0e007e810afe805766c?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Miek Gieben
</td><td>7</td><td><span class='deletions'>-7</span>/<span class='insertions'>+309</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
* WIP: make CoreDNS DoH Server

* It works

* Fix tests

* Review from Tom - on diff. PR

* correct mime type

* Cleanups and use the pkg/nonwriter

* rename and updates

* implement get

* implement GET

* Code review comments

* correct context

* tweaks

* code review


</td></tr>
<tr class='logheader'><td><span title='2018-05-21 09:52:42 -0400'>2018-05-21</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/plugin/kubernetes/handler_test.go?id=67c9075331b3c32f55e32836ab261d9364aefeb5&amp;follow=1'>Enforcing gofmt -s on linter check (#1820)</a></td><td><img src='//www.gravatar.com/avatar/10c4cad3ba13f0378dbd67185314d3d4?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Yong Tang
</td><td>2</td><td><span class='deletions'>-4</span>/<span class='insertions'>+3</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
This fix enforces gofmt -s on linter check in Makefile,
and fixes `plugin/kubernetes/handler_test.go` and
`plugin/tls/tls_test.go` with `gofmt -s`


</td></tr>
<tr class='logheader'><td><span title='2018-05-21 07:45:45 +0100'>2018-05-21</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/plugin/template/setup_test.go?id=0d305387f7974e3b493ef73c965795313279700b&amp;follow=1'>plugin/template: Support NODATA responses (#1816)</a></td><td><img src='//www.gravatar.com/avatar/90f0e512184d202445616446467a3da9?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Tobias Schmidt
</td><td>2</td><td><span class='deletions'>-2</span>/<span class='insertions'>+10</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
A NODATA response has no answers and rcode NOERROR, but should have a
SOA record in the authority section.

</td></tr>
<tr class='logheader'><td><span title='2018-05-19 23:03:32 +0100'>2018-05-19</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/Makefile?id=a40345d65fa5925d10ce38ea61a7256e6ba7a89b&amp;follow=1'>Fix `make check` dependency error (#1818)</a></td><td><img src='//www.gravatar.com/avatar/10c4cad3ba13f0378dbd67185314d3d4?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Yong Tang
</td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+2</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
While invoking `make check` from a fresh new environment
the following failure occured:
```
[ec2-user@..... coredns]$ docker run -i -t --rm -v $PWD:/go/src/github.com/coredns/coredns -w /go/src/github.com/coredns/coredns golang:1.10
root@e2d6a6c17132:/go/src/github.com/coredns/coredns# make check
** presubmit/context
** presubmit/test-lowercase
( gometalinter --deadline=2m --disable-all --enable=goimports --vendor --exclude=^pb/ ./... || true )
/bin/sh: 1: gometalinter: not found
go generate coredns.go
```

This fix fixes the issue in Makefile so that deps could be installed first.

Signed-off-by: Yong Tang &lt;yong.tang.github@outlook.com&gt;

</td></tr>
<tr class='logheader'><td><span title='2018-05-18 07:46:14 +0100'>2018-05-18</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/plugin/forward/proxy.go?id=7ac507d9ffd19e03737345408b62a732ec706c73&amp;follow=1'>plugin/forward: close connection manager in proxy finalizer (#1768)</a></td><td><img src='//www.gravatar.com/avatar/13cf34712525e2848d4468120b95674e?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Ruslan Drozhdzh
</td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+5</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
- connManager() goroutine will stop when Proxy is about to be
   garbage collected. This means that no queries are in progress,
   and no queries are going to come

</td></tr>
<tr class='logheader'><td><span title='2018-05-18 07:27:25 +0100'>2018-05-18</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/plugin/kubernetes/handler_test.go?id=38e27fd9ade9650191673fe8b8b4fd028eeb609b&amp;follow=1'>add dup endpoint name test (#1811)</a></td><td><img src='//www.gravatar.com/avatar/c4e1dff64e2c0210e86f613a22916fc1?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Chris O'Haver
</td><td>1</td><td><span class='deletions'>-6</span>/<span class='insertions'>+30</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2018-05-18 07:26:45 +0100'>2018-05-18</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/test/reload_test.go?id=2b9d2d6c3a4158c416128cdc8c5cc33edc604083&amp;follow=1'>reload: don't fail test on addr in use (#1804)</a></td><td><img src='//www.gravatar.com/avatar/25ba01eee5a1c0e007e810afe805766c?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Miek Gieben
</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+9</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
A bit meh, but we *need* hardcoded addresses in these tests, because
we can't get them from a running coredns. These may be in-use and this
fails the tests then. Do an ugly err.Error() string match if this is the
case to prevent failing the test for something not in our control.

A better fix would be to retreive the listening address from coredns via
some api, so we could listen on :0 for these as well. No such API exists
as of yet.

</td></tr>
<tr class='logheader'><td><span title='2018-05-17 16:59:57 -0400'>2018-05-17</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/plugin/erratic/erratic.go?id=a9f3ad1f0bc8c54fdc62a1e1c9cd096dd8b4cb0a&amp;follow=1'>Fix typo in erratic.go (#1812)</a></td><td><img src='//www.gravatar.com/avatar/a3d58343912e98d6609fcaa92c852dbd?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Anton Antonov
</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2018-05-17 07:10:28 +0100'>2018-05-17</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/vendor/k8s.io/kube-openapi/pkg/common/common.go?id=b109a79cb544df81d38010cf23c95af3f9f0d144&amp;follow=1'>Update kubernetes/client-go to v7.0.0 (#1808)</a></td><td><img src='//www.gravatar.com/avatar/10c4cad3ba13f0378dbd67185314d3d4?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Yong Tang
</td><td>730</td><td><span class='deletions'>-43138</span>/<span class='insertions'>+17318</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
This fix updates k8s' client-go to v7.0.0, which matches k8s 1.10.

Signed-off-by: Yong Tang &lt;yong.tang.github@outlook.com&gt;

</td></tr>
<tr class='logheader'><td><span title='2018-05-16 22:35:31 +0100'>2018-05-16</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/plugin/tls/tls_test.go?id=9a82fa0374286417ab352e9422a70228577a99cf&amp;follow=1'>golinter fix (#1807)</a></td><td><img src='//www.gravatar.com/avatar/10c4cad3ba13f0378dbd67185314d3d4?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Yong Tang
</td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+2</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
This fix fixes golinter warning:
```
plugin/tls/tls_test.go:1::warning: file is not goimported (goimports)
```

Signed-off-by: Yong Tang &lt;yong.tang.github@outlook.com&gt;

</td></tr>
<tr class='logheader'><td><span title='2018-05-16 22:19:53 +0100'>2018-05-16</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/vendor/k8s.io/kube-openapi/pkg/util/util.go?id=05a030e17b43ac5d19a427c30d203d93f61c9f03&amp;follow=1'>Vendor update with github.com/ugorji/go and github.com/apache/thrift pinning ↵</a></td><td><img src='//www.gravatar.com/avatar/10c4cad3ba13f0378dbd67185314d3d4?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Yong Tang
</td><td>10682</td><td><span class='deletions'>-4047998</span>/<span class='insertions'>+37388</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
(#1805)

This fix is an vendor update. Both ugorji and thrift have to be pinned
to compile. The ugorji is from etcd and thrift is from zipkin.

This fix fixes #1802.

Signed-off-by: Yong Tang &lt;yong.tang.github@outlook.com&gt;

</td></tr>
<tr class='logheader'><td><span title='2018-05-16 13:17:06 -0700'>2018-05-16</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/vendor/k8s.io/kube-openapi/pkg/util/util.go?id=1e471a353ecfaf4bc7df06d9528ae7e312497dac&amp;follow=1'>Dep ensure (#1803)</a></td><td><img src='//www.gravatar.com/avatar/25ba01eee5a1c0e007e810afe805766c?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Miek Gieben
</td><td>10377</td><td><span class='deletions'>-54910</span>/<span class='insertions'>+4225825</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
* vendor: don't vendor the context stuff

We don't need to vendor this anymore as we moved to the std lib for
these.

* new stuff showing up with dep ensure

* remove go-shlex


</td></tr>
<tr class='logheader'><td><span title='2018-05-16 20:38:13 +0100'>2018-05-16</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/plugin/pkg/up/up.go?id=cffa1948ab21e36b3eb4397e23acc9cea6830201&amp;follow=1'>Probe simplification (#1784)</a></td><td><img src='//www.gravatar.com/avatar/13cf34712525e2848d4468120b95674e?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Ruslan Drozhdzh
</td><td>1</td><td><span class='deletions'>-49</span>/<span class='insertions'>+42</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
* Probe simplification

 - the main reason of rework is that previous implementation hung
   when calling Do() after Stop()

* replace atomics with mutex

* access Probe.interval under lock


</td></tr>
<tr class='logheader'><td><span title='2018-05-15 12:53:46 -0400'>2018-05-15</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/plugin/tls/tls.go?id=bffb955f6952c197d17f028f30b6bee069b15f2b&amp;follow=1'>plugin/tls: make CA parameter optional (#1800)</a></td><td><img src='//www.gravatar.com/avatar/13cf34712525e2848d4468120b95674e?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Ruslan Drozhdzh
</td><td>2</td><td><span class='deletions'>-3</span>/<span class='insertions'>+5</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2018-05-11 15:09:38 -0400'>2018-05-11</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/plugin/reload/README.md?id=8026dc256097f19d8ca5cbd6f782a0d93634f85a&amp;follow=1'>plugin/reload: mention auto in reload (#1793)</a></td><td><img src='//www.gravatar.com/avatar/c4e1dff64e2c0210e86f613a22916fc1?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Chris O'Haver
</td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+3</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
mention auto in reload docs


</td></tr>
<tr class='logheader'><td><span title='2018-05-11 13:51:21 -0400'>2018-05-11</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/plugin/proxy/README.md?id=afed91646a264969bb14178f9c8d7679729f2005&amp;follow=1'>plugin/proxy: fix except example (#1796)</a></td><td><img src='//www.gravatar.com/avatar/c4e1dff64e2c0210e86f613a22916fc1?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Chris O'Haver
</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
I just noticed this discrepancy in one of the `except` examples.

</td></tr>
<tr class='logheader'><td><span title='2018-05-11 13:50:59 -0400'>2018-05-11</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/plugin/rewrite/README.md?id=2c04e72bdcb41b01bf7dcafc89bc267e27ad606b&amp;follow=1'>Try to clarify rewrite docs (#1795)</a></td><td><img src='//www.gravatar.com/avatar/c4e1dff64e2c0210e86f613a22916fc1?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Chris O'Haver
</td><td>1</td><td><span class='deletions'>-13</span>/<span class='insertions'>+19</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
making response rewrites more prominent

</td></tr>
<tr class='logheader'><td><span title='2018-05-10 21:13:36 +0100'>2018-05-10</span></td><td class='logsubject'><a href='/ansg191/coredns/commit/Makefile?id=940b7f2e8c0aa9b099c9baaf26a48dcd44fa97ef&amp;follow=1'>Up miekg/dns to 1.0.6 (#1792)</a></td><td><img src='//www.gravatar.com/avatar/25ba01eee5a1c0e007e810afe805766c?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Miek Gieben
</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
This was just tagged and has the worker patch that improves performance.

</td></tr>
