已合并
fix broadcast manager #10945
fix broadcast manager #10945
已合并
wangJE创建于 2025年9月18日
共 3 个文件变更+11-10
@@ -82,6 +82,8 @@ static uint16_t BtAdvTypeToSoftbus(uint16_t advType)
82 return BC_DATA_TYPE_SERVICE;82 return BC_DATA_TYPE_SERVICE;
83 case MANUFACTURE_BC_TYPE:83 case MANUFACTURE_BC_TYPE:
84 return BC_DATA_TYPE_MANUFACTURER;84 return BC_DATA_TYPE_MANUFACTURER;
85+ case SERVICE_UUID_BC_TYPE:
86+ return BC_DATA_TYPE_SERVICE_UUID;
Marion
MarionMarion2025年9月18日

LGTM

likedislike
85 default:87 default:
86 return 0x00;88 return 0x00;
87 }89 }
@@ -506,7 +508,7 @@ int32_t ParseScanResult(const uint8_t *advData, uint8_t advLen, SoftBusBcScanRes
506 SOFTBUS_BC_ADAPTER_PARSE_FAIL, DISC_BLE_ADAPTER, "parse local name failed");508 SOFTBUS_BC_ADAPTER_PARSE_FAIL, DISC_BLE_ADAPTER, "parse local name failed");
507 dst->nameTruncated = (type == SHORTENED_LOCAL_NAME_BC_TYPE);509 dst->nameTruncated = (type == SHORTENED_LOCAL_NAME_BC_TYPE);
508 } else {510 } else {
509- if (type != SERVICE_BC_TYPE && type != MANUFACTURE_BC_TYPE && type != SERVICEUUID_BC_TYPE) {511+ if (type != SERVICE_BC_TYPE && type != MANUFACTURE_BC_TYPE && type != SERVICE_UUID_BC_TYPE) {
510 index += len;512 index += len;
511 DISC_LOGD(DISC_BLE_ADAPTER, "unsupported type, type=%{public}hhu", type);513 DISC_LOGD(DISC_BLE_ADAPTER, "unsupported type, type=%{public}hhu", type);
512 continue;514 continue;
@@ -760,7 +760,7 @@ static bool CheckServiceIsMatch(const BcScanFilter *filter, const BroadcastPaylo
760 return false;760 return false;
761 }761 }
762 if (filter->serviceId != bcData->id) {762 if (filter->serviceId != bcData->id) {
763- DISC_LOGD(DISC_BROADCAST, "serviceUuid not match");763+ DISC_LOGD(DISC_BROADCAST, "serviceId not match");
764 return false;764 return false;
765 }765 }
766 for (uint32_t i = 0; i < filterLen; i++) {766 for (uint32_t i = 0; i < filterLen; i++) {
@@ -1401,7 +1401,7 @@ static int32_t DupData(uint8_t *srcData, uint32_t srcDataLen, uint8_t **outData)
1401{1401{
1402 if (srcData != NULL && srcDataLen > 0) {1402 if (srcData != NULL && srcDataLen > 0) {
1403 uint8_t *dupData = (uint8_t *)SoftBusCalloc(srcDataLen);1403 uint8_t *dupData = (uint8_t *)SoftBusCalloc(srcDataLen);
1404- DISC_CHECK_AND_RETURN_RET_LOGE(srcData != NULL, SOFTBUS_MALLOC_ERR, DISC_BROADCAST, "calloc failed");1404+ DISC_CHECK_AND_RETURN_RET_LOGE(dupData != NULL, SOFTBUS_MALLOC_ERR, DISC_BROADCAST, "calloc failed");
1405 (void)memcpy_s(dupData, srcDataLen, srcData, srcDataLen);1405 (void)memcpy_s(dupData, srcDataLen, srcData, srcDataLen);
1406 *outData = dupData;1406 *outData = dupData;
1407 }1407 }
@@ -1429,7 +1429,7 @@ static int32_t CopyScanFilterServiceInfo(const BcScanFilter *srcFilter, SoftBusB
1429 1429 
1430static int32_t CopyScanFilterServiceUuid(const BcScanFilter *srcFilter, SoftBusBcScanFilter *dstFilter)1430static int32_t CopyScanFilterServiceUuid(const BcScanFilter *srcFilter, SoftBusBcScanFilter *dstFilter)
1431{1431{
1432- dstFilter->serviceId = srcFilter->serviceId;1432+ dstFilter->serviceUuid = srcFilter->serviceUuid;
1433 dstFilter->serviceUuidMask = srcFilter->serviceUuidMask;1433 dstFilter->serviceUuidMask = srcFilter->serviceUuidMask;
1434 dstFilter->serviceUuidLength = srcFilter->serviceUuidLength;1434 dstFilter->serviceUuidLength = srcFilter->serviceUuidLength;
1435 1435 
@@ -1450,17 +1450,16 @@ static int32_t CopyScanFilterManufacture(const BcScanFilter *srcFilter, SoftBusB
1450 dstFilter->manufactureId = srcFilter->manufactureId;1450 dstFilter->manufactureId = srcFilter->manufactureId;
1451 dstFilter->manufactureDataLength = srcFilter->manufactureDataLength;1451 dstFilter->manufactureDataLength = srcFilter->manufactureDataLength;
1452 1452
1453- int32_t ret = DupData(srcFilter->manufactureData, srcFilter->serviceUuidDataLength, &dstFilter->manufactureData);1453+ int32_t ret = DupData(srcFilter->manufactureData, srcFilter->manufactureDataLength, &dstFilter->manufactureData);
1454 DISC_CHECK_AND_RETURN_RET_LOGE(ret == SOFTBUS_OK, ret,1454 DISC_CHECK_AND_RETURN_RET_LOGE(ret == SOFTBUS_OK, ret,
1455- DISC_BROADCAST, "dup serviceUuidData failed,ret=%{public}d", ret);1455+ DISC_BROADCAST, "dup manufactureData failed,ret=%{public}d", ret);
1456 1456
1457- ret = DupData(srcFilter->manufactureDataMask, srcFilter->serviceUuidDataLength, &dstFilter->manufactureDataMask);1457+ ret = DupData(srcFilter->manufactureDataMask, srcFilter->manufactureDataLength, &dstFilter->manufactureDataMask);
1458 DISC_CHECK_AND_RETURN_RET_LOGE(ret == SOFTBUS_OK, ret, DISC_BROADCAST,1458 DISC_CHECK_AND_RETURN_RET_LOGE(ret == SOFTBUS_OK, ret, DISC_BROADCAST,
1459- "dup serviceUuidDataMask failed, ret=%{public}d", ret);1459+ "dup manufactureDataMask failed, ret=%{public}d", ret);
1460 return SOFTBUS_OK;1460 return SOFTBUS_OK;
1461}1461}
1462 1462 
1463- 
1464static int32_t CopySoftBusBcScanFilter(const BcScanFilter *srcFilter, SoftBusBcScanFilter *dstFilter)1463static int32_t CopySoftBusBcScanFilter(const BcScanFilter *srcFilter, SoftBusBcScanFilter *dstFilter)
1465{1464{
1466 DISC_CHECK_AND_RETURN_RET_LOGE(srcFilter != NULL, SOFTBUS_INVALID_PARAM, DISC_BROADCAST, "srcFilter is NULL");1465 DISC_CHECK_AND_RETURN_RET_LOGE(srcFilter != NULL, SOFTBUS_INVALID_PARAM, DISC_BROADCAST, "srcFilter is NULL");
@@ -65,7 +65,7 @@ extern "C"{
65#define LOCAL_NAME_BC_TYPE 0x0965#define LOCAL_NAME_BC_TYPE 0x09
66#define SERVICE_BC_TYPE 0x1666#define SERVICE_BC_TYPE 0x16
67#define MANUFACTURE_BC_TYPE 0xFF67#define MANUFACTURE_BC_TYPE 0xFF
68-#define SERVICEUUID_BC_TYPE 0x0368+#define SERVICE_UUID_BC_TYPE 0x03
69 69 
70// scan rsp head70// scan rsp head
71#define RSP_HEAD_LEN 471#define RSP_HEAD_LEN 4