@@ -130,7 +130,6 @@ mesh_error_t WisunBorderRouter::configure()
130
130
status = set_radius_shared_secret (radius_shared_secret_len, (uint8_t *) radius_shared_secret);
131
131
if (status != MESH_ERROR_NONE) {
132
132
tr_error (" Failed to set RADIUS shared secret!" );
133
- return status;
134
133
}
135
134
#endif
136
135
@@ -139,7 +138,6 @@ mesh_error_t WisunBorderRouter::configure()
139
138
status = set_radius_server_ipv6_address (radius_server_ipv6_addr);
140
139
if (status != MESH_ERROR_NONE) {
141
140
tr_error (" Failed to set RADIUS server IPv6 address!" );
142
- return status;
143
141
}
144
142
#endif
145
143
@@ -153,6 +151,13 @@ mesh_error_t WisunBorderRouter::apply_configuration(int8_t mesh_if_id)
153
151
tr_error (" Failed to apply RADIUS server IPv6 address!" );
154
152
return MESH_ERROR_PARAM;
155
153
}
154
+
155
+ status = set_bbr_radius_shared_secret ();
156
+ if (status != MESH_ERROR_NONE) {
157
+ tr_error (" Failed to apply RADIUS server IPv6 address!" );
158
+ return MESH_ERROR_PARAM;
159
+ }
160
+
156
161
return MESH_ERROR_NONE;
157
162
}
158
163
@@ -303,11 +308,37 @@ mesh_error_t WisunBorderRouter::set_radius_shared_secret(uint16_t shared_secret_
303
308
return MESH_ERROR_PARAM;
304
309
}
305
310
311
+ if (_shared_secret != NULL ) {
312
+ delete[] _shared_secret;
313
+ }
314
+
315
+ _shared_secret = new (std::nothrow) char [shared_secret_len];
316
+ if (_shared_secret == NULL ) {
317
+ return MESH_ERROR_MEMORY;
318
+ }
319
+
320
+ memcpy (_shared_secret, shared_secret, shared_secret_len);
321
+ _shared_secret_len = shared_secret_len;
322
+
306
323
int status = ws_bbr_radius_shared_secret_set (_mesh_if_id, shared_secret_len, shared_secret);
307
324
if (status != 0 ) {
308
325
return MESH_ERROR_UNKNOWN;
309
326
}
310
327
328
+ return set_bbr_radius_shared_secret ();
329
+ }
330
+
331
+ mesh_error_t WisunBorderRouter::set_bbr_radius_shared_secret ()
332
+ {
333
+ if (_shared_secret_len == 0 || _shared_secret == NULL ) {
334
+ return MESH_ERROR_UNKNOWN;
335
+ }
336
+
337
+ int status = ws_bbr_radius_shared_secret_set (_mesh_if_id, _shared_secret_len, (uint8_t *) _shared_secret);
338
+ if (status != 0 ) {
339
+ return MESH_ERROR_UNKNOWN;
340
+ }
341
+
311
342
return MESH_ERROR_NONE;
312
343
}
313
344
0 commit comments