mirror of
				https://github.com/tailscale/tailscale.git
				synced 2025-10-31 03:09:01 +00:00 
			
		
		
		
	client/tailscale,ipn/localapi: warn on tailscale/tailscaled version skew
Fixes #1905 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
		| @@ -17,6 +17,7 @@ import ( | ||||
| 	"net" | ||||
| 	"net/http" | ||||
| 	"net/url" | ||||
| 	"os" | ||||
| 	"strconv" | ||||
| 	"strings" | ||||
| 	"time" | ||||
| @@ -28,6 +29,7 @@ import ( | ||||
| 	"tailscale.com/paths" | ||||
| 	"tailscale.com/safesocket" | ||||
| 	"tailscale.com/tailcfg" | ||||
| 	"tailscale.com/version" | ||||
| ) | ||||
|  | ||||
| // TailscaledSocket is the tailscaled Unix socket. | ||||
| @@ -94,6 +96,9 @@ func send(ctx context.Context, method, path string, wantStatus int, body io.Read | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	defer res.Body.Close() | ||||
| 	if server := res.Header.Get("Tailscale-Version"); server != version.Long { | ||||
| 		fmt.Fprintf(os.Stderr, "Warning: client version %q != tailscaled server version %q\n", version.Long, server) | ||||
| 	} | ||||
| 	slurp, err := ioutil.ReadAll(res.Body) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
|   | ||||
| @@ -30,6 +30,7 @@ import ( | ||||
| 	"tailscale.com/ipn/ipnstate" | ||||
| 	"tailscale.com/tailcfg" | ||||
| 	"tailscale.com/types/logger" | ||||
| 	"tailscale.com/version" | ||||
| ) | ||||
|  | ||||
| func randHex(n int) string { | ||||
| @@ -64,6 +65,7 @@ func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { | ||||
| 		http.Error(w, "server has no local backend", http.StatusInternalServerError) | ||||
| 		return | ||||
| 	} | ||||
| 	w.Header().Set("Tailscale-Version", version.Long) | ||||
| 	if h.RequiredPassword != "" { | ||||
| 		_, pass, ok := r.BasicAuth() | ||||
| 		if !ok { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Brad Fitzpatrick
					Brad Fitzpatrick