ipn/ipnlocal: use PATCH for EditPrefs, not POST

Addendum to earlier 00d641d9fc.

Reserve POST for SetPrefs in the future.

Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
pull/1691/head
Brad Fitzpatrick 4 years ago
parent 4b47393e0c
commit 79109f4965

@ -219,7 +219,7 @@ func EditPrefs(ctx context.Context, mp *ipn.MaskedPrefs) (*ipn.Prefs, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
body, err := send(ctx, "POST", "/localapi/v0/prefs", http.StatusOK, bytes.NewReader(mpj)) body, err := send(ctx, "PATCH", "/localapi/v0/prefs", http.StatusOK, bytes.NewReader(mpj))
if err != nil { if err != nil {
return nil, err return nil, err
} }

@ -226,7 +226,8 @@ func (h *Handler) servePrefs(w http.ResponseWriter, r *http.Request) {
return return
} }
var prefs *ipn.Prefs var prefs *ipn.Prefs
if r.Method == "POST" { switch r.Method {
case "PATCH":
mp := new(ipn.MaskedPrefs) mp := new(ipn.MaskedPrefs)
if err := json.NewDecoder(r.Body).Decode(mp); err != nil { if err := json.NewDecoder(r.Body).Decode(mp); err != nil {
http.Error(w, err.Error(), 400) http.Error(w, err.Error(), 400)
@ -238,8 +239,11 @@ func (h *Handler) servePrefs(w http.ResponseWriter, r *http.Request) {
http.Error(w, err.Error(), 400) http.Error(w, err.Error(), 400)
return return
} }
} else { case "GET", "HEAD":
prefs = h.b.Prefs() prefs = h.b.Prefs()
default:
http.Error(w, "unsupported method", http.StatusMethodNotAllowed)
return
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
e := json.NewEncoder(w) e := json.NewEncoder(w)

Loading…
Cancel
Save