2929#include < cstring>
3030#include < cassert>
3131
32+ using std::array;
3233using std::for_each;
3334using std::get;
3435using std::lock_guard;
@@ -134,9 +135,9 @@ void interface_manager::enable_interface(const unsigned int interface_index)
134135 interface.enabled = true ;
135136
136137 if (debug_level () >= 0 ) {
137- char interface_name[IF_NAMESIZE] = " ? " ;
138- if_indextoname (interface_index, interface_name);
139- syslog (LOG_DEBUG, " device enabled: %s" , interface_name);
138+ auto interface_name = array< char , IF_NAMESIZE> { ' ? ' } ;
139+ if_indextoname (interface_index, interface_name. data () );
140+ syslog (LOG_DEBUG, " device enabled: %s" , interface_name. data () );
140141 }
141142
142143 fire_interface_enabled ({this , interface_index});
@@ -152,9 +153,9 @@ void interface_manager::disable_interface(const unsigned int interface_index)
152153 interface.enabled = false ;
153154
154155 if (debug_level () >= 0 ) {
155- char interface_name[IF_NAMESIZE] = " ? " ;
156- if_indextoname (interface_index, interface_name);
157- syslog (LOG_DEBUG, " device disabled: %s" , interface_name);
156+ auto interface_name = array< char , IF_NAMESIZE> { ' ? ' } ;
157+ if_indextoname (interface_index, interface_name. data () );
158+ syslog (LOG_DEBUG, " device disabled: %s" , interface_name. data () );
158159 }
159160
160161 fire_interface_disabled ({this , interface_index});
@@ -164,8 +165,8 @@ void interface_manager::disable_interface(const unsigned int interface_index)
164165void interface_manager::add_interface_address (unsigned int index,
165166 int family, const void *address, size_t address_size)
166167{
167- char interface_name[IF_NAMESIZE] = " ? " ;
168- if_indextoname (index, interface_name);
168+ auto interface_name = array< char , IF_NAMESIZE> { ' ? ' } ;
169+ if_indextoname (index, interface_name. data () );
169170
170171 lock_guard<decltype (_interfaces_mutex)> lock {_interfaces_mutex};
171172
@@ -177,15 +178,15 @@ void interface_manager::add_interface_address(unsigned int index,
177178 *static_cast <const in_addr *>(address));
178179
179180 if (get<1 >(inserted) && debug_level () >= 0 ) {
180- char ipv4[ INET_ADDRSTRLEN] ;
181- inet_ntop (AF_INET, address, ipv4, INET_ADDRSTRLEN );
182- syslog (LOG_DEBUG, " IPv4 address added: %s on %s" , ipv4,
183- interface_name);
181+ auto addrstr = array< char , INET_ADDRSTRLEN> {} ;
182+ inet_ntop (AF_INET, address, addrstr. data (), addrstr. size () );
183+ syslog (LOG_DEBUG, " IPv4 address added: %s on %s" ,
184+ addrstr. data (), interface_name. data () );
184185 }
185186 }
186187 else {
187188 syslog (LOG_INFO, " short IPv4 address (size = %zu) on %s" ,
188- address_size, interface_name);
189+ address_size, interface_name. data () );
189190 }
190191 break ;
191192
@@ -196,30 +197,30 @@ void interface_manager::add_interface_address(unsigned int index,
196197 *static_cast <const in6_addr *>(address));
197198
198199 if (get<1 >(inserted) && debug_level () >= 0 ) {
199- char ipv6[ INET6_ADDRSTRLEN] ;
200- inet_ntop (AF_INET6, address, ipv6, INET6_ADDRSTRLEN );
201- syslog (LOG_DEBUG, " IPv6 address added: %s on %s" , ipv6,
202- interface_name);
200+ auto addrstr = array< char , INET6_ADDRSTRLEN> {} ;
201+ inet_ntop (AF_INET6, address, addrstr. data (), addrstr. size () );
202+ syslog (LOG_DEBUG, " IPv6 address added: %s on %s" ,
203+ addrstr. data (), interface_name. data () );
203204 }
204205 }
205206 else {
206207 syslog (LOG_INFO, " short IPv6 address (size = %zu) on %s" ,
207- address_size, interface_name);
208+ address_size, interface_name. data () );
208209 }
209210 break ;
210211
211212 default :
212213 syslog (LOG_INFO, " address of unknown family %d on %s" ,
213- family, interface_name);
214+ family, interface_name. data () );
214215 break ;
215216 }
216217}
217218
218219void interface_manager::remove_interface_address (unsigned int index,
219220 int family, const void *address, size_t address_size)
220221{
221- char interface_name[IF_NAMESIZE] = " ? " ;
222- if_indextoname (index, interface_name);
222+ auto interface_name = array< char , IF_NAMESIZE> { ' ? ' } ;
223+ if_indextoname (index, interface_name. data () );
223224
224225 lock_guard<decltype (_interfaces_mutex)> lock {_interfaces_mutex};
225226
@@ -231,15 +232,15 @@ void interface_manager::remove_interface_address(unsigned int index,
231232 *static_cast <const in_addr *>(address));
232233
233234 if (erased != 0 && debug_level () >= 0 ) {
234- char ipv4[ INET_ADDRSTRLEN] ;
235- inet_ntop (AF_INET, address, ipv4, INET_ADDRSTRLEN );
236- syslog (LOG_DEBUG, " IPv4 address removed: %s on %s" , ipv4,
237- interface_name);
235+ auto addrstr = array< char , INET_ADDRSTRLEN> {} ;
236+ inet_ntop (AF_INET, address, addrstr. data (), addrstr. size () );
237+ syslog (LOG_DEBUG, " IPv4 address removed: %s on %s" ,
238+ addrstr. data (), interface_name. data () );
238239 }
239240 }
240241 else {
241242 syslog (LOG_INFO, " short IPv4 address (size = %zu) on %s" ,
242- address_size, interface_name);
243+ address_size, interface_name. data () );
243244 }
244245 break ;
245246
@@ -250,21 +251,21 @@ void interface_manager::remove_interface_address(unsigned int index,
250251 *static_cast <const in6_addr *>(address));
251252
252253 if (erased != 0 && debug_level () >= 0 ) {
253- char ipv6[ INET6_ADDRSTRLEN] ;
254- inet_ntop (AF_INET6, address, ipv6, INET6_ADDRSTRLEN );
255- syslog (LOG_DEBUG, " IPv6 address removed: %s on %s" , ipv6,
256- interface_name);
254+ auto addrstr = array< char , INET6_ADDRSTRLEN> {} ;
255+ inet_ntop (AF_INET6, address, addrstr. data (), addrstr. size () );
256+ syslog (LOG_DEBUG, " IPv6 address removed: %s on %s" ,
257+ addrstr. data (), interface_name. data () );
257258 }
258259 }
259260 else {
260261 syslog (LOG_INFO, " short IPv6 address (size = %zu) on %s" ,
261- address_size, interface_name);
262+ address_size, interface_name. data () );
262263 }
263264 break ;
264265
265266 default :
266267 syslog (LOG_INFO, " address of unknown family %d on %s" ,
267- family, interface_name);
268+ family, interface_name. data () );
268269 break ;
269270 }
270271}
0 commit comments