c8ebbede54
This PR removes the complicated session management introduced in https://github.com/juanfont/headscale/pull/1791 which kept track of the sessions in a map, in addition to the channel already kept track of in the notifier. Instead of trying to close the mapsession, it will now be replaced by the new one and closed after so all new updates goes to the right place. The map session serve function is also split into a streaming and a non-streaming version for better readability. RemoveNode in the notifier will not remove a node if the channel is not matching the one that has been passed (e.g. it has been replaced with a new one). A new tuning parameter has been added to added to set timeout before the notifier gives up to send an update to a node. Add a keep alive resetter so we wait with sending keep alives if a node has just received an update. In addition it adds a bunch of env debug flags that can be set: - `HEADSCALE_DEBUG_HIGH_CARDINALITY_METRICS`: make certain metrics include per node.id, not recommended to use in prod. - `HEADSCALE_DEBUG_PROFILING_ENABLED`: activate tracing - `HEADSCALE_DEBUG_PROFILING_PATH`: where to store traces - `HEADSCALE_DEBUG_DUMP_CONFIG`: calls `spew.Dump` on the config object startup - `HEADSCALE_DEBUG_DEADLOCK`: enable go-deadlock to dump goroutines if it looks like a deadlock has occured, enabled in integration tests. Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
215 lines
11 KiB
Modula-2
215 lines
11 KiB
Modula-2
module github.com/juanfont/headscale
|
|
|
|
go 1.22.0
|
|
|
|
toolchain go1.22.2
|
|
|
|
require (
|
|
github.com/AlecAivazis/survey/v2 v2.3.7
|
|
github.com/coreos/go-oidc/v3 v3.10.0
|
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
|
|
github.com/deckarep/golang-set/v2 v2.6.0
|
|
github.com/glebarez/sqlite v1.11.0
|
|
github.com/go-gormigrate/gormigrate/v2 v2.1.2
|
|
github.com/gofrs/uuid/v5 v5.2.0
|
|
github.com/google/go-cmp v0.6.0
|
|
github.com/gorilla/mux v1.8.1
|
|
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0
|
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0
|
|
github.com/jagottsicher/termcolor v1.0.2
|
|
github.com/klauspost/compress v1.17.8
|
|
github.com/oauth2-proxy/mockoidc v0.0.0-20240214162133-caebfff84d25
|
|
github.com/ory/dockertest/v3 v3.10.0
|
|
github.com/patrickmn/go-cache v2.1.0+incompatible
|
|
github.com/philip-bui/grpc-zerolog v1.0.1
|
|
github.com/pkg/profile v1.7.0
|
|
github.com/prometheus/client_golang v1.18.0
|
|
github.com/prometheus/common v0.46.0
|
|
github.com/pterm/pterm v0.12.79
|
|
github.com/puzpuzpuz/xsync/v3 v3.1.0
|
|
github.com/rs/zerolog v1.32.0
|
|
github.com/samber/lo v1.39.0
|
|
github.com/sasha-s/go-deadlock v0.3.1
|
|
github.com/spf13/cobra v1.8.0
|
|
github.com/spf13/viper v1.18.2
|
|
github.com/stretchr/testify v1.9.0
|
|
github.com/tailscale/hujson v0.0.0-20221223112325-20486734a56a
|
|
github.com/tailscale/tailsql v0.0.0-20240418235827-820559f382c1
|
|
github.com/tcnksm/go-latest v0.0.0-20170313132115-e3007ae9052e
|
|
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba
|
|
golang.org/x/crypto v0.23.0
|
|
golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842
|
|
golang.org/x/net v0.25.0
|
|
golang.org/x/oauth2 v0.20.0
|
|
golang.org/x/sync v0.7.0
|
|
google.golang.org/genproto/googleapis/api v0.0.0-20240515191416-fc5f0ca64291
|
|
google.golang.org/grpc v1.64.0
|
|
google.golang.org/protobuf v1.34.1
|
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
|
|
gopkg.in/yaml.v3 v3.0.1
|
|
gorm.io/driver/postgres v1.5.7
|
|
gorm.io/gorm v1.25.10
|
|
tailscale.com v1.66.3
|
|
)
|
|
|
|
require (
|
|
atomicgo.dev/cursor v0.2.0 // indirect
|
|
atomicgo.dev/keyboard v0.2.9 // indirect
|
|
atomicgo.dev/schedule v0.1.0 // indirect
|
|
dario.cat/mergo v1.0.0 // indirect
|
|
filippo.io/edwards25519 v1.1.0 // indirect
|
|
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect
|
|
github.com/Microsoft/go-winio v0.6.2 // indirect
|
|
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect
|
|
github.com/akutz/memconn v0.1.0 // indirect
|
|
github.com/alexbrainman/sspi v0.0.0-20231016080023-1a75b4708caa // indirect
|
|
github.com/aws/aws-sdk-go-v2 v1.24.1 // indirect
|
|
github.com/aws/aws-sdk-go-v2/config v1.26.6 // indirect
|
|
github.com/aws/aws-sdk-go-v2/credentials v1.16.16 // indirect
|
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/ssm v1.45.0 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/sso v1.18.7 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/sts v1.26.7 // indirect
|
|
github.com/aws/smithy-go v1.19.0 // indirect
|
|
github.com/beorn7/perks v1.0.1 // indirect
|
|
github.com/bits-and-blooms/bitset v1.13.0 // indirect
|
|
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
|
|
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
|
github.com/containerd/console v1.0.4 // indirect
|
|
github.com/containerd/continuity v0.4.3 // indirect
|
|
github.com/coreos/go-iptables v0.7.1-0.20240112124308-65c67c9f46e6 // indirect
|
|
github.com/creachadair/mds v0.14.5 // indirect
|
|
github.com/dblohm7/wingoes v0.0.0-20240123200102-b75a8a7d7eb0 // indirect
|
|
github.com/digitalocean/go-smbios v0.0.0-20180907143718-390a4f403a8e // indirect
|
|
github.com/docker/cli v26.1.3+incompatible // indirect
|
|
github.com/docker/docker v26.1.3+incompatible // indirect
|
|
github.com/docker/go-connections v0.5.0 // indirect
|
|
github.com/docker/go-units v0.5.0 // indirect
|
|
github.com/dustin/go-humanize v1.0.1 // indirect
|
|
github.com/felixge/fgprof v0.9.4 // indirect
|
|
github.com/fsnotify/fsnotify v1.7.0 // indirect
|
|
github.com/fxamacker/cbor/v2 v2.5.0 // indirect
|
|
github.com/gaissmai/bart v0.4.1 // indirect
|
|
github.com/glebarez/go-sqlite v1.22.0 // indirect
|
|
github.com/go-jose/go-jose/v3 v3.0.3 // indirect
|
|
github.com/go-jose/go-jose/v4 v4.0.1 // indirect
|
|
github.com/go-json-experiment/json v0.0.0-20231102232822-2e55bd4e08b0 // indirect
|
|
github.com/go-ole/go-ole v1.3.0 // indirect
|
|
github.com/godbus/dbus/v5 v5.1.1-0.20230522191255-76236955d466 // indirect
|
|
github.com/gogo/protobuf v1.3.2 // indirect
|
|
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
|
|
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
|
github.com/golang/protobuf v1.5.4 // indirect
|
|
github.com/google/btree v1.1.2 // indirect
|
|
github.com/google/go-github v17.0.0+incompatible // indirect
|
|
github.com/google/go-querystring v1.1.0 // indirect
|
|
github.com/google/nftables v0.2.1-0.20240414091927-5e242ec57806 // indirect
|
|
github.com/google/pprof v0.0.0-20240509144519-723abb6459b7 // indirect
|
|
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
|
|
github.com/google/uuid v1.6.0 // indirect
|
|
github.com/gookit/color v1.5.4 // indirect
|
|
github.com/gorilla/csrf v1.7.2 // indirect
|
|
github.com/gorilla/securecookie v1.1.2 // indirect
|
|
github.com/hashicorp/go-version v1.6.0 // indirect
|
|
github.com/hashicorp/hcl v1.0.0 // indirect
|
|
github.com/hdevalence/ed25519consensus v0.2.0 // indirect
|
|
github.com/illarion/gonotify v1.0.1 // indirect
|
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
|
github.com/insomniacslk/dhcp v0.0.0-20240129002554-15c9b8791914 // indirect
|
|
github.com/jackc/pgpassfile v1.0.0 // indirect
|
|
github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9 // indirect
|
|
github.com/jackc/pgx/v5 v5.5.5 // indirect
|
|
github.com/jackc/puddle/v2 v2.2.1 // indirect
|
|
github.com/jinzhu/inflection v1.0.0 // indirect
|
|
github.com/jinzhu/now v1.1.5 // indirect
|
|
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
|
github.com/josharian/native v1.1.1-0.20230202152459-5c7d0dd6ab86 // indirect
|
|
github.com/jsimonetti/rtnetlink v1.4.1 // indirect
|
|
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
|
|
github.com/kortschak/wol v0.0.0-20200729010619-da482cc4850a // indirect
|
|
github.com/kr/pretty v0.3.1 // indirect
|
|
github.com/kr/text v0.2.0 // indirect
|
|
github.com/lib/pq v1.10.7 // indirect
|
|
github.com/lithammer/fuzzysearch v1.1.8 // indirect
|
|
github.com/magiconair/properties v1.8.7 // indirect
|
|
github.com/mattn/go-colorable v0.1.13 // indirect
|
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
|
github.com/mattn/go-runewidth v0.0.15 // indirect
|
|
github.com/mdlayher/genetlink v1.3.2 // indirect
|
|
github.com/mdlayher/netlink v1.7.2 // indirect
|
|
github.com/mdlayher/sdnotify v1.0.0 // indirect
|
|
github.com/mdlayher/socket v0.5.0 // indirect
|
|
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect
|
|
github.com/miekg/dns v1.1.58 // indirect
|
|
github.com/mitchellh/go-ps v1.0.0 // indirect
|
|
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
|
github.com/moby/docker-image-spec v1.3.1 // indirect
|
|
github.com/moby/term v0.5.0 // indirect
|
|
github.com/ncruces/go-strftime v0.1.9 // indirect
|
|
github.com/opencontainers/go-digest v1.0.0 // indirect
|
|
github.com/opencontainers/image-spec v1.1.0 // indirect
|
|
github.com/opencontainers/runc v1.1.12 // indirect
|
|
github.com/pelletier/go-toml/v2 v2.2.2 // indirect
|
|
github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect
|
|
github.com/pierrec/lz4/v4 v4.1.21 // indirect
|
|
github.com/pkg/errors v0.9.1 // indirect
|
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
|
github.com/prometheus/client_model v0.5.0 // indirect
|
|
github.com/prometheus/procfs v0.12.0 // indirect
|
|
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
|
github.com/rivo/uniseg v0.4.7 // indirect
|
|
github.com/rogpeppe/go-internal v1.12.0 // indirect
|
|
github.com/safchain/ethtool v0.3.0 // indirect
|
|
github.com/sagikazarmark/locafero v0.4.0 // indirect
|
|
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
|
|
github.com/sirupsen/logrus v1.9.3 // indirect
|
|
github.com/sourcegraph/conc v0.3.0 // indirect
|
|
github.com/spf13/afero v1.11.0 // indirect
|
|
github.com/spf13/cast v1.6.0 // indirect
|
|
github.com/spf13/pflag v1.0.5 // indirect
|
|
github.com/subosito/gotenv v1.6.0 // indirect
|
|
github.com/tailscale/certstore v0.1.1-0.20231202035212-d3fa0460f47e // indirect
|
|
github.com/tailscale/go-winio v0.0.0-20231025203758-c4f33415bf55 // indirect
|
|
github.com/tailscale/golang-x-crypto v0.0.0-20240108194725-7ce1f622c780 // indirect
|
|
github.com/tailscale/goupnp v1.0.1-0.20210804011211-c64d0f06ea05 // indirect
|
|
github.com/tailscale/netlink v1.1.1-0.20211101221916-cabfb018fe85 // indirect
|
|
github.com/tailscale/peercred v0.0.0-20240214030740-b535050b2aa4 // indirect
|
|
github.com/tailscale/setec v0.0.0-20240314234648-9da8e7407257 // indirect
|
|
github.com/tailscale/squibble v0.0.0-20240418235321-9ee0eeb78185 // indirect
|
|
github.com/tailscale/web-client-prebuilt v0.0.0-20240226180453-5db17b287bf1 // indirect
|
|
github.com/tailscale/wireguard-go v0.0.0-20240429185444-03c5a0ccf754 // indirect
|
|
github.com/tcnksm/go-httpstat v0.2.0 // indirect
|
|
github.com/u-root/uio v0.0.0-20240118234441-a3c409a6018e // indirect
|
|
github.com/vishvananda/netlink v1.2.1-beta.2 // indirect
|
|
github.com/vishvananda/netns v0.0.4 // indirect
|
|
github.com/x448/float16 v0.8.4 // indirect
|
|
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
|
|
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
|
|
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
|
|
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
|
|
go.uber.org/multierr v1.11.0 // indirect
|
|
go4.org/mem v0.0.0-20220726221520-4f986261bf13 // indirect
|
|
golang.org/x/mod v0.17.0 // indirect
|
|
golang.org/x/sys v0.20.0 // indirect
|
|
golang.org/x/term v0.20.0 // indirect
|
|
golang.org/x/text v0.15.0 // indirect
|
|
golang.org/x/time v0.5.0 // indirect
|
|
golang.org/x/tools v0.21.0 // indirect
|
|
golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect
|
|
golang.zx2c4.com/wireguard/windows v0.5.3 // indirect
|
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 // indirect
|
|
gopkg.in/ini.v1 v1.67.0 // indirect
|
|
gopkg.in/yaml.v2 v2.4.0 // indirect
|
|
gvisor.dev/gvisor v0.0.0-20240306221502-ee1e1f6070e3 // indirect
|
|
modernc.org/libc v1.50.6 // indirect
|
|
modernc.org/mathutil v1.6.0 // indirect
|
|
modernc.org/memory v1.8.0 // indirect
|
|
modernc.org/sqlite v1.29.9 // indirect
|
|
nhooyr.io/websocket v1.8.10 // indirect
|
|
)
|