Release Argo Tunnel Client 2018.4.4

This commit is contained in:
cloudflare-warp-bot 2018-04-06 22:47:13 +00:00
parent 3dc84750c7
commit 9bbeed7707
5 changed files with 18 additions and 6 deletions

View File

@ -275,7 +275,7 @@ func main() {
Usage: "Run a DNS over HTTPS proxy server.", Usage: "Run a DNS over HTTPS proxy server.",
EnvVars: []string{"TUNNEL_DNS"}, EnvVars: []string{"TUNNEL_DNS"},
}), }),
altsrc.NewUintFlag(&cli.UintFlag{ altsrc.NewIntFlag(&cli.IntFlag{
Name: "proxy-dns-port", Name: "proxy-dns-port",
Value: 53, Value: 53,
Usage: "Listen on given port for the DNS over HTTPS proxy server.", Usage: "Listen on given port for the DNS over HTTPS proxy server.",
@ -290,7 +290,7 @@ func main() {
altsrc.NewStringSliceFlag(&cli.StringSliceFlag{ altsrc.NewStringSliceFlag(&cli.StringSliceFlag{
Name: "proxy-dns-upstream", Name: "proxy-dns-upstream",
Usage: "Upstream endpoint URL, you can specify multiple endpoints for redundancy.", Usage: "Upstream endpoint URL, you can specify multiple endpoints for redundancy.",
Value: cli.NewStringSlice("https://cloudflare-dns.com/dns-query"), Value: cli.NewStringSlice("https://1.1.1.1/dns-query", "https://1.0.0.1/dns-query"),
EnvVars: []string{"TUNNEL_DNS_UPSTREAM"}, EnvVars: []string{"TUNNEL_DNS_UPSTREAM"},
}), }),
altsrc.NewDurationFlag(&cli.DurationFlag{ altsrc.NewDurationFlag(&cli.DurationFlag{
@ -384,7 +384,7 @@ func main() {
&cli.StringSliceFlag{ &cli.StringSliceFlag{
Name: "upstream", Name: "upstream",
Usage: "Upstream endpoint URL, you can specify multiple endpoints for redundancy.", Usage: "Upstream endpoint URL, you can specify multiple endpoints for redundancy.",
Value: cli.NewStringSlice("https://cloudflare-dns.com/dns-query"), Value: cli.NewStringSlice("https://1.1.1.1/dns-query", "https://1.0.0.1/dns-query"),
EnvVars: []string{"TUNNEL_DNS_UPSTREAM"}, EnvVars: []string{"TUNNEL_DNS_UPSTREAM"},
}, },
}, },
@ -428,8 +428,12 @@ func startServer(c *cli.Context) {
} }
if c.IsSet("proxy-dns") { if c.IsSet("proxy-dns") {
port := c.Int("proxy-dns-port")
if port <= 0 || port > 65535 {
Log.Fatal("The 'proxy-dns-port' must be a valid port number in <1, 65535> range.")
}
wg.Add(1) wg.Add(1)
listener, err := tunneldns.CreateListener(c.String("proxy-dns-address"), uint16(c.Uint("proxy-dns-port")), c.StringSlice("proxy-dns-upstream")) listener, err := tunneldns.CreateListener(c.String("proxy-dns-address"), uint16(port), c.StringSlice("proxy-dns-upstream"))
if err != nil { if err != nil {
close(dnsReadySignal) close(dnsReadySignal)
listener.Stop() listener.Stop()

View File

@ -8,6 +8,10 @@ type AtomicCounter struct {
count uint64 count uint64
} }
func NewAtomicCounter(initCount uint64) *AtomicCounter{
return &AtomicCounter{count: initCount}
}
func (c *AtomicCounter) IncrementBy(number uint64) { func (c *AtomicCounter) IncrementBy(number uint64) {
atomic.AddUint64(&c.count, number) atomic.AddUint64(&c.count, number)
} }

View File

@ -140,6 +140,8 @@ func Handshake(
updateSendWindowChan := make(chan uint32, 1) updateSendWindowChan := make(chan uint32, 1)
updateInBoundBytesChan := make(chan uint64) updateInBoundBytesChan := make(chan uint64)
updateOutBoundBytesChan := make(chan uint64) updateOutBoundBytesChan := make(chan uint64)
inBoundCounter := NewAtomicCounter(0)
outBoundCounter := NewAtomicCounter(0)
pingTimestamp := NewPingTimestamp() pingTimestamp := NewPingTimestamp()
connActive := NewSignal() connActive := NewSignal()
idleDuration := config.HeartbeatInterval idleDuration := config.HeartbeatInterval
@ -171,6 +173,7 @@ func Handshake(
updateRTTChan: updateRTTChan, updateRTTChan: updateRTTChan,
updateReceiveWindowChan: updateReceiveWindowChan, updateReceiveWindowChan: updateReceiveWindowChan,
updateSendWindowChan: updateSendWindowChan, updateSendWindowChan: updateSendWindowChan,
bytesRead: inBoundCounter,
updateInBoundBytesChan: updateInBoundBytesChan, updateInBoundBytesChan: updateInBoundBytesChan,
} }
m.muxWriter = &MuxWriter{ m.muxWriter = &MuxWriter{
@ -187,6 +190,7 @@ func Handshake(
maxFrameSize: defaultFrameSize, maxFrameSize: defaultFrameSize,
updateReceiveWindowChan: updateReceiveWindowChan, updateReceiveWindowChan: updateReceiveWindowChan,
updateSendWindowChan: updateSendWindowChan, updateSendWindowChan: updateSendWindowChan,
bytesWrote: outBoundCounter,
updateOutBoundBytesChan: updateOutBoundBytesChan, updateOutBoundBytesChan: updateOutBoundBytesChan,
} }
m.muxWriter.headerEncoder = hpack.NewEncoder(&m.muxWriter.headerBuffer) m.muxWriter.headerEncoder = hpack.NewEncoder(&m.muxWriter.headerBuffer)

View File

@ -42,7 +42,7 @@ type MuxReader struct {
// updateSendWindowChan is the channel to update sendWindow size to muxerMetricsUpdater // updateSendWindowChan is the channel to update sendWindow size to muxerMetricsUpdater
updateSendWindowChan chan<- uint32 updateSendWindowChan chan<- uint32
// bytesRead is the amount of bytes read from data frame since the last time we send bytes read to metrics // bytesRead is the amount of bytes read from data frame since the last time we send bytes read to metrics
bytesRead AtomicCounter bytesRead *AtomicCounter
// updateOutBoundBytesChan is the channel to send bytesWrote to muxerMetricsUpdater // updateOutBoundBytesChan is the channel to send bytesWrote to muxerMetricsUpdater
updateInBoundBytesChan chan<- uint64 updateInBoundBytesChan chan<- uint64
} }

View File

@ -45,7 +45,7 @@ type MuxWriter struct {
// updateSendWindowChan is the channel to update sendWindow size to muxerMetricsUpdater // updateSendWindowChan is the channel to update sendWindow size to muxerMetricsUpdater
updateSendWindowChan chan<- uint32 updateSendWindowChan chan<- uint32
// bytesWrote is the amount of bytes wrote to data frame since the last time we send bytes wrote to metrics // bytesWrote is the amount of bytes wrote to data frame since the last time we send bytes wrote to metrics
bytesWrote AtomicCounter bytesWrote *AtomicCounter
// updateOutBoundBytesChan is the channel to send bytesWrote to muxerMetricsUpdater // updateOutBoundBytesChan is the channel to send bytesWrote to muxerMetricsUpdater
updateOutBoundBytesChan chan<- uint64 updateOutBoundBytesChan chan<- uint64
} }