winlin

fix simple handshake bug #46, copy c1 to s2. change to 0.9.63

@@ -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