1
0
mirror of https://github.com/Tha14/toxic.git synced 2025-06-27 14:56:46 +02:00

Compare commits

..

2 Commits

Author SHA1 Message Date
66e4c590dc Fix some lazy/incorrect code in cmd_add()
This fixes a rare but possible scenario where a name@domain lookup that's
longer than a tox id won't work. It also fixes custom messages for domain
lookups
2021-12-07 13:27:38 -05:00
8176b43880 Update static build script
Bump curl and toxcore versions
2021-12-06 11:42:53 -05:00
3 changed files with 29 additions and 35 deletions

View File

@ -132,10 +132,10 @@ mkdir -p "$BUILD_DIR"
cd "$BUILD_DIR" cd "$BUILD_DIR"
# The git hash of the c-toxcore version we're using # The git hash of the c-toxcore version we're using
TOXCORE_VERSION="25a56c354937e9c8c4c50a64c3b4cfc099c34e29" TOXCORE_VERSION="af1848ed13d2aa3a7fc218de1d0633e99814efec"
# The sha256sum of the c-toxcore tarball for TOXCORE_VERSION # The sha256sum of the c-toxcore tarball for TOXCORE_VERSION
TOXCORE_HASH="8448752e6286c747130254571fde2db8e2fc073a8116f9fff489ed53af546c0a" TOXCORE_HASH="acd1117b752583eb7d97aabc1053275ffa5f92591e166687a17c7267201a2e18"
TOXCORE_FILENAME="c-toxcore-$TOXCORE_VERSION.tar.gz" TOXCORE_FILENAME="c-toxcore-$TOXCORE_VERSION.tar.gz"
@ -164,8 +164,8 @@ cmake --build _build --target install
# location with SSL_CERT_FILE env variable. # location with SSL_CERT_FILE env variable.
cd "$BUILD_DIR" cd "$BUILD_DIR"
CURL_VERSION="7.77.0" CURL_VERSION="7.80.0"
CURL_HASH="b0a3428acb60fa59044c4d0baae4e4fc09ae9af1d8a3aa84b2e3fbcd99841f77" CURL_HASH="dab997c9b08cb4a636a03f2f7f985eaba33279c1c52692430018fae4a4878dc7"
CURL_FILENAME="curl-$CURL_VERSION.tar.gz" CURL_FILENAME="curl-$CURL_VERSION.tar.gz"
wget --timeout=10 -O "$CURL_FILENAME" "https://curl.haxx.se/download/$CURL_FILENAME" wget --timeout=10 -O "$CURL_FILENAME" "https://curl.haxx.se/download/$CURL_FILENAME"

View File

@ -161,18 +161,12 @@ void cmd_add(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX
const char *id = argv[1]; const char *id = argv[1];
const size_t arg_length = strlen(id); const size_t arg_length = strlen(id);
const bool is_tox_id = arg_length >= (2 * TOX_ADDRESS_SIZE); const int space_idx = char_find(0, id, ' ');
if (is_tox_id) { // we have to manually parse the message due to this command being a special case
// we have to manually parse the message due to this command being a special case if (space_idx > 0 && space_idx < arg_length - 1) {
int idx = char_find(0, id, ' '); snprintf(msg, sizeof(msg), "%s", &id[space_idx + 1]);
} else {
if (idx > 0 && idx < arg_length - 1) {
snprintf(msg, sizeof(msg), "%s", &id[idx + 1]);
}
}
if (!msg[0]) {
char selfname[TOX_MAX_NAME_LENGTH]; char selfname[TOX_MAX_NAME_LENGTH];
tox_self_get_name(m, (uint8_t *) selfname); tox_self_get_name(m, (uint8_t *) selfname);
@ -183,34 +177,34 @@ void cmd_add(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX
char id_bin[TOX_ADDRESS_SIZE] = {0}; char id_bin[TOX_ADDRESS_SIZE] = {0};
/* try to add tox ID */ const bool is_tox_id = (char_find(0, id, '@') == arg_length) && (arg_length >= TOX_ADDRESS_SIZE * 2);
if (is_tox_id) {
size_t i;
char xx[3];
uint32_t x;
for (i = 0; i < TOX_ADDRESS_SIZE; ++i) { if (!is_tox_id) {
xx[0] = id[2 * i]; name_lookup(self, m, id_bin, id, msg);
xx[1] = id[2 * i + 1]; }
xx[2] = 0;
if (sscanf(xx, "%02x", &x) != 1) { char xx[3];
line_info_add(self, false, NULL, NULL, SYS_MSG, 0, 0, "Invalid Tox ID."); uint32_t x = 0;
return;
}
id_bin[i] = x; for (size_t i = 0; i < TOX_ADDRESS_SIZE; ++i) {
} xx[0] = id[2 * i];
xx[1] = id[2 * i + 1];
xx[2] = 0;
if (friend_is_blocked(id_bin)) { if (sscanf(xx, "%02x", &x) != 1) {
line_info_add(self, false, NULL, NULL, SYS_MSG, 0, 0, "Friend is in your block list."); line_info_add(self, false, NULL, NULL, SYS_MSG, 0, 0, "Invalid Tox ID.");
return; return;
} }
cmd_add_helper(self, m, id_bin, msg); id_bin[i] = x;
} else { /* assume id is a username@domain address and do http name server lookup */
name_lookup(self, m, id_bin, id, msg);
} }
if (friend_is_blocked(id_bin)) {
line_info_add(self, false, NULL, NULL, SYS_MSG, 0, 0, "Friend is in your block list.");
return;
}
cmd_add_helper(self, m, id_bin, msg);
} }
void cmd_avatar(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) void cmd_avatar(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE])

BIN
test Normal file

Binary file not shown.