ipn/localapi: add debug (root-required) access to inject debug Notify

For testing of Windows GUI client.

Updates #6480

Change-Id: I42f7526d95723e14bed7085fb759e371b43aa9da
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick
2022-12-02 20:13:36 -08:00
committed by Brad Fitzpatrick
parent 96cad35870
commit 57124e2126
2 changed files with 28 additions and 2 deletions

View File

@@ -1820,6 +1820,13 @@ func (b *LocalBackend) pollRequestEngineStatus(ctx context.Context) {
}
}
// DebugNotify injects a fake notify message to clients.
//
// It should only be used via the LocalAPI's debug handler.
func (b *LocalBackend) DebugNotify(n ipn.Notify) {
b.send(n)
}
// send delivers n to the connected frontend and any API watchers from
// LocalBackend.WatchNotifications (via the LocalAPI).
//
@@ -1828,7 +1835,9 @@ func (b *LocalBackend) pollRequestEngineStatus(ctx context.Context) {
//
// b.mu must not be held.
func (b *LocalBackend) send(n ipn.Notify) {
n.Version = version.Long
if n.Version == "" {
n.Version = version.Long
}
b.mu.Lock()
notifyFunc := b.notify