| 222 | } |
| 223 | |
| 224 | func (m *Message) SetError(err error) { |
| 225 | switch err.(type) { |
| 226 | case blobcache.ErrInvalidHandle: |
| 227 | m.SetCode(MT_ERROR_INVALID_HANDLE) |
| 228 | case blobcache.ErrNotFound: |
| 229 | m.SetCode(MT_ERROR_NOT_FOUND) |
| 230 | case blobcache.ErrNoLink: |
| 231 | m.SetCode(MT_ERROR_NO_LINK) |
| 232 | case blobcache.ErrTooLarge: |
| 233 | m.SetCode(MT_ERROR_TOO_LARGE) |
| 234 | case blobcache.ErrPermission: |
| 235 | m.SetCode(MT_ERROR_NO_PERMISSION) |
| 236 | default: |
| 237 | m.SetCode(MT_ERROR_UNKNOWN) |
| 238 | m.SetBody([]byte(err.Error())) |
| 239 | return |
| 240 | } |
| 241 | m.SetBody(jsonMarshal(err)) |
| 242 | } |
| 243 | |
| 244 | func parseWireError(code MessageCode, x []byte) error { |
| 245 | var ret error |