This commit is contained in:
Frank Denis 2018-01-25 15:55:27 +01:00
parent 803bc18027
commit ff5bba1ba4
7 changed files with 23 additions and 15 deletions

6
Gopkg.lock generated
View File

@ -100,8 +100,8 @@
[[projects]] [[projects]]
name = "github.com/miekg/dns" name = "github.com/miekg/dns"
packages = ["."] packages = ["."]
revision = "5ec25f2a5044291b6c8abf43ed8a201da241e69e" revision = "5364553f1ee9cddc7ac8b62dce148309c386695b"
version = "v1.0.3" version = "v1.0.4"
[[projects]] [[projects]]
branch = "master" branch = "master"
@ -139,7 +139,7 @@
"windows/svc/eventlog", "windows/svc/eventlog",
"windows/svc/mgr" "windows/svc/mgr"
] ]
revision = "af50095a40f9041b3b38960738837185c26e9419" revision = "ef802241c90f84d84d644a2d8d0de8ee96038c9c"
[solve-meta] [solve-meta]
analyzer-name = "dep" analyzer-name = "dep"

View File

@ -4,7 +4,7 @@
A flexible DNS proxy, with support for encrypted DNS protocols such as [DNSCrypt](https://github.com/DNSCrypt/dnscrypt-protocol/blob/master/DNSCRYPT-V2-PROTOCOL.txt). A flexible DNS proxy, with support for encrypted DNS protocols such as [DNSCrypt](https://github.com/DNSCrypt/dnscrypt-protocol/blob/master/DNSCRYPT-V2-PROTOCOL.txt).
## [dnscrypt-proxy 2.0.0beta9 is available for download!](https://github.com/jedisct1/dnscrypt-proxy/releases/latest) ## [dnscrypt-proxy 2.0.0beta10 is available for download!](https://github.com/jedisct1/dnscrypt-proxy/releases/latest)
## Installation ## Installation
@ -26,6 +26,8 @@ dnscrypt-proxy is a flexible DNS proxy. It runs on your computer or router, and
With administrator privileges, type `dnscrypt-proxy -service install` to register dnscrypt-proxy as a system service, and `dnscrypt-proxy -service start` to start it. With administrator privileges, type `dnscrypt-proxy -service install` to register dnscrypt-proxy as a system service, and `dnscrypt-proxy -service start` to start it.
On Windows, this is not even required: you can just double-click on `server-install.bat` to install the service.
Done. It will automatically start at boot. Done. It will automatically start at boot.
This setup procedure is compatible with Windows, Linux (systemd, Upstart, SysV), and macOS (launchd). This setup procedure is compatible with Windows, Linux (systemd, Upstart, SysV), and macOS (launchd).

View File

@ -16,7 +16,7 @@ import (
"golang.org/x/crypto/curve25519" "golang.org/x/crypto/curve25519"
) )
const AppVersion = "2.0.0beta9" const AppVersion = "2.0.0beta10"
type Proxy struct { type Proxy struct {
proxyPublicKey [32]byte proxyPublicKey [32]byte

View File

@ -49,3 +49,4 @@ commit:
push: push:
@echo Pushing release $(VERSION) to master @echo Pushing release $(VERSION) to master
git push --tags git push --tags
git push

View File

@ -62,6 +62,8 @@ A not-so-up-to-date-list-that-may-be-actually-current:
* https://dnssectest.net/ * https://dnssectest.net/
* https://dns.apebits.com * https://dns.apebits.com
* https://github.com/oif/apex * https://github.com/oif/apex
* https://github.com/jedisct1/dnscrypt-proxy
* https://github.com/jedisct1/rpdns
Send pull request if you want to be listed here. Send pull request if you want to be listed here.

View File

@ -460,13 +460,6 @@ func (srv *Server) serveTCP(l net.Listener) error {
// deadline is not used here // deadline is not used here
for { for {
rw, err := l.Accept() rw, err := l.Accept()
if err != nil {
if neterr, ok := err.(net.Error); ok && neterr.Temporary() {
continue
}
return err
}
m, err := reader.ReadTCP(rw, rtimeout)
srv.lock.RLock() srv.lock.RLock()
if !srv.started { if !srv.started {
srv.lock.RUnlock() srv.lock.RUnlock()
@ -474,9 +467,19 @@ func (srv *Server) serveTCP(l net.Listener) error {
} }
srv.lock.RUnlock() srv.lock.RUnlock()
if err != nil { if err != nil {
if neterr, ok := err.(net.Error); ok && neterr.Temporary() {
continue continue
} }
go srv.serve(rw.RemoteAddr(), handler, m, nil, nil, rw) return err
}
go func() {
m, err := reader.ReadTCP(rw, rtimeout)
if err != nil {
rw.Close()
return
}
srv.serve(rw.RemoteAddr(), handler, m, nil, nil, rw)
}()
} }
} }

View File

@ -3,7 +3,7 @@ package dns
import "fmt" import "fmt"
// Version is current version of this library. // Version is current version of this library.
var Version = V{1, 0, 3} var Version = V{1, 0, 4}
// V holds the version of this library. // V holds the version of this library.
type V struct { type V struct {