@@ -354,17 +354,17 @@ int bt_mesh_friend_cred_del(u16_t net_idx, u16_t addr)
354
354
return - ENOENT ;
355
355
}
356
356
357
- int bt_mesh_friend_cred_get (u16_t net_idx , u16_t addr , u8_t idx ,
358
- u8_t * nid , const u8_t * * enc , const u8_t * * priv )
357
+ int bt_mesh_friend_cred_get (struct bt_mesh_subnet * sub , u16_t addr , u8_t * nid ,
358
+ const u8_t * * enc , const u8_t * * priv )
359
359
{
360
360
int i ;
361
361
362
- BT_DBG ("net_idx 0x%04x addr 0x%04x idx %u " , net_idx , addr , idx );
362
+ BT_DBG ("net_idx 0x%04x addr 0x%04x" , sub -> net_idx , addr );
363
363
364
364
for (i = 0 ; i < ARRAY_SIZE (friend_cred ); i ++ ) {
365
365
struct bt_mesh_friend_cred * cred = & friend_cred [i ];
366
366
367
- if (cred -> net_idx != net_idx ) {
367
+ if (cred -> net_idx != sub -> net_idx ) {
368
368
continue ;
369
369
}
370
370
@@ -373,15 +373,15 @@ int bt_mesh_friend_cred_get(u16_t net_idx, u16_t addr, u8_t idx,
373
373
}
374
374
375
375
if (nid ) {
376
- * nid = cred -> cred [idx ].nid ;
376
+ * nid = cred -> cred [sub -> kr_flag ].nid ;
377
377
}
378
378
379
379
if (enc ) {
380
- * enc = cred -> cred [idx ].enc ;
380
+ * enc = cred -> cred [sub -> kr_flag ].enc ;
381
381
}
382
382
383
383
if (priv ) {
384
- * priv = cred -> cred [idx ].privacy ;
384
+ * priv = cred -> cred [sub -> kr_flag ].privacy ;
385
385
}
386
386
387
387
return 0 ;
@@ -390,8 +390,8 @@ int bt_mesh_friend_cred_get(u16_t net_idx, u16_t addr, u8_t idx,
390
390
return - ENOENT ;
391
391
}
392
392
#else
393
- int bt_mesh_friend_cred_get (u16_t net_idx , u16_t addr , u8_t idx ,
394
- u8_t * nid , const u8_t * * enc , const u8_t * * priv )
393
+ int bt_mesh_friend_cred_get (struct bt_mesh_subnet * sub , u16_t addr , u8_t * nid ,
394
+ const u8_t * * enc , const u8_t * * priv )
395
395
{
396
396
return - ENOENT ;
397
397
}
@@ -770,7 +770,7 @@ int bt_mesh_net_encode(struct bt_mesh_net_tx *tx, struct net_buf_simple *buf,
770
770
bool proxy )
771
771
{
772
772
const bool ctl = (tx -> ctx -> app_idx == BT_MESH_KEY_UNUSED );
773
- u8_t nid , idx = ( tx -> sub -> kr_phase == BT_MESH_KR_PHASE_2 ) ;
773
+ u8_t nid ;
774
774
const u8_t * enc , * priv ;
775
775
u8_t * seq ;
776
776
int err ;
@@ -801,22 +801,21 @@ int bt_mesh_net_encode(struct bt_mesh_net_tx *tx, struct net_buf_simple *buf,
801
801
}
802
802
803
803
if (IS_ENABLED (CONFIG_BT_MESH_LOW_POWER ) && tx -> friend_cred ) {
804
- if (bt_mesh_friend_cred_get (tx -> sub -> net_idx ,
805
- BT_MESH_ADDR_UNASSIGNED ,
806
- idx , & nid , & enc , & priv )) {
804
+ if (bt_mesh_friend_cred_get (tx -> sub , BT_MESH_ADDR_UNASSIGNED ,
805
+ & nid , & enc , & priv )) {
807
806
BT_WARN ("Falling back to master credentials" );
808
807
809
808
tx -> friend_cred = 0 ;
810
809
811
- nid = tx -> sub -> keys [idx ].nid ;
812
- enc = tx -> sub -> keys [idx ].enc ;
813
- priv = tx -> sub -> keys [idx ].privacy ;
810
+ nid = tx -> sub -> keys [tx -> sub -> kr_flag ].nid ;
811
+ enc = tx -> sub -> keys [tx -> sub -> kr_flag ].enc ;
812
+ priv = tx -> sub -> keys [tx -> sub -> kr_flag ].privacy ;
814
813
}
815
814
} else {
816
815
tx -> friend_cred = 0 ;
817
- nid = tx -> sub -> keys [idx ].nid ;
818
- enc = tx -> sub -> keys [idx ].enc ;
819
- priv = tx -> sub -> keys [idx ].privacy ;
816
+ nid = tx -> sub -> keys [tx -> sub -> kr_flag ].nid ;
817
+ enc = tx -> sub -> keys [tx -> sub -> kr_flag ].enc ;
818
+ priv = tx -> sub -> keys [tx -> sub -> kr_flag ].privacy ;
820
819
}
821
820
822
821
net_buf_simple_push_u8 (buf , (nid | (BT_MESH_NET_IVI_TX & 1 ) << 7 ));
@@ -1109,15 +1108,9 @@ static void bt_mesh_net_relay(struct net_buf_simple *sbuf,
1109
1108
1110
1109
net_buf_add_mem (buf , sbuf -> data , sbuf -> len );
1111
1110
1112
- if (rx -> sub -> kr_phase == BT_MESH_KR_PHASE_2 ) {
1113
- enc = rx -> sub -> keys [1 ].enc ;
1114
- priv = rx -> sub -> keys [1 ].privacy ;
1115
- nid = rx -> sub -> keys [1 ].nid ;
1116
- } else {
1117
- enc = rx -> sub -> keys [0 ].enc ;
1118
- priv = rx -> sub -> keys [0 ].privacy ;
1119
- nid = rx -> sub -> keys [0 ].nid ;
1120
- }
1111
+ enc = rx -> sub -> keys [rx -> sub -> kr_flag ].enc ;
1112
+ priv = rx -> sub -> keys [rx -> sub -> kr_flag ].privacy ;
1113
+ nid = rx -> sub -> keys [rx -> sub -> kr_flag ].nid ;
1121
1114
1122
1115
BT_DBG ("Relaying packet. TTL is now %u" , TTL (buf -> data ));
1123
1116
0 commit comments