#if defined(HAVE_LINUX_ICMP_H)
# include <linux/icmp.h>
#endif
+#ifdef HAVE_BLUETOOTH_BLUETOOTH_H
+# include <bluetooth/bluetooth.h>
+# include <bluetooth/hci.h>
+# include <bluetooth/l2cap.h>
+# include <bluetooth/rfcomm.h>
+# include <bluetooth/sco.h>
+#endif
#ifndef PF_UNSPEC
# define PF_UNSPEC AF_UNSPEC
#endif
#include "xlat/netlink_protocols.h"
#endif
+#if defined(HAVE_BLUETOOTH_BLUETOOTH_H)
+# include "xlat/bt_protocols.h"
+#endif
+
#include "xlat/msg_flags.h"
#include "xlat/sockoptions.h"
#endif
#ifdef AF_NETLINK
struct sockaddr_nl nl;
+#endif
+#ifdef HAVE_BLUETOOTH_BLUETOOTH_H
+ struct sockaddr_hci hci;
+ struct sockaddr_l2 l2;
+ struct sockaddr_rc rc;
+ struct sockaddr_sco sco;
#endif
} addrbuf;
char string_addr[100];
tprintf("pid=%d, groups=%08x", addrbuf.nl.nl_pid, addrbuf.nl.nl_groups);
break;
#endif /* AF_NETLINK */
+#if defined(AF_BLUETOOTH) && defined(HAVE_BLUETOOTH_BLUETOOTH_H)
+ case AF_BLUETOOTH:
+ tprintf("{sco_bdaddr=%02X:%02X:%02X:%02X:%02X:%02X} or "
+ "{rc_bdaddr=%02X:%02X:%02X:%02X:%02X:%02X, rc_channel=%d} or "
+ "{l2_psm=htobs(%d), l2_bdaddr=%02X:%02X:%02X:%02X:%02X:%02X, l2_cid=htobs(%d)} or "
+ "{hci_dev=htobs(%d)}",
+ addrbuf.sco.sco_bdaddr.b[0], addrbuf.sco.sco_bdaddr.b[1],
+ addrbuf.sco.sco_bdaddr.b[2], addrbuf.sco.sco_bdaddr.b[3],
+ addrbuf.sco.sco_bdaddr.b[4], addrbuf.sco.sco_bdaddr.b[5],
+ addrbuf.rc.rc_bdaddr.b[0], addrbuf.rc.rc_bdaddr.b[1],
+ addrbuf.rc.rc_bdaddr.b[2], addrbuf.rc.rc_bdaddr.b[3],
+ addrbuf.rc.rc_bdaddr.b[4], addrbuf.rc.rc_bdaddr.b[5],
+ addrbuf.rc.rc_channel,
+ btohs(addrbuf.l2.l2_psm), addrbuf.l2.l2_bdaddr.b[0],
+ addrbuf.l2.l2_bdaddr.b[1], addrbuf.l2.l2_bdaddr.b[2],
+ addrbuf.l2.l2_bdaddr.b[3], addrbuf.l2.l2_bdaddr.b[4],
+ addrbuf.l2.l2_bdaddr.b[5], btohs(addrbuf.l2.l2_cid),
+ btohs(addrbuf.hci.hci_dev));
+ break;
+#endif /* AF_BLUETOOTH && HAVE_BLUETOOTH_BLUETOOTH_H */
/* AF_AX25 AF_APPLETALK AF_NETROM AF_BRIDGE AF_AAL5
AF_X25 AF_ROSE etc. still need to be done */
case PF_NETLINK:
printxval(netlink_protocols, tcp->u_arg[2], "NETLINK_???");
break;
+#endif
+#if defined(PF_BLUETOOTH) && defined(HAVE_BLUETOOTH_BLUETOOTH_H)
+ case PF_BLUETOOTH:
+ printxval(bt_protocols, tcp->u_arg[2], "BTPROTO_???");
+ break;
#endif
default:
tprintf("%lu", tcp->u_arg[2]);