winlin

fix bug of handshake with nginx, simple hs

@@ -270,6 +270,11 @@ int SrsHandshakeBytes::create_c0c1() @@ -270,6 +270,11 @@ int SrsHandshakeBytes::create_c0c1()
270 c0c1 = new char[1537]; 270 c0c1 = new char[1537];
271 srs_random_generate(c0c1, 1537); 271 srs_random_generate(c0c1, 1537);
272 272
  273 + // plain text required.
  274 + c0c1[0] = 0x03;
  275 + *(int32_t*)(c0c1 + 1) = ::time(NULL);
  276 + *(int32_t*)(c0c1 + 1 + 4) = 0x00;
  277 +
273 return ret; 278 return ret;
274 } 279 }
275 280
@@ -284,6 +289,14 @@ int SrsHandshakeBytes::create_s0s1s2() @@ -284,6 +289,14 @@ int SrsHandshakeBytes::create_s0s1s2()
284 s0s1s2 = new char[3073]; 289 s0s1s2 = new char[3073];
285 srs_random_generate(s0s1s2, 3073); 290 srs_random_generate(s0s1s2, 3073);
286 291
  292 + // plain text required.
  293 + s0s1s2[0] = 0x03;
  294 + *(int32_t*)(s0s1s2 + 1) = ::time(NULL);
  295 + // s2 time2 copy from c1
  296 + if (c0c1) {
  297 + *(int32_t*)(s0s1s2 + 1 + 4) = *(int32_t*)(c0c1 + 1);
  298 + }
  299 +
287 return ret; 300 return ret;
288 } 301 }
289 302
@@ -298,6 +311,13 @@ int SrsHandshakeBytes::create_c2() @@ -298,6 +311,13 @@ int SrsHandshakeBytes::create_c2()
298 c2 = new char[1536]; 311 c2 = new char[1536];
299 srs_random_generate(c2, 1536); 312 srs_random_generate(c2, 1536);
300 313
  314 + // time
  315 + *(int32_t*)(c2) = ::time(NULL);
  316 + // c2 time2 copy from s1
  317 + if (s0s1s2) {
  318 + *(int32_t*)(c2 + 4) = *(int32_t*)(s0s1s2 + 1);
  319 + }
  320 +
301 return ret; 321 return ret;
302 } 322 }
303 323