From 5718ad52db85d17082eada7672700687b31fd5f6 Mon Sep 17 00:00:00 2001 From: Jfreegman Date: Tue, 12 Aug 2014 03:01:18 -0400 Subject: [PATCH] a few fixes --- src/dns.c | 10 +++++++++- src/global_commands.c | 6 ++---- src/prompt.c | 11 ++++++----- src/prompt.h | 2 +- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/dns.c b/src/dns.c index 206e3de..2d1cd75 100644 --- a/src/dns.c +++ b/src/dns.c @@ -108,15 +108,23 @@ static int load_dns_domainlist(void) char line[MAX_DNS_LINE]; while (fgets(line, sizeof(line), fp) && dns3_servers.lines < MAX_DNS_SERVERS) { - if (strlen(line) < (DNS3_KEY_SIZE * 2) + 4) + int linelen = strlen(line); + + if (linelen < DNS3_KEY_SIZE * 2 + 5) continue; + if (line[linelen - 1] == '\n') + line[--linelen] = '\0'; + const char *name = strtok(line, " "); const char *keystr = strtok(NULL, " "); if (name == NULL || keystr == NULL) continue; + if (strlen(keystr) != DNS3_KEY_SIZE * 2) + continue; + snprintf(dns3_servers.names[dns3_servers.lines], sizeof(dns3_servers.names[dns3_servers.lines]), "%s", name); int res = hex_string_to_bytes(dns3_servers.keys[dns3_servers.lines], DNS3_KEY_SIZE, keystr); diff --git a/src/global_commands.c b/src/global_commands.c index 9e6c1ff..72ad595 100644 --- a/src/global_commands.c +++ b/src/global_commands.c @@ -352,8 +352,7 @@ void cmd_note(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MA int len = strlen(msg) - 1; msg[len] = '\0'; - tox_set_status_message(m, (uint8_t *) msg, (uint16_t) len); - prompt_update_statusmessage(prompt, msg); + prompt_update_statusmessage(prompt, m, msg); } void cmd_prompt_help(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) @@ -412,7 +411,6 @@ void cmd_status(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[ int len = strlen(msg) - 1; msg[len] = '\0'; - tox_set_status_message(m, (uint8_t *) msg, (uint16_t) len); - prompt_update_statusmessage(prompt, msg); + prompt_update_statusmessage(prompt, m, msg); } } diff --git a/src/prompt.c b/src/prompt.c index 2fb1ac7..ed94a4a 100644 --- a/src/prompt.c +++ b/src/prompt.c @@ -102,12 +102,14 @@ void prompt_update_nick(ToxWindow *prompt, const char *nick) statusbar->nick_len = strlen(statusbar->nick); } -/* Updates own statusmessage in prompt statusbar */ -void prompt_update_statusmessage(ToxWindow *prompt, const char *statusmsg) +/* Updates own statusmessage */ +void prompt_update_statusmessage(ToxWindow *prompt, Tox *m, const char *statusmsg) { StatusBar *statusbar = prompt->stb; snprintf(statusbar->statusmsg, sizeof(statusbar->statusmsg), "%s", statusmsg); - statusbar->statusmsg_len = strlen(statusbar->statusmsg); + int len = strlen(statusbar->statusmsg); + statusbar->statusmsg_len = len; + tox_set_status_message(m, (uint8_t *) statusmsg, (uint64_t) len); } /* Updates own status in prompt statusbar */ @@ -404,10 +406,9 @@ void prompt_init_statusbar(ToxWindow *self, Tox *m) snprintf(statusmsg, sizeof(statusmsg), "Toxing on Toxic v.%s", toxic_ver); s_len = strlen(statusmsg); statusmsg[s_len] = '\0'; - tox_set_status_message(m, (uint8_t *) statusmsg, (uint64_t) s_len); } - prompt_update_statusmessage(prompt, statusmsg); + prompt_update_statusmessage(prompt, m, statusmsg); prompt_update_status(prompt, status); prompt_update_nick(prompt, nick); diff --git a/src/prompt.h b/src/prompt.h index ad3276c..6b48de7 100644 --- a/src/prompt.h +++ b/src/prompt.h @@ -43,7 +43,7 @@ ToxWindow new_prompt(void); void prep_prompt_win(void); void prompt_init_statusbar(ToxWindow *self, Tox *m); void prompt_update_nick(ToxWindow *prompt, const char *nick); -void prompt_update_statusmessage(ToxWindow *prompt, const char *statusmsg); +void prompt_update_statusmessage(ToxWindow *prompt, Tox *m, const char *statusmsg); void prompt_update_status(ToxWindow *prompt, uint8_t status); void prompt_update_connectionstatus(ToxWindow *prompt, bool is_connected); void kill_prompt_window(ToxWindow *self);