From dc1f227aeb8ca17b7e45882c98a1156ef418558e Mon Sep 17 00:00:00 2001 From: winlin Date: Fri, 6 Jan 2017 13:16:25 +0800 Subject: [PATCH] for #730, refine code to decode the acknowledge message --- trunk/src/protocol/srs_rtmp_stack.cpp | 16 ++++++++++++++++ trunk/src/protocol/srs_rtmp_stack.hpp | 3 +++ trunk/src/utest/srs_utest_core.cpp | 4 ++-- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/trunk/src/protocol/srs_rtmp_stack.cpp b/trunk/src/protocol/srs_rtmp_stack.cpp index d962b89beb..f1c58b9fe3 100644 --- a/trunk/src/protocol/srs_rtmp_stack.cpp +++ b/trunk/src/protocol/srs_rtmp_stack.cpp @@ -5017,6 +5017,22 @@ SrsAcknowledgementPacket::~SrsAcknowledgementPacket() { } +int SrsAcknowledgementPacket::decode(SrsBuffer* stream) +{ + int ret = ERROR_SUCCESS; + + if (!stream->require(4)) { + ret = ERROR_RTMP_MESSAGE_DECODE; + srs_error("decode acknowledgement failed. ret=%d", ret); + return ret; + } + + sequence_number = stream->read_4bytes(); + srs_info("decode acknowledgement success"); + + return ret; +} + int SrsAcknowledgementPacket::get_prefer_cid() { return RTMP_CID_ProtocolControl; diff --git a/trunk/src/protocol/srs_rtmp_stack.hpp b/trunk/src/protocol/srs_rtmp_stack.hpp index 7423b61f34..02915c77a6 100644 --- a/trunk/src/protocol/srs_rtmp_stack.hpp +++ b/trunk/src/protocol/srs_rtmp_stack.hpp @@ -1847,6 +1847,9 @@ class SrsAcknowledgementPacket : public SrsPacket public: SrsAcknowledgementPacket(); virtual ~SrsAcknowledgementPacket(); +// decode functions for concrete packet to override. +public: + virtual int decode(SrsBuffer* stream); // encode functions for concrete packet to override. public: virtual int get_prefer_cid(); diff --git a/trunk/src/utest/srs_utest_core.cpp b/trunk/src/utest/srs_utest_core.cpp index e23f97de31..1211970b7d 100644 --- a/trunk/src/utest/srs_utest_core.cpp +++ b/trunk/src/utest/srs_utest_core.cpp @@ -31,12 +31,12 @@ using namespace std; VOID TEST(CoreAutoFreeTest, Free) { char* data = new char[32]; - srs_freep(data); + srs_freepa(data); EXPECT_TRUE(data == NULL); if (true) { data = new char[32]; - SrsAutoFree(char, data); + SrsAutoFreeA(char, data); } EXPECT_TRUE(data == NULL); }