Skip to content

Commit cafcda2

Browse files
committed
fixed:error code is incorrent
modify:topic name need ver user
1 parent 7e64d41 commit cafcda2

File tree

1 file changed

+24
-5
lines changed

1 file changed

+24
-5
lines changed

XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -481,7 +481,7 @@ BOOL MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCTSTR lpszC
481481
{
482482
if (pSt_ProtocolHdr->byIsReply || (XENGINE_MQAPP_NETTYPE_HTTP == nNetType))
483483
{
484-
pSt_ProtocolHdr->wReserve = 761;
484+
pSt_ProtocolHdr->wReserve = 751;
485485
ProtocolModule_Packet_Common(nNetType, pSt_ProtocolHdr, &st_MQProtocol, tszSDBuffer, &nSDLen);
486486
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, nNetType);
487487
}
@@ -499,7 +499,7 @@ BOOL MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCTSTR lpszC
499499
{
500500
if (pSt_ProtocolHdr->byIsReply || (XENGINE_MQAPP_NETTYPE_HTTP == nNetType))
501501
{
502-
pSt_ProtocolHdr->wReserve = 762;
502+
pSt_ProtocolHdr->wReserve = 752;
503503
ProtocolModule_Packet_Common(nNetType, pSt_ProtocolHdr, &st_MQProtocol, tszSDBuffer, &nSDLen);
504504
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, nNetType);
505505
}
@@ -531,7 +531,7 @@ BOOL MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCTSTR lpszC
531531
{
532532
if (pSt_ProtocolHdr->byIsReply || (XENGINE_MQAPP_NETTYPE_HTTP == nNetType))
533533
{
534-
pSt_ProtocolHdr->wReserve = 0;
534+
pSt_ProtocolHdr->wReserve = 761;
535535
ProtocolModule_Packet_Common(nNetType, pSt_ProtocolHdr, &st_MQProtocol, tszSDBuffer, &nSDLen);
536536
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, nNetType);
537537
}
@@ -661,20 +661,39 @@ BOOL MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCTSTR lpszC
661661
}
662662
else if (XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_MQ_REQTOPICMODIFY == pSt_ProtocolHdr->unOperatorCode)
663663
{
664+
pSt_ProtocolHdr->unOperatorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_MQ_REPTOPICMODIFY;
664665
XENGINE_MQTOPIC st_MQTopic;
665666
memset(&st_MQTopic, '\0', sizeof(XENGINE_MQTOPIC));
666667

667668
memcpy(&st_MQTopic, lpszMsgBuffer + sizeof(XENGINE_PROTOCOL_XMQ), sizeof(XENGINE_MQTOPIC));
669+
//验证所有者
670+
XENGINE_DBTOPICOWNER st_DBOwner;
671+
memset(&st_DBOwner, '\0', sizeof(XENGINE_DBTOPICOWNER));
672+
673+
_tcscpy(st_DBOwner.tszUserName, tszUserName);
674+
_tcscpy(st_DBOwner.tszQueueName, st_MQProtocol.tszMQKey);
675+
676+
if (!DBModule_MQUser_OwnerQuery(&st_DBOwner))
677+
{
678+
if (pSt_ProtocolHdr->byIsReply || (XENGINE_MQAPP_NETTYPE_HTTP == nNetType))
679+
{
680+
pSt_ProtocolHdr->wReserve = 781;
681+
ProtocolModule_Packet_Common(nNetType, pSt_ProtocolHdr, &st_MQProtocol, tszSDBuffer, &nSDLen);
682+
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, nNetType);
683+
}
684+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("%s消息端:%s,修改主题失败,可能用户不拥有主题,主题名称:%s,无法继续,错误:%lX"), lpszClientType, lpszClientAddr, st_MQProtocol.tszMQKey, DBModule_GetLastError());
685+
return FALSE;
686+
}
687+
//修改主题
668688
if (!DBModule_MQData_ModifyTable(st_MQProtocol.tszMQKey, st_MQTopic.tszMQKey))
669689
{
670-
pSt_ProtocolHdr->wReserve = 781;
690+
pSt_ProtocolHdr->wReserve = 782;
671691
ProtocolModule_Packet_Common(nNetType, pSt_ProtocolHdr, &st_MQProtocol, tszSDBuffer, &nSDLen);
672692
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, nNetType);
673693
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("%s消息端:%s,修改主题名称失败,原名称:%s,目标名:%s,错误:%lX"), lpszClientType, lpszClientAddr, st_MQProtocol.tszMQKey, st_MQTopic.tszMQKey, DBModule_GetLastError());
674694
return FALSE;
675695
}
676696
pSt_ProtocolHdr->wReserve = 0;
677-
pSt_ProtocolHdr->unOperatorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_MQ_REPTOPICMODIFY;
678697

679698
ProtocolModule_Packet_Common(nNetType, pSt_ProtocolHdr, &st_MQProtocol, tszSDBuffer, &nSDLen);
680699
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, nNetType);

0 commit comments

Comments
 (0)