patch-2.4.27 linux-2.4.27/net/bluetooth/l2cap.c
Next file: linux-2.4.27/net/bluetooth/rfcomm/tty.c
Previous file: linux-2.4.27/net/bluetooth/hci_event.c
Back to the patch index
Back to the overall index
- Lines: 80
- Date:
2004-08-07 16:26:06.745432697 -0700
- Orig file:
linux-2.4.26/net/bluetooth/l2cap.c
- Orig date:
2004-04-14 06:05:41.000000000 -0700
diff -urN linux-2.4.26/net/bluetooth/l2cap.c linux-2.4.27/net/bluetooth/l2cap.c
@@ -1642,6 +1642,35 @@
return 0;
}
+static inline int l2cap_information_req(struct l2cap_conn *conn, l2cap_cmd_hdr *cmd, u8 *data)
+{
+ l2cap_info_req *req = (l2cap_info_req *) data;
+ l2cap_info_rsp rsp;
+ u16 type;
+
+ type = __le16_to_cpu(req->type);
+
+ BT_DBG("type 0x%4.4x", type);
+
+ rsp.type = __cpu_to_le16(type);
+ rsp.result = __cpu_to_le16(L2CAP_IR_NOTSUPP);
+ l2cap_send_rsp(conn, cmd->ident, L2CAP_INFO_RSP, sizeof(rsp), &rsp);
+ return 0;
+}
+
+static inline int l2cap_information_rsp(struct l2cap_conn *conn, l2cap_cmd_hdr *cmd, u8 *data)
+{
+ l2cap_info_rsp *rsp = (l2cap_info_rsp *) data;
+ u16 type, result;
+
+ type = __le16_to_cpu(rsp->type);
+ result = __le16_to_cpu(rsp->result);
+
+ BT_DBG("type 0x%4.4x result 0x%2.2x", type, result);
+
+ return 0;
+}
+
static inline void l2cap_sig_channel(struct l2cap_conn *conn, struct sk_buff *skb)
{
__u8 *data = skb->data;
@@ -1666,6 +1695,10 @@
}
switch (cmd.code) {
+ case L2CAP_COMMAND_REJ:
+ /* FIXME: We should process this */
+ break;
+
case L2CAP_CONN_REQ:
err = l2cap_connect_req(conn, &cmd, data);
break;
@@ -1690,17 +1723,19 @@
err = l2cap_disconnect_rsp(conn, &cmd, data);
break;
- case L2CAP_COMMAND_REJ:
- /* FIXME: We should process this */
- break;
-
case L2CAP_ECHO_REQ:
l2cap_send_rsp(conn, cmd.ident, L2CAP_ECHO_RSP, cmd.len, data);
break;
case L2CAP_ECHO_RSP:
+ break;
+
case L2CAP_INFO_REQ:
+ err = l2cap_information_req(conn, &cmd, data);
+ break;
+
case L2CAP_INFO_RSP:
+ err = l2cap_information_rsp(conn, &cmd, data);
break;
default:
@@ -1713,7 +1748,7 @@
l2cap_cmd_rej rej;
BT_DBG("error %d", err);
- /* FIXME: Map err to a valid reason. */
+ /* FIXME: Map err to a valid reason */
rej.reason = __cpu_to_le16(0);
l2cap_send_rsp(conn, cmd.ident, L2CAP_COMMAND_REJ, L2CAP_CMD_REJ_SIZE, &rej);
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)