fix exration of num hci cmds allowed from command status packets

This commit is contained in:
matthias.ringwald 2011-01-30 18:37:02 +00:00
parent 89db417b22
commit 7ec5eeaa74

View File

@ -323,16 +323,14 @@ static void event_handler(uint8_t *packet, int size){
hci_connection_t * conn;
int i;
link_key_t link_key;
// get num_cmd_packets
if (packet[0] == HCI_EVENT_COMMAND_COMPLETE || packet[0] == HCI_EVENT_COMMAND_STATUS){
// Get Num_HCI_Command_Packets
hci_stack.num_cmd_packets = packet[2];
}
switch (packet[0]) {
case HCI_EVENT_COMMAND_COMPLETE:
// get num cmd packets
// log_dbg("HCI_EVENT_COMMAND_COMPLETE cmds old %u - new %u\n", hci_stack.num_cmd_packets, packet[2]);
hci_stack.num_cmd_packets = packet[2];
if (COMMAND_COMPLETE_EVENT(packet, hci_read_buffer_size)){
// from offset 5
// status
@ -349,6 +347,12 @@ static void event_handler(uint8_t *packet, int size){
}
break;
case HCI_EVENT_COMMAND_STATUS:
// get num cmd packets
// log_dbg("HCI_EVENT_COMMAND_STATUS cmds - old %u - new %u\n", hci_stack.num_cmd_packets, packet[3]);
hci_stack.num_cmd_packets = packet[3];
break;
case HCI_EVENT_NUMBER_OF_COMPLETED_PACKETS:
for (i=0; i<packet[2];i++){
handle = READ_BT_16(packet, 3 + 2*i);
@ -651,7 +655,7 @@ static int hci_power_control_wake(){
int hci_power_control(HCI_POWER_MODE power_mode){
log_dbg("hci_power_control: %u\n", power_mode);
log_dbg("hci_power_control: %u, current mode %u\n", power_mode, hci_stack.state);
int err = 0;
switch (hci_stack.state){
@ -786,7 +790,7 @@ void hci_discoverable_control(uint8_t enable){
}
void hci_run(){
if (hci_stack.num_cmd_packets == 0) {
// cannot send command yet
return;