bluedroid协议栈里l2c_link_hci_conn_req()函数中,哪一句是在判断当前是否有一个连接处于等待状态
时间: 2024-03-16 20:41:04 浏览: 96
在bluedroid协议栈里的l2c_link_hci_conn_req()函数中,以下这句代码是用来判断当前是否有一个连接处于等待状态:
```
if (l2cb.l2ce_ptr->state == L2CE_LISTEN)
```
其中,l2cb.l2ce_ptr是指向L2CAP通道实体的指针,state成员变量表示L2CAP通道实体的状态,L2CE_LISTEN表示该通道实体处于等待连接状态。因此,上述代码判断的是当前L2CAP通道实体是否处于等待连接状态。
相关问题
bluedroid协议栈中有哪些函数使用了L2CAP_CONN_NO_RESOURCES这个理由拒绝了对端的l2cap连接,请列举出来
在Bluedroid协议栈中,如果当前没有空闲的L2CAP连接资源,会使用L2CAP_CONN_NO_RESOURCES错误码拒绝对端的L2CAP连接请求。以下是使用该错误码拒绝连接请求的一些函数:
1. `l2c_link_hci_conn_req()`:该函数在已经有一个连接处于等待状态时,会拒绝新的连接请求并返回L2CAP_CONN_NO_RESOURCES错误码。
2. `l2c_link_check_send_pkts()`:该函数在尝试向对端发送数据包时,发现当前没有可用的L2CAP连接资源时,会返回L2CAP_CONN_NO_RESOURCES错误码。
3. `l2c_link_sec_comp()`:该函数在尝试建立安全连接时,如果当前没有可用的L2CAP连接资源,会返回L2CAP_CONN_NO_RESOURCES错误码。
4. `l2c_link_role_changed()`:该函数在尝试更改连接角色时,如果当前没有可用的L2CAP连接资源,会返回L2CAP_CONN_NO_RESOURCES错误码。
5. `l2c_link_process_num_completed_pkts()`:该函数在接收到对端发送的数据包时,如果当前没有可用的L2CAP连接资源,会返回L2CAP_CONN_NO_RESOURCES错误码。
需要注意的是,这里只列举了一些比较常见的函数,在实际情况中可能还会有其他的函数使用L2CAP_CONN_NO_RESOURCES错误码拒绝连接请求。
bluedroid协议栈在哪个函数判断,当前等待队列中有AVDTP 的l2cap连接,从而以No resources的理由拒绝连接
根据我的了解,Bluedroid协议栈中判断当前等待队列中是否有AVDTP的L2CAP连接,从而拒绝连接的函数是`l2c_link_hci_conn_req()`。在该函数中,会先检查当前是否有空闲的L2CAP连接资源,如果没有则会拒绝连接请求并返回L2CAP_CONN_NO_RESOURCES错误码。如果有空闲资源,则会分配一个L2CAP连接,并将其加入到L2CAP连接列表中。
阅读全文