Skip to content

Commit c04dc50

Browse files
committed
Use the new pascal strings for get_status_text()
1 parent d07d69f commit c04dc50

File tree

1 file changed

+21
-48
lines changed

1 file changed

+21
-48
lines changed

src/util.c

Lines changed: 21 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
#include "util.h"
5757
#include "conf.h"
5858
#include "debug.h"
59+
#include "pstring.h"
5960

6061
#include "../config.h"
6162

@@ -370,8 +371,7 @@ is_auth_online()
370371
char *
371372
get_status_text()
372373
{
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();
375375
s_config *config;
376376
t_auth_serv *auth_server;
377377
t_client *first;
@@ -380,9 +380,7 @@ get_status_text()
380380
unsigned int days = 0, hours = 0, minutes = 0, seconds = 0;
381381
t_trusted_mac *p;
382382

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");
386384

387385
uptime = time(NULL) - started_time;
388386
days = (unsigned int)uptime / (24 * 60 * 60);
@@ -393,30 +391,19 @@ get_status_text()
393391
uptime -= minutes * 60;
394392
seconds = (unsigned int)uptime;
395393

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: ");
398397

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);
404398
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);
407400
} else {
408-
snprintf((buffer + len), (sizeof(buffer) - len), "no\n");
409-
len = strlen(buffer);
401+
pstr_cat(pstr, "no\n");
410402
}
411403

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);
420407

421408
LOCK_CLIENT_LIST();
422409

@@ -432,25 +419,16 @@ get_status_text()
432419
}
433420
}
434421

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);
437423

438424
first = client_get_first_client();
439425

440426
count = 0;
441427
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);
454432

455433
count++;
456434
first = first->next;
@@ -461,27 +439,22 @@ get_status_text()
461439
config = config_get_config();
462440

463441
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");
466443

467444
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);
470446
}
471447
}
472448

473-
snprintf((buffer + len), (sizeof(buffer) - len), "\nAuthentication servers:\n");
474-
len = strlen(buffer);
449+
pstr_cat(pstr, "\nAuthentication servers:\n");
475450

476451
LOCK_CONFIG();
477452

478453
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);
482455
}
483456

484457
UNLOCK_CONFIG();
485458

486-
return safe_strdup(buffer);
459+
return pstr_to_string(pstr);
487460
}

0 commit comments

Comments
 (0)