winlin

refine the handshake random data, fill with value in [0x0f, 0xf0], 0.9.205

@@ -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 "204" 34 +#define VERSION_REVISION "205"
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"
@@ -45,6 +45,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -45,6 +45,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
45 #define RTMP_SIG_SRS_COPYRIGHT "Copyright (c) 2013-2014 winlin" 45 #define RTMP_SIG_SRS_COPYRIGHT "Copyright (c) 2013-2014 winlin"
46 #define RTMP_SIG_SRS_PRIMARY_AUTHROS "winlin,wenjie.zhao" 46 #define RTMP_SIG_SRS_PRIMARY_AUTHROS "winlin,wenjie.zhao"
47 #define RTMP_SIG_SRS_CONTRIBUTORS_URL RTMP_SIG_SRS_URL"/blob/master/AUTHORS.txt" 47 #define RTMP_SIG_SRS_CONTRIBUTORS_URL RTMP_SIG_SRS_URL"/blob/master/AUTHORS.txt"
  48 +#define RTMP_SIG_SRS_HANDSHAKE RTMP_SIG_SRS_KEY"("RTMP_SIG_SRS_VERSION")"
48 49
49 /** 50 /**
50 * the core provides the common defined macros, utilities, 51 * the core provides the common defined macros, utilities,
@@ -343,6 +343,7 @@ namespace _srs_internal @@ -343,6 +343,7 @@ namespace _srs_internal
343 if (key->random0_size > 0) { 343 if (key->random0_size > 0) {
344 key->random0 = new char[key->random0_size]; 344 key->random0 = new char[key->random0_size];
345 srs_random_generate(key->random0, key->random0_size); 345 srs_random_generate(key->random0, key->random0_size);
  346 + snprintf(key->random0, key->random0_size, "%s", RTMP_SIG_SRS_HANDSHAKE);
346 } 347 }
347 348
348 srs_random_generate(key->key, sizeof(key->key)); 349 srs_random_generate(key->key, sizeof(key->key));
@@ -351,6 +352,7 @@ namespace _srs_internal @@ -351,6 +352,7 @@ namespace _srs_internal
351 if (key->random1_size > 0) { 352 if (key->random1_size > 0) {
352 key->random1 = new char[key->random1_size]; 353 key->random1 = new char[key->random1_size];
353 srs_random_generate(key->random1, key->random1_size); 354 srs_random_generate(key->random1, key->random1_size);
  355 + snprintf(key->random1, key->random1_size, "%s", RTMP_SIG_SRS_HANDSHAKE);
354 } 356 }
355 } 357 }
356 358
@@ -435,6 +437,7 @@ namespace _srs_internal @@ -435,6 +437,7 @@ namespace _srs_internal
435 if (digest->random0_size > 0) { 437 if (digest->random0_size > 0) {
436 digest->random0 = new char[digest->random0_size]; 438 digest->random0 = new char[digest->random0_size];
437 srs_random_generate(digest->random0, digest->random0_size); 439 srs_random_generate(digest->random0, digest->random0_size);
  440 + snprintf(digest->random0, digest->random0_size, "%s", RTMP_SIG_SRS_HANDSHAKE);
438 } 441 }
439 442
440 srs_random_generate(digest->digest, sizeof(digest->digest)); 443 srs_random_generate(digest->digest, sizeof(digest->digest));
@@ -443,6 +446,7 @@ namespace _srs_internal @@ -443,6 +446,7 @@ namespace _srs_internal
443 if (digest->random1_size > 0) { 446 if (digest->random1_size > 0) {
444 digest->random1 = new char[digest->random1_size]; 447 digest->random1 = new char[digest->random1_size];
445 srs_random_generate(digest->random1, digest->random1_size); 448 srs_random_generate(digest->random1, digest->random1_size);
  449 + snprintf(digest->random1, digest->random1_size, "%s", RTMP_SIG_SRS_HANDSHAKE);
446 } 450 }
447 } 451 }
448 452
@@ -621,6 +625,11 @@ namespace _srs_internal @@ -621,6 +625,11 @@ namespace _srs_internal
621 c2s2::c2s2() 625 c2s2::c2s2()
622 { 626 {
623 srs_random_generate(random, 1504); 627 srs_random_generate(random, 1504);
  628 +
  629 + int size = snprintf(random, 1504, "%s", RTMP_SIG_SRS_HANDSHAKE);
  630 + srs_assert(++size < 1504);
  631 + snprintf(random + 1504 - size, size, "%s", RTMP_SIG_SRS_HANDSHAKE);
  632 +
624 srs_random_generate(digest, 32); 633 srs_random_generate(digest, 32);
625 } 634 }
626 635
@@ -102,14 +102,9 @@ void srs_random_generate(char* bytes, int size) @@ -102,14 +102,9 @@ void srs_random_generate(char* bytes, int size)
102 srs_trace("srand initialized the random."); 102 srs_trace("srand initialized the random.");
103 } 103 }
104 104
105 - static char cdata[] = {  
106 - 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x2d, 0x72, 0x74, 0x6d, 0x70, 0x2d, 0x73, 0x65,  
107 - 0x72, 0x76, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x2d, 0x77, 0x69,  
108 - 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x40, 0x31, 0x32, 0x36,  
109 - 0x2e, 0x63, 0x6f, 0x6d  
110 - };  
111 for (int i = 0; i < size; i++) { 105 for (int i = 0; i < size; i++) {
112 - bytes[i] = cdata[rand() % (sizeof(cdata) - 1)]; 106 + // the common value in [0x0f, 0xf0]
  107 + bytes[i] = 0x0f + (rand() % (256 - 0x0f - 0x0f));
113 } 108 }
114 } 109 }
115 110