Home | History | Annotate | Download | only in src

Lines Matching refs:sock

149 		int err = 0, sock = g_io_channel_unix_get_fd(io);
152 if (getsockopt(sock, SOL_SOCKET, SO_ERROR, &err, &len) < 0)
253 static int l2cap_bind(int sock, const bdaddr_t *src, uint16_t psm, GError **err)
262 if (bind(sock, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
270 static int l2cap_connect(int sock, const bdaddr_t *dst, uint16_t psm)
280 err = connect(sock, (struct sockaddr *) &addr, sizeof(addr));
287 static int l2cap_set_master(int sock, int master)
293 if (getsockopt(sock, SOL_L2CAP, L2CAP_LM, &flags, &len) < 0)
306 if (setsockopt(sock, SOL_L2CAP, L2CAP_LM, &flags, sizeof(flags)) < 0)
312 static int rfcomm_set_master(int sock, int master)
318 if (getsockopt(sock, SOL_RFCOMM, RFCOMM_LM, &flags, &len) < 0)
331 if (setsockopt(sock, SOL_RFCOMM, RFCOMM_LM, &flags, sizeof(flags)) < 0)
337 static int l2cap_set_lm(int sock, int level)
346 if (setsockopt(sock, SOL_L2CAP, L2CAP_LM, &opt, sizeof(opt)) < 0)
352 static int rfcomm_set_lm(int sock, int level)
361 if (setsockopt(sock, SOL_RFCOMM, RFCOMM_LM, &opt, sizeof(opt)) < 0)
367 static gboolean set_sec_level(int sock, BtIOType type, int level, GError **err)
382 if (setsockopt(sock, SOL_BLUETOOTH, BT_SECURITY, &sec,
392 ret = l2cap_set_lm(sock, level);
394 ret = rfcomm_set_lm(sock, level);
404 static int l2cap_get_lm(int sock, int *sec_level)
410 if (getsockopt(sock, SOL_L2CAP, L2CAP_LM, &opt, &len) < 0)
425 static int rfcomm_get_lm(int sock, int *sec_level)
431 if (getsockopt(sock, SOL_RFCOMM, RFCOMM_LM, &opt, &len) < 0)
446 static gboolean get_sec_level(int sock, BtIOType type, int *level,
455 if (getsockopt(sock, SOL_BLUETOOTH, BT_SECURITY, &sec, &len) == 0) {
466 ret = l2cap_get_lm(sock, level);
468 ret = rfcomm_get_lm(sock, level);
478 static gboolean l2cap_set(int sock, int sec_level, uint16_t imtu, uint16_t omtu,
487 if (getsockopt(sock, SOL_L2CAP, L2CAP_OPTIONS, &l2o,
500 if (setsockopt(sock, SOL_L2CAP, L2CAP_OPTIONS, &l2o,
507 if (master >= 0 && l2cap_set_master(sock, master) < 0) {
512 if (sec_level && !set_sec_level(sock, BT_IO_L2CAP, sec_level, err))
518 static int rfcomm_bind(int sock,
528 if (bind(sock, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
536 static int rfcomm_connect(int sock, const bdaddr_t *dst, uint8_t channel)
546 err = connect(sock, (struct sockaddr *) &addr, sizeof(addr));
553 static gboolean rfcomm_set(int sock, int sec_level, int master, GError **err)
555 if (sec_level && !set_sec_level(sock, BT_IO_RFCOMM, sec_level, err))
558 if (master >= 0 && rfcomm_set_master(sock, master) < 0) {
566 static int sco_bind(int sock, const bdaddr_t *src, GError **err)
574 if (bind(sock, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
582 static int sco_connect(int sock, const bdaddr_t *dst)
591 err = connect(sock, (struct sockaddr *) &addr, sizeof(addr));
598 static gboolean sco_set(int sock, uint16_t mtu, GError **err)
608 if (getsockopt(sock, SOL_SCO, SCO_OPTIONS, &sco_opt, &len) < 0) {
614 if (setsockopt(sock, SOL_SCO, SCO_OPTIONS, &sco_opt,
700 static gboolean get_peers(int sock, struct sockaddr *src, struct sockaddr *dst,
707 if (getsockname(sock, src, &olen) < 0) {
714 if (getpeername(sock, dst, &olen) < 0) {
722 static int l2cap_get_info(int sock, uint16_t *handle, uint8_t *dev_class)
728 if (getsockopt(sock, SOL_L2CAP, L2CAP_CONNINFO, &info, &len) < 0)
740 static gboolean l2cap_get(int sock, GError **err, BtIOOption opt1,
753 if (getsockopt(sock, SOL_L2CAP, L2CAP_OPTIONS, &l2o, &len) < 0) {
758 if (!get_peers(sock, (struct sockaddr *) &src,
778 if (getsockopt(sock, SOL_BLUETOOTH, BT_DEFER_SETUP,
786 if (!get_sec_level(sock, BT_IO_L2CAP,
802 if (getsockopt(sock, SOL_L2CAP, L2CAP_LM, &flags,
812 if (l2cap_get_info(sock, &handle, dev_class) < 0) {
819 if (l2cap_get_info(sock, &handle, dev_class) < 0) {
837 static int rfcomm_get_info(int sock, uint16_t *handle, uint8_t *dev_class)
843 if (getsockopt(sock, SOL_RFCOMM, RFCOMM_CONNINFO, &info, &len) < 0)
855 static gboolean rfcomm_get(int sock, GError **err, BtIOOption opt1,
865 if (!get_peers(sock, (struct sockaddr *) &src,
885 if (getsockopt(sock, SOL_BLUETOOTH, BT_DEFER_SETUP,
893 if (!get_sec_level(sock, BT_IO_RFCOMM,
909 if (getsockopt(sock, SOL_RFCOMM, RFCOMM_LM, &flags,
919 if (rfcomm_get_info(sock, &handle, dev_class) < 0) {
926 if (rfcomm_get_info(sock, &handle, dev_class) < 0) {
944 static int sco_get_info(int sock, uint16_t *handle, uint8_t *dev_class)
950 if (getsockopt(sock, SOL_SCO, SCO_CONNINFO, &info, &len) < 0)
962 static gboolean sco_get(int sock, GError **err, BtIOOption opt1, va_list args)
973 if (getsockopt(sock, SOL_SCO, SCO_OPTIONS, &sco_opt, &len) < 0) {
978 if (!get_peers(sock, (struct sockaddr *) &src,
1002 if (sco_get_info(sock, &handle, dev_class) < 0) {
1009 if (sco_get_info(sock, &handle, dev_class) < 0) {
1030 int sock;
1032 sock = g_io_channel_unix_get_fd(io);
1037 return l2cap_get(sock, err, opt1, args);
1039 return rfcomm_get(sock, err, opt1, args);
1041 return sco_get(sock, err, opt1, args);
1052 int sock;
1056 sock = g_io_channel_unix_get_fd(io);
1059 pfd.fd = sock;
1069 ret = read(sock, &c, 1);
1083 int sock;
1092 sock = g_io_channel_unix_get_fd(io);
1097 return l2cap_set(sock, opts.sec_level, opts.imtu, opts.omtu,
1100 return rfcomm_set(sock, opts.sec_level, opts.master, err);
1102 return sco_set(sock, opts.mtu, err);
1126 int sock;
1131 sock = socket(PF_BLUETOOTH, SOCK_RAW, BTPROTO_L2CAP);
1132 if (sock < 0) {
1136 if (l2cap_bind(sock, &opts->src,
1139 if (!l2cap_set(sock, opts->sec_level, 0, 0, 0, -1, err))
1143 sock = socket(PF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_L2CAP);
1144 if (sock < 0) {
1148 if (l2cap_bind(sock, &opts->src,
1151 if (!l2cap_set(sock, opts->sec_level, opts->imtu, opts->omtu,
1156 sock = socket(PF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
1157 if (sock < 0) {
1161 if (rfcomm_bind(sock, &opts->src,
1164 if (!rfcomm_set(sock, opts->sec_level, opts->master, err))
1168 sock = socket(PF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_SCO);
1169 if (sock < 0) {
1173 if (sco_bind(sock, &opts->src, err) < 0)
1175 if (!sco_set(sock, opts->mtu, err))
1184 io = g_io_channel_unix_new(sock);
1192 close(sock);
1204 int err, sock;
1218 sock = g_io_channel_unix_get_fd(io);
1222 err = l2cap_connect(sock, &opts.dst, 0);
1225 err = l2cap_connect(sock, &opts.dst, opts.psm);
1228 err = rfcomm_connect(sock, &opts.dst, opts.channel);
1231 err = sco_connect(sock, &opts.dst);
1259 int sock;
1279 sock = g_io_channel_unix_get_fd(io);
1282 setsockopt(sock, SOL_BLUETOOTH, BT_DEFER_SETUP, &opts.defer,
1285 if (listen(sock, 5) < 0) {