56
56
#include "util.h"
57
57
#include "conf.h"
58
58
#include "debug.h"
59
+ #include "pstring.h"
59
60
60
61
#include "../config.h"
61
62
@@ -370,8 +371,7 @@ is_auth_online()
370
371
char *
371
372
get_status_text ()
372
373
{
373
- char buffer [STATUS_BUF_SIZ ]; /* XXX This needs rewriting since at ~112 clients, buffer max size is reached. */
374
- size_t len ;
374
+ pstr_t * pstr = pstr_new ();
375
375
s_config * config ;
376
376
t_auth_serv * auth_server ;
377
377
t_client * first ;
@@ -380,9 +380,7 @@ get_status_text()
380
380
unsigned int days = 0 , hours = 0 , minutes = 0 , seconds = 0 ;
381
381
t_trusted_mac * p ;
382
382
383
- len = 0 ;
384
- snprintf (buffer , (sizeof (buffer ) - len ), "WiFiDog status\n\n" );
385
- len = strlen (buffer );
383
+ pstr_cat (pstr , "WiFiDog status\n\n" );
386
384
387
385
uptime = time (NULL ) - started_time ;
388
386
days = (unsigned int )uptime / (24 * 60 * 60 );
@@ -393,30 +391,19 @@ get_status_text()
393
391
uptime -= minutes * 60 ;
394
392
seconds = (unsigned int )uptime ;
395
393
396
- snprintf ((buffer + len ), (sizeof (buffer ) - len ), "Version: " VERSION "\n" );
397
- len = strlen (buffer );
394
+ pstr_cat (pstr , "Version: " VERSION "\n" );
395
+ pstr_append_sprintf (pstr , "Uptime: %ud %uh %um %us\n" , days , hours , minutes , seconds );
396
+ pstr_cat (pstr , "Has been restarted: " );
398
397
399
- snprintf ((buffer + len ), (sizeof (buffer ) - len ), "Uptime: %ud %uh %um %us\n" , days , hours , minutes , seconds );
400
- len = strlen (buffer );
401
-
402
- snprintf ((buffer + len ), (sizeof (buffer ) - len ), "Has been restarted: " );
403
- len = strlen (buffer );
404
398
if (restart_orig_pid ) {
405
- snprintf ((buffer + len ), (sizeof (buffer ) - len ), "yes (from PID %d)\n" , restart_orig_pid );
406
- len = strlen (buffer );
399
+ pstr_append_sprintf (pstr , "yes (from PID %d)\n" , restart_orig_pid );
407
400
} else {
408
- snprintf ((buffer + len ), (sizeof (buffer ) - len ), "no\n" );
409
- len = strlen (buffer );
401
+ pstr_cat (pstr , "no\n" );
410
402
}
411
403
412
- snprintf ((buffer + len ), (sizeof (buffer ) - len ), "Internet Connectivity: %s\n" , (is_online ()? "yes" : "no" ));
413
- len = strlen (buffer );
414
-
415
- snprintf ((buffer + len ), (sizeof (buffer ) - len ), "Auth server reachable: %s\n" , (is_auth_online ()? "yes" : "no" ));
416
- len = strlen (buffer );
417
-
418
- snprintf ((buffer + len ), (sizeof (buffer ) - len ), "Clients served this session: %lu\n\n" , served_this_session );
419
- len = strlen (buffer );
404
+ pstr_append_sprintf (pstr , "Internet Connectivity: %s\n" , (is_online ()? "yes" : "no" ));
405
+ pstr_append_sprintf (pstr , "Auth server reachable: %s\n" , (is_auth_online ()? "yes" : "no" ));
406
+ pstr_append_sprintf (pstr , "Clients served this session: %lu\n\n" , served_this_session );
420
407
421
408
LOCK_CLIENT_LIST ();
422
409
@@ -432,25 +419,16 @@ get_status_text()
432
419
}
433
420
}
434
421
435
- snprintf ((buffer + len ), (sizeof (buffer ) - len ), "%d clients " "connected.\n" , count );
436
- len = strlen (buffer );
422
+ pstr_append_sprintf (pstr , "%d clients " "connected.\n" , count );
437
423
438
424
first = client_get_first_client ();
439
425
440
426
count = 0 ;
441
427
while (first != NULL ) {
442
- snprintf ((buffer + len ), (sizeof (buffer ) - len ), "\nClient %d\n" , count );
443
- len = strlen (buffer );
444
-
445
- snprintf ((buffer + len ), (sizeof (buffer ) - len ), " IP: %s MAC: %s\n" , first -> ip , first -> mac );
446
- len = strlen (buffer );
447
-
448
- snprintf ((buffer + len ), (sizeof (buffer ) - len ), " Token: %s\n" , first -> token );
449
- len = strlen (buffer );
450
-
451
- snprintf ((buffer + len ), (sizeof (buffer ) - len ), " Downloaded: %llu\n Uploaded: %llu\n" ,
452
- first -> counters .incoming , first -> counters .outgoing );
453
- len = strlen (buffer );
428
+ pstr_append_sprintf (pstr , "\nClient %d\n" , count );
429
+ pstr_append_sprintf (pstr , " IP: %s MAC: %s\n" , first -> ip , first -> mac );
430
+ pstr_append_sprintf (pstr , " Token: %s\n" , first -> token );
431
+ pstr_append_sprintf (pstr , " Downloaded: %llu\n Uploaded: %llu\n" , first -> counters .incoming , first -> counters .outgoing );
454
432
455
433
count ++ ;
456
434
first = first -> next ;
@@ -461,27 +439,22 @@ get_status_text()
461
439
config = config_get_config ();
462
440
463
441
if (config -> trustedmaclist != NULL ) {
464
- snprintf ((buffer + len ), (sizeof (buffer ) - len ), "\nTrusted MAC addresses:\n" );
465
- len = strlen (buffer );
442
+ pstr_cat (pstr , "\nTrusted MAC addresses:\n" );
466
443
467
444
for (p = config -> trustedmaclist ; p != NULL ; p = p -> next ) {
468
- snprintf ((buffer + len ), (sizeof (buffer ) - len ), " %s\n" , p -> mac );
469
- len = strlen (buffer );
445
+ pstr_append_sprintf (pstr , " %s\n" , p -> mac );
470
446
}
471
447
}
472
448
473
- snprintf ((buffer + len ), (sizeof (buffer ) - len ), "\nAuthentication servers:\n" );
474
- len = strlen (buffer );
449
+ pstr_cat (pstr , "\nAuthentication servers:\n" );
475
450
476
451
LOCK_CONFIG ();
477
452
478
453
for (auth_server = config -> auth_servers ; auth_server != NULL ; auth_server = auth_server -> next ) {
479
- snprintf ((buffer + len ), (sizeof (buffer ) - len ), " Host: %s (%s)\n" , auth_server -> authserv_hostname ,
480
- auth_server -> last_ip );
481
- len = strlen (buffer );
454
+ pstr_append_sprintf (pstr , " Host: %s (%s)\n" , auth_server -> authserv_hostname , auth_server -> last_ip );
482
455
}
483
456
484
457
UNLOCK_CONFIG ();
485
458
486
- return safe_strdup ( buffer );
459
+ return pstr_to_string ( pstr );
487
460
}
0 commit comments