Browse Source

TUN-4067: Reformat code for consistent import order, grouping, and fix formatting. Added goimports target to the Makefile to make this easier in the future.

pull/341/head
Igor Postelnik 1 year ago
parent
commit
da4d0b2bae
  1. 4
      Makefile
  2. 6
      carrier/carrier.go
  3. 6
      carrier/websocket.go
  4. 6
      cfsetup.yaml
  5. 12
      cmd/cloudflared/access/cmd.go
  6. 4
      cmd/cloudflared/app_forward_service.go
  7. 4
      cmd/cloudflared/app_resolver_service.go
  8. 4
      cmd/cloudflared/app_service.go
  9. 3
      cmd/cloudflared/buildinfo/build_info.go
  10. 2
      cmd/cloudflared/cliutil/deprecated.go
  11. 6
      cmd/cloudflared/linux_service.go
  12. 6
      cmd/cloudflared/macos_service.go
  13. 10
      cmd/cloudflared/main.go
  14. 2
      cmd/cloudflared/service_template.go
  15. 18
      cmd/cloudflared/tunnel/cmd.go
  16. 14
      cmd/cloudflared/tunnel/configuration.go
  17. 3
      cmd/cloudflared/tunnel/info.go
  18. 2
      cmd/cloudflared/tunnel/login.go
  19. 2
      cmd/cloudflared/tunnel/signal.go
  20. 1
      cmd/cloudflared/tunnel/signal_test.go
  21. 3
      cmd/cloudflared/tunnel/subcommand_context_teamnet.go
  22. 6
      cmd/cloudflared/tunnel/subcommand_context_test.go
  23. 4
      cmd/cloudflared/tunnel/subcommands.go
  24. 5
      cmd/cloudflared/tunnel/subcommands_test.go
  25. 6
      cmd/cloudflared/ui/launch_ui.go
  26. 7
      cmd/cloudflared/windows_service.go
  27. 4
      config/configuration.go
  28. 2
      config/configuration_test.go
  29. 6
      config/manager.go
  30. 4
      config/manager_test.go
  31. 3
      connection/connection.go
  32. 8
      connection/h2mux.go
  33. 2
      connection/h2mux_test.go
  34. 6
      connection/http2.go
  35. 9
      connection/http2_test.go
  36. 5
      connection/metrics.go
  37. 4
      connection/observer.go
  38. 5
      connection/observer_test.go
  39. 6
      connection/rpc.go
  40. 3
      edgediscovery/edgediscovery.go
  41. 14
      fmt-check.sh
  42. 3
      h2mux/muxwriter.go
  43. 6
      ingress/ingress.go
  44. 2
      ingress/ingress_test.go
  45. 5
      ingress/origin_connection.go
  46. 5
      ingress/origin_connection_test.go
  47. 3
      ingress/origin_proxy.go
  48. 5
      ingress/origin_proxy_test.go
  49. 2
      ingress/origin_request_config.go
  50. 5
      ingress/origin_request_config_test.go
  51. 7
      ingress/origin_service.go
  52. 31
      logger/create_test.go
  53. 43
      metrics/timer.go
  54. 32
      metrics/timer_test.go
  55. 0
      origin/cloudflared.log
  56. 3
      origin/metrics.go
  57. 15
      origin/proxy_test.go
  58. 3
      origin/reconnect.go
  59. 6
      origin/supervisor.go
  60. 4
      origin/tunnel_test.go
  61. 3
      socks/request_handler.go
  62. 3
      socks/request_handler_test.go
  63. 1
      sshgen/sshgen.go
  64. 2
      token/path.go
  65. 1
      token/shell.go
  66. 6
      token/token.go
  67. 16
      token/token_test.go
  68. 2
      tunnelrpc/pogs/auth_outcome.go
  69. 4
      tunnelrpc/pogs/auth_serialize.go
  70. 3
      tunnelrpc/pogs/auth_test.go
  71. 3
      tunnelrpc/pogs/reconnect_tunnel.go
  72. 1
      tunnelrpc/pogs/support_test.go
  73. 4
      tunnelrpc/pogs/tunnelrpc.go
  74. 3
      tunnelrpc/pogs/tunnelrpc_test.go
  75. 3
      tunnelstore/client.go
  76. 3
      tunnelstore/client_teamnet.go
  77. 3
      validation/validation.go
  78. 4
      websocket/websocket.go
  79. 8
      websocket/websocket_test.go

4
Makefile

@ -254,3 +254,7 @@ vet:
.PHONY: msi
msi: cloudflared
go-msi make --msi cloudflared.msi --version $(MSI_VERSION)
.PHONY: goimports
goimports:
for d in $$(go list -mod=readonly -f '{{.Dir}}' -a ./... | fgrep -v tunnelrpc) ; do goimports -format-only -local github.com/cloudflare/cloudflared -w $$d ; done

6
carrier/carrier.go

@ -11,11 +11,11 @@ import (
"os"
"strings"
"github.com/cloudflare/cloudflared/h2mux"
"github.com/cloudflare/cloudflared/token"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/h2mux"
"github.com/cloudflare/cloudflared/token"
)
const LogFieldOriginURL = "originURL"

6
carrier/websocket.go

@ -7,13 +7,13 @@ import (
"net/http"
"net/http/httputil"
"github.com/gorilla/websocket"
"github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/ingress"
"github.com/cloudflare/cloudflared/socks"
"github.com/cloudflare/cloudflared/token"
cfwebsocket "github.com/cloudflare/cloudflared/websocket"
"github.com/gorilla/websocket"
"github.com/rs/zerolog"
)
// Websocket is used to carry data via WS binary frames over the tunnel from client to the origin

6
cfsetup.yaml

@ -195,13 +195,15 @@ stretch: &stretch
- *pinned_go_fips
- build-essential
- gotest-to-teamcity
pre-cache:
- go get golang.org/x/tools/cmd/goimports
- go get github.com/BurntSushi/go-sumtype
post-cache:
- export GOOS=linux
- export GOARCH=amd64
- export FIPS=true
# cd to a non-module directory: https://github.com/golang/go/issues/24250
- (cd / && go get github.com/BurntSushi/go-sumtype)
- export PATH="$HOME/go/bin:$PATH"
- ./fmt-check.sh
- make test | gotest-to-teamcity
component-test:
build_dir: *build_dir

12
cmd/cloudflared/access/cmd.go

@ -11,6 +11,12 @@ import (
"text/template"
"time"
"github.com/getsentry/raven-go"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/urfave/cli/v2"
"golang.org/x/net/idna"
"github.com/cloudflare/cloudflared/carrier"
"github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil"
"github.com/cloudflare/cloudflared/h2mux"
@ -18,12 +24,6 @@ import (
"github.com/cloudflare/cloudflared/sshgen"
"github.com/cloudflare/cloudflared/token"
"github.com/cloudflare/cloudflared/validation"
"github.com/getsentry/raven-go"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/urfave/cli/v2"
"golang.org/x/net/idna"
)
const (

4
cmd/cloudflared/app_forward_service.go

@ -1,10 +1,10 @@
package main
import (
"github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/cmd/cloudflared/access"
"github.com/cloudflare/cloudflared/config"
"github.com/rs/zerolog"
)
// ForwardServiceType is used to identify what kind of overwatch service this is

4
cmd/cloudflared/app_resolver_service.go

@ -1,10 +1,10 @@
package main
import (
"github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/tunneldns"
"github.com/rs/zerolog"
)
const (

4
cmd/cloudflared/app_service.go

@ -1,10 +1,10 @@
package main
import (
"github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/overwatch"
"github.com/rs/zerolog"
)
// AppService is the main service that runs when no command lines flags are passed to cloudflared

3
cmd/cloudflared/buildinfo/build_info.go

@ -1,9 +1,10 @@
package buildinfo
import (
"github.com/rs/zerolog"
"fmt"
"runtime"
"github.com/rs/zerolog"
)
type BuildInfo struct {

2
cmd/cloudflared/cliutil/deprecated.go

@ -16,6 +16,6 @@ func RemovedCommand(name string) *cli.Command {
)
},
Description: fmt.Sprintf("%s is deprecated", name),
Hidden: true,
Hidden: true,
}
}

6
cmd/cloudflared/linux_service.go

@ -7,13 +7,13 @@ import (
"os"
"path/filepath"
"github.com/rs/zerolog"
"github.com/urfave/cli/v2"
"github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil"
"github.com/cloudflare/cloudflared/cmd/cloudflared/tunnel"
"github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/logger"
"github.com/rs/zerolog"
"github.com/urfave/cli/v2"
)
func runApp(app *cli.App, graceShutdownC chan struct{}) {

6
cmd/cloudflared/macos_service.go

@ -6,11 +6,11 @@ import (
"fmt"
"os"
"github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil"
"github.com/cloudflare/cloudflared/logger"
"github.com/pkg/errors"
"github.com/urfave/cli/v2"
"github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil"
"github.com/cloudflare/cloudflared/logger"
)
const (

10
cmd/cloudflared/main.go

@ -6,6 +6,11 @@ import (
"strings"
"time"
"github.com/getsentry/raven-go"
homedir "github.com/mitchellh/go-homedir"
"github.com/pkg/errors"
"github.com/urfave/cli/v2"
"github.com/cloudflare/cloudflared/cmd/cloudflared/access"
"github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil"
"github.com/cloudflare/cloudflared/cmd/cloudflared/proxydns"
@ -16,11 +21,6 @@ import (
"github.com/cloudflare/cloudflared/metrics"
"github.com/cloudflare/cloudflared/overwatch"
"github.com/cloudflare/cloudflared/watcher"
"github.com/getsentry/raven-go"
"github.com/mitchellh/go-homedir"
"github.com/pkg/errors"
"github.com/urfave/cli/v2"
)
const (

2
cmd/cloudflared/service_template.go

@ -10,7 +10,7 @@ import (
"os/exec"
"text/template"
"github.com/mitchellh/go-homedir"
homedir "github.com/mitchellh/go-homedir"
"github.com/cloudflare/cloudflared/config"
)

18
cmd/cloudflared/tunnel/cmd.go

@ -12,6 +12,15 @@ import (
"sync"
"time"
"github.com/coreos/go-systemd/daemon"
"github.com/facebookgo/grace/gracenet"
"github.com/getsentry/raven-go"
homedir "github.com/mitchellh/go-homedir"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/urfave/cli/v2"
"github.com/urfave/cli/v2/altsrc"
"github.com/cloudflare/cloudflared/cmd/cloudflared/buildinfo"
"github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil"
"github.com/cloudflare/cloudflared/cmd/cloudflared/proxydns"
@ -27,15 +36,6 @@ import (
"github.com/cloudflare/cloudflared/tlsconfig"
"github.com/cloudflare/cloudflared/tunneldns"
"github.com/cloudflare/cloudflared/tunnelstore"
"github.com/coreos/go-systemd/daemon"
"github.com/facebookgo/grace/gracenet"
"github.com/getsentry/raven-go"
"github.com/mitchellh/go-homedir"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/urfave/cli/v2"
"github.com/urfave/cli/v2/altsrc"
)
const (

14
cmd/cloudflared/tunnel/configuration.go

@ -8,6 +8,13 @@ import (
"path/filepath"
"strings"
"github.com/google/uuid"
homedir "github.com/mitchellh/go-homedir"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/urfave/cli/v2"
"golang.org/x/crypto/ssh/terminal"
"github.com/cloudflare/cloudflared/cmd/cloudflared/buildinfo"
"github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/connection"
@ -18,13 +25,6 @@ import (
"github.com/cloudflare/cloudflared/tlsconfig"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
"github.com/cloudflare/cloudflared/validation"
"github.com/google/uuid"
"github.com/mitchellh/go-homedir"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/urfave/cli/v2"
"golang.org/x/crypto/ssh/terminal"
)
const LogFieldOriginCertPath = "originCertPath"

3
cmd/cloudflared/tunnel/info.go

@ -3,8 +3,9 @@ package tunnel
import (
"time"
"github.com/cloudflare/cloudflared/tunnelstore"
"github.com/google/uuid"
"github.com/cloudflare/cloudflared/tunnelstore"
)
type Info struct {

2
cmd/cloudflared/tunnel/login.go

@ -8,7 +8,7 @@ import (
"path/filepath"
"syscall"
"github.com/mitchellh/go-homedir"
homedir "github.com/mitchellh/go-homedir"
"github.com/pkg/errors"
"github.com/urfave/cli/v2"

2
cmd/cloudflared/tunnel/signal.go

@ -20,4 +20,4 @@ func waitForSignal(graceShutdownC chan struct{}, logger *zerolog.Logger) {
close(graceShutdownC)
case <-graceShutdownC:
}
}
}

1
cmd/cloudflared/tunnel/signal_test.go

@ -101,4 +101,3 @@ func TestWaitForShutdown(t *testing.T) {
assert.True(t, contextCancelled)
assert.True(t, time.Now().Sub(startTime) < time.Second) // check that wait ended early
}

3
cmd/cloudflared/tunnel/subcommand_context_teamnet.go

@ -3,8 +3,9 @@ package tunnel
import (
"net"
"github.com/cloudflare/cloudflared/teamnet"
"github.com/pkg/errors"
"github.com/cloudflare/cloudflared/teamnet"
)
const noClientMsg = "error while creating backend client"

6
cmd/cloudflared/tunnel/subcommand_context_test.go

@ -8,13 +8,13 @@ import (
"testing"
"time"
"github.com/google/uuid"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/urfave/cli/v2"
"github.com/cloudflare/cloudflared/connection"
"github.com/cloudflare/cloudflared/tunnelstore"
"github.com/google/uuid"
"github.com/pkg/errors"
"github.com/urfave/cli/v2"
)
func Test_findIDs(t *testing.T) {

4
cmd/cloudflared/tunnel/subcommands.go

@ -14,12 +14,12 @@ import (
"time"
"github.com/google/uuid"
"github.com/mitchellh/go-homedir"
homedir "github.com/mitchellh/go-homedir"
"github.com/pkg/errors"
"github.com/urfave/cli/v2"
"github.com/urfave/cli/v2/altsrc"
"golang.org/x/net/idna"
"gopkg.in/yaml.v2"
yaml "gopkg.in/yaml.v2"
"github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil"
"github.com/cloudflare/cloudflared/cmd/cloudflared/updater"

5
cmd/cloudflared/tunnel/subcommands_test.go

@ -5,10 +5,11 @@ import (
"path/filepath"
"testing"
"github.com/cloudflare/cloudflared/tunnelstore"
"github.com/google/uuid"
"github.com/mitchellh/go-homedir"
homedir "github.com/mitchellh/go-homedir"
"github.com/stretchr/testify/assert"
"github.com/cloudflare/cloudflared/tunnelstore"
)
func Test_fmtConnections(t *testing.T) {

6
cmd/cloudflared/ui/launch_ui.go

@ -5,12 +5,12 @@ import (
"fmt"
"strings"
"github.com/cloudflare/cloudflared/connection"
"github.com/cloudflare/cloudflared/ingress"
"github.com/gdamore/tcell"
"github.com/rivo/tview"
"github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/connection"
"github.com/cloudflare/cloudflared/ingress"
)
type connState struct {

7
cmd/cloudflared/windows_service.go

@ -13,15 +13,14 @@ import (
"unsafe"
"github.com/pkg/errors"
"github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil"
"github.com/cloudflare/cloudflared/logger"
"github.com/urfave/cli/v2"
"golang.org/x/sys/windows"
"golang.org/x/sys/windows/svc"
"golang.org/x/sys/windows/svc/eventlog"
"golang.org/x/sys/windows/svc/mgr"
"github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil"
"github.com/cloudflare/cloudflared/logger"
)
const (

4
config/configuration.go

@ -9,11 +9,11 @@ import (
"runtime"
"time"
"github.com/mitchellh/go-homedir"
homedir "github.com/mitchellh/go-homedir"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/urfave/cli/v2"
"gopkg.in/yaml.v2"
yaml "gopkg.in/yaml.v2"
"github.com/cloudflare/cloudflared/validation"
)

2
config/configuration_test.go

@ -5,7 +5,7 @@ import (
"time"
"github.com/stretchr/testify/assert"
"gopkg.in/yaml.v2"
yaml "gopkg.in/yaml.v2"
)
func TestConfigFileSettings(t *testing.T) {

6
config/manager.go

@ -4,11 +4,11 @@ import (
"io"
"os"
"github.com/cloudflare/cloudflared/watcher"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"gopkg.in/yaml.v2"
yaml "gopkg.in/yaml.v2"
"github.com/cloudflare/cloudflared/watcher"
)
// Notifier sends out config updates

4
config/manager_test.go

@ -4,10 +4,10 @@ import (
"os"
"testing"
"github.com/cloudflare/cloudflared/watcher"
"github.com/rs/zerolog"
"github.com/stretchr/testify/assert"
"github.com/cloudflare/cloudflared/watcher"
)
type mockNotifier struct {

3
connection/connection.go

@ -8,8 +8,9 @@ import (
"strings"
"time"
"github.com/cloudflare/cloudflared/tunnelrpc/pogs"
"github.com/google/uuid"
"github.com/cloudflare/cloudflared/tunnelrpc/pogs"
)
const LogFieldConnIndex = "connIndex"

8
connection/h2mux.go

@ -7,13 +7,13 @@ import (
"net/http"
"time"
"github.com/cloudflare/cloudflared/h2mux"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
"github.com/cloudflare/cloudflared/websocket"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"golang.org/x/sync/errgroup"
"github.com/cloudflare/cloudflared/h2mux"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
"github.com/cloudflare/cloudflared/websocket"
)
const (

2
connection/h2mux_test.go

@ -38,7 +38,7 @@ func newH2MuxConnection(t require.TestingT) (*h2muxConnection, *h2mux.Muxer) {
// we only expect RPC traffic in client->edge direction, provide minimal support for mocking
require.True(t, stream.IsRPCStream())
return stream.WriteHeaders([]h2mux.Header{
{Name: ":status", Value: "200"},
{Name: ":status", Value: "200"},
})
}),
}

6
connection/http2.go

@ -10,11 +10,11 @@ import (
"strings"
"sync"
"github.com/cloudflare/cloudflared/h2mux"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
"github.com/rs/zerolog"
"golang.org/x/net/http2"
"github.com/cloudflare/cloudflared/h2mux"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
)
const (

9
connection/http2_test.go

@ -12,15 +12,14 @@ import (
"testing"
"time"
"github.com/stretchr/testify/assert"
"github.com/cloudflare/cloudflared/tunnelrpc/pogs"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
"github.com/gobwas/ws/wsutil"
"github.com/rs/zerolog"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"golang.org/x/net/http2"
"github.com/cloudflare/cloudflared/tunnelrpc/pogs"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
)
var (

5
connection/metrics.go

@ -4,8 +4,9 @@ import (
"sync"
"time"
"github.com/cloudflare/cloudflared/h2mux"
"github.com/prometheus/client_golang/prometheus"
"github.com/cloudflare/cloudflared/h2mux"
)
const (
@ -414,4 +415,4 @@ func newTunnelMetrics() *tunnelMetrics {
tunnelMetricsInternal.metrics = initTunnelMetrics()
})
return tunnelMetricsInternal.metrics
}
}

4
connection/observer.go

@ -5,9 +5,9 @@ import (
"net/url"
"strings"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
"github.com/rs/zerolog"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
)
const (

5
connection/observer_test.go

@ -67,10 +67,9 @@ func TestObserverEventsDontBlock(t *testing.T) {
}
}
type eventCollectorSink struct {
observedEvents []Event
mu sync.Mutex
mu sync.Mutex
}
func (s *eventCollectorSink) OnTunnelEvent(event Event) {
@ -83,4 +82,4 @@ func (s *eventCollectorSink) assertSawEvent(t *testing.T, event Event) {
s.mu.Lock()
defer s.mu.Unlock()
assert.Contains(t, s.observedEvents, event)
}
}

6
connection/rpc.go

@ -6,11 +6,11 @@ import (
"io"
"time"
"github.com/cloudflare/cloudflared/tunnelrpc"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
"github.com/rs/zerolog"
"zombiezen.com/go/capnproto2/rpc"
"github.com/cloudflare/cloudflared/tunnelrpc"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
)
type tunnelServerClient struct {

3
edgediscovery/edgediscovery.go

@ -5,8 +5,9 @@ import (
"net"
"sync"
"github.com/cloudflare/cloudflared/edgediscovery/allregions"
"github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/edgediscovery/allregions"
)
const (

14
fmt-check.sh

@ -0,0 +1,14 @@
#!/bin/bash
set -e -o pipefail
OUTPUT=$(for d in $(go list -mod=vendor -f '{{.Dir}}' -a ./... | fgrep -v tunnelrpc) ; do goimports -format-only -local github.com/cloudflare/cloudflared -d $d ; done)
if [ -n "$OUTPUT" ] ; then
PAGER=$(which colordiff || echo cat)
echo
echo "Code formatting issues found, use 'goimports -format-only -local github.com/cloudflare/cloudflared' to correct them"
echo
echo "$OUTPUT" | $PAGER
exit 1
fi

3
h2mux/muxwriter.go

@ -3,10 +3,11 @@ package h2mux
import (
"bytes"
"encoding/binary"
"github.com/rs/zerolog"
"io"
"time"
"github.com/rs/zerolog"
"golang.org/x/net/http2"
"golang.org/x/net/http2/hpack"
)

6
ingress/ingress.go

@ -9,12 +9,12 @@ import (
"strings"
"sync"
"github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/ipaccess"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/urfave/cli/v2"
"github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/ipaccess"
)
var (

2
ingress/ingress_test.go

@ -12,7 +12,7 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/urfave/cli/v2"
"gopkg.in/yaml.v2"
yaml "gopkg.in/yaml.v2"
"github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/ipaccess"

5
ingress/origin_connection.go

@ -7,11 +7,12 @@ import (
"net"
"net/http"
gws "github.com/gorilla/websocket"
"github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/ipaccess"
"github.com/cloudflare/cloudflared/socks"
"github.com/cloudflare/cloudflared/websocket"
gws "github.com/gorilla/websocket"
"github.com/rs/zerolog"
)
// OriginConnection is a way to stream to a service running on the user's origin.

5
ingress/origin_connection_test.go

@ -13,14 +13,15 @@ import (
"testing"
"time"
"github.com/cloudflare/cloudflared/logger"
"github.com/cloudflare/cloudflared/socks"
"github.com/gobwas/ws/wsutil"
gorillaWS "github.com/gorilla/websocket"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"golang.org/x/net/proxy"
"golang.org/x/sync/errgroup"
"github.com/cloudflare/cloudflared/logger"
"github.com/cloudflare/cloudflared/socks"
)
const (

3
ingress/origin_proxy.go

@ -7,9 +7,10 @@ import (
"net/url"
"strings"
"github.com/pkg/errors"
"github.com/cloudflare/cloudflared/h2mux"
"github.com/cloudflare/cloudflared/websocket"
"github.com/pkg/errors"
)
var (

5
ingress/origin_proxy_test.go

@ -11,10 +11,11 @@ import (
"sync"
"testing"
"github.com/cloudflare/cloudflared/h2mux"
"github.com/cloudflare/cloudflared/websocket"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/cloudflare/cloudflared/h2mux"
"github.com/cloudflare/cloudflared/websocket"
)
// TestEstablishConnectionResponse ensures each implementation of StreamBasedOriginProxy returns

2
ingress/origin_request_config.go

@ -3,10 +3,10 @@ package ingress
import (
"time"
"github.com/cloudflare/cloudflared/ipaccess"
"github.com/urfave/cli/v2"
"github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/ipaccess"
"github.com/cloudflare/cloudflared/tlsconfig"
)

5
ingress/origin_request_config_test.go

@ -5,10 +5,11 @@ import (
"testing"
"time"
"github.com/cloudflare/cloudflared/config"
"github.com/stretchr/testify/require"
"github.com/urfave/cli/v2"
"gopkg.in/yaml.v2"
yaml "gopkg.in/yaml.v2"
"github.com/cloudflare/cloudflared/config"
)
// Ensure that the nullable config from `config` package and the

7
ingress/origin_service.go

@ -11,14 +11,15 @@ import (
"sync"
"time"
gws "github.com/gorilla/websocket"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/hello"
"github.com/cloudflare/cloudflared/ipaccess"
"github.com/cloudflare/cloudflared/socks"
"github.com/cloudflare/cloudflared/tlsconfig"
"github.com/cloudflare/cloudflared/websocket"
gws "github.com/gorilla/websocket"
"github.com/pkg/errors"
"github.com/rs/zerolog"
)
// originService is something a tunnel can proxy traffic to.

31
logger/create_test.go

@ -1,11 +1,12 @@
package logger
import (
"io"
"testing"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/stretchr/testify/assert"
"io"
"testing"
)
var writeCalls int
@ -31,45 +32,45 @@ func TestResilientMultiWriter(t *testing.T) {
writers []io.Writer
}{
{
name: "All valid writers",
name: "All valid writers",
writers: []io.Writer{
mockedWriter {
mockedWriter{
wantErr: false,
},
mockedWriter {
mockedWriter{
wantErr: false,
},
},
},
{
name: "All invalid writers",
name: "All invalid writers",
writers: []io.Writer{
mockedWriter {
mockedWriter{
wantErr: true,
},
mockedWriter {
mockedWriter{
wantErr: true,
},
},
},
{
name: "First invalid writer",
name: "First invalid writer",
writers: []io.Writer{
mockedWriter {
mockedWriter{
wantErr: true,
},
mockedWriter {
mockedWriter{
wantErr: false,
},
},
},
{
name: "First valid writer",
name: "First valid writer",
writers: []io.Writer{
mockedWriter {
mockedWriter{
wantErr: false,
},
mockedWriter {
mockedWriter{
wantErr: true,
},
},
@ -86,4 +87,4 @@ func TestResilientMultiWriter(t *testing.T) {
assert.Equal(t, len(writers), writeCalls)
writeCalls = 0
}
}
}

43
metrics/timer.go

@ -1,47 +1,48 @@
package metrics
import (
"time"
"github.com/prometheus/client_golang/prometheus"
"time"
"github.com/prometheus/client_golang/prometheus"
)
// Timer assumes the metrics is partitioned by one label
type Timer struct {
startTime map[string]time.Time
metrics *prometheus.HistogramVec
measureUnit time.Duration
labelKey string
startTime map[string]time.Time
metrics *prometheus.HistogramVec
measureUnit time.Duration
labelKey string
}
func NewTimer(metrics *prometheus.HistogramVec, unit time.Duration, labelKey string) *Timer {
return &Timer{
startTime: make(map[string]time.Time),
measureUnit: unit,
metrics: metrics,
labelKey: labelKey,
}
return &Timer{
startTime: make(map[string]time.Time),
measureUnit: unit,
metrics: metrics,
labelKey: labelKey,
}
}
func (i *Timer) Start(labelVal string) {
i.startTime[labelVal] = time.Now()
i.startTime[labelVal] = time.Now()
}
func (i *Timer) End(labelVal string) time.Duration {
if start, ok := i.startTime[labelVal]; ok {
return Latency(start, time.Now())
}
return 0
if start, ok := i.startTime[labelVal]; ok {
return Latency(start, time.Now())
}
return 0
}
func (i *Timer) Observe(measurement time.Duration, labelVal string) {
metricsLabels := prometheus.Labels{i.labelKey: labelVal}
i.metrics.With(metricsLabels).Observe(float64(measurement / i.measureUnit))
metricsLabels := prometheus.Labels{i.labelKey: labelVal}
i.metrics.With(metricsLabels).Observe(float64(measurement / i.measureUnit))
}
func (i *Timer) EndAndObserve(labelVal string) {
i.Observe(i.End(labelVal), labelVal)
i.Observe(i.End(labelVal), labelVal)
}
func Latency(startTime, endTime time.Time) time.Duration {
return endTime.Sub(startTime)
return endTime.Sub(startTime)
}

32
metrics/timer_test.go

@ -1,24 +1,24 @@
package metrics
import (
"testing"
"time"
"testing"
"time"
"github.com/prometheus/client_golang/prometheus"
"github.com/stretchr/testify/assert"
"github.com/prometheus/client_golang/prometheus"
"github.com/stretchr/testify/assert"
)
func TestEnd(t *testing.T) {
m := prometheus.NewHistogramVec(
prometheus.HistogramOpts{
Namespace: "TestCallLatencyWithoutMeasurement",
Name: "Latency",
Buckets: prometheus.LinearBuckets(0, 50, 100),
},
[]string{"key"},
)
timer := NewTimer(m, time.Millisecond, "key")
assert.Equal(t, time.Duration(0), timer.End("dne"))
timer.Start("test")
assert.NotEqual(t, time.Duration(0), timer.End("test"))
m := prometheus.NewHistogramVec(
prometheus.HistogramOpts{
Namespace: "TestCallLatencyWithoutMeasurement",
Name: "Latency",
Buckets: prometheus.LinearBuckets(0, 50, 100),
},
[]string{"key"},
)
timer := NewTimer(m, time.Millisecond, "key")
assert.Equal(t, time.Duration(0), timer.End("dne"))
timer.Start("test")
assert.NotEqual(t, time.Duration(0), timer.End("test"))
}

0
origin/cloudflared.log

3
origin/metrics.go

@ -1,8 +1,9 @@
package origin
import (
"github.com/cloudflare/cloudflared/connection"
"github.com/prometheus/client_golang/prometheus"
"github.com/cloudflare/cloudflared/connection"
)
// Metrics uses connection.MetricsNamespace(aka cloudflared) as namespace and connection.TunnelSubsystem

15
origin/proxy_test.go

@ -13,20 +13,19 @@ import (
"testing"
"time"
"github.com/cloudflare/cloudflared/logger"
"github.com/gobwas/ws/wsutil"
gorillaWS "github.com/gorilla/websocket"
"github.com/rs/zerolog"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/urfave/cli/v2"
"github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/connection"
"github.com/cloudflare/cloudflared/hello"
"github.com/cloudflare/cloudflared/ingress"
"github.com/cloudflare/cloudflared/logger"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
gorillaWS "github.com/gorilla/websocket"
"github.com/urfave/cli/v2"
"github.com/gobwas/ws/wsutil"
"github.com/rs/zerolog"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
var (

3
origin/reconnect.go

@ -7,8 +7,9 @@ import (
"sync"
"time"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
"github.com/prometheus/client_golang/prometheus"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
)
var (

6
origin/supervisor.go

@ -7,14 +7,14 @@ import (
"net"
"time"
"github.com/google/uuid"
"github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/connection"
"github.com/cloudflare/cloudflared/edgediscovery"
"github.com/cloudflare/cloudflared/h2mux"
"github.com/cloudflare/cloudflared/signal"
tunnelpogs "github.com/cloudflare/cloudflared/tunnelrpc/pogs"
"github.com/google/uuid"
"github.com/rs/zerolog"
)
const (

4
origin/tunnel_test.go

@ -4,10 +4,10 @@ import (
"testing"
"time"
"github.com/cloudflare/cloudflared/connection"
"github.com/rs/zerolog"
"github.com/stretchr/testify/assert"
"github.com/cloudflare/cloudflared/connection"
)
type dynamicMockFetcher struct {

3
socks/request_handler.go

@ -6,8 +6,9 @@ import (
"net"
"strings"
"github.com/cloudflare/cloudflared/ipaccess"
"github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/ipaccess"
)
// RequestHandler is the functions needed to handle a SOCKS5 command

3
socks/request_handler_test.go

@ -4,8 +4,9 @@ import (
"bytes"
"testing"
"github.com/cloudflare/cloudflared/ipaccess"
"github.com/stretchr/testify/assert"
"github.com/cloudflare/cloudflared/ipaccess"
)
func TestUnsupportedBind(t *testing.T) {

1
sshgen/sshgen.go

@ -18,6 +18,7 @@ import (
homedir "github.com/mitchellh/go-homedir"
"github.com/pkg/errors"
gossh "golang.org/x/crypto/ssh"
"github.com/cloudflare/cloudflared/config"
cfpath "github.com/cloudflare/cloudflared/token"
)

2
token/path.go

@ -6,7 +6,7 @@ import (
"path/filepath"
"strings"
"github.com/mitchellh/go-homedir"
homedir "github.com/mitchellh/go-homedir"
"github.com/cloudflare/cloudflared/config"
)

1
token/shell.go

@ -4,4 +4,3 @@ package token
func OpenBrowser(url string) error {
return getBrowserCmd(url).Start()
}

6
token/token.go

@ -13,12 +13,12 @@ import (
"syscall"
"time"
"github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/origin"
"github.com/coreos/go-oidc/jose"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/origin"
)
const (

16
token/token_test.go

@ -17,7 +17,7 @@ func TestSignalHandler(t *testing.T) {
handlerRan := false
done := make(chan struct{})
timer := time.NewTimer(time.Second)
sigHandler.register(func(){
sigHandler.register(func() {
handlerRan = true
done <- struct{}{}
})
@ -28,10 +28,10 @@ func TestSignalHandler(t *testing.T) {
// Blocks for up to one second to make sure the handler callback runs before the assert.
select {
case <- done:
assert.True(t, handlerRan)
case <- timer.C:
t.Fail()
case <-done:
assert.True(t, handlerRan)
case <-timer.C:
t.Fail()
}
sigHandler.deregister()
}
@ -40,15 +40,15 @@ func TestSignalHandlerClose(t *testing.T) {
sigHandler := signalHandler{signals: []os.Signal{syscall.SIGUSR1}}
done := make(chan struct{})
timer := time.NewTimer(time.Second)
sigHandler.register(func(){done <- struct{}{}})
sigHandler.register(func() { done <- struct{}{} })
sigHandler.deregister()
p, err := os.FindProcess(os.Getpid())
require.Nil(t, err)
p.Signal(syscall.SIGUSR1)