Lines Matching refs:p_ccb

52 static void process_service_search (tCONN_CB *p_ccb, UINT16 trans_num,
56 static void process_service_attr_req (tCONN_CB *p_ccb, UINT16 trans_num,
60 static void process_service_search_attr_req (tCONN_CB *p_ccb, UINT16 trans_num,
110 void sdp_server_handle_client_req (tCONN_CB *p_ccb, BT_HDR *p_msg)
119 btu_start_timer (&p_ccb->timer_entry, BTU_TTYPE_SDP, SDP_INACT_TIMEOUT);
130 sdpu_build_n_send_error (p_ccb, trans_num, SDP_INVALID_PDU_SIZE, SDP_TEXT_BAD_HEADER);
137 process_service_search (p_ccb, trans_num, param_len, p_req, p_req_end);
141 process_service_attr_req (p_ccb, trans_num, param_len, p_req, p_req_end);
145 process_service_search_attr_req (p_ccb, trans_num, param_len, p_req, p_req_end);
149 sdpu_build_n_send_error (p_ccb, trans_num, SDP_INVALID_REQ_SYNTAX, SDP_TEXT_BAD_PDU);
168 static void process_service_search (tCONN_CB *p_ccb, UINT16 trans_num,
185 sdpu_build_n_send_error (p_ccb, trans_num, SDP_INVALID_REQ_SYNTAX, SDP_TEXT_BAD_UUID_LIST);
211 sdpu_build_n_send_error (p_ccb, trans_num, SDP_INVALID_CONT_STATE,
217 if (cont_offset != p_ccb->cont_offset)
219 sdpu_build_n_send_error (p_ccb, trans_num, SDP_INVALID_CONT_STATE,
233 cur_handles = (UINT16)((p_ccb->rem_mtu_size - SDP_MAX_SERVICE_RSPHDR_LEN) / 4);
239 p_ccb->cont_offset += cur_handles;
273 UINT16_TO_BE_STREAM (p_rsp, p_ccb->cont_offset);
287 L2CA_DataWrite (p_ccb->connection_id, p_buf);
302 static void process_service_attr_req (tCONN_CB *p_ccb, UINT16 trans_num,
323 sdpu_build_n_send_error (p_ccb, trans_num, SDP_INVALID_SERV_REC_HDL, SDP_TEXT_BAD_HANDLE);
330 if (max_list_len > (p_ccb->rem_mtu_size - SDP_MAX_ATTR_RSPHDR_LEN))
331 max_list_len = p_ccb->rem_mtu_size - SDP_MAX_ATTR_RSPHDR_LEN;
337 sdpu_build_n_send_error (p_ccb, trans_num, SDP_INVALID_REQ_SYNTAX, SDP_TEXT_BAD_ATTR_LIST);
347 sdpu_build_n_send_error (p_ccb, trans_num, SDP_INVALID_SERV_REC_HDL, SDP_TEXT_BAD_HANDLE);
356 sdpu_build_n_send_error (p_ccb, trans_num, SDP_INVALID_CONT_STATE, SDP_TEXT_BAD_CONT_LEN);
361 if (cont_offset != p_ccb->cont_offset)
363 sdpu_build_n_send_error (p_ccb, trans_num, SDP_INVALID_CONT_STATE, SDP_TEXT_BAD_CONT_INX);
367 if (!p_ccb->rsp_list)
369 sdpu_build_n_send_error (p_ccb, trans_num, SDP_NO_RESOURCES, NULL);
375 p_rsp = &p_ccb->rsp_list[0];
376 attr_seq.attr_entry[p_ccb->cont_info.next_attr_index].start = p_ccb->cont_info.next_attr_start_id;
381 if (!p_ccb->rsp_list)
383 p_ccb->rsp_list = (UINT8 *)GKI_getbuf (max_list_len);
384 if (p_ccb->rsp_list == NULL)
391 p_ccb->cont_offset = 0;
392 p_rsp = &p_ccb->rsp_list[3]; /* Leave space for data elem descr */
394 /* Reset continuation parameters in p_ccb */
395 p_ccb->cont_info.prev_sdp_rec = NULL;
396 p_ccb->cont_info.next_attr_index = 0;
397 p_ccb->cont_info.attr_offset = 0;
401 for (xx = p_ccb->cont_info.next_attr_index; xx < attr_seq.num_attr; xx++)
408 rem_len = max_list_len - (INT16) (p_rsp - &p_ccb->rsp_list[0]);
413 p_ccb->cont_info.next_attr_index = xx;
414 p_ccb->cont_info.next_attr_start_id = p_attr->id;
420 if (p_ccb->cont_info.attr_offset)
423 &p_ccb->cont_info.attr_offset);
426 if (p_ccb->cont_info.attr_offset != attr_len)
429 p_ccb->cont_info.attr_offset = 0; /* reset attr_offset */
436 sdpu_build_n_send_error (p_ccb, trans_num, SDP_NO_RESOURCES, NULL);
442 &p_ccb->cont_info.attr_offset);
444 p_ccb->cont_info.next_attr_index = xx;
445 p_ccb->cont_info.next_attr_start_id = p_attr->id;
464 p_ccb->cont_info.next_attr_index = 0;
466 len_to_send = (UINT16) (p_rsp - &p_ccb->rsp_list[0]);
471 p_ccb->list_len = sdpu_get_attrib_seq_len(p_rec, &attr_seq_sav) + 3;
473 if (p_ccb->list_len > 255)
475 p_ccb->rsp_list[0] = (UINT8) ((DATA_ELE_SEQ_DESC_TYPE << 3) | SIZE_IN_NEXT_WORD);
476 p_ccb->rsp_list[1] = (UINT8) ((p_ccb->list_len - 3) >> 8);
477 p_ccb->rsp_list[2] = (UINT8) (p_ccb->list_len - 3);
483 p_ccb->rsp_list[1] = (UINT8) ((DATA_ELE_SEQ_DESC_TYPE << 3) | SIZE_IN_NEXT_BYTE);
484 p_ccb->rsp_list[2] = (UINT8) (p_ccb->list_len - 3);
486 p_ccb->list_len--;
510 memcpy (p_rsp, &p_ccb->rsp_list[cont_offset], len_to_send);
513 p_ccb->cont_offset += len_to_send;
516 if (p_ccb->cont_offset < p_ccb->list_len)
521 UINT16_TO_BE_STREAM (p_rsp, p_ccb->cont_offset);
535 L2CA_DataWrite (p_ccb->connection_id, p_buf);
551 static void process_service_search_attr_req (tCONN_CB *p_ccb, UINT16 trans_num,
574 sdpu_build_n_send_error (p_ccb, trans_num, SDP_INVALID_REQ_SYNTAX, SDP_TEXT_BAD_UUID_LIST);
581 if (max_list_len > (p_ccb->rem_mtu_size - SDP_MAX_SERVATTR_RSPHDR_LEN))
582 max_list_len = p_ccb->rem_mtu_size - SDP_MAX_SERVATTR_RSPHDR_LEN;
588 sdpu_build_n_send_error (p_ccb, trans_num, SDP_INVALID_REQ_SYNTAX, SDP_TEXT_BAD_ATTR_LIST);
599 sdpu_build_n_send_error (p_ccb, trans_num, SDP_INVALID_CONT_STATE, SDP_TEXT_BAD_CONT_LEN);
604 if (cont_offset != p_ccb->cont_offset)
606 sdpu_build_n_send_error (p_ccb, trans_num, SDP_INVALID_CONT_STATE, SDP_TEXT_BAD_CONT_INX);
610 if (!p_ccb->rsp_list)
612 sdpu_build_n_send_error (p_ccb, trans_num, SDP_NO_RESOURCES, NULL);
618 p_rsp = &p_ccb->rsp_list[0];
619 attr_seq.attr_entry[p_ccb->cont_info.next_attr_index].start = p_ccb->cont_info.next_attr_start_id;
624 if (!p_ccb->rsp_list)
626 p_ccb->rsp_list = (UINT8 *)GKI_getbuf (max_list_len);
627 if (p_ccb->rsp_list == NULL)
634 p_ccb->cont_offset = 0;
635 p_rsp = &p_ccb->rsp_list[3]; /* Leave space for data elem descr */
637 /* Reset continuation parameters in p_ccb */
638 p_ccb->cont_info.prev_sdp_rec = NULL;
639 p_ccb->cont_info.next_attr_index = 0;
640 p_ccb->cont_info.last_attr_seq_desc_sent = FALSE;
641 p_ccb->cont_info.attr_offset = 0;
645 for (p_rec = sdp_db_service_search (p_ccb->cont_info.prev_sdp_rec, &uid_seq); p_rec; p_rec = sdp_db_service_search (p_rec, &uid_seq))
649 if (p_ccb->cont_info.last_attr_seq_desc_sent == FALSE)
652 rem_len = max_list_len - (INT16) (p_rsp - &p_ccb->rsp_list[0]);
656 p_ccb->cont_info.next_attr_index = 0;
657 p_ccb->cont_info.next_attr_start_id = attr_seq.attr_entry[0].start;
664 for (xx = p_ccb->cont_info.next_attr_index; xx < attr_seq.num_attr; xx++)
671 rem_len = max_list_len - (INT16) (p_rsp - &p_ccb->rsp_list[0]);
676 p_ccb->cont_info.next_attr_index = xx;
677 p_ccb->cont_info.next_attr_start_id = p_attr->id;
684 if (p_ccb->cont_info.attr_offset)
687 &p_ccb->cont_info.attr_offset);
690 if (p_ccb->cont_info.attr_offset != attr_len)
696 p_ccb->cont_info.attr_offset = 0; /* reset attr_offset */
703 sdpu_build_n_send_error (p_ccb, trans_num, SDP_NO_RESOURCES, NULL);
709 &p_ccb->cont_info.attr_offset);
711 p_ccb->cont_info.next_attr_index = xx;
712 p_ccb->cont_info.next_attr_start_id = p_attr->id;
731 if (p_ccb->cont_info.last_attr_seq_desc_sent == FALSE)
740 p_ccb->cont_info.last_attr_seq_desc_sent = TRUE;
753 p_ccb->cont_info.next_attr_index = 0;
754 p_ccb->cont_info.prev_sdp_rec = p_rec;
755 p_ccb->cont_info.last_attr_seq_desc_sent = FALSE;
759 len_to_send = (UINT16) (p_rsp - &p_ccb->rsp_list[0]);
766 p_ccb->list_len = sdpu_get_list_len(&uid_seq, &attr_seq_sav) + 3;
768 if (p_ccb->list_len > 255)
770 p_ccb->rsp_list[0] = (UINT8) ((DATA_ELE_SEQ_DESC_TYPE << 3) | SIZE_IN_NEXT_WORD);
771 p_ccb->rsp_list[1] = (UINT8) ((p_ccb->list_len - 3) >> 8);
772 p_ccb->rsp_list[2] = (UINT8) (p_ccb->list_len - 3);
778 p_ccb->rsp_list[1] = (UINT8) ((DATA_ELE_SEQ_DESC_TYPE << 3) | SIZE_IN_NEXT_BYTE);
779 p_ccb->rsp_list[2] = (UINT8) (p_ccb->list_len - 3);
781 p_ccb->list_len--;
807 memcpy (p_rsp, &p_ccb->rsp_list[cont_offset], len_to_send);
810 p_ccb->cont_offset += len_to_send;
813 if (p_ccb->cont_offset < p_ccb->list_len)
818 UINT16_TO_BE_STREAM (p_rsp, p_ccb->cont_offset);
832 L2CA_DataWrite (p_ccb->connection_id, p_buf);