Changeset 303:909202cb5aeb in mediastreamer2
- Timestamp:
- Mar 7, 2009 12:22:14 PM (4 years ago)
- Branch:
- default
- File:
-
- 1 edited
-
linphone/mediastreamer2/src/ice.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
linphone/mediastreamer2/src/ice.c
r300 r303 352 352 stunBuildReqSimple( &req, NULL, FALSE, FALSE, 1); 353 353 req.msgHdr.msgType = (STUN_METHOD_BINDING|STUN_INDICATION); 354 req.hasFingerprint = TRUE; 354 355 len = stunEncodeMessage( &req, buf, len, NULL); 355 356 sendMessage( media_socket, buf, len, stunServerAddr.addr, stunServerAddr.port ); … … 447 448 strcpy(response->errorCode.reason, msg); 448 449 response->errorCode.sizeReason = strlen(msg); 450 response->hasFingerprint = TRUE; 449 451 } 450 452 … … 586 588 */ 587 589 char hmac[20]; 588 stunCalculateIntegrity_shortterm(hmac, (char*)mp->b_rptr, mp->b_wptr-mp->b_rptr-24, checklist->loc_ice_pwd); 590 /* remove length of fingerprint if present */ 591 if (msg.hasFingerprint==TRUE) 592 { 593 char *lenpos = (char *)mp->b_rptr + sizeof(UInt16); 594 UInt16 newlen = htons(msg.msgHdr.msgLength-8); /* remove fingerprint size */ 595 memcpy(lenpos, &newlen, sizeof(UInt16)); 596 stunCalculateIntegrity_shortterm(hmac, (char*)mp->b_rptr, mp->b_wptr-mp->b_rptr-24-8, checklist->loc_ice_pwd); 597 } 598 else 599 stunCalculateIntegrity_shortterm(hmac, (char*)mp->b_rptr, mp->b_wptr-mp->b_rptr-24, checklist->loc_ice_pwd); 589 600 if (memcmp(msg.messageIntegrity.hash, hmac, 20)!=0) 590 601 { … … 597 608 sendMessage( rtp_socket, buf, len, remote_addr.addr, remote_addr.port); 598 609 return -1; 610 } 611 if (msg.hasFingerprint==TRUE) 612 { 613 char *lenpos = (char *)mp->b_rptr + sizeof(UInt16); 614 UInt16 newlen = htons(msg.msgHdr.msgLength); /* add back fingerprint size */ 615 memcpy(lenpos, &newlen, sizeof(UInt16)); 599 616 } 600 617 … … 869 886 memcpy( resp.softwareName.value, serverName, sizeof(serverName)); 870 887 resp.softwareName.sizeValue = sizeof(serverName); 888 889 resp.hasFingerprint = TRUE; 871 890 872 891 {
Note: See TracChangeset
for help on using the changeset viewer.
