fix simple handshake bug #46, copy c1 to s2. change to 0.9.63
正在显示
4 个修改的文件
包含
10 行增加
和
4 行删除
| @@ -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 "0" | 32 | #define VERSION_MAJOR "0" |
| 33 | #define VERSION_MINOR "9" | 33 | #define VERSION_MINOR "9" |
| 34 | -#define VERSION_REVISION "62" | 34 | +#define VERSION_REVISION "63" |
| 35 | #define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION | 35 | #define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION |
| 36 | // server info. | 36 | // server info. |
| 37 | #define RTMP_SIG_SRS_KEY "srs" | 37 | #define RTMP_SIG_SRS_KEY "srs" |
| @@ -1001,7 +1001,7 @@ int SrsSimpleHandshake::handshake_with_client(SrsHandshakeBytes* hs_bytes, ISrsP | @@ -1001,7 +1001,7 @@ int SrsSimpleHandshake::handshake_with_client(SrsHandshakeBytes* hs_bytes, ISrsP | ||
| 1001 | } | 1001 | } |
| 1002 | srs_verbose("check c0 success, required plain text."); | 1002 | srs_verbose("check c0 success, required plain text."); |
| 1003 | 1003 | ||
| 1004 | - if ((ret = hs_bytes->create_s0s1s2()) != ERROR_SUCCESS) { | 1004 | + if ((ret = hs_bytes->create_s0s1s2(hs_bytes->c0c1 + 1)) != ERROR_SUCCESS) { |
| 1005 | return ret; | 1005 | return ret; |
| 1006 | } | 1006 | } |
| 1007 | 1007 |
| @@ -275,7 +275,7 @@ int SrsHandshakeBytes::create_c0c1() | @@ -275,7 +275,7 @@ int SrsHandshakeBytes::create_c0c1() | ||
| 275 | return ret; | 275 | return ret; |
| 276 | } | 276 | } |
| 277 | 277 | ||
| 278 | -int SrsHandshakeBytes::create_s0s1s2() | 278 | +int SrsHandshakeBytes::create_s0s1s2(const char* c1) |
| 279 | { | 279 | { |
| 280 | int ret = ERROR_SUCCESS; | 280 | int ret = ERROR_SUCCESS; |
| 281 | 281 | ||
| @@ -294,6 +294,12 @@ int SrsHandshakeBytes::create_s0s1s2() | @@ -294,6 +294,12 @@ int SrsHandshakeBytes::create_s0s1s2() | ||
| 294 | *(int32_t*)(s0s1s2 + 1 + 4) = *(int32_t*)(c0c1 + 1); | 294 | *(int32_t*)(s0s1s2 + 1 + 4) = *(int32_t*)(c0c1 + 1); |
| 295 | } | 295 | } |
| 296 | 296 | ||
| 297 | + // if c1 specified, copy c1 to s2. | ||
| 298 | + // @see: https://github.com/winlinvip/simple-rtmp-server/issues/46 | ||
| 299 | + if (c1) { | ||
| 300 | + memcpy(s0s1s2 + 1537, c1, 1536); | ||
| 301 | + } | ||
| 302 | + | ||
| 297 | return ret; | 303 | return ret; |
| 298 | } | 304 | } |
| 299 | 305 |
| @@ -137,7 +137,7 @@ public: | @@ -137,7 +137,7 @@ public: | ||
| 137 | virtual int read_s0s1s2(ISrsProtocolReaderWriter* io); | 137 | virtual int read_s0s1s2(ISrsProtocolReaderWriter* io); |
| 138 | virtual int read_c2(ISrsProtocolReaderWriter* io); | 138 | virtual int read_c2(ISrsProtocolReaderWriter* io); |
| 139 | virtual int create_c0c1(); | 139 | virtual int create_c0c1(); |
| 140 | - virtual int create_s0s1s2(); | 140 | + virtual int create_s0s1s2(const char* c1 = NULL); |
| 141 | virtual int create_c2(); | 141 | virtual int create_c2(); |
| 142 | }; | 142 | }; |
| 143 | 143 |
-
请 注册 或 登录 后发表评论