| Index: server/prpc/decoding.go
|
| diff --git a/server/prpc/decoding.go b/server/prpc/decoding.go
|
| index 874c48111b51c9267d89e6f4e071dadad013fb61..a6ae48875be64d3054ac16146ab3ffff67b8ef32 100644
|
| --- a/server/prpc/decoding.go
|
| +++ b/server/prpc/decoding.go
|
| @@ -51,23 +51,17 @@ func requestFormat(contentType string) (format, error) {
|
| case formatUnrecognized:
|
| return f, fmt.Errorf("%q is not supported", contentType)
|
|
|
| - case formatUnspecified:
|
| - return formatBinary, nil
|
| -
|
| case formatBinary, formatJSONPB, formatText:
|
| return f, nil
|
|
|
| default:
|
| - panic("cannot happen")
|
| + return formatBinary, nil
|
| }
|
| }
|
|
|
| // readMessage decodes a protobuf message from an HTTP request.
|
| // Does not close the request body.
|
| -func readMessage(r *http.Request, msg proto.Message) *httpError {
|
| - if msg == nil {
|
| - panicf("cannot decode to nil")
|
| - }
|
| +func readMessage(r *http.Request, msg proto.Message) *protocolError {
|
| format, err := requestFormat(r.Header.Get(headerContentType))
|
| if err != nil {
|
| // Spec: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.16
|
| @@ -78,11 +72,6 @@ func readMessage(r *http.Request, msg proto.Message) *httpError {
|
| if err != nil {
|
| return errorf(http.StatusBadRequest, "could not read body: %s", err)
|
| }
|
| - if len(buf) == 0 {
|
| - // no body, no message
|
| - return nil
|
| - }
|
| -
|
| switch format {
|
| // Do not redefine "err" below.
|
|
|
| @@ -96,7 +85,7 @@ func readMessage(r *http.Request, msg proto.Message) *httpError {
|
| err = proto.UnmarshalText(string(buf), msg)
|
|
|
| default:
|
| - panicf("cannot happen")
|
| + err = fmt.Errorf("unknown message format: %d", format)
|
| }
|
| if err != nil {
|
| return errorf(http.StatusBadRequest, "could not decode body: %s", err)
|
|
|