From 70c20364af15fce16992fce499efc623823ce221 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 22 九月 2022 14:10:26 +0800
Subject: [PATCH] 修复流注销时移除流认证信息
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java | 15 +++++++++++----
1 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java
index a278c08..3cff19d 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java
@@ -27,6 +27,7 @@
import javax.sip.InvalidArgumentException;
import javax.sip.RequestEvent;
+import javax.sip.ServerTransaction;
import javax.sip.SipException;
import javax.sip.message.Response;
import java.text.ParseException;
@@ -87,7 +88,8 @@
taskQueue.offer(new HandlerCatchData(evt, device, element));
// 鍥炲200 OK
try {
- responseAck(evt, Response.OK);
+ ServerTransaction serverTransaction = getServerTransaction(evt);
+ responseAck(serverTransaction, Response.OK);
if (!taskQueueHandlerRun) {
taskQueueHandlerRun = true;
taskExecutor.execute(()-> {
@@ -95,12 +97,16 @@
HandlerCatchData take = taskQueue.poll();
try {
Element rootElement = getRootElement(take.getEvt(), take.getDevice().getCharset());
+ if (rootElement == null) {
+ logger.warn("[ 鏀跺埌閫氶亾 ] content cannot be null, {}", evt.getRequest());
+ continue;
+ }
Element deviceListElement = rootElement.element("DeviceList");
Element sumNumElement = rootElement.element("SumNum");
Element snElement = rootElement.element("SN");
if (snElement == null || sumNumElement == null || deviceListElement == null) {
- responseAck(take.getEvt(), Response.BAD_REQUEST, "xml error");
- return;
+ responseAck(serverTransaction, Response.BAD_REQUEST, "xml error");
+ continue;
}
int sumNum = Integer.parseInt(sumNumElement.getText());
@@ -129,7 +135,8 @@
catalogDataCatch.put(take.getDevice().getDeviceId(), sn, sumNum, take.getDevice(), channelList);
logger.info("[鏀跺埌閫氶亾]璁惧: {} -> {}涓紝{}/{}", take.getDevice().getDeviceId(), channelList.size(), catalogDataCatch.get(take.getDevice().getDeviceId()) == null ? 0 :catalogDataCatch.get(take.getDevice().getDeviceId()).size(), sumNum);
if (catalogDataCatch.get(take.getDevice().getDeviceId()).size() == sumNum) {
- // 鏁版嵁宸茬粡瀹屾暣鎺ユ敹
+ // 鏁版嵁宸茬粡瀹屾暣鎺ユ敹锛� 姝ゆ椂鍙兘瀛樺湪鏌愪釜璁惧绂荤嚎鍙樹笂绾跨殑鎯呭喌锛屼絾鏄�冭檻鍒版�ц兘锛屾澶勪笉鍋氬鐞嗭紝
+ // 鐩墠鏀寔璁惧閫氶亾涓婄嚎閫氱煡鏃跺拰璁惧涓婄嚎鏃跺悜涓婄骇閫氱煡
boolean resetChannelsResult = storager.resetChannels(take.getDevice().getDeviceId(), catalogDataCatch.get(take.getDevice().getDeviceId()));
if (!resetChannelsResult) {
String errorMsg = "鎺ユ敹鎴愬姛锛屽啓鍏ュけ璐ワ紝鍏�" + sumNum + "鏉★紝宸叉帴鏀�" + catalogDataCatch.get(take.getDevice().getDeviceId()).size() + "鏉�";
--
Gitblit v1.8.0