Skip to content

Commit 234e649

Browse files
author
Mika Tervonen
committed
added network name change function to public API
1 parent d400859 commit 234e649

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

nanostack/ws_management_api.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,22 @@ int ws_management_node_init(
115115
char *network_name_ptr,
116116
fhss_timer_t *fhss_timer_ptr);
117117

118+
/**
119+
* Change the network name
120+
*
121+
* Change the network name dynamically at a runtime.
122+
* If stack is running the network discovery is restarted.
123+
*
124+
* \param interface_id Network interface ID.
125+
* \param network_name_ptr Nul terminated Network name limited to 32 characters.
126+
*
127+
* \return 0, Init OK.
128+
* \return <0 Init fail.
129+
*/
130+
int ws_management_network_name_set(
131+
int8_t interface_id,
132+
char *network_name_ptr);
133+
118134
/**
119135
* Configure regulatory domain of Wi-SUN stack.
120136
*

source/6LoWPAN/ws/ws_management_api.c

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,32 @@ int ws_management_node_init(
5656
return 0;
5757
}
5858

59+
int ws_management_network_name_set(
60+
int8_t interface_id,
61+
char *network_name_ptr)
62+
{
63+
protocol_interface_info_entry_t *cur;
64+
cur = protocol_stack_interface_info_get_by_id(interface_id);
65+
if (!cur || !ws_info(cur)) {
66+
return -1;
67+
}
68+
if (!network_name_ptr || strlen(network_name_ptr) == 0 || strlen(network_name_ptr) > 32) {
69+
return -2;
70+
}
71+
if (strcmp(cur->ws_info->network_name, network_name_ptr) == 0) {
72+
// Network name is the same no further actions required.
73+
return 0;
74+
}
75+
memset(cur->ws_info->network_name, 0, 33);
76+
strncpy(cur->ws_info->network_name, network_name_ptr, 32);
77+
// if settings change reset_restart for the settings needed
78+
if (cur->lowpan_info & INTERFACE_NWK_ACTIVE) {
79+
// bootstrap active need to restart
80+
ws_bootstrap_restart(interface_id);
81+
}
82+
83+
return 0;
84+
}
5985
int ws_management_regulatory_domain_set(
6086
int8_t interface_id,
6187
uint8_t regulatory_domain,

0 commit comments

Comments
 (0)