Skip to content

Commit bc8d0fd

Browse files
committed
modify:stun message is work now
modify:ssrc handle type
1 parent 79dab5a commit bc8d0fd

File tree

5 files changed

+19
-19
lines changed

5 files changed

+19
-19
lines changed

XEngine_Source/XEngine_ModuleSession/ModuleSession_Define.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ typedef struct
3131
XCHAR tszICEPass[MAX_PATH];
3232
XCHAR tszHMacStr[MAX_PATH];
3333

34-
XNETHANDLE nVSsrc;
34+
__int64x nVSsrc;
3535
XCHAR tszVideoCName[MAX_PATH];
3636
XCHAR tszVideoLabel[MAX_PATH];
3737

38-
XNETHANDLE nASsrc;
38+
__int64x nASsrc;
3939
XCHAR tszAudioCName[MAX_PATH];
4040
XCHAR tszAudioLabel[MAX_PATH];
4141
}st_WEBRtc;
@@ -324,7 +324,7 @@ extern "C" bool ModuleSession_PullStream_RTCGet(LPCXSTR lpszClientAddr, XCHAR *
324324
意思:是否成功
325325
备注:
326326
*********************************************************************/
327-
extern "C" bool ModuleSession_PullStream_RTCSSrcSet(LPCXSTR lpszClientAddr, XNETHANDLE nSSrc, LPCXSTR lpszCNameStr, LPCXSTR lpszLabelStr, bool bVideo = true);
327+
extern "C" bool ModuleSession_PullStream_RTCSSrcSet(LPCXSTR lpszClientAddr, __int64x nSSrc, LPCXSTR lpszCNameStr, LPCXSTR lpszLabelStr, bool bVideo = true);
328328
/*********************************************************************************
329329
* 推流端导出会话模块 *
330330
*********************************************************************************/

XEngine_Source/XEngine_ModuleSession/ModuleSession_PullStream/ModuleSession_PullStream.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -537,7 +537,7 @@ bool CModuleSession_PullStream::ModuleSession_PullStream_RTCGet(LPCXSTR lpszClie
537537
意思:是否成功
538538
备注:
539539
*********************************************************************/
540-
bool CModuleSession_PullStream::ModuleSession_PullStream_RTCSSrcSet(LPCXSTR lpszClientAddr, XNETHANDLE nSSrc, LPCXSTR lpszCNameStr, LPCXSTR lpszLabelStr, bool bVideo)
540+
bool CModuleSession_PullStream::ModuleSession_PullStream_RTCSSrcSet(LPCXSTR lpszClientAddr, __int64x nSSrc, LPCXSTR lpszCNameStr, LPCXSTR lpszLabelStr, bool bVideo)
541541
{
542542
Session_IsErrorOccur = false;
543543

XEngine_Source/XEngine_ModuleSession/ModuleSession_PullStream/ModuleSession_PullStream.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class CModuleSession_PullStream
2929
public:
3030
bool ModuleSession_PullStream_RTCSet(LPCXSTR lpszClientAddr, LPCXSTR lpszTokenStr, LPCXSTR lpszICEUser, LPCXSTR lpszICEPass, LPCXSTR lpszHMacStr);
3131
bool ModuleSession_PullStream_RTCGet(LPCXSTR lpszClientAddr, XCHAR* ptszTokenStr = NULL, XCHAR* ptszICEUser = NULL, XCHAR* ptszICEPass = NULL, XCHAR* ptszHMacStr = NULL);
32-
bool ModuleSession_PullStream_RTCSSrcSet(LPCXSTR lpszClientAddr, XNETHANDLE nSSrc, LPCXSTR lpszCNameStr, LPCXSTR lpszLabelStr, bool bVideo = true);
32+
bool ModuleSession_PullStream_RTCSSrcSet(LPCXSTR lpszClientAddr, __int64x nSSrc, LPCXSTR lpszCNameStr, LPCXSTR lpszLabelStr, bool bVideo = true);
3333
//bool ModuleSession_PullStream_RTCSSrcGet(LPCXSTR lpszClientAddr, XCHAR* ptszTokenStr = NULL, XCHAR* ptszICEUser = NULL, XCHAR* ptszICEPass = NULL, XCHAR* ptszHMacStr = NULL);
3434
private:
3535
shared_mutex st_Locker;

XEngine_Source/XEngine_ModuleSession/pch.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ extern "C" bool ModuleSession_PullStream_RTCGet(LPCXSTR lpszClientAddr, XCHAR *
5555
{
5656
return m_PullStream.ModuleSession_PullStream_RTCGet(lpszClientAddr, ptszTokenStr, ptszICEUser, ptszICEPass, ptszHMacStr);
5757
}
58-
extern "C" bool ModuleSession_PullStream_RTCSSrcSet(LPCXSTR lpszClientAddr, XNETHANDLE nSSrc, LPCXSTR lpszCNameStr, LPCXSTR lpszLabelStr, bool bVideo)
58+
extern "C" bool ModuleSession_PullStream_RTCSSrcSet(LPCXSTR lpszClientAddr, __int64x nSSrc, LPCXSTR lpszCNameStr, LPCXSTR lpszLabelStr, bool bVideo)
5959
{
6060
return m_PullStream.ModuleSession_PullStream_RTCSSrcSet(lpszClientAddr, nSSrc, lpszCNameStr, lpszLabelStr, bVideo);
6161
}

XEngine_Source/XEngine_ServiceApp/XEngine_StreamMediaApp/StreamMedia_PullStream/PullStream_ClientWebRtc.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -63,29 +63,29 @@ bool PullStream_ClientProtocol_Handle(LPCXSTR lpszClientAddr, XSOCKET hSocket, L
6363
break;
6464
}
6565
}
66-
XCHAR tszICEPass[MAX_PATH] = {};
67-
68-
ModuleSession_PullStream_RTCGet(tszUserStr, NULL, NULL, tszICEPass);
69-
70-
NatProtocol_StunNat_BuildAttr(tszRVBuffer, &nRVLen, RFCCOMPONENTS_NATCLIENT_PROTOCOL_STUN_ATTR_USERNAME, tszUserStr, _tcsxlen(tszUserStr));
66+
BaseLib_OperatorMemory_Free((XPPPMEM)&ppSt_ListAttr, nAttrCount);
7167

7268
int nPort = 0;
7369
XCHAR tszIPPort[128] = {};
7470
_tcsxcpy(tszIPPort, lpszClientAddr);
7571
BaseLib_OperatorIPAddr_SegAddr(tszIPPort, &nPort);
7672

73+
NatProtocol_StunNat_BuildAttr(tszRVBuffer, &nRVLen, RFCCOMPONENTS_NATCLIENT_PROTOCOL_STUN_ATTR_USERNAME, tszUserStr, _tcsxlen(tszUserStr));
7774
NatProtocol_StunNat_BuildMapAddress(tszRVBuffer + nRVLen, &nRVLen, tszIPPort, nPort, true);
78-
NatProtocol_StunNat_BuildMSGIntegrity(tszRVBuffer + nRVLen, &nRVLen, tszRVBuffer, nRVLen, tszICEPass);
79-
80-
nRVLen += 8; //Finger 消息先加
81-
NatProtocol_StunNat_Packet(tszSDBuffer, &nRVLen, (LPCXSTR)st_NatClient.byTokenStr, RFCCOMPONENTS_NATCLIENT_PROTOCOL_STUN_CLASS_RESPONSE, RFCCOMPONENTS_NATCLIENT_PROTOCOL_STUN_ATTR_MAPPED_ADDRESS, tszRVBuffer);
82-
nRVLen -= 8; //计算效验不包含自己的8个字节属性
8375
nSDLen = nRVLen;
84-
NatProtocol_StunNat_BuildFinger(tszSDBuffer + nSDLen, &nSDLen, tszSDBuffer, nSDLen);
85-
BaseLib_OperatorMemory_Free((XPPPMEM)&ppSt_ListAttr, nAttrCount);
76+
NatProtocol_StunNat_Packet(tszSDBuffer, &nSDLen, (LPCXSTR)st_NatClient.byTokenStr, RFCCOMPONENTS_NATCLIENT_PROTOCOL_STUN_CLASS_RESPONSE, RFCCOMPONENTS_NATCLIENT_PROTOCOL_STUN_ATTR_MAPPED_ADDRESS, tszRVBuffer);
77+
//消息效验需要加上4个属性头大小
78+
NatProtocol_StunNat_Resize(tszSDBuffer, 24);
79+
NatProtocol_StunNat_BuildMSGIntegrity(tszSDBuffer + nSDLen, &nSDLen, tszSDBuffer, nSDLen, st_ServiceConfig.st_XPull.st_PullWebRtc.tszICEPass);
80+
//NatProtocol_StunNat_Resize(tszSDBuffer, 20); //消息大小
8681

82+
nSDLen += 8; //加上Finger的大小
83+
NatProtocol_StunNat_Resize(tszSDBuffer, nSDLen - 20, 2); //减去头大小20是固定头大小
84+
nSDLen -= 8; //计算效验不包含自己的8个字节属性
85+
86+
NatProtocol_StunNat_BuildFinger(tszSDBuffer + nSDLen, &nSDLen, tszSDBuffer, nSDLen);
8787
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen, ENUM_XENGINE_STREAMMEDIA_CLIENT_TYPE_PUSH_RTC);
88-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("STUN客户端:%s,请求的STUN协议处理成功,请求的用户:%s,密码:%s"), lpszClientAddr, tszUserStr, tszICEPass);
88+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("STUN客户端:%s,请求的STUN协议处理成功,请求的用户:%s"), lpszClientAddr, tszUserStr);
8989
}
9090
else
9191
{

0 commit comments

Comments
 (0)