summaryrefslogtreecommitdiff
path: root/toxcore/tox.c
diff options
context:
space:
mode:
authoriphydf <iphydf@users.noreply.github.com>2018-10-08 23:53:04 +0000
committeriphydf <iphydf@users.noreply.github.com>2018-10-19 18:08:46 +0000
commitaa5c7828802b3fcaedfd8d6fe9a08ca714b9aa2b (patch)
treeccdf7bb4d10995d03e4b385589cdbea3d4eb97b6 /toxcore/tox.c
parent1eaa55d2d4f62e73204d8f68ce05fdebb1ab827c (diff)
Add `LOGGER_ASSERT` for checking fatal error conditions.
These are not compiled out under `NDEBUG` and should be provably correct.
Diffstat (limited to 'toxcore/tox.c')
-rw-r--r--toxcore/tox.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/toxcore/tox.c b/toxcore/tox.c
index 5258e9b6..e679a168 100644
--- a/toxcore/tox.c
+++ b/toxcore/tox.c
@@ -530,7 +530,7 @@ void tox_kill(Tox *tox)
530 } 530 }
531 531
532 Messenger *m = tox->m; 532 Messenger *m = tox->m;
533 assert(m->msi_packet == nullptr && "Attempted to kill tox while toxav is still alive"); 533 LOGGER_ASSERT(m->log, m->msi_packet == nullptr, "Attempted to kill tox while toxav is still alive");
534 kill_groupchats(m->conferences_object); 534 kill_groupchats(m->conferences_object);
535 kill_messenger(m); 535 kill_messenger(m);
536 mono_time_free(tox->mono_time); 536 mono_time_free(tox->mono_time);
@@ -793,7 +793,7 @@ Tox_User_Status tox_self_get_status(const Tox *tox)
793 return (Tox_User_Status)status; 793 return (Tox_User_Status)status;
794} 794}
795 795
796static void set_friend_error(int32_t ret, Tox_Err_Friend_Add *error) 796static void set_friend_error(const Logger *log, int32_t ret, Tox_Err_Friend_Add *error)
797{ 797{
798 switch (ret) { 798 switch (ret) {
799 case FAERR_TOOLONG: 799 case FAERR_TOOLONG:
@@ -826,7 +826,7 @@ static void set_friend_error(int32_t ret, Tox_Err_Friend_Add *error)
826 826
827 default: 827 default:
828 /* can't happen */ 828 /* can't happen */
829 assert(!"impossible: unknown friend-add error"); 829 LOGGER_FATAL(log, "impossible: unknown friend-add error");
830 break; 830 break;
831 } 831 }
832} 832}
@@ -847,7 +847,7 @@ uint32_t tox_friend_add(Tox *tox, const uint8_t *address, const uint8_t *message
847 return ret; 847 return ret;
848 } 848 }
849 849
850 set_friend_error(ret, error); 850 set_friend_error(m->log, ret, error);
851 return UINT32_MAX; 851 return UINT32_MAX;
852} 852}
853 853
@@ -866,7 +866,7 @@ uint32_t tox_friend_add_norequest(Tox *tox, const uint8_t *public_key, Tox_Err_F
866 return ret; 866 return ret;
867 } 867 }
868 868
869 set_friend_error(ret, error); 869 set_friend_error(m->log, ret, error);
870 return UINT32_MAX; 870 return UINT32_MAX;
871} 871}
872 872
@@ -1026,7 +1026,7 @@ bool tox_friend_get_status_message(const Tox *tox, uint32_t friend_number, uint8
1026 } 1026 }
1027 1027
1028 const int ret = m_copy_statusmessage(m, friend_number, status_message, size); 1028 const int ret = m_copy_statusmessage(m, friend_number, status_message, size);
1029 assert(ret == size && "concurrency problem: friend status message changed"); 1029 LOGGER_ASSERT(m->log, ret == size, "concurrency problem: friend status message changed");
1030 1030
1031 SET_ERROR_PARAMETER(error, TOX_ERR_FRIEND_QUERY_OK); 1031 SET_ERROR_PARAMETER(error, TOX_ERR_FRIEND_QUERY_OK);
1032 return ret == size; 1032 return ret == size;
@@ -1109,7 +1109,7 @@ bool tox_self_set_typing(Tox *tox, uint32_t friend_number, bool typing, Tox_Err_
1109 return 1; 1109 return 1;
1110} 1110}
1111 1111
1112static void set_message_error(int ret, Tox_Err_Friend_Send_Message *error) 1112static void set_message_error(const Logger *log, int ret, Tox_Err_Friend_Send_Message *error)
1113{ 1113{
1114 switch (ret) { 1114 switch (ret) {
1115 case 0: 1115 case 0:
@@ -1133,9 +1133,12 @@ static void set_message_error(int ret, Tox_Err_Friend_Send_Message *error)
1133 break; 1133 break;
1134 1134
1135 case -5: 1135 case -5:
1136 LOGGER_FATAL(log, "impossible: Messenger and Tox disagree on message types");
1137 break;
1138
1136 default: 1139 default:
1137 /* can't happen */ 1140 /* can't happen */
1138 assert(!"impossible: unknown send-message error"); 1141 LOGGER_FATAL(log, "impossible: unknown send-message error: %d", ret);
1139 break; 1142 break;
1140 } 1143 }
1141} 1144}
@@ -1155,7 +1158,7 @@ uint32_t tox_friend_send_message(Tox *tox, uint32_t friend_number, Tox_Message_T
1155 1158
1156 Messenger *m = tox->m; 1159 Messenger *m = tox->m;
1157 uint32_t message_id = 0; 1160 uint32_t message_id = 0;
1158 set_message_error(m_send_message_generic(m, friend_number, type, message, length, &message_id), error); 1161 set_message_error(m->log, m_send_message_generic(m, friend_number, type, message, length, &message_id), error);
1159 return message_id; 1162 return message_id;
1160} 1163}
1161 1164