mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-04-01 04:20:33 +00:00
pbap_client: handle OBEX_RESP_NOT_ACCEPTABLE
This commit is contained in:
parent
e47802fe3c
commit
16ded4fec1
@ -184,6 +184,7 @@ typedef uint8_t sm_key_t[16];
|
||||
#define OBEX_CONNECT_FAILED 0xB1
|
||||
#define OBEX_DISCONNECTED 0xB2
|
||||
#define OBEX_NOT_FOUND 0xB3
|
||||
#define OBEX_NOT_ACCEPTABLE 0xB4
|
||||
|
||||
#define AVDTP_SEID_DOES_NOT_EXIST 0xC0
|
||||
#define AVDTP_CONNECTION_DOES_NOT_EXIST 0xC1
|
||||
|
@ -54,7 +54,7 @@
|
||||
#define OBEX_RESP_UNAUTHORIZED 0xC1
|
||||
#define OBEX_RESP_FORBIDDEN 0xC3
|
||||
#define OBEX_RESP_NOT_FOUND 0xC4
|
||||
#define OBEX_RESP_REFUSED 0xC6
|
||||
#define OBEX_RESP_NOT_ACCEPTABLE 0xC6
|
||||
|
||||
#define OBEX_HEADER_BODY 0x48
|
||||
#define OBEX_HEADER_END_OF_BODY 0x49
|
||||
|
@ -504,15 +504,20 @@ static void pbap_packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *
|
||||
pbap_client->client_handler(PBAP_DATA_PACKET, pbap_client->cid, (uint8_t *) data, data_len);
|
||||
}
|
||||
}
|
||||
if (packet[0] == OBEX_RESP_CONTINUE){
|
||||
switch(packet[0]){
|
||||
case OBEX_RESP_CONTINUE:
|
||||
pbap_client->state = PBAP_W2_PULL_PHONEBOOK;
|
||||
goep_client_request_can_send_now(pbap_client->goep_cid);
|
||||
} else if (packet[0] == OBEX_RESP_SUCCESS){
|
||||
break;
|
||||
case OBEX_RESP_SUCCESS:
|
||||
pbap_client->state = PBAP_CONNECTED;
|
||||
pbap_client_emit_operation_complete_event(pbap_client, 0);
|
||||
} else {
|
||||
break;
|
||||
default:
|
||||
log_info("unexpected response 0x%02x", packet[0]);
|
||||
pbap_client->state = PBAP_CONNECTED;
|
||||
pbap_client_emit_operation_complete_event(pbap_client, OBEX_UNKNOWN_ERROR);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case PBAP_W4_GET_PHONEBOOK_SIZE_COMPLETE:
|
||||
@ -546,10 +551,12 @@ static void pbap_packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *
|
||||
pbap_client_emit_phonebook_size_event(pbap_client, OBEX_UNKNOWN_ERROR, 0);
|
||||
break;
|
||||
case PBAP_W4_GET_CARD_LIST_COMPLETE:
|
||||
if (packet[0] == OBEX_RESP_CONTINUE){
|
||||
switch (packet[0]){
|
||||
case OBEX_RESP_CONTINUE:
|
||||
pbap_client->state = PBAP_W2_GET_CARD_LIST;
|
||||
goep_client_request_can_send_now(pbap_client->goep_cid);
|
||||
} else if (packet[0] == OBEX_RESP_SUCCESS){
|
||||
break;
|
||||
case OBEX_RESP_SUCCESS:
|
||||
for (obex_iterator_init_with_response_packet(&it, goep_client_get_request_opcode(pbap_client->goep_cid), packet, size); obex_iterator_has_more(&it) ; obex_iterator_next(&it)){
|
||||
uint8_t hi = obex_iterator_get_hi(&it);
|
||||
if (hi == OBEX_HEADER_END_OF_BODY){
|
||||
@ -614,9 +621,16 @@ static void pbap_packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *
|
||||
pbap_client_emit_operation_complete_event(pbap_client, 0);
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
// ?
|
||||
break;
|
||||
case OBEX_RESP_NOT_ACCEPTABLE:
|
||||
pbap_client->state = PBAP_CONNECTED;
|
||||
pbap_client_emit_operation_complete_event(pbap_client, OBEX_NOT_ACCEPTABLE);
|
||||
break;
|
||||
default:
|
||||
log_info("unexpected response 0x%02x", packet[0]);
|
||||
pbap_client->state = PBAP_CONNECTED;
|
||||
pbap_client_emit_operation_complete_event(pbap_client, OBEX_UNKNOWN_ERROR);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
Loading…
x
Reference in New Issue
Block a user