fix #418, ignore null connect props to make RED5 happy. 2.0.204
正在显示
3 个修改的文件
包含
21 行增加
和
4 行删除
@@ -337,6 +337,7 @@ Remark: | @@ -337,6 +337,7 @@ Remark: | ||
337 | 337 | ||
338 | ## History | 338 | ## History |
339 | 339 | ||
340 | +* v2.0, 2015-12-22, for [#418][bug #418] ignore null connect props to make RED5 happy. 2.0.204 | ||
340 | * v2.0, 2015-12-22, for [#546][bug #546] thread terminate normally dispose bug. 2.0.203 | 341 | * v2.0, 2015-12-22, for [#546][bug #546] thread terminate normally dispose bug. 2.0.203 |
341 | * v2.0, 2015-12-22, for [#541][bug #541] failed when chunk size too small. 2.0.202 | 342 | * v2.0, 2015-12-22, for [#541][bug #541] failed when chunk size too small. 2.0.202 |
342 | * v2.0, 2015-12-15, default hls_on_error to continue. 2.0.201 | 343 | * v2.0, 2015-12-15, default hls_on_error to continue. 2.0.201 |
@@ -1211,6 +1212,7 @@ Winlin | @@ -1211,6 +1212,7 @@ Winlin | ||
1211 | [bug #518]: https://github.com/ossrs/srs/issues/518 | 1212 | [bug #518]: https://github.com/ossrs/srs/issues/518 |
1212 | [bug #541]: https://github.com/ossrs/srs/issues/541 | 1213 | [bug #541]: https://github.com/ossrs/srs/issues/541 |
1213 | [bug #546]: https://github.com/ossrs/srs/issues/546 | 1214 | [bug #546]: https://github.com/ossrs/srs/issues/546 |
1215 | +[bug #418]: https://github.com/ossrs/srs/issues/418 | ||
1214 | [bug #xxxxxxxxxx]: https://github.com/ossrs/srs/issues/xxxxxxxxxx | 1216 | [bug #xxxxxxxxxx]: https://github.com/ossrs/srs/issues/xxxxxxxxxx |
1215 | 1217 | ||
1216 | [exo #828]: https://github.com/google/ExoPlayer/pull/828 | 1218 | [exo #828]: https://github.com/google/ExoPlayer/pull/828 |
@@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
31 | // current release version | 31 | // current release version |
32 | #define VERSION_MAJOR 2 | 32 | #define VERSION_MAJOR 2 |
33 | #define VERSION_MINOR 0 | 33 | #define VERSION_MINOR 0 |
34 | -#define VERSION_REVISION 203 | 34 | +#define VERSION_REVISION 204 |
35 | 35 | ||
36 | // server info. | 36 | // server info. |
37 | #define RTMP_SIG_SRS_KEY "SRS" | 37 | #define RTMP_SIG_SRS_KEY "SRS" |
@@ -3289,9 +3289,24 @@ int SrsConnectAppResPacket::decode(SrsStream* stream) | @@ -3289,9 +3289,24 @@ int SrsConnectAppResPacket::decode(SrsStream* stream) | ||
3289 | ret = ERROR_SUCCESS; | 3289 | ret = ERROR_SUCCESS; |
3290 | } | 3290 | } |
3291 | 3291 | ||
3292 | - if ((ret = props->read(stream)) != ERROR_SUCCESS) { | ||
3293 | - srs_error("amf0 decode connect props failed. ret=%d", ret); | ||
3294 | - return ret; | 3292 | + // for RED5(1.0.6), the props is NULL, we must ignore it. |
3293 | + // @see https://github.com/ossrs/srs/issues/418 | ||
3294 | + if (!stream->empty()) { | ||
3295 | + SrsAmf0Any* p = NULL; | ||
3296 | + if ((ret = srs_amf0_read_any(stream, &p)) != ERROR_SUCCESS) { | ||
3297 | + srs_error("amf0 decode connect props failed. ret=%d", ret); | ||
3298 | + return ret; | ||
3299 | + } | ||
3300 | + | ||
3301 | + // ignore when props is not amf0 object. | ||
3302 | + if (!p->is_object()) { | ||
3303 | + srs_warn("ignore connect response props marker=%#x.", (u_int8_t)p->marker); | ||
3304 | + srs_freep(p); | ||
3305 | + } else { | ||
3306 | + srs_freep(props); | ||
3307 | + props = p->to_object(); | ||
3308 | + srs_info("accept amf0 object connect response props"); | ||
3309 | + } | ||
3295 | } | 3310 | } |
3296 | 3311 | ||
3297 | if ((ret = info->read(stream)) != ERROR_SUCCESS) { | 3312 | if ((ret = info->read(stream)) != ERROR_SUCCESS) { |
-
请 注册 或 登录 后发表评论