diff --git a/src/sdp.c b/src/sdp.c index 4d7e352a2..66c12c6bc 100644 --- a/src/sdp.c +++ b/src/sdp.c @@ -653,144 +653,3 @@ static void sdp_packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *p } } -#if 0 -static uint8_t record[100]; -static uint8_t request[100]; -static uint8_t response[100]; -static void dump_service_search_response(void){ - uint16_t nr_services = READ_NET_16(sdp_response_buffer, 7); - int i; - printf("Nr service handles: %u\n", nr_services); - for (i=0; i<nr_services;i++){ - printf(" ServiceHandle %x\n", READ_NET_32(sdp_response_buffer, 9+i*4)); - } - if (sdp_response_buffer[9 + nr_services * 4]){ - printf(" Continuation index %u\n", READ_NET_16(sdp_response_buffer, 9+nr_services*4+1)); - } else { - printf(" Continuation: NO\n"); - } -} - -void sdp_test(){ - - const uint16_t remote_mtu = 48; - uint8_t allAttributeIDs[20]; // - - // create an attribute list - de_create_sequence(allAttributeIDs); - de_add_number(allAttributeIDs, DE_UINT, DE_SIZE_32, 0x0000ffff); - - // create two records with 2 attributes each - de_create_sequence(record); - de_add_number(record, DE_UINT, DE_SIZE_16, SDP_ServiceRecordHandle); - de_add_number(record, DE_UINT, DE_SIZE_32, 0x10001); - de_add_number(record, DE_UINT, DE_SIZE_16, SDP_ServiceClassIDList); - de_add_number(record, DE_UUID, DE_SIZE_16, 0x0001); - de_add_number(record, DE_UINT, DE_SIZE_16, SDP_BrowseGroupList); - de_add_number(record, DE_UUID, DE_SIZE_16, 0x0001); - uint32_t handle_1 = sdp_register_service_internal(NULL, record); - de_dump_data_element(record); - - de_create_sequence(record); - de_add_number(record, DE_UINT, DE_SIZE_16, SDP_ServiceRecordHandle); - de_add_number(record, DE_UINT, DE_SIZE_32, 0x10002); - de_add_number(record, DE_UINT, DE_SIZE_16, SDP_ServiceClassIDList); - de_add_number(record, DE_UUID, DE_SIZE_16, 0x0002); - de_add_number(record, DE_UINT, DE_SIZE_16, SDP_BrowseGroupList); - de_add_number(record, DE_UUID, DE_SIZE_16, 0x0001); - sdp_register_service_internal(NULL, record); - de_dump_data_element(record); - - uint16_t size = spd_get_filtered_size(record, allAttributeIDs); - printf("Attribute size %u\n", size); - - uint16_t transactionID = 1; - uint8_t * attributeIDList; - uint16_t attributeIDListLen; - uint16_t response_pos; - uint8_t * serviceSearchPattern; - uint16_t serviceSearchPatternLen; - -#if 1 - // sdp_handle_service_search_request - uint16_t nr_services = 1; - request[0] = SDP_ServiceSearchRequest; - net_store_16(request, 1, transactionID++); // transaction ID - serviceSearchPattern = &request[5]; - de_create_sequence(serviceSearchPattern); - { - de_add_number(serviceSearchPattern, DE_UUID, DE_SIZE_16, 0x0001); - } - serviceSearchPatternLen = de_get_len(serviceSearchPattern); - net_store_16(request, 5 + serviceSearchPatternLen, 2); // max - request[5 + serviceSearchPatternLen + 2] = 0; // cont - sdp_handle_service_search_request(request, 16); - dump_service_search_response(); - memcpy(request + 5 + serviceSearchPatternLen + 2, sdp_response_buffer + 9 + nr_services*4, 3); - sdp_handle_service_search_request(request, remote_mtu); - dump_service_search_response(); -#endif - -#if 1 - // sdp_handle_service_attribute_request - request[0] = SDP_ServiceAttributeRequest; - net_store_16(request, 1, transactionID++); // transaction ID - net_store_32(request, 5, handle_1); // record handle - net_store_16(request, 9, 11); // max bytes - attributeIDList = request + 11; - de_create_sequence(attributeIDList); - de_add_number(attributeIDList, DE_UINT, DE_SIZE_32, 0x0000ffff); - attributeIDListLen = de_get_len(attributeIDList); - request[11+attributeIDListLen] = 0; - response_pos = 0; - while(1) { - sdp_handle_service_attribute_request(request, remote_mtu); - - uint16_t attributeListByteCount = READ_NET_16(sdp_response_buffer, 5); - memcpy( &response[response_pos], &sdp_response_buffer[7], attributeListByteCount); - response_pos += attributeListByteCount; - - printf("attributeListByteCount %u\n", attributeListByteCount); - printf("Continuation %u\n", sdp_response_buffer[7+attributeListByteCount]); - if (sdp_response_buffer[7+attributeListByteCount] == 0) break; - printf("Continuation {%u}\n", READ_NET_16(sdp_response_buffer, 7+attributeListByteCount+1)); - memcpy(request+11+attributeIDListLen, sdp_response_buffer+7+attributeListByteCount, 3); - } - de_dump_data_element(response); -#endif - -#if 1 - // sdp_handle_service_search_attribute_request - request[0] = SDP_ServiceSearchAttributeRequest; - net_store_16(request, 1, transactionID++); // transaction ID - serviceSearchPattern = &request[5]; - de_create_sequence(serviceSearchPattern); - { - de_add_number(serviceSearchPattern, DE_UUID, DE_SIZE_16, 0x0001); - } - serviceSearchPatternLen = de_get_len(serviceSearchPattern); - net_store_16(request, 5 + serviceSearchPatternLen, 11); // MaximumAttributeByteCount: - attributeIDList = request + 5 + serviceSearchPatternLen + 2; - de_create_sequence(attributeIDList); - de_add_number(attributeIDList, DE_UINT, DE_SIZE_32, 0x0000ffff); - attributeIDListLen = de_get_len(attributeIDList); - request[5 + serviceSearchPatternLen + 2 + attributeIDListLen] = 0; - response_pos = 0; - while (1) { - sdp_handle_service_search_attribute_request(request, remote_mtu); - uint16_t attributeListByteCount = READ_NET_16(sdp_response_buffer, 5); - memcpy( &response[response_pos], &sdp_response_buffer[7], attributeListByteCount); - response_pos += attributeListByteCount; - - printf("attributeListByteCount %u\n", attributeListByteCount); - printf("Continuation %u\n", sdp_response_buffer[7+attributeListByteCount]); - if (sdp_response_buffer[7+attributeListByteCount] == 0) break; - printf("Continuation {%u,%u}\n", READ_NET_16(sdp_response_buffer, 7+attributeListByteCount+1), - READ_NET_16(sdp_response_buffer, 7+attributeListByteCount+3)); - memcpy(request+5 + serviceSearchPatternLen + 2 + attributeIDListLen, sdp_response_buffer+7+attributeListByteCount, 5); - } - de_dump_data_element(response); -#endif - exit(0); -} -#endif