diff --git a/client/response.go b/client/response.go index bcafc53..ce8e509 100644 --- a/client/response.go +++ b/client/response.go @@ -76,7 +76,7 @@ func decodeResponse(data []byte) (resp *Response, l int, err error) { case dtJobCreated: resp.Handle = string(dt) case dtStatusRes, dtWorkData, dtWorkWarning, dtWorkStatus, - dtWorkComplete, dtWorkFail, dtWorkException: + dtWorkComplete, dtWorkException: s := bytes.SplitN(dt, []byte{'\x00'}, 2) if len(s) >= 2 { resp.Handle = string(s[0]) @@ -85,6 +85,14 @@ func decodeResponse(data []byte) (resp *Response, l int, err error) { err = fmt.Errorf("Invalid data: %v", data) return } + case dtWorkFail: + s := bytes.SplitN(dt, []byte{'\x00'}, 2) + if len(s) >= 1 { + resp.Handle = string(s[0]) + } else { + err = fmt.Errorf("Invalid data: %v", data) + return + } case dtEchoRes: fallthrough default: