1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

fix #448, fix the bug of response of http hooks. 2.0.195

This commit is contained in:
winlin 2015-10-04 08:09:39 +08:00
parent 7811b4f3f7
commit 0c8209cccd
3 changed files with 22 additions and 8 deletions

View file

@ -431,37 +431,49 @@ int SrsHttpHooks::do_post(std::string url, std::string req, int& code, string& r
// ensure the http status is ok.
// https://github.com/simple-rtmp-server/srs/issues/158
if (code != SRS_CONSTS_HTTP_OK) {
return ERROR_HTTP_STATUS_INVLIAD;
ret = ERROR_HTTP_STATUS_INVLIAD;
srs_error("invalid response status=%d. ret=%d", code, ret);
return ret;
}
// should never be empty.
if (res.empty()) {
return ERROR_HTTP_DATA_INVLIAD;
ret = ERROR_HTTP_DATA_INVLIAD;
srs_error("invalid empty response. ret=%d", ret);
return ret;
}
// parse string res to json.
SrsJsonAny* info = SrsJsonAny::loads((char*)res.c_str());
if (!info) {
ret = ERROR_HTTP_DATA_INVLIAD;
srs_error("invalid response %s. ret=%d", res.c_str(), ret);
return ret;
}
SrsAutoFree(SrsJsonAny, info);
// if res is number of error code
// response error code in string.
if (!info->is_object()) {
if (res != SRS_HTTP_RESPONSE_OK) {
return ERROR_HTTP_DATA_INVLIAD;
ret = ERROR_HTTP_DATA_INVLIAD;
srs_error("invalid response number %s. ret=%d", res.c_str(), ret);
return ret;
}
return ret;
}
// if res is json obj, like: {"code": 0, "data": ""}
// response standard object, format in json: {"code": 0, "data": ""}
SrsJsonObject* res_info = info->to_object();
SrsJsonAny* res_code = NULL;
if ((res_code = res_info->ensure_property_integer("code")) == NULL) {
ret = ERROR_RESPONSE_CODE;
srs_error("res code error, ret=%d", ret);
srs_error("invalid response without code, ret=%d", ret);
return ret;
}
if ((res_code->to_integer()) != ERROR_SUCCESS) {
ret = ERROR_RESPONSE_CODE;
srs_error("res code error, ret=%d, code=%d", ret, code);
srs_error("error response code=%d. ret=%d", res_code->to_integer(), ret);
return ret;
}

View file

@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// current release version
#define VERSION_MAJOR 2
#define VERSION_MINOR 0
#define VERSION_REVISION 194
#define VERSION_REVISION 195
// server info.
#define RTMP_SIG_SRS_KEY "SRS"