diff options
| author | Brad Fitzpatrick <bradfitz@tailscale.com> | 2022-05-05 13:37:18 -0700 |
|---|---|---|
| committer | Brad Fitzpatrick <bradfitz@tailscale.com> | 2022-05-06 11:07:33 -0700 |
| commit | 2396a87871777aa1e3d1403559be4ee340c180ca (patch) | |
| tree | aefa27a21beb2f96a9129a5890326358fc76339f /ipn | |
| parent | 025867fd0784da0458e0430e7209cdcf1a19f046 (diff) | |
| download | tailscale-bradfitz/tcp_flows.tar.xz tailscale-bradfitz/tcp_flows.zip | |
wgengine/filter: do stateful TCP connection trackingbradfitz/tcp_flows
WIP
Fixes #859
Change-Id: I34c077825248dcebf4283d63081e5bc152b7a58b
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
Diffstat (limited to 'ipn')
| -rw-r--r-- | ipn/ipnlocal/local.go | 12 | ||||
| -rw-r--r-- | ipn/localapi/localapi.go | 2 |
2 files changed, 14 insertions, 0 deletions
diff --git a/ipn/ipnlocal/local.go b/ipn/ipnlocal/local.go index 2d2d0f90d..d6b1d9daa 100644 --- a/ipn/ipnlocal/local.go +++ b/ipn/ipnlocal/local.go @@ -9,6 +9,7 @@ import ( "errors" "fmt" "io" + "log" "net" "net/http" "os" @@ -3283,6 +3284,17 @@ func (b *LocalBackend) DebugReSTUN() error { return nil } +func (b *LocalBackend) DebugKickAllTCPIn() error { + filt, ok := b.filterAtomic.Load().(*filter.Filter) + if !ok { + return errors.New("no filter") + } + for _, flow := range filt.OpenTCPFlows() { + log.Printf("XXX: flow open: %+v", flow) + } + return nil +} + func (b *LocalBackend) magicConn() (*magicsock.Conn, error) { ig, ok := b.e.(wgengine.InternalsGetter) if !ok { diff --git a/ipn/localapi/localapi.go b/ipn/localapi/localapi.go index 699758d3e..286a54754 100644 --- a/ipn/localapi/localapi.go +++ b/ipn/localapi/localapi.go @@ -278,6 +278,8 @@ func (h *Handler) serveDebug(w http.ResponseWriter, r *http.Request) { err = h.b.DebugRebind() case "restun": err = h.b.DebugReSTUN() + case "kick-all-tcp-in": + err = h.b.DebugKickAllTCPIn() case "": err = fmt.Errorf("missing parameter 'action'") default: |
