ev->type, ev->discovering ? "on" : "off");
}
-static int mgmt_new_link_key(int mgmt_sk, uint16_t index,
- struct mgmt_ev_new_link_key *ev, uint16_t len)
+static void new_link_key(uint16_t index, uint16_t len, const void *param,
+ void *user_data)
{
+ const struct mgmt_ev_new_link_key *ev = param;
if (len != sizeof(*ev)) {
fprintf(stderr, "Invalid new_link_key length (%u bytes)\n",
len);
- return -EINVAL;
+ return;
}
if (monitor) {
"store_hint %u\n", index, addr, ev->key.type,
ev->key.pin_len, ev->store_hint);
}
-
- return 0;
}
static const char *typestr(uint8_t type)
return mgmt_cmd_complete(mgmt_sk, index, data, len);
case MGMT_EV_CMD_STATUS:
return mgmt_cmd_status(mgmt_sk, index, data, len);
- case MGMT_EV_NEW_LINK_KEY:
- return mgmt_new_link_key(mgmt_sk, index, data, len);
case MGMT_EV_DEVICE_CONNECTED:
return mgmt_connected(mgmt_sk, index, data, len);
case MGMT_EV_DEVICE_DISCONNECTED:
NULL, NULL);
mgmt_register(mgmt, MGMT_EV_DISCOVERING, index, discovering,
NULL, NULL);
+ mgmt_register(mgmt, MGMT_EV_NEW_LINK_KEY, index, new_link_key,
+ NULL, NULL);
event_loop = g_main_loop_new(NULL, FALSE);
mgmt_io = g_io_channel_unix_new(mgmt_sk);