diff options
Diffstat (limited to 'src/cmd/godoc/play-appengine.go')
-rw-r--r-- | src/cmd/godoc/play-appengine.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/cmd/godoc/play-appengine.go b/src/cmd/godoc/play-appengine.go new file mode 100644 index 000000000..9e351d1a2 --- /dev/null +++ b/src/cmd/godoc/play-appengine.go @@ -0,0 +1,35 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// App Engine godoc Playground functionality. + +// +build appengine + +package main + +import ( + "io" + "net/http" + + "appengine" + "appengine/urlfetch" +) + +func bounceToPlayground(w http.ResponseWriter, req *http.Request) { + c := appengine.NewContext(req) + client := urlfetch.Client(c) + url := playgroundBaseURL + req.URL.Path + defer req.Body.Close() + resp, err := client.Post(url, req.Header.Get("Content-type"), req.Body) + if err != nil { + http.Error(w, "Internal Server Error", 500) + c.Errorf("making POST request: %v", err) + return + } + defer resp.Body.Close() + if _, err := io.Copy(w, resp.Body); err != nil { + http.Error(w, "Internal Server Error", 500) + c.Errorf("making POST request: %v", err) + } +} |