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:
parent
7811b4f3f7
commit
0c8209cccd
3 changed files with 22 additions and 8 deletions
|
@ -335,6 +335,7 @@ Remark:
|
||||||
|
|
||||||
## History
|
## History
|
||||||
|
|
||||||
|
* v2.0, 2015-10-04, for [#448][bug #448] fix the bug of response of http hooks. 2.0.195
|
||||||
* v2.0, 2015-10-01, for [#497][bug #497] response error when client not found to kickoff. 2.0.194
|
* v2.0, 2015-10-01, for [#497][bug #497] response error when client not found to kickoff. 2.0.194
|
||||||
* v2.0, 2015-10-01, for [#495][bug #495] decrease the srs-librtmp size. 2.0.193
|
* v2.0, 2015-10-01, for [#495][bug #495] decrease the srs-librtmp size. 2.0.193
|
||||||
* v2.0, 2015-09-23, for [#485][bug #485] error when arm glibc 2.15+ or not i386/x86_64/amd64. 2.0.192
|
* v2.0, 2015-09-23, for [#485][bug #485] error when arm glibc 2.15+ or not i386/x86_64/amd64. 2.0.192
|
||||||
|
@ -1031,6 +1032,7 @@ Winlin
|
||||||
[bug #485]: https://github.com/simple-rtmp-server/srs/issues/485
|
[bug #485]: https://github.com/simple-rtmp-server/srs/issues/485
|
||||||
[bug #495]: https://github.com/simple-rtmp-server/srs/issues/495
|
[bug #495]: https://github.com/simple-rtmp-server/srs/issues/495
|
||||||
[bug #497]: https://github.com/simple-rtmp-server/srs/issues/497
|
[bug #497]: https://github.com/simple-rtmp-server/srs/issues/497
|
||||||
|
[bug #448]: https://github.com/simple-rtmp-server/srs/issues/448
|
||||||
[bug #475]: https://github.com/simple-rtmp-server/srs/issues/475
|
[bug #475]: https://github.com/simple-rtmp-server/srs/issues/475
|
||||||
[bug #458]: https://github.com/simple-rtmp-server/srs/issues/458
|
[bug #458]: https://github.com/simple-rtmp-server/srs/issues/458
|
||||||
[bug #454]: https://github.com/simple-rtmp-server/srs/issues/454
|
[bug #454]: https://github.com/simple-rtmp-server/srs/issues/454
|
||||||
|
|
|
@ -431,37 +431,49 @@ int SrsHttpHooks::do_post(std::string url, std::string req, int& code, string& r
|
||||||
// ensure the http status is ok.
|
// ensure the http status is ok.
|
||||||
// https://github.com/simple-rtmp-server/srs/issues/158
|
// https://github.com/simple-rtmp-server/srs/issues/158
|
||||||
if (code != SRS_CONSTS_HTTP_OK) {
|
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()) {
|
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.
|
// parse string res to json.
|
||||||
SrsJsonAny* info = SrsJsonAny::loads((char*)res.c_str());
|
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);
|
SrsAutoFree(SrsJsonAny, info);
|
||||||
|
|
||||||
// if res is number of error code
|
// response error code in string.
|
||||||
if (!info->is_object()) {
|
if (!info->is_object()) {
|
||||||
if (res != SRS_HTTP_RESPONSE_OK) {
|
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;
|
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();
|
SrsJsonObject* res_info = info->to_object();
|
||||||
SrsJsonAny* res_code = NULL;
|
SrsJsonAny* res_code = NULL;
|
||||||
if ((res_code = res_info->ensure_property_integer("code")) == NULL) {
|
if ((res_code = res_info->ensure_property_integer("code")) == NULL) {
|
||||||
ret = ERROR_RESPONSE_CODE;
|
ret = ERROR_RESPONSE_CODE;
|
||||||
srs_error("res code error, ret=%d", ret);
|
srs_error("invalid response without code, ret=%d", ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((res_code->to_integer()) != ERROR_SUCCESS) {
|
if ((res_code->to_integer()) != ERROR_SUCCESS) {
|
||||||
ret = ERROR_RESPONSE_CODE;
|
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;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
// current release version
|
// current release version
|
||||||
#define VERSION_MAJOR 2
|
#define VERSION_MAJOR 2
|
||||||
#define VERSION_MINOR 0
|
#define VERSION_MINOR 0
|
||||||
#define VERSION_REVISION 194
|
#define VERSION_REVISION 195
|
||||||
|
|
||||||
// server info.
|
// server info.
|
||||||
#define RTMP_SIG_SRS_KEY "SRS"
|
#define RTMP_SIG_SRS_KEY "SRS"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue