static bt_status_t btsock_connect(const bt_bdaddr_t *bd_addr, btsock_type_t type, const uint8_t *uuid, int channel, int *sock_fd, int flags) { assert(uuid != NULL || channel > 0); assert(bd_addr != NULL); assert(sock_fd != NULL); *sock_fd = INVALID_FD; bt_status_t status = BT_STATUS_FAIL; switch (type) { case BTSOCK_RFCOMM: status = btsock_rfc_connect(bd_addr, uuid, channel, sock_fd, flags); break; case BTSOCK_L2CAP: status = btsock_l2cap_connect(bd_addr, channel, sock_fd, flags); break; case BTSOCK_SCO: status = btsock_sco_connect(bd_addr, sock_fd, flags); break; default: LOG_ERROR("%s unknown/unsupported socket type: %d", __func__, type); status = BT_STATUS_UNSUPPORTED; break; } return status; }
static bt_status_t btsock_connect(const bt_bdaddr_t *bd_addr, btsock_type_t type, const uint8_t* uuid, int channel, int* sock_fd, int flags) { if((uuid == NULL && channel <= 0) || bd_addr == NULL || sock_fd == NULL) { BTIF_TRACE_ERROR4("invalid parameters, bd_addr:%p, uuid:%p, channel:%d, sock_fd:%p", bd_addr, uuid, channel, sock_fd); return BT_STATUS_PARM_INVALID; } *sock_fd = -1; bt_status_t status = BT_STATUS_FAIL; switch(type) { case BTSOCK_RFCOMM: status = btsock_rfc_connect(bd_addr, uuid, channel, sock_fd, flags); break; case BTSOCK_L2CAP: BTIF_TRACE_ERROR1("bt l2cap socket type not supported, type:%d", type); status = BT_STATUS_UNSUPPORTED; break; case BTSOCK_SCO: BTIF_TRACE_ERROR1("bt sco socket not supported, type:%d", type); status = BT_STATUS_UNSUPPORTED; break; default: BTIF_TRACE_ERROR1("unknown bt socket type:%d", type); status = BT_STATUS_UNSUPPORTED; break; } return status; }