'struct bt_conn_auth_cb' has no member named 'pairing_failed'

I've just updated from nRF Connect v1.9.1 to V2.0.0.  In my bluetooth code that worked in the older version, I setup a couple of callbacks for BLE pairing:

static void pairing_complete(struct bt_conn *conn, bool bonded)
{
	char addr[BT_ADDR_LE_STR_LEN];

	bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

	#ifdef DEBUG
		printk("Pairing completed: %s, bonded: %d\n", addr, bonded);
	#endif
}

static void pairing_failed(struct bt_conn *conn, enum bt_security_err reason)
{
	char addr[BT_ADDR_LE_STR_LEN];

	bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));

	#ifdef DEBUG_BLE
		printk("Pairing failed conn: %s, reason %d\n", addr, reason);
	#endif

	bt_conn_disconnect(conn, BT_HCI_ERR_REMOTE_USER_TERM_CONN);
}

static struct bt_conn_auth_cb conn_auth_callbacks = {
	.cancel = auth_cancel,
	.pairing_complete = pairing_complete,
	.pairing_failed = pairing_failed
};

In v2.0.0, I'm getting build errors in my call-back definition:

c:\Nordic\Development\LSR-MAX\LSR-MAX_V0_09\src\ble_config.c:266:3: error: 'struct bt_conn_auth_cb' has no member named 'pairing_complete'
  266 |  .pairing_complete = pairing_complete,
      |   ^~~~~~~~~~~~~~~~
c:\Nordic\Development\LSR-MAX\LSR-MAX_V0_09\src\ble_config.c:266:22: warning: initialization of 'void (*)(struct bt_conn *)' from incompatible pointer type 'void (*)(struct bt_conn *, _Bool)' [-Wincompatible-pointer-types]
  266 |  .pairing_complete = pairing_complete,
      |                      ^~~~~~~~~~~~~~~~
c:\Nordic\Development\LSR-MAX\LSR-MAX_V0_09\src\ble_config.c:266:22: note: (near initialization for 'conn_auth_callbacks.pairing_confirm')
c:\Nordic\Development\LSR-MAX\LSR-MAX_V0_09\src\ble_config.c:267:3: error: 'struct bt_conn_auth_cb' has no member named 'pairing_failed'
  267 |  .pairing_failed = pairing_failed
      |   ^~~~~~~~~~~~~~
c:\Nordic\Development\LSR-MAX\LSR-MAX_V0_09\src\ble_config.c:267:20: warning: excess elements in struct initializer
  267 |  .pairing_failed = pairing_failed
      |                    ^~~~~~~~~~~~~~
c:\Nordic\Development\LSR-MAX\LSR-MAX_V0_09\src\ble_config.c:267:20: note: (near initialization for 'conn_auth_callbacks')

The struct 'bt_conn_auth_cb' is defined in ...v2.0.0/zephyr/include/zephyr/bluetooth/conn.h, and I can confirm from this that is does indeed include the two elements .pairing_failed and .pairing_complete.  I include this header in my code via:

#include <bluetooth/conn.h>

It all worked seemelessly in v1.9.1, but something has changed in v2.0.0 to cause it to fall over.

Anyone got any ideas?

Cheers,

Mike

Related