diff --git a/external/toxcore/c-toxcore/.circleci/config.yml b/external/toxcore/c-toxcore/.circleci/config.yml index 2b64161..dfb76b5 100644 --- a/external/toxcore/c-toxcore/.circleci/config.yml +++ b/external/toxcore/c-toxcore/.circleci/config.yml @@ -125,15 +125,12 @@ jobs: cimple: working_directory: /tmp/cirrus-ci-build docker: - - image: toxchat/toktok-stack:latest-release + - image: toxchat/toktok-stack:latest steps: - checkout - - run: git submodule update --init --recursive - - run: /src/workspace/tools/inject-repo c-toxcore - - run: cd /src/workspace && - bazel test - -k + - run: + CIRCLE_JOB=release bash <(curl -s https://raw.githubusercontent.com/TokTok/ci-tools/refs/heads/master/tools/circleci-bazel-test) --build_tag_filters=haskell --test_tag_filters=haskell -- diff --git a/external/toxcore/c-toxcore/.github/scripts/cmake-osx b/external/toxcore/c-toxcore/.github/scripts/cmake-osx index 7cf6ede..5a44006 100755 --- a/external/toxcore/c-toxcore/.github/scripts/cmake-osx +++ b/external/toxcore/c-toxcore/.github/scripts/cmake-osx @@ -23,6 +23,7 @@ add_flag -Werror # C99-only compilers we test against anyway. Anything that passes all the # compilers we use is fine. add_c_flag -Wno-c11-extensions +add_c_flag -Wno-pre-c11-compat cmake -B_build -H. \ -DCMAKE_C_FLAGS="$C_FLAGS" \ @@ -39,6 +40,9 @@ cmake -B_build -H. \ cd _build # pushd make "-j$NPROC" -k install -ctest -j50 --output-on-failure --rerun-failed --repeat until-pass:6 || - ctest -j50 --output-on-failure --rerun-failed --repeat until-pass:6 + +# TODO(iphydf): Investigate if we can get lan discovery to work on macos CI. +# It works, but CI doesn't let us press the "allow broadcast" button. +ctest -j50 --output-on-failure --rerun-failed --repeat until-pass:6 -E lan_discovery || + ctest -j50 --output-on-failure --rerun-failed --repeat until-pass:6 -E lan_discovery cd - # popd diff --git a/external/toxcore/c-toxcore/.github/scripts/flags-clang.sh b/external/toxcore/c-toxcore/.github/scripts/flags-clang.sh index 02fbd76..22ea2ee 100644 --- a/external/toxcore/c-toxcore/.github/scripts/flags-clang.sh +++ b/external/toxcore/c-toxcore/.github/scripts/flags-clang.sh @@ -9,6 +9,11 @@ add_flag -Weverything # Disable specific warning flags for both C and C++. +# We're not checking nullability, yet. +# TODO(iphydf): Remove. +add_flag -Wno-nullable-to-nonnull-conversion +add_flag -Wno-nullability-completeness + # Very verbose, not very useful. This warns about things like int -> uint # conversions that change sign without a cast and narrowing conversions. add_flag -Wno-conversion @@ -30,6 +35,8 @@ add_flag -Wno-missing-braces add_flag -Wno-missing-field-initializers # We don't use this attribute. It appears in the non-NDEBUG stderr logger. add_flag -Wno-missing-noreturn +# We want to use this extension. +add_flag -Wno-nullability-extension # Useful sometimes, but we accept padding in structs for clarity. # Reordering fields to avoid padding will reduce readability. add_flag -Wno-padded diff --git a/external/toxcore/c-toxcore/.github/scripts/sonar-prepare b/external/toxcore/c-toxcore/.github/scripts/sonar-prepare index 6d7224c..93869b4 100755 --- a/external/toxcore/c-toxcore/.github/scripts/sonar-prepare +++ b/external/toxcore/c-toxcore/.github/scripts/sonar-prepare @@ -17,6 +17,7 @@ add_ld_flag -Wl,-z,defs add_flag -Werror cmake -B_build -H. -GNinja \ + -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ -DCMAKE_C_FLAGS="$C_FLAGS" \ -DCMAKE_CXX_FLAGS="$CXX_FLAGS" \ -DCMAKE_EXE_LINKER_FLAGS="$LD_FLAGS" \ diff --git a/external/toxcore/c-toxcore/.github/workflows/ci.yml b/external/toxcore/c-toxcore/.github/workflows/ci.yml index 48df322..10b3b9d 100644 --- a/external/toxcore/c-toxcore/.github/workflows/ci.yml +++ b/external/toxcore/c-toxcore/.github/workflows/ci.yml @@ -72,7 +72,7 @@ jobs: build-windows-msvc: strategy: matrix: - version: [2019, 2022] + version: [2022, 2025] runs-on: windows-${{ matrix.version }} env: VCPKG_ROOT: "C:/vcpkg" @@ -116,12 +116,12 @@ jobs: libopus libsodium libvpx - ninja + ninja-build pkg-config run: | # TODO(iphydf): Investigate NetBSD failures on these tests. - sed -Ei -e '/\((TCP|dht_nodes_response_api)\)/s/^/#/' auto_tests/CMakeLists.txt + sed -Ei -e '/\((TCP|dht_nodes_response_api|tcp_relay)\)/s/^/#/' auto_tests/CMakeLists.txt cmake . \ -DMIN_LOGGER_LEVEL=TRACE \ -DMUST_BUILD_TOXAV=ON \ diff --git a/external/toxcore/c-toxcore/.github/workflows/deploy.yml b/external/toxcore/c-toxcore/.github/workflows/deploy.yml index 4ec1f54..f646c45 100644 --- a/external/toxcore/c-toxcore/.github/workflows/deploy.yml +++ b/external/toxcore/c-toxcore/.github/workflows/deploy.yml @@ -345,14 +345,12 @@ jobs: uses: TokTok/ci-tools/.github/workflows/deploy-artifact.yml@master with: project-name: toxcore - artifact-source: tox-*.tar.{gz,xz} - artifact-versioned: $VERSION.tar.{gz,xz} + artifact-source: toxcore.tar.{gz,xz} + artifact-versioned: c-toxcore-$VERSION.tar.{gz,xz} build: tarball run: | sudo apt-get install -y --no-install-recommends libsodium-dev autoreconf -fi - ./configure - make dist - for f in tox-*.tar.gz; do - gunzip -c "$f" | xz -z - >"${f%.gz}.xz" - done + touch toxcore.tar.gz # prevent error of file changes + tar --exclude-vcs --exclude='toxcore.tar.gz' --exclude='third_party/ci-tools' --exclude='*.github' --exclude='autom4te.cache' -zcvf toxcore.tar.gz . + gunzip -c toxcore.tar.gz | xz -z - >"toxcore.tar.xz" diff --git a/external/toxcore/c-toxcore/.github/workflows/sonar-scan.yml b/external/toxcore/c-toxcore/.github/workflows/sonar-scan.yml index e25ac37..c477075 100644 --- a/external/toxcore/c-toxcore/.github/workflows/sonar-scan.yml +++ b/external/toxcore/c-toxcore/.github/workflows/sonar-scan.yml @@ -8,50 +8,34 @@ on: # Cancel old PR builds when pushing new commits. concurrency: - group: scan-${{ github.event.pull_request.number || github.ref }} + group: sonar-scan-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: sonar-scan: runs-on: ubuntu-latest env: - SONAR_SCANNER_VERSION: 5.0.1.3006 - SONAR_SERVER_URL: "https://sonarcloud.io" BUILD_WRAPPER_OUT_DIR: build_wrapper_output_directory # Directory where build-wrapper output will be placed steps: - uses: actions/checkout@v4 with: fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis submodules: recursive - - name: Set up JDK 17 - uses: actions/setup-java@v2 - with: - distribution: "zulu" - java-version: 17 - - name: Download and set up sonar-scanner - env: - SONAR_SCANNER_DOWNLOAD_URL: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${{ env.SONAR_SCANNER_VERSION }}-linux.zip - run: | - mkdir -p $HOME/.sonar - curl -sSLo $HOME/.sonar/sonar-scanner.zip ${{ env.SONAR_SCANNER_DOWNLOAD_URL }} - unzip -o $HOME/.sonar/sonar-scanner.zip -d $HOME/.sonar/ - echo "$HOME/.sonar/sonar-scanner-${{ env.SONAR_SCANNER_VERSION }}-linux/bin" >> $GITHUB_PATH - - name: Download and set up build-wrapper - env: - BUILD_WRAPPER_DOWNLOAD_URL: ${{ env.SONAR_SERVER_URL }}/static/cpp/build-wrapper-linux-x86.zip - run: | - curl -sSLo $HOME/.sonar/build-wrapper-linux-x86.zip ${{ env.BUILD_WRAPPER_DOWNLOAD_URL }} - unzip -o $HOME/.sonar/build-wrapper-linux-x86.zip -d $HOME/.sonar/ - echo "$HOME/.sonar/build-wrapper-linux-x86" >> $GITHUB_PATH + - name: Install Build Wrapper + uses: SonarSource/sonarqube-scan-action/install-build-wrapper@v6 - name: Install dependencies and prepare build run: | .github/scripts/sonar-prepare - - name: Run build-wrapper + - name: Run Build Wrapper run: | build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} .github/scripts/sonar-build - - name: Run sonar-scanner + - name: Ensure compile_commands.json is generated + run: ls -l "${{ env.BUILD_WRAPPER_OUT_DIR }}/compile_commands.json" + - name: SonarQube Scan if: github.event_name == 'push' + uses: SonarSource/sonarqube-scan-action@v6 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - run: 'sonar-scanner --define sonar.host.url="${{ env.SONAR_SERVER_URL }}" --define sonar.cfamily.build-wrapper-output="${{ env.BUILD_WRAPPER_OUT_DIR }}"' + with: + args: > + --define "sonar.cfamily.compile-commands=${{ env.BUILD_WRAPPER_OUT_DIR }}/compile_commands.json" diff --git a/external/toxcore/c-toxcore/auto_tests/TCP_test.c b/external/toxcore/c-toxcore/auto_tests/TCP_test.c index 1a3108b..a7c2c7a 100644 --- a/external/toxcore/c-toxcore/auto_tests/TCP_test.c +++ b/external/toxcore/c-toxcore/auto_tests/TCP_test.c @@ -544,8 +544,8 @@ static void test_client(void) // The connection status should be unconfirmed here because we have finished // sending our data and are awaiting a response. - ck_assert_msg(tcp_con_status(conn) == TCP_CLIENT_UNCONFIRMED, "Wrong connection status. Expected: %d, is: %d.", - TCP_CLIENT_UNCONFIRMED, tcp_con_status(conn)); + ck_assert_msg(tcp_con_status(conn) == TCP_CLIENT_UNCONFIRMED, "Wrong connection status. Expected: %u, is: %u.", + (unsigned int)TCP_CLIENT_UNCONFIRMED, tcp_con_status(conn)); do_tcp_server_delay(tcp_s, mono_time, 50); // Now let the server handle requests... @@ -556,8 +556,8 @@ static void test_client(void) do_tcp_connection(logger, mono_time, conn, nullptr); // Run the connection loop. // The status of the connection should continue to be TCP_CLIENT_CONFIRMED after multiple subsequent do_tcp_connection() calls. - ck_assert_msg(tcp_con_status(conn) == TCP_CLIENT_CONFIRMED, "Wrong connection status. Expected: %d, is: %d", - TCP_CLIENT_CONFIRMED, tcp_con_status(conn)); + ck_assert_msg(tcp_con_status(conn) == TCP_CLIENT_CONFIRMED, "Wrong connection status. Expected: %u, is: %u", + (unsigned int)TCP_CLIENT_CONFIRMED, tcp_con_status(conn)); c_sleep(i == loop_size - 1 ? 0 : 500); // Sleep for 500ms on all except third loop. } @@ -565,7 +565,7 @@ static void test_client(void) do_tcp_server_delay(tcp_s, mono_time, 50); // And still after the server runs again. - ck_assert_msg(tcp_con_status(conn) == TCP_CLIENT_CONFIRMED, "Wrong status. Expected: %d, is: %d", TCP_CLIENT_CONFIRMED, + ck_assert_msg(tcp_con_status(conn) == TCP_CLIENT_CONFIRMED, "Wrong status. Expected: %u, is: %u", (unsigned int)TCP_CLIENT_CONFIRMED, tcp_con_status(conn)); uint8_t f2_public_key[CRYPTO_PUBLIC_KEY_SIZE]; @@ -680,20 +680,20 @@ static void test_client_invalid(void) c_sleep(50); // After 50ms of no response... - ck_assert_msg(tcp_con_status(conn) == TCP_CLIENT_CONNECTING, "Wrong status. Expected: %d, is: %d.", - TCP_CLIENT_CONNECTING, tcp_con_status(conn)); + ck_assert_msg(tcp_con_status(conn) == TCP_CLIENT_CONNECTING, "Wrong status. Expected: %u, is: %u.", + (unsigned int)TCP_CLIENT_CONNECTING, tcp_con_status(conn)); // After 5s... c_sleep(5000); mono_time_update(mono_time); do_tcp_connection(logger, mono_time, conn, nullptr); - ck_assert_msg(tcp_con_status(conn) == TCP_CLIENT_CONNECTING, "Wrong status. Expected: %d, is: %d.", - TCP_CLIENT_CONNECTING, tcp_con_status(conn)); + ck_assert_msg(tcp_con_status(conn) == TCP_CLIENT_CONNECTING, "Wrong status. Expected: %u, is: %u.", + (unsigned int)TCP_CLIENT_CONNECTING, tcp_con_status(conn)); // 11s... (Should wait for 10 before giving up.) c_sleep(6000); mono_time_update(mono_time); do_tcp_connection(logger, mono_time, conn, nullptr); - ck_assert_msg(tcp_con_status(conn) == TCP_CLIENT_DISCONNECTED, "Wrong status. Expected: %d, is: %d.", - TCP_CLIENT_DISCONNECTED, tcp_con_status(conn)); + ck_assert_msg(tcp_con_status(conn) == TCP_CLIENT_DISCONNECTED, "Wrong status. Expected: %u, is: %u.", + (unsigned int)TCP_CLIENT_DISCONNECTED, tcp_con_status(conn)); kill_tcp_connection(conn); diff --git a/external/toxcore/c-toxcore/auto_tests/auto_test_support.c b/external/toxcore/c-toxcore/auto_tests/auto_test_support.c index 483e313..551c480 100644 --- a/external/toxcore/c-toxcore/auto_tests/auto_test_support.c +++ b/external/toxcore/c-toxcore/auto_tests/auto_test_support.c @@ -79,14 +79,14 @@ void bootstrap_tox_live_network(Tox *tox, bool enable_tcp) tox_bootstrap(tox, ip, port, key, &err); if (err != TOX_ERR_BOOTSTRAP_OK) { - fprintf(stderr, "Failed to bootstrap node %zu (%s): error %d\n", j, ip, err); + fprintf(stderr, "Failed to bootstrap node %zu (%s): error %u\n", j, ip, err); } if (enable_tcp) { tox_add_tcp_relay(tox, ip, port, key, &err); if (err != TOX_ERR_BOOTSTRAP_OK) { - fprintf(stderr, "Failed to add TCP relay %zu (%s): error %d\n", j, ip, err); + fprintf(stderr, "Failed to add TCP relay %zu (%s): error %u\n", j, ip, err); } } } @@ -247,7 +247,7 @@ static void initialise_autotox(struct Tox_Options *options, AutoTox *autotox, ui tox_options_set_tcp_port(options, 0); autotest_opts->tcp_port = 0; autotox->tox = tox_new_log(options, &err, &autotox->index); - ck_assert_msg(err == TOX_ERR_NEW_OK, "unexpected tox_new error: %d", err); + ck_assert_msg(err == TOX_ERR_NEW_OK, "unexpected tox_new error: %u", err); } else { // Try a few ports for the TCP relay. for (uint16_t tcp_port = autotest_opts->tcp_port; tcp_port < autotest_opts->tcp_port + 200; ++tcp_port) { @@ -259,7 +259,7 @@ static void initialise_autotox(struct Tox_Options *options, AutoTox *autotox, ui break; } - ck_assert_msg(err == TOX_ERR_NEW_PORT_ALLOC, "unexpected tox_new error (expected PORT_ALLOC): %d", err); + ck_assert_msg(err == TOX_ERR_NEW_PORT_ALLOC, "unexpected tox_new error (expected PORT_ALLOC): %u", err); } } @@ -273,7 +273,7 @@ static void initialise_autotox(struct Tox_Options *options, AutoTox *autotox, ui autotox->tox = tox_new_log(options, &err, &autotox->index); } - ck_assert_msg(autotox->tox != nullptr, "failed to create tox instance #%u (error = %d)", index, err); + ck_assert_msg(autotox->tox != nullptr, "failed to create tox instance #%u (error = %u)", index, err); set_mono_time_callback(autotox); @@ -348,7 +348,7 @@ static void bootstrap_autotoxes(const Tox_Options *options, uint32_t tox_count, for (uint32_t i = 1; i < tox_count; ++i) { Tox_Err_Bootstrap err; tox_bootstrap(autotoxes[i].tox, "localhost", dht_port, dht_key, &err); - ck_assert_msg(err == TOX_ERR_BOOTSTRAP_OK, "bootstrap error for port %d: %d", dht_port, err); + ck_assert_msg(err == TOX_ERR_BOOTSTRAP_OK, "bootstrap error for port %d: %u", dht_port, err); } if (!udp_enabled) { diff --git a/external/toxcore/c-toxcore/auto_tests/bootstrap_test.c b/external/toxcore/c-toxcore/auto_tests/bootstrap_test.c index b9b1965..0c5859b 100644 --- a/external/toxcore/c-toxcore/auto_tests/bootstrap_test.c +++ b/external/toxcore/c-toxcore/auto_tests/bootstrap_test.c @@ -25,8 +25,8 @@ int main(void) const Tox_Connection status = tox_self_get_connection_status(tox_udp); ck_assert_msg(status == TOX_CONNECTION_UDP, - "expected connection status to be UDP, but got %d", status); - printf("Connection (UDP): %d\n", tox_self_get_connection_status(tox_udp)); + "expected connection status to be UDP, but got %u", status); + printf("Connection (UDP): %u\n", tox_self_get_connection_status(tox_udp)); tox_kill(tox_udp); diff --git a/external/toxcore/c-toxcore/auto_tests/conference_av_test.c b/external/toxcore/c-toxcore/auto_tests/conference_av_test.c index 28a2a3a..5cf709e 100644 --- a/external/toxcore/c-toxcore/auto_tests/conference_av_test.c +++ b/external/toxcore/c-toxcore/auto_tests/conference_av_test.c @@ -83,7 +83,7 @@ static void handle_conference_invite( const uint8_t *cookie = tox_event_conference_invite_get_cookie(event); const size_t length = tox_event_conference_invite_get_cookie_length(event); - ck_assert_msg(type == TOX_CONFERENCE_TYPE_AV, "tox #%u: wrong conference type: %d", autotox->index, type); + ck_assert_msg(type == TOX_CONFERENCE_TYPE_AV, "tox #%u: wrong conference type: %u", autotox->index, type); ck_assert_msg(toxav_join_av_groupchat(autotox->tox, friend_number, cookie, length, audio_callback, user_data) == 0, "tox #%u: failed to join group", autotox->index); @@ -101,7 +101,7 @@ static void handle_conference_connected( Tox_Err_Conference_Invite err; tox_conference_invite(autotox->tox, 1, 0, &err); - ck_assert_msg(err == TOX_ERR_CONFERENCE_INVITE_OK, "tox #%u failed to invite next friend: err = %d", autotox->index, + ck_assert_msg(err == TOX_ERR_CONFERENCE_INVITE_OK, "tox #%u failed to invite next friend: err = %u", autotox->index, err); printf("tox #%u: invited next friend\n", autotox->index); state->invited_next = true; diff --git a/external/toxcore/c-toxcore/auto_tests/conference_double_invite_test.c b/external/toxcore/c-toxcore/auto_tests/conference_double_invite_test.c index 4d16c81..722b01c 100644 --- a/external/toxcore/c-toxcore/auto_tests/conference_double_invite_test.c +++ b/external/toxcore/c-toxcore/auto_tests/conference_double_invite_test.c @@ -22,7 +22,7 @@ static void handle_conference_invite( const uint8_t *cookie = tox_event_conference_invite_get_cookie(event); const size_t length = tox_event_conference_invite_get_cookie_length(event); - fprintf(stderr, "handle_conference_invite(#%u, %u, %d, uint8_t[%u], _)\n", + fprintf(stderr, "handle_conference_invite(#%u, %u, %u, uint8_t[%u], _)\n", autotox->index, friend_number, type, (unsigned)length); fprintf(stderr, "tox%u joining conference\n", autotox->index); @@ -32,7 +32,7 @@ static void handle_conference_invite( Tox_Err_Conference_Join err; state->conference = tox_conference_join(autotox->tox, friend_number, cookie, length, &err); ck_assert_msg(err == TOX_ERR_CONFERENCE_JOIN_OK, - "attempting to join the conference returned with an error: %d", err); + "attempting to join the conference returned with an error: %u", err); fprintf(stderr, "tox%u joined conference %u\n", autotox->index, state->conference); state->joined = true; } @@ -54,7 +54,7 @@ static void conference_double_invite_test(AutoTox *autotoxes) state[0]->conference = tox_conference_new(autotoxes[0].tox, &err); state[0]->joined = true; ck_assert_msg(err == TOX_ERR_CONFERENCE_NEW_OK, - "attempting to create a new conference returned with an error: %d", err); + "attempting to create a new conference returned with an error: %u", err); fprintf(stderr, "Created conference: index=%u\n", state[0]->conference); } @@ -63,7 +63,7 @@ static void conference_double_invite_test(AutoTox *autotoxes) Tox_Err_Conference_Invite err; tox_conference_invite(autotoxes[0].tox, 0, state[0]->conference, &err); ck_assert_msg(err == TOX_ERR_CONFERENCE_INVITE_OK, - "attempting to invite a friend returned with an error: %d", err); + "attempting to invite a friend returned with an error: %u", err); fprintf(stderr, "tox0 invited tox1\n"); } diff --git a/external/toxcore/c-toxcore/auto_tests/conference_invite_merge_test.c b/external/toxcore/c-toxcore/auto_tests/conference_invite_merge_test.c index 536f47f..7f5afa2 100644 --- a/external/toxcore/c-toxcore/auto_tests/conference_invite_merge_test.c +++ b/external/toxcore/c-toxcore/auto_tests/conference_invite_merge_test.c @@ -25,7 +25,7 @@ static void handle_conference_invite( Tox_Err_Conference_Join err; state->conference = tox_conference_join(autotox->tox, friend_number, cookie, length, &err); ck_assert_msg(err == TOX_ERR_CONFERENCE_JOIN_OK, - "attempting to join the conference returned with an error: %d", err); + "attempting to join the conference returned with an error: %u", err); fprintf(stderr, "#%u accepted invite to conference %u\n", autotox->index, state->conference); } } @@ -54,7 +54,7 @@ static void do_invite(AutoTox *autotoxes, AutoTox *inviter, AutoTox *invitee, ui Tox_Err_Conference_Invite err; tox_conference_invite(inviter->tox, friendnum, ((State *)inviter->state)->conference, &err); ck_assert_msg(err == TOX_ERR_CONFERENCE_INVITE_OK, - "#%u attempting to invite #%u (friendnumber %u) returned with an error: %d", inviter->index, invitee->index, + "#%u attempting to invite #%u (friendnumber %u) returned with an error: %u", inviter->index, invitee->index, friendnum, err); do { @@ -110,7 +110,7 @@ static void conference_invite_merge_test(AutoTox *autotoxes) state2->conference = tox_conference_new(autotoxes[2].tox, &err); state2->connected = true; ck_assert_msg(err == TOX_ERR_CONFERENCE_NEW_OK, - "attempting to create a new conference returned with an error: %d", err); + "attempting to create a new conference returned with an error: %u", err); fprintf(stderr, "Created conference: index=%u\n", state2->conference); } diff --git a/external/toxcore/c-toxcore/auto_tests/conference_peer_nick_test.c b/external/toxcore/c-toxcore/auto_tests/conference_peer_nick_test.c index 2ebf8d4..112babe 100644 --- a/external/toxcore/c-toxcore/auto_tests/conference_peer_nick_test.c +++ b/external/toxcore/c-toxcore/auto_tests/conference_peer_nick_test.c @@ -23,14 +23,14 @@ static void handle_conference_invite( const uint8_t *cookie = tox_event_conference_invite_get_cookie(event); const size_t length = tox_event_conference_invite_get_cookie_length(event); - fprintf(stderr, "handle_conference_invite(#%u, %u, %d, uint8_t[%u], _)\n", + fprintf(stderr, "handle_conference_invite(#%u, %u, %u, uint8_t[%u], _)\n", autotox->index, friend_number, type, (unsigned)length); fprintf(stderr, "tox%u joining conference\n", autotox->index); Tox_Err_Conference_Join err; state->conference = tox_conference_join(autotox->tox, friend_number, cookie, length, &err); ck_assert_msg(err == TOX_ERR_CONFERENCE_JOIN_OK, - "attempting to join the conference returned with an error: %d", err); + "attempting to join the conference returned with an error: %u", err); fprintf(stderr, "tox%u joined conference %u\n", autotox->index, state->conference); state->joined = true; } @@ -47,7 +47,7 @@ static void handle_peer_list_changed(const Tox_Event_Conference_Peer_List_Change Tox_Err_Conference_Peer_Query err; uint32_t const count = tox_conference_peer_count(autotox->tox, conference_number, &err); ck_assert_msg(err == TOX_ERR_CONFERENCE_PEER_QUERY_OK, - "failed to get conference peer count: err = %d", err); + "failed to get conference peer count: err = %u", err); printf("tox%u has %u peers\n", autotox->index, count); state->friend_in_group = count == 2; } @@ -60,18 +60,18 @@ static void rebuild_peer_list(Tox *tox) Tox_Err_Conference_Peer_Query err; uint32_t const count = tox_conference_peer_count(tox, conference_number, &err); ck_assert_msg(err == TOX_ERR_CONFERENCE_PEER_QUERY_OK, - "failed to get conference peer count for conference %u: err = %d", conference_number, err); + "failed to get conference peer count for conference %u: err = %u", conference_number, err); for (uint32_t peer_number = 0; peer_number < count; peer_number++) { size_t size = tox_conference_peer_get_name_size(tox, conference_number, peer_number, &err); ck_assert_msg(err == TOX_ERR_CONFERENCE_PEER_QUERY_OK, - "failed to get conference peer %u's name size (conference = %u): err = %d", peer_number, conference_number, err); + "failed to get conference peer %u's name size (conference = %u): err = %u", peer_number, conference_number, err); uint8_t *const name = (uint8_t *)malloc(size); ck_assert(name != nullptr); tox_conference_peer_get_name(tox, conference_number, peer_number, name, &err); ck_assert_msg(err == TOX_ERR_CONFERENCE_PEER_QUERY_OK, - "failed to get conference peer %u's name (conference = %u): err = %d", peer_number, conference_number, err); + "failed to get conference peer %u's name (conference = %u): err = %u", peer_number, conference_number, err); free(name); } } @@ -99,7 +99,7 @@ static void conference_peer_nick_test(AutoTox *autotoxes) state[0]->conference = tox_conference_new(autotoxes[0].tox, &err); state[0]->joined = true; ck_assert_msg(err == TOX_ERR_CONFERENCE_NEW_OK, - "attempting to create a new conference returned with an error: %d", err); + "attempting to create a new conference returned with an error: %u", err); fprintf(stderr, "Created conference: index=%u\n", state[0]->conference); } @@ -108,7 +108,7 @@ static void conference_peer_nick_test(AutoTox *autotoxes) Tox_Err_Conference_Invite err; tox_conference_invite(autotoxes[0].tox, 0, state[0]->conference, &err); ck_assert_msg(err == TOX_ERR_CONFERENCE_INVITE_OK, - "attempting to invite a friend returned with an error: %d", err); + "attempting to invite a friend returned with an error: %u", err); fprintf(stderr, "tox0 invited tox1\n"); } diff --git a/external/toxcore/c-toxcore/auto_tests/conference_simple_test.c b/external/toxcore/c-toxcore/auto_tests/conference_simple_test.c index 8cdac7d..0346908 100644 --- a/external/toxcore/c-toxcore/auto_tests/conference_simple_test.c +++ b/external/toxcore/c-toxcore/auto_tests/conference_simple_test.c @@ -28,7 +28,7 @@ static void handle_self_connection_status(const Tox_Event_Self_Connection_Status State *state = (State *)user_data; const Tox_Connection connection_status = tox_event_self_connection_status_get_connection_status(event); - fprintf(stderr, "self_connection_status(#%u, %d, _)\n", state->id, connection_status); + fprintf(stderr, "self_connection_status(#%u, %u, _)\n", state->id, connection_status); state->self_online = connection_status != TOX_CONNECTION_NONE; } @@ -39,7 +39,7 @@ static void handle_friend_connection_status(const Tox_Event_Friend_Connection_St const uint32_t friend_number = tox_event_friend_connection_status_get_friend_number(event); const Tox_Connection connection_status = tox_event_friend_connection_status_get_connection_status(event); - fprintf(stderr, "handle_friend_connection_status(#%u, %u, %d, _)\n", state->id, friend_number, connection_status); + fprintf(stderr, "handle_friend_connection_status(#%u, %u, %u, _)\n", state->id, friend_number, connection_status); state->friend_online = connection_status != TOX_CONNECTION_NONE; } @@ -51,14 +51,14 @@ static void handle_conference_invite(const Tox_Event_Conference_Invite *event, v const Tox_Conference_Type type = tox_event_conference_invite_get_type(event); const uint8_t *cookie = tox_event_conference_invite_get_cookie(event); const size_t length = tox_event_conference_invite_get_cookie_length(event); - fprintf(stderr, "handle_conference_invite(#%u, %u, %d, uint8_t[%u], _)\n", + fprintf(stderr, "handle_conference_invite(#%u, %u, %u, uint8_t[%u], _)\n", state->id, friend_number, type, (unsigned)length); fprintf(stderr, "tox%u joining conference\n", state->id); { Tox_Err_Conference_Join err; state->conference = tox_conference_join(state->tox, friend_number, cookie, length, &err); - ck_assert_msg(err == TOX_ERR_CONFERENCE_JOIN_OK, "failed to join a conference: err = %d", err); + ck_assert_msg(err == TOX_ERR_CONFERENCE_JOIN_OK, "failed to join a conference: err = %u", err); fprintf(stderr, "tox%u Joined conference %u\n", state->id, state->conference); state->joined = true; } @@ -74,7 +74,7 @@ static void handle_conference_message(const Tox_Event_Conference_Message *event, const uint8_t *message = tox_event_conference_message_get_message(event); const size_t length = tox_event_conference_message_get_message_length(event); - fprintf(stderr, "handle_conference_message(#%u, %u, %u, %d, uint8_t[%u], _)\n", + fprintf(stderr, "handle_conference_message(#%u, %u, %u, %u, uint8_t[%u], _)\n", state->id, conference_number, peer_number, type, (unsigned)length); fprintf(stderr, "tox%u got message: %s\n", state->id, (const char *)message); @@ -93,7 +93,7 @@ static void handle_conference_peer_list_changed(const Tox_Event_Conference_Peer_ uint32_t count = tox_conference_peer_count(state->tox, conference_number, &err); if (err != TOX_ERR_CONFERENCE_PEER_QUERY_OK) { - fprintf(stderr, "ERROR: %d\n", err); + fprintf(stderr, "ERROR: %u\n", err); exit(EXIT_FAILURE); } @@ -109,7 +109,7 @@ static void handle_conference_connected(const Tox_Event_Conference_Connected *ev if (state->id == 2 && !state->invited_next) { Tox_Err_Conference_Invite err; tox_conference_invite(state->tox, 1, state->conference, &err); - ck_assert_msg(err == TOX_ERR_CONFERENCE_INVITE_OK, "tox2 failed to invite tox3: err = %d", err); + ck_assert_msg(err == TOX_ERR_CONFERENCE_INVITE_OK, "tox2 failed to invite tox3: err = %u", err); state->invited_next = true; fprintf(stderr, "tox2 invited tox3\n"); @@ -209,7 +209,7 @@ int main(void) Tox_Err_Conference_New err; state1.conference = tox_conference_new(state1.tox, &err); state1.joined = true; - ck_assert_msg(err == TOX_ERR_CONFERENCE_NEW_OK, "failed to create a conference: err = %d", err); + ck_assert_msg(err == TOX_ERR_CONFERENCE_NEW_OK, "failed to create a conference: err = %u", err); fprintf(stderr, "Created conference: id = %u\n", state1.conference); } @@ -217,7 +217,7 @@ int main(void) // Invite friend. Tox_Err_Conference_Invite err; tox_conference_invite(state1.tox, 0, state1.conference, &err); - ck_assert_msg(err == TOX_ERR_CONFERENCE_INVITE_OK, "failed to invite a friend: err = %d", err); + ck_assert_msg(err == TOX_ERR_CONFERENCE_INVITE_OK, "failed to invite a friend: err = %u", err); state1.invited_next = true; fprintf(stderr, "tox1 invited tox2\n"); } @@ -245,7 +245,7 @@ int main(void) (const uint8_t *)"hello!", 7, &err); if (err != TOX_ERR_CONFERENCE_SEND_MESSAGE_OK) { - fprintf(stderr, "ERROR: %d\n", err); + fprintf(stderr, "ERROR: %u\n", err); exit(EXIT_FAILURE); } } diff --git a/external/toxcore/c-toxcore/auto_tests/conference_test.c b/external/toxcore/c-toxcore/auto_tests/conference_test.c index af1cd28..efce44d 100644 --- a/external/toxcore/c-toxcore/auto_tests/conference_test.c +++ b/external/toxcore/c-toxcore/auto_tests/conference_test.c @@ -53,12 +53,12 @@ static void handle_conference_invite( const uint8_t *data, size_t length, void *user_data) { const AutoTox *autotox = (AutoTox *)user_data; - ck_assert_msg(type == TOX_CONFERENCE_TYPE_TEXT, "tox #%u: wrong conference type: %d", autotox->index, type); + ck_assert_msg(type == TOX_CONFERENCE_TYPE_TEXT, "tox #%u: wrong conference type: %u", autotox->index, type); Tox_Err_Conference_Join err; uint32_t g_num = tox_conference_join(autotox->tox, friendnumber, data, length, &err); - ck_assert_msg(err == TOX_ERR_CONFERENCE_JOIN_OK, "tox #%u: error joining group: %d", autotox->index, err); + ck_assert_msg(err == TOX_ERR_CONFERENCE_JOIN_OK, "tox #%u: error joining group: %u", autotox->index, err); ck_assert_msg(g_num == 0, "tox #%u: group number was not 0", autotox->index); // Try joining again. We should only be allowed to join once. @@ -79,7 +79,7 @@ static void handle_conference_connected( Tox_Err_Conference_Invite err; tox_conference_invite(autotox->tox, 1, 0, &err); - ck_assert_msg(err == TOX_ERR_CONFERENCE_INVITE_OK, "tox #%u failed to invite next friend: err = %d", autotox->index, + ck_assert_msg(err == TOX_ERR_CONFERENCE_INVITE_OK, "tox #%u failed to invite next friend: err = %u", autotox->index, err); printf("tox #%u: invited next friend\n", autotox->index); state->invited_next = true; @@ -206,7 +206,7 @@ static void run_conference_tests(AutoTox *autotoxes) Tox_Err_Conference_Set_Max_Offline err; tox_conference_set_max_offline(autotoxes[i].tox, 0, max_frozen, &err); ck_assert_msg(err == TOX_ERR_CONFERENCE_SET_MAX_OFFLINE_OK, - "tox #%u failed to set max offline: err = %d", autotoxes[i].index, err); + "tox #%u failed to set max offline: err = %u", autotoxes[i].index, err); } printf("letting random toxes timeout\n"); diff --git a/external/toxcore/c-toxcore/auto_tests/conference_two_test.c b/external/toxcore/c-toxcore/auto_tests/conference_two_test.c index 3a8b102..aea5a93 100644 --- a/external/toxcore/c-toxcore/auto_tests/conference_two_test.c +++ b/external/toxcore/c-toxcore/auto_tests/conference_two_test.c @@ -17,9 +17,9 @@ int main(void) // Create two conferences and then exit. Tox_Err_Conference_New err; tox_conference_new(tox1, &err); - ck_assert_msg(err == TOX_ERR_CONFERENCE_NEW_OK, "failed to create conference 1: %d", err); + ck_assert_msg(err == TOX_ERR_CONFERENCE_NEW_OK, "failed to create conference 1: %u", err); tox_conference_new(tox1, &err); - ck_assert_msg(err == TOX_ERR_CONFERENCE_NEW_OK, "failed to create conference 2: %d", err); + ck_assert_msg(err == TOX_ERR_CONFERENCE_NEW_OK, "failed to create conference 2: %u", err); tox_kill(tox1); diff --git a/external/toxcore/c-toxcore/auto_tests/encryptsave_test.c b/external/toxcore/c-toxcore/auto_tests/encryptsave_test.c index 3573337..5a2f529 100644 --- a/external/toxcore/c-toxcore/auto_tests/encryptsave_test.c +++ b/external/toxcore/c-toxcore/auto_tests/encryptsave_test.c @@ -48,7 +48,7 @@ static void test_save_friend(void) ck_assert(enc_data != nullptr); Tox_Err_Encryption error1; bool ret = tox_pass_encrypt(data, size, (const uint8_t *)"correcthorsebatterystaple", 25, enc_data, &error1); - ck_assert_msg(ret, "failed to encrypted save: %d", error1); + ck_assert_msg(ret, "failed to encrypted save: %u", error1); ck_assert_msg(tox_is_data_encrypted(enc_data), "magic number missing"); struct Tox_Options *options = tox_options_new(nullptr); @@ -58,17 +58,17 @@ static void test_save_friend(void) Tox_Err_New err2; Tox *tox3 = tox_new_log(options, &err2, nullptr); - ck_assert_msg(err2 == TOX_ERR_NEW_LOAD_ENCRYPTED, "wrong error! %d. should fail with %d", err2, - TOX_ERR_NEW_LOAD_ENCRYPTED); + ck_assert_msg(err2 == TOX_ERR_NEW_LOAD_ENCRYPTED, "wrong error! %u. should fail with %d", err2, + (int)TOX_ERR_NEW_LOAD_ENCRYPTED); ck_assert_msg(tox3 == nullptr, "tox_new with error should return NULL"); uint8_t *dec_data = (uint8_t *)malloc(size); ck_assert(dec_data != nullptr); Tox_Err_Decryption err3; ret = tox_pass_decrypt(enc_data, size2, (const uint8_t *)"correcthorsebatterystaple", 25, dec_data, &err3); - ck_assert_msg(ret, "failed to decrypt save: %d", err3); + ck_assert_msg(ret, "failed to decrypt save: %u", err3); tox_options_set_savedata_data(options, dec_data, size); tox3 = tox_new_log(options, &err2, nullptr); - ck_assert_msg(err2 == TOX_ERR_NEW_OK, "failed to load from decrypted data: %d", err2); + ck_assert_msg(err2 == TOX_ERR_NEW_OK, "failed to load from decrypted data: %u", err2); uint8_t address2[TOX_PUBLIC_KEY_SIZE]; ret = tox_friend_get_public_key(tox3, 0, address2, nullptr); ck_assert_msg(ret, "no friends!"); @@ -87,7 +87,7 @@ static void test_save_friend(void) uint8_t *encdata2 = (uint8_t *)malloc(size2); ck_assert(encdata2 != nullptr); ret = tox_pass_key_encrypt(key, data2, size, encdata2, &error1); - ck_assert_msg(ret, "failed to key encrypt %d", error1); + ck_assert_msg(ret, "failed to key encrypt %u", error1); ck_assert_msg(tox_is_data_encrypted(encdata2), "magic number the second missing"); uint8_t *out1 = (uint8_t *)malloc(size); @@ -95,9 +95,9 @@ static void test_save_friend(void) uint8_t *out2 = (uint8_t *)malloc(size); ck_assert(out2 != nullptr); ret = tox_pass_decrypt(encdata2, size2, (const uint8_t *)pw, pwlen, out1, &err3); - ck_assert_msg(ret, "failed to pw decrypt %d", err3); + ck_assert_msg(ret, "failed to pw decrypt %u", err3); ret = tox_pass_key_decrypt(key, encdata2, size2, out2, &err3); - ck_assert_msg(ret, "failed to key decrypt %d", err3); + ck_assert_msg(ret, "failed to key decrypt %u", err3); ck_assert_msg(memcmp(out1, out2, size) == 0, "differing output data"); // and now with the code in use (I only bothered with manually to debug this, and it seems a waste @@ -134,12 +134,12 @@ static void test_keys(void) Tox_Err_Key_Derivation keyerr; const uint8_t *key_char = (const uint8_t *)"123qweasdzxc"; Tox_Pass_Key *key = tox_pass_key_derive(key_char, 12, &keyerr); - ck_assert_msg(key != nullptr, "generic failure 1: %d", keyerr); + ck_assert_msg(key != nullptr, "generic failure 1: %u", keyerr); const uint8_t *string = (const uint8_t *)"No Patrick, mayonnaise is not an instrument."; // 44 uint8_t encrypted[44 + TOX_PASS_ENCRYPTION_EXTRA_LENGTH]; bool ret = tox_pass_key_encrypt(key, string, 44, encrypted, &encerr); - ck_assert_msg(ret, "generic failure 2: %d", encerr); + ck_assert_msg(ret, "generic failure 2: %u", encerr); // Testing how tox handles encryption of large messages. int size_large = 30 * 1024 * 1024; @@ -153,13 +153,13 @@ static void test_keys(void) ck_assert(rng != nullptr); random_bytes(rng, in_plaintext2a, plaintext_length2a); ret = tox_pass_encrypt(in_plaintext2a, plaintext_length2a, key_char, 12, encrypted2a, &encerr); - ck_assert_msg(ret, "tox_pass_encrypt failure 2a: %d", encerr); + ck_assert_msg(ret, "tox_pass_encrypt failure 2a: %u", encerr); // Decryption of same message. uint8_t *out_plaintext2a = (uint8_t *)malloc(plaintext_length2a); ck_assert(out_plaintext2a != nullptr); ret = tox_pass_decrypt(encrypted2a, ciphertext_length2a, key_char, 12, out_plaintext2a, &decerr); - ck_assert_msg(ret, "tox_pass_decrypt failure 2a: %d", decerr); + ck_assert_msg(ret, "tox_pass_decrypt failure 2a: %u", decerr); ck_assert_msg(memcmp(in_plaintext2a, out_plaintext2a, plaintext_length2a) == 0, "Large message decryption failed"); free(encrypted2a); free(in_plaintext2a); @@ -167,28 +167,28 @@ static void test_keys(void) uint8_t encrypted2[44 + TOX_PASS_ENCRYPTION_EXTRA_LENGTH]; ret = tox_pass_encrypt(string, 44, key_char, 12, encrypted2, &encerr); - ck_assert_msg(ret, "generic failure 3: %d", encerr); + ck_assert_msg(ret, "generic failure 3: %u", encerr); uint8_t out1[44 + TOX_PASS_ENCRYPTION_EXTRA_LENGTH]; uint8_t out2[44 + TOX_PASS_ENCRYPTION_EXTRA_LENGTH]; ret = tox_pass_key_decrypt(key, encrypted, 44 + TOX_PASS_ENCRYPTION_EXTRA_LENGTH, out1, &decerr); - ck_assert_msg(ret, "generic failure 4: %d", decerr); + ck_assert_msg(ret, "generic failure 4: %u", decerr); ck_assert_msg(memcmp(out1, string, 44) == 0, "decryption 1 failed"); ret = tox_pass_decrypt(encrypted2, 44 + TOX_PASS_ENCRYPTION_EXTRA_LENGTH, (const uint8_t *)"123qweasdzxc", 12, out2, &decerr); - ck_assert_msg(ret, "generic failure 5: %d", decerr); + ck_assert_msg(ret, "generic failure 5: %u", decerr); ck_assert_msg(memcmp(out2, string, 44) == 0, "decryption 2 failed"); ret = tox_pass_decrypt(encrypted2, 44 + TOX_PASS_ENCRYPTION_EXTRA_LENGTH, nullptr, 0, out2, &decerr); ck_assert_msg(!ret, "Decrypt succeeded with wrong pass"); - ck_assert_msg(decerr != TOX_ERR_DECRYPTION_FAILED, "Bad error code %d", decerr); + ck_assert_msg(decerr != TOX_ERR_DECRYPTION_FAILED, "Bad error code %u", decerr); // test that pass_decrypt can decrypt things from pass_key_encrypt ret = tox_pass_decrypt(encrypted, 44 + TOX_PASS_ENCRYPTION_EXTRA_LENGTH, (const uint8_t *)"123qweasdzxc", 12, out1, &decerr); - ck_assert_msg(ret, "generic failure 6: %d", decerr); + ck_assert_msg(ret, "generic failure 6: %u", decerr); ck_assert_msg(memcmp(out1, string, 44) == 0, "decryption 3 failed"); uint8_t salt[TOX_PASS_SALT_LENGTH]; @@ -196,7 +196,7 @@ static void test_keys(void) ck_assert_msg(tox_get_salt(encrypted, salt, &salt_err), "couldn't get salt"); ck_assert_msg(salt_err == TOX_ERR_GET_SALT_OK, "get_salt returned an error"); Tox_Pass_Key *key2 = tox_pass_key_derive_with_salt((const uint8_t *)"123qweasdzxc", 12, salt, &keyerr); - ck_assert_msg(key2 != nullptr, "generic failure 7: %d", keyerr); + ck_assert_msg(key2 != nullptr, "generic failure 7: %u", keyerr); ck_assert_msg(0 == memcmp(key, key2, TOX_PASS_KEY_LENGTH + TOX_PASS_SALT_LENGTH), "salt comparison failed"); tox_pass_key_free(key2); tox_pass_key_free(key); diff --git a/external/toxcore/c-toxcore/auto_tests/file_saving_test.c b/external/toxcore/c-toxcore/auto_tests/file_saving_test.c index e90aeff..9b04b4a 100644 --- a/external/toxcore/c-toxcore/auto_tests/file_saving_test.c +++ b/external/toxcore/c-toxcore/auto_tests/file_saving_test.c @@ -54,7 +54,7 @@ static void save_data_encrypted(void) ck_assert_msg(tox_pass_encrypt(clear, size - TOX_PASS_ENCRYPTION_EXTRA_LENGTH, (const uint8_t *)pphrase, strlen(pphrase), cipher, - &eerr), "Could not encrypt, error code %d.", eerr); + &eerr), "Could not encrypt, error code %u.", eerr); size_t written_value = fwrite(cipher, sizeof(*cipher), size, f); printf("written written_value = %u of %u\n", (unsigned)written_value, (unsigned)size); diff --git a/external/toxcore/c-toxcore/auto_tests/file_streaming_test.c b/external/toxcore/c-toxcore/auto_tests/file_streaming_test.c index fa4f210..77aa6b5 100644 --- a/external/toxcore/c-toxcore/auto_tests/file_streaming_test.c +++ b/external/toxcore/c-toxcore/auto_tests/file_streaming_test.c @@ -75,7 +75,7 @@ static void tox_file_receive(Tox *tox, uint32_t friend_number, uint32_t file_num Tox_Err_File_Control error; ck_assert_msg(tox_file_control(tox, friend_number, file_number, TOX_FILE_CONTROL_RESUME, &error), - "tox_file_control failed. %i", error); + "tox_file_control failed. %u", error); ++file_accepted; Tox_Err_File_Seek err_s; @@ -189,7 +189,7 @@ static void file_transfer_test(void) tox_iterate(tox2, nullptr); tox_iterate(tox3, nullptr); - printf("Connections: self (%d, %d, %d), friends (%d, %d)\n", + printf("Connections: self (%u, %u, %u), friends (%u, %u)\n", tox_self_get_connection_status(tox1), tox_self_get_connection_status(tox2), tox_self_get_connection_status(tox3), @@ -252,7 +252,7 @@ static void file_transfer_test(void) ck_assert_msg(sendf_ok && file_recv && m_send_reached && totalf_size == file_size && size_recv == max_sending && sending_pos == size_recv && file_accepted == 1, - "something went wrong in file transfer %u %u %u %u %u %u %u %lu %lu %lu %lu", sendf_ok, file_recv, + "something went wrong in file transfer %u %u %d %d %d %d %d %lu %lu %lu %lu", sendf_ok, file_recv, m_send_reached, totalf_size == file_size, size_recv == max_sending, sending_pos == size_recv, file_accepted == 1, (unsigned long)totalf_size, (unsigned long)file_size, (unsigned long)size_recv, (unsigned long)sending_pos); diff --git a/external/toxcore/c-toxcore/auto_tests/file_transfer_test.c b/external/toxcore/c-toxcore/auto_tests/file_transfer_test.c index a443b02..e1fa1d9 100644 --- a/external/toxcore/c-toxcore/auto_tests/file_transfer_test.c +++ b/external/toxcore/c-toxcore/auto_tests/file_transfer_test.c @@ -89,7 +89,7 @@ static void tox_file_receive(const Tox_Event_File_Recv *event, void *userdata) Tox_Err_File_Control error; ck_assert_msg(tox_file_control(state_tox, friend_number, file_number, TOX_FILE_CONTROL_RESUME, &error), - "tox_file_control failed. %i", error); + "tox_file_control failed. %u", error); ++file_accepted; Tox_Err_File_Seek err_s; @@ -238,7 +238,7 @@ static void file_transfer_test(void) iterate_and_dispatch(dispatch2, tox2); iterate_and_dispatch(dispatch3, tox3); - printf("Connections: self (%d, %d, %d), friends (%d, %d)\n", + printf("Connections: self (%u, %u, %u), friends (%u, %u)\n", tox_self_get_connection_status(tox1), tox_self_get_connection_status(tox2), tox_self_get_connection_status(tox3), @@ -285,7 +285,7 @@ static void file_transfer_test(void) if (file_sending_done) { ck_assert_msg(sendf_ok && file_recv && totalf_size == file_size && size_recv == file_size && sending_pos == size_recv && file_accepted == 1, - "Something went wrong in file transfer %u %u %u %u %u %u %lu %lu %lu", + "Something went wrong in file transfer %u %u %d %d %d %d %lu %lu %lu", sendf_ok, file_recv, totalf_size == file_size, size_recv == file_size, sending_pos == size_recv, file_accepted == 1, (unsigned long)totalf_size, (unsigned long)size_recv, (unsigned long)sending_pos); @@ -304,7 +304,7 @@ static void file_transfer_test(void) } ck_assert_msg(file_sending_done, "file sending did not complete after %u iterations: sendf_ok:%u file_recv:%u " - "totalf_size==file_size:%u size_recv==file_size:%u sending_pos==size_recv:%u file_accepted:%u " + "totalf_size==file_size:%d size_recv==file_size:%d sending_pos==size_recv:%d file_accepted:%d " "totalf_size:%lu size_recv:%lu sending_pos:%lu", (unsigned int)max_iterations, sendf_ok, file_recv, totalf_size == file_size, size_recv == file_size, sending_pos == size_recv, file_accepted == 1, @@ -352,7 +352,7 @@ static void file_transfer_test(void) ck_assert_msg(sendf_ok && file_recv && totalf_size == file_size && size_recv == file_size && sending_pos == size_recv && file_accepted == 1, - "something went wrong in file transfer %u %u %u %u %u %u %llu %llu %llu", sendf_ok, file_recv, + "something went wrong in file transfer %u %u %d %d %d %d %llu %llu %llu", sendf_ok, file_recv, totalf_size == file_size, size_recv == file_size, sending_pos == size_recv, file_accepted == 1, (unsigned long long)totalf_size, (unsigned long long)size_recv, (unsigned long long)sending_pos); diff --git a/external/toxcore/c-toxcore/auto_tests/friend_request_spam_test.c b/external/toxcore/c-toxcore/auto_tests/friend_request_spam_test.c index 59520d8..9e2eabf 100644 --- a/external/toxcore/c-toxcore/auto_tests/friend_request_spam_test.c +++ b/external/toxcore/c-toxcore/auto_tests/friend_request_spam_test.c @@ -49,7 +49,7 @@ static void test_friend_request(AutoTox *autotoxes) for (uint32_t i = 2; i < FR_TOX_COUNT; ++i) { Tox_Err_Friend_Add err; tox_friend_add(autotoxes[i].tox, address, (const uint8_t *)FR_MESSAGE, sizeof(FR_MESSAGE), &err); - ck_assert_msg(err == TOX_ERR_FRIEND_ADD_OK, "tox %u failed to add friend error code: %d", autotoxes[i].index, err); + ck_assert_msg(err == TOX_ERR_FRIEND_ADD_OK, "tox %u failed to add friend error code: %u", autotoxes[i].index, err); } for (uint32_t t = 0; t < 100; ++t) { diff --git a/external/toxcore/c-toxcore/auto_tests/friend_request_test.c b/external/toxcore/c-toxcore/auto_tests/friend_request_test.c index 18bc5d6..9380210 100644 --- a/external/toxcore/c-toxcore/auto_tests/friend_request_test.c +++ b/external/toxcore/c-toxcore/auto_tests/friend_request_test.c @@ -39,7 +39,7 @@ static void accept_friend_request(const Tox_Event_Friend_Request *event, void *u Tox_Err_Friend_Add err; tox_friend_add_norequest(cb_data->tox2, public_key, &err); - ck_assert_msg(err == TOX_ERR_FRIEND_ADD_OK, "tox_friend_add_norequest failed: %d", err); + ck_assert_msg(err == TOX_ERR_FRIEND_ADD_OK, "tox_friend_add_norequest failed: %u", err); } static void iterate2_wait(const Tox_Dispatch *dispatch, Callback_Data *cb_data) @@ -108,7 +108,7 @@ static void test_friend_request(const uint8_t *message, uint16_t length) Tox_Err_Friend_Add err; const uint32_t test = tox_friend_add(tox1, address, message, length, &err); - ck_assert_msg(err == TOX_ERR_FRIEND_ADD_OK, "tox_friend_add failed: %d", err); + ck_assert_msg(err == TOX_ERR_FRIEND_ADD_OK, "tox_friend_add failed: %u", err); ck_assert_msg(test == 0, "failed to add friend error code: %u", test); do { diff --git a/external/toxcore/c-toxcore/auto_tests/group_general_test.c b/external/toxcore/c-toxcore/auto_tests/group_general_test.c index 9e953e5..aff8e0d 100644 --- a/external/toxcore/c-toxcore/auto_tests/group_general_test.c +++ b/external/toxcore/c-toxcore/auto_tests/group_general_test.c @@ -48,13 +48,13 @@ static void print_ip(const Tox *tox, uint32_t groupnumber, uint32_t peer_id) Tox_Err_Group_Peer_Query err; size_t length = tox_group_peer_get_ip_address_size(tox, groupnumber, peer_id, &err); - ck_assert_msg(err == TOX_ERR_GROUP_PEER_QUERY_OK, "failed to get ip address size: error %d", err); + ck_assert_msg(err == TOX_ERR_GROUP_PEER_QUERY_OK, "failed to get ip address size: error %u", err); uint8_t ip_str[TOX_GROUP_PEER_IP_STRING_MAX_LENGTH]; tox_group_peer_get_ip_address(tox, groupnumber, peer_id, ip_str, &err); ip_str[length] = '\0'; - ck_assert_msg(err == TOX_ERR_GROUP_PEER_QUERY_OK, "failed to get ip address: error %d", err); + ck_assert_msg(err == TOX_ERR_GROUP_PEER_QUERY_OK, "failed to get ip address: error %u", err); fprintf(stderr, "%s\n", ip_str); } @@ -98,10 +98,10 @@ static void group_peer_join_handler(const Tox_Event_Group_Peer_Join *event, void ck_assert(connection_status != TOX_CONNECTION_NONE); Tox_Group_Role role = tox_group_peer_get_role(autotox->tox, groupnumber, peer_id, &pq_err); - ck_assert_msg(pq_err == TOX_ERR_GROUP_PEER_QUERY_OK, "%d", pq_err); + ck_assert_msg(pq_err == TOX_ERR_GROUP_PEER_QUERY_OK, "%u", pq_err); Tox_User_Status status = tox_group_peer_get_status(autotox->tox, groupnumber, peer_id, &pq_err); - ck_assert_msg(pq_err == TOX_ERR_GROUP_PEER_QUERY_OK, "%d", pq_err); + ck_assert_msg(pq_err == TOX_ERR_GROUP_PEER_QUERY_OK, "%u", pq_err); size_t peer_name_len = tox_group_peer_get_name_size(autotox->tox, groupnumber, peer_id, &pq_err); char peer_name[TOX_MAX_NAME_LENGTH + 1]; @@ -116,26 +116,26 @@ static void group_peer_join_handler(const Tox_Event_Group_Peer_Join *event, void // make sure we see the correct peer state on join if (!state->is_founder) { - ck_assert_msg(role == TOX_GROUP_ROLE_FOUNDER, "wrong role: %d", role); + ck_assert_msg(role == TOX_GROUP_ROLE_FOUNDER, "wrong role: %u", role); if (state->peer_joined_count == 0) { - ck_assert_msg(status == TOX_USER_STATUS_NONE, "wrong status: %d", status); + ck_assert_msg(status == TOX_USER_STATUS_NONE, "wrong status: %u", status); ck_assert_msg(peer_name_len == PEER0_NICK_LEN, "wrong nick: %s", peer_name); ck_assert(memcmp(peer_name, PEER0_NICK, peer_name_len) == 0); } else { - ck_assert_msg(status == TOX_USER_STATUS_BUSY, "wrong status: %d", status); + ck_assert_msg(status == TOX_USER_STATUS_BUSY, "wrong status: %u", status); ck_assert(peer_name_len == PEER0_NICK2_LEN); ck_assert(memcmp(peer_name, PEER0_NICK2, peer_name_len) == 0); } } else { - ck_assert_msg(role == TOX_GROUP_ROLE_USER, "wrong role: %d", role); + ck_assert_msg(role == TOX_GROUP_ROLE_USER, "wrong role: %u", role); ck_assert(peer_name_len == PEER1_NICK_LEN); ck_assert(memcmp(peer_name, PEER1_NICK, peer_name_len) == 0); if (state->peer_joined_count == 0) { - ck_assert_msg(status == TOX_USER_STATUS_NONE, "wrong status: %d", status); + ck_assert_msg(status == TOX_USER_STATUS_NONE, "wrong status: %u", status); } else { - ck_assert_msg(status == TOX_USER_STATUS_AWAY, "wrong status: %d", status); + ck_assert_msg(status == TOX_USER_STATUS_AWAY, "wrong status: %u", status); } } @@ -196,11 +196,11 @@ static void group_peer_self_join_handler(const Tox_Event_Group_Self_Join *event, Tox_Err_Group_State_Query query_err; tox_group_get_name(autotox->tox, groupnumber, group_name, &query_err); - ck_assert_msg(query_err == TOX_ERR_GROUP_STATE_QUERY_OK, "%d", query_err); + ck_assert_msg(query_err == TOX_ERR_GROUP_STATE_QUERY_OK, "%u", query_err); ck_assert(memcmp(group_name, GROUP_NAME, GROUP_NAME_LEN) == 0); tox_group_get_topic(autotox->tox, groupnumber, topic, &query_err); - ck_assert_msg(query_err == TOX_ERR_GROUP_STATE_QUERY_OK, "%d", query_err); + ck_assert_msg(query_err == TOX_ERR_GROUP_STATE_QUERY_OK, "%u", query_err); ck_assert(memcmp(topic, TOPIC, TOPIC_LEN) == 0); uint32_t peer_id = tox_group_self_get_peer_id(autotox->tox, groupnumber, nullptr); @@ -263,7 +263,7 @@ static void group_peer_status_handler(const Tox_Event_Group_Peer_Status *event, Tox_Err_Group_Peer_Query err; Tox_User_Status cur_status = tox_group_peer_get_status(autotox->tox, groupnumber, peer_id, &err); - ck_assert_msg(cur_status == status, "%d, %d", cur_status, status); + ck_assert_msg(cur_status == status, "%u, %u", cur_status, status); ck_assert(status == TOX_USER_STATUS_BUSY); state->peer_status = true; @@ -300,7 +300,7 @@ static void group_announce_test(AutoTox *autotoxes) // changes the state (for sync check purposes) Tox_Err_Group_Set_Peer_Limit limit_set_err; tox_group_set_peer_limit(tox0, groupnumber, PEER_LIMIT, &limit_set_err); - ck_assert_msg(limit_set_err == TOX_ERR_GROUP_SET_PEER_LIMIT_OK, "failed to set peer limit: %d", limit_set_err); + ck_assert_msg(limit_set_err == TOX_ERR_GROUP_SET_PEER_LIMIT_OK, "failed to set peer limit: %u", limit_set_err); Tox_Err_Group_Topic_Set tp_err; tox_group_set_topic(tox0, groupnumber, (const uint8_t *)TOPIC, TOPIC_LEN, &tp_err); @@ -359,7 +359,7 @@ static void group_announce_test(AutoTox *autotoxes) ck_assert(sq_err == TOX_ERR_GROUP_SELF_QUERY_OK); ck_assert(self_status == TOX_USER_STATUS_BUSY); - fprintf(stderr, "Peer 0 successfully changed status to %d\n", self_status); + fprintf(stderr, "Peer 0 successfully changed status to %u\n", self_status); while (!state1->peer_nick && !state1->peer_status) { iterate_all_wait(autotoxes, NUM_GROUP_TOXES, ITERATION_INTERVAL); diff --git a/external/toxcore/c-toxcore/auto_tests/group_invite_test.c b/external/toxcore/c-toxcore/auto_tests/group_invite_test.c index a37b744..4abdaae 100644 --- a/external/toxcore/c-toxcore/auto_tests/group_invite_test.c +++ b/external/toxcore/c-toxcore/auto_tests/group_invite_test.c @@ -130,7 +130,7 @@ static void group_invite_test(AutoTox *autotoxes) Tox_Err_Group_New new_err; uint32_t groupnumber = tox_group_new(tox0, TOX_GROUP_PRIVACY_STATE_PUBLIC, (const uint8_t *)"test", 4, (const uint8_t *)"test", 4, &new_err); - ck_assert_msg(new_err == TOX_ERR_GROUP_NEW_OK, "tox_group_new failed: %d", new_err); + ck_assert_msg(new_err == TOX_ERR_GROUP_NEW_OK, "tox_group_new failed: %u", new_err); iterate_all_wait(autotoxes, NUM_GROUP_TOXES, ITERATION_INTERVAL); @@ -138,12 +138,12 @@ static void group_invite_test(AutoTox *autotoxes) uint8_t chat_id[TOX_GROUP_CHAT_ID_SIZE]; tox_group_get_chat_id(tox0, groupnumber, chat_id, &id_err); - ck_assert_msg(id_err == TOX_ERR_GROUP_STATE_QUERY_OK, "%d", id_err); + ck_assert_msg(id_err == TOX_ERR_GROUP_STATE_QUERY_OK, "%u", id_err); // peer 1 joins public group with no password Tox_Err_Group_Join join_err; tox_group_join(tox1, chat_id, (const uint8_t *)"Test", 4, nullptr, 0, &join_err); - ck_assert_msg(join_err == TOX_ERR_GROUP_JOIN_OK, "%d", join_err); + ck_assert_msg(join_err == TOX_ERR_GROUP_JOIN_OK, "%u", join_err); while (state0->num_peers < 1) { iterate_all_wait(autotoxes, NUM_GROUP_TOXES, ITERATION_INTERVAL); @@ -154,13 +154,13 @@ static void group_invite_test(AutoTox *autotoxes) // founder sets a password Tox_Err_Group_Set_Password pass_set_err; tox_group_set_password(tox0, groupnumber, (const uint8_t *)PASSWORD, PASS_LEN, &pass_set_err); - ck_assert_msg(pass_set_err == TOX_ERR_GROUP_SET_PASSWORD_OK, "%d", pass_set_err); + ck_assert_msg(pass_set_err == TOX_ERR_GROUP_SET_PASSWORD_OK, "%u", pass_set_err); iterate_all_wait(autotoxes, NUM_GROUP_TOXES, 5000); // peer 2 attempts to join with no password tox_group_join(tox2, chat_id, (const uint8_t *)"Test", 4, nullptr, 0, &join_err); - ck_assert_msg(join_err == TOX_ERR_GROUP_JOIN_OK, "%d", join_err); + ck_assert_msg(join_err == TOX_ERR_GROUP_JOIN_OK, "%u", join_err); while (!state2->password_fail) { iterate_all_wait(autotoxes, NUM_GROUP_TOXES, ITERATION_INTERVAL); @@ -170,7 +170,7 @@ static void group_invite_test(AutoTox *autotoxes) // peer 3 attempts to join with invalid password tox_group_join(tox3, chat_id, (const uint8_t *)"Test", 4, (const uint8_t *)WRONG_PASS, WRONG_PASS_LEN, &join_err); - ck_assert_msg(join_err == TOX_ERR_GROUP_JOIN_OK, "%d", join_err); + ck_assert_msg(join_err == TOX_ERR_GROUP_JOIN_OK, "%u", join_err); while (!state3->password_fail) { iterate_all_wait(autotoxes, NUM_GROUP_TOXES, ITERATION_INTERVAL); @@ -181,13 +181,13 @@ static void group_invite_test(AutoTox *autotoxes) // founder sets peer limit to 1 Tox_Err_Group_Set_Peer_Limit limit_set_err; tox_group_set_peer_limit(tox0, groupnumber, 1, &limit_set_err); - ck_assert_msg(limit_set_err == TOX_ERR_GROUP_SET_PEER_LIMIT_OK, "%d", limit_set_err); + ck_assert_msg(limit_set_err == TOX_ERR_GROUP_SET_PEER_LIMIT_OK, "%u", limit_set_err); iterate_all_wait(autotoxes, NUM_GROUP_TOXES, 5000); // peer 4 attempts to join with correct password tox_group_join(tox4, chat_id, (const uint8_t *)"Test", 4, (const uint8_t *)PASSWORD, PASS_LEN, &join_err); - ck_assert_msg(join_err == TOX_ERR_GROUP_JOIN_OK, "%d", join_err); + ck_assert_msg(join_err == TOX_ERR_GROUP_JOIN_OK, "%u", join_err); while (!state4->peer_limit_fail) { iterate_all_wait(autotoxes, NUM_GROUP_TOXES, ITERATION_INTERVAL); @@ -197,16 +197,16 @@ static void group_invite_test(AutoTox *autotoxes) // founder removes password and increases peer limit to 100 tox_group_set_password(tox0, groupnumber, nullptr, 0, &pass_set_err); - ck_assert_msg(pass_set_err == TOX_ERR_GROUP_SET_PASSWORD_OK, "%d", pass_set_err); + ck_assert_msg(pass_set_err == TOX_ERR_GROUP_SET_PASSWORD_OK, "%u", pass_set_err); tox_group_set_peer_limit(tox0, groupnumber, 100, &limit_set_err); - ck_assert_msg(limit_set_err == TOX_ERR_GROUP_SET_PEER_LIMIT_OK, "%d", limit_set_err); + ck_assert_msg(limit_set_err == TOX_ERR_GROUP_SET_PEER_LIMIT_OK, "%u", limit_set_err); iterate_all_wait(autotoxes, NUM_GROUP_TOXES, 5000); // peer 5 attempts to join group tox_group_join(tox5, chat_id, (const uint8_t *)"Test", 4, nullptr, 0, &join_err); - ck_assert_msg(join_err == TOX_ERR_GROUP_JOIN_OK, "%d", join_err); + ck_assert_msg(join_err == TOX_ERR_GROUP_JOIN_OK, "%u", join_err); while (!state5->connected) { iterate_all_wait(autotoxes, NUM_GROUP_TOXES, ITERATION_INTERVAL); @@ -217,13 +217,13 @@ static void group_invite_test(AutoTox *autotoxes) // founder makes group private Tox_Err_Group_Set_Privacy_State priv_err; tox_group_set_privacy_state(tox0, groupnumber, TOX_GROUP_PRIVACY_STATE_PRIVATE, &priv_err); - ck_assert_msg(priv_err == TOX_ERR_GROUP_SET_PRIVACY_STATE_OK, "%d", priv_err); + ck_assert_msg(priv_err == TOX_ERR_GROUP_SET_PRIVACY_STATE_OK, "%u", priv_err); iterate_all_wait(autotoxes, NUM_GROUP_TOXES, 5000); // peer 6 attempts to join group via chat ID tox_group_join(tox6, chat_id, (const uint8_t *)"Test", 4, nullptr, 0, &join_err); - ck_assert_msg(join_err == TOX_ERR_GROUP_JOIN_OK, "%d", join_err); + ck_assert_msg(join_err == TOX_ERR_GROUP_JOIN_OK, "%u", join_err); // since we don't receive a fail packet in this case we just wait a while and check if we're in the group iterate_all_wait(autotoxes, NUM_GROUP_TOXES, 20000); @@ -234,7 +234,7 @@ static void group_invite_test(AutoTox *autotoxes) // founder makes group public again tox_group_set_privacy_state(tox0, groupnumber, TOX_GROUP_PRIVACY_STATE_PUBLIC, &priv_err); - ck_assert_msg(priv_err == TOX_ERR_GROUP_SET_PRIVACY_STATE_OK, "%d", priv_err); + ck_assert_msg(priv_err == TOX_ERR_GROUP_SET_PRIVACY_STATE_OK, "%u", priv_err); iterate_all_wait(autotoxes, NUM_GROUP_TOXES, ITERATION_INTERVAL); @@ -243,7 +243,7 @@ static void group_invite_test(AutoTox *autotoxes) for (size_t i = 7; i < NUM_GROUP_TOXES; ++i) { tox_group_join(autotoxes[i].tox, chat_id, (const uint8_t *)"Test", 4, nullptr, 0, &join_err); - ck_assert_msg(join_err == TOX_ERR_GROUP_JOIN_OK, "%d", join_err); + ck_assert_msg(join_err == TOX_ERR_GROUP_JOIN_OK, "%u", join_err); } const uint32_t expected_peer_count = num_new_peers + state0->num_peers + 1; diff --git a/external/toxcore/c-toxcore/auto_tests/group_message_test.c b/external/toxcore/c-toxcore/auto_tests/group_message_test.c index 380a994..09ed34f 100644 --- a/external/toxcore/c-toxcore/auto_tests/group_message_test.c +++ b/external/toxcore/c-toxcore/auto_tests/group_message_test.c @@ -90,7 +90,7 @@ static void group_invite_handler(const Tox_Event_Group_Invite *event, void *user static void group_join_fail_handler(const Tox_Event_Group_Join_Fail *event, void *user_data) { const Tox_Group_Join_Fail fail_type = tox_event_group_join_fail_get_fail_type(event); - printf("join failed: %d\n", fail_type); + printf("join failed: %u\n", fail_type); } static void group_peer_join_handler(const Tox_Event_Group_Peer_Join *event, void *user_data) @@ -448,7 +448,7 @@ static void group_message_test(AutoTox *autotoxes) // tox0 ignores tox1 Tox_Err_Group_Set_Ignore ig_err; tox_group_set_ignore(tox0, group_number, state0->peer_id, true, &ig_err); - ck_assert_msg(ig_err == TOX_ERR_GROUP_SET_IGNORE_OK, "%d", ig_err); + ck_assert_msg(ig_err == TOX_ERR_GROUP_SET_IGNORE_OK, "%u", ig_err); iterate_all_wait(autotoxes, NUM_GROUP_TOXES, ITERATION_INTERVAL); @@ -460,7 +460,7 @@ static void group_message_test(AutoTox *autotoxes) // tox0 unignores tox1 tox_group_set_ignore(tox0, group_number, state0->peer_id, false, &ig_err); - ck_assert_msg(ig_err == TOX_ERR_GROUP_SET_IGNORE_OK, "%d", ig_err); + ck_assert_msg(ig_err == TOX_ERR_GROUP_SET_IGNORE_OK, "%u", ig_err); fprintf(stderr, "Sending private action...\n"); @@ -470,7 +470,7 @@ static void group_message_test(AutoTox *autotoxes) TOX_MESSAGE_TYPE_ACTION, (const uint8_t *)TEST_PRIVATE_MESSAGE, TEST_PRIVATE_MESSAGE_LEN, &m_err); - ck_assert_msg(m_err == TOX_ERR_GROUP_SEND_PRIVATE_MESSAGE_OK, "%d", m_err); + ck_assert_msg(m_err == TOX_ERR_GROUP_SEND_PRIVATE_MESSAGE_OK, "%u", m_err); while (!state0->private_message_received) { iterate_all_wait(autotoxes, NUM_GROUP_TOXES, ITERATION_INTERVAL); @@ -485,11 +485,11 @@ static void group_message_test(AutoTox *autotoxes) Tox_Err_Group_Send_Custom_Packet c_err; tox_group_send_custom_packet(tox1, group_number, true, (const uint8_t *)TEST_CUSTOM_PACKET, TEST_CUSTOM_PACKET_LEN, &c_err); - ck_assert_msg(c_err == TOX_ERR_GROUP_SEND_CUSTOM_PACKET_OK, "%d", c_err); + ck_assert_msg(c_err == TOX_ERR_GROUP_SEND_CUSTOM_PACKET_OK, "%u", c_err); tox_group_send_custom_packet(tox1, group_number, false, (const uint8_t *)TEST_CUSTOM_PACKET, TEST_CUSTOM_PACKET_LEN, &c_err); - ck_assert_msg(c_err == TOX_ERR_GROUP_SEND_CUSTOM_PACKET_OK, "%d", c_err); + ck_assert_msg(c_err == TOX_ERR_GROUP_SEND_CUSTOM_PACKET_OK, "%u", c_err); fprintf(stderr, "Sending custom private packets...\n"); @@ -499,13 +499,13 @@ static void group_message_test(AutoTox *autotoxes) (const uint8_t *)TEST_CUSTOM_PRIVATE_PACKET, TEST_CUSTOM_PRIVATE_PACKET_LEN, &cperr); - ck_assert_msg(cperr == TOX_ERR_GROUP_SEND_CUSTOM_PRIVATE_PACKET_OK, "%d", cperr); + ck_assert_msg(cperr == TOX_ERR_GROUP_SEND_CUSTOM_PRIVATE_PACKET_OK, "%u", cperr); tox_group_send_custom_private_packet(tox1, group_number, state1->peer_id, false, (const uint8_t *)TEST_CUSTOM_PRIVATE_PACKET, TEST_CUSTOM_PRIVATE_PACKET_LEN, &cperr); - ck_assert_msg(cperr == TOX_ERR_GROUP_SEND_CUSTOM_PRIVATE_PACKET_OK, "%d", cperr); + ck_assert_msg(cperr == TOX_ERR_GROUP_SEND_CUSTOM_PRIVATE_PACKET_OK, "%u", cperr); while (state0->custom_packets_received < 2 || state0->custom_private_packets_received < 2) { iterate_all_wait(autotoxes, NUM_GROUP_TOXES, ITERATION_INTERVAL); @@ -518,7 +518,7 @@ static void group_message_test(AutoTox *autotoxes) tox_group_send_custom_packet(tox1, group_number, false, (const uint8_t *)TEST_CUSTOM_PACKET_LARGE, TEST_CUSTOM_PACKET_LARGE_LEN, &c_err); - ck_assert_msg(c_err == TOX_ERR_GROUP_SEND_CUSTOM_PACKET_OK, "%d", c_err); + ck_assert_msg(c_err == TOX_ERR_GROUP_SEND_CUSTOM_PACKET_OK, "%u", c_err); while (state0->custom_packets_received < 3) { iterate_all_wait(autotoxes, NUM_GROUP_TOXES, ITERATION_INTERVAL); diff --git a/external/toxcore/c-toxcore/auto_tests/group_moderation_test.c b/external/toxcore/c-toxcore/auto_tests/group_moderation_test.c index 58dac41..855e5f7 100644 --- a/external/toxcore/c-toxcore/auto_tests/group_moderation_test.c +++ b/external/toxcore/c-toxcore/auto_tests/group_moderation_test.c @@ -158,7 +158,7 @@ static size_t get_state_index_by_nick(const AutoTox *autotoxes, size_t num_peers static void group_join_fail_handler(const Tox_Event_Group_Join_Fail *event, void *user_data) { const Tox_Group_Join_Fail fail_type = tox_event_group_join_fail_get_fail_type(event); - fprintf(stderr, "Failed to join group: %d", fail_type); + fprintf(stderr, "Failed to join group: %u", fail_type); } static void group_peer_join_handler(const Tox_Event_Group_Peer_Join *event, void *user_data) @@ -268,7 +268,7 @@ static void group_mod_event_handler(const Tox_Event_Group_Moderation *event, voi return; } - ck_assert_msg(q_err == TOX_ERR_GROUP_PEER_QUERY_OK, "error %d", q_err); + ck_assert_msg(q_err == TOX_ERR_GROUP_PEER_QUERY_OK, "error %u", q_err); ck_assert(peer_name_len <= TOX_MAX_NAME_LENGTH); tox_group_peer_get_name(autotox->tox, group_number, target_peer_id, (uint8_t *) peer_name, &q_err); @@ -279,7 +279,7 @@ static void group_mod_event_handler(const Tox_Event_Group_Moderation *event, voi ck_assert(q_err == TOX_ERR_GROUP_PEER_QUERY_OK); ck_assert(role <= TOX_GROUP_ROLE_OBSERVER); - fprintf(stderr, "tox%u: got moderator event %d (%s), role = %s\n", + fprintf(stderr, "tox%u: got moderator event %u (%s), role = %s\n", autotox->index, mod_type, tox_group_mod_event_to_string(mod_type), tox_group_role_to_string(role)); @@ -306,7 +306,7 @@ static void group_mod_event_handler(const Tox_Event_Group_Moderation *event, voi } default: { - ck_assert_msg(0, "Got invalid moderator event %d", mod_type); + ck_assert_msg(0, "Got invalid moderator event %u", mod_type); return; } } @@ -354,7 +354,7 @@ static void voice_state_message_test(AutoTox *autotox, Tox_Group_Voice_State voi case TOX_GROUP_ROLE_USER: { if (voice_state != TOX_GROUP_VOICE_STATE_ALL) { ck_assert_msg(msg_err == TOX_ERR_GROUP_SEND_MESSAGE_PERMISSIONS, - "%d", msg_err); + "%u", msg_err); } else { ck_assert(msg_err == TOX_ERR_GROUP_SEND_MESSAGE_OK); } @@ -469,14 +469,14 @@ static void group_moderation_test(AutoTox *autotoxes) GROUP_NAME_LEN, (const uint8_t *)state0->self_name, state0->self_name_length, &err_new); - ck_assert_msg(err_new == TOX_ERR_GROUP_NEW_OK, "Failed to create group. error: %d\n", err_new); + ck_assert_msg(err_new == TOX_ERR_GROUP_NEW_OK, "Failed to create group. error: %u\n", err_new); /* Founder gets chat ID */ Tox_Err_Group_State_Query id_err; uint8_t chat_id[TOX_GROUP_CHAT_ID_SIZE]; tox_group_get_chat_id(tox0, state0->group_number, chat_id, &id_err); - ck_assert_msg(id_err == TOX_ERR_GROUP_STATE_QUERY_OK, "Failed to get chat ID. error: %d", id_err); + ck_assert_msg(id_err == TOX_ERR_GROUP_STATE_QUERY_OK, "Failed to get chat ID. error: %u", id_err); fprintf(stderr, "Peers attemping to join DHT group via the chat ID\n"); @@ -488,7 +488,7 @@ static void group_moderation_test(AutoTox *autotoxes) state->group_number = tox_group_join(autotoxes[i].tox, chat_id, (const uint8_t *)state->self_name, state->self_name_length, nullptr, 0, &join_err); - ck_assert_msg(join_err == TOX_ERR_GROUP_JOIN_OK, "Peer %s (%zu) failed to join group. error %d", + ck_assert_msg(join_err == TOX_ERR_GROUP_JOIN_OK, "Peer %s (%zu) failed to join group. error %u", state->self_name, i, join_err); c_sleep(100); @@ -527,7 +527,7 @@ static void group_moderation_test(AutoTox *autotoxes) Tox_Err_Group_Set_Role role_err; tox_group_set_role(tox0, state0->group_number, state0->peers[0].peer_id, TOX_GROUP_ROLE_MODERATOR, &role_err); - ck_assert_msg(role_err == TOX_ERR_GROUP_SET_ROLE_OK, "Failed to set moderator. error: %d", role_err); + ck_assert_msg(role_err == TOX_ERR_GROUP_SET_ROLE_OK, "Failed to set moderator. error: %u", role_err); // manually flag the role setter because they don't get a callback state0->mod_check = true; @@ -542,7 +542,7 @@ static void group_moderation_test(AutoTox *autotoxes) fprintf(stderr, "Founder setting %s to observer\n", state0->peers[1].name); tox_group_set_role(tox0, state0->group_number, state0->peers[1].peer_id, TOX_GROUP_ROLE_OBSERVER, &role_err); - ck_assert_msg(role_err == TOX_ERR_GROUP_SET_ROLE_OK, "Failed to set observer. error: %d", role_err); + ck_assert_msg(role_err == TOX_ERR_GROUP_SET_ROLE_OK, "Failed to set observer. error: %u", role_err); state0->observer_check = true; ++state0->observer_event_count; @@ -553,7 +553,7 @@ static void group_moderation_test(AutoTox *autotoxes) fprintf(stderr, "Founder setting %s to observer\n", state0->peers[2].name); tox_group_set_role(tox0, state0->group_number, state0->peers[2].peer_id, TOX_GROUP_ROLE_OBSERVER, &role_err); - ck_assert_msg(role_err == TOX_ERR_GROUP_SET_ROLE_OK, "Failed to set observer. error: %d", role_err); + ck_assert_msg(role_err == TOX_ERR_GROUP_SET_ROLE_OK, "Failed to set observer. error: %u", role_err); state0->observer_check = true; ++state0->observer_event_count; @@ -579,7 +579,7 @@ static void group_moderation_test(AutoTox *autotoxes) fprintf(stderr, "%s is promoting %s back to user\n", state1->self_name, state0->peers[1].name); tox_group_set_role(tox1, state1->group_number, obs_peer_id, TOX_GROUP_ROLE_USER, &role_err); - ck_assert_msg(role_err == TOX_ERR_GROUP_SET_ROLE_OK, "Failed to promote observer back to user. error: %d", + ck_assert_msg(role_err == TOX_ERR_GROUP_SET_ROLE_OK, "Failed to promote observer back to user. error: %u", role_err); state1->user_check = true; @@ -592,7 +592,7 @@ static void group_moderation_test(AutoTox *autotoxes) fprintf(stderr, "Founder setting %s to moderator\n", state0->peers[2].name); tox_group_set_role(tox0, state0->group_number, state0->peers[2].peer_id, TOX_GROUP_ROLE_MODERATOR, &role_err); - ck_assert_msg(role_err == TOX_ERR_GROUP_SET_ROLE_OK, "Failed to set moderator. error: %d", role_err); + ck_assert_msg(role_err == TOX_ERR_GROUP_SET_ROLE_OK, "Failed to set moderator. error: %u", role_err); state0->mod_check = true; ++state0->mod_event_count; @@ -624,7 +624,7 @@ static void group_moderation_test(AutoTox *autotoxes) fprintf(stderr, "Founder is kicking %s\n", state0->peers[0].name); tox_group_kick_peer(tox0, state0->group_number, state0->peers[0].peer_id, &k_err); - ck_assert_msg(k_err == TOX_ERR_GROUP_KICK_PEER_OK, "Failed to kick peer. error: %d", k_err); + ck_assert_msg(k_err == TOX_ERR_GROUP_KICK_PEER_OK, "Failed to kick peer. error: %u", k_err); state0->kick_check = true; check_mod_event(autotoxes, NUM_GROUP_TOXES, TOX_GROUP_MOD_EVENT_KICK); @@ -633,7 +633,7 @@ static void group_moderation_test(AutoTox *autotoxes) fprintf(stderr, "Founder is demoting moderator to user\n"); tox_group_set_role(tox0, state0->group_number, state0->peers[2].peer_id, TOX_GROUP_ROLE_USER, &role_err); - ck_assert_msg(role_err == TOX_ERR_GROUP_SET_ROLE_OK, "Failed to demote peer 3 to User. error: %d", role_err); + ck_assert_msg(role_err == TOX_ERR_GROUP_SET_ROLE_OK, "Failed to demote peer 3 to User. error: %u", role_err); state0->user_check = true; ++state0->user_event_count; diff --git a/external/toxcore/c-toxcore/auto_tests/group_state_test.c b/external/toxcore/c-toxcore/auto_tests/group_state_test.c index bcbe7cd..8cbbdd3 100644 --- a/external/toxcore/c-toxcore/auto_tests/group_state_test.c +++ b/external/toxcore/c-toxcore/auto_tests/group_state_test.c @@ -73,7 +73,7 @@ static void group_topic_lock_handler(const Tox_Event_Group_Topic_Lock *event, Tox_Group_Topic_Lock current_topic_lock = tox_group_get_topic_lock(autotox->tox, groupnumber, &err); ck_assert(err == TOX_ERR_GROUP_STATE_QUERY_OK); - ck_assert_msg(current_topic_lock == topic_lock, "topic locks don't match in callback: %d %d", + ck_assert_msg(current_topic_lock == topic_lock, "topic locks don't match in callback: %u %u", topic_lock, current_topic_lock); } @@ -90,7 +90,7 @@ static void group_voice_state_handler(const Tox_Event_Group_Voice_State *event, Tox_Group_Voice_State current_voice_state = tox_group_get_voice_state(autotox->tox, groupnumber, &err); ck_assert(err == TOX_ERR_GROUP_STATE_QUERY_OK); - ck_assert_msg(current_voice_state == voice_state, "voice states don't match in callback: %d %d", + ck_assert_msg(current_voice_state == voice_state, "voice states don't match in callback: %u %u", voice_state, current_voice_state); } @@ -171,21 +171,21 @@ static int check_group_state(const Tox *tox, uint32_t groupnumber, uint32_t peer Tox_Err_Group_State_Query query_err; Tox_Group_Privacy_State my_priv_state = tox_group_get_privacy_state(tox, groupnumber, &query_err); - ck_assert_msg(query_err == TOX_ERR_GROUP_STATE_QUERY_OK, "Failed to get privacy state: %d", query_err); + ck_assert_msg(query_err == TOX_ERR_GROUP_STATE_QUERY_OK, "Failed to get privacy state: %u", query_err); if (my_priv_state != priv_state) { return -1; } uint32_t my_peer_limit = tox_group_get_peer_limit(tox, groupnumber, &query_err); - ck_assert_msg(query_err == TOX_ERR_GROUP_STATE_QUERY_OK, "Failed to get peer limit: %d", query_err); + ck_assert_msg(query_err == TOX_ERR_GROUP_STATE_QUERY_OK, "Failed to get peer limit: %u", query_err); if (my_peer_limit != peer_limit) { return -2; } size_t my_pass_len = tox_group_get_password_size(tox, groupnumber, &query_err); - ck_assert_msg(query_err == TOX_ERR_GROUP_STATE_QUERY_OK, "Failed to get password size: %d", query_err); + ck_assert_msg(query_err == TOX_ERR_GROUP_STATE_QUERY_OK, "Failed to get password size: %u", query_err); if (my_pass_len != pass_len) { return -5; @@ -197,7 +197,7 @@ static int check_group_state(const Tox *tox, uint32_t groupnumber, uint32_t peer uint8_t my_pass[TOX_GROUP_MAX_PASSWORD_SIZE + 1]; tox_group_get_password(tox, groupnumber, my_pass, &query_err); my_pass[my_pass_len] = 0; - ck_assert_msg(query_err == TOX_ERR_GROUP_STATE_QUERY_OK, "Failed to get password: %d", query_err); + ck_assert_msg(query_err == TOX_ERR_GROUP_STATE_QUERY_OK, "Failed to get password: %u", query_err); if (memcmp(my_pass, password, my_pass_len) != 0) { return -6; @@ -206,7 +206,7 @@ static int check_group_state(const Tox *tox, uint32_t groupnumber, uint32_t peer /* Group name should never change */ size_t my_gname_len = tox_group_get_name_size(tox, groupnumber, &query_err); - ck_assert_msg(query_err == TOX_ERR_GROUP_STATE_QUERY_OK, "Failed to get group name size: %d", query_err); + ck_assert_msg(query_err == TOX_ERR_GROUP_STATE_QUERY_OK, "Failed to get group name size: %u", query_err); if (my_gname_len != GROUP_NAME_LEN) { return -7; @@ -223,14 +223,14 @@ static int check_group_state(const Tox *tox, uint32_t groupnumber, uint32_t peer } Tox_Group_Topic_Lock current_topic_lock = tox_group_get_topic_lock(tox, groupnumber, &query_err); - ck_assert_msg(query_err == TOX_ERR_GROUP_STATE_QUERY_OK, "Failed to get topic lock: %d", query_err); + ck_assert_msg(query_err == TOX_ERR_GROUP_STATE_QUERY_OK, "Failed to get topic lock: %u", query_err); if (current_topic_lock != topic_lock) { return -9; } Tox_Group_Voice_State current_voice_state = tox_group_get_voice_state(tox, groupnumber, &query_err); - ck_assert_msg(query_err == TOX_ERR_GROUP_STATE_QUERY_OK, "Failed to get voice state: %d", query_err); + ck_assert_msg(query_err == TOX_ERR_GROUP_STATE_QUERY_OK, "Failed to get voice state: %u", query_err); if (current_voice_state != voice_state) { return -10; @@ -246,24 +246,24 @@ static void set_group_state(Tox *tox, uint32_t groupnumber, uint32_t peer_limit, Tox_Err_Group_Set_Peer_Limit limit_set_err; tox_group_set_peer_limit(tox, groupnumber, peer_limit, &limit_set_err); - ck_assert_msg(limit_set_err == TOX_ERR_GROUP_SET_PEER_LIMIT_OK, "failed to set peer limit: %d", limit_set_err); + ck_assert_msg(limit_set_err == TOX_ERR_GROUP_SET_PEER_LIMIT_OK, "failed to set peer limit: %u", limit_set_err); Tox_Err_Group_Set_Privacy_State priv_err; tox_group_set_privacy_state(tox, groupnumber, priv_state, &priv_err); - ck_assert_msg(priv_err == TOX_ERR_GROUP_SET_PRIVACY_STATE_OK, "failed to set privacy state: %d", priv_err); + ck_assert_msg(priv_err == TOX_ERR_GROUP_SET_PRIVACY_STATE_OK, "failed to set privacy state: %u", priv_err); Tox_Err_Group_Set_Password pass_set_err; tox_group_set_password(tox, groupnumber, password, pass_len, &pass_set_err); - ck_assert_msg(pass_set_err == TOX_ERR_GROUP_SET_PASSWORD_OK, "failed to set password: %d", pass_set_err); + ck_assert_msg(pass_set_err == TOX_ERR_GROUP_SET_PASSWORD_OK, "failed to set password: %u", pass_set_err); Tox_Err_Group_Set_Topic_Lock lock_set_err; tox_group_set_topic_lock(tox, groupnumber, topic_lock, &lock_set_err); - ck_assert_msg(lock_set_err == TOX_ERR_GROUP_SET_TOPIC_LOCK_OK, "failed to set topic lock: %d", + ck_assert_msg(lock_set_err == TOX_ERR_GROUP_SET_TOPIC_LOCK_OK, "failed to set topic lock: %u", lock_set_err); Tox_Err_Group_Set_Voice_State voice_set_err; tox_group_set_voice_state(tox, groupnumber, voice_state, &voice_set_err); - ck_assert_msg(voice_set_err == TOX_ERR_GROUP_SET_VOICE_STATE_OK, "failed to set voice state: %d", + ck_assert_msg(voice_set_err == TOX_ERR_GROUP_SET_VOICE_STATE_OK, "failed to set voice state: %u", voice_set_err); } @@ -287,7 +287,7 @@ static void group_state_test(AutoTox *autotoxes) uint32_t groupnum = tox_group_new(tox0, TOX_GROUP_PRIVACY_STATE_PUBLIC, (const uint8_t *)GROUP_NAME, GROUP_NAME_LEN, (const uint8_t *)PEER0_NICK, PEER0_NICK_LEN, &new_err); - ck_assert_msg(new_err == TOX_ERR_GROUP_NEW_OK, "tox_group_new failed: %d", new_err); + ck_assert_msg(new_err == TOX_ERR_GROUP_NEW_OK, "tox_group_new failed: %u", new_err); /* Founder sets default group state before anyone else joins */ set_group_state(tox0, groupnum, PEER_LIMIT_1, TOX_GROUP_PRIVACY_STATE_PUBLIC, TOX_GROUP_VOICE_STATE_ALL, @@ -298,7 +298,7 @@ static void group_state_test(AutoTox *autotoxes) uint8_t chat_id[TOX_GROUP_CHAT_ID_SIZE]; tox_group_get_chat_id(tox0, groupnum, chat_id, &id_err); - ck_assert_msg(id_err == TOX_ERR_GROUP_STATE_QUERY_OK, "tox_group_get_chat_id failed %d", id_err); + ck_assert_msg(id_err == TOX_ERR_GROUP_STATE_QUERY_OK, "tox_group_get_chat_id failed %u", id_err); /* All other peers join the group using the Chat ID and password */ for (size_t i = 1; i < NUM_GROUP_TOXES; ++i) { @@ -307,7 +307,7 @@ static void group_state_test(AutoTox *autotoxes) Tox_Err_Group_Join join_err; tox_group_join(autotoxes[i].tox, chat_id, (const uint8_t *)"Test", 4, (const uint8_t *)PASSWORD, PASS_LEN, &join_err); - ck_assert_msg(join_err == TOX_ERR_GROUP_JOIN_OK, "tox_group_join failed: %d", join_err); + ck_assert_msg(join_err == TOX_ERR_GROUP_JOIN_OK, "tox_group_join failed: %u", join_err); } fprintf(stderr, "Peers attempting to join group\n"); @@ -344,7 +344,7 @@ static void group_state_test(AutoTox *autotoxes) for (size_t i = 0; i < NUM_GROUP_TOXES; ++i) { Tox_Err_Group_Leave err_exit; tox_group_leave(autotoxes[i].tox, groupnum, nullptr, 0, &err_exit); - ck_assert_msg(err_exit == TOX_ERR_GROUP_LEAVE_OK, "%d", err_exit); + ck_assert_msg(err_exit == TOX_ERR_GROUP_LEAVE_OK, "%u", err_exit); } fprintf(stderr, "All tests passed!\n"); diff --git a/external/toxcore/c-toxcore/auto_tests/group_sync_test.c b/external/toxcore/c-toxcore/auto_tests/group_sync_test.c index 146c225..e94eb0c 100644 --- a/external/toxcore/c-toxcore/auto_tests/group_sync_test.c +++ b/external/toxcore/c-toxcore/auto_tests/group_sync_test.c @@ -364,12 +364,12 @@ static void group_sync_test(AutoTox *autotoxes) uint8_t chat_id[TOX_GROUP_CHAT_ID_SIZE]; tox_group_get_chat_id(tox0, groupnumber, chat_id, &id_err); - ck_assert_msg(id_err == TOX_ERR_GROUP_STATE_QUERY_OK, "%d", id_err); + ck_assert_msg(id_err == TOX_ERR_GROUP_STATE_QUERY_OK, "%u", id_err); for (size_t i = 1; i < NUM_GROUP_TOXES; ++i) { Tox_Err_Group_Join join_err; tox_group_join(autotoxes[i].tox, chat_id, (const uint8_t *)"Test", 4, nullptr, 0, &join_err); - ck_assert_msg(join_err == TOX_ERR_GROUP_JOIN_OK, "%d", join_err); + ck_assert_msg(join_err == TOX_ERR_GROUP_JOIN_OK, "%u", join_err); iterate_all_wait(autotoxes, NUM_GROUP_TOXES, ITERATION_INTERVAL); } @@ -381,7 +381,7 @@ static void group_sync_test(AutoTox *autotoxes) Tox_Err_Group_Set_Topic_Lock lock_set_err; tox_group_set_topic_lock(tox0, groupnumber, TOX_GROUP_TOPIC_LOCK_DISABLED, &lock_set_err); - ck_assert_msg(lock_set_err == TOX_ERR_GROUP_SET_TOPIC_LOCK_OK, "failed to disable topic lock: %d", + ck_assert_msg(lock_set_err == TOX_ERR_GROUP_SET_TOPIC_LOCK_OK, "failed to disable topic lock: %u", lock_set_err); iterate_all_wait(autotoxes, NUM_GROUP_TOXES, ITERATION_INTERVAL); @@ -393,7 +393,7 @@ static void group_sync_test(AutoTox *autotoxes) iterate_all_wait(autotoxes, NUM_GROUP_TOXES, ITERATION_INTERVAL); tox_group_set_topic_lock(tox0, groupnumber, TOX_GROUP_TOPIC_LOCK_ENABLED, &lock_set_err); - ck_assert_msg(lock_set_err == TOX_ERR_GROUP_SET_TOPIC_LOCK_OK, "failed to enable topic lock: %d", + ck_assert_msg(lock_set_err == TOX_ERR_GROUP_SET_TOPIC_LOCK_OK, "failed to enable topic lock: %u", lock_set_err); do { @@ -407,7 +407,7 @@ static void group_sync_test(AutoTox *autotoxes) for (size_t i = 0; i < state0->peers->num_peers; ++i) { tox_group_set_role(tox0, groupnumber, (uint32_t)state0->peers->peer_ids[i], TOX_GROUP_ROLE_MODERATOR, &role_err); - ck_assert_msg(role_err == TOX_ERR_GROUP_SET_ROLE_OK, "Failed to set moderator. error: %d", role_err); + ck_assert_msg(role_err == TOX_ERR_GROUP_SET_ROLE_OK, "Failed to set moderator. error: %u", role_err); } fprintf(stderr, "founder enabled topic lock and set all peers to moderator role\n"); @@ -425,7 +425,7 @@ static void group_sync_test(AutoTox *autotoxes) for (size_t i = 0; i < num_demoted; ++i) { tox_group_set_role(tox0, groupnumber, (uint32_t)state0->peers->peer_ids[i], TOX_GROUP_ROLE_USER, &role_err); - ck_assert_msg(role_err == TOX_ERR_GROUP_SET_ROLE_OK, "Failed to set user. error: %d", role_err); + ck_assert_msg(role_err == TOX_ERR_GROUP_SET_ROLE_OK, "Failed to set user. error: %u", role_err); } do { diff --git a/external/toxcore/c-toxcore/auto_tests/group_tcp_test.c b/external/toxcore/c-toxcore/auto_tests/group_tcp_test.c index 9bb7ebc..a11bafc 100644 --- a/external/toxcore/c-toxcore/auto_tests/group_tcp_test.c +++ b/external/toxcore/c-toxcore/auto_tests/group_tcp_test.c @@ -156,7 +156,7 @@ static void group_tcp_test(AutoTox *autotoxes) Tox_Err_Group_New new_err; uint32_t groupnumber = tox_group_new(autotoxes[0].tox, TOX_GROUP_PRIVACY_STATE_PUBLIC, (const uint8_t *)"test", 4, (const uint8_t *)"test", 4, &new_err); - ck_assert_msg(new_err == TOX_ERR_GROUP_NEW_OK, "tox_group_new failed: %d", new_err); + ck_assert_msg(new_err == TOX_ERR_GROUP_NEW_OK, "tox_group_new failed: %u", new_err); iterate_group(autotoxes, NUM_GROUP_TOXES, GROUP_ITERATION_INTERVAL); @@ -164,14 +164,14 @@ static void group_tcp_test(AutoTox *autotoxes) uint8_t chat_id[TOX_GROUP_CHAT_ID_SIZE]; tox_group_get_chat_id(autotoxes[0].tox, groupnumber, chat_id, &id_err); - ck_assert_msg(id_err == TOX_ERR_GROUP_STATE_QUERY_OK, "%d", id_err); + ck_assert_msg(id_err == TOX_ERR_GROUP_STATE_QUERY_OK, "%u", id_err); printf("Tox 0 created new group...\n"); for (size_t i = 1; i < NUM_GROUP_TOXES; ++i) { Tox_Err_Group_Join jerr; tox_group_join(autotoxes[i].tox, chat_id, (const uint8_t *)"test", 4, nullptr, 0, &jerr); - ck_assert_msg(jerr == TOX_ERR_GROUP_JOIN_OK, "%d", jerr); + ck_assert_msg(jerr == TOX_ERR_GROUP_JOIN_OK, "%u", jerr); iterate_group(autotoxes, NUM_GROUP_TOXES, GROUP_ITERATION_INTERVAL * 10); } @@ -187,7 +187,7 @@ static void group_tcp_test(AutoTox *autotoxes) tox_group_send_private_message(autotoxes[0].tox, groupnumber, state0->peer_id[i], TOX_MESSAGE_TYPE_NORMAL, (const uint8_t *)CODEWORD, CODEWORD_LEN, &perr); - ck_assert_msg(perr == TOX_ERR_GROUP_SEND_PRIVATE_MESSAGE_OK, "%d", perr); + ck_assert_msg(perr == TOX_ERR_GROUP_SEND_PRIVATE_MESSAGE_OK, "%u", perr); } while (!all_peers_got_code(autotoxes)) diff --git a/external/toxcore/c-toxcore/auto_tests/group_topic_test.c b/external/toxcore/c-toxcore/auto_tests/group_topic_test.c index c8d84cb..b561847 100644 --- a/external/toxcore/c-toxcore/auto_tests/group_topic_test.c +++ b/external/toxcore/c-toxcore/auto_tests/group_topic_test.c @@ -241,7 +241,7 @@ static void group_topic_test(AutoTox *autotoxes) GROUP_NAME_LEN, (const uint8_t *)PEER0_NICK, PEER0_NICK_LEN, &new_err); - ck_assert_msg(new_err == TOX_ERR_GROUP_NEW_OK, "tox_group_new failed: %d", new_err); + ck_assert_msg(new_err == TOX_ERR_GROUP_NEW_OK, "tox_group_new failed: %u", new_err); iterate_all_wait(autotoxes, NUM_GROUP_TOXES, ITERATION_INTERVAL); @@ -254,7 +254,7 @@ static void group_topic_test(AutoTox *autotoxes) uint8_t chat_id[TOX_GROUP_CHAT_ID_SIZE]; tox_group_get_chat_id(tox0, groupnumber, chat_id, &id_err); - ck_assert_msg(id_err == TOX_ERR_GROUP_STATE_QUERY_OK, "tox_group_get_chat_id failed %d", id_err); + ck_assert_msg(id_err == TOX_ERR_GROUP_STATE_QUERY_OK, "tox_group_get_chat_id failed %u", id_err); /* All other peers join the group using the Chat ID */ for (size_t i = 1; i < NUM_GROUP_TOXES; ++i) { @@ -262,7 +262,7 @@ static void group_topic_test(AutoTox *autotoxes) Tox_Err_Group_Join join_err; tox_group_join(autotoxes[i].tox, chat_id, (const uint8_t *)"Test", 4, nullptr, 0, &join_err); - ck_assert_msg(join_err == TOX_ERR_GROUP_JOIN_OK, "tox_group_join failed: %d", join_err); + ck_assert_msg(join_err == TOX_ERR_GROUP_JOIN_OK, "tox_group_join failed: %u", join_err); c_sleep(100); } @@ -276,7 +276,7 @@ static void group_topic_test(AutoTox *autotoxes) /* Founder disables topic lock */ Tox_Err_Group_Set_Topic_Lock lock_set_err; tox_group_set_topic_lock(tox0, groupnumber, TOX_GROUP_TOPIC_LOCK_DISABLED, &lock_set_err); - ck_assert_msg(lock_set_err == TOX_ERR_GROUP_SET_TOPIC_LOCK_OK, "failed to disable topic lock: %d", + ck_assert_msg(lock_set_err == TOX_ERR_GROUP_SET_TOPIC_LOCK_OK, "failed to disable topic lock: %u", lock_set_err); fprintf(stderr, "Topic lock disabled\n"); @@ -292,7 +292,7 @@ static void group_topic_test(AutoTox *autotoxes) /* founder silences the last peer he saw join */ Tox_Err_Group_Set_Role merr; tox_group_set_role(tox0, groupnumber, state0->peer_id, TOX_GROUP_ROLE_OBSERVER, &merr); - ck_assert_msg(merr == TOX_ERR_GROUP_SET_ROLE_OK, "Failed to set %u to observer role: %d", state0->peer_id, merr); + ck_assert_msg(merr == TOX_ERR_GROUP_SET_ROLE_OK, "Failed to set %u to observer role: %u", state0->peer_id, merr); fprintf(stderr, "Random peer is set to observer\n"); @@ -305,7 +305,7 @@ static void group_topic_test(AutoTox *autotoxes) /* Founder enables topic lock and sets topic back to original */ tox_group_set_topic_lock(tox0, groupnumber, TOX_GROUP_TOPIC_LOCK_ENABLED, &lock_set_err); - ck_assert_msg(lock_set_err == TOX_ERR_GROUP_SET_TOPIC_LOCK_OK, "failed to enable topic lock: %d", + ck_assert_msg(lock_set_err == TOX_ERR_GROUP_SET_TOPIC_LOCK_OK, "failed to enable topic lock: %u", lock_set_err); fprintf(stderr, "Topic lock enabled\n"); @@ -330,7 +330,7 @@ static void group_topic_test(AutoTox *autotoxes) for (size_t i = 0; i < NUM_GROUP_TOXES; ++i) { Tox_Err_Group_Leave err_exit; tox_group_leave(autotoxes[i].tox, groupnumber, nullptr, 0, &err_exit); - ck_assert_msg(err_exit == TOX_ERR_GROUP_LEAVE_OK, "%d", err_exit); + ck_assert_msg(err_exit == TOX_ERR_GROUP_LEAVE_OK, "%u", err_exit); } fprintf(stderr, "All tests passed!\n"); diff --git a/external/toxcore/c-toxcore/auto_tests/invalid_tcp_proxy_test.c b/external/toxcore/c-toxcore/auto_tests/invalid_tcp_proxy_test.c index 43d3c62..bbf653b 100644 --- a/external/toxcore/c-toxcore/auto_tests/invalid_tcp_proxy_test.c +++ b/external/toxcore/c-toxcore/auto_tests/invalid_tcp_proxy_test.c @@ -32,7 +32,7 @@ int main(void) // None of the iterations should have a connection. const Tox_Connection status = tox_self_get_connection_status(tox); ck_assert_msg(status == TOX_CONNECTION_NONE, - "unexpectedly got a connection (%d)", status); + "unexpectedly got a connection (%u)", status); } tox_kill(tox); diff --git a/external/toxcore/c-toxcore/auto_tests/invalid_udp_proxy_test.c b/external/toxcore/c-toxcore/auto_tests/invalid_udp_proxy_test.c index 431ec59..73b3587 100644 --- a/external/toxcore/c-toxcore/auto_tests/invalid_udp_proxy_test.c +++ b/external/toxcore/c-toxcore/auto_tests/invalid_udp_proxy_test.c @@ -32,7 +32,7 @@ int main(void) // None of the iterations should have a connection. const Tox_Connection status = tox_self_get_connection_status(tox); ck_assert_msg(status == TOX_CONNECTION_NONE, - "unexpectedly got a connection (%d)", status); + "unexpectedly got a connection (%u)", status); } tox_kill(tox); diff --git a/external/toxcore/c-toxcore/auto_tests/lan_discovery_test.c b/external/toxcore/c-toxcore/auto_tests/lan_discovery_test.c index d7bf594..103220c 100644 --- a/external/toxcore/c-toxcore/auto_tests/lan_discovery_test.c +++ b/external/toxcore/c-toxcore/auto_tests/lan_discovery_test.c @@ -43,7 +43,7 @@ int main(void) } while (tox_self_get_connection_status(tox1) == TOX_CONNECTION_NONE || tox_self_get_connection_status(tox2) == TOX_CONNECTION_NONE); - printf(" %d <-> %d\n", + printf(" %u <-> %u\n", tox_self_get_connection_status(tox1), tox_self_get_connection_status(tox2)); diff --git a/external/toxcore/c-toxcore/auto_tests/netprof_test.c b/external/toxcore/c-toxcore/auto_tests/netprof_test.c index 6b1fcd8..578b0c3 100644 --- a/external/toxcore/c-toxcore/auto_tests/netprof_test.c +++ b/external/toxcore/c-toxcore/auto_tests/netprof_test.c @@ -112,7 +112,7 @@ int main(void) Tox_Err_Options_New options_err; struct Tox_Options *tox_opts = tox_options_new(&options_err); - ck_assert_msg(options_err == TOX_ERR_OPTIONS_NEW_OK, "Failed to initialize tox options: %d\n", options_err); + ck_assert_msg(options_err == TOX_ERR_OPTIONS_NEW_OK, "Failed to initialize tox options: %u\n", options_err); tox_options_default(tox_opts); tox_options_set_udp_enabled(tox_opts, true); diff --git a/external/toxcore/c-toxcore/auto_tests/overflow_recvq_test.c b/external/toxcore/c-toxcore/auto_tests/overflow_recvq_test.c index d250b4d..b2a30f2 100644 --- a/external/toxcore/c-toxcore/auto_tests/overflow_recvq_test.c +++ b/external/toxcore/c-toxcore/auto_tests/overflow_recvq_test.c @@ -43,7 +43,7 @@ static void net_crypto_overflow_test(AutoTox *autotoxes) } ck_assert_msg(err == TOX_ERR_FRIEND_SEND_MESSAGE_OK, - "tox%u failed to send message number %u: %d", tox_index, i, err); + "tox%u failed to send message number %u: %u", tox_index, i, err); } } diff --git a/external/toxcore/c-toxcore/auto_tests/overflow_sendq_test.c b/external/toxcore/c-toxcore/auto_tests/overflow_sendq_test.c index fab0f00..d9b6089 100644 --- a/external/toxcore/c-toxcore/auto_tests/overflow_sendq_test.c +++ b/external/toxcore/c-toxcore/auto_tests/overflow_sendq_test.c @@ -24,10 +24,10 @@ static void net_crypto_overflow_test(AutoTox *autotoxes) // As soon as we get the first error, we expect the same error (SENDQ) // every time we try to send. ck_assert_msg(err == TOX_ERR_FRIEND_SEND_MESSAGE_SENDQ, - "expected SENDQ error on message %u, but got %d", i, err); + "expected SENDQ error on message %u, but got %u", i, err); } else { ck_assert_msg(err == TOX_ERR_FRIEND_SEND_MESSAGE_OK, - "failed to send message number %u: %d", i, err); + "failed to send message number %u: %u", i, err); } } diff --git a/external/toxcore/c-toxcore/auto_tests/proxy_test.c b/external/toxcore/c-toxcore/auto_tests/proxy_test.c index 79e3997..0d3a666 100644 --- a/external/toxcore/c-toxcore/auto_tests/proxy_test.c +++ b/external/toxcore/c-toxcore/auto_tests/proxy_test.c @@ -23,7 +23,7 @@ static bool try_bootstrap(Tox *tox1, Tox *tox2, Tox *tox3, Tox *tox4) tox_self_get_connection_status(tox2) != TOX_CONNECTION_NONE && tox_self_get_connection_status(tox3) != TOX_CONNECTION_NONE && tox_self_get_connection_status(tox4) != TOX_CONNECTION_NONE) { - printf("%d %d %d %d\n", + printf("%u %u %u %u\n", tox_self_get_connection_status(tox1), tox_self_get_connection_status(tox2), tox_self_get_connection_status(tox3), @@ -37,7 +37,7 @@ static bool try_bootstrap(Tox *tox1, Tox *tox2, Tox *tox3, Tox *tox4) tox_iterate(tox4, nullptr); if (i % 10 == 0) { - printf("%d %d %d %d\n", + printf("%u %u %u %u\n", tox_self_get_connection_status(tox1), tox_self_get_connection_status(tox2), tox_self_get_connection_status(tox3), diff --git a/external/toxcore/c-toxcore/auto_tests/save_compatibility_test.c b/external/toxcore/c-toxcore/auto_tests/save_compatibility_test.c index 6267f66..bba1c60 100644 --- a/external/toxcore/c-toxcore/auto_tests/save_compatibility_test.c +++ b/external/toxcore/c-toxcore/auto_tests/save_compatibility_test.c @@ -84,7 +84,7 @@ static void test_save_compatibility(const char *save_path) size_t index = 0; Tox_Err_New err; Tox *tox = tox_new_log(options, &err, &index); - ck_assert_msg(tox, "failed to create tox, error number: %d", err); + ck_assert_msg(tox, "failed to create tox, error number: %u", err); tox_options_free(options); free(save_data); diff --git a/external/toxcore/c-toxcore/auto_tests/save_load_test.c b/external/toxcore/c-toxcore/auto_tests/save_load_test.c index f415885..26f29fe 100644 --- a/external/toxcore/c-toxcore/auto_tests/save_load_test.c +++ b/external/toxcore/c-toxcore/auto_tests/save_load_test.c @@ -54,7 +54,7 @@ static void tox_connection_status(const Tox_Event_Self_Connection_Status *event, ck_abort_msg("Tox went offline"); } - ck_assert_msg(connection_status != TOX_CONNECTION_NONE, "wrong status %d", connection_status); + ck_assert_msg(connection_status != TOX_CONNECTION_NONE, "wrong status %u", connection_status); connected_t1 = connection_status; } @@ -153,7 +153,7 @@ static void test_few_clients(void) tox_options_set_tcp_port(opts1, TCP_RELAY_PORT); Tox_Err_New t_n_error; Tox *tox1 = tox_new_log(opts1, &t_n_error, &index[0]); - ck_assert_msg(t_n_error == TOX_ERR_NEW_OK, "Failed to create tox instance: %d", t_n_error); + ck_assert_msg(t_n_error == TOX_ERR_NEW_OK, "Failed to create tox instance: %u", t_n_error); tox_options_free(opts1); tox_events_init(tox1); Tox_Dispatch *dispatch1 = tox_dispatch_new(nullptr); @@ -164,7 +164,7 @@ static void test_few_clients(void) tox_options_set_udp_enabled(opts2, false); tox_options_set_local_discovery_enabled(opts2, false); Tox *tox2 = tox_new_log(opts2, &t_n_error, &index[1]); - ck_assert_msg(t_n_error == TOX_ERR_NEW_OK, "Failed to create tox instance: %d", t_n_error); + ck_assert_msg(t_n_error == TOX_ERR_NEW_OK, "Failed to create tox instance: %u", t_n_error); tox_events_init(tox2); Tox_Dispatch *dispatch2 = tox_dispatch_new(nullptr); ck_assert(dispatch2 != nullptr); @@ -173,7 +173,7 @@ static void test_few_clients(void) tox_options_set_ipv6_enabled(opts3, USE_IPV6); tox_options_set_local_discovery_enabled(opts3, false); Tox *tox3 = tox_new_log(opts3, &t_n_error, &index[2]); - ck_assert_msg(t_n_error == TOX_ERR_NEW_OK, "Failed to create tox instance: %d", t_n_error); + ck_assert_msg(t_n_error == TOX_ERR_NEW_OK, "Failed to create tox instance: %u", t_n_error); ck_assert_msg(tox1 && tox2 && tox3, "Failed to create 3 tox instances"); diff --git a/external/toxcore/c-toxcore/auto_tests/send_message_test.c b/external/toxcore/c-toxcore/auto_tests/send_message_test.c index d39ba23..bba885c 100644 --- a/external/toxcore/c-toxcore/auto_tests/send_message_test.c +++ b/external/toxcore/c-toxcore/auto_tests/send_message_test.c @@ -50,10 +50,10 @@ static void send_message_test(AutoTox *autotoxes) Tox_Err_Friend_Send_Message errm; tox_friend_send_message(autotoxes[0].tox, 0, TOX_MESSAGE_TYPE_NORMAL, msgs, msgs_len, &errm); - ck_assert_msg(errm == TOX_ERR_FRIEND_SEND_MESSAGE_TOO_LONG, "tox_max_message_length() is too small? error=%d", errm); + ck_assert_msg(errm == TOX_ERR_FRIEND_SEND_MESSAGE_TOO_LONG, "tox_max_message_length() is too small? error=%u", errm); tox_friend_send_message(autotoxes[0].tox, 0, TOX_MESSAGE_TYPE_NORMAL, msgs, tox_max_message_length(), &errm); - ck_assert_msg(errm == TOX_ERR_FRIEND_SEND_MESSAGE_OK, "tox_max_message_length() is too big? error=%d", errm); + ck_assert_msg(errm == TOX_ERR_FRIEND_SEND_MESSAGE_OK, "tox_max_message_length() is too big? error=%u", errm); free(msgs); diff --git a/external/toxcore/c-toxcore/auto_tests/set_name_test.c b/external/toxcore/c-toxcore/auto_tests/set_name_test.c index 0a60bfc..71c3903 100644 --- a/external/toxcore/c-toxcore/auto_tests/set_name_test.c +++ b/external/toxcore/c-toxcore/auto_tests/set_name_test.c @@ -92,7 +92,7 @@ static void test_set_name(void) tox_events_callback_friend_name(dispatch2, nickchange_callback); Tox_Err_Set_Info err_n; bool ret = tox_self_set_name(tox1, (const uint8_t *)NICKNAME, sizeof(NICKNAME), &err_n); - ck_assert_msg(ret && err_n == TOX_ERR_SET_INFO_OK, "tox_self_set_name failed because %d\n", err_n); + ck_assert_msg(ret && err_n == TOX_ERR_SET_INFO_OK, "tox_self_set_name failed because %u\n", err_n); bool nickname_updated = false; diff --git a/external/toxcore/c-toxcore/auto_tests/set_status_message_test.c b/external/toxcore/c-toxcore/auto_tests/set_status_message_test.c index 01b3af1..ded46e5 100644 --- a/external/toxcore/c-toxcore/auto_tests/set_status_message_test.c +++ b/external/toxcore/c-toxcore/auto_tests/set_status_message_test.c @@ -93,7 +93,7 @@ static void test_set_status_message(void) Tox_Err_Set_Info err_n; bool ret = tox_self_set_status_message(tox1, (const uint8_t *)STATUS_MESSAGE, sizeof(STATUS_MESSAGE), &err_n); - ck_assert_msg(ret && err_n == TOX_ERR_SET_INFO_OK, "tox_self_set_status_message failed because %d\n", err_n); + ck_assert_msg(ret && err_n == TOX_ERR_SET_INFO_OK, "tox_self_set_status_message failed because %u\n", err_n); bool status_updated = false; diff --git a/external/toxcore/c-toxcore/auto_tests/tcp_relay_test.c b/external/toxcore/c-toxcore/auto_tests/tcp_relay_test.c index 48c24ed..860ac96 100644 --- a/external/toxcore/c-toxcore/auto_tests/tcp_relay_test.c +++ b/external/toxcore/c-toxcore/auto_tests/tcp_relay_test.c @@ -35,8 +35,8 @@ int main(void) const Tox_Connection status = tox_self_get_connection_status(tox_tcp); ck_assert_msg(status == TOX_CONNECTION_TCP, - "expected TCP connection, but got %d", status); - printf("Connection (TCP): %d\n", status); + "expected TCP connection, but got %u", status); + printf("Connection (TCP): %u\n", status); tox_kill(tox_tcp); diff --git a/external/toxcore/c-toxcore/auto_tests/tox_many_tcp_test.c b/external/toxcore/c-toxcore/auto_tests/tox_many_tcp_test.c index 0f88300..fb4505d 100644 --- a/external/toxcore/c-toxcore/auto_tests/tox_many_tcp_test.c +++ b/external/toxcore/c-toxcore/auto_tests/tox_many_tcp_test.c @@ -88,7 +88,7 @@ static void test_many_clients_tcp(void) uint8_t dpk[TOX_PUBLIC_KEY_SIZE]; tox_self_get_dht_id(toxes[0], dpk); Tox_Err_Bootstrap error; - ck_assert_msg(tox_add_tcp_relay(toxes[i], TOX_LOCALHOST, tcp_relay_port, dpk, &error), "add relay error, %u, %d", i, + ck_assert_msg(tox_add_tcp_relay(toxes[i], TOX_LOCALHOST, tcp_relay_port, dpk, &error), "add relay error, %u, %u", i, error); uint16_t first_port = tox_self_get_udp_port(toxes[0], nullptr); ck_assert_msg(tox_bootstrap(toxes[i], TOX_LOCALHOST, first_port, dpk, nullptr), "Bootstrap error"); @@ -128,7 +128,7 @@ loop_top: goto loop_top; } - ck_assert_msg(num != UINT32_MAX && test == TOX_ERR_FRIEND_ADD_OK, "Failed to add friend error code: %i", test); + ck_assert_msg(num != UINT32_MAX && test == TOX_ERR_FRIEND_ADD_OK, "Failed to add friend error code: %u", test); } while (true) { @@ -233,7 +233,7 @@ loop_top: goto loop_top; } - ck_assert_msg(num != UINT32_MAX && test == TOX_ERR_FRIEND_ADD_OK, "Failed to add friend error code: %i", test); + ck_assert_msg(num != UINT32_MAX && test == TOX_ERR_FRIEND_ADD_OK, "Failed to add friend error code: %u", test); } uint16_t last_count = 0; diff --git a/external/toxcore/c-toxcore/auto_tests/tox_many_test.c b/external/toxcore/c-toxcore/auto_tests/tox_many_test.c index 7a53191..4166611 100644 --- a/external/toxcore/c-toxcore/auto_tests/tox_many_test.c +++ b/external/toxcore/c-toxcore/auto_tests/tox_many_test.c @@ -90,7 +90,7 @@ loop_top: tox_bootstrap(toxes[pairs[i].tox2], "localhost", dht_port, dht_key, nullptr); - ck_assert_msg(num != UINT32_MAX && test == TOX_ERR_FRIEND_ADD_OK, "failed to add friend error code: %i", test); + ck_assert_msg(num != UINT32_MAX && test == TOX_ERR_FRIEND_ADD_OK, "failed to add friend error code: %u", test); } for (uint32_t i = 0; i < TCP_TEST_NUM_TOXES; ++i) { diff --git a/external/toxcore/c-toxcore/auto_tests/toxav_basic_test.c b/external/toxcore/c-toxcore/auto_tests/toxav_basic_test.c index 541b254..59668fd 100644 --- a/external/toxcore/c-toxcore/auto_tests/toxav_basic_test.c +++ b/external/toxcore/c-toxcore/auto_tests/toxav_basic_test.c @@ -27,7 +27,7 @@ Toxav_Err_Call_Control cc_err; \ bool ok = toxav_call_control(a, b, c, &cc_err); \ if (!ok) { \ - printf("toxav_call_control returned error %d\n", cc_err); \ + printf("toxav_call_control returned error %u\n", cc_err); \ } \ ck_assert(ok); \ ck_assert(cc_err == TOXAV_ERR_CALL_CONTROL_OK); \ @@ -115,7 +115,7 @@ static void regular_call_flow( Toxav_Err_Call call_err; toxav_call(alice_av, 0, a_br, v_br, &call_err); - ck_assert_msg(call_err == TOXAV_ERR_CALL_OK, "toxav_call failed: %d\n", call_err); + ck_assert_msg(call_err == TOXAV_ERR_CALL_OK, "toxav_call failed: %u\n", call_err); const time_t start_time = time(nullptr); @@ -124,7 +124,7 @@ static void regular_call_flow( Toxav_Err_Answer answer_err; toxav_answer(bob_av, 0, a_br, v_br, &answer_err); - ck_assert_msg(answer_err == TOXAV_ERR_ANSWER_OK, "toxav_answer failed: %d\n", answer_err); + ck_assert_msg(answer_err == TOXAV_ERR_ANSWER_OK, "toxav_answer failed: %u\n", answer_err); bob_cc->incoming = false; } else { /* TODO(mannol): rtp */ @@ -133,7 +133,7 @@ static void regular_call_flow( Toxav_Err_Call_Control cc_err; toxav_call_control(alice_av, 0, TOXAV_CALL_CONTROL_CANCEL, &cc_err); - ck_assert_msg(cc_err == TOXAV_ERR_CALL_CONTROL_OK, "toxav_call_control failed: %d\n", cc_err); + ck_assert_msg(cc_err == TOXAV_ERR_CALL_CONTROL_OK, "toxav_call_control failed: %u\n", cc_err); } } @@ -253,7 +253,7 @@ static void test_av_flows(void) Toxav_Err_Call rc; toxav_call(alice_av, 0, 48, 0, &rc); - ck_assert_msg(rc == TOXAV_ERR_CALL_OK, "toxav_call failed: %d\n", rc); + ck_assert_msg(rc == TOXAV_ERR_CALL_OK, "toxav_call failed: %u\n", rc); } do { @@ -265,7 +265,7 @@ static void test_av_flows(void) Toxav_Err_Call_Control rc; toxav_call_control(bob_av, 0, TOXAV_CALL_CONTROL_CANCEL, &rc); - ck_assert_msg(rc == TOXAV_ERR_CALL_CONTROL_OK, "toxav_call_control failed: %d\n", rc); + ck_assert_msg(rc == TOXAV_ERR_CALL_CONTROL_OK, "toxav_call_control failed: %u\n", rc); } do { @@ -285,7 +285,7 @@ static void test_av_flows(void) Toxav_Err_Call rc; toxav_call(alice_av, 0, 48, 0, &rc); - ck_assert_msg(rc == TOXAV_ERR_CALL_OK, "toxav_call failed: %d\n", rc); + ck_assert_msg(rc == TOXAV_ERR_CALL_OK, "toxav_call failed: %u\n", rc); } do { @@ -297,7 +297,7 @@ static void test_av_flows(void) Toxav_Err_Call_Control rc; toxav_call_control(alice_av, 0, TOXAV_CALL_CONTROL_CANCEL, &rc); - ck_assert_msg(rc == TOXAV_ERR_CALL_CONTROL_OK, "toxav_call_control failed: %d\n", rc); + ck_assert_msg(rc == TOXAV_ERR_CALL_CONTROL_OK, "toxav_call_control failed: %u\n", rc); } /* Alice will not receive end state */ @@ -319,7 +319,7 @@ static void test_av_flows(void) Toxav_Err_Call rc; toxav_call(alice_av, 0, 48, 1000, &rc); - ck_assert_msg(rc == TOXAV_ERR_CALL_OK, "toxav_call failed: %d\n", rc); + ck_assert_msg(rc == TOXAV_ERR_CALL_OK, "toxav_call failed: %u\n", rc); } do { @@ -338,7 +338,7 @@ static void test_av_flows(void) Toxav_Err_Answer rc; toxav_answer(bob_av, 0, 48, 4000, &rc); - ck_assert_msg(rc == TOXAV_ERR_ANSWER_OK, "toxav_answer failed: %d\n", rc); + ck_assert_msg(rc == TOXAV_ERR_ANSWER_OK, "toxav_answer failed: %u\n", rc); } iterate_tox(bootstrap, alice, bob); @@ -380,7 +380,7 @@ static void test_av_flows(void) Toxav_Err_Call_Control rc; toxav_call_control(alice_av, 0, TOXAV_CALL_CONTROL_CANCEL, &rc); - ck_assert_msg(rc == TOXAV_ERR_CALL_CONTROL_OK, "toxav_call_control failed: %d\n", rc); + ck_assert_msg(rc == TOXAV_ERR_CALL_CONTROL_OK, "toxav_call_control failed: %u\n", rc); } iterate_tox(bootstrap, alice, bob); @@ -400,7 +400,7 @@ static void test_av_flows(void) Toxav_Err_Call rc; toxav_call(alice_av, 0, 48, 0, &rc); - ck_assert_msg(rc == TOXAV_ERR_CALL_OK, "toxav_call failed: %d\n", rc); + ck_assert_msg(rc == TOXAV_ERR_CALL_OK, "toxav_call failed: %u\n", rc); } do { @@ -411,7 +411,7 @@ static void test_av_flows(void) Toxav_Err_Answer rc; toxav_answer(bob_av, 0, 48, 0, &rc); - ck_assert_msg(rc == TOXAV_ERR_ANSWER_OK, "toxav_answer failed: %d\n", rc); + ck_assert_msg(rc == TOXAV_ERR_ANSWER_OK, "toxav_answer failed: %u\n", rc); } iterate_tox(bootstrap, alice, bob); @@ -439,7 +439,7 @@ static void test_av_flows(void) Toxav_Err_Call_Control rc; toxav_call_control(alice_av, 0, TOXAV_CALL_CONTROL_CANCEL, &rc); - ck_assert_msg(rc == TOXAV_ERR_CALL_CONTROL_OK, "toxav_call_control failed: %d\n", rc); + ck_assert_msg(rc == TOXAV_ERR_CALL_CONTROL_OK, "toxav_call_control failed: %u\n", rc); } iterate_tox(bootstrap, alice, bob); @@ -459,7 +459,7 @@ static void test_av_flows(void) Toxav_Err_Call rc; toxav_call(alice_av, 0, 48, 0, &rc); - ck_assert_msg(rc == TOXAV_ERR_CALL_OK, "toxav_call failed: %d\n", rc); + ck_assert_msg(rc == TOXAV_ERR_CALL_OK, "toxav_call failed: %u\n", rc); } do { @@ -470,7 +470,7 @@ static void test_av_flows(void) Toxav_Err_Answer rc; toxav_answer(bob_av, 0, 48, 0, &rc); - ck_assert_msg(rc == TOXAV_ERR_ANSWER_OK, "toxav_answer failed: %d\n", rc); + ck_assert_msg(rc == TOXAV_ERR_ANSWER_OK, "toxav_answer failed: %u\n", rc); } iterate_tox(bootstrap, alice, bob); @@ -488,7 +488,7 @@ static void test_av_flows(void) Toxav_Err_Call_Control rc; toxav_call_control(alice_av, 0, TOXAV_CALL_CONTROL_CANCEL, &rc); - ck_assert_msg(rc == TOXAV_ERR_CALL_CONTROL_OK, "toxav_call_control failed: %d\n", rc); + ck_assert_msg(rc == TOXAV_ERR_CALL_CONTROL_OK, "toxav_call_control failed: %u\n", rc); } iterate_tox(bootstrap, alice, bob); diff --git a/external/toxcore/c-toxcore/auto_tests/toxav_many_test.c b/external/toxcore/c-toxcore/auto_tests/toxav_many_test.c index fe1a103..3de09fd 100644 --- a/external/toxcore/c-toxcore/auto_tests/toxav_many_test.c +++ b/external/toxcore/c-toxcore/auto_tests/toxav_many_test.c @@ -297,7 +297,7 @@ static void test_av_three_calls(void) toxav_call(alice_av, tds[i].friend_number, 48, 3000, &rc); if (rc != TOXAV_ERR_CALL_OK) { - printf("toxav_call failed: %d\n", rc); + printf("toxav_call failed: %u\n", rc); ck_assert(0); } } @@ -316,7 +316,7 @@ static void test_av_three_calls(void) toxav_answer(bobs_av[i], 0, 8, 500, &rc); if (rc != TOXAV_ERR_ANSWER_OK) { - printf("toxav_answer failed: %d\n", rc); + printf("toxav_answer failed: %u\n", rc); ck_assert(0); } @@ -334,7 +334,7 @@ static void test_av_three_calls(void) toxav_call_control(alice_av, i, TOXAV_CALL_CONTROL_CANCEL, &rc); if (rc != TOXAV_ERR_CALL_CONTROL_OK) { - printf("toxav_call_control failed: %d %p %p\n", rc, (void *)alice_av, (void *)&bobs_av[i]); + printf("toxav_call_control failed: %u %p %p\n", rc, (void *)alice_av, (void *)&bobs_av[i]); } } diff --git a/external/toxcore/c-toxcore/other/analysis/run-clang b/external/toxcore/c-toxcore/other/analysis/run-clang index 3f7113b..157ddbe 100755 --- a/external/toxcore/c-toxcore/other/analysis/run-clang +++ b/external/toxcore/c-toxcore/other/analysis/run-clang @@ -25,15 +25,18 @@ run() { -Wno-missing-braces \ -Wno-missing-field-initializers \ -Wno-missing-noreturn \ + -Wno-nullability-completeness \ + -Wno-nullability-extension \ + -Wno-nullable-to-nonnull-conversion \ -Wno-old-style-cast \ -Wno-padded \ + -Wno-source-uses-openmp \ -Wno-switch-default \ -Wno-tautological-pointer-compare \ -Wno-unreachable-code-return \ -Wno-unsafe-buffer-usage \ -Wno-unused-parameter \ - -Wno-used-but-marked-unused \ - -Wno-source-uses-openmp + -Wno-used-but-marked-unused } . other/analysis/variants.sh diff --git a/external/toxcore/c-toxcore/other/analysis/run-clang-tidy b/external/toxcore/c-toxcore/other/analysis/run-clang-tidy index bcdb78f..b48419f 100755 --- a/external/toxcore/c-toxcore/other/analysis/run-clang-tidy +++ b/external/toxcore/c-toxcore/other/analysis/run-clang-tidy @@ -7,6 +7,11 @@ ERRORS="*" # Still good to occasionally look at. ERRORS="$ERRORS,-google-readability-casting" +# TODO(iphydf): Fix these. +CHECKS="$CHECKS,-clang-analyzer-nullability.NullableDereferenced" +CHECKS="$CHECKS,-clang-analyzer-nullability.NullablePassedToNonnull" +CHECKS="$CHECKS,-clang-analyzer-nullability.NullPassedToNonnull" + # Need to investigate or disable and document these. # ========================================================= diff --git a/external/toxcore/c-toxcore/other/analysis/run-cppcheck b/external/toxcore/c-toxcore/other/analysis/run-cppcheck index 03c597d..0e586ba 100755 --- a/external/toxcore/c-toxcore/other/analysis/run-cppcheck +++ b/external/toxcore/c-toxcore/other/analysis/run-cppcheck @@ -12,8 +12,12 @@ CPPCHECK+=("--check-level=exhaustive") CPPCHECK+=("--inline-suppr") CPPCHECK+=("--library=other/docker/cppcheck/toxcore.cfg") CPPCHECK+=("--error-exitcode=1") +# Some files don't match all our suppressions below. +CPPCHECK+=("--suppress=unmatchedSuppression") # We don't cast function pointers, which cppcheck suggests here. CPPCHECK+=("--suppress=constParameterCallback") +# This disagrees with clang's warnings. +CPPCHECK+=("--suppress=invalidPrintfArgType_uint") # False positives in switch statements. CPPCHECK+=("--suppress=knownConditionTrueFalse") # Cppcheck does not need standard library headers to get proper results. diff --git a/external/toxcore/c-toxcore/other/docker/goblint/goblint.Dockerfile b/external/toxcore/c-toxcore/other/docker/goblint/goblint.Dockerfile index 77713f4..9094152 100644 --- a/external/toxcore/c-toxcore/other/docker/goblint/goblint.Dockerfile +++ b/external/toxcore/c-toxcore/other/docker/goblint/goblint.Dockerfile @@ -1,5 +1,5 @@ FROM toxchat/c-toxcore:sources AS sources -FROM ghcr.io/goblint/analyzer:latest +FROM ghcr.io/goblint/analyzer:2.5.0 RUN apt-get update && \ DEBIAN_FRONTEND="noninteractive" apt-get install -y --no-install-recommends \ diff --git a/external/toxcore/c-toxcore/other/event_tooling/generate_event_c.cpp b/external/toxcore/c-toxcore/other/event_tooling/generate_event_c.cpp index 51aeca1..3583b4f 100644 --- a/external/toxcore/c-toxcore/other/event_tooling/generate_event_c.cpp +++ b/external/toxcore/c-toxcore/other/event_tooling/generate_event_c.cpp @@ -216,17 +216,6 @@ void generate_event_impl(const std::string& event_name, const std::vector" << t.name << " = " << t.name << ";\n"; }, [&](const EventTypeByteRange& t) { - f << "\n if (" << event_name_l << "->" << t.name_data << " != nullptr) {\n"; + f << " if (" << event_name_l << "->" << t.name_data << " != nullptr) {\n"; f << " free(" << event_name_l << "->" << t.name_data << ");\n"; f << " " << event_name_l << "->" << t.name_data << " = nullptr;\n"; f << " " << event_name_l << "->" << t.name_length << " = 0;\n"; @@ -308,16 +296,14 @@ void generate_event_impl(const std::string& event_name, const std::vector 1) { f << " if (!bin_unpack_array_fixed(bu, " << event_types.size() << ", nullptr)) {\n return false;\n }\n\n"; @@ -437,8 +421,7 @@ void generate_event_impl(const std::string& event_name, const std::vectorevents == nullptr) {\n return nullptr;\n }\n\n"; diff --git a/external/toxcore/c-toxcore/other/fun/save-generator.c b/external/toxcore/c-toxcore/other/fun/save-generator.c index d27d69e..6efb9bc 100644 --- a/external/toxcore/c-toxcore/other/fun/save-generator.c +++ b/external/toxcore/c-toxcore/other/fun/save-generator.c @@ -46,7 +46,7 @@ static bool bootstrap_tox(Tox *tox) free(key); if (err != TOX_ERR_BOOTSTRAP_OK) { - printf("Failed to bootstrap. Error number: %d", err); + printf("Failed to bootstrap. Error number: %u", err); return false; } @@ -128,13 +128,13 @@ int main(int argc, char *argv[]) tox_self_set_name(tox, name, strlen((const char *)name), &err); if (err != TOX_ERR_SET_INFO_OK) { - printf("Failed to set name. Error number %d\n", err); + printf("Failed to set name. Error number %u\n", err); } tox_self_set_status_message(tox, (const uint8_t *)GENERATED_STATUS_MESSAGE, strlen(GENERATED_STATUS_MESSAGE), &err); if (err != TOX_ERR_SET_INFO_OK) { - printf("Failed to set status. Error number: %d\n", err); + printf("Failed to set status. Error number: %u\n", err); } for (int i = 2; i < argc; i++) { //start at 2 because that is where the tox ids are @@ -145,7 +145,7 @@ int main(int argc, char *argv[]) free(address); if (friend_err != TOX_ERR_FRIEND_ADD_OK) { - printf("Failed to add friend number %d. Error number: %d\n", i - 1, friend_err); + printf("Failed to add friend number %d. Error number: %u\n", i - 1, friend_err); } } diff --git a/external/toxcore/c-toxcore/testing/fuzzing/bootstrap_fuzz_test.cc b/external/toxcore/c-toxcore/testing/fuzzing/bootstrap_fuzz_test.cc index 386da1c..1c73d13 100644 --- a/external/toxcore/c-toxcore/testing/fuzzing/bootstrap_fuzz_test.cc +++ b/external/toxcore/c-toxcore/testing/fuzzing/bootstrap_fuzz_test.cc @@ -110,7 +110,7 @@ void TestBootstrap(Fuzz_Data &input) const char *message, void *user_data) { // Log to stdout. if (Fuzz_Data::FUZZ_DEBUG) { - std::printf("[tox1] %c %s:%d(%s): %s\n", tox_log_level_name(level), file, line, + std::printf("[tox1] %c %s:%u(%s): %s\n", tox_log_level_name(level), file, line, func, message); } }); diff --git a/external/toxcore/c-toxcore/testing/fuzzing/e2e_fuzz_test.cc b/external/toxcore/c-toxcore/testing/fuzzing/e2e_fuzz_test.cc index 45af343..91f59ac 100644 --- a/external/toxcore/c-toxcore/testing/fuzzing/e2e_fuzz_test.cc +++ b/external/toxcore/c-toxcore/testing/fuzzing/e2e_fuzz_test.cc @@ -144,7 +144,7 @@ void TestEndToEnd(Fuzz_Data &input) const char *message, void *user_data) { // Log to stdout. if (Fuzz_Data::FUZZ_DEBUG) { - std::printf("[tox1] %c %s:%d(%s): %s\n", tox_log_level_name(level), file, line, + std::printf("[tox1] %c %s:%u(%s): %s\n", tox_log_level_name(level), file, line, func, message); } }); diff --git a/external/toxcore/c-toxcore/toxav/audio.c b/external/toxcore/c-toxcore/toxav/audio.c index 59c8a71..175d836 100644 --- a/external/toxcore/c-toxcore/toxav/audio.c +++ b/external/toxcore/c-toxcore/toxav/audio.c @@ -489,7 +489,7 @@ static bool reconfigure_audio_encoder(const Logger *log, OpusEncoder **e, uint32 *old_sr = new_sr; *old_ch = new_ch; - LOGGER_DEBUG(log, "Reconfigured audio encoder br: %d sr: %d cc:%d", new_br, new_sr, new_ch); + LOGGER_DEBUG(log, "Reconfigured audio encoder br: %u sr: %u cc:%d", new_br, new_sr, new_ch); return true; } @@ -504,7 +504,7 @@ static bool reconfigure_audio_decoder(ACSession *ac, uint32_t sampling_rate, uin OpusDecoder *new_dec = opus_decoder_create(sampling_rate, channels, &status); if (status != OPUS_OK) { - LOGGER_ERROR(ac->log, "Error while starting audio decoder(%d %d): %s", sampling_rate, channels, opus_strerror(status)); + LOGGER_ERROR(ac->log, "Error while starting audio decoder(%u %u): %s", sampling_rate, channels, opus_strerror(status)); return false; } @@ -515,7 +515,7 @@ static bool reconfigure_audio_decoder(ACSession *ac, uint32_t sampling_rate, uin opus_decoder_destroy(ac->decoder); ac->decoder = new_dec; - LOGGER_DEBUG(ac->log, "Reconfigured audio decoder sr: %d cc: %d", sampling_rate, channels); + LOGGER_DEBUG(ac->log, "Reconfigured audio decoder sr: %u cc: %u", sampling_rate, channels); } return true; diff --git a/external/toxcore/c-toxcore/toxav/bwcontroller.c b/external/toxcore/c-toxcore/toxav/bwcontroller.c index bb6b614..5d939d8 100644 --- a/external/toxcore/c-toxcore/toxav/bwcontroller.c +++ b/external/toxcore/c-toxcore/toxav/bwcontroller.c @@ -156,7 +156,7 @@ static void send_update(BWController *bwc) tox_friend_send_lossy_packet(bwc->tox, bwc->friend_number, bwc_packet, sizeof(bwc_packet), &error); if (error != TOX_ERR_FRIEND_CUSTOM_PACKET_OK) { - LOGGER_WARNING(bwc->log, "BWC send failed: %d", error); + LOGGER_WARNING(bwc->log, "BWC send failed: %u", error); } } diff --git a/external/toxcore/c-toxcore/toxav/msi.c b/external/toxcore/c-toxcore/toxav/msi.c index a0bbe8d..b14f42b 100644 --- a/external/toxcore/c-toxcore/toxav/msi.c +++ b/external/toxcore/c-toxcore/toxav/msi.c @@ -183,7 +183,7 @@ bool check_peer_offline_status(const Logger *log, const Tox *tox, MSISession *se if (f_con_status == TOX_CONNECTION_NONE) { /* Friend is now offline */ - LOGGER_DEBUG(log, "Friend %d is now offline", friend_number); + LOGGER_DEBUG(log, "Friend %u is now offline", friend_number); pthread_mutex_lock(session->mutex); MSICall *call = get_call(session, friend_number); @@ -575,7 +575,7 @@ static int send_error(const Logger *log, Tox *tox, uint32_t friend_number, MSIEr assert(tox != nullptr); /* Send error message */ - LOGGER_DEBUG(log, "Sending error: %d to friend: %d", error, friend_number); + LOGGER_DEBUG(log, "Sending error: %u to friend: %u", error, friend_number); MSIMessage msg; msg_init(&msg, REQU_POP); @@ -590,7 +590,7 @@ static int send_error(const Logger *log, Tox *tox, uint32_t friend_number, MSIEr static int invoke_callback_inner(const Logger *log, MSICall *call, MSICallbackID id) { MSISession *session = call->session; - LOGGER_DEBUG(log, "invoking callback function: %d", id); + LOGGER_DEBUG(log, "invoking callback function: %u", id); switch (id) { case MSI_ON_INVITE: @@ -612,7 +612,7 @@ static int invoke_callback_inner(const Logger *log, MSICall *call, MSICallbackID return session->capabilities_callback(session->av, call); } - LOGGER_FATAL(log, "invalid callback id: %d", id); + LOGGER_FATAL(log, "invalid callback id: %u", id); return -1; } @@ -803,7 +803,7 @@ static void handle_init(const Logger *log, MSICall *call, const MSIMessage *msg) { assert(call != nullptr); LOGGER_DEBUG(log, - "Session: %p Handling 'init' friend: %d", (void *)call->session, call->friend_number); + "Session: %p Handling 'init' friend: %u", (void *)call->session, call->friend_number); if (!try_handle_init(log, call, msg)) { send_error(log, call->session->tox, call->friend_number, call->error); @@ -815,7 +815,7 @@ static void handle_push(const Logger *log, MSICall *call, const MSIMessage *msg) { assert(call != nullptr); - LOGGER_DEBUG(log, "Session: %p Handling 'push' friend: %d", (void *)call->session, + LOGGER_DEBUG(log, "Session: %p Handling 'push' friend: %u", (void *)call->session, call->friend_number); if (!msg->capabilities.exists) { @@ -871,13 +871,13 @@ static void handle_pop(const Logger *log, MSICall *call, const MSIMessage *msg) { assert(call != nullptr); - LOGGER_DEBUG(log, "Session: %p Handling 'pop', friend id: %d", (void *)call->session, + LOGGER_DEBUG(log, "Session: %p Handling 'pop', friend id: %u", (void *)call->session, call->friend_number); /* callback errors are ignored */ if (msg->error.exists) { - LOGGER_WARNING(log, "Friend detected an error: %d", msg->error.value); + LOGGER_WARNING(log, "Friend detected an error: %u", msg->error.value); call->error = msg->error.value; invoke_callback(log, call, MSI_ON_ERROR); } else { diff --git a/external/toxcore/c-toxcore/toxav/rtp.c b/external/toxcore/c-toxcore/toxav/rtp.c index c520f58..6fdde91 100644 --- a/external/toxcore/c-toxcore/toxav/rtp.c +++ b/external/toxcore/c-toxcore/toxav/rtp.c @@ -308,7 +308,7 @@ static void update_bwc_values(RTPSession *session, const struct RTPMessage *msg) bwc_add_recv(session->bwc, data_length_full); if (received_length_full < data_length_full) { - LOGGER_DEBUG(session->log, "BWC: full length=%u received length=%d", data_length_full, received_length_full); + LOGGER_DEBUG(session->log, "BWC: full length=%u received length=%u", data_length_full, received_length_full); bwc_add_lost(session->bwc, data_length_full - received_length_full); } } diff --git a/external/toxcore/c-toxcore/toxav/rtp.h b/external/toxcore/c-toxcore/toxav/rtp.h index aba31b5..9dd623a 100644 --- a/external/toxcore/c-toxcore/toxav/rtp.h +++ b/external/toxcore/c-toxcore/toxav/rtp.h @@ -78,9 +78,9 @@ struct RTPHeader { uint64_t flags; /** - * The full 32 bit data offset of the current data chunk. The @ref - * offset_lower data member contains the lower 16 bits of this value. For - * frames smaller than 64KiB, @ref offset_full and @ref offset_lower are + * The full 32 bit data offset of the current data chunk. The + * @ref offset_lower data member contains the lower 16 bits of this value. + * For frames smaller than 64KiB, @ref offset_full and @ref offset_lower are * equal. */ uint32_t offset_full; diff --git a/external/toxcore/c-toxcore/toxav/toxav.c b/external/toxcore/c-toxcore/toxav/toxav.c index 50eb47f..d11d96c 100644 --- a/external/toxcore/c-toxcore/toxav/toxav.c +++ b/external/toxcore/c-toxcore/toxav/toxav.c @@ -737,10 +737,10 @@ bool toxav_audio_set_bit_rate(ToxAV *av, uint32_t friend_number, uint32_t bit_ra goto RETURN; } - LOGGER_DEBUG(av->log, "Setting new audio bitrate to: %d", bit_rate); + LOGGER_DEBUG(av->log, "Setting new audio bitrate to: %u", bit_rate); if (call->audio_bit_rate == bit_rate) { - LOGGER_DEBUG(av->log, "Audio bitrate already set to: %d", bit_rate); + LOGGER_DEBUG(av->log, "Audio bitrate already set to: %u", bit_rate); } else if (bit_rate == 0) { LOGGER_DEBUG(av->log, "Turned off audio sending"); @@ -768,7 +768,7 @@ bool toxav_audio_set_bit_rate(ToxAV *av, uint32_t friend_number, uint32_t bit_ra goto RETURN; } } else { - LOGGER_DEBUG(av->log, "Set new audio bit rate %d", bit_rate); + LOGGER_DEBUG(av->log, "Set new audio bit rate %u", bit_rate); } call->audio_bit_rate = bit_rate; @@ -810,10 +810,10 @@ bool toxav_video_set_bit_rate(ToxAV *av, uint32_t friend_number, uint32_t bit_ra goto RETURN; } - LOGGER_DEBUG(av->log, "Setting new video bitrate to: %d", bit_rate); + LOGGER_DEBUG(av->log, "Setting new video bitrate to: %u", bit_rate); if (call->video_bit_rate == bit_rate) { - LOGGER_DEBUG(av->log, "Video bitrate already set to: %d", bit_rate); + LOGGER_DEBUG(av->log, "Video bitrate already set to: %u", bit_rate); } else if (bit_rate == 0) { LOGGER_DEBUG(av->log, "Turned off video sending"); @@ -841,7 +841,7 @@ bool toxav_video_set_bit_rate(ToxAV *av, uint32_t friend_number, uint32_t bit_ra goto RETURN; } } else { - LOGGER_DEBUG(av->log, "Set new video bit rate %d", bit_rate); + LOGGER_DEBUG(av->log, "Set new video bit rate %u", bit_rate); } call->video_bit_rate = bit_rate; @@ -1048,13 +1048,13 @@ bool toxav_video_send_frame(ToxAV *av, uint32_t friend_number, uint16_t width, u if (call->video_rtp->ssrc < VIDEO_SEND_X_KEYFRAMES_FIRST) { // Key frame flag for first frames vpx_encode_flags = VPX_EFLAG_FORCE_KF; - LOGGER_DEBUG(av->log, "I_FRAME_FLAG:%d only-i-frame mode", call->video_rtp->ssrc); + LOGGER_DEBUG(av->log, "I_FRAME_FLAG:%u only-i-frame mode", call->video_rtp->ssrc); ++call->video_rtp->ssrc; } else if (call->video_rtp->ssrc == VIDEO_SEND_X_KEYFRAMES_FIRST) { // normal keyframe placement vpx_encode_flags = 0; - LOGGER_DEBUG(av->log, "I_FRAME_FLAG:%d normal mode", call->video_rtp->ssrc); + LOGGER_DEBUG(av->log, "I_FRAME_FLAG:%u normal mode", call->video_rtp->ssrc); ++call->video_rtp->ssrc; } @@ -1083,11 +1083,8 @@ bool toxav_video_send_frame(ToxAV *av, uint32_t friend_number, uint16_t width, u memcpy(img.planes[VPX_PLANE_V], v, (width / 2) * (height / 2)); } - // TODO(zoff99): don't hardcode this, let the application choose it - const unsigned long deadline = VPX_DL_REALTIME; - const vpx_codec_err_t vrc = vpx_codec_encode(call->video->encoder, &img, - call->video->frame_counter, 1, vpx_encode_flags, deadline); + call->video->frame_counter, 1, vpx_encode_flags, VPX_DL_REALTIME); vpx_img_free(&img); diff --git a/external/toxcore/c-toxcore/toxav/toxav_hacks.h b/external/toxcore/c-toxcore/toxav/toxav_hacks.h index 7b38143..84819be 100644 --- a/external/toxcore/c-toxcore/toxav/toxav_hacks.h +++ b/external/toxcore/c-toxcore/toxav/toxav_hacks.h @@ -14,22 +14,16 @@ typedef struct ToxAVCall ToxAVCall; #endif /* TOXAV_CALL_DEFINED */ -non_null() -ToxAVCall *call_get(ToxAV *av, uint32_t friend_number); +ToxAVCall *_Nullable call_get(ToxAV *_Nonnull av, uint32_t friend_number); -non_null() -RTPSession *rtp_session_get(ToxAVCall *call, int payload_type); +RTPSession *_Nullable rtp_session_get(ToxAVCall *_Nonnull call, int payload_type); -non_null() -MSISession *tox_av_msi_get(const ToxAV *av); +MSISession *_Nullable tox_av_msi_get(const ToxAV *_Nonnull av); -non_null() -BWController *bwc_controller_get(const ToxAVCall *call); +BWController *_Nullable bwc_controller_get(const ToxAVCall *_Nonnull call); -non_null() -Mono_Time *toxav_get_av_mono_time(const ToxAV *av); +Mono_Time *_Nullable toxav_get_av_mono_time(const ToxAV *_Nonnull av); -non_null() -const Logger *toxav_get_logger(const ToxAV *av); +const Logger *_Nonnull toxav_get_logger(const ToxAV *_Nonnull av); #endif /* C_TOXCORE_TOXAV_HACKS_H */ diff --git a/external/toxcore/c-toxcore/toxav/video.c b/external/toxcore/c-toxcore/toxav/video.c index 7d0c12e..5f0ead6 100644 --- a/external/toxcore/c-toxcore/toxav/video.c +++ b/external/toxcore/c-toxcore/toxav/video.c @@ -91,10 +91,10 @@ static void vc_init_encoder_cfg(const Logger *log, vpx_codec_enc_cfg_t *cfg, int */ if (kf_max_dist > 1) { cfg->kf_max_dist = kf_max_dist; // a full frame every x frames minimum (can be more often, codec decides automatically) - LOGGER_DEBUG(log, "kf_max_dist=%d (1)", cfg->kf_max_dist); + LOGGER_DEBUG(log, "kf_max_dist=%u (1)", cfg->kf_max_dist); } else { cfg->kf_max_dist = VPX_MAX_DIST_START; - LOGGER_DEBUG(log, "kf_max_dist=%d (2)", cfg->kf_max_dist); + LOGGER_DEBUG(log, "kf_max_dist=%u (2)", cfg->kf_max_dist); } cfg->g_threads = VPX_MAX_ENCODER_THREADS; // Maximum number of threads to use @@ -213,7 +213,7 @@ VCSession *vc_new(const Logger *log, const Mono_Time *mono_time, ToxAV *av, uint } /* - * VPX_CTRL_USE_TYPE(VP8E_SET_NOISE_SENSITIVITY, unsigned int) + * VPX_CTRL_USE_TYPE(VP8E_SET_NOISE_SENSITIVITY, unsigned int) * control function to set noise sensitivity * 0: off, 1: OnYOnly, 2: OnYUV, 3: OnYUVAggressive, 4: Adaptive */ diff --git a/external/toxcore/c-toxcore/toxcore/DHT.c b/external/toxcore/c-toxcore/toxcore/DHT.c index 0dc4900..025de96 100644 --- a/external/toxcore/c-toxcore/toxcore/DHT.c +++ b/external/toxcore/c-toxcore/toxcore/DHT.c @@ -194,8 +194,7 @@ const uint8_t *dht_get_friend_public_key(const DHT *dht, uint32_t friend_num) return dht->friends_list[friend_num].public_key; } -non_null() -static bool assoc_timeout(uint64_t cur_time, const IPPTsPng *assoc) +static bool assoc_timeout(uint64_t cur_time, const IPPTsPng *_Nonnull assoc) { return (assoc->timestamp + BAD_NODE_TIMEOUT) <= cur_time; } @@ -204,8 +203,7 @@ static bool assoc_timeout(uint64_t cur_time, const IPPTsPng *assoc) * * If the ip_port is already IPv4 this function returns a copy of the original ip_port. */ -non_null() -static IP_Port ip_port_normalize(const IP_Port *ip_port) +static IP_Port ip_port_normalize(const IP_Port *_Nonnull ip_port) { IP_Port res = *ip_port; @@ -404,8 +402,7 @@ int dht_create_packet(const Memory *mem, const Random *rng, * * @retval true on success. */ -non_null() -static bool bin_pack_node_handler(const void *arr, uint32_t index, const Logger *logger, Bin_Pack *bp) +static bool bin_pack_node_handler(const void *_Nonnull arr, uint32_t index, const Logger *_Nonnull logger, Bin_Pack *_Nonnull bp) { const Node_format *nodes = (const Node_format *)arr; return bin_pack_ip_port(bp, logger, &nodes[index].ip_port) @@ -465,11 +462,9 @@ int unpack_nodes(Node_format *nodes, uint16_t max_num_nodes, uint16_t *processed * * @return index or UINT32_MAX if not found. */ -non_null(3) nullable(1) -static uint32_t index_of_client_pk(const Client_data *array, uint32_t size, const uint8_t *pk) +static uint32_t index_of_client_pk(const Client_data *_Nullable array, uint32_t size, const uint8_t *_Nonnull pk) { assert(size == 0 || array != nullptr); - for (uint32_t i = 0; i < size; ++i) { if (pk_equal(array[i].public_key, pk)) { return i; @@ -479,11 +474,9 @@ static uint32_t index_of_client_pk(const Client_data *array, uint32_t size, cons return UINT32_MAX; } -non_null(3) nullable(1) -static uint32_t index_of_friend_pk(const DHT_Friend *array, uint32_t size, const uint8_t *pk) +static uint32_t index_of_friend_pk(const DHT_Friend *_Nullable array, uint32_t size, const uint8_t *_Nonnull pk) { assert(size == 0 || array != nullptr); - for (uint32_t i = 0; i < size; ++i) { if (pk_equal(array[i].public_key, pk)) { return i; @@ -493,11 +486,9 @@ static uint32_t index_of_friend_pk(const DHT_Friend *array, uint32_t size, const return UINT32_MAX; } -non_null(3) nullable(1) -static uint32_t index_of_node_pk(const Node_format *array, uint32_t size, const uint8_t *pk) +static uint32_t index_of_node_pk(const Node_format *_Nullable array, uint32_t size, const uint8_t *_Nonnull pk) { assert(size == 0 || array != nullptr); - for (uint32_t i = 0; i < size; ++i) { if (pk_equal(array[i].public_key, pk)) { return i; @@ -511,11 +502,9 @@ static uint32_t index_of_node_pk(const Node_format *array, uint32_t size, const * * @return index or UINT32_MAX if not found. */ -non_null(3) nullable(1) -static uint32_t index_of_client_ip_port(const Client_data *array, uint32_t size, const IP_Port *ip_port) +static uint32_t index_of_client_ip_port(const Client_data *_Nullable array, uint32_t size, const IP_Port *_Nonnull ip_port) { assert(size == 0 || array != nullptr); - for (uint32_t i = 0; i < size; ++i) { if ((net_family_is_ipv4(ip_port->ip.family) && ipport_equal(&array[i].assoc4.ip_port, ip_port)) || (net_family_is_ipv6(ip_port->ip.family) && ipport_equal(&array[i].assoc6.ip_port, ip_port))) { @@ -527,9 +516,7 @@ static uint32_t index_of_client_ip_port(const Client_data *array, uint32_t size, } /** Update ip_port of client if it's needed. */ -non_null() -static void update_client(const Logger *log, const Mono_Time *mono_time, int index, Client_data *client, - const IP_Port *ip_port) +static void update_client(const Logger *_Nonnull log, const Mono_Time *_Nonnull mono_time, int index, Client_data *_Nonnull client, const IP_Port *_Nonnull ip_port) { IPPTsPng *assoc; int ip_version; @@ -548,7 +535,7 @@ static void update_client(const Logger *log, const Mono_Time *mono_time, int ind Ip_Ntoa ip_str_from; Ip_Ntoa ip_str_to; LOGGER_TRACE(log, "coipil[%u]: switching ipv%d from %s:%u to %s:%u", - index, ip_version, + (unsigned int)index, ip_version, net_ip_ntoa(&assoc->ip_port.ip, &ip_str_from), net_ntohs(assoc->ip_port.port), net_ip_ntoa(&ip_port->ip, &ip_str_to), @@ -569,9 +556,8 @@ static void update_client(const Logger *log, const Mono_Time *mono_time, int ind * If the id is already in the list with a different ip_port, update it. * TODO(irungentoo): Maybe optimize this. */ -non_null() -static bool client_or_ip_port_in_list(const Logger *log, const Mono_Time *mono_time, Client_data *list, uint16_t length, - const uint8_t *public_key, const IP_Port *ip_port) +static bool client_or_ip_port_in_list(const Logger *_Nonnull log, const Mono_Time *_Nonnull mono_time, Client_data *_Nonnull list, uint16_t length, const uint8_t *_Nonnull public_key, + const IP_Port *_Nonnull ip_port) { const uint64_t temp_time = mono_time_get(mono_time); uint32_t index = index_of_client_pk(list, length, public_key); @@ -646,12 +632,8 @@ bool add_to_list( /** * helper for `get_close_nodes()`. argument list is a monster :D */ -non_null() -static void get_close_nodes_inner( - uint64_t cur_time, const uint8_t *public_key, - Node_format *nodes_list, uint32_t *num_nodes_ptr, - Family sa_family, const Client_data *client_list, uint32_t client_list_length, - bool is_lan, bool want_announce) +static void get_close_nodes_inner(uint64_t cur_time, const uint8_t *_Nonnull public_key, Node_format *_Nonnull nodes_list, uint32_t *_Nonnull num_nodes_ptr, Family sa_family, + const Client_data *_Nonnull client_list, uint32_t client_list_length, bool is_lan, bool want_announce) { if (!net_family_is_ipv4(sa_family) && !net_family_is_ipv6(sa_family) && !net_family_is_unspec(sa_family)) { return; @@ -717,12 +699,8 @@ static void get_close_nodes_inner( * * want_announce: return only nodes which implement the dht announcements protocol. */ -non_null() -static int get_somewhat_close_nodes( - uint64_t cur_time, const uint8_t *public_key, Node_format nodes_list[MAX_SENT_NODES], - Family sa_family, const Client_data *close_clientlist, - const DHT_Friend *friends_list, uint16_t friends_list_size, - bool is_lan, bool want_announce) +static int get_somewhat_close_nodes(uint64_t cur_time, const uint8_t *_Nonnull public_key, Node_format nodes_list[_Nonnull MAX_SENT_NODES], Family sa_family, + const Client_data *_Nonnull close_clientlist, const DHT_Friend *_Nonnull friends_list, uint16_t friends_list_size, bool is_lan, bool want_announce) { for (uint16_t i = 0; i < MAX_SENT_NODES; ++i) { nodes_list[i] = empty_node_format; @@ -761,8 +739,7 @@ int get_close_nodes( } #ifdef CHECK_ANNOUNCE_NODE -non_null() -static void set_announce_node_in_list(Client_data *list, uint32_t list_len, const uint8_t *public_key) +static void set_announce_node_in_list(Client_data *_Nonnull list, uint32_t list_len, const uint8_t *_Nonnull public_key) { const uint32_t index = index_of_client_pk(list, list_len, public_key); @@ -787,8 +764,7 @@ void set_announce_node(DHT *dht, const uint8_t *public_key) } /** @brief Send data search request, searching for a random key. */ -non_null() -static bool send_announce_ping(DHT *dht, const uint8_t *public_key, const IP_Port *ip_port) +static bool send_announce_ping(DHT *_Nonnull dht, const uint8_t *_Nonnull public_key, const IP_Port *_Nonnull ip_port) { uint8_t plain[CRYPTO_PUBLIC_KEY_SIZE + sizeof(uint64_t)]; @@ -815,13 +791,11 @@ static bool send_announce_ping(DHT *dht, const uint8_t *public_key, const IP_Por } /** @brief If the response is valid, set the sender as an announce node. */ -non_null(1, 2, 3) nullable(5) -static int handle_data_search_response(void *object, const IP_Port *source, - const uint8_t *packet, uint16_t length, - void *userdata) +static int handle_data_search_response(void *_Nonnull object, const IP_Port *_Nonnull source, + const uint8_t *_Nonnull packet, uint16_t length, + void *_Nullable userdata) { DHT *dht = (DHT *) object; - const int32_t plain_len = (int32_t)length - (1 + CRYPTO_PUBLIC_KEY_SIZE + CRYPTO_NONCE_SIZE + CRYPTO_MAC_SIZE); if (plain_len < (int32_t)(CRYPTO_PUBLIC_KEY_SIZE + sizeof(uint64_t))) { @@ -867,9 +841,7 @@ static int handle_data_search_response(void *object, const IP_Port *source, * return false if node can't be stored. * return true if it can. */ -non_null() -static bool store_node_ok(const Client_data *client, uint64_t cur_time, const uint8_t *public_key, - const uint8_t *comp_public_key) +static bool store_node_ok(const Client_data *_Nonnull client, uint64_t cur_time, const uint8_t *_Nonnull public_key, const uint8_t *_Nonnull comp_public_key) { return (assoc_timeout(cur_time, &client->assoc4) && assoc_timeout(cur_time, &client->assoc6)) @@ -882,8 +854,7 @@ typedef struct Client_data_Cmp { const uint8_t *comp_public_key; } Client_data_Cmp; -non_null() -static int client_data_cmp(const Client_data_Cmp *cmp, const Client_data *entry1, const Client_data *entry2) +static int client_data_cmp(const Client_data_Cmp *_Nonnull cmp, const Client_data *_Nonnull entry1, const Client_data *_Nonnull entry2) { const bool t1 = assoc_timeout(cmp->cur_time, &entry1->assoc4) && assoc_timeout(cmp->cur_time, &entry1->assoc6); const bool t2 = assoc_timeout(cmp->cur_time, &entry2->assoc4) && assoc_timeout(cmp->cur_time, &entry2->assoc6); @@ -913,8 +884,7 @@ static int client_data_cmp(const Client_data_Cmp *cmp, const Client_data *entry1 return 0; } -non_null() -static bool client_data_less_handler(const void *object, const void *a, const void *b) +static bool client_data_less_handler(const void *_Nonnull object, const void *_Nonnull a, const void *_Nonnull b) { const Client_data_Cmp *cmp = (const Client_data_Cmp *)object; const Client_data *entry1 = (const Client_data *)a; @@ -923,30 +893,26 @@ static bool client_data_less_handler(const void *object, const void *a, const vo return client_data_cmp(cmp, entry1, entry2) < 0; } -non_null() -static const void *client_data_get_handler(const void *arr, uint32_t index) +static const void *client_data_get_handler(const void *_Nonnull arr, uint32_t index) { const Client_data *entries = (const Client_data *)arr; return &entries[index]; } -non_null() -static void client_data_set_handler(void *arr, uint32_t index, const void *val) +static void client_data_set_handler(void *_Nonnull arr, uint32_t index, const void *_Nonnull val) { Client_data *entries = (Client_data *)arr; const Client_data *entry = (const Client_data *)val; entries[index] = *entry; } -non_null() -static void *client_data_subarr_handler(void *arr, uint32_t index, uint32_t size) +static void *client_data_subarr_handler(void *_Nonnull arr, uint32_t index, uint32_t size) { Client_data *entries = (Client_data *)arr; return &entries[index]; } -non_null() -static void *client_data_alloc_handler(const void *object, uint32_t size) +static void *client_data_alloc_handler(const void *_Nonnull object, uint32_t size) { const Client_data_Cmp *cmp = (const Client_data_Cmp *)object; Client_data *tmp = (Client_data *)mem_valloc(cmp->mem, size, sizeof(Client_data)); @@ -958,8 +924,7 @@ static void *client_data_alloc_handler(const void *object, uint32_t size) return tmp; } -non_null() -static void client_data_delete_handler(const void *object, void *arr, uint32_t size) +static void client_data_delete_handler(const void *_Nonnull object, void *_Nonnull arr, uint32_t size) { const Client_data_Cmp *cmp = (const Client_data_Cmp *)object; mem_delete(cmp->mem, arr); @@ -974,9 +939,7 @@ static const Sort_Funcs client_data_cmp_funcs = { client_data_delete_handler, }; -non_null() -static void sort_client_list(const Memory *mem, Client_data *list, uint64_t cur_time, unsigned int length, - const uint8_t *comp_public_key) +static void sort_client_list(const Memory *_Nonnull mem, Client_data *_Nonnull list, uint64_t cur_time, unsigned int length, const uint8_t *_Nonnull comp_public_key) { // Pass comp_public_key to merge_sort with each Client_data entry, so the // comparison function can use it as the base of comparison. @@ -989,8 +952,7 @@ static void sort_client_list(const Memory *mem, Client_data *list, uint64_t cur_ merge_sort(list, length, &cmp, &client_data_cmp_funcs); } -non_null() -static void update_client_with_reset(const Mono_Time *mono_time, Client_data *client, const IP_Port *ip_port) +static void update_client_with_reset(const Mono_Time *_Nonnull mono_time, Client_data *_Nonnull client, const IP_Port *_Nonnull ip_port) { IPPTsPng *ipptp_write = nullptr; IPPTsPng *ipptp_clear = nullptr; @@ -1031,13 +993,8 @@ static void update_client_with_reset(const Mono_Time *mono_time, Client_data *cl * * @return true when the item was stored, false otherwise */ -non_null() -static bool replace_all(const DHT *dht, - Client_data *list, - uint16_t length, - const uint8_t *public_key, - const IP_Port *ip_port, - const uint8_t *comp_public_key) +static bool replace_all(const DHT *_Nonnull dht, Client_data *_Nonnull list, uint16_t length, const uint8_t *_Nonnull public_key, const IP_Port *_Nonnull ip_port, + const uint8_t *_Nonnull comp_public_key) { if (!net_family_is_ipv4(ip_port->ip.family) && !net_family_is_ipv6(ip_port->ip.family)) { return false; @@ -1064,8 +1021,7 @@ static bool replace_all(const DHT *dht, * return false on failure. * return true on success. */ -non_null() -static bool add_to_close(DHT *dht, const uint8_t *public_key, const IP_Port *ip_port, bool simulate) +static bool add_to_close(DHT *_Nonnull dht, const uint8_t *_Nonnull public_key, const IP_Port *_Nonnull ip_port, bool simulate) { unsigned int index = bit_by_bit_cmp(public_key, dht->self_public_key); @@ -1105,9 +1061,7 @@ bool node_addable_to_close_list(DHT *dht, const uint8_t *public_key, const IP_Po return add_to_close(dht, public_key, ip_port, true); } -non_null() -static bool is_pk_in_client_list(const Client_data *list, unsigned int client_list_length, uint64_t cur_time, - const uint8_t *public_key, const IP_Port *ip_port) +static bool is_pk_in_client_list(const Client_data *_Nonnull list, unsigned int client_list_length, uint64_t cur_time, const uint8_t *_Nonnull public_key, const IP_Port *_Nonnull ip_port) { const uint32_t index = index_of_client_pk(list, client_list_length, public_key); @@ -1122,8 +1076,7 @@ static bool is_pk_in_client_list(const Client_data *list, unsigned int client_li return !assoc_timeout(cur_time, assoc); } -non_null() -static bool is_pk_in_close_list(const DHT *dht, const uint8_t *public_key, const IP_Port *ip_port) +static bool is_pk_in_close_list(const DHT *_Nonnull dht, const uint8_t *_Nonnull public_key, const IP_Port *_Nonnull ip_port) { unsigned int index = bit_by_bit_cmp(public_key, dht->self_public_key); @@ -1142,8 +1095,7 @@ static bool is_pk_in_close_list(const DHT *dht, const uint8_t *public_key, const * return false if the node should not be pinged. * return true if it should. */ -non_null() -static bool ping_node_from_nodes_response_ok(DHT *dht, const uint8_t *public_key, const IP_Port *ip_port) +static bool ping_node_from_nodes_response_ok(DHT *_Nonnull dht, const uint8_t *_Nonnull public_key, const IP_Port *_Nonnull ip_port) { bool ret = false; @@ -1260,9 +1212,7 @@ uint32_t addto_lists(DHT *dht, const IP_Port *ip_port, const uint8_t *public_key return used; } -non_null() -static bool update_client_data(const Mono_Time *mono_time, Client_data *array, size_t size, const IP_Port *ip_port, - const uint8_t *pk, bool node_is_self) +static bool update_client_data(const Mono_Time *_Nonnull mono_time, Client_data *_Nonnull array, size_t size, const IP_Port *_Nonnull ip_port, const uint8_t *_Nonnull pk, bool node_is_self) { const uint64_t temp_time = mono_time_get(mono_time); const uint32_t index = index_of_client_pk(array, size, pk); @@ -1293,8 +1243,7 @@ static bool update_client_data(const Mono_Time *mono_time, Client_data *array, s * If public_key is a friend or us, update ret_ip_port * nodepublic_key is the id of the node that sent us this info. */ -non_null() -static void returnedip_ports(DHT *dht, const IP_Port *ip_port, const uint8_t *public_key, const uint8_t *nodepublic_key) +static void returnedip_ports(DHT *_Nonnull dht, const IP_Port *_Nonnull ip_port, const uint8_t *_Nonnull public_key, const uint8_t *_Nonnull nodepublic_key) { const IP_Port ipp_copy = ip_port_normalize(ip_port); @@ -1361,9 +1310,8 @@ bool dht_send_nodes_request(DHT *dht, const IP_Port *ip_port, const uint8_t *pub } /** Send a nodes response */ -non_null() -static int send_nodes_response(const DHT *dht, const IP_Port *ip_port, const uint8_t *public_key, const uint8_t *client_id, - const uint8_t *sendback_data, uint16_t length, const uint8_t *shared_encryption_key) +static int send_nodes_response(const DHT *_Nonnull dht, const IP_Port *_Nonnull ip_port, const uint8_t *_Nonnull public_key, const uint8_t *_Nonnull client_id, + const uint8_t *_Nonnull sendback_data, uint16_t length, const uint8_t *_Nonnull shared_encryption_key) { /* Check if packet is going to be sent to ourself. */ if (pk_equal(public_key, dht->self_public_key)) { @@ -1412,8 +1360,7 @@ static int send_nodes_response(const DHT *dht, const IP_Port *ip_port, const uin #define CRYPTO_NODE_SIZE (CRYPTO_PUBLIC_KEY_SIZE + sizeof(uint64_t)) -non_null() -static int handle_nodes_request(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, void *userdata) +static int handle_nodes_request(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, void *_Nonnull userdata) { DHT *const dht = (DHT *)object; @@ -1448,8 +1395,7 @@ static int handle_nodes_request(void *object, const IP_Port *source, const uint8 } /** Return true if we sent a nodes request packet to the peer associated with the supplied info. */ -non_null() -static bool sent_nodes_request_to_node(DHT *dht, const uint8_t *public_key, const IP_Port *node_ip_port, uint64_t ping_id) +static bool sent_nodes_request_to_node(DHT *_Nonnull dht, const uint8_t *_Nonnull public_key, const IP_Port *_Nonnull node_ip_port, uint64_t ping_id) { uint8_t data[sizeof(Node_format) * 2]; @@ -1466,9 +1412,8 @@ static bool sent_nodes_request_to_node(DHT *dht, const uint8_t *public_key, cons return ipport_equal(&test.ip_port, node_ip_port) && pk_equal(test.public_key, public_key); } -non_null() -static bool handle_nodes_response_core(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, - Node_format *plain_nodes, uint16_t size_plain_nodes, uint32_t *num_nodes_out) +static bool handle_nodes_response_core(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, Node_format *_Nonnull plain_nodes, + uint16_t size_plain_nodes, uint32_t *_Nonnull num_nodes_out) { DHT *const dht = (DHT *)object; const uint32_t cid_size = 1 + CRYPTO_PUBLIC_KEY_SIZE + CRYPTO_NONCE_SIZE + 1 + sizeof(uint64_t) + CRYPTO_MAC_SIZE; @@ -1536,9 +1481,7 @@ static bool handle_nodes_response_core(void *object, const IP_Port *source, cons return true; } -non_null() -static int handle_nodes_response(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, - void *userdata) +static int handle_nodes_response(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, void *_Nonnull userdata) { DHT *const dht = (DHT *)object; Node_format plain_nodes[MAX_SENT_NODES]; @@ -1569,9 +1512,8 @@ static int handle_nodes_response(void *object, const IP_Port *source, const uint /*----------------------------------------------------------------------------------*/ /*------------------------END of packet handling functions--------------------------*/ -non_null(1) nullable(2, 3) -static uint32_t dht_friend_lock(DHT_Friend *const dht_friend, dht_ip_cb *ip_callback, - void *data, int32_t number) +static uint32_t dht_friend_lock(DHT_Friend *_Nonnull dht_friend, dht_ip_cb *_Nullable ip_callback, + void *_Nullable data, int32_t number) { // find first free slot uint8_t lock_num; @@ -1598,8 +1540,7 @@ static uint32_t dht_friend_lock(DHT_Friend *const dht_friend, dht_ip_cb *ip_call return lock_token; } -non_null() -static void dht_friend_unlock(DHT_Friend *const dht_friend, uint32_t lock_token) +static void dht_friend_unlock(DHT_Friend *_Nonnull dht_friend, uint32_t lock_token) { // If this triggers, there was a double free assert((lock_token & dht_friend->lock_flags) > 0); @@ -1736,9 +1677,8 @@ int dht_getfriendip(const DHT *dht, const uint8_t *public_key, IP_Port *ip_port) } /** returns number of nodes not in kill-timeout */ -non_null() -static uint8_t do_ping_and_sendnode_requests(DHT *dht, uint64_t *lastgetnode, const uint8_t *public_key, - Client_data *list, uint32_t list_count, uint32_t *bootstrap_times, bool sortable) +static uint8_t do_ping_and_sendnode_requests(DHT *_Nonnull dht, uint64_t *_Nonnull lastgetnode, const uint8_t *_Nonnull public_key, Client_data *_Nonnull list, uint32_t list_count, + uint32_t *_Nonnull bootstrap_times, bool sortable) { uint8_t not_kill = 0; const uint64_t temp_time = mono_time_get(dht->mono_time); @@ -1822,8 +1762,7 @@ static uint8_t do_ping_and_sendnode_requests(DHT *dht, uint64_t *lastgetnode, co * Send a nodes request every NODES_REQUEST_INTERVAL seconds to a random good * node for each "friend" in our "friends" list. */ -non_null() -static void do_dht_friends(DHT *dht) +static void do_dht_friends(DHT *_Nonnull dht) { for (size_t i = 0; i < dht->num_friends; ++i) { DHT_Friend *const dht_friend = &dht->friends_list[i]; @@ -1843,8 +1782,7 @@ static void do_dht_friends(DHT *dht) * * Send a nodes request every NODES_REQUEST_INTERVAL seconds to a random good node in the list. */ -non_null() -static void do_close(DHT *dht) +static void do_close(DHT *_Nonnull dht) { for (size_t i = 0; i < dht->num_to_bootstrap; ++i) { dht_send_nodes_request(dht, &dht->to_bootstrap[i].ip_port, dht->to_bootstrap[i].public_key, dht->self_public_key); @@ -1950,8 +1888,7 @@ int route_packet(const DHT *dht, const uint8_t *public_key, const uint8_t *packe * @retval 0 if we are connected to friend or if no ips were found. * @retval -1 if no such friend. */ -non_null() -static int friend_iplist(const DHT *dht, IP_Port *ip_portlist, uint16_t friend_num) +static int friend_iplist(const DHT *_Nonnull dht, IP_Port *_Nonnull ip_portlist, uint16_t friend_num) { if (friend_num >= dht->num_friends) { return -1; @@ -2031,7 +1968,7 @@ static int friend_iplist(const DHT *dht, IP_Port *ip_portlist, uint16_t friend_n * @param n A pointer to the number that will be returned from `foreach_ip_port`. * @param userdata The `userdata` pointer passed to `foreach_ip_port`. */ -typedef bool foreach_ip_port_cb(const DHT *dht, const IP_Port *ip_port, uint32_t *n, void *userdata); +typedef bool foreach_ip_port_cb(const DHT *_Nonnull dht, const IP_Port *_Nonnull ip_port, uint32_t *_Nonnull n, void *_Nonnull userdata); /** * Runs a callback on every active connection for a given DHT friend. @@ -2044,9 +1981,7 @@ typedef bool foreach_ip_port_cb(const DHT *dht, const IP_Port *ip_port, uint32_t * @param callback The callback to invoke for each IP/port. * @param userdata Extra pointer passed to the callback. */ -non_null() -static uint32_t foreach_ip_port(const DHT *dht, const DHT_Friend *dht_friend, - foreach_ip_port_cb *callback, void *userdata) +static uint32_t foreach_ip_port(const DHT *_Nonnull dht, const DHT_Friend *_Nonnull dht_friend, foreach_ip_port_cb *_Nonnull callback, void *_Nonnull userdata) { uint32_t n = 0; @@ -2076,8 +2011,7 @@ static uint32_t foreach_ip_port(const DHT *dht, const DHT_Friend *dht_friend, return n; } -non_null() -static bool send_packet_to_friend(const DHT *dht, const IP_Port *ip_port, uint32_t *n, void *userdata) +static bool send_packet_to_friend(const DHT *_Nonnull dht, const IP_Port *_Nonnull ip_port, uint32_t *_Nonnull n, void *_Nonnull userdata) { const Packet *packet = (const Packet *)userdata; const int retval = send_packet(dht->net, ip_port, *packet); @@ -2118,8 +2052,7 @@ uint32_t route_to_friend(const DHT *dht, const uint8_t *friend_id, const Packet return foreach_ip_port(dht, dht_friend, send_packet_to_friend, &packet_userdata); } -non_null() -static bool get_ip_port(const DHT *dht, const IP_Port *ip_port, uint32_t *n, void *userdata) +static bool get_ip_port(const DHT *_Nonnull dht, const IP_Port *_Nonnull ip_port, uint32_t *_Nonnull n, void *_Nonnull userdata) { IP_Port *ip_list = (IP_Port *)userdata; ip_list[*n] = *ip_port; @@ -2131,8 +2064,7 @@ static bool get_ip_port(const DHT *dht, const IP_Port *ip_port, uint32_t *n, voi * * @return number of nodes the packet was sent to. */ -non_null() -static uint32_t routeone_to_friend(const DHT *dht, const uint8_t *friend_id, const Packet *packet) +static uint32_t routeone_to_friend(const DHT *_Nonnull dht, const uint8_t *_Nonnull friend_id, const Packet *_Nonnull packet) { const uint32_t num = index_of_friend_pk(dht->friends_list, dht->num_friends, friend_id); @@ -2163,8 +2095,7 @@ static uint32_t routeone_to_friend(const DHT *dht, const uint8_t *friend_id, con /*----------------------------------------------------------------------------------*/ /*---------------------BEGINNING OF NAT PUNCHING FUNCTIONS--------------------------*/ -non_null() -static int send_nat_ping(const DHT *dht, const uint8_t *public_key, uint64_t ping_id, uint8_t type) +static int send_nat_ping(const DHT *_Nonnull dht, const uint8_t *_Nonnull public_key, uint64_t ping_id, uint8_t type) { uint8_t data[sizeof(uint64_t) + 1]; uint8_t packet_data[MAX_CRYPTO_REQUEST_SIZE]; @@ -2198,9 +2129,8 @@ static int send_nat_ping(const DHT *dht, const uint8_t *public_key, uint64_t pin } /** Handle a received ping request for. */ -non_null() -static int handle_nat_ping(void *object, const IP_Port *source, const uint8_t *source_pubkey, const uint8_t *packet, - uint16_t length, void *userdata) +static int handle_nat_ping(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull source_pubkey, const uint8_t *_Nonnull packet, uint16_t length, + void *_Nonnull userdata) { DHT *const dht = (DHT *)object; @@ -2243,8 +2173,7 @@ static int handle_nat_ping(void *object, const IP_Port *source, const uint8_t *s * * @return ip of 0 if failure. */ -non_null() -static IP nat_commonip(const IP_Port *ip_portlist, uint16_t len, uint16_t min_num) +static IP nat_commonip(const IP_Port *_Nonnull ip_portlist, uint16_t len, uint16_t min_num) { IP zero; ip_reset(&zero); @@ -2276,8 +2205,7 @@ static IP nat_commonip(const IP_Port *ip_portlist, uint16_t len, uint16_t min_nu * * @return number of ports and puts the list of ports in portlist. */ -non_null() -static uint16_t nat_getports(uint16_t *portlist, const IP_Port *ip_portlist, uint16_t len, const IP *ip) +static uint16_t nat_getports(uint16_t *_Nonnull portlist, const IP_Port *_Nonnull ip_portlist, uint16_t len, const IP *_Nonnull ip) { uint16_t num = 0; @@ -2291,8 +2219,7 @@ static uint16_t nat_getports(uint16_t *portlist, const IP_Port *ip_portlist, uin return num; } -non_null() -static void punch_holes(DHT *dht, const IP *ip, const uint16_t *port_list, uint16_t numports, uint16_t friend_num) +static void punch_holes(DHT *_Nonnull dht, const IP *_Nonnull ip, const uint16_t *_Nonnull port_list, uint16_t numports, uint16_t friend_num) { if (!dht->hole_punching_enabled) { return; @@ -2352,8 +2279,7 @@ static void punch_holes(DHT *dht, const IP *ip, const uint16_t *port_list, uint1 ++dht->friends_list[friend_num].nat.tries; } -non_null() -static void do_nat(DHT *dht) +static void do_nat(DHT *_Nonnull dht) { const uint64_t temp_time = mono_time_get(dht->mono_time); @@ -2404,9 +2330,7 @@ static void do_nat(DHT *dht) * * @return the number of nodes. */ -non_null() -static uint16_t list_nodes(const Random *rng, const Client_data *list, size_t length, - uint64_t cur_time, Node_format *nodes, uint16_t max_num) +static uint16_t list_nodes(const Random *_Nonnull rng, const Client_data *_Nonnull list, size_t length, uint64_t cur_time, Node_format *_Nonnull nodes, uint16_t max_num) { if (max_num == 0) { return 0; @@ -2490,9 +2414,7 @@ void cryptopacket_registerhandler(DHT *dht, uint8_t byte, cryptopacket_handler_c dht->cryptopackethandlers[byte].object = object; } -non_null() -static int cryptopacket_handle(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, - void *userdata) +static int cryptopacket_handle(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, void *_Nonnull userdata) { DHT *const dht = (DHT *)object; @@ -2539,12 +2461,10 @@ void dht_callback_nodes_response(DHT *dht, dht_nodes_response_cb *function) dht->nodes_response_callback = function; } -non_null(1, 2, 3) nullable(5) -static int handle_lan_discovery(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, - void *userdata) +static int handle_lan_discovery(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, + void *_Nullable userdata) { DHT *dht = (DHT *)object; - if (!dht->lan_discovery_enabled) { return 1; } @@ -2574,7 +2494,7 @@ DHT *new_dht(const Logger *log, const Memory *mem, const Random *rng, const Netw DHT *const dht = (DHT *)mem_alloc(mem, sizeof(DHT)); if (dht == nullptr) { - LOGGER_ERROR(log, "failed to allocate DHT struct (%ld bytes)", (unsigned long)sizeof(DHT)); + LOGGER_ERROR(log, "failed to allocate DHT struct (%lu bytes)", (unsigned long)sizeof(DHT)); return nullptr; } @@ -2746,7 +2666,7 @@ void dht_save(const DHT *dht, uint8_t *data) Node_format *clients = (Node_format *)mem_valloc(dht->mem, MAX_SAVED_DHT_NODES, sizeof(Node_format)); if (clients == nullptr) { - LOGGER_ERROR(dht->log, "could not allocate %u nodes", MAX_SAVED_DHT_NODES); + LOGGER_ERROR(dht->log, "could not allocate %u nodes", (unsigned int)MAX_SAVED_DHT_NODES); return; } @@ -2826,8 +2746,7 @@ int dht_connect_after_load(DHT *dht) return 0; } -non_null() -static State_Load_Status dht_load_state_callback(void *outer, const uint8_t *data, uint32_t length, uint16_t type) +static State_Load_Status dht_load_state_callback(void *_Nonnull outer, const uint8_t *_Nonnull data, uint32_t length, uint16_t type) { DHT *dht = (DHT *)outer; @@ -2843,7 +2762,7 @@ static State_Load_Status dht_load_state_callback(void *outer, const uint8_t *dat Node_format *nodes = (Node_format *)mem_valloc(dht->mem, MAX_SAVED_DHT_NODES, sizeof(Node_format)); if (nodes == nullptr) { - LOGGER_ERROR(dht->log, "could not allocate %u nodes", MAX_SAVED_DHT_NODES); + LOGGER_ERROR(dht->log, "could not allocate %u nodes", (unsigned int)MAX_SAVED_DHT_NODES); dht->loaded_num_nodes = 0; break; } diff --git a/external/toxcore/c-toxcore/toxcore/DHT.h b/external/toxcore/c-toxcore/toxcore/DHT.h index 16b2933..43ddbad 100644 --- a/external/toxcore/c-toxcore/toxcore/DHT.h +++ b/external/toxcore/c-toxcore/toxcore/DHT.h @@ -98,10 +98,8 @@ extern "C" { * @retval -1 on failure. * @return the length of the created packet on success. */ -non_null() -int create_request(const Memory *mem, const Random *rng, const uint8_t *send_public_key, const uint8_t *send_secret_key, - uint8_t *packet, const uint8_t *recv_public_key, - const uint8_t *data, uint32_t data_length, uint8_t request_id); +int create_request(const Memory *_Nonnull mem, const Random *_Nonnull rng, const uint8_t *_Nonnull send_public_key, const uint8_t *_Nonnull send_secret_key, uint8_t *_Nonnull packet, + const uint8_t *_Nonnull recv_public_key, const uint8_t *_Nonnull data, uint32_t data_length, uint8_t request_id); /** * @brief Decrypts and unpacks a DHT request packet. @@ -125,10 +123,8 @@ int create_request(const Memory *mem, const Random *rng, const uint8_t *send_pub * @retval -1 if not valid request. * @return the length of the unpacked data. */ -non_null() -int handle_request( - const Memory *mem, const uint8_t *self_public_key, const uint8_t *self_secret_key, uint8_t *public_key, uint8_t *data, - uint8_t *request_id, const uint8_t *packet, uint16_t packet_length); +int handle_request(const Memory *_Nonnull mem, const uint8_t *_Nonnull self_public_key, const uint8_t *_Nonnull self_secret_key, uint8_t *_Nonnull public_key, uint8_t *_Nonnull data, + uint8_t *_Nonnull request_id, const uint8_t *_Nonnull packet, uint16_t packet_length); typedef struct IPPTs { IP_Port ip_port; @@ -182,8 +178,8 @@ extern const Node_format empty_node_format; typedef struct DHT_Friend DHT_Friend; -non_null() const uint8_t *dht_friend_public_key(const DHT_Friend *dht_friend); -non_null() const Client_data *dht_friend_client(const DHT_Friend *dht_friend, size_t index); +const uint8_t *_Nonnull dht_friend_public_key(const DHT_Friend *_Nonnull dht_friend); +const Client_data *_Nonnull dht_friend_client(const DHT_Friend *_Nonnull dht_friend, size_t index); /** @return packet size of packed node with ip_family on success. * @retval -1 on failure. @@ -195,20 +191,15 @@ int packed_node_size(Family ip_family); * @return size of packet on success. * @retval -1 on failure. */ -non_null() -int dht_create_packet(const Memory *mem, const Random *rng, - const uint8_t public_key[CRYPTO_PUBLIC_KEY_SIZE], - const uint8_t *shared_key, uint8_t type, - const uint8_t *plain, size_t plain_length, - uint8_t *packet, size_t length); +int dht_create_packet(const Memory *_Nonnull mem, const Random *_Nonnull rng, const uint8_t public_key[_Nonnull CRYPTO_PUBLIC_KEY_SIZE], const uint8_t *_Nonnull shared_key, uint8_t type, + const uint8_t *_Nonnull plain, size_t plain_length, uint8_t *_Nonnull packet, size_t length); /** @brief Pack number of nodes into data of maxlength length. * * @return length of packed nodes on success. * @retval -1 on failure. */ -non_null() -int pack_nodes(const Logger *logger, uint8_t *data, uint16_t length, const Node_format *nodes, uint16_t number); +int pack_nodes(const Logger *_Nonnull logger, uint8_t *_Nonnull data, uint16_t length, const Node_format *_Nonnull nodes, uint16_t number); /** @brief Unpack data of length into nodes of size max_num_nodes. * Put the length of the data processed in processed_data_len. @@ -217,30 +208,28 @@ int pack_nodes(const Logger *logger, uint8_t *data, uint16_t length, const Node_ * @return number of unpacked nodes on success. * @retval -1 on failure. */ -non_null(1, 4) nullable(3) -int unpack_nodes(Node_format *nodes, uint16_t max_num_nodes, uint16_t *processed_data_len, const uint8_t *data, +int unpack_nodes(Node_format *_Nonnull nodes, uint16_t max_num_nodes, uint16_t *_Nullable processed_data_len, const uint8_t *_Nonnull data, uint16_t length, bool tcp_enabled); - /*----------------------------------------------------------------------------------*/ -typedef int cryptopacket_handler_cb(void *object, const IP_Port *source, const uint8_t *source_pubkey, - const uint8_t *packet, uint16_t length, void *userdata); +typedef int cryptopacket_handler_cb(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull source_pubkey, + const uint8_t *_Nonnull packet, uint16_t length, void *_Nullable userdata); typedef struct DHT DHT; -non_null() const uint8_t *dht_get_self_public_key(const DHT *dht); -non_null() const uint8_t *dht_get_self_secret_key(const DHT *dht); -non_null() void dht_set_self_public_key(DHT *dht, const uint8_t *key); -non_null() void dht_set_self_secret_key(DHT *dht, const uint8_t *key); +const uint8_t *_Nonnull dht_get_self_public_key(const DHT *_Nonnull dht); +const uint8_t *_Nonnull dht_get_self_secret_key(const DHT *_Nonnull dht); +void dht_set_self_public_key(DHT *_Nonnull dht, const uint8_t *_Nonnull key); +void dht_set_self_secret_key(DHT *_Nonnull dht, const uint8_t *_Nonnull key); -non_null() Networking_Core *dht_get_net(const DHT *dht); -non_null() struct Ping *dht_get_ping(const DHT *dht); -non_null() const Client_data *dht_get_close_clientlist(const DHT *dht); -non_null() const Client_data *dht_get_close_client(const DHT *dht, uint32_t client_num); -non_null() uint16_t dht_get_num_friends(const DHT *dht); +Networking_Core *_Nonnull dht_get_net(const DHT *_Nonnull dht); +struct Ping *_Nonnull dht_get_ping(const DHT *_Nonnull dht); +const Client_data *_Nonnull dht_get_close_clientlist(const DHT *_Nonnull dht); +const Client_data *_Nonnull dht_get_close_client(const DHT *_Nonnull dht, uint32_t client_num); +uint16_t dht_get_num_friends(const DHT *_Nonnull dht); -non_null() DHT_Friend *dht_get_friend(DHT *dht, uint32_t friend_num); -non_null() const uint8_t *dht_get_friend_public_key(const DHT *dht, uint32_t friend_num); +DHT_Friend *_Nonnull dht_get_friend(DHT *_Nonnull dht, uint32_t friend_num); +const uint8_t *_Nonnull dht_get_friend_public_key(const DHT *_Nonnull dht, uint32_t friend_num); /*----------------------------------------------------------------------------------*/ @@ -248,15 +237,13 @@ non_null() const uint8_t *dht_get_friend_public_key(const DHT *dht, uint32_t fri * Copy shared_key to encrypt/decrypt DHT packet from public_key into shared_key * for packets that we receive. */ -non_null() -const uint8_t *dht_get_shared_key_recv(DHT *dht, const uint8_t *public_key); +const uint8_t *_Nullable dht_get_shared_key_recv(DHT *_Nonnull dht, const uint8_t *_Nonnull public_key); /** * Copy shared_key to encrypt/decrypt DHT packet from public_key into shared_key * for packets that we send. */ -non_null() -const uint8_t *dht_get_shared_key_sent(DHT *dht, const uint8_t *public_key); +const uint8_t *_Nullable dht_get_shared_key_sent(DHT *_Nonnull dht, const uint8_t *_Nonnull public_key); /** * Sends a nodes request to `ip_port` with the public key `public_key` for nodes @@ -264,17 +251,14 @@ const uint8_t *dht_get_shared_key_sent(DHT *dht, const uint8_t *public_key); * * @retval true on success. */ -non_null() -bool dht_send_nodes_request(DHT *dht, const IP_Port *ip_port, const uint8_t *public_key, const uint8_t *client_id); +bool dht_send_nodes_request(DHT *_Nonnull dht, const IP_Port *_Nonnull ip_port, const uint8_t *_Nonnull public_key, const uint8_t *_Nonnull client_id); -typedef void dht_ip_cb(void *object, int32_t number, const IP_Port *ip_port); +typedef void dht_ip_cb(void *_Nullable object, int32_t number, const IP_Port *_Nonnull ip_port); -typedef void dht_nodes_response_cb(const DHT *dht, const Node_format *node, void *user_data); +typedef void dht_nodes_response_cb(const DHT *_Nonnull dht, const Node_format *_Nonnull node, void *_Nullable user_data); /** Sets the callback to be triggered on a nodes response. */ -non_null(1) nullable(2) -void dht_callback_nodes_response(DHT *dht, dht_nodes_response_cb *function); - +void dht_callback_nodes_response(DHT *_Nonnull dht, dht_nodes_response_cb *_Nullable function); /** @brief Add a new friend to the friends list. * @param public_key must be CRYPTO_PUBLIC_KEY_SIZE bytes long. * @@ -289,10 +273,8 @@ void dht_callback_nodes_response(DHT *dht, dht_nodes_response_cb *function); * @retval 0 if success. * @retval -1 if failure (friends list is full). */ -non_null(1, 2, 6) nullable(3, 4) -int dht_addfriend(DHT *dht, const uint8_t *public_key, dht_ip_cb *ip_callback, - void *data, int32_t number, uint32_t *lock_token); - +int dht_addfriend(DHT *_Nonnull dht, const uint8_t *_Nonnull public_key, dht_ip_cb *_Nullable ip_callback, + void *_Nullable data, int32_t number, uint32_t *_Nonnull lock_token); /** @brief Delete a friend from the friends list. * public_key must be CRYPTO_PUBLIC_KEY_SIZE bytes long. * @param dht The DHT object @@ -302,8 +284,7 @@ int dht_addfriend(DHT *dht, const uint8_t *public_key, dht_ip_cb *ip_callback, * @retval 0 if success. * @retval -1 if failure (public_key not in friends list). */ -non_null() -int dht_delfriend(DHT *dht, const uint8_t *public_key, uint32_t lock_token); +int dht_delfriend(DHT *_Nonnull dht, const uint8_t *_Nonnull public_key, uint32_t lock_token); /** @brief Get ip of friend. * @@ -313,8 +294,7 @@ int dht_delfriend(DHT *dht, const uint8_t *public_key, uint32_t lock_token); * @retval 0 if public_key refers to a friend and we failed to find the friend (yet) * @retval 1 if public_key refers to a friend and we found him */ -non_null() -int dht_getfriendip(const DHT *dht, const uint8_t *public_key, IP_Port *ip_port); +int dht_getfriendip(const DHT *_Nonnull dht, const uint8_t *_Nonnull public_key, IP_Port *_Nonnull ip_port); /** @brief Compares pk1 and pk2 with pk. * @@ -322,31 +302,25 @@ int dht_getfriendip(const DHT *dht, const uint8_t *public_key, IP_Port *ip_port) * @retval 1 if pk1 is closer. * @retval 2 if pk2 is closer. */ -non_null() -int id_closest(const uint8_t *pk, const uint8_t *pk1, const uint8_t *pk2); +int id_closest(const uint8_t *_Nonnull pk, const uint8_t *_Nonnull pk1, const uint8_t *_Nonnull pk2); /** Return index of first unequal bit number between public keys pk1 and pk2. */ -non_null() -unsigned int bit_by_bit_cmp(const uint8_t *pk1, const uint8_t *pk2); +unsigned int bit_by_bit_cmp(const uint8_t *_Nonnull pk1, const uint8_t *_Nonnull pk2); /** * Add node to the node list making sure only the nodes closest to cmp_pk are in the list. * * @return true iff the node was added to the list. */ -non_null() -bool add_to_list( - Node_format *nodes_list, uint32_t length, const uint8_t pk[CRYPTO_PUBLIC_KEY_SIZE], - const IP_Port *ip_port, const uint8_t cmp_pk[CRYPTO_PUBLIC_KEY_SIZE]); +bool add_to_list(Node_format *_Nonnull nodes_list, uint32_t length, const uint8_t pk[_Nonnull CRYPTO_PUBLIC_KEY_SIZE], const IP_Port *_Nonnull ip_port, + const uint8_t cmp_pk[_Nonnull CRYPTO_PUBLIC_KEY_SIZE]); /** Return 1 if node can be added to close list, 0 if it can't. */ -non_null() -bool node_addable_to_close_list(DHT *dht, const uint8_t *public_key, const IP_Port *ip_port); +bool node_addable_to_close_list(DHT *_Nonnull dht, const uint8_t *_Nonnull public_key, const IP_Port *_Nonnull ip_port); #ifdef CHECK_ANNOUNCE_NODE /** Set node as announce node. */ -non_null() -void set_announce_node(DHT *dht, const uint8_t *public_key); +void set_announce_node(DHT *_Nonnull dht, const uint8_t *_Nonnull public_key); #endif /* CHECK_ANNOUNCE_NODE */ /** @@ -359,11 +333,7 @@ void set_announce_node(DHT *dht, const uint8_t *public_key); * * @return the number of nodes returned. */ -non_null() -int get_close_nodes( - const DHT *dht, const uint8_t *public_key, - Node_format nodes_list[MAX_SENT_NODES], Family sa_family, - bool is_lan, bool want_announce); +int get_close_nodes(const DHT *_Nonnull dht, const uint8_t *_Nonnull public_key, Node_format nodes_list[_Nonnull MAX_SENT_NODES], Family sa_family, bool is_lan, bool want_announce); /** @brief Put up to max_num nodes in nodes from the random friends. * @@ -372,19 +342,16 @@ int get_close_nodes( * * @return the number of nodes. */ -non_null() -uint16_t randfriends_nodes(const DHT *dht, Node_format *nodes, uint16_t max_num); +uint16_t randfriends_nodes(const DHT *_Nonnull dht, Node_format *_Nonnull nodes, uint16_t max_num); /** @brief Put up to max_num nodes in nodes from the closelist. * * @return the number of nodes. */ -non_null() -uint16_t closelist_nodes(const DHT *dht, Node_format *nodes, uint16_t max_num); +uint16_t closelist_nodes(const DHT *_Nonnull dht, Node_format *_Nonnull nodes, uint16_t max_num); /** Run this function at least a couple times per second (It's the main loop). */ -non_null() -void do_dht(DHT *dht); +void do_dht(DHT *_Nonnull dht); /* * Use these two functions to bootstrap the client. @@ -393,8 +360,7 @@ void do_dht(DHT *dht); * @brief Sends a "nodes request" to the given node with ip, port and public_key * to setup connections */ -non_null() -bool dht_bootstrap(DHT *dht, const IP_Port *ip_port, const uint8_t *public_key); +bool dht_bootstrap(DHT *_Nonnull dht, const IP_Port *_Nonnull ip_port, const uint8_t *_Nonnull public_key); /** @brief Resolves address into an IP address. * @@ -409,17 +375,14 @@ bool dht_bootstrap(DHT *dht, const IP_Port *ip_port, const uint8_t *public_key); * @retval true if the address could be converted into an IP address * @retval false otherwise */ -non_null() -bool dht_bootstrap_from_address(DHT *dht, const char *address, bool ipv6enabled, bool dns_enabled, - uint16_t port, const uint8_t *public_key); +bool dht_bootstrap_from_address(DHT *_Nonnull dht, const char *_Nonnull address, bool ipv6enabled, bool dns_enabled, uint16_t port, const uint8_t *_Nonnull public_key); /** @brief Start sending packets after DHT loaded_friends_list and loaded_clients_list are set. * * @retval 0 if successful * @retval -1 otherwise */ -non_null() -int dht_connect_after_load(DHT *dht); +int dht_connect_after_load(DHT *_Nonnull dht); /* ROUTING FUNCTIONS */ @@ -428,8 +391,7 @@ int dht_connect_after_load(DHT *dht); * @return number of bytes sent. * @retval -1 if failure. */ -non_null() -int route_packet(const DHT *dht, const uint8_t *public_key, const uint8_t *packet, uint16_t length); +int route_packet(const DHT *_Nonnull dht, const uint8_t *_Nonnull public_key, const uint8_t *_Nonnull packet, uint16_t length); /** * Send the following packet to everyone who tells us they are connected to friend_id. @@ -437,52 +399,41 @@ int route_packet(const DHT *dht, const uint8_t *public_key, const uint8_t *packe * @return ip for friend. * @return number of nodes the packet was sent to. (Only works if more than (MAX_FRIEND_CLIENTS / 4). */ -non_null() -uint32_t route_to_friend(const DHT *dht, const uint8_t *friend_id, const Packet *packet); +uint32_t route_to_friend(const DHT *_Nonnull dht, const uint8_t *_Nonnull friend_id, const Packet *_Nonnull packet); /** Function to handle crypto packets. */ -non_null(1) nullable(3, 4) -void cryptopacket_registerhandler(DHT *dht, uint8_t byte, cryptopacket_handler_cb *cb, void *object); - +void cryptopacket_registerhandler(DHT *_Nonnull dht, uint8_t byte, cryptopacket_handler_cb *_Nullable cb, void *_Nullable object); /* SAVE/LOAD functions */ /** Get the size of the DHT (for saving). */ -non_null() -uint32_t dht_size(const DHT *dht); +uint32_t dht_size(const DHT *_Nonnull dht); /** Save the DHT in data where data is an array of size `dht_size()`. */ -non_null() -void dht_save(const DHT *dht, uint8_t *data); +void dht_save(const DHT *_Nonnull dht, uint8_t *_Nonnull data); /** @brief Load the DHT from data of size size. * * @retval -1 if failure. * @retval 0 if success. */ -non_null() -int dht_load(DHT *dht, const uint8_t *data, uint32_t length); +int dht_load(DHT *_Nonnull dht, const uint8_t *_Nonnull data, uint32_t length); /** Initialize DHT. */ -non_null() -DHT *new_dht(const Logger *log, const Memory *mem, const Random *rng, const Network *ns, - Mono_Time *mono_time, Networking_Core *net, bool hole_punching_enabled, bool lan_discovery_enabled); - -nullable(1) -void kill_dht(DHT *dht); +DHT *_Nullable new_dht(const Logger *_Nonnull log, const Memory *_Nonnull mem, const Random *_Nonnull rng, const Network *_Nonnull ns, Mono_Time *_Nonnull mono_time, Networking_Core *_Nonnull net, + bool hole_punching_enabled, bool lan_discovery_enabled); +void kill_dht(DHT *_Nullable dht); /** * @retval false if we are not connected to the DHT. * @retval true if we are. */ -non_null() -bool dht_isconnected(const DHT *dht); +bool dht_isconnected(const DHT *_Nonnull dht); /** * @retval false if we are not connected or only connected to lan peers with the DHT. * @retval true if we are. */ -non_null() -bool dht_non_lan_connected(const DHT *dht); +bool dht_non_lan_connected(const DHT *_Nonnull dht); /** * This function returns the ratio of close dht nodes that are known to support announce/store. @@ -490,8 +441,7 @@ bool dht_non_lan_connected(const DHT *dht); * * @return number */ -non_null() -uint16_t dht_get_num_closelist(const DHT *dht); +uint16_t dht_get_num_closelist(const DHT *_Nonnull dht); /** * This function returns the number of DHT nodes in the closelist, @@ -499,16 +449,14 @@ uint16_t dht_get_num_closelist(const DHT *dht); * * @return number */ -non_null() -uint16_t dht_get_num_closelist_announce_capable(const DHT *dht); +uint16_t dht_get_num_closelist_announce_capable(const DHT *_Nonnull dht); /** @brief Attempt to add client with ip_port and public_key to the friends client list * and close_clientlist. * * @return 1+ if the item is used in any list, 0 else */ -non_null() -uint32_t addto_lists(DHT *dht, const IP_Port *ip_port, const uint8_t *public_key); +uint32_t addto_lists(DHT *_Nonnull dht, const IP_Port *_Nonnull ip_port, const uint8_t *_Nonnull public_key); /** @brief Copies our own ip_port structure to `dest`. * @@ -520,8 +468,7 @@ uint32_t addto_lists(DHT *dht, const IP_Port *ip_port, const uint8_t *public_key * @retval 1 if IP is a WAN address. * @retval 2 if IP is a LAN address. */ -non_null() -unsigned int ipport_self_copy(const DHT *dht, IP_Port *dest); +unsigned int ipport_self_copy(const DHT *_Nonnull dht, IP_Port *_Nonnull dest); #ifdef __cplusplus } /* extern "C" */ diff --git a/external/toxcore/c-toxcore/toxcore/LAN_discovery.c b/external/toxcore/c-toxcore/toxcore/LAN_discovery.c index fcc3d47..39eb36b 100644 --- a/external/toxcore/c-toxcore/toxcore/LAN_discovery.c +++ b/external/toxcore/c-toxcore/toxcore/LAN_discovery.c @@ -53,8 +53,7 @@ struct Broadcast_Info { #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -non_null() -static Broadcast_Info *fetch_broadcast_info(const Memory *mem, const Network *ns) +static Broadcast_Info *fetch_broadcast_info(const Memory *_Nonnull mem, const Network *_Nonnull ns) { Broadcast_Info *broadcast = (Broadcast_Info *)mem_alloc(mem, sizeof(Broadcast_Info)); @@ -124,11 +123,9 @@ static Broadcast_Info *fetch_broadcast_info(const Memory *mem, const Network *ns #elif !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) && (defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__)) -non_null() -static bool ip4_is_local(const IP4 *ip4); +static bool ip4_is_local(const IP4 *_Nonnull ip4); -non_null() -static Broadcast_Info *fetch_broadcast_info(const Memory *mem, const Network *ns) +static Broadcast_Info *fetch_broadcast_info(const Memory *_Nonnull mem, const Network *_Nonnull ns) { Broadcast_Info *broadcast = (Broadcast_Info *)mem_alloc(mem, sizeof(Broadcast_Info)); @@ -222,8 +219,7 @@ static Broadcast_Info *fetch_broadcast_info(const Memory *mem, const Network *ns #else // TODO(irungentoo): Other platforms? -non_null() -static Broadcast_Info *fetch_broadcast_info(const Memory *mem, const Network *ns) +static Broadcast_Info *fetch_broadcast_info(const Memory *_Nonnull mem, const Network *_Nonnull ns) { Broadcast_Info *broadcast = (Broadcast_Info *)mem_alloc(mem, sizeof(Broadcast_Info)); @@ -243,9 +239,7 @@ static Broadcast_Info *fetch_broadcast_info(const Memory *mem, const Network *ns * @retval true if sent to at least one broadcast target. * @retval false on failure to find any valid broadcast target. */ -non_null() -static bool send_broadcasts(const Networking_Core *net, const Broadcast_Info *broadcast, uint16_t port, - const uint8_t *data, uint16_t length) +static bool send_broadcasts(const Networking_Core *_Nonnull net, const Broadcast_Info *_Nonnull broadcast, uint16_t port, const uint8_t *_Nonnull data, uint16_t length) { if (broadcast->count == 0) { return false; @@ -288,8 +282,7 @@ static IP broadcast_ip(Family family_socket, Family family_broadcast) return ip; } -non_null() -static bool ip4_is_local(const IP4 *ip4) +static bool ip4_is_local(const IP4 *_Nonnull ip4) { /* Loopback. */ return ip4->uint8[0] == 127; @@ -315,8 +308,7 @@ bool ip_is_local(const IP *ip) return ip->ip.v6.uint64[0] == 0 && ip->ip.v6.uint32[2] == 0 && ip->ip.v6.uint32[3] == net_htonl(1); } -non_null() -static bool ip4_is_lan(const IP4 *ip4) +static bool ip4_is_lan(const IP4 *_Nonnull ip4) { /* 10.0.0.0 to 10.255.255.255 range. */ if (ip4->uint8[0] == 10) { diff --git a/external/toxcore/c-toxcore/toxcore/LAN_discovery.h b/external/toxcore/c-toxcore/toxcore/LAN_discovery.h index c18ce9e..765c67d 100644 --- a/external/toxcore/c-toxcore/toxcore/LAN_discovery.h +++ b/external/toxcore/c-toxcore/toxcore/LAN_discovery.h @@ -25,34 +25,27 @@ typedef struct Broadcast_Info Broadcast_Info; * * @return true on success, false on failure. */ -non_null() -bool lan_discovery_send(const Networking_Core *net, const Broadcast_Info *broadcast, const uint8_t *dht_pk, - uint16_t port); +bool lan_discovery_send(const Networking_Core *_Nonnull net, const Broadcast_Info *_Nonnull broadcast, const uint8_t *_Nonnull dht_pk, uint16_t port); /** * Discovers broadcast devices and IP addresses. */ -non_null() -Broadcast_Info *lan_discovery_init(const Memory *mem, const Network *ns); +Broadcast_Info *_Nullable lan_discovery_init(const Memory *_Nonnull mem, const Network *_Nonnull ns); /** * Free all resources associated with the broadcast info. */ -nullable(1) -void lan_discovery_kill(Broadcast_Info *broadcast); - +void lan_discovery_kill(Broadcast_Info *_Nullable broadcast); /** * Is IP a local ip or not. */ -non_null() -bool ip_is_local(const IP *ip); +bool ip_is_local(const IP *_Nonnull ip); /** * Checks if a given IP isn't routable. * * @return true if ip is a LAN ip, false if it is not. */ -non_null() -bool ip_is_lan(const IP *ip); +bool ip_is_lan(const IP *_Nonnull ip); #endif /* C_TOXCORE_TOXCORE_LAN_DISCOVERY_H */ diff --git a/external/toxcore/c-toxcore/toxcore/Messenger.c b/external/toxcore/c-toxcore/toxcore/Messenger.c index 2d25abd..a04e1f6 100644 --- a/external/toxcore/c-toxcore/toxcore/Messenger.c +++ b/external/toxcore/c-toxcore/toxcore/Messenger.c @@ -61,8 +61,7 @@ bool friend_is_valid(const Messenger *m, int32_t friendnumber) * * @retval -1 if mem_vrealloc fails. */ -non_null() -static int realloc_friendlist(Messenger *m, uint32_t num) +static int realloc_friendlist(Messenger *_Nonnull m, uint32_t num) { if (num == 0) { mem_delete(m->mem, m->friendlist); @@ -137,32 +136,25 @@ void getaddress(const Messenger *m, uint8_t *address) memcpy(address + CRYPTO_PUBLIC_KEY_SIZE + sizeof(nospam), &checksum, sizeof(checksum)); } -non_null() -static bool send_online_packet(const Messenger *m, int friendcon_id) +static bool send_online_packet(const Messenger *_Nonnull m, int friendcon_id) { const uint8_t packet[1] = {PACKET_ID_ONLINE}; return write_cryptpacket(m->net_crypto, friend_connection_crypt_connection_id(m->fr_c, friendcon_id), packet, sizeof(packet), false) != -1; } -non_null() -static bool send_offline_packet(const Messenger *m, int friendcon_id) +static bool send_offline_packet(const Messenger *_Nonnull m, int friendcon_id) { const uint8_t packet[1] = {PACKET_ID_OFFLINE}; return write_cryptpacket(m->net_crypto, friend_connection_crypt_connection_id(m->fr_c, friendcon_id), packet, sizeof(packet), false) != -1; } -non_null(1) nullable(4) -static int m_handle_status(void *object, int friendcon_id, bool status, void *userdata); -non_null(1, 3) nullable(5) -static int m_handle_packet(void *object, int friendcon_id, const uint8_t *data, uint16_t length, void *userdata); -non_null(1, 3) nullable(5) -static int m_handle_lossy_packet(void *object, int friendcon_id, const uint8_t *data, uint16_t length, - void *userdata); - -non_null() -static int32_t init_new_friend(Messenger *m, const uint8_t *real_pk, uint8_t status) +static int m_handle_status(void *_Nonnull object, int friendcon_id, bool status, void *_Nullable userdata); +static int m_handle_packet(void *_Nonnull object, int friendcon_id, const uint8_t *_Nonnull data, uint16_t length, void *_Nullable userdata); +static int m_handle_lossy_packet(void *_Nonnull object, int friendcon_id, const uint8_t *_Nonnull data, uint16_t length, + void *_Nullable userdata); +static int32_t init_new_friend(Messenger *_Nonnull m, const uint8_t *_Nonnull real_pk, uint8_t status) { if (m->numfriends == UINT32_MAX) { LOGGER_ERROR(m->log, "Friend list full: we have more than 4 billion friends"); @@ -211,8 +203,7 @@ static int32_t init_new_friend(Messenger *m, const uint8_t *real_pk, uint8_t sta return FAERR_NOMEM; } -non_null() -static int32_t m_add_friend_contact_norequest(Messenger *m, const uint8_t *real_pk) +static int32_t m_add_friend_contact_norequest(Messenger *_Nonnull m, const uint8_t *_Nonnull real_pk) { if (getfriend_id(m, real_pk) != -1) { return FAERR_ALREADYSENT; @@ -320,8 +311,7 @@ int32_t m_addfriend_norequest(Messenger *m, const uint8_t *real_pk) return m_add_friend_contact_norequest(m, real_pk); } -non_null() -static int clear_receipts(Messenger *m, int32_t friendnumber) +static int clear_receipts(Messenger *_Nonnull m, int32_t friendnumber) { if (!m_friend_exists(m, friendnumber)) { return -1; @@ -340,8 +330,7 @@ static int clear_receipts(Messenger *m, int32_t friendnumber) return 0; } -non_null() -static int add_receipt(Messenger *m, int32_t friendnumber, uint32_t packet_num, uint32_t msg_id) +static int add_receipt(Messenger *_Nonnull m, int32_t friendnumber, uint32_t packet_num, uint32_t msg_id) { if (!m_friend_exists(m, friendnumber)) { return -1; @@ -370,8 +359,7 @@ static int add_receipt(Messenger *m, int32_t friendnumber, uint32_t packet_num, * return -1 on failure. * return 0 if packet was received. */ -non_null() -static int friend_received_packet(const Messenger *m, int32_t friendnumber, uint32_t number) +static int friend_received_packet(const Messenger *_Nonnull m, int32_t friendnumber, uint32_t number) { if (!m_friend_exists(m, friendnumber)) { return -1; @@ -428,8 +416,7 @@ void m_kill_group_connection(Messenger *m, const GC_Chat *chat) kill_friend_connection(m->fr_c, chat->friend_connection_id); } -non_null(1) nullable(3) -static int do_receipts(Messenger *m, int32_t friendnumber, void *userdata) +static int do_receipts(Messenger *_Nonnull m, int32_t friendnumber, void *_Nullable userdata) { if (!m_friend_exists(m, friendnumber)) { return -1; @@ -606,9 +593,7 @@ int m_send_message_generic(Messenger *m, int32_t friendnumber, uint8_t type, con return 0; } -non_null() -static bool write_cryptpacket_id(const Messenger *m, int32_t friendnumber, uint8_t packet_id, const uint8_t *data, - uint32_t length, bool congestion_control) +static bool write_cryptpacket_id(const Messenger *_Nonnull m, int32_t friendnumber, uint8_t packet_id, const uint8_t *_Nonnull data, uint32_t length, bool congestion_control) { if (!m_friend_exists(m, friendnumber)) { return false; @@ -631,8 +616,7 @@ static bool write_cryptpacket_id(const Messenger *m, int32_t friendnumber, uint8 /** @brief Send a name packet to friendnumber. * length is the length with the NULL terminator. */ -non_null() -static bool m_sendname(const Messenger *m, int32_t friendnumber, const uint8_t *name, uint16_t length) +static bool m_sendname(const Messenger *_Nonnull m, int32_t friendnumber, const uint8_t *_Nonnull name, uint16_t length) { if (length > MAX_NAME_LENGTH) { return false; @@ -771,8 +755,7 @@ int m_set_statusmessage(Messenger *m, const uint8_t *status, uint16_t length) return 0; } -non_null() -static bool userstatus_from_int(uint8_t status, Userstatus *out_enum) +static bool userstatus_from_int(uint8_t status, Userstatus *_Nonnull out_enum) { switch (status) { case USERSTATUS_NONE: { @@ -927,27 +910,23 @@ int m_get_istyping(const Messenger *m, int32_t friendnumber) return m->friendlist[friendnumber].is_typing ? 1 : 0; } -non_null() -static bool send_statusmessage(const Messenger *m, int32_t friendnumber, const uint8_t *status, uint16_t length) +static bool send_statusmessage(const Messenger *_Nonnull m, int32_t friendnumber, const uint8_t *_Nonnull status, uint16_t length) { return write_cryptpacket_id(m, friendnumber, PACKET_ID_STATUSMESSAGE, status, length, false); } -non_null() -static bool send_userstatus(const Messenger *m, int32_t friendnumber, uint8_t status) +static bool send_userstatus(const Messenger *_Nonnull m, int32_t friendnumber, uint8_t status) { return write_cryptpacket_id(m, friendnumber, PACKET_ID_USERSTATUS, &status, sizeof(status), false); } -non_null() -static bool send_user_istyping(const Messenger *m, int32_t friendnumber, bool is_typing) +static bool send_user_istyping(const Messenger *_Nonnull m, int32_t friendnumber, bool is_typing) { const uint8_t typing = is_typing ? 1 : 0; return write_cryptpacket_id(m, friendnumber, PACKET_ID_TYPING, &typing, sizeof(typing), false); } -non_null() -static int set_friend_statusmessage(const Messenger *m, int32_t friendnumber, const uint8_t *status, uint16_t length) +static int set_friend_statusmessage(const Messenger *_Nonnull m, int32_t friendnumber, const uint8_t *_Nonnull status, uint16_t length) { if (!m_friend_exists(m, friendnumber)) { return -1; @@ -965,14 +944,12 @@ static int set_friend_statusmessage(const Messenger *m, int32_t friendnumber, co return 0; } -non_null() -static void set_friend_userstatus(const Messenger *m, int32_t friendnumber, uint8_t status) +static void set_friend_userstatus(const Messenger *_Nonnull m, int32_t friendnumber, uint8_t status) { userstatus_from_int(status, &m->friendlist[friendnumber].userstatus); } -non_null() -static void set_friend_typing(const Messenger *m, int32_t friendnumber, bool is_typing) +static void set_friend_typing(const Messenger *_Nonnull m, int32_t friendnumber, bool is_typing) { m->friendlist[friendnumber].is_typing = is_typing; } @@ -1024,11 +1001,9 @@ void m_callback_core_connection(Messenger *m, m_self_connection_status_cb *funct m->core_connection_change = function; } -non_null(1) nullable(3) -static void check_friend_tcp_udp(Messenger *m, int32_t friendnumber, void *userdata) +static void check_friend_tcp_udp(Messenger *_Nonnull m, int32_t friendnumber, void *_Nullable userdata) { const int last_connection_udp_tcp = m->friendlist[friendnumber].last_connection_udp_tcp; - const int ret = m_get_friend_connectionstatus(m, friendnumber); if (ret == -1) { @@ -1044,11 +1019,9 @@ static void check_friend_tcp_udp(Messenger *m, int32_t friendnumber, void *userd m->friendlist[friendnumber].last_connection_udp_tcp = (Connection_Status)ret; } -non_null() -static void break_files(const Messenger *m, int32_t friendnumber); +static void break_files(const Messenger *_Nonnull m, int32_t friendnumber); -non_null(1) nullable(4) -static void check_friend_connectionstatus(Messenger *m, int32_t friendnumber, uint8_t status, void *userdata) +static void check_friend_connectionstatus(Messenger *_Nonnull m, int32_t friendnumber, uint8_t status, void *_Nullable userdata) { if (status == NOFRIEND) { return; @@ -1074,8 +1047,7 @@ static void check_friend_connectionstatus(Messenger *m, int32_t friendnumber, ui } } -non_null(1) nullable(4) -static void set_friend_status(Messenger *m, int32_t friendnumber, uint8_t status, void *userdata) +static void set_friend_status(Messenger *_Nonnull m, int32_t friendnumber, uint8_t status, void *_Nullable userdata) { check_friend_connectionstatus(m, friendnumber, status, userdata); m->friendlist[friendnumber].status = status; @@ -1193,9 +1165,8 @@ int file_get_id(const Messenger *m, int32_t friendnumber, uint32_t filenumber, u * @retval 1 on success * @retval 0 on failure */ -non_null() -static bool file_sendrequest(const Messenger *m, int32_t friendnumber, uint8_t filenumber, uint32_t file_type, - uint64_t filesize, const uint8_t *file_id, const uint8_t *filename, uint16_t filename_length) +static bool file_sendrequest(const Messenger *_Nonnull m, int32_t friendnumber, uint8_t filenumber, uint32_t file_type, uint64_t filesize, const uint8_t *_Nonnull file_id, + const uint8_t *_Nonnull filename, uint16_t filename_length) { if (!m_friend_exists(m, friendnumber)) { return false; @@ -1274,12 +1245,10 @@ long int new_filesender(const Messenger *m, int32_t friendnumber, uint32_t file_ return i; } -non_null(1) nullable(6) -static bool send_file_control_packet(const Messenger *m, int32_t friendnumber, bool inbound, uint8_t filenumber, - uint8_t control_type, const uint8_t *data, uint16_t data_length) +static bool send_file_control_packet(const Messenger *_Nonnull m, int32_t friendnumber, bool inbound, uint8_t filenumber, + uint8_t control_type, const uint8_t *_Nullable data, uint16_t data_length) { assert(data_length == 0 || data != nullptr); - if ((unsigned int)(1 + 3 + data_length) > MAX_CRYPTO_DATA_SIZE) { return false; } @@ -1475,12 +1444,10 @@ int file_seek(const Messenger *m, int32_t friendnumber, uint32_t filenumber, uin /** @return packet number on success. * @retval -1 on failure. */ -non_null(1) nullable(4) -static int64_t send_file_data_packet(const Messenger *m, int32_t friendnumber, uint8_t filenumber, const uint8_t *data, +static int64_t send_file_data_packet(const Messenger *_Nonnull m, int32_t friendnumber, uint8_t filenumber, const uint8_t *_Nullable data, uint16_t length) { assert(length == 0 || data != nullptr); - if (!m_friend_exists(m, friendnumber)) { return -1; } @@ -1588,8 +1555,7 @@ int send_file_data(const Messenger *m, int32_t friendnumber, uint32_t filenumber * @return true if there's still work to do, false otherwise. * */ -non_null() -static bool do_all_filetransfers(Messenger *m, int32_t friendnumber, void *userdata, uint32_t *free_slots) +static bool do_all_filetransfers(Messenger *_Nonnull m, int32_t friendnumber, void *_Nonnull userdata, uint32_t *_Nonnull free_slots) { Friend *const friendcon = &m->friendlist[friendnumber]; @@ -1656,8 +1622,7 @@ static bool do_all_filetransfers(Messenger *m, int32_t friendnumber, void *userd return true; } -non_null(1) nullable(3) -static void do_reqchunk_filecb(Messenger *m, int32_t friendnumber, void *userdata) +static void do_reqchunk_filecb(Messenger *_Nonnull m, int32_t friendnumber, void *_Nullable userdata) { // We're not currently doing any file transfers. if (m->friendlist[friendnumber].num_sending_files == 0) { @@ -1711,9 +1676,7 @@ static void break_files(const Messenger *m, int32_t friendnumber) } } -non_null() -static struct File_Transfers *get_file_transfer(bool outbound, uint8_t filenumber, - uint32_t *real_filenumber, Friend *sender) +static struct File_Transfers *get_file_transfer(bool outbound, uint8_t filenumber, uint32_t *_Nonnull real_filenumber, Friend *_Nonnull sender) { struct File_Transfers *ft; @@ -1735,9 +1698,8 @@ static struct File_Transfers *get_file_transfer(bool outbound, uint8_t filenumbe /** @retval -1 on failure * @retval 0 on success. */ -non_null(1, 6) nullable(8) -static int handle_filecontrol(Messenger *m, int32_t friendnumber, bool outbound, uint8_t filenumber, - uint8_t control_type, const uint8_t *data, uint16_t length, void *userdata) +static int handle_filecontrol(Messenger *_Nonnull m, int32_t friendnumber, bool outbound, uint8_t filenumber, + uint8_t control_type, const uint8_t *_Nonnull data, uint16_t length, void *_Nullable userdata) { uint32_t real_filenumber; struct File_Transfers *ft = get_file_transfer(outbound, filenumber, &real_filenumber, &m->friendlist[friendnumber]); @@ -1805,8 +1767,8 @@ static int handle_filecontrol(Messenger *m, int32_t friendnumber, bool outbound, uint64_t position; if (length != sizeof(position)) { - LOGGER_DEBUG(m->log, "file control (friend %d, file %d): expected payload of length %d, but got %d", - friendnumber, filenumber, (uint32_t)sizeof(position), length); + LOGGER_DEBUG(m->log, "file control (friend %d, file %d): expected payload of length %u, but got %d", + friendnumber, filenumber, (unsigned int)sizeof(position), length); return -1; } @@ -1822,7 +1784,7 @@ static int handle_filecontrol(Messenger *m, int32_t friendnumber, bool outbound, if (position >= ft->size) { LOGGER_DEBUG(m->log, - "file control (friend %d, file %d): seek position %ld exceeds file size %ld", + "file control (friend %d, file %d): seek position %lu exceeds file size %lu", friendnumber, filenumber, (unsigned long)position, (unsigned long)ft->size); return -1; } @@ -1887,12 +1849,10 @@ int m_send_custom_lossy_packet(const Messenger *m, int32_t friendnumber, const u return 0; } -non_null(1, 3) nullable(5) -static int handle_custom_lossless_packet(void *object, int friend_num, const uint8_t *packet, uint16_t length, - void *userdata) +static int handle_custom_lossless_packet(void *_Nonnull object, int friend_num, const uint8_t *_Nonnull packet, uint16_t length, + void *_Nullable userdata) { Messenger *m = (Messenger *)object; - if (!m_friend_exists(m, friend_num)) { return -1; } @@ -1944,8 +1904,7 @@ int send_custom_lossless_packet(const Messenger *m, int32_t friendnumber, const } /** Function to filter out some friend requests*/ -non_null() -static int friend_already_added(void *object, const uint8_t *public_key) +static int friend_already_added(void *_Nonnull object, const uint8_t *_Nonnull public_key) { const Messenger *m = (const Messenger *)object; @@ -1962,11 +1921,9 @@ static int friend_already_added(void *object, const uint8_t *public_key) * @param friendcon_id friendlist index of the timed-out friend * @param t time */ -non_null(1) nullable(4) -static void check_friend_request_timed_out(Messenger *m, uint32_t friendcon_id, uint64_t t, void *userdata) +static void check_friend_request_timed_out(Messenger *_Nonnull m, uint32_t friendcon_id, uint64_t t, void *_Nullable userdata) { Friend *f = &m->friendlist[friendcon_id]; - if (f->friendrequest_lastsent + f->friendrequest_timeout < t) { set_friend_status(m, friendcon_id, FRIEND_ADDED, userdata); /* Double the default timeout every time if friendrequest is assumed @@ -1976,11 +1933,9 @@ static void check_friend_request_timed_out(Messenger *m, uint32_t friendcon_id, } } -non_null(1) nullable(4) -static int m_handle_status(void *object, int friendcon_id, bool status, void *userdata) +static int m_handle_status(void *_Nonnull object, int friendcon_id, bool status, void *_Nullable userdata) { Messenger *m = (Messenger *)object; - if (status) { /* Went online. */ send_online_packet(m, m->friendlist[friendcon_id].friendcon_id); } else { /* Went offline. */ @@ -1992,8 +1947,7 @@ static int m_handle_status(void *object, int friendcon_id, bool status, void *us return 0; } -non_null(1, 3) nullable(5) -static int m_handle_packet_offline(Messenger *m, const int friendcon_id, const uint8_t *data, const uint16_t data_length, void *userdata) +static int m_handle_packet_offline(Messenger *_Nonnull m, const int friendcon_id, const uint8_t *_Nonnull data, const uint16_t data_length, void *_Nullable userdata) { if (data_length == 0) { set_friend_status(m, friendcon_id, FRIEND_CONFIRMED, userdata); @@ -2002,8 +1956,7 @@ static int m_handle_packet_offline(Messenger *m, const int friendcon_id, const u return 0; } -non_null(1, 3) nullable(5) -static int m_handle_packet_nickname(Messenger *m, const int friendcon_id, const uint8_t *data, const uint16_t data_length, void *userdata) +static int m_handle_packet_nickname(Messenger *_Nonnull m, const int friendcon_id, const uint8_t *_Nonnull data, const uint16_t data_length, void *_Nullable userdata) { if (data_length > MAX_NAME_LENGTH) { return 0; @@ -2025,8 +1978,7 @@ static int m_handle_packet_nickname(Messenger *m, const int friendcon_id, const return 0; } -non_null(1, 3) nullable(5) -static int m_handle_packet_statusmessage(Messenger *m, const int friendcon_id, const uint8_t *data, const uint16_t data_length, void *userdata) +static int m_handle_packet_statusmessage(Messenger *_Nonnull m, const int friendcon_id, const uint8_t *_Nonnull data, const uint16_t data_length, void *_Nullable userdata) { if (data_length > MAX_STATUSMESSAGE_LENGTH) { return 0; @@ -2046,8 +1998,7 @@ static int m_handle_packet_statusmessage(Messenger *m, const int friendcon_id, c return 0; } -non_null(1, 3) nullable(5) -static int m_handle_packet_userstatus(Messenger *m, const int friendcon_id, const uint8_t *data, const uint16_t data_length, void *userdata) +static int m_handle_packet_userstatus(Messenger *_Nonnull m, const int friendcon_id, const uint8_t *_Nonnull data, const uint16_t data_length, void *_Nullable userdata) { if (data_length != 1) { return 0; @@ -2067,8 +2018,7 @@ static int m_handle_packet_userstatus(Messenger *m, const int friendcon_id, cons return 0; } -non_null(1, 3) nullable(5) -static int m_handle_packet_typing(Messenger *m, const int friendcon_id, const uint8_t *data, const uint16_t data_length, void *userdata) +static int m_handle_packet_typing(Messenger *_Nonnull m, const int friendcon_id, const uint8_t *_Nonnull data, const uint16_t data_length, void *_Nullable userdata) { if (data_length != 1) { return 0; @@ -2085,8 +2035,8 @@ static int m_handle_packet_typing(Messenger *m, const int friendcon_id, const ui return 0; } -non_null(1, 3) nullable(6) -static int m_handle_packet_message(Messenger *m, const int friendcon_id, const uint8_t *data, const uint16_t data_length, const Message_Type message_type, void *userdata) +static int m_handle_packet_message(Messenger *_Nonnull m, const int friendcon_id, const uint8_t *_Nonnull data, const uint16_t data_length, const Message_Type message_type, + void *_Nullable userdata) { if (data_length == 0) { return 0; @@ -2107,8 +2057,7 @@ static int m_handle_packet_message(Messenger *m, const int friendcon_id, const u return 0; } -non_null(1, 3) nullable(5) -static int m_handle_packet_invite_conference(Messenger *m, const int friendcon_id, const uint8_t *data, const uint16_t data_length, void *userdata) +static int m_handle_packet_invite_conference(Messenger *_Nonnull m, const int friendcon_id, const uint8_t *_Nonnull data, const uint16_t data_length, void *_Nullable userdata) { if (data_length == 0) { return 0; @@ -2121,11 +2070,9 @@ static int m_handle_packet_invite_conference(Messenger *m, const int friendcon_i return 0; } -non_null(1, 3) nullable(5) -static int m_handle_packet_file_sendrequest(Messenger *m, const int friendcon_id, const uint8_t *data, const uint16_t data_length, void *userdata) +static int m_handle_packet_file_sendrequest(Messenger *_Nonnull m, const int friendcon_id, const uint8_t *_Nonnull data, const uint16_t data_length, void *_Nullable userdata) { const unsigned int head_length = 1 + sizeof(uint32_t) + sizeof(uint64_t) + FILE_ID_LENGTH; - if (data_length < head_length) { return 0; } @@ -2186,8 +2133,7 @@ static int m_handle_packet_file_sendrequest(Messenger *m, const int friendcon_id return 0; } -non_null(1, 3) nullable(5) -static int m_handle_packet_file_control(Messenger *m, const int friendcon_id, const uint8_t *data, const uint16_t data_length, void *userdata) +static int m_handle_packet_file_control(Messenger *_Nonnull m, const int friendcon_id, const uint8_t *_Nonnull data, const uint16_t data_length, void *_Nullable userdata) { if (data_length < 3) { return 0; @@ -2217,8 +2163,7 @@ static int m_handle_packet_file_control(Messenger *m, const int friendcon_id, co return 0; } -non_null(1, 3) nullable(5) -static int m_handle_packet_file_data(Messenger *m, const int friendcon_id, const uint8_t *data, const uint16_t data_length, void *userdata) +static int m_handle_packet_file_data(Messenger *_Nonnull m, const int friendcon_id, const uint8_t *_Nonnull data, const uint16_t data_length, void *_Nullable userdata) { if (data_length < 1) { return 0; @@ -2283,8 +2228,7 @@ static int m_handle_packet_file_data(Messenger *m, const int friendcon_id, const return 0; } -non_null(1, 3) nullable(5) -static int m_handle_packet_invite_groupchat(Messenger *m, const int friendcon_id, const uint8_t *data, const uint16_t data_length, void *userdata) +static int m_handle_packet_invite_groupchat(Messenger *_Nonnull m, const int friendcon_id, const uint8_t *_Nonnull data, const uint16_t data_length, void *_Nullable userdata) { // first two bytes are messenger packet type and group invite type if (data_length < 2 + GC_JOIN_DATA_LENGTH) { @@ -2309,11 +2253,9 @@ static int m_handle_packet_invite_groupchat(Messenger *m, const int friendcon_id return 0; } -non_null(1, 3) nullable(5) -static int m_handle_packet(void *object, int friendcon_id, const uint8_t *data, uint16_t length, void *userdata) +static int m_handle_packet(void *_Nonnull object, int friendcon_id, const uint8_t *_Nonnull data, uint16_t length, void *_Nullable userdata) { Messenger *m = (Messenger *)object; - if (length == 0) { return -1; } @@ -2364,11 +2306,9 @@ static int m_handle_packet(void *object, int friendcon_id, const uint8_t *data, return handle_custom_lossless_packet(object, friendcon_id, data, length, userdata); } -non_null(1) nullable(2) -static void do_friends(Messenger *m, void *userdata) +static void do_friends(Messenger *_Nonnull m, void *_Nullable userdata) { const uint64_t temp_time = mono_time_get(m->mono_time); - for (uint32_t i = 0; i < m->numfriends; ++i) { if (m->friendlist[i].status == FRIEND_ADDED) { const int fr = send_friend_request_packet(m->fr_c, m->friendlist[i].friendcon_id, m->friendlist[i].friendrequest_nospam, @@ -2423,11 +2363,9 @@ static void do_friends(Messenger *m, void *userdata) } } -non_null(1) nullable(2) -static void m_connection_status_callback(Messenger *m, void *userdata) +static void m_connection_status_callback(Messenger *_Nonnull m, void *_Nullable userdata) { const Onion_Connection_Status conn_status = onion_connection_status(m->onion_c); - if (conn_status != m->last_connection_status) { if (m->core_connection_change != nullptr) { m->core_connection_change(m, conn_status, userdata); @@ -2441,8 +2379,7 @@ static void m_connection_status_callback(Messenger *m, void *userdata) #define IDSTRING_LEN (CRYPTO_PUBLIC_KEY_SIZE * 2 + 1) /** id_str should be of length at least IDSTRING_LEN */ -non_null() -static char *id_to_string(const uint8_t *pk, char *id_str, size_t length) +static char *id_to_string(const uint8_t *_Nonnull pk, char *_Nonnull id_str, size_t length) { if (length < IDSTRING_LEN) { snprintf(id_str, length, "Bad buf length"); @@ -2484,8 +2421,7 @@ uint32_t messenger_run_interval(const Messenger *m) * * @retval true if success. */ -non_null() -static bool self_announce_group(const Messenger *m, GC_Chat *chat, Onion_Friend *onion_friend) +static bool self_announce_group(const Messenger *_Nonnull m, GC_Chat *_Nonnull chat, Onion_Friend *_Nonnull onion_friend) { GC_Public_Announce announce = {{{{{0}}}}}; @@ -2531,13 +2467,12 @@ static bool self_announce_group(const Messenger *m, GC_Chat *chat, Onion_Friend memzero(chat->announced_tcp_relay_pk, sizeof(chat->announced_tcp_relay_pk)); } - LOGGER_DEBUG(chat->log, "Published group announce. TCP relays: %d, UDP status: %d", tcp_num, + LOGGER_DEBUG(chat->log, "Published group announce. TCP relays: %d, UDP status: %u", tcp_num, chat->self_udp_status); return true; } -non_null() -static void do_gc_onion_friends(const Messenger *m) +static void do_gc_onion_friends(const Messenger *_Nonnull m) { const uint16_t num_friends = onion_get_friend_count(m->onion_c); @@ -2668,7 +2603,7 @@ void do_messenger(Messenger *m, void *userdata) if (msgfptr != nullptr) { char id_str[IDSTRING_LEN]; - LOGGER_TRACE(m->log, "F[%2u:%2u] <%s> %s", + LOGGER_TRACE(m->log, "F[%2d:%2u] <%s> %s", dht2m[friend_idx], friend_idx, msgfptr->name, id_to_string(msgfptr->real_pk, id_str, sizeof(id_str))); } else { @@ -2759,8 +2694,7 @@ static uint32_t friend_size(void) return data; } -non_null() -static uint8_t *friend_save(const struct Saved_Friend *temp, uint8_t *data) +static uint8_t *friend_save(const struct Saved_Friend *_Nonnull temp, uint8_t *_Nonnull data) { #define VALUE_MEMBER(data, name) \ do { \ @@ -2796,8 +2730,7 @@ static uint8_t *friend_save(const struct Saved_Friend *temp, uint8_t *data) return data; } -non_null() -static const uint8_t *friend_load(struct Saved_Friend *temp, const uint8_t *data) +static const uint8_t *friend_load(struct Saved_Friend *_Nonnull temp, const uint8_t *_Nonnull data) { #define VALUE_MEMBER(data, name) \ do { \ @@ -2833,8 +2766,7 @@ static const uint8_t *friend_load(struct Saved_Friend *temp, const uint8_t *data return data; } -non_null() -static uint32_t m_state_plugins_size(const Messenger *m) +static uint32_t m_state_plugins_size(const Messenger *_Nonnull m) { const uint32_t size32 = sizeof(uint32_t); const uint32_t sizesubhead = size32 * 2; @@ -2879,8 +2811,7 @@ bool m_register_state_plugin(Messenger *m, State_Type type, m_state_size_cb *siz return true; } -non_null() -static uint32_t m_plugin_size(const Messenger *m, State_Type type) +static uint32_t m_plugin_size(const Messenger *_Nonnull m, State_Type type) { for (uint8_t i = 0; i < m->options.state_plugins_length; ++i) { const Messenger_State_Plugin plugin = m->options.state_plugins[i]; @@ -2913,14 +2844,12 @@ uint8_t *messenger_save(const Messenger *m, uint8_t *data) } // nospam state plugin -non_null() -static uint32_t nospam_keys_size(const Messenger *m) +static uint32_t nospam_keys_size(const Messenger *_Nonnull m) { return sizeof(uint32_t) + CRYPTO_PUBLIC_KEY_SIZE + CRYPTO_SECRET_KEY_SIZE; } -non_null() -static State_Load_Status load_nospam_keys(Messenger *m, const uint8_t *data, uint32_t length) +static State_Load_Status load_nospam_keys(Messenger *_Nonnull m, const uint8_t *_Nonnull data, uint32_t length) { if (length != m_plugin_size(m, STATE_TYPE_NOSPAMKEYS)) { return STATE_LOAD_STATUS_ERROR; @@ -2939,8 +2868,7 @@ static State_Load_Status load_nospam_keys(Messenger *m, const uint8_t *data, uin return STATE_LOAD_STATUS_CONTINUE; } -non_null() -static uint8_t *save_nospam_keys(const Messenger *m, uint8_t *data) +static uint8_t *save_nospam_keys(const Messenger *_Nonnull m, uint8_t *_Nonnull data) { const uint32_t len = m_plugin_size(m, STATE_TYPE_NOSPAMKEYS); static_assert(sizeof(get_nospam(m->fr)) == sizeof(uint32_t), "nospam doesn't fit in a 32 bit int"); @@ -2953,14 +2881,12 @@ static uint8_t *save_nospam_keys(const Messenger *m, uint8_t *data) } // DHT state plugin -non_null() -static uint32_t m_dht_size(const Messenger *m) +static uint32_t m_dht_size(const Messenger *_Nonnull m) { return dht_size(m->dht); } -non_null() -static uint8_t *save_dht(const Messenger *m, uint8_t *data) +static uint8_t *save_dht(const Messenger *_Nonnull m, uint8_t *_Nonnull data) { const uint32_t len = m_plugin_size(m, STATE_TYPE_DHT); data = state_write_section_header(data, STATE_COOKIE_TYPE, len, STATE_TYPE_DHT); @@ -2969,22 +2895,19 @@ static uint8_t *save_dht(const Messenger *m, uint8_t *data) return data; } -non_null() -static State_Load_Status m_dht_load(Messenger *m, const uint8_t *data, uint32_t length) +static State_Load_Status m_dht_load(Messenger *_Nonnull m, const uint8_t *_Nonnull data, uint32_t length) { dht_load(m->dht, data, length); // TODO(endoffile78): Should we throw an error if dht_load fails? return STATE_LOAD_STATUS_CONTINUE; } // friendlist state plugin -non_null() -static uint32_t saved_friendslist_size(const Messenger *m) +static uint32_t saved_friendslist_size(const Messenger *_Nonnull m) { return count_friendlist(m) * friend_size(); } -non_null() -static uint8_t *friends_list_save(const Messenger *m, uint8_t *data) +static uint8_t *friends_list_save(const Messenger *_Nonnull m, uint8_t *_Nonnull data) { const uint32_t len = m_plugin_size(m, STATE_TYPE_FRIENDS); data = state_write_section_header(data, STATE_COOKIE_TYPE, len, STATE_TYPE_FRIENDS); @@ -3034,8 +2957,7 @@ static uint8_t *friends_list_save(const Messenger *m, uint8_t *data) return data; } -non_null() -static State_Load_Status friends_list_load(Messenger *m, const uint8_t *data, uint32_t length) +static State_Load_Status friends_list_load(Messenger *_Nonnull m, const uint8_t *_Nonnull data, uint32_t length) { const uint32_t l_friend_size = friend_size(); @@ -3078,8 +3000,7 @@ static State_Load_Status friends_list_load(Messenger *m, const uint8_t *data, ui return STATE_LOAD_STATUS_CONTINUE; } -non_null() -static void pack_groupchats(const GC_Session *c, Bin_Pack *bp) +static void pack_groupchats(const GC_Session *_Nonnull c, Bin_Pack *_Nonnull bp) { assert(bp != nullptr && c != nullptr); bin_pack_array(bp, gc_count_groups(c)); @@ -3095,23 +3016,20 @@ static void pack_groupchats(const GC_Session *c, Bin_Pack *bp) } } -non_null() -static bool pack_groupchats_handler(const void *obj, const Logger *logger, Bin_Pack *bp) +static bool pack_groupchats_handler(const void *_Nonnull obj, const Logger *_Nonnull logger, Bin_Pack *_Nonnull bp) { const GC_Session *session = (const GC_Session *)obj; pack_groupchats(session, bp); return true; // TODO(iphydf): Return bool from pack functions. } -non_null() -static uint32_t saved_groups_size(const Messenger *m) +static uint32_t saved_groups_size(const Messenger *_Nonnull m) { const GC_Session *session = m->group_handler; return bin_pack_obj_size(pack_groupchats_handler, session, m->log); } -non_null() -static uint8_t *groups_save(const Messenger *m, uint8_t *data) +static uint8_t *groups_save(const Messenger *_Nonnull m, uint8_t *_Nonnull data) { const GC_Session *c = m->group_handler; @@ -3141,8 +3059,7 @@ static uint8_t *groups_save(const Messenger *m, uint8_t *data) return data; } -non_null() -static bool handle_groups_load(void *obj, Bin_Unpack *bu) +static bool handle_groups_load(void *_Nonnull obj, Bin_Unpack *_Nonnull bu) { Messenger *m = (Messenger *)obj; @@ -3169,8 +3086,7 @@ static bool handle_groups_load(void *obj, Bin_Unpack *bu) return true; } -non_null() -static State_Load_Status groups_load(Messenger *m, const uint8_t *data, uint32_t length) +static State_Load_Status groups_load(Messenger *_Nonnull m, const uint8_t *_Nonnull data, uint32_t length) { if (!bin_unpack_obj(m->mem, handle_groups_load, m, data, length)) { LOGGER_ERROR(m->log, "msgpack failed to unpack groupchats array"); @@ -3181,14 +3097,12 @@ static State_Load_Status groups_load(Messenger *m, const uint8_t *data, uint32_t } // name state plugin -non_null() -static uint32_t name_size(const Messenger *m) +static uint32_t name_size(const Messenger *_Nonnull m) { return m->name_length; } -non_null() -static uint8_t *save_name(const Messenger *m, uint8_t *data) +static uint8_t *save_name(const Messenger *_Nonnull m, uint8_t *_Nonnull data) { const uint32_t len = m_plugin_size(m, STATE_TYPE_NAME); data = state_write_section_header(data, STATE_COOKIE_TYPE, len, STATE_TYPE_NAME); @@ -3197,8 +3111,7 @@ static uint8_t *save_name(const Messenger *m, uint8_t *data) return data; } -non_null() -static State_Load_Status load_name(Messenger *m, const uint8_t *data, uint32_t length) +static State_Load_Status load_name(Messenger *_Nonnull m, const uint8_t *_Nonnull data, uint32_t length) { if (length > 0 && length <= MAX_NAME_LENGTH) { setname(m, data, length); @@ -3208,14 +3121,12 @@ static State_Load_Status load_name(Messenger *m, const uint8_t *data, uint32_t l } // status message state plugin -non_null() -static uint32_t status_message_size(const Messenger *m) +static uint32_t status_message_size(const Messenger *_Nonnull m) { return m->statusmessage_length; } -non_null() -static uint8_t *save_status_message(const Messenger *m, uint8_t *data) +static uint8_t *save_status_message(const Messenger *_Nonnull m, uint8_t *_Nonnull data) { const uint32_t len = m_plugin_size(m, STATE_TYPE_STATUSMESSAGE); data = state_write_section_header(data, STATE_COOKIE_TYPE, len, STATE_TYPE_STATUSMESSAGE); @@ -3224,8 +3135,7 @@ static uint8_t *save_status_message(const Messenger *m, uint8_t *data) return data; } -non_null() -static State_Load_Status load_status_message(Messenger *m, const uint8_t *data, uint32_t length) +static State_Load_Status load_status_message(Messenger *_Nonnull m, const uint8_t *_Nonnull data, uint32_t length) { if (length > 0 && length <= MAX_STATUSMESSAGE_LENGTH) { m_set_statusmessage(m, data, length); @@ -3235,14 +3145,12 @@ static State_Load_Status load_status_message(Messenger *m, const uint8_t *data, } // status state plugin -non_null() -static uint32_t status_size(const Messenger *m) +static uint32_t status_size(const Messenger *_Nonnull m) { return 1; } -non_null() -static uint8_t *save_status(const Messenger *m, uint8_t *data) +static uint8_t *save_status(const Messenger *_Nonnull m, uint8_t *_Nonnull data) { const uint32_t len = m_plugin_size(m, STATE_TYPE_STATUS); data = state_write_section_header(data, STATE_COOKIE_TYPE, len, STATE_TYPE_STATUS); @@ -3251,8 +3159,7 @@ static uint8_t *save_status(const Messenger *m, uint8_t *data) return data; } -non_null() -static State_Load_Status load_status(Messenger *m, const uint8_t *data, uint32_t length) +static State_Load_Status load_status(Messenger *_Nonnull m, const uint8_t *_Nonnull data, uint32_t length) { if (length == 1) { m_set_userstatus(m, *data); @@ -3262,14 +3169,12 @@ static State_Load_Status load_status(Messenger *m, const uint8_t *data, uint32_t } // TCP Relay state plugin -non_null() -static uint32_t tcp_relay_size(const Messenger *m) +static uint32_t tcp_relay_size(const Messenger *_Nonnull m) { return NUM_SAVED_TCP_RELAYS * packed_node_size(net_family_tcp_ipv6()); } -non_null() -static uint8_t *save_tcp_relays(const Messenger *m, uint8_t *data) +static uint8_t *save_tcp_relays(const Messenger *_Nonnull m, uint8_t *_Nonnull data) { Node_format relays[NUM_SAVED_TCP_RELAYS] = {{{0}}}; uint8_t *temp_data = data; @@ -3293,8 +3198,7 @@ static uint8_t *save_tcp_relays(const Messenger *m, uint8_t *data) return data; } -non_null() -static State_Load_Status load_tcp_relays(Messenger *m, const uint8_t *data, uint32_t length) +static State_Load_Status load_tcp_relays(Messenger *_Nonnull m, const uint8_t *_Nonnull data, uint32_t length) { if (length > 0) { const int num = unpack_nodes(m->loaded_relays, NUM_SAVED_TCP_RELAYS, nullptr, data, length, true); @@ -3312,14 +3216,12 @@ static State_Load_Status load_tcp_relays(Messenger *m, const uint8_t *data, uint } // path node state plugin -non_null() -static uint32_t path_node_size(const Messenger *m) +static uint32_t path_node_size(const Messenger *_Nonnull m) { return NUM_SAVED_PATH_NODES * packed_node_size(net_family_tcp_ipv6()); } -non_null() -static uint8_t *save_path_nodes(const Messenger *m, uint8_t *data) +static uint8_t *save_path_nodes(const Messenger *_Nonnull m, uint8_t *_Nonnull data) { Node_format nodes[NUM_SAVED_PATH_NODES] = {{{0}}}; uint8_t *temp_data = data; @@ -3336,8 +3238,7 @@ static uint8_t *save_path_nodes(const Messenger *m, uint8_t *data) return data; } -non_null() -static State_Load_Status load_path_nodes(Messenger *m, const uint8_t *data, uint32_t length) +static State_Load_Status load_path_nodes(Messenger *_Nonnull m, const uint8_t *_Nonnull data, uint32_t length) { if (length > 0) { Node_format nodes[NUM_SAVED_PATH_NODES]; @@ -3355,8 +3256,7 @@ static State_Load_Status load_path_nodes(Messenger *m, const uint8_t *data, uint return STATE_LOAD_STATUS_CONTINUE; } -non_null() -static void m_register_default_plugins(Messenger *m) +static void m_register_default_plugins(Messenger *_Nonnull m) { m_register_state_plugin(m, STATE_TYPE_NOSPAMKEYS, nospam_keys_size, load_nospam_keys, save_nospam_keys); m_register_state_plugin(m, STATE_TYPE_DHT, m_dht_size, m_dht_load, save_dht); @@ -3411,7 +3311,7 @@ uint32_t count_friendlist(const Messenger *m) * If the array was too small, the contents * of out_list will be truncated to list_size. */ -uint32_t copy_friendlist(Messenger const *m, uint32_t *out_list, uint32_t list_size) +uint32_t copy_friendlist(const Messenger *m, uint32_t *out_list, uint32_t list_size) { if (out_list == nullptr) { return 0; @@ -3438,9 +3338,8 @@ uint32_t copy_friendlist(Messenger const *m, uint32_t *out_list, uint32_t list_s } static fr_friend_request_cb m_handle_friend_request; -non_null(1, 2, 3) nullable(5) static void m_handle_friend_request( - void *object, const uint8_t *public_key, const uint8_t *message, size_t length, void *user_data) + void *_Nonnull object, const uint8_t *_Nonnull public_key, const uint8_t *_Nonnull message, size_t length, void *_Nullable user_data) { Messenger *m = (Messenger *)object; assert(m != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/Messenger.h b/external/toxcore/c-toxcore/toxcore/Messenger.h index 1286ddf..b45c1dd 100644 --- a/external/toxcore/c-toxcore/toxcore/Messenger.h +++ b/external/toxcore/c-toxcore/toxcore/Messenger.h @@ -54,19 +54,19 @@ typedef struct Messenger Messenger; #endif /* MESSENGER_DEFINED */ // Returns the size of the data -typedef uint32_t m_state_size_cb(const Messenger *m); +typedef uint32_t m_state_size_cb(const Messenger *_Nonnull m); // Returns the new pointer to data -typedef uint8_t *m_state_save_cb(const Messenger *m, uint8_t *data); +typedef uint8_t *m_state_save_cb(const Messenger *_Nonnull m, uint8_t *_Nonnull data); // Returns if there were any erros during loading -typedef State_Load_Status m_state_load_cb(Messenger *m, const uint8_t *data, uint32_t length); +typedef State_Load_Status m_state_load_cb(Messenger *_Nonnull m, const uint8_t *_Nonnull data, uint32_t length); typedef struct Messenger_State_Plugin { State_Type type; - m_state_size_cb *size; - m_state_save_cb *save; - m_state_load_cb *load; + m_state_size_cb *_Nullable size; + m_state_save_cb *_Nullable save; + m_state_load_cb *_Nullable load; } Messenger_State_Plugin; typedef struct Messenger_Options { @@ -81,11 +81,11 @@ typedef struct Messenger_Options { bool dht_announcements_enabled; bool groups_persistence_enabled; - logger_cb *log_callback; - void *log_context; - void *log_user_data; + logger_cb *_Nullable log_callback; + void *_Nullable log_context; + void *_Nullable log_user_data; - Messenger_State_Plugin *state_plugins; + Messenger_State_Plugin *_Nullable state_plugins; uint8_t state_plugins_length; bool dns_enabled; @@ -94,7 +94,7 @@ typedef struct Messenger_Options { struct Receipts { uint32_t packet_num; uint32_t msg_id; - struct Receipts *next; + struct Receipts *_Nullable next; }; /** Status definitions. */ @@ -177,36 +177,36 @@ typedef enum Filekind { FILEKIND_AVATAR, } Filekind; -typedef void m_self_connection_status_cb(Messenger *m, Onion_Connection_Status connection_status, void *user_data); -typedef void m_friend_status_cb(Messenger *m, uint32_t friend_number, unsigned int status, void *user_data); -typedef void m_friend_connection_status_cb(Messenger *m, uint32_t friend_number, unsigned int connection_status, - void *user_data); -typedef void m_friend_message_cb(Messenger *m, uint32_t friend_number, unsigned int message_type, - const uint8_t *message, size_t length, void *user_data); -typedef void m_file_recv_control_cb(Messenger *m, uint32_t friend_number, uint32_t file_number, unsigned int control, - void *user_data); -typedef void m_friend_request_cb(Messenger *m, const uint8_t *public_key, const uint8_t *message, size_t length, - void *user_data); -typedef void m_friend_name_cb(Messenger *m, uint32_t friend_number, const uint8_t *name, size_t length, - void *user_data); -typedef void m_friend_status_message_cb(Messenger *m, uint32_t friend_number, const uint8_t *message, size_t length, - void *user_data); -typedef void m_friend_typing_cb(Messenger *m, uint32_t friend_number, bool is_typing, void *user_data); -typedef void m_friend_read_receipt_cb(Messenger *m, uint32_t friend_number, uint32_t message_id, void *user_data); -typedef void m_file_recv_cb(Messenger *m, uint32_t friend_number, uint32_t file_number, uint32_t kind, - uint64_t file_size, const uint8_t *filename, size_t filename_length, void *user_data); -typedef void m_file_chunk_request_cb(Messenger *m, uint32_t friend_number, uint32_t file_number, uint64_t position, - size_t length, void *user_data); -typedef void m_file_recv_chunk_cb(Messenger *m, uint32_t friend_number, uint32_t file_number, uint64_t position, - const uint8_t *data, size_t length, void *user_data); -typedef void m_friend_lossy_packet_cb(Messenger *m, uint32_t friend_number, uint8_t packet_id, const uint8_t *data, - size_t length, void *user_data); -typedef void m_friend_lossless_packet_cb(Messenger *m, uint32_t friend_number, uint8_t packet_id, const uint8_t *data, - size_t length, void *user_data); -typedef void m_conference_invite_cb(Messenger *m, uint32_t friend_number, const uint8_t *cookie, uint16_t length, - void *user_data); -typedef void m_group_invite_cb(const Messenger *m, uint32_t friend_number, const uint8_t *invite_data, size_t length, - const uint8_t *group_name, size_t group_name_length, void *user_data); +typedef void m_self_connection_status_cb(Messenger *_Nonnull m, Onion_Connection_Status connection_status, void *_Nullable user_data); +typedef void m_friend_status_cb(Messenger *_Nonnull m, uint32_t friend_number, unsigned int status, void *_Nullable user_data); +typedef void m_friend_connection_status_cb(Messenger *_Nonnull m, uint32_t friend_number, unsigned int connection_status, + void *_Nullable user_data); +typedef void m_friend_message_cb(Messenger *_Nonnull m, uint32_t friend_number, unsigned int message_type, + const uint8_t *_Nonnull message, size_t length, void *_Nullable user_data); +typedef void m_file_recv_control_cb(Messenger *_Nonnull m, uint32_t friend_number, uint32_t file_number, unsigned int control, + void *_Nullable user_data); +typedef void m_friend_request_cb(Messenger *_Nonnull m, const uint8_t *_Nonnull public_key, const uint8_t *_Nonnull message, size_t length, + void *_Nullable user_data); +typedef void m_friend_name_cb(Messenger *_Nonnull m, uint32_t friend_number, const uint8_t *_Nonnull name, size_t length, + void *_Nullable user_data); +typedef void m_friend_status_message_cb(Messenger *_Nonnull m, uint32_t friend_number, const uint8_t *_Nonnull message, size_t length, + void *_Nullable user_data); +typedef void m_friend_typing_cb(Messenger *_Nonnull m, uint32_t friend_number, bool is_typing, void *_Nullable user_data); +typedef void m_friend_read_receipt_cb(Messenger *_Nonnull m, uint32_t friend_number, uint32_t message_id, void *_Nullable user_data); +typedef void m_file_recv_cb(Messenger *_Nonnull m, uint32_t friend_number, uint32_t file_number, uint32_t kind, + uint64_t file_size, const uint8_t *_Nonnull filename, size_t filename_length, void *_Nullable user_data); +typedef void m_file_chunk_request_cb(Messenger *_Nonnull m, uint32_t friend_number, uint32_t file_number, uint64_t position, + size_t length, void *_Nullable user_data); +typedef void m_file_recv_chunk_cb(Messenger *_Nonnull m, uint32_t friend_number, uint32_t file_number, uint64_t position, + const uint8_t *_Nullable data, size_t length, void *_Nullable user_data); +typedef void m_friend_lossy_packet_cb(Messenger *_Nonnull m, uint32_t friend_number, uint8_t packet_id, const uint8_t *_Nonnull data, + size_t length, void *_Nullable user_data); +typedef void m_friend_lossless_packet_cb(Messenger *_Nonnull m, uint32_t friend_number, uint8_t packet_id, const uint8_t *_Nonnull data, + size_t length, void *_Nullable user_data); +typedef void m_conference_invite_cb(Messenger *_Nonnull m, uint32_t friend_number, const uint8_t *_Nonnull cookie, uint16_t length, + void *_Nullable user_data); +typedef void m_group_invite_cb(const Messenger *_Nonnull m, uint32_t friend_number, const uint8_t *_Nonnull invite_data, size_t length, + const uint8_t *_Nullable group_name, size_t group_name_length, void *_Nullable user_data); typedef struct Friend { uint8_t real_pk[CRYPTO_PUBLIC_KEY_SIZE]; @@ -236,33 +236,33 @@ typedef struct Friend { uint32_t num_sending_files; struct File_Transfers file_receiving[MAX_CONCURRENT_FILE_PIPES]; - struct Receipts *receipts_start; - struct Receipts *receipts_end; + struct Receipts *_Nullable receipts_start; + struct Receipts *_Nullable receipts_end; } Friend; struct Messenger { - Logger *log; - Mono_Time *mono_time; - const Memory *mem; - const Random *rng; - const Network *ns; + Logger *_Nullable log; + Mono_Time *_Nullable mono_time; + const Memory *_Nullable mem; + const Random *_Nullable rng; + const Network *_Nullable ns; - Networking_Core *net; - Net_Crypto *net_crypto; - Net_Profile *tcp_np; - DHT *dht; + Networking_Core *_Nonnull net; + Net_Crypto *_Nonnull net_crypto; + Net_Profile *_Nullable tcp_np; + DHT *_Nonnull dht; - Forwarding *forwarding; - Announcements *announce; + Forwarding *_Nullable forwarding; + Announcements *_Nullable announce; - Onion *onion; - Onion_Announce *onion_a; - Onion_Client *onion_c; + Onion *_Nullable onion; + Onion_Announce *_Nullable onion_a; + Onion_Client *_Nullable onion_c; - Friend_Connections *fr_c; + Friend_Connections *_Nullable fr_c; - TCP_Server *tcp_server; - Friend_Requests *fr; + TCP_Server *_Nullable tcp_server; + Friend_Requests *_Nullable fr; uint8_t name[MAX_NAME_LENGTH]; uint16_t name_length; @@ -271,43 +271,43 @@ struct Messenger { Userstatus userstatus; - Friend *friendlist; + Friend *_Nullable friendlist; uint32_t numfriends; uint64_t lastdump; uint8_t is_receiving_file; - GC_Session *group_handler; - GC_Announces_List *group_announce; + GC_Session *_Nonnull group_handler; + GC_Announces_List *_Nonnull group_announce; bool has_added_relays; // If the first connection has occurred in do_messenger uint16_t num_loaded_relays; Node_format loaded_relays[NUM_SAVED_TCP_RELAYS]; // Relays loaded from config - m_friend_request_cb *friend_request; - m_friend_message_cb *friend_message; - m_friend_name_cb *friend_namechange; - m_friend_status_message_cb *friend_statusmessagechange; - m_friend_status_cb *friend_userstatuschange; - m_friend_typing_cb *friend_typingchange; - m_friend_read_receipt_cb *read_receipt; - m_friend_connection_status_cb *friend_connectionstatuschange; + m_friend_request_cb *_Nullable friend_request; + m_friend_message_cb *_Nullable friend_message; + m_friend_name_cb *_Nullable friend_namechange; + m_friend_status_message_cb *_Nullable friend_statusmessagechange; + m_friend_status_cb *_Nullable friend_userstatuschange; + m_friend_typing_cb *_Nullable friend_typingchange; + m_friend_read_receipt_cb *_Nullable read_receipt; + m_friend_connection_status_cb *_Nullable friend_connectionstatuschange; - struct Group_Chats *conferences_object; - m_conference_invite_cb *conference_invite; + struct Group_Chats *_Nullable conferences_object; + m_conference_invite_cb *_Nullable conference_invite; - m_group_invite_cb *group_invite; + m_group_invite_cb *_Nullable group_invite; - m_file_recv_cb *file_sendrequest; - m_file_recv_control_cb *file_filecontrol; - m_file_recv_chunk_cb *file_filedata; - m_file_chunk_request_cb *file_reqchunk; + m_file_recv_cb *_Nullable file_sendrequest; + m_file_recv_control_cb *_Nullable file_filecontrol; + m_file_recv_chunk_cb *_Nullable file_filedata; + m_file_chunk_request_cb *_Nullable file_reqchunk; - m_friend_lossy_packet_cb *lossy_packethandler; - m_friend_lossless_packet_cb *lossless_packethandler; + m_friend_lossy_packet_cb *_Nullable lossy_packethandler; + m_friend_lossless_packet_cb *_Nullable lossless_packethandler; - m_self_connection_status_cb *core_connection_change; + m_self_connection_status_cb *_Nullable core_connection_change; Onion_Connection_Status last_connection_status; Messenger_Options options; @@ -318,16 +318,14 @@ struct Messenger { * * @param friendnumber The index in the friend list. */ -non_null() -bool friend_is_valid(const Messenger *m, int32_t friendnumber); +bool friend_is_valid(const Messenger *_Nonnull m, int32_t friendnumber); /** * Format: `[real_pk (32 bytes)][nospam number (4 bytes)][checksum (2 bytes)]` * * @param[out] address FRIEND_ADDRESS_SIZE byte address to give to others. */ -non_null() -void getaddress(const Messenger *m, uint8_t *address); +void getaddress(const Messenger *_Nonnull m, uint8_t *_Nonnull address); /** * Add a friend. @@ -350,8 +348,7 @@ void getaddress(const Messenger *m, uint8_t *address); * (the nospam for that friend was set to the new one). * @retval FAERR_NOMEM if increasing the friend list size fails. */ -non_null() -int32_t m_addfriend(Messenger *m, const uint8_t *address, const uint8_t *data, uint16_t length); +int32_t m_addfriend(Messenger *_Nonnull m, const uint8_t *_Nonnull address, const uint8_t *_Nonnull data, uint16_t length); /** @brief Add a friend without sending a friendrequest. * @return the friend number if success. @@ -360,27 +357,23 @@ int32_t m_addfriend(Messenger *m, const uint8_t *address, const uint8_t *data, u * @retval -6 if bad checksum in address. * @retval -8 if increasing the friend list size fails. */ -non_null() -int32_t m_addfriend_norequest(Messenger *m, const uint8_t *real_pk); +int32_t m_addfriend_norequest(Messenger *_Nonnull m, const uint8_t *_Nonnull real_pk); /** @brief Initializes the friend connection and onion connection for a groupchat. * * @retval true on success. */ -non_null() -bool m_create_group_connection(Messenger *m, GC_Chat *chat); +bool m_create_group_connection(Messenger *_Nonnull m, GC_Chat *_Nonnull chat); /* * Kills the friend connection for a groupchat. */ -non_null() -void m_kill_group_connection(Messenger *m, const GC_Chat *chat); +void m_kill_group_connection(Messenger *_Nonnull m, const GC_Chat *_Nonnull chat); /** @return the friend number associated to that public key. * @retval -1 if no such friend. */ -non_null() -int32_t getfriend_id(const Messenger *m, const uint8_t *real_pk); +int32_t getfriend_id(const Messenger *_Nonnull m, const uint8_t *_Nonnull real_pk); /** @brief Copies the public key associated to that friend id into real_pk buffer. * @@ -389,22 +382,19 @@ int32_t getfriend_id(const Messenger *m, const uint8_t *real_pk); * @retval 0 if success. * @retval -1 if failure. */ -non_null() -int get_real_pk(const Messenger *m, int32_t friendnumber, uint8_t *real_pk); +int get_real_pk(const Messenger *_Nonnull m, int32_t friendnumber, uint8_t *_Nonnull real_pk); /** @return friend connection id on success. * @retval -1 if failure. */ -non_null() -int getfriendcon_id(const Messenger *m, int32_t friendnumber); +int getfriendcon_id(const Messenger *_Nonnull m, int32_t friendnumber); /** @brief Remove a friend. * * @retval 0 if success. * @retval -1 if failure. */ -non_null() -int m_delfriend(Messenger *m, int32_t friendnumber); +int m_delfriend(Messenger *_Nonnull m, int32_t friendnumber); /** @brief Checks friend's connection status. * @@ -413,8 +403,7 @@ int m_delfriend(Messenger *m, int32_t friendnumber); * @retval CONNECTION_NONE (0) if friend is not connected to us (Offline). * @retval -1 on failure. */ -non_null() -int m_get_friend_connectionstatus(const Messenger *m, int32_t friendnumber); +int m_get_friend_connectionstatus(const Messenger *_Nonnull m, int32_t friendnumber); /** * Checks if there exists a friend with given friendnumber. @@ -424,8 +413,7 @@ int m_get_friend_connectionstatus(const Messenger *m, int32_t friendnumber); * @retval true if friend exists. * @retval false if friend doesn't exist. */ -non_null() -bool m_friend_exists(const Messenger *m, int32_t friendnumber); +bool m_friend_exists(const Messenger *_Nonnull m, int32_t friendnumber); /** @brief Send a message of type to an online friend. * @@ -438,10 +426,8 @@ bool m_friend_exists(const Messenger *m, int32_t friendnumber); * * The value in message_id will be passed to your read_receipt callback when the other receives the message. */ -non_null(1, 4) nullable(6) -int m_send_message_generic(Messenger *m, int32_t friendnumber, uint8_t type, const uint8_t *message, uint32_t length, - uint32_t *message_id); - +int m_send_message_generic(Messenger *_Nonnull m, int32_t friendnumber, uint8_t type, const uint8_t *_Nonnull message, uint32_t length, + uint32_t *_Nullable message_id); /** @brief Set the name and name_length of a friend. * * name must be a string of maximum MAX_NAME_LENGTH length. @@ -451,8 +437,7 @@ int m_send_message_generic(Messenger *m, int32_t friendnumber, uint8_t type, con * @retval 0 if success. * @retval -1 if failure. */ -non_null() -int setfriendname(Messenger *m, int32_t friendnumber, const uint8_t *name, uint16_t length); +int setfriendname(Messenger *_Nonnull m, int32_t friendnumber, const uint8_t *_Nonnull name, uint16_t length); /** @brief Set our nickname. * @@ -463,8 +448,7 @@ int setfriendname(Messenger *m, int32_t friendnumber, const uint8_t *name, uint1 * @retval 0 if success. * @retval -1 if failure. */ -non_null() -int setname(Messenger *m, const uint8_t *name, uint16_t length); +int setname(Messenger *_Nonnull m, const uint8_t *_Nonnull name, uint16_t length); /** * @brief Get your nickname. @@ -475,8 +459,7 @@ int setname(Messenger *m, const uint8_t *name, uint16_t length); * @return length of the name. * @retval 0 on error. */ -non_null() -uint16_t getself_name(const Messenger *m, uint8_t *name); +uint16_t getself_name(const Messenger *_Nonnull m, uint8_t *_Nonnull name); /** @brief Get name of friendnumber and put it in name. * @@ -485,23 +468,22 @@ uint16_t getself_name(const Messenger *m, uint8_t *name); * @return length of name if success. * @retval -1 if failure. */ -non_null() -int getname(const Messenger *m, int32_t friendnumber, uint8_t *name); +int getname(const Messenger *_Nonnull m, int32_t friendnumber, uint8_t *_Nonnull name); /** @return the length of name, including null on success. * @retval -1 on failure. */ -non_null() int m_get_name_size(const Messenger *m, int32_t friendnumber); -non_null() int m_get_self_name_size(const Messenger *m); +int m_get_name_size(const Messenger *_Nonnull m, int32_t friendnumber); +int m_get_self_name_size(const Messenger *_Nonnull m); /** @brief Set our user status. * You are responsible for freeing status after. * - * @retval 0 on success. - * @retval -1 on failure. + * @retval 0 if success. + * @retval -1 if failure. */ -non_null() int m_set_statusmessage(Messenger *m, const uint8_t *status, uint16_t length); -non_null() int m_set_userstatus(Messenger *m, uint8_t status); +int m_set_statusmessage(Messenger *_Nonnull m, const uint8_t *_Nonnull status, uint16_t length); +int m_set_userstatus(Messenger *_Nonnull m, uint8_t status); /** * Guaranteed to be at most MAX_STATUSMESSAGE_LENGTH. @@ -509,8 +491,8 @@ non_null() int m_set_userstatus(Messenger *m, uint8_t status); * @return the length of friendnumber's status message, including null on success. * @retval -1 on failure. */ -non_null() int m_get_statusmessage_size(const Messenger *m, int32_t friendnumber); -non_null() int m_get_self_statusmessage_size(const Messenger *m); +int m_get_statusmessage_size(const Messenger *_Nonnull m, int32_t friendnumber); +int m_get_self_statusmessage_size(const Messenger *_Nonnull m); /** @brief Copy friendnumber's status message into buf, truncating if size is over maxlen. * @@ -520,8 +502,8 @@ non_null() int m_get_self_statusmessage_size(const Messenger *m); * @return the length of the copied data on success * @retval -1 on failure. */ -non_null() int m_copy_statusmessage(const Messenger *m, int32_t friendnumber, uint8_t *buf, uint32_t maxlen); -non_null() int m_copy_self_statusmessage(const Messenger *m, uint8_t *buf); +int m_copy_statusmessage(const Messenger *_Nonnull m, int32_t friendnumber, uint8_t *_Nonnull buf, uint32_t maxlen); +int m_copy_self_statusmessage(const Messenger *_Nonnull m, uint8_t *_Nonnull buf); /** @brief return one of Userstatus values. * @@ -529,13 +511,13 @@ non_null() int m_copy_self_statusmessage(const Messenger *m, uint8_t *buf); * As above, the self variant will return our own Userstatus. * If friendnumber is invalid, this shall return USERSTATUS_INVALID. */ -non_null() uint8_t m_get_userstatus(const Messenger *m, int32_t friendnumber); -non_null() uint8_t m_get_self_userstatus(const Messenger *m); +uint8_t m_get_userstatus(const Messenger *_Nonnull m, int32_t friendnumber); +uint8_t m_get_self_userstatus(const Messenger *_Nonnull m); /** @brief returns timestamp of last time friendnumber was seen online or 0 if never seen. * if friendnumber is invalid this function will return UINT64_MAX. */ -non_null() uint64_t m_get_last_online(const Messenger *m, int32_t friendnumber); +uint64_t m_get_last_online(const Messenger *_Nonnull m, int32_t friendnumber); /** @brief Set our typing status for a friend. * You are responsible for turning it on or off. @@ -543,8 +525,7 @@ non_null() uint64_t m_get_last_online(const Messenger *m, int32_t friendnumber); * @retval 0 on success. * @retval -1 on failure. */ -non_null() -int m_set_usertyping(Messenger *m, int32_t friendnumber, bool is_typing); +int m_set_usertyping(Messenger *_Nonnull m, int32_t friendnumber, bool is_typing); /** @brief Get the typing status of a friend. * @@ -552,32 +533,29 @@ int m_set_usertyping(Messenger *m, int32_t friendnumber, bool is_typing); * @retval 0 if friend is not typing. * @retval 1 if friend is typing. */ -non_null() -int m_get_istyping(const Messenger *m, int32_t friendnumber); +int m_get_istyping(const Messenger *_Nonnull m, int32_t friendnumber); /** Set the function that will be executed when a friend request is received. */ -non_null(1) nullable(2) -void m_callback_friendrequest(Messenger *m, m_friend_request_cb *function); - +void m_callback_friendrequest(Messenger *_Nonnull m, m_friend_request_cb *_Nullable function); /** Set the function that will be executed when a message from a friend is received. */ -non_null() void m_callback_friendmessage(Messenger *m, m_friend_message_cb *function); +void m_callback_friendmessage(Messenger *_Nonnull m, m_friend_message_cb *_Nonnull function); /** @brief Set the callback for name changes. * You are not responsible for freeing newname. */ -non_null() void m_callback_namechange(Messenger *m, m_friend_name_cb *function); +void m_callback_namechange(Messenger *_Nonnull m, m_friend_name_cb *_Nonnull function); /** @brief Set the callback for status message changes. * * You are not responsible for freeing newstatus */ -non_null() void m_callback_statusmessage(Messenger *m, m_friend_status_message_cb *function); +void m_callback_statusmessage(Messenger *_Nonnull m, m_friend_status_message_cb *_Nonnull function); /** @brief Set the callback for status type changes. */ -non_null() void m_callback_userstatus(Messenger *m, m_friend_status_cb *function); +void m_callback_userstatus(Messenger *_Nonnull m, m_friend_status_cb *_Nonnull function); /** @brief Set the callback for typing changes. */ -non_null() void m_callback_typingchange(Messenger *m, m_friend_typing_cb *function); +void m_callback_typingchange(Messenger *_Nonnull m, m_friend_typing_cb *_Nonnull function); /** @brief Set the callback for read receipts. * @@ -587,7 +565,7 @@ non_null() void m_callback_typingchange(Messenger *m, m_friend_typing_cb *functi * Since core doesn't track ids for you, receipt may not correspond to any message. * In that case, you should discard it. */ -non_null() void m_callback_read_receipt(Messenger *m, m_friend_read_receipt_cb *function); +void m_callback_read_receipt(Messenger *_Nonnull m, m_friend_read_receipt_cb *_Nonnull function); /** @brief Set the callback for connection status changes. * @@ -599,29 +577,24 @@ non_null() void m_callback_read_receipt(Messenger *m, m_friend_read_receipt_cb * * "after being previously online" part. * It's assumed that when adding friends, their connection status is offline. */ -non_null() void m_callback_connectionstatus(Messenger *m, m_friend_connection_status_cb *function); +void m_callback_connectionstatus(Messenger *_Nonnull m, m_friend_connection_status_cb *_Nonnull function); /** @brief Set the callback for typing changes. */ -non_null() void m_callback_core_connection(Messenger *m, m_self_connection_status_cb *function); +void m_callback_core_connection(Messenger *_Nonnull m, m_self_connection_status_cb *_Nonnull function); /*** CONFERENCES */ /** @brief Set the callback for conference invites. */ -non_null(1) nullable(2) -void m_callback_conference_invite(Messenger *m, m_conference_invite_cb *function); - +void m_callback_conference_invite(Messenger *_Nonnull m, m_conference_invite_cb *_Nullable function); /* Set the callback for group invites. */ -non_null(1) nullable(2) -void m_callback_group_invite(Messenger *m, m_group_invite_cb *function); - +void m_callback_group_invite(Messenger *_Nonnull m, m_group_invite_cb *_Nullable function); /** @brief Send a conference invite packet. * * return true on success * return false on failure */ -non_null() -bool send_conference_invite_packet(const Messenger *m, int32_t friendnumber, const uint8_t *data, uint16_t length); +bool send_conference_invite_packet(const Messenger *_Nonnull m, int32_t friendnumber, const uint8_t *_Nonnull data, uint16_t length); /* Send a group invite packet. * @@ -630,22 +603,21 @@ bool send_conference_invite_packet(const Messenger *m, int32_t friendnumber, con * * return true on success */ -non_null() -bool send_group_invite_packet(const Messenger *m, uint32_t friendnumber, const uint8_t *packet, uint16_t length); +bool send_group_invite_packet(const Messenger *_Nonnull m, uint32_t friendnumber, const uint8_t *_Nonnull packet, uint16_t length); /*** FILE SENDING */ /** @brief Set the callback for file send requests. */ -non_null() void callback_file_sendrequest(Messenger *m, m_file_recv_cb *function); +void callback_file_sendrequest(Messenger *_Nonnull m, m_file_recv_cb *_Nonnull function); /** @brief Set the callback for file control requests. */ -non_null() void callback_file_control(Messenger *m, m_file_recv_control_cb *function); +void callback_file_control(Messenger *_Nonnull m, m_file_recv_control_cb *_Nonnull function); /** @brief Set the callback for file data. */ -non_null() void callback_file_data(Messenger *m, m_file_recv_chunk_cb *function); +void callback_file_data(Messenger *_Nonnull m, m_file_recv_chunk_cb *_Nonnull function); /** @brief Set the callback for file request chunk. */ -non_null() void callback_file_reqchunk(Messenger *m, m_file_chunk_request_cb *function); +void callback_file_reqchunk(Messenger *_Nonnull m, m_file_chunk_request_cb *_Nonnull function); /** @brief Copy the file transfer file id to file_id * @@ -653,8 +625,7 @@ non_null() void callback_file_reqchunk(Messenger *m, m_file_chunk_request_cb *fu * @retval -1 if friend not valid. * @retval -2 if filenumber not valid */ -non_null() -int file_get_id(const Messenger *m, int32_t friendnumber, uint32_t filenumber, uint8_t *file_id); +int file_get_id(const Messenger *_Nonnull m, int32_t friendnumber, uint32_t filenumber, uint8_t *_Nonnull file_id); /** @brief Send a file send request. * @@ -666,9 +637,8 @@ int file_get_id(const Messenger *m, int32_t friendnumber, uint32_t filenumber, u * @retval -3 if no more file sending slots left. * @retval -4 if could not send packet (friend offline). */ -non_null() -long int new_filesender(const Messenger *m, int32_t friendnumber, uint32_t file_type, uint64_t filesize, - const uint8_t *file_id, const uint8_t *filename, uint16_t filename_length); +long int new_filesender(const Messenger *_Nonnull m, int32_t friendnumber, uint32_t file_type, uint64_t filesize, const uint8_t *_Nonnull file_id, const uint8_t *_Nonnull filename, + uint16_t filename_length); /** @brief Send a file control request. * @@ -682,8 +652,7 @@ long int new_filesender(const Messenger *m, int32_t friendnumber, uint32_t file_ * @retval -7 if resume file failed because it wasn't paused. * @retval -8 if packet failed to send. */ -non_null() -int file_control(const Messenger *m, int32_t friendnumber, uint32_t filenumber, unsigned int control); +int file_control(const Messenger *_Nonnull m, int32_t friendnumber, uint32_t filenumber, unsigned int control); /** @brief Send a seek file control request. * @@ -696,8 +665,7 @@ int file_control(const Messenger *m, int32_t friendnumber, uint32_t filenumber, * @retval -6 if position bad. * @retval -8 if packet failed to send. */ -non_null() -int file_seek(const Messenger *m, int32_t friendnumber, uint32_t filenumber, uint64_t position); +int file_seek(const Messenger *_Nonnull m, int32_t friendnumber, uint32_t filenumber, uint64_t position); /** @brief Send file data. * @@ -710,14 +678,12 @@ int file_seek(const Messenger *m, int32_t friendnumber, uint32_t filenumber, uin * @retval -6 if packet queue full. * @retval -7 if wrong position. */ -non_null(1) nullable(5) -int send_file_data(const Messenger *m, int32_t friendnumber, uint32_t filenumber, uint64_t position, - const uint8_t *data, uint16_t length); - +int send_file_data(const Messenger *_Nonnull m, int32_t friendnumber, uint32_t filenumber, uint64_t position, + const uint8_t *_Nullable data, uint16_t length); /*** CUSTOM PACKETS */ /** @brief Set handlers for custom lossy packets. */ -non_null() void custom_lossy_packet_registerhandler(Messenger *m, m_friend_lossy_packet_cb *lossy_packethandler); +void custom_lossy_packet_registerhandler(Messenger *_Nonnull m, m_friend_lossy_packet_cb *_Nonnull lossy_packethandler); /** @brief High level function to send custom lossy packets. * @@ -728,12 +694,10 @@ non_null() void custom_lossy_packet_registerhandler(Messenger *m, m_friend_lossy * @retval -5 if packet failed to send because of other error. * @retval 0 on success. */ -non_null() -int m_send_custom_lossy_packet(const Messenger *m, int32_t friendnumber, const uint8_t *data, uint32_t length); +int m_send_custom_lossy_packet(const Messenger *_Nonnull m, int32_t friendnumber, const uint8_t *_Nonnull data, uint32_t length); /** @brief Set handlers for custom lossless packets. */ -non_null() -void custom_lossless_packet_registerhandler(Messenger *m, m_friend_lossless_packet_cb *lossless_packethandler); +void custom_lossless_packet_registerhandler(Messenger *_Nonnull m, m_friend_lossless_packet_cb *_Nonnull lossless_packethandler); /** @brief High level function to send custom lossless packets. * @@ -744,8 +708,7 @@ void custom_lossless_packet_registerhandler(Messenger *m, m_friend_lossless_pack * @retval -5 if packet failed to send because of other error. * @retval 0 on success. */ -non_null() -int send_custom_lossless_packet(const Messenger *m, int32_t friendnumber, const uint8_t *data, uint32_t length); +int send_custom_lossless_packet(const Messenger *_Nonnull m, int32_t friendnumber, const uint8_t *_Nonnull data, uint32_t length); /*** Messenger constructor/destructor/operations. */ @@ -763,29 +726,23 @@ typedef enum Messenger_Error { * * if error is not NULL it will be set to one of the values in the enum above. */ -non_null() -Messenger *new_messenger(Mono_Time *mono_time, const Memory *mem, const Random *rng, const Network *ns, - Messenger_Options *options, Messenger_Error *error); +Messenger *_Nullable new_messenger(Mono_Time *_Nonnull mono_time, const Memory *_Nonnull mem, const Random *_Nonnull rng, const Network *_Nonnull ns, Messenger_Options *_Nonnull options, + Messenger_Error *_Nonnull error); /** @brief Run this before closing shop. * * Free all datastructures. */ -nullable(1) -void kill_messenger(Messenger *m); - +void kill_messenger(Messenger *_Nullable m); /** @brief The main loop that needs to be run at least 20 times per second. */ -non_null(1) nullable(2) -void do_messenger(Messenger *m, void *userdata); - +void do_messenger(Messenger *_Nonnull m, void *_Nullable userdata); /** * @brief Return the time in milliseconds before `do_messenger()` should be called again * for optimal performance. * * @return time (in ms) before the next `do_messenger()` needs to be run on success. */ -non_null() -uint32_t messenger_run_interval(const Messenger *m); +uint32_t messenger_run_interval(const Messenger *_Nonnull m); /* SAVING AND LOADING FUNCTIONS: */ @@ -794,19 +751,13 @@ uint32_t messenger_run_interval(const Messenger *m); * @retval true on success * @retval false on error */ -non_null() -bool m_register_state_plugin(Messenger *m, State_Type type, - m_state_size_cb *size_callback, - m_state_load_cb *load_callback, - m_state_save_cb *save_callback); +bool m_register_state_plugin(Messenger *_Nonnull m, State_Type type, m_state_size_cb *_Nonnull size_callback, m_state_load_cb *_Nonnull load_callback, m_state_save_cb *_Nonnull save_callback); /** return size of the messenger data (for saving). */ -non_null() -uint32_t messenger_size(const Messenger *m); +uint32_t messenger_size(const Messenger *_Nonnull m); /** Save the messenger in data (must be allocated memory of size at least `Messenger_size()`) */ -non_null() -uint8_t *messenger_save(const Messenger *m, uint8_t *data); +uint8_t *_Nonnull messenger_save(const Messenger *_Nonnull m, uint8_t *_Nonnull data); /** @brief Load a state section. * @@ -816,17 +767,14 @@ uint8_t *messenger_save(const Messenger *m, uint8_t *data); * @param status Result of loading section is stored here if the section is handled. * @return true iff section handled. */ -non_null() -bool messenger_load_state_section(Messenger *m, const uint8_t *data, uint32_t length, uint16_t type, - State_Load_Status *status); +bool messenger_load_state_section(Messenger *_Nonnull m, const uint8_t *_Nonnull data, uint32_t length, uint16_t type, State_Load_Status *_Nonnull status); /** @brief Return the number of friends in the instance m. * * You should use this to determine how much memory to allocate * for copy_friendlist. */ -non_null() -uint32_t count_friendlist(const Messenger *m); +uint32_t count_friendlist(const Messenger *_Nonnull m); /** @brief Copy a list of valid friend IDs into the array out_list. * If out_list is NULL, returns 0. @@ -834,10 +782,8 @@ uint32_t count_friendlist(const Messenger *m); * If the array was too small, the contents * of out_list will be truncated to list_size. */ -non_null() -uint32_t copy_friendlist(const Messenger *m, uint32_t *out_list, uint32_t list_size); +uint32_t copy_friendlist(const Messenger *_Nonnull m, uint32_t *_Nonnull out_list, uint32_t list_size); -non_null() -bool m_is_receiving_file(Messenger *m); +bool m_is_receiving_file(Messenger *_Nonnull m); #endif /* C_TOXCORE_TOXCORE_MESSENGER_H */ diff --git a/external/toxcore/c-toxcore/toxcore/TCP_client.c b/external/toxcore/c-toxcore/toxcore/TCP_client.c index 1982412..4defce7 100644 --- a/external/toxcore/c-toxcore/toxcore/TCP_client.c +++ b/external/toxcore/c-toxcore/toxcore/TCP_client.c @@ -107,8 +107,8 @@ void tcp_con_set_custom_uint(TCP_Client_Connection *con, uint32_t value) * @retval true on success * @retval false on failure */ -non_null() -static bool connect_sock_to(const Network *ns, const Logger *logger, const Memory *mem, Socket sock, const IP_Port *ip_port, const TCP_Proxy_Info *proxy_info) +static bool connect_sock_to(const Network *_Nonnull ns, const Logger *_Nonnull logger, const Memory *_Nonnull mem, Socket sock, const IP_Port *_Nonnull ip_port, + const TCP_Proxy_Info *_Nonnull proxy_info) { Net_Err_Connect err; if (proxy_info->proxy_type != TCP_PROXY_NONE) { @@ -133,8 +133,7 @@ static bool connect_sock_to(const Network *ns, const Logger *logger, const Memor * @retval 1 on success. * @retval 0 on failure. */ -non_null() -static int proxy_http_generate_connection_request(TCP_Client_Connection *tcp_conn) +static int proxy_http_generate_connection_request(TCP_Client_Connection *_Nonnull tcp_conn) { const char one[] = "CONNECT "; const char two[] = " HTTP/1.1\nHost: "; @@ -164,8 +163,7 @@ static int proxy_http_generate_connection_request(TCP_Client_Connection *tcp_con * @retval 0 if no data received. * @retval -1 on failure (connection refused). */ -non_null() -static int proxy_http_read_connection_response(const Logger *logger, const TCP_Client_Connection *tcp_conn) +static int proxy_http_read_connection_response(const Logger *_Nonnull logger, const TCP_Client_Connection *_Nonnull tcp_conn) { const char success[] = "200"; uint8_t data[16]; // draining works the best if the length is a power of 2 @@ -214,8 +212,7 @@ enum Tcp_Socks5_Proxy_Hs { TCP_SOCKS5_PROXY_HS_ADDR_TYPE_IPV6 = 0x04, }; -non_null() -static void proxy_socks5_generate_greetings(TCP_Client_Connection *tcp_conn) +static void proxy_socks5_generate_greetings(TCP_Client_Connection *_Nonnull tcp_conn) { tcp_conn->con.last_packet[0] = TCP_SOCKS5_PROXY_HS_VERSION_SOCKS5; tcp_conn->con.last_packet[1] = TCP_SOCKS5_PROXY_HS_AUTH_METHODS_SUPPORTED; @@ -230,8 +227,7 @@ static void proxy_socks5_generate_greetings(TCP_Client_Connection *tcp_conn) * @retval 0 if no data received. * @retval -1 on failure (connection refused). */ -non_null() -static int socks5_read_handshake_response(const Logger *logger, const TCP_Client_Connection *tcp_conn) +static int socks5_read_handshake_response(const Logger *_Nonnull logger, const TCP_Client_Connection *_Nonnull tcp_conn) { uint8_t data[2]; const TCP_Connection *con = &tcp_conn->con; @@ -248,8 +244,7 @@ static int socks5_read_handshake_response(const Logger *logger, const TCP_Client return -1; } -non_null() -static void proxy_socks5_generate_connection_request(TCP_Client_Connection *tcp_conn) +static void proxy_socks5_generate_connection_request(TCP_Client_Connection *_Nonnull tcp_conn) { tcp_conn->con.last_packet[0] = TCP_SOCKS5_PROXY_HS_VERSION_SOCKS5; tcp_conn->con.last_packet[1] = TCP_SOCKS5_PROXY_HS_COMM_ESTABLISH_REQUEST; @@ -280,8 +275,7 @@ static void proxy_socks5_generate_connection_request(TCP_Client_Connection *tcp_ * @retval 0 if no data received. * @retval -1 on failure (connection refused). */ -non_null() -static int proxy_socks5_read_connection_response(const Logger *logger, const TCP_Client_Connection *tcp_conn) +static int proxy_socks5_read_connection_response(const Logger *_Nonnull logger, const TCP_Client_Connection *_Nonnull tcp_conn) { if (net_family_is_ipv4(tcp_conn->ip_port.ip.family)) { uint8_t data[4 + sizeof(IP4) + sizeof(uint16_t)]; @@ -316,8 +310,7 @@ static int proxy_socks5_read_connection_response(const Logger *logger, const TCP * @retval 0 on success. * @retval -1 on failure. */ -non_null() -static int generate_handshake(TCP_Client_Connection *tcp_conn) +static int generate_handshake(TCP_Client_Connection *_Nonnull tcp_conn) { uint8_t plain[CRYPTO_PUBLIC_KEY_SIZE + CRYPTO_NONCE_SIZE]; crypto_new_keypair(tcp_conn->con.rng, plain, tcp_conn->temp_secret_key); @@ -343,8 +336,7 @@ static int generate_handshake(TCP_Client_Connection *tcp_conn) * @retval 0 on success. * @retval -1 on failure. */ -non_null() -static int handle_handshake(TCP_Client_Connection *tcp_conn, const uint8_t *data) +static int handle_handshake(TCP_Client_Connection *_Nonnull tcp_conn, const uint8_t *_Nonnull data) { uint8_t plain[CRYPTO_PUBLIC_KEY_SIZE + CRYPTO_NONCE_SIZE]; const int len = decrypt_data_symmetric(tcp_conn->con.mem, tcp_conn->con.shared_key, data, data + CRYPTO_NONCE_SIZE, @@ -385,8 +377,8 @@ void routing_status_handler(TCP_Client_Connection *con, tcp_routing_status_cb *s con->status_callback_object = object; } -non_null() static int tcp_send_ping_response(const Logger *logger, TCP_Client_Connection *con); -non_null() static int tcp_send_ping_request(const Logger *logger, TCP_Client_Connection *con); +static int tcp_send_ping_response(const Logger *_Nonnull logger, TCP_Client_Connection *_Nonnull con); +static int tcp_send_ping_request(const Logger *_Nonnull logger, TCP_Client_Connection *_Nonnull con); /** * @retval 1 on success. @@ -472,8 +464,7 @@ void oob_data_handler(TCP_Client_Connection *con, tcp_oob_data_cb *oob_data_call * @retval 0 if could not send packet. * @retval -1 on failure (connection must be killed). */ -non_null() -static int client_send_disconnect_notification(const Logger *logger, TCP_Client_Connection *con, uint8_t id) +static int client_send_disconnect_notification(const Logger *_Nonnull logger, TCP_Client_Connection *_Nonnull con, uint8_t id) { uint8_t packet[1 + 1]; packet[0] = TCP_PACKET_DISCONNECT_NOTIFICATION; @@ -486,7 +477,7 @@ static int client_send_disconnect_notification(const Logger *logger, TCP_Client_ * @retval 0 if could not send packet. * @retval -1 on failure (connection must be killed). */ -static int tcp_send_ping_request(const Logger *logger, TCP_Client_Connection *con) +static int tcp_send_ping_request(const Logger *_Nonnull logger, TCP_Client_Connection *_Nonnull con) { if (con->ping_request_id == 0) { return 1; @@ -509,7 +500,7 @@ static int tcp_send_ping_request(const Logger *logger, TCP_Client_Connection *co * @retval 0 if could not send packet. * @retval -1 on failure (connection must be killed). */ -static int tcp_send_ping_response(const Logger *logger, TCP_Client_Connection *con) +static int tcp_send_ping_response(const Logger *_Nonnull logger, TCP_Client_Connection *_Nonnull con) { if (con->ping_response_id == 0) { return 1; @@ -595,7 +586,7 @@ void forwarding_handler(TCP_Client_Connection *con, forwarded_response_cb *forwa TCP_Client_Connection *new_tcp_connection( const Logger *logger, const Memory *mem, const Mono_Time *mono_time, const Random *rng, const Network *ns, const IP_Port *ip_port, const uint8_t *public_key, const uint8_t *self_public_key, const uint8_t *self_secret_key, - const TCP_Proxy_Info *proxy_info, Net_Profile *net_profile) + const TCP_Proxy_Info *proxy_info, Net_Profile *_Nullable net_profile) { assert(logger != nullptr); assert(mem != nullptr); @@ -699,8 +690,7 @@ TCP_Client_Connection *new_tcp_connection( return temp; } -non_null() -static int handle_tcp_client_routing_response(TCP_Client_Connection *conn, const uint8_t *data, uint16_t length) +static int handle_tcp_client_routing_response(TCP_Client_Connection *_Nonnull conn, const uint8_t *_Nonnull data, uint16_t length) { if (length != 1 + 1 + CRYPTO_PUBLIC_KEY_SIZE) { return -1; @@ -727,8 +717,7 @@ static int handle_tcp_client_routing_response(TCP_Client_Connection *conn, const return 0; } -non_null() -static int handle_tcp_client_connection_notification(TCP_Client_Connection *conn, const uint8_t *data, uint16_t length) +static int handle_tcp_client_connection_notification(TCP_Client_Connection *_Nonnull conn, const uint8_t *_Nonnull data, uint16_t length) { if (length != 1 + 1) { return -1; @@ -754,8 +743,7 @@ static int handle_tcp_client_connection_notification(TCP_Client_Connection *conn return 0; } -non_null() -static int handle_tcp_client_disconnect_notification(TCP_Client_Connection *conn, const uint8_t *data, uint16_t length) +static int handle_tcp_client_disconnect_notification(TCP_Client_Connection *_Nonnull conn, const uint8_t *_Nonnull data, uint16_t length) { if (length != 1 + 1) { return -1; @@ -785,8 +773,7 @@ static int handle_tcp_client_disconnect_notification(TCP_Client_Connection *conn return 0; } -non_null() -static int handle_tcp_client_ping(const Logger *logger, TCP_Client_Connection *conn, const uint8_t *data, uint16_t length) +static int handle_tcp_client_ping(const Logger *_Nonnull logger, TCP_Client_Connection *_Nonnull conn, const uint8_t *_Nonnull data, uint16_t length) { if (length != 1 + sizeof(uint64_t)) { return -1; @@ -799,8 +786,7 @@ static int handle_tcp_client_ping(const Logger *logger, TCP_Client_Connection *c return 0; } -non_null() -static int handle_tcp_client_pong(TCP_Client_Connection *conn, const uint8_t *data, uint16_t length) +static int handle_tcp_client_pong(TCP_Client_Connection *_Nonnull conn, const uint8_t *_Nonnull data, uint16_t length) { if (length != 1 + sizeof(uint64_t)) { return -1; @@ -820,8 +806,7 @@ static int handle_tcp_client_pong(TCP_Client_Connection *conn, const uint8_t *da return -1; } -non_null(1, 2) nullable(4) -static int handle_tcp_client_oob_recv(TCP_Client_Connection *conn, const uint8_t *data, uint16_t length, void *userdata) +static int handle_tcp_client_oob_recv(TCP_Client_Connection *_Nonnull conn, const uint8_t *_Nonnull data, uint16_t length, void *_Nullable userdata) { if (length <= 1 + CRYPTO_PUBLIC_KEY_SIZE) { return -1; @@ -839,9 +824,8 @@ static int handle_tcp_client_oob_recv(TCP_Client_Connection *conn, const uint8_t * @retval 0 on success * @retval -1 on failure */ -non_null(1, 2, 3) nullable(5) -static int handle_tcp_client_packet(const Logger *logger, TCP_Client_Connection *conn, const uint8_t *data, - uint16_t length, void *userdata) +static int handle_tcp_client_packet(const Logger *_Nonnull logger, TCP_Client_Connection *_Nonnull conn, const uint8_t *_Nonnull data, + uint16_t length, void *_Nullable userdata) { if (length <= 1) { return -1; @@ -899,8 +883,7 @@ static int handle_tcp_client_packet(const Logger *logger, TCP_Client_Connection return 0; } -non_null(1, 2) nullable(3) -static bool tcp_process_packet(const Logger *logger, TCP_Client_Connection *conn, void *userdata) +static bool tcp_process_packet(const Logger *_Nonnull logger, TCP_Client_Connection *_Nonnull conn, void *_Nullable userdata) { uint8_t packet[MAX_PACKET_SIZE]; const int len = read_packet_tcp_secure_connection(logger, conn->con.mem, conn->con.ns, conn->con.sock, &conn->next_packet_length, conn->con.shared_key, conn->recv_nonce, packet, sizeof(packet), @@ -923,9 +906,8 @@ static bool tcp_process_packet(const Logger *logger, TCP_Client_Connection *conn return true; } -non_null(1, 2, 3) nullable(4) -static int do_confirmed_tcp(const Logger *logger, TCP_Client_Connection *conn, const Mono_Time *mono_time, - void *userdata) +static int do_confirmed_tcp(const Logger *_Nonnull logger, TCP_Client_Connection *_Nonnull conn, const Mono_Time *_Nonnull mono_time, + void *_Nullable userdata) { send_pending_data(logger, &conn->con); tcp_send_ping_response(logger, conn); diff --git a/external/toxcore/c-toxcore/toxcore/TCP_client.h b/external/toxcore/c-toxcore/toxcore/TCP_client.h index 3ed6e8c..08c782d 100644 --- a/external/toxcore/c-toxcore/toxcore/TCP_client.h +++ b/external/toxcore/c-toxcore/toxcore/TCP_client.h @@ -44,78 +44,56 @@ typedef enum TCP_Client_Status { typedef struct TCP_Client_Connection TCP_Client_Connection; -non_null() -const uint8_t *tcp_con_public_key(const TCP_Client_Connection *con); -non_null() -IP_Port tcp_con_ip_port(const TCP_Client_Connection *con); -non_null() -TCP_Client_Status tcp_con_status(const TCP_Client_Connection *con); +const uint8_t *_Nonnull tcp_con_public_key(const TCP_Client_Connection *_Nonnull con); +IP_Port tcp_con_ip_port(const TCP_Client_Connection *_Nonnull con); +TCP_Client_Status tcp_con_status(const TCP_Client_Connection *_Nonnull con); -non_null() -void *tcp_con_custom_object(const TCP_Client_Connection *con); -non_null() -uint32_t tcp_con_custom_uint(const TCP_Client_Connection *con); -non_null() -void tcp_con_set_custom_object(TCP_Client_Connection *con, void *object); -non_null() -void tcp_con_set_custom_uint(TCP_Client_Connection *con, uint32_t value); +void *_Nullable tcp_con_custom_object(const TCP_Client_Connection *_Nonnull con); +uint32_t tcp_con_custom_uint(const TCP_Client_Connection *_Nonnull con); +void tcp_con_set_custom_object(TCP_Client_Connection *_Nonnull con, void *_Nonnull object); +void tcp_con_set_custom_uint(TCP_Client_Connection *_Nonnull con, uint32_t value); /** Create new TCP connection to ip_port/public_key */ -non_null(1, 2, 3, 4, 5, 6, 7, 8, 9) nullable(10, 11) -TCP_Client_Connection *new_tcp_connection( - const Logger *logger, const Memory *mem, const Mono_Time *mono_time, const Random *rng, const Network *ns, - const IP_Port *ip_port, const uint8_t *public_key, const uint8_t *self_public_key, const uint8_t *self_secret_key, - const TCP_Proxy_Info *proxy_info, Net_Profile *net_profile); - +TCP_Client_Connection *_Nullable new_tcp_connection( + const Logger *_Nonnull logger, const Memory *_Nonnull mem, const Mono_Time *_Nonnull mono_time, const Random *_Nonnull rng, const Network *_Nonnull ns, + const IP_Port *_Nonnull ip_port, const uint8_t *_Nonnull public_key, const uint8_t *_Nonnull self_public_key, const uint8_t *_Nonnull self_secret_key, + const TCP_Proxy_Info *_Nullable proxy_info, Net_Profile *_Nullable net_profile); /** Run the TCP connection */ -non_null(1, 2, 3) nullable(4) -void do_tcp_connection(const Logger *logger, const Mono_Time *mono_time, - TCP_Client_Connection *tcp_connection, void *userdata); - +void do_tcp_connection(const Logger *_Nonnull logger, const Mono_Time *_Nonnull mono_time, + TCP_Client_Connection *_Nonnull tcp_connection, void *_Nullable userdata); /** Kill the TCP connection */ -nullable(1) -void kill_tcp_connection(TCP_Client_Connection *tcp_connection); - -typedef int tcp_onion_response_cb(void *object, const uint8_t *data, uint16_t length, void *userdata); +void kill_tcp_connection(TCP_Client_Connection *_Nullable tcp_connection); +typedef int tcp_onion_response_cb(void *_Nonnull object, const uint8_t *_Nonnull data, uint16_t length, void *_Nullable userdata); /** * @retval 1 on success. * @retval 0 if could not send packet. * @retval -1 on failure (connection must be killed). */ -non_null() -int send_onion_request(const Logger *logger, TCP_Client_Connection *con, const uint8_t *data, uint16_t length); -non_null() -void onion_response_handler(TCP_Client_Connection *con, tcp_onion_response_cb *onion_callback, void *object); +int send_onion_request(const Logger *_Nonnull logger, TCP_Client_Connection *_Nonnull con, const uint8_t *_Nonnull data, uint16_t length); +void onion_response_handler(TCP_Client_Connection *_Nonnull con, tcp_onion_response_cb *_Nonnull onion_callback, void *_Nonnull object); -non_null() -int send_forward_request_tcp(const Logger *logger, TCP_Client_Connection *con, const IP_Port *dest, const uint8_t *data, - uint16_t length); -non_null() -void forwarding_handler(TCP_Client_Connection *con, forwarded_response_cb *forwarded_response_callback, void *object); +int send_forward_request_tcp(const Logger *_Nonnull logger, TCP_Client_Connection *_Nonnull con, const IP_Port *_Nonnull dest, const uint8_t *_Nonnull data, uint16_t length); +void forwarding_handler(TCP_Client_Connection *_Nonnull con, forwarded_response_cb *_Nonnull forwarded_response_callback, void *_Nonnull object); -typedef int tcp_routing_response_cb(void *object, uint8_t connection_id, const uint8_t *public_key); -typedef int tcp_routing_status_cb(void *object, uint32_t number, uint8_t connection_id, uint8_t status); +typedef int tcp_routing_response_cb(void *_Nonnull object, uint8_t connection_id, const uint8_t *_Nonnull public_key); +typedef int tcp_routing_status_cb(void *_Nonnull object, uint32_t number, uint8_t connection_id, uint8_t status); /** * @retval 1 on success. * @retval 0 if could not send packet. * @retval -1 on failure (connection must be killed). */ -non_null() -int send_routing_request(const Logger *logger, TCP_Client_Connection *con, const uint8_t *public_key); -non_null() -void routing_response_handler(TCP_Client_Connection *con, tcp_routing_response_cb *response_callback, void *object); -non_null() -void routing_status_handler(TCP_Client_Connection *con, tcp_routing_status_cb *status_callback, void *object); +int send_routing_request(const Logger *_Nonnull logger, TCP_Client_Connection *_Nonnull con, const uint8_t *_Nonnull public_key); +void routing_response_handler(TCP_Client_Connection *_Nonnull con, tcp_routing_response_cb *_Nonnull response_callback, void *_Nonnull object); +void routing_status_handler(TCP_Client_Connection *_Nonnull con, tcp_routing_status_cb *_Nonnull status_callback, void *_Nonnull object); /** * @retval 1 on success. * @retval 0 if could not send packet. * @retval -1 on failure (connection must be killed). */ -non_null() -int send_disconnect_request(const Logger *logger, TCP_Client_Connection *con, uint8_t con_id); +int send_disconnect_request(const Logger *_Nonnull logger, TCP_Client_Connection *_Nonnull con, uint8_t con_id); /** @brief Set the number that will be used as an argument in the callbacks related to con_id. * @@ -124,34 +102,28 @@ int send_disconnect_request(const Logger *logger, TCP_Client_Connection *con, ui * return 0 on success. * return -1 on failure. */ -non_null() -int set_tcp_connection_number(TCP_Client_Connection *con, uint8_t con_id, uint32_t number); +int set_tcp_connection_number(TCP_Client_Connection *_Nonnull con, uint8_t con_id, uint32_t number); -typedef int tcp_routing_data_cb(void *object, uint32_t number, uint8_t connection_id, const uint8_t *data, - uint16_t length, void *userdata); +typedef int tcp_routing_data_cb(void *_Nonnull object, uint32_t number, uint8_t connection_id, const uint8_t *_Nonnull data, + uint16_t length, void *_Nullable userdata); /** * @retval 1 on success. * @retval 0 if could not send packet. * @retval -1 on failure. */ -non_null() -int send_data(const Logger *logger, TCP_Client_Connection *con, uint8_t con_id, const uint8_t *data, uint16_t length); -non_null() -void routing_data_handler(TCP_Client_Connection *con, tcp_routing_data_cb *data_callback, void *object); +int send_data(const Logger *_Nonnull logger, TCP_Client_Connection *_Nonnull con, uint8_t con_id, const uint8_t *_Nonnull data, uint16_t length); +void routing_data_handler(TCP_Client_Connection *_Nonnull con, tcp_routing_data_cb *_Nonnull data_callback, void *_Nonnull object); -typedef int tcp_oob_data_cb(void *object, const uint8_t *public_key, const uint8_t *data, uint16_t length, - void *userdata); +typedef int tcp_oob_data_cb(void *_Nonnull object, const uint8_t *_Nonnull public_key, const uint8_t *_Nonnull data, uint16_t length, + void *_Nullable userdata); /** * @retval 1 on success. * @retval 0 if could not send packet. * @retval -1 on failure. */ -non_null() -int send_oob_packet(const Logger *logger, TCP_Client_Connection *con, const uint8_t *public_key, const uint8_t *data, - uint16_t length); -non_null() -void oob_data_handler(TCP_Client_Connection *con, tcp_oob_data_cb *oob_data_callback, void *object); +int send_oob_packet(const Logger *_Nonnull logger, TCP_Client_Connection *_Nonnull con, const uint8_t *_Nonnull public_key, const uint8_t *_Nonnull data, uint16_t length); +void oob_data_handler(TCP_Client_Connection *_Nonnull con, tcp_oob_data_cb *_Nonnull oob_data_callback, void *_Nonnull object); #endif /* C_TOXCORE_TOXCORE_TCP_CLIENT_H */ diff --git a/external/toxcore/c-toxcore/toxcore/TCP_common.c b/external/toxcore/c-toxcore/toxcore/TCP_common.c index 1a8a5d9..7e358af 100644 --- a/external/toxcore/c-toxcore/toxcore/TCP_common.c +++ b/external/toxcore/c-toxcore/toxcore/TCP_common.c @@ -97,8 +97,7 @@ int send_pending_data(const Logger *logger, TCP_Connection *con) * @retval false on failure (only if mem_alloc fails) * @retval true on success */ -non_null() -static bool add_priority(TCP_Connection *con, const uint8_t *packet, uint16_t size, uint16_t sent) +static bool add_priority(TCP_Connection *_Nonnull con, const uint8_t *_Nonnull packet, uint16_t size, uint16_t sent) { TCP_Priority_List *p = con->priority_queue_end; TCP_Priority_List *new_list = (TCP_Priority_List *)mem_alloc(con->mem, sizeof(TCP_Priority_List)); @@ -235,8 +234,7 @@ int read_tcp_packet( * return 0 if nothing has been read from socket. * return -1 on failure. */ -non_null() -static uint16_t read_tcp_length(const Logger *logger, const Network *ns, Socket sock, const IP_Port *ip_port) +static uint16_t read_tcp_length(const Logger *_Nonnull logger, const Network *_Nonnull ns, Socket sock, const IP_Port *_Nonnull ip_port) { const uint16_t count = net_socket_data_recv_buffer(ns, sock); diff --git a/external/toxcore/c-toxcore/toxcore/TCP_common.h b/external/toxcore/c-toxcore/toxcore/TCP_common.h index dd07fd1..1d4c3d4 100644 --- a/external/toxcore/c-toxcore/toxcore/TCP_common.h +++ b/external/toxcore/c-toxcore/toxcore/TCP_common.h @@ -15,15 +15,13 @@ typedef struct TCP_Priority_List TCP_Priority_List; struct TCP_Priority_List { - TCP_Priority_List *next; + TCP_Priority_List *_Nullable next; uint16_t size; uint16_t sent; - uint8_t *data; + uint8_t *_Nonnull data; }; -non_null(1) nullable(2) -void wipe_priority_list(const Memory *mem, TCP_Priority_List *p); - +void wipe_priority_list(const Memory *_Nonnull mem, TCP_Priority_List *_Nullable p); #define NUM_RESERVED_PORTS 16 #define NUM_CLIENT_CONNECTIONS (256 - NUM_RESERVED_PORTS) @@ -54,9 +52,9 @@ typedef enum Tcp_Packet { #define MAX_PACKET_SIZE 2048 typedef struct TCP_Connection { - const Memory *mem; - const Random *rng; - const Network *ns; + const Memory *_Nonnull mem; + const Random *_Nonnull rng; + const Network *_Nonnull ns; Socket sock; IP_Port ip_port; // for debugging. uint8_t sent_nonce[CRYPTO_NONCE_SIZE]; /* Nonce of sent packets. */ @@ -65,57 +63,47 @@ typedef struct TCP_Connection { uint16_t last_packet_length; uint16_t last_packet_sent; - TCP_Priority_List *priority_queue_start; - TCP_Priority_List *priority_queue_end; + TCP_Priority_List *_Nullable priority_queue_start; + TCP_Priority_List *_Nullable priority_queue_end; // This is a shared pointer to the parent's respective Net_Profile object // (either TCP_Server for TCP server packets or TCP_Connections for TCP client packets). - Net_Profile *net_profile; + Net_Profile *_Nullable net_profile; } TCP_Connection; /** * @retval 0 if pending data was sent completely * @retval -1 if it wasn't */ -non_null() -int send_pending_data_nonpriority(const Logger *logger, TCP_Connection *con); +int send_pending_data_nonpriority(const Logger *_Nonnull logger, TCP_Connection *_Nonnull con); /** * @retval 0 if pending data was sent completely * @retval -1 if it wasn't */ -non_null() -int send_pending_data(const Logger *logger, TCP_Connection *con); +int send_pending_data(const Logger *_Nonnull logger, TCP_Connection *_Nonnull con); /** * @retval 1 on success. * @retval 0 if could not send packet. * @retval -1 on failure (connection must be killed). */ -non_null() -int write_packet_tcp_secure_connection( - const Logger *logger, TCP_Connection *con, const uint8_t *data, uint16_t length, - bool priority); +int write_packet_tcp_secure_connection(const Logger *_Nonnull logger, TCP_Connection *_Nonnull con, const uint8_t *_Nonnull data, uint16_t length, bool priority); /** @brief Read length bytes from socket. * * return length on success * return -1 on failure/no data in buffer. */ -non_null() -int read_tcp_packet( - const Logger *logger, const Memory *mem, const Network *ns, Socket sock, uint8_t *data, uint16_t length, const IP_Port *ip_port); +int read_tcp_packet(const Logger *_Nonnull logger, const Memory *_Nonnull mem, const Network *_Nonnull ns, Socket sock, uint8_t *_Nonnull data, uint16_t length, + const IP_Port *_Nonnull ip_port); /** * @return length of received packet on success. * @retval 0 if could not read any packet. * @retval -1 on failure (connection must be killed). */ -non_null() -int read_packet_tcp_secure_connection( - const Logger *logger, const Memory *mem, const Network *ns, - Socket sock, uint16_t *next_packet_length, - const uint8_t *shared_key, uint8_t *recv_nonce, uint8_t *data, - uint16_t max_len, const IP_Port *ip_port); +int read_packet_tcp_secure_connection(const Logger *_Nonnull logger, const Memory *_Nonnull mem, const Network *_Nonnull ns, Socket sock, uint16_t *_Nonnull next_packet_length, + const uint8_t *_Nonnull shared_key, uint8_t *_Nonnull recv_nonce, uint8_t *_Nonnull data, uint16_t max_len, const IP_Port *_Nonnull ip_port); #endif /* C_TOXCORE_TOXCORE_TCP_COMMON_H */ diff --git a/external/toxcore/c-toxcore/toxcore/TCP_connection.c b/external/toxcore/c-toxcore/toxcore/TCP_connection.c index 42269ad..6b2f994 100644 --- a/external/toxcore/c-toxcore/toxcore/TCP_connection.c +++ b/external/toxcore/c-toxcore/toxcore/TCP_connection.c @@ -80,8 +80,7 @@ uint32_t tcp_connections_count(const TCP_Connections *tcp_c) * @retval -1 if mem_vrealloc fails. * @retval 0 if it succeeds. */ -non_null() -static int realloc_tcp_connection_to(const Memory *mem, TCP_Connection_to **array, size_t num) +static int realloc_tcp_connection_to(const Memory *_Nonnull mem, TCP_Connection_to *_Nullable *_Nonnull array, size_t num) { if (num == 0) { mem_delete(mem, *array); @@ -101,8 +100,7 @@ static int realloc_tcp_connection_to(const Memory *mem, TCP_Connection_to **arra return 0; } -non_null() -static int realloc_tcp_con(const Memory *mem, TCP_con **array, size_t num) +static int realloc_tcp_con(const Memory *_Nonnull mem, TCP_con *_Nullable *_Nonnull array, size_t num) { if (num == 0) { mem_delete(mem, *array); @@ -124,8 +122,7 @@ static int realloc_tcp_con(const Memory *mem, TCP_con **array, size_t num) /** * Return true if the connections_number is valid. */ -non_null() -static bool connections_number_is_valid(const TCP_Connections *tcp_c, int connections_number) +static bool connections_number_is_valid(const TCP_Connections *_Nonnull tcp_c, int connections_number) { if ((unsigned int)connections_number >= tcp_c->connections_length) { return false; @@ -141,8 +138,7 @@ static bool connections_number_is_valid(const TCP_Connections *tcp_c, int connec /** * Return true if the tcp_connections_number is valid. */ -non_null() -static bool tcp_connections_number_is_valid(const TCP_Connections *tcp_c, int tcp_connections_number) +static bool tcp_connections_number_is_valid(const TCP_Connections *_Nonnull tcp_c, int tcp_connections_number) { if ((uint32_t)tcp_connections_number >= tcp_c->tcp_connections_length) { return false; @@ -160,8 +156,7 @@ static bool tcp_connections_number_is_valid(const TCP_Connections *tcp_c, int tc * return -1 on failure. * return connections_number on success. */ -non_null() -static int create_connection(TCP_Connections *tcp_c) +static int create_connection(TCP_Connections *_Nonnull tcp_c) { for (uint32_t i = 0; i < tcp_c->connections_length; ++i) { if (tcp_c->connections[i].status == TCP_CONN_NONE) { @@ -185,8 +180,7 @@ static int create_connection(TCP_Connections *tcp_c) * return -1 on failure. * return tcp_connections_number on success. */ -non_null() -static int create_tcp_connection(TCP_Connections *tcp_c) +static int create_tcp_connection(TCP_Connections *_Nonnull tcp_c) { for (uint32_t i = 0; i < tcp_c->tcp_connections_length; ++i) { if (tcp_c->tcp_connections[i].status == TCP_CONN_NONE) { @@ -210,8 +204,7 @@ static int create_tcp_connection(TCP_Connections *tcp_c) * return -1 on failure. * return 0 on success. */ -non_null() -static int wipe_connection(TCP_Connections *tcp_c, int connections_number) +static int wipe_connection(TCP_Connections *_Nonnull tcp_c, int connections_number) { if (!connections_number_is_valid(tcp_c, connections_number)) { return -1; @@ -241,8 +234,7 @@ static int wipe_connection(TCP_Connections *tcp_c, int connections_number) * return -1 on failure. * return 0 on success. */ -non_null() -static int wipe_tcp_connection(TCP_Connections *tcp_c, int tcp_connections_number) +static int wipe_tcp_connection(TCP_Connections *_Nonnull tcp_c, int tcp_connections_number) { if (!tcp_connections_number_is_valid(tcp_c, tcp_connections_number)) { return -1; @@ -268,8 +260,7 @@ static int wipe_tcp_connection(TCP_Connections *tcp_c, int tcp_connections_numbe return 0; } -non_null() -static TCP_Connection_to *get_connection(const TCP_Connections *tcp_c, int connections_number) +static TCP_Connection_to *get_connection(const TCP_Connections *_Nonnull tcp_c, int connections_number) { if (!connections_number_is_valid(tcp_c, connections_number)) { return nullptr; @@ -278,8 +269,7 @@ static TCP_Connection_to *get_connection(const TCP_Connections *tcp_c, int conne return &tcp_c->connections[connections_number]; } -non_null() -static TCP_con *get_tcp_connection(const TCP_Connections *tcp_c, int tcp_connections_number) +static TCP_con *get_tcp_connection(const TCP_Connections *_Nonnull tcp_c, int tcp_connections_number) { if (!tcp_connections_number_is_valid(tcp_c, tcp_connections_number)) { return nullptr; @@ -413,8 +403,7 @@ int get_random_tcp_onion_conn_number(const TCP_Connections *tcp_c) * return TCP connection number on success. * return -1 on failure. */ -non_null() -static int get_conn_number_by_ip_port(const TCP_Connections *tcp_c, const IP_Port *ip_port) +static int get_conn_number_by_ip_port(const TCP_Connections *_Nonnull tcp_c, const IP_Port *_Nonnull ip_port) { for (uint32_t i = 0; i < tcp_c->tcp_connections_length; ++i) { const IP_Port conn_ip_port = tcp_con_ip_port(tcp_c->tcp_connections[i].connection); @@ -526,8 +515,7 @@ int tcp_send_oob_packet(const TCP_Connections *tcp_c, unsigned int tcp_connectio return -1; } -non_null() -static int find_tcp_connection_relay(const TCP_Connections *tcp_c, const uint8_t *relay_pk); +static int find_tcp_connection_relay(const TCP_Connections *_Nonnull tcp_c, const uint8_t *_Nonnull relay_pk); /** @brief Send an oob packet via the TCP relay corresponding to relay_pk. * @@ -604,8 +592,7 @@ bool ip_port_to_tcp_connections_number(const IP_Port *ip_port, unsigned int *tcp * return connections_number on success. * return -1 on failure. */ -non_null() -static int find_tcp_connection_to(const TCP_Connections *tcp_c, const uint8_t *public_key) +static int find_tcp_connection_to(const TCP_Connections *_Nonnull tcp_c, const uint8_t *_Nonnull public_key) { for (uint32_t i = 0; i < tcp_c->connections_length; ++i) { const TCP_Connection_to *con_to = get_connection(tcp_c, i); @@ -786,8 +773,7 @@ int set_tcp_connection_to_status(const TCP_Connections *tcp_c, int connections_n return 0; } -non_null() -static bool tcp_connection_in_conn(const TCP_Connection_to *con_to, unsigned int tcp_connections_number) +static bool tcp_connection_in_conn(const TCP_Connection_to *_Nonnull con_to, unsigned int tcp_connections_number) { for (uint32_t i = 0; i < MAX_FRIEND_TCP_CONNECTIONS; ++i) { if (con_to->connections[i].tcp_connection == (tcp_connections_number + 1)) { @@ -802,8 +788,7 @@ static bool tcp_connection_in_conn(const TCP_Connection_to *con_to, unsigned int * @return index on success. * @retval -1 on failure. */ -non_null() -static int add_tcp_connection_to_conn(TCP_Connection_to *con_to, unsigned int tcp_connections_number) +static int add_tcp_connection_to_conn(TCP_Connection_to *_Nonnull con_to, unsigned int tcp_connections_number) { if (tcp_connection_in_conn(con_to, tcp_connections_number)) { return -1; @@ -825,8 +810,7 @@ static int add_tcp_connection_to_conn(TCP_Connection_to *con_to, unsigned int tc * @return index on success. * @retval -1 on failure. */ -non_null() -static int rm_tcp_connection_from_conn(TCP_Connection_to *con_to, unsigned int tcp_connections_number) +static int rm_tcp_connection_from_conn(TCP_Connection_to *_Nonnull con_to, unsigned int tcp_connections_number) { for (uint32_t i = 0; i < MAX_FRIEND_TCP_CONNECTIONS; ++i) { if (con_to->connections[i].tcp_connection == (tcp_connections_number + 1)) { @@ -844,8 +828,7 @@ static int rm_tcp_connection_from_conn(TCP_Connection_to *con_to, unsigned int t * @return number of online connections on success. * @retval -1 on failure. */ -non_null() -static uint32_t online_tcp_connection_from_conn(const TCP_Connection_to *con_to) +static uint32_t online_tcp_connection_from_conn(const TCP_Connection_to *_Nonnull con_to) { uint32_t count = 0; @@ -864,10 +847,7 @@ static uint32_t online_tcp_connection_from_conn(const TCP_Connection_to *con_to) * @return index on success. * @retval -1 on failure. */ -non_null() -static int set_tcp_connection_status(TCP_Connection_to *con_to, unsigned int tcp_connections_number, - uint8_t status, - uint8_t connection_id) +static int set_tcp_connection_status(TCP_Connection_to *_Nonnull con_to, unsigned int tcp_connections_number, uint8_t status, uint8_t connection_id) { for (uint32_t i = 0; i < MAX_FRIEND_TCP_CONNECTIONS; ++i) { if (con_to->connections[i].tcp_connection == (tcp_connections_number + 1)) { @@ -915,8 +895,7 @@ int kill_tcp_relay_connection(TCP_Connections *tcp_c, int tcp_connections_number return wipe_tcp_connection(tcp_c, tcp_connections_number); } -non_null() -static int reconnect_tcp_relay_connection(TCP_Connections *tcp_c, int tcp_connections_number) +static int reconnect_tcp_relay_connection(TCP_Connections *_Nonnull tcp_c, int tcp_connections_number) { TCP_con *tcp_con = get_tcp_connection(tcp_c, tcp_connections_number); @@ -962,8 +941,7 @@ static int reconnect_tcp_relay_connection(TCP_Connections *tcp_c, int tcp_connec return 0; } -non_null() -static int sleep_tcp_relay_connection(TCP_Connections *tcp_c, int tcp_connections_number) +static int sleep_tcp_relay_connection(TCP_Connections *_Nonnull tcp_c, int tcp_connections_number) { TCP_con *tcp_con = get_tcp_connection(tcp_c, tcp_connections_number); @@ -1007,8 +985,7 @@ static int sleep_tcp_relay_connection(TCP_Connections *tcp_c, int tcp_connection return 0; } -non_null() -static int unsleep_tcp_relay_connection(TCP_Connections *tcp_c, int tcp_connections_number) +static int unsleep_tcp_relay_connection(TCP_Connections *_Nonnull tcp_c, int tcp_connections_number) { TCP_con *tcp_con = get_tcp_connection(tcp_c, tcp_connections_number); @@ -1043,9 +1020,7 @@ static int unsleep_tcp_relay_connection(TCP_Connections *tcp_c, int tcp_connecti * return 0 on success. * return -1 on failure. */ -non_null() -static int send_tcp_relay_routing_request(const TCP_Connections *tcp_c, int tcp_connections_number, - const uint8_t *public_key) +static int send_tcp_relay_routing_request(const TCP_Connections *_Nonnull tcp_c, int tcp_connections_number, const uint8_t *_Nonnull public_key) { TCP_con *tcp_con = get_tcp_connection(tcp_c, tcp_connections_number); @@ -1064,8 +1039,7 @@ static int send_tcp_relay_routing_request(const TCP_Connections *tcp_c, int tcp_ return 0; } -non_null() -static int tcp_response_callback(void *object, uint8_t connection_id, const uint8_t *public_key) +static int tcp_response_callback(void *_Nonnull object, uint8_t connection_id, const uint8_t *_Nonnull public_key) { const TCP_Client_Connection *tcp_client_con = (const TCP_Client_Connection *)object; const TCP_Connections *tcp_c = (const TCP_Connections *)tcp_con_custom_object(tcp_client_con); @@ -1098,8 +1072,7 @@ static int tcp_response_callback(void *object, uint8_t connection_id, const uint return 0; } -non_null() -static int tcp_status_callback(void *object, uint32_t number, uint8_t connection_id, uint8_t status) +static int tcp_status_callback(void *_Nonnull object, uint32_t number, uint8_t connection_id, uint8_t status) { const TCP_Client_Connection *tcp_client_con = (const TCP_Client_Connection *)object; const TCP_Connections *tcp_c = (const TCP_Connections *)tcp_con_custom_object(tcp_client_con); @@ -1137,12 +1110,10 @@ static int tcp_status_callback(void *object, uint32_t number, uint8_t connection return 0; } -non_null(1, 4) nullable(6) -static int tcp_conn_data_callback(void *object, uint32_t number, uint8_t connection_id, const uint8_t *data, - uint16_t length, void *userdata) +static int tcp_conn_data_callback(void *_Nonnull object, uint32_t number, uint8_t connection_id, const uint8_t *_Nonnull data, + uint16_t length, void *_Nullable userdata) { const TCP_Client_Connection *tcp_client_con = (TCP_Client_Connection *)object; - if (length == 0) { return -1; } @@ -1169,9 +1140,7 @@ static int tcp_conn_data_callback(void *object, uint32_t number, uint8_t connect return 0; } -non_null() -static int tcp_conn_oob_callback(void *object, const uint8_t *public_key, const uint8_t *data, uint16_t length, - void *userdata) +static int tcp_conn_oob_callback(void *_Nonnull object, const uint8_t *_Nonnull public_key, const uint8_t *_Nonnull data, uint16_t length, void *_Nonnull userdata) { const TCP_Client_Connection *tcp_client_con = (const TCP_Client_Connection *)object; @@ -1204,8 +1173,7 @@ static int tcp_conn_oob_callback(void *object, const uint8_t *public_key, const return 0; } -non_null() -static int tcp_onion_callback(void *object, const uint8_t *data, uint16_t length, void *userdata) +static int tcp_onion_callback(void *_Nonnull object, const uint8_t *_Nonnull data, uint16_t length, void *_Nonnull userdata) { TCP_Connections *tcp_c = (TCP_Connections *)object; @@ -1216,8 +1184,7 @@ static int tcp_onion_callback(void *object, const uint8_t *data, uint16_t length return 0; } -non_null() -static void tcp_forwarding_callback(void *object, const uint8_t *data, uint16_t length, void *userdata) +static void tcp_forwarding_callback(void *_Nonnull object, const uint8_t *_Nonnull data, uint16_t length, void *_Nonnull userdata) { TCP_Connections *tcp_c = (TCP_Connections *)object; @@ -1231,8 +1198,7 @@ static void tcp_forwarding_callback(void *object, const uint8_t *data, uint16_t * return 0 on success. * return -1 on failure. */ -non_null() -static int tcp_relay_set_callbacks(TCP_Connections *tcp_c, int tcp_connections_number) +static int tcp_relay_set_callbacks(TCP_Connections *_Nonnull tcp_c, int tcp_connections_number) { TCP_con *tcp_con = get_tcp_connection(tcp_c, tcp_connections_number); @@ -1254,8 +1220,7 @@ static int tcp_relay_set_callbacks(TCP_Connections *tcp_c, int tcp_connections_n return 0; } -non_null() -static int tcp_relay_on_online(TCP_Connections *tcp_c, int tcp_connections_number) +static int tcp_relay_on_online(TCP_Connections *_Nonnull tcp_c, int tcp_connections_number) { TCP_con *tcp_con = get_tcp_connection(tcp_c, tcp_connections_number); @@ -1295,8 +1260,7 @@ static int tcp_relay_on_online(TCP_Connections *tcp_c, int tcp_connections_numbe return 0; } -non_null() -static int add_tcp_relay_instance(TCP_Connections *tcp_c, const IP_Port *ip_port, const uint8_t *relay_pk) +static int add_tcp_relay_instance(TCP_Connections *_Nonnull tcp_c, const IP_Port *_Nonnull ip_port, const uint8_t *_Nonnull relay_pk) { IP_Port ipp_copy = *ip_port; @@ -1451,8 +1415,7 @@ uint32_t tcp_connection_to_online_tcp_relays(const TCP_Connections *tcp_c, int c * Returns true if the relay was successfully copied. * Returns false if the connection index is invalid, or if the relay is not connected. */ -non_null() -static bool copy_tcp_relay_conn(const TCP_Connections *tcp_c, Node_format *tcp_relay, uint16_t idx) +static bool copy_tcp_relay_conn(const TCP_Connections *_Nonnull tcp_c, Node_format *_Nonnull tcp_relay, uint16_t idx) { const TCP_con *tcp_con = get_tcp_connection(tcp_c, idx); @@ -1628,12 +1591,10 @@ TCP_Connections *new_tcp_connections(const Logger *logger, const Memory *mem, co return temp; } -non_null(1, 2) nullable(3) -static void do_tcp_conns(const Logger *logger, TCP_Connections *tcp_c, void *userdata) +static void do_tcp_conns(const Logger *_Nonnull logger, TCP_Connections *_Nonnull tcp_c, void *_Nullable userdata) { for (uint32_t i = 0; i < tcp_c->tcp_connections_length; ++i) { TCP_con *tcp_con = get_tcp_connection(tcp_c, i); - if (tcp_con == nullptr) { continue; } @@ -1675,9 +1636,12 @@ static void do_tcp_conns(const Logger *logger, TCP_Connections *tcp_c, void *use } } -non_null() -static void kill_nonused_tcp(TCP_Connections *tcp_c) +static void kill_nonused_tcp(TCP_Connections *_Nullable tcp_c) { + if (tcp_c == nullptr) { + return; + } + if (tcp_c->tcp_connections_length <= RECOMMENDED_FRIEND_TCP_CONNECTIONS) { return; } diff --git a/external/toxcore/c-toxcore/toxcore/TCP_connection.h b/external/toxcore/c-toxcore/toxcore/TCP_connection.h index 3ff2173..b77d502 100644 --- a/external/toxcore/c-toxcore/toxcore/TCP_connection.h +++ b/external/toxcore/c-toxcore/toxcore/TCP_connection.h @@ -67,7 +67,7 @@ typedef struct TCP_Connection_to { typedef struct TCP_con { uint8_t status; - TCP_Client_Connection *connection; + TCP_Client_Connection *_Nullable connection; uint64_t connected_time; uint32_t lock_count; uint32_t sleep_count; @@ -81,28 +81,22 @@ typedef struct TCP_con { typedef struct TCP_Connections TCP_Connections; -non_null() -const uint8_t *tcp_connections_public_key(const TCP_Connections *tcp_c); +const uint8_t *_Nonnull tcp_connections_public_key(const TCP_Connections *_Nonnull tcp_c); -non_null() -uint32_t tcp_connections_count(const TCP_Connections *tcp_c); +uint32_t tcp_connections_count(const TCP_Connections *_Nonnull tcp_c); /** @brief Returns the number of connected TCP relays. */ -non_null() -uint32_t tcp_connected_relays_count(const TCP_Connections *tcp_c); +uint32_t tcp_connected_relays_count(const TCP_Connections *_Nonnull tcp_c); /** @brief Returns true if we know of a valid TCP relay with the passed public key. */ -non_null() -bool tcp_relay_is_valid(const TCP_Connections *tcp_c, const uint8_t *relay_pk); +bool tcp_relay_is_valid(const TCP_Connections *_Nonnull tcp_c, const uint8_t *_Nonnull relay_pk); /** @brief Send a packet to the TCP connection. * * return -1 on failure. * return 0 on success. */ -non_null() -int send_packet_tcp_connection(const TCP_Connections *tcp_c, int connections_number, const uint8_t *packet, - uint16_t length); +int send_packet_tcp_connection(const TCP_Connections *_Nonnull tcp_c, int connections_number, const uint8_t *_Nonnull packet, uint16_t length); /** @brief Return a TCP connection number for use in send_tcp_onion_request. * @@ -112,25 +106,21 @@ int send_packet_tcp_connection(const TCP_Connections *tcp_c, int connections_num * return TCP connection number on success. * return -1 on failure. */ -non_null() -int get_random_tcp_onion_conn_number(const TCP_Connections *tcp_c); +int get_random_tcp_onion_conn_number(const TCP_Connections *_Nonnull tcp_c); /** @brief Put IP_Port of a random onion TCP connection in ip_port. * * return true on success. * return false on failure. */ -non_null() -bool tcp_get_random_conn_ip_port(const TCP_Connections *tcp_c, IP_Port *ip_port); +bool tcp_get_random_conn_ip_port(const TCP_Connections *_Nonnull tcp_c, IP_Port *_Nonnull ip_port); /** @brief Send an onion packet via the TCP relay corresponding to tcp_connections_number. * * return 0 on success. * return -1 on failure. */ -non_null() -int tcp_send_onion_request(TCP_Connections *tcp_c, uint32_t tcp_connections_number, const uint8_t *data, - uint16_t length); +int tcp_send_onion_request(TCP_Connections *_Nonnull tcp_c, uint32_t tcp_connections_number, const uint8_t *_Nonnull data, uint16_t length); /** @brief Set if we want TCP_connection to allocate some connection for onion use. * @@ -139,8 +129,7 @@ int tcp_send_onion_request(TCP_Connections *tcp_c, uint32_t tcp_connections_numb * return 0 on success. * return -1 on failure. */ -non_null() -int set_tcp_onion_status(TCP_Connections *tcp_c, bool status); +int set_tcp_onion_status(TCP_Connections *_Nonnull tcp_c, bool status); /** * Send a forward request to the TCP relay with IP_Port tcp_forwarder, @@ -150,49 +139,37 @@ int set_tcp_onion_status(TCP_Connections *tcp_c, bool status); * return 0 on success. * return -1 on failure. */ -non_null() -int tcp_send_forward_request(const Logger *logger, TCP_Connections *tcp_c, const IP_Port *tcp_forwarder, - const IP_Port *dht_node, - const uint8_t *chain_keys, uint16_t chain_length, - const uint8_t *data, uint16_t data_length); +int tcp_send_forward_request(const Logger *_Nonnull logger, TCP_Connections *_Nonnull tcp_c, const IP_Port *_Nonnull tcp_forwarder, const IP_Port *_Nonnull dht_node, + const uint8_t *_Nonnull chain_keys, uint16_t chain_length, const uint8_t *_Nonnull data, uint16_t data_length); /** @brief Send an oob packet via the TCP relay corresponding to tcp_connections_number. * * return 0 on success. * return -1 on failure. */ -non_null() -int tcp_send_oob_packet(const TCP_Connections *tcp_c, unsigned int tcp_connections_number, const uint8_t *public_key, - const uint8_t *packet, uint16_t length); +int tcp_send_oob_packet(const TCP_Connections *_Nonnull tcp_c, unsigned int tcp_connections_number, const uint8_t *_Nonnull public_key, const uint8_t *_Nonnull packet, uint16_t length); -typedef int tcp_data_cb(void *object, int crypt_connection_id, const uint8_t *packet, uint16_t length, void *userdata); +typedef int tcp_data_cb(void *_Nonnull object, int crypt_connection_id, const uint8_t *_Nonnull packet, uint16_t length, void *_Nullable userdata); -non_null() -int tcp_send_oob_packet_using_relay(const TCP_Connections *tcp_c, const uint8_t *relay_pk, const uint8_t *public_key, - const uint8_t *packet, uint16_t length); +int tcp_send_oob_packet_using_relay(const TCP_Connections *_Nonnull tcp_c, const uint8_t *_Nonnull relay_pk, const uint8_t *_Nonnull public_key, const uint8_t *_Nonnull packet, + uint16_t length); /** @brief Set the callback for TCP data packets. */ -non_null() -void set_packet_tcp_connection_callback(TCP_Connections *tcp_c, tcp_data_cb *tcp_data_callback, void *object); +void set_packet_tcp_connection_callback(TCP_Connections *_Nonnull tcp_c, tcp_data_cb *_Nonnull tcp_data_callback, void *_Nonnull object); -typedef int tcp_onion_cb(void *object, const uint8_t *data, uint16_t length, void *userdata); +typedef int tcp_onion_cb(void *_Nullable object, const uint8_t *_Nonnull data, uint16_t length, void *_Nullable userdata); /** @brief Set the callback for TCP onion packets. */ -non_null(1) nullable(2, 3) -void set_onion_packet_tcp_connection_callback(TCP_Connections *tcp_c, tcp_onion_cb *tcp_onion_callback, void *object); - +void set_onion_packet_tcp_connection_callback(TCP_Connections *_Nonnull tcp_c, tcp_onion_cb *_Nullable tcp_onion_callback, void *_Nullable object); /** @brief Set the callback for TCP forwarding packets. */ -non_null(1) nullable(2, 3) -void set_forwarding_packet_tcp_connection_callback(TCP_Connections *tcp_c, - forwarded_response_cb *tcp_forwarded_response_callback, - void *object); - -typedef int tcp_oob_cb(void *object, const uint8_t *public_key, unsigned int tcp_connections_number, - const uint8_t *packet, uint16_t length, void *userdata); +void set_forwarding_packet_tcp_connection_callback(TCP_Connections *_Nonnull tcp_c, + forwarded_response_cb *_Nullable tcp_forwarded_response_callback, + void *_Nullable object); +typedef int tcp_oob_cb(void *_Nonnull object, const uint8_t *_Nonnull public_key, unsigned int tcp_connections_number, + const uint8_t *_Nonnull packet, uint16_t length, void *_Nullable userdata); /** @brief Set the callback for TCP oob data packets. */ -non_null() -void set_oob_packet_tcp_connection_callback(TCP_Connections *tcp_c, tcp_oob_cb *tcp_oob_callback, void *object); +void set_oob_packet_tcp_connection_callback(TCP_Connections *_Nonnull tcp_c, tcp_oob_cb *_Nonnull tcp_oob_callback, void *_Nonnull object); /** @brief Encode tcp_connections_number as a custom ip_port. * @@ -205,8 +182,7 @@ IP_Port tcp_connections_number_to_ip_port(unsigned int tcp_connections_number); * return true on success. * return false if ip_port is invalid. */ -non_null() -bool ip_port_to_tcp_connections_number(const IP_Port *ip_port, unsigned int *tcp_connections_number); +bool ip_port_to_tcp_connections_number(const IP_Port *_Nonnull ip_port, unsigned int *_Nonnull tcp_connections_number); /** @brief Create a new TCP connection to public_key. * @@ -217,15 +193,13 @@ bool ip_port_to_tcp_connections_number(const IP_Port *ip_port, unsigned int *tcp * return connections_number on success. * return -1 on failure. */ -non_null() -int new_tcp_connection_to(TCP_Connections *tcp_c, const uint8_t *public_key, int id); +int new_tcp_connection_to(TCP_Connections *_Nonnull tcp_c, const uint8_t *_Nonnull public_key, int id); /** * @retval 0 on success. * @retval -1 on failure. */ -non_null() -int kill_tcp_connection_to(TCP_Connections *tcp_c, int connections_number); +int kill_tcp_connection_to(TCP_Connections *_Nonnull tcp_c, int connections_number); /** @brief Set connection status. * @@ -237,15 +211,13 @@ int kill_tcp_connection_to(TCP_Connections *tcp_c, int connections_number); * return 0 on success. * return -1 on failure. */ -non_null() -int set_tcp_connection_to_status(const TCP_Connections *tcp_c, int connections_number, bool status); +int set_tcp_connection_to_status(const TCP_Connections *_Nonnull tcp_c, int connections_number, bool status); /** * @return number of online tcp relays tied to the connection on success. * @retval 0 on failure. */ -non_null() -uint32_t tcp_connection_to_online_tcp_relays(const TCP_Connections *tcp_c, int connections_number); +uint32_t tcp_connection_to_online_tcp_relays(const TCP_Connections *_Nonnull tcp_c, int connections_number); /** @brief Add a TCP relay tied to a connection. * @@ -254,9 +226,7 @@ uint32_t tcp_connection_to_online_tcp_relays(const TCP_Connections *tcp_c, int c * return 0 on success. * return -1 on failure. */ -non_null() -int add_tcp_number_relay_connection(const TCP_Connections *tcp_c, int connections_number, - unsigned int tcp_connections_number); +int add_tcp_number_relay_connection(const TCP_Connections *_Nonnull tcp_c, int connections_number, unsigned int tcp_connections_number); /** @brief Add a TCP relay tied to a connection. * @@ -265,17 +235,14 @@ int add_tcp_number_relay_connection(const TCP_Connections *tcp_c, int connection * return 0 on success. * return -1 on failure. */ -non_null() -int add_tcp_relay_connection(TCP_Connections *tcp_c, int connections_number, const IP_Port *ip_port, - const uint8_t *relay_pk); +int add_tcp_relay_connection(TCP_Connections *_Nonnull tcp_c, int connections_number, const IP_Port *_Nonnull ip_port, const uint8_t *_Nonnull relay_pk); /** @brief Add a TCP relay to the TCP_Connections instance. * * return 0 on success. * return -1 on failure. */ -non_null() -int add_tcp_relay_global(TCP_Connections *tcp_c, const IP_Port *ip_port, const uint8_t *relay_pk); +int add_tcp_relay_global(TCP_Connections *_Nonnull tcp_c, const IP_Port *_Nonnull ip_port, const uint8_t *_Nonnull relay_pk); /** @brief Copy a maximum of max_num TCP relays we are connected to to tcp_relays. * @@ -284,8 +251,7 @@ int add_tcp_relay_global(TCP_Connections *tcp_c, const IP_Port *ip_port, const u * return number of relays copied to tcp_relays on success. * return 0 on failure. */ -non_null() -uint32_t tcp_copy_connected_relays(const TCP_Connections *tcp_c, Node_format *tcp_relays, uint16_t max_num); +uint32_t tcp_copy_connected_relays(const TCP_Connections *_Nonnull tcp_c, Node_format *_Nonnull tcp_relays, uint16_t max_num); /** @brief Copy a maximum of `max_num` TCP relays we are connected to starting at idx. * @@ -294,9 +260,7 @@ uint32_t tcp_copy_connected_relays(const TCP_Connections *tcp_c, Node_format *tc * * Returns the number of relays successfully copied. */ -non_null() -uint32_t tcp_copy_connected_relays_index(const TCP_Connections *tcp_c, Node_format *tcp_relays, uint16_t max_num, - uint32_t idx); +uint32_t tcp_copy_connected_relays_index(const TCP_Connections *_Nonnull tcp_c, Node_format *_Nonnull tcp_relays, uint16_t max_num, uint32_t idx); /** @brief Returns a new TCP_Connections object associated with the secret_key. * @@ -305,17 +269,11 @@ uint32_t tcp_copy_connected_relays_index(const TCP_Connections *tcp_c, Node_form * * Returns NULL on failure. */ -non_null() -TCP_Connections *new_tcp_connections(const Logger *logger, const Memory *mem, const Random *rng, const Network *ns, - Mono_Time *mono_time, const uint8_t *secret_key, const TCP_Proxy_Info *proxy_info, Net_Profile *tcp_np); +TCP_Connections *_Nullable new_tcp_connections(const Logger *_Nonnull logger, const Memory *_Nonnull mem, const Random *_Nonnull rng, const Network *_Nonnull ns, Mono_Time *_Nonnull mono_time, + const uint8_t *_Nonnull secret_key, const TCP_Proxy_Info *_Nonnull proxy_info, Net_Profile *_Nonnull tcp_np); -non_null() -int kill_tcp_relay_connection(TCP_Connections *tcp_c, int tcp_connections_number); - -non_null(1, 2) nullable(3) -void do_tcp_connections(const Logger *logger, TCP_Connections *tcp_c, void *userdata); - -nullable(1) -void kill_tcp_connections(TCP_Connections *tcp_c); +int kill_tcp_relay_connection(TCP_Connections *_Nonnull tcp_c, int tcp_connections_number); +void do_tcp_connections(const Logger *_Nonnull logger, TCP_Connections *_Nonnull tcp_c, void *_Nullable userdata); +void kill_tcp_connections(TCP_Connections *_Nullable tcp_c); #endif /* C_TOXCORE_TOXCORE_TCP_CONNECTION_H */ diff --git a/external/toxcore/c-toxcore/toxcore/TCP_server.c b/external/toxcore/c-toxcore/toxcore/TCP_server.c index 288cd94..cad12ee 100644 --- a/external/toxcore/c-toxcore/toxcore/TCP_server.c +++ b/external/toxcore/c-toxcore/toxcore/TCP_server.c @@ -122,8 +122,7 @@ size_t tcp_server_listen_count(const TCP_Server *tcp_server) * @retval -1 on failure * @retval 0 on success. */ -non_null() -static int alloc_new_connections(TCP_Server *tcp_server, uint32_t num) +static int alloc_new_connections(TCP_Server *_Nonnull tcp_server, uint32_t num) { const uint32_t new_size = tcp_server->size_accepted_connections + num; @@ -149,8 +148,7 @@ static int alloc_new_connections(TCP_Server *tcp_server, uint32_t num) return 0; } -non_null() -static void wipe_secure_connection(TCP_Secure_Connection *con) +static void wipe_secure_connection(TCP_Secure_Connection *_Nonnull con) { if (con->status != 0) { wipe_priority_list(con->con.mem, con->con.priority_queue_start); @@ -158,15 +156,13 @@ static void wipe_secure_connection(TCP_Secure_Connection *con) } } -non_null() -static void move_secure_connection(TCP_Secure_Connection *con_new, TCP_Secure_Connection *con_old) +static void move_secure_connection(TCP_Secure_Connection *_Nonnull con_new, TCP_Secure_Connection *_Nonnull con_old) { *con_new = *con_old; crypto_memzero(con_old, sizeof(TCP_Secure_Connection)); } -non_null() -static void free_accepted_connection_array(TCP_Server *tcp_server) +static void free_accepted_connection_array(TCP_Server *_Nonnull tcp_server) { if (tcp_server->accepted_connection_array == nullptr) { return; @@ -185,22 +181,19 @@ static void free_accepted_connection_array(TCP_Server *tcp_server) * @return index corresponding to connection with peer on success * @retval -1 on failure. */ -non_null() -static int get_tcp_connection_index(const TCP_Server *tcp_server, const uint8_t *public_key) +static int get_tcp_connection_index(const TCP_Server *_Nonnull tcp_server, const uint8_t *_Nonnull public_key) { return bs_list_find(&tcp_server->accepted_key_list, public_key); } -non_null() -static int kill_accepted(TCP_Server *tcp_server, int index); +static int kill_accepted(TCP_Server *_Nonnull tcp_server, int index); /** @brief Add accepted TCP connection to the list. * * @return index on success * @retval -1 on failure */ -non_null() -static int add_accepted(TCP_Server *tcp_server, const Mono_Time *mono_time, TCP_Secure_Connection *con) +static int add_accepted(TCP_Server *_Nonnull tcp_server, const Mono_Time *_Nonnull mono_time, TCP_Secure_Connection *_Nonnull con) { int index = get_tcp_connection_index(tcp_server, con->public_key); @@ -250,8 +243,7 @@ static int add_accepted(TCP_Server *tcp_server, const Mono_Time *mono_time, TCP_ * @retval 0 on success * @retval -1 on failure */ -non_null() -static int del_accepted(TCP_Server *tcp_server, int index) +static int del_accepted(TCP_Server *_Nonnull tcp_server, int index) { if ((uint32_t)index >= tcp_server->size_accepted_connections) { return -1; @@ -276,15 +268,17 @@ static int del_accepted(TCP_Server *tcp_server, int index) } /** Kill a TCP_Secure_Connection */ -non_null() -static void kill_tcp_secure_connection(TCP_Secure_Connection *con) +static void kill_tcp_secure_connection(TCP_Secure_Connection *_Nullable con) { + if (con == nullptr) { + return; + } + kill_sock(con->con.ns, con->con.sock); wipe_secure_connection(con); } -non_null() -static int rm_connection_index(TCP_Server *tcp_server, TCP_Secure_Connection *con, uint8_t con_number); +static int rm_connection_index(TCP_Server *_Nonnull tcp_server, TCP_Secure_Connection *_Nonnull con, uint8_t con_number); /** @brief Kill an accepted TCP_Secure_Connection * @@ -315,9 +309,7 @@ static int kill_accepted(TCP_Server *tcp_server, int index) * @retval 1 if everything went well. * @retval -1 if the connection must be killed. */ -non_null() -static int handle_tcp_handshake(const Logger *logger, TCP_Secure_Connection *con, const uint8_t *data, uint16_t length, - const uint8_t *self_secret_key) +static int handle_tcp_handshake(const Logger *_Nonnull logger, TCP_Secure_Connection *_Nonnull con, const uint8_t *_Nonnull data, uint16_t length, const uint8_t *_Nonnull self_secret_key) { if (length != TCP_CLIENT_HANDSHAKE_SIZE) { LOGGER_ERROR(logger, "invalid handshake length: %d != %d", length, TCP_CLIENT_HANDSHAKE_SIZE); @@ -380,8 +372,7 @@ static int handle_tcp_handshake(const Logger *logger, TCP_Secure_Connection *con * @retval 0 if we didn't get it yet. * @retval -1 if the connection must be killed. */ -non_null() -static int read_connection_handshake(const Logger *logger, TCP_Secure_Connection *con, const uint8_t *self_secret_key) +static int read_connection_handshake(const Logger *_Nonnull logger, TCP_Secure_Connection *_Nonnull con, const uint8_t *_Nonnull self_secret_key) { uint8_t data[TCP_CLIENT_HANDSHAKE_SIZE]; const int len = read_tcp_packet(logger, con->con.mem, con->con.ns, con->con.sock, data, TCP_CLIENT_HANDSHAKE_SIZE, &con->con.ip_port); @@ -399,9 +390,7 @@ static int read_connection_handshake(const Logger *logger, TCP_Secure_Connection * @retval 0 if could not send packet. * @retval -1 on failure (connection must be killed). */ -non_null() -static int send_routing_response(const Logger *logger, TCP_Secure_Connection *con, uint8_t rpid, - const uint8_t *public_key) +static int send_routing_response(const Logger *_Nonnull logger, TCP_Secure_Connection *_Nonnull con, uint8_t rpid, const uint8_t *_Nonnull public_key) { uint8_t data[2 + CRYPTO_PUBLIC_KEY_SIZE]; data[0] = TCP_PACKET_ROUTING_RESPONSE; @@ -416,8 +405,7 @@ static int send_routing_response(const Logger *logger, TCP_Secure_Connection *co * @retval 0 if could not send packet. * @retval -1 on failure (connection must be killed). */ -non_null() -static int send_connect_notification(const Logger *logger, TCP_Secure_Connection *con, uint8_t id) +static int send_connect_notification(const Logger *_Nonnull logger, TCP_Secure_Connection *_Nonnull con, uint8_t id) { uint8_t data[2] = {TCP_PACKET_CONNECTION_NOTIFICATION, (uint8_t)(id + NUM_RESERVED_PORTS)}; return write_packet_tcp_secure_connection(logger, &con->con, data, sizeof(data), true); @@ -428,8 +416,7 @@ static int send_connect_notification(const Logger *logger, TCP_Secure_Connection * @retval 0 if could not send packet. * @retval -1 on failure (connection must be killed). */ -non_null() -static int send_disconnect_notification(const Logger *logger, TCP_Secure_Connection *con, uint8_t id) +static int send_disconnect_notification(const Logger *_Nonnull logger, TCP_Secure_Connection *_Nonnull con, uint8_t id) { uint8_t data[2] = {TCP_PACKET_DISCONNECT_NOTIFICATION, (uint8_t)(id + NUM_RESERVED_PORTS)}; return write_packet_tcp_secure_connection(logger, &con->con, data, sizeof(data), true); @@ -439,8 +426,7 @@ static int send_disconnect_notification(const Logger *logger, TCP_Secure_Connect * @retval 0 on success. * @retval -1 on failure (connection must be killed). */ -non_null() -static int handle_tcp_routing_req(TCP_Server *tcp_server, uint32_t con_id, const uint8_t *public_key) +static int handle_tcp_routing_req(TCP_Server *_Nonnull tcp_server, uint32_t con_id, const uint8_t *_Nonnull public_key) { uint32_t index = -1; TCP_Secure_Connection *con = &tcp_server->accepted_connection_array[con_id]; @@ -522,9 +508,7 @@ static int handle_tcp_routing_req(TCP_Server *tcp_server, uint32_t con_id, const * @retval 0 on success. * @retval -1 on failure (connection must be killed). */ -non_null() -static int handle_tcp_oob_send(TCP_Server *tcp_server, uint32_t con_id, const uint8_t *public_key, const uint8_t *data, - uint16_t length) +static int handle_tcp_oob_send(TCP_Server *_Nonnull tcp_server, uint32_t con_id, const uint8_t *_Nonnull public_key, const uint8_t *_Nonnull data, uint16_t length) { if (length == 0 || length > TCP_MAX_OOB_DATA_LENGTH) { return -1; @@ -602,8 +586,7 @@ static IP_Port con_id_to_ip_port(uint32_t con_id, uint64_t identifier) * @retval true on success. * @retval false if ip_port is invalid. */ -non_null() -static bool ip_port_to_con_id(const TCP_Server *tcp_server, const IP_Port *ip_port, uint32_t *con_id) +static bool ip_port_to_con_id(const TCP_Server *_Nonnull tcp_server, const IP_Port *_Nonnull ip_port, uint32_t *_Nonnull con_id) { *con_id = ip_port->ip.ip.v6.uint32[0]; @@ -612,8 +595,7 @@ static bool ip_port_to_con_id(const TCP_Server *tcp_server, const IP_Port *ip_po tcp_server->accepted_connection_array[*con_id].identifier == ip_port->ip.ip.v6.uint64[1]; } -non_null() -static int handle_onion_recv_1(void *object, const IP_Port *dest, const uint8_t *data, uint16_t length) +static int handle_onion_recv_1(void *_Nonnull object, const IP_Port *_Nonnull dest, const uint8_t *_Nonnull data, uint16_t length) { TCP_Server *tcp_server = (TCP_Server *)object; uint32_t index; @@ -636,9 +618,7 @@ static int handle_onion_recv_1(void *object, const IP_Port *dest, const uint8_t return 0; } -non_null() -static bool handle_forward_reply_tcp(void *object, const uint8_t *sendback_data, uint16_t sendback_data_len, - const uint8_t *data, uint16_t length) +static bool handle_forward_reply_tcp(void *_Nonnull object, const uint8_t *_Nonnull sendback_data, uint16_t sendback_data_len, const uint8_t *_Nonnull data, uint16_t length) { TCP_Server *tcp_server = (TCP_Server *)object; @@ -677,8 +657,7 @@ static bool handle_forward_reply_tcp(void *object, const uint8_t *sendback_data, * @retval 0 on success * @retval -1 on failure */ -non_null() -static int handle_tcp_packet(TCP_Server *tcp_server, uint32_t con_id, const uint8_t *data, uint16_t length) +static int handle_tcp_packet(TCP_Server *_Nonnull tcp_server, uint32_t con_id, const uint8_t *_Nonnull data, uint16_t length) { if (length == 0) { return -1; @@ -693,7 +672,7 @@ static int handle_tcp_packet(TCP_Server *tcp_server, uint32_t con_id, const uint return -1; } - LOGGER_TRACE(tcp_server->logger, "handling routing request for %d", con_id); + LOGGER_TRACE(tcp_server->logger, "handling routing request for %u", con_id); return handle_tcp_routing_req(tcp_server, con_id, data + 1); } @@ -702,7 +681,7 @@ static int handle_tcp_packet(TCP_Server *tcp_server, uint32_t con_id, const uint return -1; } - LOGGER_TRACE(tcp_server->logger, "handling connection notification for %d", con_id); + LOGGER_TRACE(tcp_server->logger, "handling connection notification for %u", con_id); break; } @@ -711,7 +690,7 @@ static int handle_tcp_packet(TCP_Server *tcp_server, uint32_t con_id, const uint return -1; } - LOGGER_TRACE(tcp_server->logger, "handling disconnect notification for %d", con_id); + LOGGER_TRACE(tcp_server->logger, "handling disconnect notification for %u", con_id); return rm_connection_index(tcp_server, con, data[1] - NUM_RESERVED_PORTS); } @@ -720,7 +699,7 @@ static int handle_tcp_packet(TCP_Server *tcp_server, uint32_t con_id, const uint return -1; } - LOGGER_TRACE(tcp_server->logger, "handling ping for %d", con_id); + LOGGER_TRACE(tcp_server->logger, "handling ping for %u", con_id); uint8_t response[1 + sizeof(uint64_t)]; response[0] = TCP_PACKET_PONG; @@ -734,7 +713,7 @@ static int handle_tcp_packet(TCP_Server *tcp_server, uint32_t con_id, const uint return -1; } - LOGGER_TRACE(tcp_server->logger, "handling pong for %d", con_id); + LOGGER_TRACE(tcp_server->logger, "handling pong for %u", con_id); uint64_t ping_id; memcpy(&ping_id, data + 1, sizeof(uint64_t)); @@ -755,14 +734,14 @@ static int handle_tcp_packet(TCP_Server *tcp_server, uint32_t con_id, const uint return -1; } - LOGGER_TRACE(tcp_server->logger, "handling oob send for %d", con_id); + LOGGER_TRACE(tcp_server->logger, "handling oob send for %u", con_id); return handle_tcp_oob_send(tcp_server, con_id, data + 1, data + 1 + CRYPTO_PUBLIC_KEY_SIZE, length - (1 + CRYPTO_PUBLIC_KEY_SIZE)); } case TCP_PACKET_ONION_REQUEST: { - LOGGER_TRACE(tcp_server->logger, "handling onion request for %d", con_id); + LOGGER_TRACE(tcp_server->logger, "handling onion request for %u", con_id); if (tcp_server->onion != nullptr) { if (length <= 1 + CRYPTO_NONCE_SIZE + ONION_SEND_BASE * 2) { @@ -778,7 +757,7 @@ static int handle_tcp_packet(TCP_Server *tcp_server, uint32_t con_id, const uint } case TCP_PACKET_ONION_RESPONSE: { - LOGGER_TRACE(tcp_server->logger, "handling onion response for %d", con_id); + LOGGER_TRACE(tcp_server->logger, "handling onion response for %u", con_id); return -1; } @@ -821,7 +800,7 @@ static int handle_tcp_packet(TCP_Server *tcp_server, uint32_t con_id, const uint } const uint8_t c_id = data[0] - NUM_RESERVED_PORTS; - LOGGER_TRACE(tcp_server->logger, "handling packet id %d for %d", c_id, con_id); + LOGGER_TRACE(tcp_server->logger, "handling packet id %u for %u", c_id, con_id); if (c_id >= NUM_CLIENT_CONNECTIONS) { return -1; @@ -854,9 +833,7 @@ static int handle_tcp_packet(TCP_Server *tcp_server, uint32_t con_id, const uint return 0; } -non_null() -static int confirm_tcp_connection(TCP_Server *tcp_server, const Mono_Time *mono_time, TCP_Secure_Connection *con, - const uint8_t *data, uint16_t length) +static int confirm_tcp_connection(TCP_Server *_Nonnull tcp_server, const Mono_Time *_Nonnull mono_time, TCP_Secure_Connection *_Nonnull con, const uint8_t *_Nonnull data, uint16_t length) { const int index = add_accepted(tcp_server, mono_time, con); @@ -882,8 +859,7 @@ static int confirm_tcp_connection(TCP_Server *tcp_server, const Mono_Time *mono_ * @return index on success * @retval -1 on failure */ -non_null() -static int accept_connection(TCP_Server *tcp_server, Socket sock) +static int accept_connection(TCP_Server *_Nonnull tcp_server, Socket sock) { if (!sock_valid(sock)) { return -1; @@ -919,8 +895,7 @@ static int accept_connection(TCP_Server *tcp_server, Socket sock) return index; } -non_null() -static Socket new_listening_tcp_socket(const Logger *logger, const Memory *mem, const Network *ns, Family family, uint16_t port) +static Socket new_listening_tcp_socket(const Logger *_Nonnull logger, const Memory *_Nonnull mem, const Network *_Nonnull ns, Family family, uint16_t port) { const Socket sock = net_socket(ns, family, TOX_SOCK_STREAM, TOX_PROTO_TCP); @@ -1062,8 +1037,7 @@ TCP_Server *new_tcp_server(const Logger *logger, const Memory *mem, const Random } #ifndef TCP_SERVER_USE_EPOLL -non_null() -static void do_tcp_accept_new(TCP_Server *tcp_server) +static void do_tcp_accept_new(TCP_Server *_Nonnull tcp_server) { for (uint32_t sock_idx = 0; sock_idx < tcp_server->num_listening_socks; ++sock_idx) { @@ -1078,8 +1052,7 @@ static void do_tcp_accept_new(TCP_Server *tcp_server) } #endif /* TCP_SERVER_USE_EPOLL */ -non_null() -static int do_incoming(TCP_Server *tcp_server, uint32_t i) +static int do_incoming(TCP_Server *_Nonnull tcp_server, uint32_t i) { TCP_Secure_Connection *const conn = &tcp_server->incoming_connection_queue[i]; @@ -1087,12 +1060,12 @@ static int do_incoming(TCP_Server *tcp_server, uint32_t i) return -1; } - LOGGER_TRACE(tcp_server->logger, "handling incoming TCP connection %d", i); + LOGGER_TRACE(tcp_server->logger, "handling incoming TCP connection %u", i); const int ret = read_connection_handshake(tcp_server->logger, conn, tcp_server->secret_key); if (ret == -1) { - LOGGER_TRACE(tcp_server->logger, "incoming connection %d dropped due to failed handshake", i); + LOGGER_TRACE(tcp_server->logger, "incoming connection %u dropped due to failed handshake", i); kill_tcp_secure_connection(conn); return -1; } @@ -1106,7 +1079,7 @@ static int do_incoming(TCP_Server *tcp_server, uint32_t i) TCP_Secure_Connection *conn_new = &tcp_server->unconfirmed_connection_queue[index_new]; if (conn_new->status != TCP_STATUS_NO_STATUS) { - LOGGER_ERROR(tcp_server->logger, "incoming connection %d would overwrite existing", i); + LOGGER_ERROR(tcp_server->logger, "incoming connection %u would overwrite existing", i); kill_tcp_secure_connection(conn_new); } @@ -1116,8 +1089,7 @@ static int do_incoming(TCP_Server *tcp_server, uint32_t i) return index_new; } -non_null() -static int do_unconfirmed(TCP_Server *tcp_server, const Mono_Time *mono_time, uint32_t i) +static int do_unconfirmed(TCP_Server *_Nonnull tcp_server, const Mono_Time *_Nonnull mono_time, uint32_t i) { TCP_Secure_Connection *const conn = &tcp_server->unconfirmed_connection_queue[i]; @@ -1125,7 +1097,7 @@ static int do_unconfirmed(TCP_Server *tcp_server, const Mono_Time *mono_time, ui return -1; } - LOGGER_TRACE(tcp_server->logger, "handling unconfirmed TCP connection %d", i); + LOGGER_TRACE(tcp_server->logger, "handling unconfirmed TCP connection %u", i); uint8_t packet[MAX_PACKET_SIZE]; const int len = read_packet_tcp_secure_connection(tcp_server->logger, conn->con.mem, conn->con.ns, conn->con.sock, &conn->next_packet_length, conn->con.shared_key, conn->recv_nonce, packet, @@ -1143,15 +1115,14 @@ static int do_unconfirmed(TCP_Server *tcp_server, const Mono_Time *mono_time, ui return confirm_tcp_connection(tcp_server, mono_time, conn, packet, len); } -non_null() -static bool tcp_process_secure_packet(TCP_Server *tcp_server, uint32_t i) +static bool tcp_process_secure_packet(TCP_Server *_Nonnull tcp_server, uint32_t i) { TCP_Secure_Connection *const conn = &tcp_server->accepted_connection_array[i]; uint8_t packet[MAX_PACKET_SIZE]; const int len = read_packet_tcp_secure_connection(tcp_server->logger, conn->con.mem, conn->con.ns, conn->con.sock, &conn->next_packet_length, conn->con.shared_key, conn->recv_nonce, packet, sizeof(packet), &conn->con.ip_port); - LOGGER_TRACE(tcp_server->logger, "processing packet for %d: %d", i, len); + LOGGER_TRACE(tcp_server->logger, "processing packet for %u: %d", i, len); if (len == 0) { return false; @@ -1163,7 +1134,7 @@ static bool tcp_process_secure_packet(TCP_Server *tcp_server, uint32_t i) } if (handle_tcp_packet(tcp_server, i, packet, len) == -1) { - LOGGER_TRACE(tcp_server->logger, "dropping connection %d: data packet (len=%d) not handled", i, len); + LOGGER_TRACE(tcp_server->logger, "dropping connection %u: data packet (len=%d) not handled", i, len); kill_accepted(tcp_server, i); return false; } @@ -1171,8 +1142,7 @@ static bool tcp_process_secure_packet(TCP_Server *tcp_server, uint32_t i) return true; } -non_null() -static void do_confirmed_recv(TCP_Server *tcp_server, uint32_t i) +static void do_confirmed_recv(TCP_Server *_Nonnull tcp_server, uint32_t i) { while (tcp_process_secure_packet(tcp_server, i)) { /* Keep reading until an error occurs or there is no more data to read. */ @@ -1180,16 +1150,14 @@ static void do_confirmed_recv(TCP_Server *tcp_server, uint32_t i) } #ifndef TCP_SERVER_USE_EPOLL -non_null() -static void do_tcp_incoming(TCP_Server *tcp_server) +static void do_tcp_incoming(TCP_Server *_Nonnull tcp_server) { for (uint32_t i = 0; i < MAX_INCOMING_CONNECTIONS; ++i) { do_incoming(tcp_server, i); } } -non_null() -static void do_tcp_unconfirmed(TCP_Server *tcp_server, const Mono_Time *mono_time) +static void do_tcp_unconfirmed(TCP_Server *_Nonnull tcp_server, const Mono_Time *_Nonnull mono_time) { for (uint32_t i = 0; i < MAX_INCOMING_CONNECTIONS; ++i) { do_unconfirmed(tcp_server, mono_time, i); @@ -1197,8 +1165,7 @@ static void do_tcp_unconfirmed(TCP_Server *tcp_server, const Mono_Time *mono_tim } #endif /* TCP_SERVER_USE_EPOLL */ -non_null() -static void do_tcp_confirmed(TCP_Server *tcp_server, const Mono_Time *mono_time) +static void do_tcp_confirmed(TCP_Server *_Nonnull tcp_server, const Mono_Time *_Nonnull mono_time) { #ifdef TCP_SERVER_USE_EPOLL @@ -1255,8 +1222,7 @@ static void do_tcp_confirmed(TCP_Server *tcp_server, const Mono_Time *mono_time) } #ifdef TCP_SERVER_USE_EPOLL -non_null() -static bool tcp_epoll_process(TCP_Server *tcp_server, const Mono_Time *mono_time) +static bool tcp_epoll_process(TCP_Server *_Nonnull tcp_server, const Mono_Time *_Nonnull mono_time) { #define MAX_EVENTS 16 struct epoll_event events[MAX_EVENTS]; @@ -1381,8 +1347,7 @@ static bool tcp_epoll_process(TCP_Server *tcp_server, const Mono_Time *mono_time return nfds > 0; } -non_null() -static void do_tcp_epoll(TCP_Server *tcp_server, const Mono_Time *mono_time) +static void do_tcp_epoll(TCP_Server *_Nonnull tcp_server, const Mono_Time *_Nonnull mono_time) { while (tcp_epoll_process(tcp_server, mono_time)) { // Keep processing packets until there are no more FDs ready for reading. diff --git a/external/toxcore/c-toxcore/toxcore/TCP_server.h b/external/toxcore/c-toxcore/toxcore/TCP_server.h index bd4c98b..088c0f8 100644 --- a/external/toxcore/c-toxcore/toxcore/TCP_server.h +++ b/external/toxcore/c-toxcore/toxcore/TCP_server.h @@ -34,30 +34,21 @@ typedef enum TCP_Status { typedef struct TCP_Server TCP_Server; -non_null() -const uint8_t *tcp_server_public_key(const TCP_Server *tcp_server); -non_null() -size_t tcp_server_listen_count(const TCP_Server *tcp_server); +const uint8_t *_Nonnull tcp_server_public_key(const TCP_Server *_Nonnull tcp_server); +size_t tcp_server_listen_count(const TCP_Server *_Nonnull tcp_server); /** Create new TCP server instance. */ -non_null(1, 2, 3, 4, 7, 8) nullable(9, 10) -TCP_Server *new_tcp_server(const Logger *logger, const Memory *mem, const Random *rng, const Network *ns, - bool ipv6_enabled, uint16_t num_sockets, const uint16_t *ports, - const uint8_t *secret_key, Onion *onion, Forwarding *forwarding); - +TCP_Server *_Nullable new_tcp_server(const Logger *_Nonnull logger, const Memory *_Nonnull mem, const Random *_Nonnull rng, const Network *_Nonnull ns, + bool ipv6_enabled, uint16_t num_sockets, const uint16_t *_Nonnull ports, + const uint8_t *_Nonnull secret_key, Onion *_Nullable onion, Forwarding *_Nullable forwarding); /** Run the TCP_server */ -non_null() -void do_tcp_server(TCP_Server *tcp_server, const Mono_Time *mono_time); +void do_tcp_server(TCP_Server *_Nonnull tcp_server, const Mono_Time *_Nonnull mono_time); /** Kill the TCP server */ -nullable(1) -void kill_tcp_server(TCP_Server *tcp_server); - +void kill_tcp_server(TCP_Server *_Nullable tcp_server); /** @brief Returns a pointer to the net profile associated with `tcp_server`. * * Returns null if `tcp_server` is null. */ -nullable(1) -const Net_Profile *tcp_server_get_net_profile(const TCP_Server *tcp_server); - +const Net_Profile *_Nullable tcp_server_get_net_profile(const TCP_Server *_Nullable tcp_server); #endif /* C_TOXCORE_TOXCORE_TCP_SERVER_H */ diff --git a/external/toxcore/c-toxcore/toxcore/announce.c b/external/toxcore/c-toxcore/toxcore/announce.c index dc34ca0..b8dfb56 100644 --- a/external/toxcore/c-toxcore/toxcore/announce.c +++ b/external/toxcore/c-toxcore/toxcore/announce.c @@ -85,21 +85,18 @@ void announce_set_synch_offset(Announcements *announce, int32_t synch_offset) * An entry is considered to be "deleted" for the purposes of the protocol * once it has timed out. */ -non_null() -static bool entry_is_empty(const Announcements *announce, const Announce_Entry *entry) +static bool entry_is_empty(const Announcements *_Nonnull announce, const Announce_Entry *_Nonnull entry) { return mono_time_get(announce->mono_time) >= entry->store_until; } -non_null() -static void delete_entry(Announce_Entry *entry) +static void delete_entry(Announce_Entry *_Nonnull entry) { entry->store_until = 0; } /** Return bits (at most 8) from pk starting at index as uint8_t */ -non_null() -static uint8_t truncate_pk_at_index(const uint8_t *pk, uint16_t index, uint16_t bits) +static uint8_t truncate_pk_at_index(const uint8_t *_Nonnull pk, uint16_t index, uint16_t bits) { assert(bits < 8); const uint8_t i = index / 8; @@ -116,14 +113,12 @@ uint16_t announce_get_bucketnum(const uint8_t *base, const uint8_t *pk) truncate_pk_at_index(pk, index + 1, ANNOUNCE_BUCKET_PREFIX_LENGTH); } -non_null() -static Announce_Entry *bucket_of_key(Announcements *announce, const uint8_t *pk) +static Announce_Entry *bucket_of_key(Announcements *_Nonnull announce, const uint8_t *_Nonnull pk) { return &announce->entries[announce_get_bucketnum(announce->public_key, pk) * ANNOUNCE_BUCKET_SIZE]; } -non_null() -static Announce_Entry *get_stored(Announcements *announce, const uint8_t *data_public_key) +static Announce_Entry *get_stored(Announcements *_Nonnull announce, const uint8_t *_Nonnull data_public_key) { Announce_Entry *const bucket = bucket_of_key(announce, data_public_key); @@ -140,14 +135,12 @@ static Announce_Entry *get_stored(Announcements *announce, const uint8_t *data_p return nullptr; } -non_null() -static const Announce_Entry *bucket_of_key_const(const Announcements *announce, const uint8_t *pk) +static const Announce_Entry *bucket_of_key_const(const Announcements *_Nonnull announce, const uint8_t *_Nonnull pk) { return &announce->entries[announce_get_bucketnum(announce->public_key, pk) * ANNOUNCE_BUCKET_SIZE]; } -non_null() -static const Announce_Entry *get_stored_const(const Announcements *announce, const uint8_t *data_public_key) +static const Announce_Entry *get_stored_const(const Announcements *_Nonnull announce, const uint8_t *_Nonnull data_public_key) { const Announce_Entry *const bucket = bucket_of_key_const(announce, data_public_key); @@ -186,8 +179,7 @@ bool announce_on_stored(const Announcements *announce, const uint8_t *data_publi * of greatest 2-adic distance greater than that of the key bucket if one * exists, else nullptr. */ -non_null() -static Announce_Entry *find_entry_slot(Announcements *announce, const uint8_t *data_public_key) +static Announce_Entry *find_entry_slot(Announcements *_Nonnull announce, const uint8_t *_Nonnull data_public_key) { Announce_Entry *const bucket = bucket_of_key(announce, data_public_key); @@ -216,8 +208,7 @@ static Announce_Entry *find_entry_slot(Announcements *announce, const uint8_t *d return slot; } -non_null() -static bool would_accept_store_request(Announcements *announce, const uint8_t *data_public_key) +static bool would_accept_store_request(Announcements *_Nonnull announce, const uint8_t *_Nonnull data_public_key) { return find_entry_slot(announce, data_public_key) != nullptr; } @@ -258,8 +249,7 @@ bool announce_store_data(Announcements *announce, const uint8_t *data_public_key return true; } -non_null() -static uint32_t calculate_timeout(const Announcements *announce, uint32_t requested_timeout) +static uint32_t calculate_timeout(const Announcements *_Nonnull announce, uint32_t requested_timeout) { const uint64_t uptime = mono_time_get(announce->mono_time) - announce->start_time; const uint32_t max_announcement_timeout = max_u32( @@ -273,11 +263,10 @@ static uint32_t calculate_timeout(const Announcements *announce, uint32_t reques #define DATA_SEARCH_TO_AUTH_MAX_SIZE (CRYPTO_PUBLIC_KEY_SIZE * 2 + MAX_PACKED_IPPORT_SIZE + MAX_SENDBACK_SIZE) -non_null(1, 2, 3, 4, 7) nullable(5) -static int create_data_search_to_auth(const Logger *logger, const uint8_t *data_public_key, - const uint8_t *requester_key, - const IP_Port *source, const uint8_t *sendback, uint16_t sendback_length, - uint8_t *dest, uint16_t max_length) +static int create_data_search_to_auth(const Logger *_Nonnull logger, const uint8_t *_Nonnull data_public_key, + const uint8_t *_Nonnull requester_key, + const IP_Port *_Nonnull source, const uint8_t *_Nullable sendback, uint16_t sendback_length, + uint8_t *_Nonnull dest, uint16_t max_length) { if (max_length < DATA_SEARCH_TO_AUTH_MAX_SIZE || sendback_length > MAX_SENDBACK_SIZE) { @@ -303,12 +292,8 @@ static int create_data_search_to_auth(const Logger *logger, const uint8_t *data_ #define DATA_SEARCH_TIMEOUT 60 -non_null() -static int create_reply_plain_data_search_request(Announcements *announce, - const IP_Port *source, - const uint8_t *data, uint16_t length, - uint8_t *reply, uint16_t reply_max_length, - const uint8_t *to_auth, uint16_t to_auth_length) +static int create_reply_plain_data_search_request(Announcements *_Nonnull announce, const IP_Port *_Nonnull source, const uint8_t *_Nonnull data, uint16_t length, uint8_t *_Nonnull reply, + uint16_t reply_max_length, const uint8_t *_Nonnull to_auth, uint16_t to_auth_length) { if (length != CRYPTO_PUBLIC_KEY_SIZE && length != CRYPTO_PUBLIC_KEY_SIZE + CRYPTO_SHA256_SIZE) { @@ -382,13 +367,8 @@ static int create_reply_plain_data_search_request(Announcements *announce, return reply_len; } -non_null() -static int create_reply_plain_data_retrieve_request( - const Announcements *announce, - const IP_Port *source, - const uint8_t *data, uint16_t length, - uint8_t *reply, uint16_t reply_max_length, - const uint8_t *to_auth, uint16_t to_auth_length) +static int create_reply_plain_data_retrieve_request(const Announcements *_Nonnull announce, const IP_Port *_Nonnull source, const uint8_t *_Nonnull data, uint16_t length, + uint8_t *_Nonnull reply, uint16_t reply_max_length, const uint8_t *_Nonnull to_auth, uint16_t to_auth_length) { if (length != CRYPTO_PUBLIC_KEY_SIZE + 1 + TIMED_AUTH_SIZE) { return -1; @@ -425,12 +405,8 @@ static int create_reply_plain_data_retrieve_request( return reply_len; } -non_null() -static int create_reply_plain_store_announce_request(Announcements *announce, - const IP_Port *source, - const uint8_t *data, uint16_t length, - uint8_t *reply, uint16_t reply_max_length, - const uint8_t *to_auth, uint16_t to_auth_length) +static int create_reply_plain_store_announce_request(Announcements *_Nonnull announce, const IP_Port *_Nonnull source, const uint8_t *_Nonnull data, uint16_t length, uint8_t *_Nonnull reply, + uint16_t reply_max_length, const uint8_t *_Nonnull to_auth, uint16_t to_auth_length) { const int plain_len = (int)length - (CRYPTO_PUBLIC_KEY_SIZE + CRYPTO_NONCE_SIZE + CRYPTO_MAC_SIZE); const int announcement_len = plain_len - (TIMED_AUTH_SIZE + sizeof(uint32_t) + 1); @@ -513,12 +489,11 @@ static int create_reply_plain_store_announce_request(Announcements *announce, return reply_len; } -non_null(1, 2, 3, 7, 9) nullable(5) -static int create_reply_plain(Announcements *announce, - const uint8_t *requester_key, const IP_Port *source, uint8_t type, - const uint8_t *sendback, uint16_t sendback_length, - const uint8_t *data, uint16_t length, - uint8_t *reply, uint16_t reply_max_length) +static int create_reply_plain(Announcements *_Nonnull announce, + const uint8_t *_Nonnull requester_key, const IP_Port *_Nonnull source, uint8_t type, + const uint8_t *_Nullable sendback, uint16_t sendback_length, + const uint8_t *_Nonnull data, uint16_t length, + uint8_t *_Nonnull reply, uint16_t reply_max_length) { if (length < CRYPTO_PUBLIC_KEY_SIZE) { return -1; @@ -552,14 +527,12 @@ static int create_reply_plain(Announcements *announce, } } -non_null(1, 2, 5, 7) nullable(3) -static int create_reply(Announcements *announce, const IP_Port *source, - const uint8_t *sendback, uint16_t sendback_length, - const uint8_t *data, uint16_t length, - uint8_t *reply, uint16_t reply_max_length) +static int create_reply(Announcements *_Nonnull announce, const IP_Port *_Nonnull source, + const uint8_t *_Nullable sendback, uint16_t sendback_length, + const uint8_t *_Nonnull data, uint16_t length, + uint8_t *_Nonnull reply, uint16_t reply_max_length) { const int plain_len = (int)length - (1 + CRYPTO_PUBLIC_KEY_SIZE + CRYPTO_NONCE_SIZE + CRYPTO_MAC_SIZE); - if (plain_len < (int)sizeof(uint64_t)) { return -1; } @@ -605,13 +578,11 @@ static int create_reply(Announcements *announce, const IP_Port *source, response_type, plain_reply, plain_reply_len, reply, reply_max_length); } -non_null(1, 2, 3, 5) nullable(7) -static void forwarded_request_callback(void *object, const IP_Port *forwarder, - const uint8_t *sendback, uint16_t sendback_length, - const uint8_t *data, uint16_t length, void *userdata) +static void forwarded_request_callback(void *_Nonnull object, const IP_Port *_Nonnull forwarder, + const uint8_t *_Nonnull sendback, uint16_t sendback_length, + const uint8_t *_Nonnull data, uint16_t length, void *_Nullable userdata) { Announcements *announce = (Announcements *) object; - uint8_t reply[MAX_FORWARD_DATA_SIZE]; const int len = create_reply(announce, forwarder, @@ -625,12 +596,10 @@ static void forwarded_request_callback(void *object, const IP_Port *forwarder, forward_reply(announce->net, forwarder, sendback, sendback_length, reply, len); } -non_null(1, 2, 3) nullable(5) static int handle_dht_announce_request( - void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, void *userdata) + void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, void *_Nullable userdata) { Announcements *announce = (Announcements *)object; - uint8_t reply[MAX_FORWARD_DATA_SIZE]; const int len diff --git a/external/toxcore/c-toxcore/toxcore/announce.h b/external/toxcore/c-toxcore/toxcore/announce.h index c139745..27b2f78 100644 --- a/external/toxcore/c-toxcore/toxcore/announce.h +++ b/external/toxcore/c-toxcore/toxcore/announce.h @@ -16,45 +16,35 @@ #define MAX_ANNOUNCEMENT_SIZE 512 -typedef void announce_on_retrieve_cb(void *object, const uint8_t *data, uint16_t length); +typedef void announce_on_retrieve_cb(void *_Nullable object, const uint8_t *_Nullable data, uint16_t length); uint8_t announce_response_of_request_type(uint8_t request_type); typedef struct Announcements Announcements; -non_null() -Announcements *new_announcements(const Logger *log, const Memory *mem, const Random *rng, const Mono_Time *mono_time, - Forwarding *forwarding); +Announcements *_Nullable new_announcements(const Logger *_Nonnull log, const Memory *_Nonnull mem, const Random *_Nonnull rng, const Mono_Time *_Nonnull mono_time, Forwarding *_Nonnull forwarding); /** * @brief If data is stored, run `on_retrieve_callback` on it. * * @return true if data is stored, false otherwise. */ -non_null(1, 2) nullable(3, 4) -bool announce_on_stored(const Announcements *announce, const uint8_t *data_public_key, - announce_on_retrieve_cb *on_retrieve_callback, void *object); - -non_null() -void announce_set_synch_offset(Announcements *announce, int32_t synch_offset); - -nullable(1) -void kill_announcements(Announcements *announce); +bool announce_on_stored(const Announcements *_Nonnull announce, const uint8_t *_Nonnull data_public_key, + announce_on_retrieve_cb *_Nullable on_retrieve_callback, void *_Nullable object); +void announce_set_synch_offset(Announcements *_Nonnull announce, int32_t synch_offset); +void kill_announcements(Announcements *_Nullable announce); /* The declarations below are not public, they are exposed only for tests. */ /** @private * Return xor of first ANNOUNCE_BUCKET_PREFIX_LENGTH bits from one bit after * base and pk first differ */ -non_null() -uint16_t announce_get_bucketnum(const uint8_t *base, const uint8_t *pk); +uint16_t announce_get_bucketnum(const uint8_t *_Nonnull base, const uint8_t *_Nonnull pk); /** @private */ -non_null(1, 2) nullable(3) -bool announce_store_data(Announcements *announce, const uint8_t *data_public_key, - const uint8_t *data, uint32_t length, uint32_t timeout); - +bool announce_store_data(Announcements *_Nonnull announce, const uint8_t *_Nonnull data_public_key, + const uint8_t *_Nullable data, uint32_t length, uint32_t timeout); /** @private */ #define MAX_MAX_ANNOUNCEMENT_TIMEOUT 900 #define MIN_MAX_ANNOUNCEMENT_TIMEOUT 10 diff --git a/external/toxcore/c-toxcore/toxcore/attributes.h b/external/toxcore/c-toxcore/toxcore/attributes.h index 009dfa3..76d2366 100644 --- a/external/toxcore/c-toxcore/toxcore/attributes.h +++ b/external/toxcore/c-toxcore/toxcore/attributes.h @@ -18,14 +18,11 @@ #define GNU_PRINTF(f, a) #endif -#if defined(__GNUC__) && defined(_DEBUG) -#define non_null(...) __attribute__((__nonnull__(__VA_ARGS__))) -#else -#define non_null(...) +#ifndef __clang__ +#define _Nonnull +#define _Nullable #endif -#define nullable(...) - #ifdef SPARSE #define bitwise __attribute__((bitwise)) #define force __attribute__((force)) diff --git a/external/toxcore/c-toxcore/toxcore/bin_pack.c b/external/toxcore/c-toxcore/toxcore/bin_pack.c index 82e9d20..595bb0d 100644 --- a/external/toxcore/c-toxcore/toxcore/bin_pack.c +++ b/external/toxcore/c-toxcore/toxcore/bin_pack.c @@ -19,22 +19,19 @@ struct Bin_Pack { cmp_ctx_t ctx; }; -non_null() -static bool null_reader(cmp_ctx_t *ctx, void *data, size_t limit) +static bool null_reader(cmp_ctx_t *_Nonnull ctx, void *_Nonnull data, size_t limit) { assert(limit == 0); return false; } -non_null() -static bool null_skipper(cmp_ctx_t *ctx, size_t count) +static bool null_skipper(cmp_ctx_t *_Nonnull ctx, size_t count) { assert(count == 0); return false; } -non_null() -static size_t buf_writer(cmp_ctx_t *ctx, const void *data, size_t count) +static size_t buf_writer(cmp_ctx_t *_Nonnull ctx, const void *_Nonnull data, size_t count) { const uint8_t *bytes = (const uint8_t *)data; Bin_Pack *bp = (Bin_Pack *)ctx->buf; @@ -55,8 +52,7 @@ static size_t buf_writer(cmp_ctx_t *ctx, const void *data, size_t count) return count; } -non_null(1) nullable(2) -static void bin_pack_init(Bin_Pack *bp, uint8_t *buf, uint32_t buf_size) +static void bin_pack_init(Bin_Pack *_Nonnull bp, uint8_t *_Nullable buf, uint32_t buf_size) { bp->bytes = buf; bp->bytes_size = buf_size; diff --git a/external/toxcore/c-toxcore/toxcore/bin_pack.h b/external/toxcore/c-toxcore/toxcore/bin_pack.h index 4b2927f..83c3cfa 100644 --- a/external/toxcore/c-toxcore/toxcore/bin_pack.h +++ b/external/toxcore/c-toxcore/toxcore/bin_pack.h @@ -44,7 +44,7 @@ typedef struct Bin_Pack Bin_Pack; * This function would typically cast the `void *` to the actual object pointer type and then call * more appropriately typed packing functions. */ -typedef bool bin_pack_cb(const void *obj, const Logger *logger, Bin_Pack *bp); +typedef bool bin_pack_cb(const void *_Nullable obj, const Logger *_Nullable logger, Bin_Pack *_Nonnull bp); /** @brief Function used to pack an array of objects. * @@ -54,7 +54,7 @@ typedef bool bin_pack_cb(const void *obj, const Logger *logger, Bin_Pack *bp); * @param arr is the object array as void pointer. * @param index is the index in the object array that is currently being packed. */ -typedef bool bin_pack_array_cb(const void *arr, uint32_t index, const Logger *logger, Bin_Pack *bp); +typedef bool bin_pack_array_cb(const void *_Nullable arr, uint32_t index, const Logger *_Nullable logger, Bin_Pack *_Nonnull bp); /** @brief Determine the serialised size of an object. * @@ -65,9 +65,7 @@ typedef bool bin_pack_array_cb(const void *arr, uint32_t index, const Logger *lo * @return The packed size of the passed object according to the callback. * @retval UINT32_MAX in case of errors such as buffer overflow. */ -non_null(1) nullable(2, 3) -uint32_t bin_pack_obj_size(bin_pack_cb *callback, const void *obj, const Logger *logger); - +uint32_t bin_pack_obj_size(bin_pack_cb *_Nonnull callback, const void *_Nullable obj, const Logger *_Nullable logger); /** @brief Pack an object into a buffer of a given size. * * This function creates and initialises a `Bin_Pack` packer object, calls the callback with the @@ -88,9 +86,7 @@ uint32_t bin_pack_obj_size(bin_pack_cb *callback, const void *obj, const Logger * * @retval false if an error occurred (e.g. buffer overflow). */ -non_null(1, 4) nullable(2, 3) -bool bin_pack_obj(bin_pack_cb *callback, const void *obj, const Logger *logger, uint8_t *buf, uint32_t buf_size); - +bool bin_pack_obj(bin_pack_cb *_Nonnull callback, const void *_Nullable obj, const Logger *_Nullable logger, uint8_t *_Nonnull buf, uint32_t buf_size); /** @brief Determine the serialised size of an object array. * * Behaves exactly like `bin_pack_obj_b_array` but doesn't write. @@ -104,9 +100,7 @@ bool bin_pack_obj(bin_pack_cb *callback, const void *obj, const Logger *logger, * @return The packed size of the passed object array according to the callback. * @retval UINT32_MAX in case of errors such as buffer overflow. */ -non_null(1) nullable(2, 4) -uint32_t bin_pack_obj_array_b_size(bin_pack_array_cb *callback, const void *arr, uint32_t arr_size, const Logger *logger); - +uint32_t bin_pack_obj_array_b_size(bin_pack_array_cb *_Nonnull callback, const void *_Nullable arr, uint32_t arr_size, const Logger *_Nullable logger); /** @brief Pack an object array into a buffer of a given size. * * Similar to `bin_pack_obj_array` but does not write the array length, so @@ -124,9 +118,7 @@ uint32_t bin_pack_obj_array_b_size(bin_pack_array_cb *callback, const void *arr, * * @retval false if an error occurred (e.g. buffer overflow). */ -non_null(1, 5) nullable(2, 4) -bool bin_pack_obj_array_b(bin_pack_array_cb *callback, const void *arr, uint32_t arr_size, const Logger *logger, uint8_t *buf, uint32_t buf_size); - +bool bin_pack_obj_array_b(bin_pack_array_cb *_Nonnull callback, const void *_Nullable arr, uint32_t arr_size, const Logger *_Nullable logger, uint8_t *_Nonnull buf, uint32_t buf_size); /** @brief Encode an object array as MessagePack array into a bin packer. * * Calls the callback `arr_size` times with increasing `index` argument from 0 to @@ -150,51 +142,48 @@ bool bin_pack_obj_array_b(bin_pack_array_cb *callback, const void *arr, uint32_t * * @retval false if an error occurred (e.g. buffer overflow). */ -non_null(1, 2) nullable(3, 5) -bool bin_pack_obj_array(Bin_Pack *bp, bin_pack_array_cb *callback, const void *arr, uint32_t arr_size, const Logger *logger); - +bool bin_pack_obj_array(Bin_Pack *_Nonnull bp, bin_pack_array_cb *_Nonnull callback, const void *_Nullable arr, uint32_t arr_size, const Logger *_Nullable logger); /** @brief Start packing a MessagePack array. * * A call to this function must be followed by exactly `size` calls to other functions below. */ -non_null() -bool bin_pack_array(Bin_Pack *bp, uint32_t size); +bool bin_pack_array(Bin_Pack *_Nonnull bp, uint32_t size); /** @brief Pack a MessagePack bool. */ -non_null() bool bin_pack_bool(Bin_Pack *bp, bool val); +bool bin_pack_bool(Bin_Pack *_Nonnull bp, bool val); /** @brief Pack a `uint8_t` as MessagePack positive integer. */ -non_null() bool bin_pack_u08(Bin_Pack *bp, uint8_t val); +bool bin_pack_u08(Bin_Pack *_Nonnull bp, uint8_t val); /** @brief Pack a `uint16_t` as MessagePack positive integer. */ -non_null() bool bin_pack_u16(Bin_Pack *bp, uint16_t val); +bool bin_pack_u16(Bin_Pack *_Nonnull bp, uint16_t val); /** @brief Pack a `uint32_t` as MessagePack positive integer. */ -non_null() bool bin_pack_u32(Bin_Pack *bp, uint32_t val); +bool bin_pack_u32(Bin_Pack *_Nonnull bp, uint32_t val); /** @brief Pack a `uint64_t` as MessagePack positive integer. */ -non_null() bool bin_pack_u64(Bin_Pack *bp, uint64_t val); +bool bin_pack_u64(Bin_Pack *_Nonnull bp, uint64_t val); /** @brief Pack an empty array member as a MessagePack nil value. */ -non_null() bool bin_pack_nil(Bin_Pack *bp); +bool bin_pack_nil(Bin_Pack *_Nonnull bp); /** @brief Pack a byte array as MessagePack bin. */ -non_null() bool bin_pack_bin(Bin_Pack *bp, const uint8_t *data, uint32_t length); +bool bin_pack_bin(Bin_Pack *_Nonnull bp, const uint8_t *_Nonnull data, uint32_t length); /** @brief Start packing a custom binary representation. * * A call to this function must be followed by exactly `size` bytes packed by functions below. */ -non_null() bool bin_pack_bin_marker(Bin_Pack *bp, uint32_t size); +bool bin_pack_bin_marker(Bin_Pack *_Nonnull bp, uint32_t size); /** @brief Write a `uint8_t` directly to the packer in 1 byte. */ -non_null() bool bin_pack_u08_b(Bin_Pack *bp, uint8_t val); +bool bin_pack_u08_b(Bin_Pack *_Nonnull bp, uint8_t val); /** @brief Write a `uint16_t` as big endian 16 bit int in 2 bytes. */ -non_null() bool bin_pack_u16_b(Bin_Pack *bp, uint16_t val); +bool bin_pack_u16_b(Bin_Pack *_Nonnull bp, uint16_t val); /** @brief Write a `uint32_t` as big endian 32 bit int in 4 bytes. */ -non_null() bool bin_pack_u32_b(Bin_Pack *bp, uint32_t val); +bool bin_pack_u32_b(Bin_Pack *_Nonnull bp, uint32_t val); /** @brief Write a `uint64_t` as big endian 64 bit int in 8 bytes. */ -non_null() bool bin_pack_u64_b(Bin_Pack *bp, uint64_t val); +bool bin_pack_u64_b(Bin_Pack *_Nonnull bp, uint64_t val); /** @brief Write a byte array directly to the packer in `length` bytes. * * Note that unless you prepend the array length manually, there is no record of it in the resulting * serialised representation. */ -non_null() bool bin_pack_bin_b(Bin_Pack *bp, const uint8_t *data, uint32_t length); +bool bin_pack_bin_b(Bin_Pack *_Nonnull bp, const uint8_t *_Nonnull data, uint32_t length); #ifdef __cplusplus } /* extern "C" */ diff --git a/external/toxcore/c-toxcore/toxcore/bin_unpack.c b/external/toxcore/c-toxcore/toxcore/bin_unpack.c index e311094..dfbb8cc 100644 --- a/external/toxcore/c-toxcore/toxcore/bin_unpack.c +++ b/external/toxcore/c-toxcore/toxcore/bin_unpack.c @@ -20,8 +20,7 @@ struct Bin_Unpack { cmp_ctx_t ctx; }; -non_null() -static bool buf_reader(cmp_ctx_t *ctx, void *data, size_t limit) +static bool buf_reader(cmp_ctx_t *_Nonnull ctx, void *_Nonnull data, size_t limit) { uint8_t *bytes = (uint8_t *)data; Bin_Unpack *reader = (Bin_Unpack *)ctx->buf; @@ -35,8 +34,7 @@ static bool buf_reader(cmp_ctx_t *ctx, void *data, size_t limit) return true; } -non_null() -static bool buf_skipper(cmp_ctx_t *ctx, size_t count) +static bool buf_skipper(cmp_ctx_t *_Nonnull ctx, size_t count) { Bin_Unpack *reader = (Bin_Unpack *)ctx->buf; assert(reader != nullptr && reader->bytes != nullptr); @@ -48,15 +46,13 @@ static bool buf_skipper(cmp_ctx_t *ctx, size_t count) return true; } -non_null() -static size_t null_writer(cmp_ctx_t *ctx, const void *data, size_t count) +static size_t null_writer(cmp_ctx_t *_Nonnull ctx, const void *_Nonnull data, size_t count) { assert(count == 0); return 0; } -non_null() -static void bin_unpack_init(Bin_Unpack *bu, const Memory *mem, const uint8_t *buf, uint32_t buf_size) +static void bin_unpack_init(Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem, const uint8_t *_Nonnull buf, uint32_t buf_size) { bu->mem = mem; bu->bytes = buf; diff --git a/external/toxcore/c-toxcore/toxcore/bin_unpack.h b/external/toxcore/c-toxcore/toxcore/bin_unpack.h index 029c3a0..44bf0c9 100644 --- a/external/toxcore/c-toxcore/toxcore/bin_unpack.h +++ b/external/toxcore/c-toxcore/toxcore/bin_unpack.h @@ -29,7 +29,7 @@ typedef struct Bin_Unpack Bin_Unpack; * This function would typically cast the `void *` to the actual object pointer type and then call * more appropriately typed unpacking functions. */ -typedef bool bin_unpack_cb(void *obj, Bin_Unpack *bu); +typedef bool bin_unpack_cb(void *_Nonnull obj, Bin_Unpack *_Nonnull bu); /** @brief Unpack an object from a buffer of a given size. * @@ -46,8 +46,7 @@ typedef bool bin_unpack_cb(void *obj, Bin_Unpack *bu); * * @retval false if an error occurred (e.g. buffer overrun). */ -non_null() -bool bin_unpack_obj(const Memory *mem, bin_unpack_cb *callback, void *obj, const uint8_t *buf, uint32_t buf_size); +bool bin_unpack_obj(const Memory *_Nonnull mem, bin_unpack_cb *_Nonnull callback, void *_Nonnull obj, const uint8_t *_Nonnull buf, uint32_t buf_size); /** @brief Start unpacking a MessagePack array. * @@ -55,7 +54,7 @@ bool bin_unpack_obj(const Memory *mem, bin_unpack_cb *callback, void *obj, const * * @param size Will contain the number of array elements following the array marker. */ -non_null() bool bin_unpack_array(Bin_Unpack *bu, uint32_t *size); +bool bin_unpack_array(Bin_Unpack *_Nonnull bu, uint32_t *_Nonnull size); /** @brief Start unpacking a fixed size MessagePack array. * @@ -64,21 +63,19 @@ non_null() bool bin_unpack_array(Bin_Unpack *bu, uint32_t *size); * * @retval false if the packed array size is not exactly the required size. */ -non_null(1) nullable(3) -bool bin_unpack_array_fixed(Bin_Unpack *bu, uint32_t required_size, uint32_t *actual_size); - +bool bin_unpack_array_fixed(Bin_Unpack *_Nonnull bu, uint32_t required_size, uint32_t *_Nullable actual_size); /** @brief Unpack a MessagePack bool. */ -non_null() bool bin_unpack_bool(Bin_Unpack *bu, bool *val); +bool bin_unpack_bool(Bin_Unpack *_Nonnull bu, bool *_Nonnull val); /** @brief Unpack a MessagePack positive int into a `uint8_t`. */ -non_null() bool bin_unpack_u08(Bin_Unpack *bu, uint8_t *val); +bool bin_unpack_u08(Bin_Unpack *_Nonnull bu, uint8_t *_Nonnull val); /** @brief Unpack a MessagePack positive int into a `uint16_t`. */ -non_null() bool bin_unpack_u16(Bin_Unpack *bu, uint16_t *val); +bool bin_unpack_u16(Bin_Unpack *_Nonnull bu, uint16_t *_Nonnull val); /** @brief Unpack a MessagePack positive int into a `uint32_t`. */ -non_null() bool bin_unpack_u32(Bin_Unpack *bu, uint32_t *val); +bool bin_unpack_u32(Bin_Unpack *_Nonnull bu, uint32_t *_Nonnull val); /** @brief Unpack a MessagePack positive int into a `uint64_t`. */ -non_null() bool bin_unpack_u64(Bin_Unpack *bu, uint64_t *val); +bool bin_unpack_u64(Bin_Unpack *_Nonnull bu, uint64_t *_Nonnull val); /** @brief Unpack a Messagepack nil value. */ -non_null() bool bin_unpack_nil(Bin_Unpack *bu); +bool bin_unpack_nil(Bin_Unpack *_Nonnull bu); /** @brief Unpack a MessagePack bin into a newly allocated byte array. * @@ -87,37 +84,37 @@ non_null() bool bin_unpack_nil(Bin_Unpack *bu); * remaining to be unpacked as the bin claims to need, so it's not possible to cause an arbitrarily * large allocation unless the input array was already that large. */ -non_null() bool bin_unpack_bin(Bin_Unpack *bu, uint8_t **data_ptr, uint32_t *data_length_ptr); +bool bin_unpack_bin(Bin_Unpack *_Nonnull bu, uint8_t *_Nonnull *_Nonnull data_ptr, uint32_t *_Nonnull data_length_ptr); /** @brief Unpack a variable size MessagePack bin into a fixed size byte array. * * Stores unpacked data into `data` with its length stored in `data_length_ptr`. This function does * not allocate memory and requires that `max_data_length` is less than or equal to `sizeof(arr)` * when `arr` is passed as `data` pointer. */ -non_null() bool bin_unpack_bin_max(Bin_Unpack *bu, uint8_t *data, uint16_t *data_length_ptr, uint16_t max_data_length); +bool bin_unpack_bin_max(Bin_Unpack *_Nonnull bu, uint8_t *_Nonnull data, uint16_t *_Nonnull data_length_ptr, uint16_t max_data_length); /** @brief Unpack a MessagePack bin of a fixed length into a pre-allocated byte array. * * Similar to the function above, but doesn't output the data length. */ -non_null() bool bin_unpack_bin_fixed(Bin_Unpack *bu, uint8_t *data, uint32_t data_length); +bool bin_unpack_bin_fixed(Bin_Unpack *_Nonnull bu, uint8_t *_Nonnull data, uint32_t data_length); /** @brief Start unpacking a custom binary representation. * * A call to this function must be followed by exactly `size` bytes packed by functions below. */ -non_null() bool bin_unpack_bin_size(Bin_Unpack *bu, uint32_t *size); +bool bin_unpack_bin_size(Bin_Unpack *_Nonnull bu, uint32_t *_Nonnull size); /** @brief Read a `uint8_t` directly from the unpacker, consuming 1 byte. */ -non_null() bool bin_unpack_u08_b(Bin_Unpack *bu, uint8_t *val); +bool bin_unpack_u08_b(Bin_Unpack *_Nonnull bu, uint8_t *_Nonnull val); /** @brief Read a `uint16_t` as big endian 16 bit int, consuming 2 bytes. */ -non_null() bool bin_unpack_u16_b(Bin_Unpack *bu, uint16_t *val); +bool bin_unpack_u16_b(Bin_Unpack *_Nonnull bu, uint16_t *_Nonnull val); /** @brief Read a `uint32_t` as big endian 32 bit int, consuming 4 bytes. */ -non_null() bool bin_unpack_u32_b(Bin_Unpack *bu, uint32_t *val); +bool bin_unpack_u32_b(Bin_Unpack *_Nonnull bu, uint32_t *_Nonnull val); /** @brief Read a `uint64_t` as big endian 64 bit int, consuming 8 bytes. */ -non_null() bool bin_unpack_u64_b(Bin_Unpack *bu, uint64_t *val); +bool bin_unpack_u64_b(Bin_Unpack *_Nonnull bu, uint64_t *_Nonnull val); /** @brief Read a byte array directly from the packer, consuming `length` bytes. */ -non_null() bool bin_unpack_bin_b(Bin_Unpack *bu, uint8_t *data, uint32_t length); +bool bin_unpack_bin_b(Bin_Unpack *_Nonnull bu, uint8_t *_Nonnull data, uint32_t length); #ifdef __cplusplus } /* extern "C" */ diff --git a/external/toxcore/c-toxcore/toxcore/crypto_core.c b/external/toxcore/c-toxcore/toxcore/crypto_core.c index 8a6aa38..9f140ac 100644 --- a/external/toxcore/c-toxcore/toxcore/crypto_core.c +++ b/external/toxcore/c-toxcore/toxcore/crypto_core.c @@ -88,8 +88,7 @@ const uint8_t *get_chat_id(const Extended_Public_Key *key) } #if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) -non_null() -static uint8_t *crypto_malloc(const Memory *mem, size_t bytes) +static uint8_t *crypto_malloc(const Memory *_Nonnull mem, size_t bytes) { uint8_t *ptr = (uint8_t *)mem_balloc(mem, bytes); @@ -100,8 +99,7 @@ static uint8_t *crypto_malloc(const Memory *mem, size_t bytes) return ptr; } -non_null(1) nullable(2) -static void crypto_free(const Memory *mem, uint8_t *ptr, size_t bytes) +static void crypto_free(const Memory *_Nonnull mem, uint8_t *_Nullable ptr, size_t bytes) { if (ptr != nullptr) { crypto_memzero(ptr, bytes); @@ -495,14 +493,12 @@ void crypto_sha512(uint8_t hash[CRYPTO_SHA512_SIZE], const uint8_t *data, size_t #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */ } -non_null() -static void sys_random_bytes(void *obj, uint8_t *bytes, size_t length) +static void sys_random_bytes(void *_Nonnull obj, uint8_t *_Nonnull bytes, size_t length) { randombytes(bytes, length); } -non_null() -static uint32_t sys_random_uniform(void *obj, uint32_t upper_bound) +static uint32_t sys_random_uniform(void *_Nonnull obj, uint32_t upper_bound) { return randombytes_uniform(upper_bound); } diff --git a/external/toxcore/c-toxcore/toxcore/crypto_core.h b/external/toxcore/c-toxcore/toxcore/crypto_core.h index 558118e..82b31e3 100644 --- a/external/toxcore/c-toxcore/toxcore/crypto_core.h +++ b/external/toxcore/c-toxcore/toxcore/crypto_core.h @@ -84,19 +84,19 @@ extern "C" { * secure pseudo-random number generator (CSPRNG). The security of Tox heavily * depends on the security of this RNG. */ -typedef void crypto_random_bytes_cb(void *obj, uint8_t *bytes, size_t length); +typedef void crypto_random_bytes_cb(void *_Nullable obj, uint8_t *_Nonnull bytes, size_t length); /** @brief Generate a random integer between 0 and @p upper_bound. * * Should produce a uniform random distribution, but Tox security does not * depend on this being correct. In principle, it could even be a non-CSPRNG. */ -typedef uint32_t crypto_random_uniform_cb(void *obj, uint32_t upper_bound); +typedef uint32_t crypto_random_uniform_cb(void *_Nullable obj, uint32_t upper_bound); /** @brief Virtual function table for Random. */ typedef struct Random_Funcs { - crypto_random_bytes_cb *random_bytes; - crypto_random_uniform_cb *random_uniform; + crypto_random_bytes_cb *_Nullable random_bytes; + crypto_random_uniform_cb *_Nullable random_uniform; } Random_Funcs; /** @brief Random number generator object. @@ -106,15 +106,15 @@ typedef struct Random_Funcs { * CSPRNG and use `os_random` below. */ typedef struct Random { - const Random_Funcs *funcs; - void *obj; + const Random_Funcs *_Nullable funcs; + void *_Nullable obj; } Random; /** @brief System random number generator. * * Uses libsodium's CSPRNG (on Linux, `/dev/urandom`). */ -const Random *os_random(void); +const Random *_Nullable os_random(void); /** * @brief The number of bytes in an encryption public key used by DHT group chats. @@ -168,24 +168,21 @@ const Random *os_random(void); * will be no reads to the written data. Use this function if you want to be * sure the memory is indeed zeroed. */ -non_null() -void crypto_memzero(void *data, size_t length); +void crypto_memzero(void *_Nonnull data, size_t length); /** * @brief Compute a SHA256 hash (32 bytes). * * @param[out] hash The SHA256 hash of @p data will be written to this byte array. */ -non_null() -void crypto_sha256(uint8_t hash[CRYPTO_SHA256_SIZE], const uint8_t *data, size_t length); +void crypto_sha256(uint8_t hash[_Nonnull CRYPTO_SHA256_SIZE], const uint8_t *_Nonnull data, size_t length); /** * @brief Compute a SHA512 hash (64 bytes). * * @param[out] hash The SHA512 hash of @p data will be written to this byte array. */ -non_null() -void crypto_sha512(uint8_t hash[CRYPTO_SHA512_SIZE], const uint8_t *data, size_t length); +void crypto_sha512(uint8_t hash[_Nonnull CRYPTO_SHA512_SIZE], const uint8_t *_Nonnull data, size_t length); /** * @brief Compute an HMAC authenticator (32 bytes). @@ -193,16 +190,12 @@ void crypto_sha512(uint8_t hash[CRYPTO_SHA512_SIZE], const uint8_t *data, size_t * @param[out] auth Resulting authenticator. * @param key Secret key, as generated by `new_hmac_key()`. */ -non_null() -void crypto_hmac(uint8_t auth[CRYPTO_HMAC_SIZE], const uint8_t key[CRYPTO_HMAC_KEY_SIZE], - const uint8_t *data, size_t length); +void crypto_hmac(uint8_t auth[_Nonnull CRYPTO_HMAC_SIZE], const uint8_t key[_Nonnull CRYPTO_HMAC_KEY_SIZE], const uint8_t *_Nonnull data, size_t length); /** * @brief Verify an HMAC authenticator. */ -non_null() -bool crypto_hmac_verify(const uint8_t auth[CRYPTO_HMAC_SIZE], const uint8_t key[CRYPTO_HMAC_KEY_SIZE], - const uint8_t *data, size_t length); +bool crypto_hmac_verify(const uint8_t auth[_Nonnull CRYPTO_HMAC_SIZE], const uint8_t key[_Nonnull CRYPTO_HMAC_KEY_SIZE], const uint8_t *_Nonnull data, size_t length); /** * @brief Compare 2 public keys of length @ref CRYPTO_PUBLIC_KEY_SIZE, not vulnerable to @@ -211,14 +204,12 @@ bool crypto_hmac_verify(const uint8_t auth[CRYPTO_HMAC_SIZE], const uint8_t key[ * @retval true if both mem locations of length are equal * @retval false if they are not */ -non_null() -bool pk_equal(const uint8_t pk1[CRYPTO_PUBLIC_KEY_SIZE], const uint8_t pk2[CRYPTO_PUBLIC_KEY_SIZE]); +bool pk_equal(const uint8_t pk1[_Nonnull CRYPTO_PUBLIC_KEY_SIZE], const uint8_t pk2[_Nonnull CRYPTO_PUBLIC_KEY_SIZE]); /** * @brief Copy a public key from `src` to `dest`. */ -non_null() -void pk_copy(uint8_t dest[CRYPTO_PUBLIC_KEY_SIZE], const uint8_t src[CRYPTO_PUBLIC_KEY_SIZE]); +void pk_copy(uint8_t dest[_Nonnull CRYPTO_PUBLIC_KEY_SIZE], const uint8_t src[_Nonnull CRYPTO_PUBLIC_KEY_SIZE]); /** * @brief Compare 2 SHA512 checksums of length CRYPTO_SHA512_SIZE, not vulnerable to @@ -226,8 +217,7 @@ void pk_copy(uint8_t dest[CRYPTO_PUBLIC_KEY_SIZE], const uint8_t src[CRYPTO_PUBL * * @return true if both mem locations of length are equal, false if they are not. */ -non_null() -bool crypto_sha512_eq(const uint8_t cksum1[CRYPTO_SHA512_SIZE], const uint8_t cksum2[CRYPTO_SHA512_SIZE]); +bool crypto_sha512_eq(const uint8_t cksum1[_Nonnull CRYPTO_SHA512_SIZE], const uint8_t cksum2[_Nonnull CRYPTO_SHA512_SIZE]); /** * @brief Compare 2 SHA256 checksums of length CRYPTO_SHA256_SIZE, not vulnerable to @@ -235,40 +225,34 @@ bool crypto_sha512_eq(const uint8_t cksum1[CRYPTO_SHA512_SIZE], const uint8_t ck * * @return true if both mem locations of length are equal, false if they are not. */ -non_null() -bool crypto_sha256_eq(const uint8_t cksum1[CRYPTO_SHA256_SIZE], const uint8_t cksum2[CRYPTO_SHA256_SIZE]); +bool crypto_sha256_eq(const uint8_t cksum1[_Nonnull CRYPTO_SHA256_SIZE], const uint8_t cksum2[_Nonnull CRYPTO_SHA256_SIZE]); /** * @brief Return a random 8 bit integer. */ -non_null() -uint8_t random_u08(const Random *rng); +uint8_t random_u08(const Random *_Nonnull rng); /** * @brief Return a random 16 bit integer. */ -non_null() -uint16_t random_u16(const Random *rng); +uint16_t random_u16(const Random *_Nonnull rng); /** * @brief Return a random 32 bit integer. */ -non_null() -uint32_t random_u32(const Random *rng); +uint32_t random_u32(const Random *_Nonnull rng); /** * @brief Return a random 64 bit integer. */ -non_null() -uint64_t random_u64(const Random *rng); +uint64_t random_u64(const Random *_Nonnull rng); /** * @brief Return a random 32 bit integer between 0 and upper_bound (excluded). * * This function guarantees a uniform distribution of possible outputs. */ -non_null() -uint32_t random_range_u32(const Random *rng, uint32_t upper_bound); +uint32_t random_range_u32(const Random *_Nonnull rng, uint32_t upper_bound); /** * @brief Cryptographically signs a message using the supplied secret key and puts the resulting signature @@ -283,10 +267,7 @@ uint32_t random_range_u32(const Random *rng, uint32_t upper_bound); * * @retval true on success. */ -non_null() -bool crypto_signature_create(uint8_t signature[CRYPTO_SIGNATURE_SIZE], - const uint8_t *message, uint64_t message_length, - const uint8_t secret_key[SIG_SECRET_KEY_SIZE]); +bool crypto_signature_create(uint8_t signature[_Nonnull CRYPTO_SIGNATURE_SIZE], const uint8_t *_Nonnull message, uint64_t message_length, const uint8_t secret_key[_Nonnull SIG_SECRET_KEY_SIZE]); /** @brief Verifies that the given signature was produced by a given message and public key. * @@ -298,22 +279,18 @@ bool crypto_signature_create(uint8_t signature[CRYPTO_SIGNATURE_SIZE], * * @retval true on success. */ -non_null() -bool crypto_signature_verify(const uint8_t signature[CRYPTO_SIGNATURE_SIZE], - const uint8_t *message, uint64_t message_length, - const uint8_t public_key[SIG_PUBLIC_KEY_SIZE]); +bool crypto_signature_verify(const uint8_t signature[_Nonnull CRYPTO_SIGNATURE_SIZE], const uint8_t *_Nonnull message, uint64_t message_length, + const uint8_t public_key[_Nonnull SIG_PUBLIC_KEY_SIZE]); /** * @brief Fill the given nonce with random bytes. */ -non_null() -void random_nonce(const Random *rng, uint8_t nonce[CRYPTO_NONCE_SIZE]); +void random_nonce(const Random *_Nonnull rng, uint8_t nonce[_Nonnull CRYPTO_NONCE_SIZE]); /** * @brief Fill an array of bytes with random values. */ -non_null() -void random_bytes(const Random *rng, uint8_t *bytes, size_t length); +void random_bytes(const Random *_Nonnull rng, uint8_t *_Nonnull bytes, size_t length); /** * @brief Check if a Tox public key CRYPTO_PUBLIC_KEY_SIZE is valid or not. @@ -322,8 +299,7 @@ void random_bytes(const Random *rng, uint8_t *bytes, size_t length); * * @return false if it isn't, true if it is. */ -non_null() -bool public_key_valid(const uint8_t public_key[CRYPTO_PUBLIC_KEY_SIZE]); +bool public_key_valid(const uint8_t public_key[_Nonnull CRYPTO_PUBLIC_KEY_SIZE]); typedef struct Extended_Public_Key { uint8_t enc[CRYPTO_PUBLIC_KEY_SIZE]; @@ -348,32 +324,26 @@ typedef struct Extended_Secret_Key { * * @retval true on success. */ -non_null() -bool create_extended_keypair(Extended_Public_Key *pk, Extended_Secret_Key *sk, const Random *rng); +bool create_extended_keypair(Extended_Public_Key *_Nonnull pk, Extended_Secret_Key *_Nonnull sk, const Random *_Nonnull rng); /** Functions for groupchat extended keys */ -non_null() const uint8_t *get_enc_key(const Extended_Public_Key *key); -non_null() const uint8_t *get_sig_pk(const Extended_Public_Key *key); -non_null() void set_sig_pk(Extended_Public_Key *key, const uint8_t *sig_pk); -non_null() const uint8_t *get_sig_sk(const Extended_Secret_Key *key); -non_null() const uint8_t *get_chat_id(const Extended_Public_Key *key); +const uint8_t *_Nonnull get_enc_key(const Extended_Public_Key *_Nonnull key); +const uint8_t *_Nonnull get_sig_pk(const Extended_Public_Key *_Nonnull key); +void set_sig_pk(Extended_Public_Key *_Nonnull key, const uint8_t *_Nonnull sig_pk); +const uint8_t *_Nonnull get_sig_sk(const Extended_Secret_Key *_Nonnull key); +const uint8_t *_Nonnull get_chat_id(const Extended_Public_Key *_Nonnull key); /** * @brief Generate a new random keypair. * * Every call to this function is likely to generate a different keypair. */ -non_null() -int32_t crypto_new_keypair(const Random *rng, - uint8_t public_key[CRYPTO_PUBLIC_KEY_SIZE], - uint8_t secret_key[CRYPTO_SECRET_KEY_SIZE]); +int32_t crypto_new_keypair(const Random *_Nonnull rng, uint8_t public_key[_Nonnull CRYPTO_PUBLIC_KEY_SIZE], uint8_t secret_key[_Nonnull CRYPTO_SECRET_KEY_SIZE]); /** * @brief Derive the public key from a given secret key. */ -non_null() -void crypto_derive_public_key(uint8_t public_key[CRYPTO_PUBLIC_KEY_SIZE], - const uint8_t secret_key[CRYPTO_SECRET_KEY_SIZE]); +void crypto_derive_public_key(uint8_t public_key[_Nonnull CRYPTO_PUBLIC_KEY_SIZE], const uint8_t secret_key[_Nonnull CRYPTO_SECRET_KEY_SIZE]); /** * @brief Encrypt message to send from secret key to public key. @@ -386,12 +356,8 @@ void crypto_derive_public_key(uint8_t public_key[CRYPTO_PUBLIC_KEY_SIZE], * @retval -1 if there was a problem. * @return length of encrypted data if everything was fine. */ -non_null() -int32_t encrypt_data(const Memory *mem, - const uint8_t public_key[CRYPTO_PUBLIC_KEY_SIZE], - const uint8_t secret_key[CRYPTO_SECRET_KEY_SIZE], - const uint8_t nonce[CRYPTO_NONCE_SIZE], - const uint8_t *plain, size_t length, uint8_t *encrypted); +int32_t encrypt_data(const Memory *_Nonnull mem, const uint8_t public_key[_Nonnull CRYPTO_PUBLIC_KEY_SIZE], const uint8_t secret_key[_Nonnull CRYPTO_SECRET_KEY_SIZE], + const uint8_t nonce[_Nonnull CRYPTO_NONCE_SIZE], const uint8_t *_Nonnull plain, size_t length, uint8_t *_Nonnull encrypted); /** * @brief Decrypt message from public key to secret key. @@ -404,12 +370,8 @@ int32_t encrypt_data(const Memory *mem, * @retval -1 if there was a problem (decryption failed). * @return length of plain text data if everything was fine. */ -non_null() -int32_t decrypt_data(const Memory *mem, - const uint8_t public_key[CRYPTO_PUBLIC_KEY_SIZE], - const uint8_t secret_key[CRYPTO_SECRET_KEY_SIZE], - const uint8_t nonce[CRYPTO_NONCE_SIZE], - const uint8_t *encrypted, size_t length, uint8_t *plain); +int32_t decrypt_data(const Memory *_Nonnull mem, const uint8_t public_key[_Nonnull CRYPTO_PUBLIC_KEY_SIZE], const uint8_t secret_key[_Nonnull CRYPTO_SECRET_KEY_SIZE], + const uint8_t nonce[_Nonnull CRYPTO_NONCE_SIZE], const uint8_t *_Nonnull encrypted, size_t length, uint8_t *_Nonnull plain); /** * @brief Fast encrypt/decrypt operations. @@ -418,62 +380,51 @@ int32_t decrypt_data(const Memory *mem, * shared-key generation once so it does not have to be performed on every * encrypt/decrypt. */ -non_null() -int32_t encrypt_precompute(const uint8_t public_key[CRYPTO_PUBLIC_KEY_SIZE], - const uint8_t secret_key[CRYPTO_SECRET_KEY_SIZE], - uint8_t shared_key[CRYPTO_SHARED_KEY_SIZE]); +int32_t encrypt_precompute(const uint8_t public_key[_Nonnull CRYPTO_PUBLIC_KEY_SIZE], const uint8_t secret_key[_Nonnull CRYPTO_SECRET_KEY_SIZE], + uint8_t shared_key[_Nonnull CRYPTO_SHARED_KEY_SIZE]); /** * @brief Encrypt message with precomputed shared key. * * Encrypts plain of length length to encrypted of length + @ref CRYPTO_MAC_SIZE - * using a shared key @ref CRYPTO_SHARED_KEY_SIZE big and a @ref CRYPTO_NONCE_SIZE + * using a shared key @ref CRYPTO_SYMMETRIC_KEY_SIZE big and a @ref CRYPTO_NONCE_SIZE * byte nonce. * * @retval -1 if there was a problem. * @return length of encrypted data if everything was fine. */ -non_null() -int32_t encrypt_data_symmetric(const Memory *mem, - const uint8_t shared_key[CRYPTO_SHARED_KEY_SIZE], - const uint8_t nonce[CRYPTO_NONCE_SIZE], - const uint8_t *plain, size_t length, uint8_t *encrypted); +int32_t encrypt_data_symmetric(const Memory *_Nonnull mem, const uint8_t shared_key[_Nonnull CRYPTO_SHARED_KEY_SIZE], const uint8_t nonce[_Nonnull CRYPTO_NONCE_SIZE], + const uint8_t *_Nonnull plain, size_t length, uint8_t *_Nonnull encrypted); /** * @brief Decrypt message with precomputed shared key. * * Decrypts encrypted of length length to plain of length - * `length - CRYPTO_MAC_SIZE` using a shared key @ref CRYPTO_SHARED_KEY_SIZE + * `length - CRYPTO_MAC_SIZE` using a shared key @ref CRYPTO_SYMMETRIC_KEY_SIZE * big and a @ref CRYPTO_NONCE_SIZE byte nonce. * * @retval -1 if there was a problem (decryption failed). * @return length of plain data if everything was fine. */ -non_null() -int32_t decrypt_data_symmetric(const Memory *mem, - const uint8_t shared_key[CRYPTO_SHARED_KEY_SIZE], - const uint8_t nonce[CRYPTO_NONCE_SIZE], - const uint8_t *encrypted, size_t length, uint8_t *plain); +int32_t decrypt_data_symmetric(const Memory *_Nonnull mem, const uint8_t shared_key[_Nonnull CRYPTO_SHARED_KEY_SIZE], const uint8_t nonce[_Nonnull CRYPTO_NONCE_SIZE], + const uint8_t *_Nonnull encrypted, size_t length, uint8_t *_Nonnull plain); /** * @brief Increment the given nonce by 1 in big endian (rightmost byte incremented first). */ -non_null() -void increment_nonce(uint8_t nonce[CRYPTO_NONCE_SIZE]); +void increment_nonce(uint8_t nonce[_Nonnull CRYPTO_NONCE_SIZE]); /** * @brief Increment the given nonce by a given number. * * The number should be in host byte order. */ -non_null() -void increment_nonce_number(uint8_t nonce[CRYPTO_NONCE_SIZE], uint32_t increment); +void increment_nonce_number(uint8_t nonce[_Nonnull CRYPTO_NONCE_SIZE], uint32_t increment); /** * @brief Fill a key @ref CRYPTO_SYMMETRIC_KEY_SIZE big with random bytes. */ -non_null() -void new_symmetric_key(const Random *rng, uint8_t key[CRYPTO_SYMMETRIC_KEY_SIZE]); +void new_symmetric_key(const Random *_Nonnull rng, uint8_t key[_Nonnull CRYPTO_SYMMETRIC_KEY_SIZE]); /** * @brief Locks `length` bytes of memory pointed to by `data`. @@ -483,8 +434,7 @@ void new_symmetric_key(const Random *rng, uint8_t key[CRYPTO_SYMMETRIC_KEY_SIZE] * * @return true on success. */ -non_null() -bool crypto_memlock(void *data, size_t length); +bool crypto_memlock(void *_Nonnull data, size_t length); /** * @brief Unlocks `length` bytes of memory pointed to by `data`. @@ -497,14 +447,12 @@ bool crypto_memlock(void *data, size_t length); * * @return true on success. */ -non_null() -bool crypto_memunlock(void *data, size_t length); +bool crypto_memunlock(void *_Nonnull data, size_t length); /** * @brief Generate a random secret HMAC key. */ -non_null() -void new_hmac_key(const Random *rng, uint8_t key[CRYPTO_HMAC_KEY_SIZE]); +void new_hmac_key(const Random *_Nonnull rng, uint8_t key[_Nonnull CRYPTO_HMAC_KEY_SIZE]); #ifdef __cplusplus } /* extern "C" */ diff --git a/external/toxcore/c-toxcore/toxcore/crypto_core_pack.c b/external/toxcore/c-toxcore/toxcore/crypto_core_pack.c index 4c08fc7..89a1c4d 100644 --- a/external/toxcore/c-toxcore/toxcore/crypto_core_pack.c +++ b/external/toxcore/c-toxcore/toxcore/crypto_core_pack.c @@ -12,7 +12,7 @@ #include "ccompat.h" #include "crypto_core.h" -bool pack_extended_public_key(const Extended_Public_Key *key, Bin_Pack *bp) +bool pack_extended_public_key(const Extended_Public_Key *_Nonnull key, Bin_Pack *_Nonnull bp) { uint8_t ext_key[EXT_PUBLIC_KEY_SIZE]; static_assert(sizeof(ext_key) == sizeof(key->enc) + sizeof(key->sig), @@ -23,7 +23,7 @@ bool pack_extended_public_key(const Extended_Public_Key *key, Bin_Pack *bp) return bin_pack_bin(bp, ext_key, sizeof(ext_key)); } -bool pack_extended_secret_key(const Extended_Secret_Key *key, Bin_Pack *bp) +bool pack_extended_secret_key(const Extended_Secret_Key *_Nonnull key, Bin_Pack *_Nonnull bp) { uint8_t ext_key[EXT_SECRET_KEY_SIZE]; static_assert(sizeof(ext_key) == sizeof(key->enc) + sizeof(key->sig), @@ -36,7 +36,7 @@ bool pack_extended_secret_key(const Extended_Secret_Key *key, Bin_Pack *bp) return result; } -bool unpack_extended_public_key(Extended_Public_Key *key, Bin_Unpack *bu) +bool unpack_extended_public_key(Extended_Public_Key *_Nonnull key, Bin_Unpack *_Nonnull bu) { uint8_t ext_key[EXT_PUBLIC_KEY_SIZE]; @@ -50,7 +50,7 @@ bool unpack_extended_public_key(Extended_Public_Key *key, Bin_Unpack *bu) return true; } -bool unpack_extended_secret_key(Extended_Secret_Key *key, Bin_Unpack *bu) +bool unpack_extended_secret_key(Extended_Secret_Key *_Nonnull key, Bin_Unpack *_Nonnull bu) { uint8_t ext_key[EXT_SECRET_KEY_SIZE]; diff --git a/external/toxcore/c-toxcore/toxcore/crypto_core_pack.h b/external/toxcore/c-toxcore/toxcore/crypto_core_pack.h index 85b47ff..073feb0 100644 --- a/external/toxcore/c-toxcore/toxcore/crypto_core_pack.h +++ b/external/toxcore/c-toxcore/toxcore/crypto_core_pack.h @@ -19,10 +19,10 @@ extern "C" { #endif -non_null() bool pack_extended_public_key(const Extended_Public_Key *key, Bin_Pack *bp); -non_null() bool pack_extended_secret_key(const Extended_Secret_Key *key, Bin_Pack *bp); -non_null() bool unpack_extended_public_key(Extended_Public_Key *key, Bin_Unpack *bu); -non_null() bool unpack_extended_secret_key(Extended_Secret_Key *key, Bin_Unpack *bu); +bool pack_extended_public_key(const Extended_Public_Key *_Nonnull key, Bin_Pack *_Nonnull bp); +bool pack_extended_secret_key(const Extended_Secret_Key *_Nonnull key, Bin_Pack *_Nonnull bp); +bool unpack_extended_public_key(Extended_Public_Key *_Nonnull key, Bin_Unpack *_Nonnull bu); +bool unpack_extended_secret_key(Extended_Secret_Key *_Nonnull key, Bin_Unpack *_Nonnull bu); #ifdef __cplusplus } /* extern "C" */ diff --git a/external/toxcore/c-toxcore/toxcore/events/conference_connected.c b/external/toxcore/c-toxcore/toxcore/events/conference_connected.c index d19f019..bf1f9e3 100644 --- a/external/toxcore/c-toxcore/toxcore/events/conference_connected.c +++ b/external/toxcore/c-toxcore/toxcore/events/conference_connected.c @@ -25,9 +25,7 @@ struct Tox_Event_Conference_Connected { uint32_t conference_number; }; -non_null() -static void tox_event_conference_connected_set_conference_number(Tox_Event_Conference_Connected *conference_connected, - uint32_t conference_number) +static void tox_event_conference_connected_set_conference_number(Tox_Event_Conference_Connected *_Nonnull conference_connected, uint32_t conference_number) { assert(conference_connected != nullptr); conference_connected->conference_number = conference_number; @@ -38,15 +36,13 @@ uint32_t tox_event_conference_connected_get_conference_number(const Tox_Event_Co return conference_connected->conference_number; } -non_null() -static void tox_event_conference_connected_construct(Tox_Event_Conference_Connected *conference_connected) +static void tox_event_conference_connected_construct(Tox_Event_Conference_Connected *_Nonnull conference_connected) { *conference_connected = (Tox_Event_Conference_Connected) { 0 }; } -non_null() -static void tox_event_conference_connected_destruct(Tox_Event_Conference_Connected *conference_connected, const Memory *mem) +static void tox_event_conference_connected_destruct(Tox_Event_Conference_Connected *_Nonnull conference_connected, const Memory *_Nonnull mem) { return; } @@ -57,9 +53,7 @@ bool tox_event_conference_connected_pack( return bin_pack_u32(bp, event->conference_number); } -non_null() -static bool tox_event_conference_connected_unpack_into( - Tox_Event_Conference_Connected *event, Bin_Unpack *bu) +static bool tox_event_conference_connected_unpack_into(Tox_Event_Conference_Connected *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); return bin_unpack_u32(bu, &event->conference_number); @@ -97,8 +91,7 @@ void tox_event_conference_connected_free(Tox_Event_Conference_Connected *confere mem_delete(mem, conference_connected); } -non_null() -static Tox_Event_Conference_Connected *tox_events_add_conference_connected(Tox_Events *events, const Memory *mem) +static Tox_Event_Conference_Connected *tox_events_add_conference_connected(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Conference_Connected *const conference_connected = tox_event_conference_connected_new(mem); @@ -131,8 +124,7 @@ bool tox_event_conference_connected_unpack( return tox_event_conference_connected_unpack_into(*event, bu); } -non_null() -static Tox_Event_Conference_Connected *tox_event_conference_connected_alloc(void *user_data) +static Tox_Event_Conference_Connected *tox_event_conference_connected_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/conference_invite.c b/external/toxcore/c-toxcore/toxcore/events/conference_invite.c index 04206e7..01523f9 100644 --- a/external/toxcore/c-toxcore/toxcore/events/conference_invite.c +++ b/external/toxcore/c-toxcore/toxcore/events/conference_invite.c @@ -32,9 +32,7 @@ struct Tox_Event_Conference_Invite { uint32_t cookie_length; }; -non_null() -static void tox_event_conference_invite_set_friend_number(Tox_Event_Conference_Invite *conference_invite, - uint32_t friend_number) +static void tox_event_conference_invite_set_friend_number(Tox_Event_Conference_Invite *_Nonnull conference_invite, uint32_t friend_number) { assert(conference_invite != nullptr); conference_invite->friend_number = friend_number; @@ -45,9 +43,7 @@ uint32_t tox_event_conference_invite_get_friend_number(const Tox_Event_Conferenc return conference_invite->friend_number; } -non_null() -static void tox_event_conference_invite_set_type(Tox_Event_Conference_Invite *conference_invite, - Tox_Conference_Type type) +static void tox_event_conference_invite_set_type(Tox_Event_Conference_Invite *_Nonnull conference_invite, Tox_Conference_Type type) { assert(conference_invite != nullptr); conference_invite->type = type; @@ -58,12 +54,10 @@ Tox_Conference_Type tox_event_conference_invite_get_type(const Tox_Event_Confere return conference_invite->type; } -non_null(1) nullable(2) -static bool tox_event_conference_invite_set_cookie(Tox_Event_Conference_Invite *conference_invite, - const uint8_t *cookie, uint32_t cookie_length) +static bool tox_event_conference_invite_set_cookie(Tox_Event_Conference_Invite *_Nonnull conference_invite, + const uint8_t *_Nullable cookie, uint32_t cookie_length) { assert(conference_invite != nullptr); - if (conference_invite->cookie != nullptr) { free(conference_invite->cookie); conference_invite->cookie = nullptr; @@ -97,15 +91,13 @@ const uint8_t *tox_event_conference_invite_get_cookie(const Tox_Event_Conference return conference_invite->cookie; } -non_null() -static void tox_event_conference_invite_construct(Tox_Event_Conference_Invite *conference_invite) +static void tox_event_conference_invite_construct(Tox_Event_Conference_Invite *_Nonnull conference_invite) { *conference_invite = (Tox_Event_Conference_Invite) { 0 }; } -non_null() -static void tox_event_conference_invite_destruct(Tox_Event_Conference_Invite *conference_invite, const Memory *mem) +static void tox_event_conference_invite_destruct(Tox_Event_Conference_Invite *_Nonnull conference_invite, const Memory *_Nonnull mem) { free(conference_invite->cookie); } @@ -119,9 +111,7 @@ bool tox_event_conference_invite_pack( && bin_pack_bin(bp, event->cookie, event->cookie_length); } -non_null() -static bool tox_event_conference_invite_unpack_into( - Tox_Event_Conference_Invite *event, Bin_Unpack *bu) +static bool tox_event_conference_invite_unpack_into(Tox_Event_Conference_Invite *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 3, nullptr)) { @@ -165,8 +155,7 @@ void tox_event_conference_invite_free(Tox_Event_Conference_Invite *conference_in mem_delete(mem, conference_invite); } -non_null() -static Tox_Event_Conference_Invite *tox_events_add_conference_invite(Tox_Events *events, const Memory *mem) +static Tox_Event_Conference_Invite *tox_events_add_conference_invite(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Conference_Invite *const conference_invite = tox_event_conference_invite_new(mem); @@ -199,8 +188,7 @@ bool tox_event_conference_invite_unpack( return tox_event_conference_invite_unpack_into(*event, bu); } -non_null() -static Tox_Event_Conference_Invite *tox_event_conference_invite_alloc(void *user_data) +static Tox_Event_Conference_Invite *tox_event_conference_invite_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/conference_message.c b/external/toxcore/c-toxcore/toxcore/events/conference_message.c index 7cef201..3ee530e 100644 --- a/external/toxcore/c-toxcore/toxcore/events/conference_message.c +++ b/external/toxcore/c-toxcore/toxcore/events/conference_message.c @@ -33,9 +33,7 @@ struct Tox_Event_Conference_Message { uint32_t message_length; }; -non_null() -static void tox_event_conference_message_set_conference_number(Tox_Event_Conference_Message *conference_message, - uint32_t conference_number) +static void tox_event_conference_message_set_conference_number(Tox_Event_Conference_Message *_Nonnull conference_message, uint32_t conference_number) { assert(conference_message != nullptr); conference_message->conference_number = conference_number; @@ -46,9 +44,7 @@ uint32_t tox_event_conference_message_get_conference_number(const Tox_Event_Conf return conference_message->conference_number; } -non_null() -static void tox_event_conference_message_set_peer_number(Tox_Event_Conference_Message *conference_message, - uint32_t peer_number) +static void tox_event_conference_message_set_peer_number(Tox_Event_Conference_Message *_Nonnull conference_message, uint32_t peer_number) { assert(conference_message != nullptr); conference_message->peer_number = peer_number; @@ -59,9 +55,7 @@ uint32_t tox_event_conference_message_get_peer_number(const Tox_Event_Conference return conference_message->peer_number; } -non_null() -static void tox_event_conference_message_set_type(Tox_Event_Conference_Message *conference_message, - Tox_Message_Type type) +static void tox_event_conference_message_set_type(Tox_Event_Conference_Message *_Nonnull conference_message, Tox_Message_Type type) { assert(conference_message != nullptr); conference_message->type = type; @@ -72,12 +66,10 @@ Tox_Message_Type tox_event_conference_message_get_type(const Tox_Event_Conferenc return conference_message->type; } -non_null(1) nullable(2) -static bool tox_event_conference_message_set_message(Tox_Event_Conference_Message *conference_message, - const uint8_t *message, uint32_t message_length) +static bool tox_event_conference_message_set_message(Tox_Event_Conference_Message *_Nonnull conference_message, + const uint8_t *_Nullable message, uint32_t message_length) { assert(conference_message != nullptr); - if (conference_message->message != nullptr) { free(conference_message->message); conference_message->message = nullptr; @@ -111,15 +103,13 @@ const uint8_t *tox_event_conference_message_get_message(const Tox_Event_Conferen return conference_message->message; } -non_null() -static void tox_event_conference_message_construct(Tox_Event_Conference_Message *conference_message) +static void tox_event_conference_message_construct(Tox_Event_Conference_Message *_Nonnull conference_message) { *conference_message = (Tox_Event_Conference_Message) { 0 }; } -non_null() -static void tox_event_conference_message_destruct(Tox_Event_Conference_Message *conference_message, const Memory *mem) +static void tox_event_conference_message_destruct(Tox_Event_Conference_Message *_Nonnull conference_message, const Memory *_Nonnull mem) { free(conference_message->message); } @@ -134,9 +124,7 @@ bool tox_event_conference_message_pack( && bin_pack_bin(bp, event->message, event->message_length); } -non_null() -static bool tox_event_conference_message_unpack_into( - Tox_Event_Conference_Message *event, Bin_Unpack *bu) +static bool tox_event_conference_message_unpack_into(Tox_Event_Conference_Message *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 4, nullptr)) { @@ -181,8 +169,7 @@ void tox_event_conference_message_free(Tox_Event_Conference_Message *conference_ mem_delete(mem, conference_message); } -non_null() -static Tox_Event_Conference_Message *tox_events_add_conference_message(Tox_Events *events, const Memory *mem) +static Tox_Event_Conference_Message *tox_events_add_conference_message(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Conference_Message *const conference_message = tox_event_conference_message_new(mem); @@ -215,8 +202,7 @@ bool tox_event_conference_message_unpack( return tox_event_conference_message_unpack_into(*event, bu); } -non_null() -static Tox_Event_Conference_Message *tox_event_conference_message_alloc(void *user_data) +static Tox_Event_Conference_Message *tox_event_conference_message_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/conference_peer_list_changed.c b/external/toxcore/c-toxcore/toxcore/events/conference_peer_list_changed.c index 6874420..d05dda8 100644 --- a/external/toxcore/c-toxcore/toxcore/events/conference_peer_list_changed.c +++ b/external/toxcore/c-toxcore/toxcore/events/conference_peer_list_changed.c @@ -25,9 +25,7 @@ struct Tox_Event_Conference_Peer_List_Changed { uint32_t conference_number; }; -non_null() -static void tox_event_conference_peer_list_changed_set_conference_number(Tox_Event_Conference_Peer_List_Changed *conference_peer_list_changed, - uint32_t conference_number) +static void tox_event_conference_peer_list_changed_set_conference_number(Tox_Event_Conference_Peer_List_Changed *_Nonnull conference_peer_list_changed, uint32_t conference_number) { assert(conference_peer_list_changed != nullptr); conference_peer_list_changed->conference_number = conference_number; @@ -38,15 +36,13 @@ uint32_t tox_event_conference_peer_list_changed_get_conference_number(const Tox_ return conference_peer_list_changed->conference_number; } -non_null() -static void tox_event_conference_peer_list_changed_construct(Tox_Event_Conference_Peer_List_Changed *conference_peer_list_changed) +static void tox_event_conference_peer_list_changed_construct(Tox_Event_Conference_Peer_List_Changed *_Nonnull conference_peer_list_changed) { *conference_peer_list_changed = (Tox_Event_Conference_Peer_List_Changed) { 0 }; } -non_null() -static void tox_event_conference_peer_list_changed_destruct(Tox_Event_Conference_Peer_List_Changed *conference_peer_list_changed, const Memory *mem) +static void tox_event_conference_peer_list_changed_destruct(Tox_Event_Conference_Peer_List_Changed *_Nonnull conference_peer_list_changed, const Memory *_Nonnull mem) { return; } @@ -57,9 +53,7 @@ bool tox_event_conference_peer_list_changed_pack( return bin_pack_u32(bp, event->conference_number); } -non_null() -static bool tox_event_conference_peer_list_changed_unpack_into( - Tox_Event_Conference_Peer_List_Changed *event, Bin_Unpack *bu) +static bool tox_event_conference_peer_list_changed_unpack_into(Tox_Event_Conference_Peer_List_Changed *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); return bin_unpack_u32(bu, &event->conference_number); @@ -97,8 +91,7 @@ void tox_event_conference_peer_list_changed_free(Tox_Event_Conference_Peer_List_ mem_delete(mem, conference_peer_list_changed); } -non_null() -static Tox_Event_Conference_Peer_List_Changed *tox_events_add_conference_peer_list_changed(Tox_Events *events, const Memory *mem) +static Tox_Event_Conference_Peer_List_Changed *tox_events_add_conference_peer_list_changed(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Conference_Peer_List_Changed *const conference_peer_list_changed = tox_event_conference_peer_list_changed_new(mem); @@ -131,8 +124,7 @@ bool tox_event_conference_peer_list_changed_unpack( return tox_event_conference_peer_list_changed_unpack_into(*event, bu); } -non_null() -static Tox_Event_Conference_Peer_List_Changed *tox_event_conference_peer_list_changed_alloc(void *user_data) +static Tox_Event_Conference_Peer_List_Changed *tox_event_conference_peer_list_changed_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/conference_peer_name.c b/external/toxcore/c-toxcore/toxcore/events/conference_peer_name.c index 36de6ba..285d7a4 100644 --- a/external/toxcore/c-toxcore/toxcore/events/conference_peer_name.c +++ b/external/toxcore/c-toxcore/toxcore/events/conference_peer_name.c @@ -30,9 +30,7 @@ struct Tox_Event_Conference_Peer_Name { uint32_t name_length; }; -non_null() -static void tox_event_conference_peer_name_set_conference_number(Tox_Event_Conference_Peer_Name *conference_peer_name, - uint32_t conference_number) +static void tox_event_conference_peer_name_set_conference_number(Tox_Event_Conference_Peer_Name *_Nonnull conference_peer_name, uint32_t conference_number) { assert(conference_peer_name != nullptr); conference_peer_name->conference_number = conference_number; @@ -43,9 +41,7 @@ uint32_t tox_event_conference_peer_name_get_conference_number(const Tox_Event_Co return conference_peer_name->conference_number; } -non_null() -static void tox_event_conference_peer_name_set_peer_number(Tox_Event_Conference_Peer_Name *conference_peer_name, - uint32_t peer_number) +static void tox_event_conference_peer_name_set_peer_number(Tox_Event_Conference_Peer_Name *_Nonnull conference_peer_name, uint32_t peer_number) { assert(conference_peer_name != nullptr); conference_peer_name->peer_number = peer_number; @@ -56,12 +52,10 @@ uint32_t tox_event_conference_peer_name_get_peer_number(const Tox_Event_Conferen return conference_peer_name->peer_number; } -non_null(1) nullable(2) -static bool tox_event_conference_peer_name_set_name(Tox_Event_Conference_Peer_Name *conference_peer_name, - const uint8_t *name, uint32_t name_length) +static bool tox_event_conference_peer_name_set_name(Tox_Event_Conference_Peer_Name *_Nonnull conference_peer_name, + const uint8_t *_Nullable name, uint32_t name_length) { assert(conference_peer_name != nullptr); - if (conference_peer_name->name != nullptr) { free(conference_peer_name->name); conference_peer_name->name = nullptr; @@ -95,15 +89,13 @@ const uint8_t *tox_event_conference_peer_name_get_name(const Tox_Event_Conferenc return conference_peer_name->name; } -non_null() -static void tox_event_conference_peer_name_construct(Tox_Event_Conference_Peer_Name *conference_peer_name) +static void tox_event_conference_peer_name_construct(Tox_Event_Conference_Peer_Name *_Nonnull conference_peer_name) { *conference_peer_name = (Tox_Event_Conference_Peer_Name) { 0 }; } -non_null() -static void tox_event_conference_peer_name_destruct(Tox_Event_Conference_Peer_Name *conference_peer_name, const Memory *mem) +static void tox_event_conference_peer_name_destruct(Tox_Event_Conference_Peer_Name *_Nonnull conference_peer_name, const Memory *_Nonnull mem) { free(conference_peer_name->name); } @@ -117,9 +109,7 @@ bool tox_event_conference_peer_name_pack( && bin_pack_bin(bp, event->name, event->name_length); } -non_null() -static bool tox_event_conference_peer_name_unpack_into( - Tox_Event_Conference_Peer_Name *event, Bin_Unpack *bu) +static bool tox_event_conference_peer_name_unpack_into(Tox_Event_Conference_Peer_Name *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 3, nullptr)) { @@ -163,8 +153,7 @@ void tox_event_conference_peer_name_free(Tox_Event_Conference_Peer_Name *confere mem_delete(mem, conference_peer_name); } -non_null() -static Tox_Event_Conference_Peer_Name *tox_events_add_conference_peer_name(Tox_Events *events, const Memory *mem) +static Tox_Event_Conference_Peer_Name *tox_events_add_conference_peer_name(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Conference_Peer_Name *const conference_peer_name = tox_event_conference_peer_name_new(mem); @@ -197,8 +186,7 @@ bool tox_event_conference_peer_name_unpack( return tox_event_conference_peer_name_unpack_into(*event, bu); } -non_null() -static Tox_Event_Conference_Peer_Name *tox_event_conference_peer_name_alloc(void *user_data) +static Tox_Event_Conference_Peer_Name *tox_event_conference_peer_name_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/conference_title.c b/external/toxcore/c-toxcore/toxcore/events/conference_title.c index cd92ba1..7baeaee 100644 --- a/external/toxcore/c-toxcore/toxcore/events/conference_title.c +++ b/external/toxcore/c-toxcore/toxcore/events/conference_title.c @@ -30,9 +30,7 @@ struct Tox_Event_Conference_Title { uint32_t title_length; }; -non_null() -static void tox_event_conference_title_set_conference_number(Tox_Event_Conference_Title *conference_title, - uint32_t conference_number) +static void tox_event_conference_title_set_conference_number(Tox_Event_Conference_Title *_Nonnull conference_title, uint32_t conference_number) { assert(conference_title != nullptr); conference_title->conference_number = conference_number; @@ -43,9 +41,7 @@ uint32_t tox_event_conference_title_get_conference_number(const Tox_Event_Confer return conference_title->conference_number; } -non_null() -static void tox_event_conference_title_set_peer_number(Tox_Event_Conference_Title *conference_title, - uint32_t peer_number) +static void tox_event_conference_title_set_peer_number(Tox_Event_Conference_Title *_Nonnull conference_title, uint32_t peer_number) { assert(conference_title != nullptr); conference_title->peer_number = peer_number; @@ -56,12 +52,10 @@ uint32_t tox_event_conference_title_get_peer_number(const Tox_Event_Conference_T return conference_title->peer_number; } -non_null(1) nullable(2) -static bool tox_event_conference_title_set_title(Tox_Event_Conference_Title *conference_title, - const uint8_t *title, uint32_t title_length) +static bool tox_event_conference_title_set_title(Tox_Event_Conference_Title *_Nonnull conference_title, + const uint8_t *_Nullable title, uint32_t title_length) { assert(conference_title != nullptr); - if (conference_title->title != nullptr) { free(conference_title->title); conference_title->title = nullptr; @@ -95,15 +89,13 @@ const uint8_t *tox_event_conference_title_get_title(const Tox_Event_Conference_T return conference_title->title; } -non_null() -static void tox_event_conference_title_construct(Tox_Event_Conference_Title *conference_title) +static void tox_event_conference_title_construct(Tox_Event_Conference_Title *_Nonnull conference_title) { *conference_title = (Tox_Event_Conference_Title) { 0 }; } -non_null() -static void tox_event_conference_title_destruct(Tox_Event_Conference_Title *conference_title, const Memory *mem) +static void tox_event_conference_title_destruct(Tox_Event_Conference_Title *_Nonnull conference_title, const Memory *_Nonnull mem) { free(conference_title->title); } @@ -117,9 +109,7 @@ bool tox_event_conference_title_pack( && bin_pack_bin(bp, event->title, event->title_length); } -non_null() -static bool tox_event_conference_title_unpack_into( - Tox_Event_Conference_Title *event, Bin_Unpack *bu) +static bool tox_event_conference_title_unpack_into(Tox_Event_Conference_Title *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 3, nullptr)) { @@ -163,8 +153,7 @@ void tox_event_conference_title_free(Tox_Event_Conference_Title *conference_titl mem_delete(mem, conference_title); } -non_null() -static Tox_Event_Conference_Title *tox_events_add_conference_title(Tox_Events *events, const Memory *mem) +static Tox_Event_Conference_Title *tox_events_add_conference_title(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Conference_Title *const conference_title = tox_event_conference_title_new(mem); @@ -197,8 +186,7 @@ bool tox_event_conference_title_unpack( return tox_event_conference_title_unpack_into(*event, bu); } -non_null() -static Tox_Event_Conference_Title *tox_event_conference_title_alloc(void *user_data) +static Tox_Event_Conference_Title *tox_event_conference_title_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/dht_nodes_response.c b/external/toxcore/c-toxcore/toxcore/events/dht_nodes_response.c index 7a3f5f2..a4b9dc1 100644 --- a/external/toxcore/c-toxcore/toxcore/events/dht_nodes_response.c +++ b/external/toxcore/c-toxcore/toxcore/events/dht_nodes_response.c @@ -30,20 +30,17 @@ struct Tox_Event_Dht_Nodes_Response { uint16_t port; }; -non_null() -static bool tox_event_dht_nodes_response_set_public_key(Tox_Event_Dht_Nodes_Response *dht_nodes_response, const uint8_t public_key[TOX_PUBLIC_KEY_SIZE]) +static bool tox_event_dht_nodes_response_set_public_key(Tox_Event_Dht_Nodes_Response *_Nonnull dht_nodes_response, const uint8_t public_key[TOX_PUBLIC_KEY_SIZE]) { memcpy(dht_nodes_response->public_key, public_key, TOX_PUBLIC_KEY_SIZE); return true; } -const uint8_t *tox_event_dht_nodes_response_get_public_key(const Tox_Event_Dht_Nodes_Response *dht_nodes_response) +const uint8_t *_Nonnull tox_event_dht_nodes_response_get_public_key(const Tox_Event_Dht_Nodes_Response *dht_nodes_response) { return dht_nodes_response->public_key; } -non_null() -static bool tox_event_dht_nodes_response_set_ip(Tox_Event_Dht_Nodes_Response *dht_nodes_response, - const char *ip, uint32_t ip_length, const Memory *mem) +static bool tox_event_dht_nodes_response_set_ip(Tox_Event_Dht_Nodes_Response *_Nonnull dht_nodes_response, const char *_Nonnull ip, uint32_t ip_length, const Memory *_Nonnull mem) { if (dht_nodes_response->ip != nullptr) { mem_delete(mem, dht_nodes_response->ip); @@ -71,8 +68,7 @@ const uint8_t *tox_event_dht_nodes_response_get_ip(const Tox_Event_Dht_Nodes_Res return dht_nodes_response->ip; } -non_null() -static bool tox_event_dht_nodes_response_set_port(Tox_Event_Dht_Nodes_Response *dht_nodes_response, uint16_t port) +static bool tox_event_dht_nodes_response_set_port(Tox_Event_Dht_Nodes_Response *_Nonnull dht_nodes_response, uint16_t port) { dht_nodes_response->port = port; return true; @@ -82,8 +78,7 @@ uint16_t tox_event_dht_nodes_response_get_port(const Tox_Event_Dht_Nodes_Respons return dht_nodes_response->port; } -non_null() -static void tox_event_dht_nodes_response_construct(Tox_Event_Dht_Nodes_Response *dht_nodes_response) +static void tox_event_dht_nodes_response_construct(Tox_Event_Dht_Nodes_Response *_Nonnull dht_nodes_response) { *dht_nodes_response = (Tox_Event_Dht_Nodes_Response) { { @@ -91,8 +86,7 @@ static void tox_event_dht_nodes_response_construct(Tox_Event_Dht_Nodes_Response } }; } -non_null() -static void tox_event_dht_nodes_response_destruct(Tox_Event_Dht_Nodes_Response *dht_nodes_response, const Memory *mem) +static void tox_event_dht_nodes_response_destruct(Tox_Event_Dht_Nodes_Response *_Nonnull dht_nodes_response, const Memory *_Nonnull mem) { mem_delete(mem, dht_nodes_response->ip); } @@ -106,9 +100,7 @@ bool tox_event_dht_nodes_response_pack( && bin_pack_u16(bp, event->port); } -non_null() -static bool tox_event_dht_nodes_response_unpack_into( - Tox_Event_Dht_Nodes_Response *event, Bin_Unpack *bu) +static bool tox_event_dht_nodes_response_unpack_into(Tox_Event_Dht_Nodes_Response *_Nonnull event, Bin_Unpack *_Nonnull bu) { if (!bin_unpack_array_fixed(bu, 3, nullptr)) { return false; @@ -146,8 +138,7 @@ void tox_event_dht_nodes_response_free(Tox_Event_Dht_Nodes_Response *dht_nodes_r mem_delete(mem, dht_nodes_response); } -non_null() -static Tox_Event_Dht_Nodes_Response *tox_events_add_dht_nodes_response(Tox_Events *events, const Memory *mem) +static Tox_Event_Dht_Nodes_Response *tox_events_add_dht_nodes_response(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Dht_Nodes_Response *const dht_nodes_response = tox_event_dht_nodes_response_new(mem); @@ -178,8 +169,7 @@ bool tox_event_dht_nodes_response_unpack( return tox_event_dht_nodes_response_unpack_into(*event, bu); } -non_null() -static Tox_Event_Dht_Nodes_Response *tox_event_dht_nodes_response_alloc(void *user_data) +static Tox_Event_Dht_Nodes_Response *tox_event_dht_nodes_response_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/events_alloc.h b/external/toxcore/c-toxcore/toxcore/events/events_alloc.h index d0343d9..ce05183 100644 --- a/external/toxcore/c-toxcore/toxcore/events/events_alloc.h +++ b/external/toxcore/c-toxcore/toxcore/events/events_alloc.h @@ -16,17 +16,17 @@ extern "C" { #endif struct Tox_Events { - Tox_Event *events; + Tox_Event *_Nonnull events; uint32_t events_size; uint32_t events_capacity; - const Memory *mem; + const Memory *_Nonnull mem; }; typedef struct Tox_Events_State { Tox_Err_Events_Iterate error; - const Memory *mem; - Tox_Events *events; + const Memory *_Nonnull mem; + Tox_Events *_Nonnull events; } Tox_Events_State; tox_conference_connected_cb tox_events_handle_conference_connected; @@ -70,11 +70,9 @@ tox_group_self_join_cb tox_events_handle_group_self_join; tox_group_join_fail_cb tox_events_handle_group_join_fail; tox_group_moderation_cb tox_events_handle_group_moderation; -non_null() -Tox_Events_State *tox_events_alloc(void *user_data); +Tox_Events_State *_Nonnull tox_events_alloc(void *_Nonnull user_data); -non_null() -bool tox_events_add(Tox_Events *events, const Tox_Event *event); +bool tox_events_add(Tox_Events *_Nonnull events, const Tox_Event *_Nonnull event); #ifdef __cplusplus } /* extern "C" */ diff --git a/external/toxcore/c-toxcore/toxcore/events/file_chunk_request.c b/external/toxcore/c-toxcore/toxcore/events/file_chunk_request.c index d59b7a5..5562e55 100644 --- a/external/toxcore/c-toxcore/toxcore/events/file_chunk_request.c +++ b/external/toxcore/c-toxcore/toxcore/events/file_chunk_request.c @@ -28,9 +28,7 @@ struct Tox_Event_File_Chunk_Request { uint16_t length; }; -non_null() -static void tox_event_file_chunk_request_set_friend_number(Tox_Event_File_Chunk_Request *file_chunk_request, - uint32_t friend_number) +static void tox_event_file_chunk_request_set_friend_number(Tox_Event_File_Chunk_Request *_Nonnull file_chunk_request, uint32_t friend_number) { assert(file_chunk_request != nullptr); file_chunk_request->friend_number = friend_number; @@ -41,9 +39,7 @@ uint32_t tox_event_file_chunk_request_get_friend_number(const Tox_Event_File_Chu return file_chunk_request->friend_number; } -non_null() -static void tox_event_file_chunk_request_set_file_number(Tox_Event_File_Chunk_Request *file_chunk_request, - uint32_t file_number) +static void tox_event_file_chunk_request_set_file_number(Tox_Event_File_Chunk_Request *_Nonnull file_chunk_request, uint32_t file_number) { assert(file_chunk_request != nullptr); file_chunk_request->file_number = file_number; @@ -54,9 +50,7 @@ uint32_t tox_event_file_chunk_request_get_file_number(const Tox_Event_File_Chunk return file_chunk_request->file_number; } -non_null() -static void tox_event_file_chunk_request_set_position(Tox_Event_File_Chunk_Request *file_chunk_request, - uint64_t position) +static void tox_event_file_chunk_request_set_position(Tox_Event_File_Chunk_Request *_Nonnull file_chunk_request, uint64_t position) { assert(file_chunk_request != nullptr); file_chunk_request->position = position; @@ -67,9 +61,7 @@ uint64_t tox_event_file_chunk_request_get_position(const Tox_Event_File_Chunk_Re return file_chunk_request->position; } -non_null() -static void tox_event_file_chunk_request_set_length(Tox_Event_File_Chunk_Request *file_chunk_request, - uint16_t length) +static void tox_event_file_chunk_request_set_length(Tox_Event_File_Chunk_Request *_Nonnull file_chunk_request, uint16_t length) { assert(file_chunk_request != nullptr); file_chunk_request->length = length; @@ -80,15 +72,13 @@ uint16_t tox_event_file_chunk_request_get_length(const Tox_Event_File_Chunk_Requ return file_chunk_request->length; } -non_null() -static void tox_event_file_chunk_request_construct(Tox_Event_File_Chunk_Request *file_chunk_request) +static void tox_event_file_chunk_request_construct(Tox_Event_File_Chunk_Request *_Nonnull file_chunk_request) { *file_chunk_request = (Tox_Event_File_Chunk_Request) { 0 }; } -non_null() -static void tox_event_file_chunk_request_destruct(Tox_Event_File_Chunk_Request *file_chunk_request, const Memory *mem) +static void tox_event_file_chunk_request_destruct(Tox_Event_File_Chunk_Request *_Nonnull file_chunk_request, const Memory *_Nonnull mem) { return; } @@ -103,9 +93,7 @@ bool tox_event_file_chunk_request_pack( && bin_pack_u16(bp, event->length); } -non_null() -static bool tox_event_file_chunk_request_unpack_into( - Tox_Event_File_Chunk_Request *event, Bin_Unpack *bu) +static bool tox_event_file_chunk_request_unpack_into(Tox_Event_File_Chunk_Request *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 4, nullptr)) { @@ -150,8 +138,7 @@ void tox_event_file_chunk_request_free(Tox_Event_File_Chunk_Request *file_chunk_ mem_delete(mem, file_chunk_request); } -non_null() -static Tox_Event_File_Chunk_Request *tox_events_add_file_chunk_request(Tox_Events *events, const Memory *mem) +static Tox_Event_File_Chunk_Request *tox_events_add_file_chunk_request(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_File_Chunk_Request *const file_chunk_request = tox_event_file_chunk_request_new(mem); @@ -184,8 +171,7 @@ bool tox_event_file_chunk_request_unpack( return tox_event_file_chunk_request_unpack_into(*event, bu); } -non_null() -static Tox_Event_File_Chunk_Request *tox_event_file_chunk_request_alloc(void *user_data) +static Tox_Event_File_Chunk_Request *tox_event_file_chunk_request_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/file_recv.c b/external/toxcore/c-toxcore/toxcore/events/file_recv.c index 6ba2fde..00b015d 100644 --- a/external/toxcore/c-toxcore/toxcore/events/file_recv.c +++ b/external/toxcore/c-toxcore/toxcore/events/file_recv.c @@ -32,9 +32,7 @@ struct Tox_Event_File_Recv { uint32_t filename_length; }; -non_null() -static void tox_event_file_recv_set_friend_number(Tox_Event_File_Recv *file_recv, - uint32_t friend_number) +static void tox_event_file_recv_set_friend_number(Tox_Event_File_Recv *_Nonnull file_recv, uint32_t friend_number) { assert(file_recv != nullptr); file_recv->friend_number = friend_number; @@ -45,9 +43,7 @@ uint32_t tox_event_file_recv_get_friend_number(const Tox_Event_File_Recv *file_r return file_recv->friend_number; } -non_null() -static void tox_event_file_recv_set_file_number(Tox_Event_File_Recv *file_recv, - uint32_t file_number) +static void tox_event_file_recv_set_file_number(Tox_Event_File_Recv *_Nonnull file_recv, uint32_t file_number) { assert(file_recv != nullptr); file_recv->file_number = file_number; @@ -58,9 +54,7 @@ uint32_t tox_event_file_recv_get_file_number(const Tox_Event_File_Recv *file_rec return file_recv->file_number; } -non_null() -static void tox_event_file_recv_set_kind(Tox_Event_File_Recv *file_recv, - uint32_t kind) +static void tox_event_file_recv_set_kind(Tox_Event_File_Recv *_Nonnull file_recv, uint32_t kind) { assert(file_recv != nullptr); file_recv->kind = kind; @@ -71,9 +65,7 @@ uint32_t tox_event_file_recv_get_kind(const Tox_Event_File_Recv *file_recv) return file_recv->kind; } -non_null() -static void tox_event_file_recv_set_file_size(Tox_Event_File_Recv *file_recv, - uint64_t file_size) +static void tox_event_file_recv_set_file_size(Tox_Event_File_Recv *_Nonnull file_recv, uint64_t file_size) { assert(file_recv != nullptr); file_recv->file_size = file_size; @@ -84,12 +76,10 @@ uint64_t tox_event_file_recv_get_file_size(const Tox_Event_File_Recv *file_recv) return file_recv->file_size; } -non_null(1) nullable(2) -static bool tox_event_file_recv_set_filename(Tox_Event_File_Recv *file_recv, - const uint8_t *filename, uint32_t filename_length) +static bool tox_event_file_recv_set_filename(Tox_Event_File_Recv *_Nonnull file_recv, + const uint8_t *_Nullable filename, uint32_t filename_length) { assert(file_recv != nullptr); - if (file_recv->filename != nullptr) { free(file_recv->filename); file_recv->filename = nullptr; @@ -123,15 +113,13 @@ const uint8_t *tox_event_file_recv_get_filename(const Tox_Event_File_Recv *file_ return file_recv->filename; } -non_null() -static void tox_event_file_recv_construct(Tox_Event_File_Recv *file_recv) +static void tox_event_file_recv_construct(Tox_Event_File_Recv *_Nonnull file_recv) { *file_recv = (Tox_Event_File_Recv) { 0 }; } -non_null() -static void tox_event_file_recv_destruct(Tox_Event_File_Recv *file_recv, const Memory *mem) +static void tox_event_file_recv_destruct(Tox_Event_File_Recv *_Nonnull file_recv, const Memory *_Nonnull mem) { free(file_recv->filename); } @@ -147,9 +135,7 @@ bool tox_event_file_recv_pack( && bin_pack_bin(bp, event->filename, event->filename_length); } -non_null() -static bool tox_event_file_recv_unpack_into( - Tox_Event_File_Recv *event, Bin_Unpack *bu) +static bool tox_event_file_recv_unpack_into(Tox_Event_File_Recv *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 5, nullptr)) { @@ -195,8 +181,7 @@ void tox_event_file_recv_free(Tox_Event_File_Recv *file_recv, const Memory *mem) mem_delete(mem, file_recv); } -non_null() -static Tox_Event_File_Recv *tox_events_add_file_recv(Tox_Events *events, const Memory *mem) +static Tox_Event_File_Recv *tox_events_add_file_recv(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_File_Recv *const file_recv = tox_event_file_recv_new(mem); @@ -229,8 +214,7 @@ bool tox_event_file_recv_unpack( return tox_event_file_recv_unpack_into(*event, bu); } -non_null() -static Tox_Event_File_Recv *tox_event_file_recv_alloc(void *user_data) +static Tox_Event_File_Recv *tox_event_file_recv_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/file_recv_chunk.c b/external/toxcore/c-toxcore/toxcore/events/file_recv_chunk.c index cb4487e..09a1eda 100644 --- a/external/toxcore/c-toxcore/toxcore/events/file_recv_chunk.c +++ b/external/toxcore/c-toxcore/toxcore/events/file_recv_chunk.c @@ -31,9 +31,7 @@ struct Tox_Event_File_Recv_Chunk { uint32_t data_length; }; -non_null() -static void tox_event_file_recv_chunk_set_friend_number(Tox_Event_File_Recv_Chunk *file_recv_chunk, - uint32_t friend_number) +static void tox_event_file_recv_chunk_set_friend_number(Tox_Event_File_Recv_Chunk *_Nonnull file_recv_chunk, uint32_t friend_number) { assert(file_recv_chunk != nullptr); file_recv_chunk->friend_number = friend_number; @@ -44,9 +42,7 @@ uint32_t tox_event_file_recv_chunk_get_friend_number(const Tox_Event_File_Recv_C return file_recv_chunk->friend_number; } -non_null() -static void tox_event_file_recv_chunk_set_file_number(Tox_Event_File_Recv_Chunk *file_recv_chunk, - uint32_t file_number) +static void tox_event_file_recv_chunk_set_file_number(Tox_Event_File_Recv_Chunk *_Nonnull file_recv_chunk, uint32_t file_number) { assert(file_recv_chunk != nullptr); file_recv_chunk->file_number = file_number; @@ -57,9 +53,7 @@ uint32_t tox_event_file_recv_chunk_get_file_number(const Tox_Event_File_Recv_Chu return file_recv_chunk->file_number; } -non_null() -static void tox_event_file_recv_chunk_set_position(Tox_Event_File_Recv_Chunk *file_recv_chunk, - uint64_t position) +static void tox_event_file_recv_chunk_set_position(Tox_Event_File_Recv_Chunk *_Nonnull file_recv_chunk, uint64_t position) { assert(file_recv_chunk != nullptr); file_recv_chunk->position = position; @@ -70,12 +64,10 @@ uint64_t tox_event_file_recv_chunk_get_position(const Tox_Event_File_Recv_Chunk return file_recv_chunk->position; } -non_null(1) nullable(2) -static bool tox_event_file_recv_chunk_set_data(Tox_Event_File_Recv_Chunk *file_recv_chunk, - const uint8_t *data, uint32_t data_length) +static bool tox_event_file_recv_chunk_set_data(Tox_Event_File_Recv_Chunk *_Nonnull file_recv_chunk, + const uint8_t *_Nullable data, uint32_t data_length) { assert(file_recv_chunk != nullptr); - if (file_recv_chunk->data != nullptr) { free(file_recv_chunk->data); file_recv_chunk->data = nullptr; @@ -109,15 +101,13 @@ const uint8_t *tox_event_file_recv_chunk_get_data(const Tox_Event_File_Recv_Chun return file_recv_chunk->data; } -non_null() -static void tox_event_file_recv_chunk_construct(Tox_Event_File_Recv_Chunk *file_recv_chunk) +static void tox_event_file_recv_chunk_construct(Tox_Event_File_Recv_Chunk *_Nonnull file_recv_chunk) { *file_recv_chunk = (Tox_Event_File_Recv_Chunk) { 0 }; } -non_null() -static void tox_event_file_recv_chunk_destruct(Tox_Event_File_Recv_Chunk *file_recv_chunk, const Memory *mem) +static void tox_event_file_recv_chunk_destruct(Tox_Event_File_Recv_Chunk *_Nonnull file_recv_chunk, const Memory *_Nonnull mem) { free(file_recv_chunk->data); } @@ -132,9 +122,7 @@ bool tox_event_file_recv_chunk_pack( && bin_pack_bin(bp, event->data, event->data_length); } -non_null() -static bool tox_event_file_recv_chunk_unpack_into( - Tox_Event_File_Recv_Chunk *event, Bin_Unpack *bu) +static bool tox_event_file_recv_chunk_unpack_into(Tox_Event_File_Recv_Chunk *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 4, nullptr)) { @@ -179,8 +167,7 @@ void tox_event_file_recv_chunk_free(Tox_Event_File_Recv_Chunk *file_recv_chunk, mem_delete(mem, file_recv_chunk); } -non_null() -static Tox_Event_File_Recv_Chunk *tox_events_add_file_recv_chunk(Tox_Events *events, const Memory *mem) +static Tox_Event_File_Recv_Chunk *tox_events_add_file_recv_chunk(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_File_Recv_Chunk *const file_recv_chunk = tox_event_file_recv_chunk_new(mem); @@ -213,8 +200,7 @@ bool tox_event_file_recv_chunk_unpack( return tox_event_file_recv_chunk_unpack_into(*event, bu); } -non_null() -static Tox_Event_File_Recv_Chunk *tox_event_file_recv_chunk_alloc(void *user_data) +static Tox_Event_File_Recv_Chunk *tox_event_file_recv_chunk_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/file_recv_control.c b/external/toxcore/c-toxcore/toxcore/events/file_recv_control.c index 72de182..e5a650e 100644 --- a/external/toxcore/c-toxcore/toxcore/events/file_recv_control.c +++ b/external/toxcore/c-toxcore/toxcore/events/file_recv_control.c @@ -29,9 +29,7 @@ struct Tox_Event_File_Recv_Control { Tox_File_Control control; }; -non_null() -static void tox_event_file_recv_control_set_friend_number(Tox_Event_File_Recv_Control *file_recv_control, - uint32_t friend_number) +static void tox_event_file_recv_control_set_friend_number(Tox_Event_File_Recv_Control *_Nonnull file_recv_control, uint32_t friend_number) { assert(file_recv_control != nullptr); file_recv_control->friend_number = friend_number; @@ -42,9 +40,7 @@ uint32_t tox_event_file_recv_control_get_friend_number(const Tox_Event_File_Recv return file_recv_control->friend_number; } -non_null() -static void tox_event_file_recv_control_set_file_number(Tox_Event_File_Recv_Control *file_recv_control, - uint32_t file_number) +static void tox_event_file_recv_control_set_file_number(Tox_Event_File_Recv_Control *_Nonnull file_recv_control, uint32_t file_number) { assert(file_recv_control != nullptr); file_recv_control->file_number = file_number; @@ -55,9 +51,7 @@ uint32_t tox_event_file_recv_control_get_file_number(const Tox_Event_File_Recv_C return file_recv_control->file_number; } -non_null() -static void tox_event_file_recv_control_set_control(Tox_Event_File_Recv_Control *file_recv_control, - Tox_File_Control control) +static void tox_event_file_recv_control_set_control(Tox_Event_File_Recv_Control *_Nonnull file_recv_control, Tox_File_Control control) { assert(file_recv_control != nullptr); file_recv_control->control = control; @@ -68,15 +62,13 @@ Tox_File_Control tox_event_file_recv_control_get_control(const Tox_Event_File_Re return file_recv_control->control; } -non_null() -static void tox_event_file_recv_control_construct(Tox_Event_File_Recv_Control *file_recv_control) +static void tox_event_file_recv_control_construct(Tox_Event_File_Recv_Control *_Nonnull file_recv_control) { *file_recv_control = (Tox_Event_File_Recv_Control) { 0 }; } -non_null() -static void tox_event_file_recv_control_destruct(Tox_Event_File_Recv_Control *file_recv_control, const Memory *mem) +static void tox_event_file_recv_control_destruct(Tox_Event_File_Recv_Control *_Nonnull file_recv_control, const Memory *_Nonnull mem) { return; } @@ -90,9 +82,7 @@ bool tox_event_file_recv_control_pack( && tox_file_control_pack(event->control, bp); } -non_null() -static bool tox_event_file_recv_control_unpack_into( - Tox_Event_File_Recv_Control *event, Bin_Unpack *bu) +static bool tox_event_file_recv_control_unpack_into(Tox_Event_File_Recv_Control *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 3, nullptr)) { @@ -136,8 +126,7 @@ void tox_event_file_recv_control_free(Tox_Event_File_Recv_Control *file_recv_con mem_delete(mem, file_recv_control); } -non_null() -static Tox_Event_File_Recv_Control *tox_events_add_file_recv_control(Tox_Events *events, const Memory *mem) +static Tox_Event_File_Recv_Control *tox_events_add_file_recv_control(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_File_Recv_Control *const file_recv_control = tox_event_file_recv_control_new(mem); @@ -170,8 +159,7 @@ bool tox_event_file_recv_control_unpack( return tox_event_file_recv_control_unpack_into(*event, bu); } -non_null() -static Tox_Event_File_Recv_Control *tox_event_file_recv_control_alloc(void *user_data) +static Tox_Event_File_Recv_Control *tox_event_file_recv_control_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/friend_connection_status.c b/external/toxcore/c-toxcore/toxcore/events/friend_connection_status.c index d57980d..64b04ab 100644 --- a/external/toxcore/c-toxcore/toxcore/events/friend_connection_status.c +++ b/external/toxcore/c-toxcore/toxcore/events/friend_connection_status.c @@ -28,9 +28,7 @@ struct Tox_Event_Friend_Connection_Status { Tox_Connection connection_status; }; -non_null() -static void tox_event_friend_connection_status_set_friend_number(Tox_Event_Friend_Connection_Status *friend_connection_status, - uint32_t friend_number) +static void tox_event_friend_connection_status_set_friend_number(Tox_Event_Friend_Connection_Status *_Nonnull friend_connection_status, uint32_t friend_number) { assert(friend_connection_status != nullptr); friend_connection_status->friend_number = friend_number; @@ -41,9 +39,7 @@ uint32_t tox_event_friend_connection_status_get_friend_number(const Tox_Event_Fr return friend_connection_status->friend_number; } -non_null() -static void tox_event_friend_connection_status_set_connection_status(Tox_Event_Friend_Connection_Status *friend_connection_status, - Tox_Connection connection_status) +static void tox_event_friend_connection_status_set_connection_status(Tox_Event_Friend_Connection_Status *_Nonnull friend_connection_status, Tox_Connection connection_status) { assert(friend_connection_status != nullptr); friend_connection_status->connection_status = connection_status; @@ -54,15 +50,13 @@ Tox_Connection tox_event_friend_connection_status_get_connection_status(const To return friend_connection_status->connection_status; } -non_null() -static void tox_event_friend_connection_status_construct(Tox_Event_Friend_Connection_Status *friend_connection_status) +static void tox_event_friend_connection_status_construct(Tox_Event_Friend_Connection_Status *_Nonnull friend_connection_status) { *friend_connection_status = (Tox_Event_Friend_Connection_Status) { 0 }; } -non_null() -static void tox_event_friend_connection_status_destruct(Tox_Event_Friend_Connection_Status *friend_connection_status, const Memory *mem) +static void tox_event_friend_connection_status_destruct(Tox_Event_Friend_Connection_Status *_Nonnull friend_connection_status, const Memory *_Nonnull mem) { return; } @@ -75,9 +69,7 @@ bool tox_event_friend_connection_status_pack( && tox_connection_pack(event->connection_status, bp); } -non_null() -static bool tox_event_friend_connection_status_unpack_into( - Tox_Event_Friend_Connection_Status *event, Bin_Unpack *bu) +static bool tox_event_friend_connection_status_unpack_into(Tox_Event_Friend_Connection_Status *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 2, nullptr)) { @@ -120,8 +112,7 @@ void tox_event_friend_connection_status_free(Tox_Event_Friend_Connection_Status mem_delete(mem, friend_connection_status); } -non_null() -static Tox_Event_Friend_Connection_Status *tox_events_add_friend_connection_status(Tox_Events *events, const Memory *mem) +static Tox_Event_Friend_Connection_Status *tox_events_add_friend_connection_status(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Friend_Connection_Status *const friend_connection_status = tox_event_friend_connection_status_new(mem); @@ -154,8 +145,7 @@ bool tox_event_friend_connection_status_unpack( return tox_event_friend_connection_status_unpack_into(*event, bu); } -non_null() -static Tox_Event_Friend_Connection_Status *tox_event_friend_connection_status_alloc(void *user_data) +static Tox_Event_Friend_Connection_Status *tox_event_friend_connection_status_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/friend_lossless_packet.c b/external/toxcore/c-toxcore/toxcore/events/friend_lossless_packet.c index 098c5ab..7b9e6e9 100644 --- a/external/toxcore/c-toxcore/toxcore/events/friend_lossless_packet.c +++ b/external/toxcore/c-toxcore/toxcore/events/friend_lossless_packet.c @@ -29,9 +29,7 @@ struct Tox_Event_Friend_Lossless_Packet { uint32_t data_length; }; -non_null() -static void tox_event_friend_lossless_packet_set_friend_number(Tox_Event_Friend_Lossless_Packet *friend_lossless_packet, - uint32_t friend_number) +static void tox_event_friend_lossless_packet_set_friend_number(Tox_Event_Friend_Lossless_Packet *_Nonnull friend_lossless_packet, uint32_t friend_number) { assert(friend_lossless_packet != nullptr); friend_lossless_packet->friend_number = friend_number; @@ -42,12 +40,10 @@ uint32_t tox_event_friend_lossless_packet_get_friend_number(const Tox_Event_Frie return friend_lossless_packet->friend_number; } -non_null(1) nullable(2) -static bool tox_event_friend_lossless_packet_set_data(Tox_Event_Friend_Lossless_Packet *friend_lossless_packet, - const uint8_t *data, uint32_t data_length) +static bool tox_event_friend_lossless_packet_set_data(Tox_Event_Friend_Lossless_Packet *_Nonnull friend_lossless_packet, + const uint8_t *_Nullable data, uint32_t data_length) { assert(friend_lossless_packet != nullptr); - if (friend_lossless_packet->data != nullptr) { free(friend_lossless_packet->data); friend_lossless_packet->data = nullptr; @@ -81,15 +77,13 @@ const uint8_t *tox_event_friend_lossless_packet_get_data(const Tox_Event_Friend_ return friend_lossless_packet->data; } -non_null() -static void tox_event_friend_lossless_packet_construct(Tox_Event_Friend_Lossless_Packet *friend_lossless_packet) +static void tox_event_friend_lossless_packet_construct(Tox_Event_Friend_Lossless_Packet *_Nonnull friend_lossless_packet) { *friend_lossless_packet = (Tox_Event_Friend_Lossless_Packet) { 0 }; } -non_null() -static void tox_event_friend_lossless_packet_destruct(Tox_Event_Friend_Lossless_Packet *friend_lossless_packet, const Memory *mem) +static void tox_event_friend_lossless_packet_destruct(Tox_Event_Friend_Lossless_Packet *_Nonnull friend_lossless_packet, const Memory *_Nonnull mem) { free(friend_lossless_packet->data); } @@ -102,9 +96,7 @@ bool tox_event_friend_lossless_packet_pack( && bin_pack_bin(bp, event->data, event->data_length); } -non_null() -static bool tox_event_friend_lossless_packet_unpack_into( - Tox_Event_Friend_Lossless_Packet *event, Bin_Unpack *bu) +static bool tox_event_friend_lossless_packet_unpack_into(Tox_Event_Friend_Lossless_Packet *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 2, nullptr)) { @@ -147,8 +139,7 @@ void tox_event_friend_lossless_packet_free(Tox_Event_Friend_Lossless_Packet *fri mem_delete(mem, friend_lossless_packet); } -non_null() -static Tox_Event_Friend_Lossless_Packet *tox_events_add_friend_lossless_packet(Tox_Events *events, const Memory *mem) +static Tox_Event_Friend_Lossless_Packet *tox_events_add_friend_lossless_packet(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Friend_Lossless_Packet *const friend_lossless_packet = tox_event_friend_lossless_packet_new(mem); @@ -181,8 +172,7 @@ bool tox_event_friend_lossless_packet_unpack( return tox_event_friend_lossless_packet_unpack_into(*event, bu); } -non_null() -static Tox_Event_Friend_Lossless_Packet *tox_event_friend_lossless_packet_alloc(void *user_data) +static Tox_Event_Friend_Lossless_Packet *tox_event_friend_lossless_packet_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/friend_lossy_packet.c b/external/toxcore/c-toxcore/toxcore/events/friend_lossy_packet.c index 016fa5d..22096d4 100644 --- a/external/toxcore/c-toxcore/toxcore/events/friend_lossy_packet.c +++ b/external/toxcore/c-toxcore/toxcore/events/friend_lossy_packet.c @@ -29,9 +29,7 @@ struct Tox_Event_Friend_Lossy_Packet { uint32_t data_length; }; -non_null() -static void tox_event_friend_lossy_packet_set_friend_number(Tox_Event_Friend_Lossy_Packet *friend_lossy_packet, - uint32_t friend_number) +static void tox_event_friend_lossy_packet_set_friend_number(Tox_Event_Friend_Lossy_Packet *_Nonnull friend_lossy_packet, uint32_t friend_number) { assert(friend_lossy_packet != nullptr); friend_lossy_packet->friend_number = friend_number; @@ -42,12 +40,10 @@ uint32_t tox_event_friend_lossy_packet_get_friend_number(const Tox_Event_Friend_ return friend_lossy_packet->friend_number; } -non_null(1) nullable(2) -static bool tox_event_friend_lossy_packet_set_data(Tox_Event_Friend_Lossy_Packet *friend_lossy_packet, - const uint8_t *data, uint32_t data_length) +static bool tox_event_friend_lossy_packet_set_data(Tox_Event_Friend_Lossy_Packet *_Nonnull friend_lossy_packet, + const uint8_t *_Nullable data, uint32_t data_length) { assert(friend_lossy_packet != nullptr); - if (friend_lossy_packet->data != nullptr) { free(friend_lossy_packet->data); friend_lossy_packet->data = nullptr; @@ -81,15 +77,13 @@ const uint8_t *tox_event_friend_lossy_packet_get_data(const Tox_Event_Friend_Los return friend_lossy_packet->data; } -non_null() -static void tox_event_friend_lossy_packet_construct(Tox_Event_Friend_Lossy_Packet *friend_lossy_packet) +static void tox_event_friend_lossy_packet_construct(Tox_Event_Friend_Lossy_Packet *_Nonnull friend_lossy_packet) { *friend_lossy_packet = (Tox_Event_Friend_Lossy_Packet) { 0 }; } -non_null() -static void tox_event_friend_lossy_packet_destruct(Tox_Event_Friend_Lossy_Packet *friend_lossy_packet, const Memory *mem) +static void tox_event_friend_lossy_packet_destruct(Tox_Event_Friend_Lossy_Packet *_Nonnull friend_lossy_packet, const Memory *_Nonnull mem) { free(friend_lossy_packet->data); } @@ -102,9 +96,7 @@ bool tox_event_friend_lossy_packet_pack( && bin_pack_bin(bp, event->data, event->data_length); } -non_null() -static bool tox_event_friend_lossy_packet_unpack_into( - Tox_Event_Friend_Lossy_Packet *event, Bin_Unpack *bu) +static bool tox_event_friend_lossy_packet_unpack_into(Tox_Event_Friend_Lossy_Packet *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 2, nullptr)) { @@ -147,8 +139,7 @@ void tox_event_friend_lossy_packet_free(Tox_Event_Friend_Lossy_Packet *friend_lo mem_delete(mem, friend_lossy_packet); } -non_null() -static Tox_Event_Friend_Lossy_Packet *tox_events_add_friend_lossy_packet(Tox_Events *events, const Memory *mem) +static Tox_Event_Friend_Lossy_Packet *tox_events_add_friend_lossy_packet(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Friend_Lossy_Packet *const friend_lossy_packet = tox_event_friend_lossy_packet_new(mem); @@ -181,8 +172,7 @@ bool tox_event_friend_lossy_packet_unpack( return tox_event_friend_lossy_packet_unpack_into(*event, bu); } -non_null() -static Tox_Event_Friend_Lossy_Packet *tox_event_friend_lossy_packet_alloc(void *user_data) +static Tox_Event_Friend_Lossy_Packet *tox_event_friend_lossy_packet_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/friend_message.c b/external/toxcore/c-toxcore/toxcore/events/friend_message.c index cedc3b5..0d59a6b 100644 --- a/external/toxcore/c-toxcore/toxcore/events/friend_message.c +++ b/external/toxcore/c-toxcore/toxcore/events/friend_message.c @@ -32,9 +32,7 @@ struct Tox_Event_Friend_Message { uint32_t message_length; }; -non_null() -static void tox_event_friend_message_set_friend_number(Tox_Event_Friend_Message *friend_message, - uint32_t friend_number) +static void tox_event_friend_message_set_friend_number(Tox_Event_Friend_Message *_Nonnull friend_message, uint32_t friend_number) { assert(friend_message != nullptr); friend_message->friend_number = friend_number; @@ -45,9 +43,7 @@ uint32_t tox_event_friend_message_get_friend_number(const Tox_Event_Friend_Messa return friend_message->friend_number; } -non_null() -static void tox_event_friend_message_set_type(Tox_Event_Friend_Message *friend_message, - Tox_Message_Type type) +static void tox_event_friend_message_set_type(Tox_Event_Friend_Message *_Nonnull friend_message, Tox_Message_Type type) { assert(friend_message != nullptr); friend_message->type = type; @@ -58,12 +54,10 @@ Tox_Message_Type tox_event_friend_message_get_type(const Tox_Event_Friend_Messag return friend_message->type; } -non_null(1) nullable(2) -static bool tox_event_friend_message_set_message(Tox_Event_Friend_Message *friend_message, - const uint8_t *message, uint32_t message_length) +static bool tox_event_friend_message_set_message(Tox_Event_Friend_Message *_Nonnull friend_message, + const uint8_t *_Nullable message, uint32_t message_length) { assert(friend_message != nullptr); - if (friend_message->message != nullptr) { free(friend_message->message); friend_message->message = nullptr; @@ -97,15 +91,13 @@ const uint8_t *tox_event_friend_message_get_message(const Tox_Event_Friend_Messa return friend_message->message; } -non_null() -static void tox_event_friend_message_construct(Tox_Event_Friend_Message *friend_message) +static void tox_event_friend_message_construct(Tox_Event_Friend_Message *_Nonnull friend_message) { *friend_message = (Tox_Event_Friend_Message) { 0 }; } -non_null() -static void tox_event_friend_message_destruct(Tox_Event_Friend_Message *friend_message, const Memory *mem) +static void tox_event_friend_message_destruct(Tox_Event_Friend_Message *_Nonnull friend_message, const Memory *_Nonnull mem) { free(friend_message->message); } @@ -119,9 +111,7 @@ bool tox_event_friend_message_pack( && bin_pack_bin(bp, event->message, event->message_length); } -non_null() -static bool tox_event_friend_message_unpack_into( - Tox_Event_Friend_Message *event, Bin_Unpack *bu) +static bool tox_event_friend_message_unpack_into(Tox_Event_Friend_Message *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 3, nullptr)) { @@ -165,8 +155,7 @@ void tox_event_friend_message_free(Tox_Event_Friend_Message *friend_message, con mem_delete(mem, friend_message); } -non_null() -static Tox_Event_Friend_Message *tox_events_add_friend_message(Tox_Events *events, const Memory *mem) +static Tox_Event_Friend_Message *tox_events_add_friend_message(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Friend_Message *const friend_message = tox_event_friend_message_new(mem); @@ -199,8 +188,7 @@ bool tox_event_friend_message_unpack( return tox_event_friend_message_unpack_into(*event, bu); } -non_null() -static Tox_Event_Friend_Message *tox_event_friend_message_alloc(void *user_data) +static Tox_Event_Friend_Message *tox_event_friend_message_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/friend_name.c b/external/toxcore/c-toxcore/toxcore/events/friend_name.c index 9f8de0c..4f1c6e2 100644 --- a/external/toxcore/c-toxcore/toxcore/events/friend_name.c +++ b/external/toxcore/c-toxcore/toxcore/events/friend_name.c @@ -29,9 +29,7 @@ struct Tox_Event_Friend_Name { uint32_t name_length; }; -non_null() -static void tox_event_friend_name_set_friend_number(Tox_Event_Friend_Name *friend_name, - uint32_t friend_number) +static void tox_event_friend_name_set_friend_number(Tox_Event_Friend_Name *_Nonnull friend_name, uint32_t friend_number) { assert(friend_name != nullptr); friend_name->friend_number = friend_number; @@ -42,12 +40,10 @@ uint32_t tox_event_friend_name_get_friend_number(const Tox_Event_Friend_Name *fr return friend_name->friend_number; } -non_null(1) nullable(2) -static bool tox_event_friend_name_set_name(Tox_Event_Friend_Name *friend_name, - const uint8_t *name, uint32_t name_length) +static bool tox_event_friend_name_set_name(Tox_Event_Friend_Name *_Nonnull friend_name, + const uint8_t *_Nullable name, uint32_t name_length) { assert(friend_name != nullptr); - if (friend_name->name != nullptr) { free(friend_name->name); friend_name->name = nullptr; @@ -81,15 +77,13 @@ const uint8_t *tox_event_friend_name_get_name(const Tox_Event_Friend_Name *frien return friend_name->name; } -non_null() -static void tox_event_friend_name_construct(Tox_Event_Friend_Name *friend_name) +static void tox_event_friend_name_construct(Tox_Event_Friend_Name *_Nonnull friend_name) { *friend_name = (Tox_Event_Friend_Name) { 0 }; } -non_null() -static void tox_event_friend_name_destruct(Tox_Event_Friend_Name *friend_name, const Memory *mem) +static void tox_event_friend_name_destruct(Tox_Event_Friend_Name *_Nonnull friend_name, const Memory *_Nonnull mem) { free(friend_name->name); } @@ -102,9 +96,7 @@ bool tox_event_friend_name_pack( && bin_pack_bin(bp, event->name, event->name_length); } -non_null() -static bool tox_event_friend_name_unpack_into( - Tox_Event_Friend_Name *event, Bin_Unpack *bu) +static bool tox_event_friend_name_unpack_into(Tox_Event_Friend_Name *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 2, nullptr)) { @@ -147,8 +139,7 @@ void tox_event_friend_name_free(Tox_Event_Friend_Name *friend_name, const Memory mem_delete(mem, friend_name); } -non_null() -static Tox_Event_Friend_Name *tox_events_add_friend_name(Tox_Events *events, const Memory *mem) +static Tox_Event_Friend_Name *tox_events_add_friend_name(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Friend_Name *const friend_name = tox_event_friend_name_new(mem); @@ -181,8 +172,7 @@ bool tox_event_friend_name_unpack( return tox_event_friend_name_unpack_into(*event, bu); } -non_null() -static Tox_Event_Friend_Name *tox_event_friend_name_alloc(void *user_data) +static Tox_Event_Friend_Name *tox_event_friend_name_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/friend_read_receipt.c b/external/toxcore/c-toxcore/toxcore/events/friend_read_receipt.c index 4ba4267..b4443bd 100644 --- a/external/toxcore/c-toxcore/toxcore/events/friend_read_receipt.c +++ b/external/toxcore/c-toxcore/toxcore/events/friend_read_receipt.c @@ -26,9 +26,7 @@ struct Tox_Event_Friend_Read_Receipt { uint32_t message_id; }; -non_null() -static void tox_event_friend_read_receipt_set_friend_number(Tox_Event_Friend_Read_Receipt *friend_read_receipt, - uint32_t friend_number) +static void tox_event_friend_read_receipt_set_friend_number(Tox_Event_Friend_Read_Receipt *_Nonnull friend_read_receipt, uint32_t friend_number) { assert(friend_read_receipt != nullptr); friend_read_receipt->friend_number = friend_number; @@ -39,9 +37,7 @@ uint32_t tox_event_friend_read_receipt_get_friend_number(const Tox_Event_Friend_ return friend_read_receipt->friend_number; } -non_null() -static void tox_event_friend_read_receipt_set_message_id(Tox_Event_Friend_Read_Receipt *friend_read_receipt, - uint32_t message_id) +static void tox_event_friend_read_receipt_set_message_id(Tox_Event_Friend_Read_Receipt *_Nonnull friend_read_receipt, uint32_t message_id) { assert(friend_read_receipt != nullptr); friend_read_receipt->message_id = message_id; @@ -52,15 +48,13 @@ uint32_t tox_event_friend_read_receipt_get_message_id(const Tox_Event_Friend_Rea return friend_read_receipt->message_id; } -non_null() -static void tox_event_friend_read_receipt_construct(Tox_Event_Friend_Read_Receipt *friend_read_receipt) +static void tox_event_friend_read_receipt_construct(Tox_Event_Friend_Read_Receipt *_Nonnull friend_read_receipt) { *friend_read_receipt = (Tox_Event_Friend_Read_Receipt) { 0 }; } -non_null() -static void tox_event_friend_read_receipt_destruct(Tox_Event_Friend_Read_Receipt *friend_read_receipt, const Memory *mem) +static void tox_event_friend_read_receipt_destruct(Tox_Event_Friend_Read_Receipt *_Nonnull friend_read_receipt, const Memory *_Nonnull mem) { return; } @@ -73,9 +67,7 @@ bool tox_event_friend_read_receipt_pack( && bin_pack_u32(bp, event->message_id); } -non_null() -static bool tox_event_friend_read_receipt_unpack_into( - Tox_Event_Friend_Read_Receipt *event, Bin_Unpack *bu) +static bool tox_event_friend_read_receipt_unpack_into(Tox_Event_Friend_Read_Receipt *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 2, nullptr)) { @@ -118,8 +110,7 @@ void tox_event_friend_read_receipt_free(Tox_Event_Friend_Read_Receipt *friend_re mem_delete(mem, friend_read_receipt); } -non_null() -static Tox_Event_Friend_Read_Receipt *tox_events_add_friend_read_receipt(Tox_Events *events, const Memory *mem) +static Tox_Event_Friend_Read_Receipt *tox_events_add_friend_read_receipt(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Friend_Read_Receipt *const friend_read_receipt = tox_event_friend_read_receipt_new(mem); @@ -152,8 +143,7 @@ bool tox_event_friend_read_receipt_unpack( return tox_event_friend_read_receipt_unpack_into(*event, bu); } -non_null() -static Tox_Event_Friend_Read_Receipt *tox_event_friend_read_receipt_alloc(void *user_data) +static Tox_Event_Friend_Read_Receipt *tox_event_friend_read_receipt_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/friend_request.c b/external/toxcore/c-toxcore/toxcore/events/friend_request.c index 631c236..b331d11 100644 --- a/external/toxcore/c-toxcore/toxcore/events/friend_request.c +++ b/external/toxcore/c-toxcore/toxcore/events/friend_request.c @@ -29,8 +29,7 @@ struct Tox_Event_Friend_Request { uint32_t message_length; }; -non_null() -static bool tox_event_friend_request_set_public_key(Tox_Event_Friend_Request *friend_request, const uint8_t *public_key) +static bool tox_event_friend_request_set_public_key(Tox_Event_Friend_Request *_Nonnull friend_request, const uint8_t *_Nonnull public_key) { assert(friend_request != nullptr); @@ -43,9 +42,7 @@ const uint8_t *tox_event_friend_request_get_public_key(const Tox_Event_Friend_Re return friend_request->public_key; } -non_null() -static bool tox_event_friend_request_set_message(Tox_Event_Friend_Request *friend_request, - const uint8_t *message, uint32_t message_length, const Memory *mem) +static bool tox_event_friend_request_set_message(Tox_Event_Friend_Request *_Nonnull friend_request, const uint8_t *_Nonnull message, uint32_t message_length, const Memory *_Nonnull mem) { assert(friend_request != nullptr); @@ -77,8 +74,7 @@ const uint8_t *tox_event_friend_request_get_message(const Tox_Event_Friend_Reque return friend_request->message; } -non_null() -static void tox_event_friend_request_construct(Tox_Event_Friend_Request *friend_request) +static void tox_event_friend_request_construct(Tox_Event_Friend_Request *_Nonnull friend_request) { *friend_request = (Tox_Event_Friend_Request) { { @@ -86,8 +82,7 @@ static void tox_event_friend_request_construct(Tox_Event_Friend_Request *friend_ } }; } -non_null() -static void tox_event_friend_request_destruct(Tox_Event_Friend_Request *friend_request, const Memory *mem) +static void tox_event_friend_request_destruct(Tox_Event_Friend_Request *_Nonnull friend_request, const Memory *_Nonnull mem) { mem_delete(mem, friend_request->message); } @@ -100,9 +95,7 @@ bool tox_event_friend_request_pack( && bin_pack_bin(bp, event->message, event->message_length); } -non_null() -static bool tox_event_friend_request_unpack_into( - Tox_Event_Friend_Request *event, Bin_Unpack *bu) +static bool tox_event_friend_request_unpack_into(Tox_Event_Friend_Request *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 2, nullptr)) { @@ -140,8 +133,7 @@ void tox_event_friend_request_free(Tox_Event_Friend_Request *friend_request, con mem_delete(mem, friend_request); } -non_null() -static Tox_Event_Friend_Request *tox_events_add_friend_request(Tox_Events *events, const Memory *mem) +static Tox_Event_Friend_Request *tox_events_add_friend_request(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Friend_Request *const friend_request = tox_event_friend_request_new(mem); @@ -174,8 +166,7 @@ bool tox_event_friend_request_unpack( return tox_event_friend_request_unpack_into(*event, bu); } -non_null() -static Tox_Event_Friend_Request *tox_event_friend_request_alloc(void *user_data) +static Tox_Event_Friend_Request *tox_event_friend_request_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/friend_status.c b/external/toxcore/c-toxcore/toxcore/events/friend_status.c index 209eed8..99d39bc 100644 --- a/external/toxcore/c-toxcore/toxcore/events/friend_status.c +++ b/external/toxcore/c-toxcore/toxcore/events/friend_status.c @@ -28,9 +28,7 @@ struct Tox_Event_Friend_Status { Tox_User_Status status; }; -non_null() -static void tox_event_friend_status_set_friend_number(Tox_Event_Friend_Status *friend_status, - uint32_t friend_number) +static void tox_event_friend_status_set_friend_number(Tox_Event_Friend_Status *_Nonnull friend_status, uint32_t friend_number) { assert(friend_status != nullptr); friend_status->friend_number = friend_number; @@ -41,9 +39,7 @@ uint32_t tox_event_friend_status_get_friend_number(const Tox_Event_Friend_Status return friend_status->friend_number; } -non_null() -static void tox_event_friend_status_set_status(Tox_Event_Friend_Status *friend_status, - Tox_User_Status status) +static void tox_event_friend_status_set_status(Tox_Event_Friend_Status *_Nonnull friend_status, Tox_User_Status status) { assert(friend_status != nullptr); friend_status->status = status; @@ -54,15 +50,13 @@ Tox_User_Status tox_event_friend_status_get_status(const Tox_Event_Friend_Status return friend_status->status; } -non_null() -static void tox_event_friend_status_construct(Tox_Event_Friend_Status *friend_status) +static void tox_event_friend_status_construct(Tox_Event_Friend_Status *_Nonnull friend_status) { *friend_status = (Tox_Event_Friend_Status) { 0 }; } -non_null() -static void tox_event_friend_status_destruct(Tox_Event_Friend_Status *friend_status, const Memory *mem) +static void tox_event_friend_status_destruct(Tox_Event_Friend_Status *_Nonnull friend_status, const Memory *_Nonnull mem) { return; } @@ -75,9 +69,7 @@ bool tox_event_friend_status_pack( && tox_user_status_pack(event->status, bp); } -non_null() -static bool tox_event_friend_status_unpack_into( - Tox_Event_Friend_Status *event, Bin_Unpack *bu) +static bool tox_event_friend_status_unpack_into(Tox_Event_Friend_Status *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 2, nullptr)) { @@ -120,8 +112,7 @@ void tox_event_friend_status_free(Tox_Event_Friend_Status *friend_status, const mem_delete(mem, friend_status); } -non_null() -static Tox_Event_Friend_Status *tox_events_add_friend_status(Tox_Events *events, const Memory *mem) +static Tox_Event_Friend_Status *tox_events_add_friend_status(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Friend_Status *const friend_status = tox_event_friend_status_new(mem); @@ -154,8 +145,7 @@ bool tox_event_friend_status_unpack( return tox_event_friend_status_unpack_into(*event, bu); } -non_null() -static Tox_Event_Friend_Status *tox_event_friend_status_alloc(void *user_data) +static Tox_Event_Friend_Status *tox_event_friend_status_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/friend_status_message.c b/external/toxcore/c-toxcore/toxcore/events/friend_status_message.c index 2c6d0fb..c2e77d9 100644 --- a/external/toxcore/c-toxcore/toxcore/events/friend_status_message.c +++ b/external/toxcore/c-toxcore/toxcore/events/friend_status_message.c @@ -29,9 +29,7 @@ struct Tox_Event_Friend_Status_Message { uint32_t message_length; }; -non_null() -static void tox_event_friend_status_message_set_friend_number(Tox_Event_Friend_Status_Message *friend_status_message, - uint32_t friend_number) +static void tox_event_friend_status_message_set_friend_number(Tox_Event_Friend_Status_Message *_Nonnull friend_status_message, uint32_t friend_number) { assert(friend_status_message != nullptr); friend_status_message->friend_number = friend_number; @@ -42,12 +40,10 @@ uint32_t tox_event_friend_status_message_get_friend_number(const Tox_Event_Frien return friend_status_message->friend_number; } -non_null(1) nullable(2) -static bool tox_event_friend_status_message_set_message(Tox_Event_Friend_Status_Message *friend_status_message, - const uint8_t *message, uint32_t message_length) +static bool tox_event_friend_status_message_set_message(Tox_Event_Friend_Status_Message *_Nonnull friend_status_message, + const uint8_t *_Nullable message, uint32_t message_length) { assert(friend_status_message != nullptr); - if (friend_status_message->message != nullptr) { free(friend_status_message->message); friend_status_message->message = nullptr; @@ -81,15 +77,13 @@ const uint8_t *tox_event_friend_status_message_get_message(const Tox_Event_Frien return friend_status_message->message; } -non_null() -static void tox_event_friend_status_message_construct(Tox_Event_Friend_Status_Message *friend_status_message) +static void tox_event_friend_status_message_construct(Tox_Event_Friend_Status_Message *_Nonnull friend_status_message) { *friend_status_message = (Tox_Event_Friend_Status_Message) { 0 }; } -non_null() -static void tox_event_friend_status_message_destruct(Tox_Event_Friend_Status_Message *friend_status_message, const Memory *mem) +static void tox_event_friend_status_message_destruct(Tox_Event_Friend_Status_Message *_Nonnull friend_status_message, const Memory *_Nonnull mem) { free(friend_status_message->message); } @@ -102,9 +96,7 @@ bool tox_event_friend_status_message_pack( && bin_pack_bin(bp, event->message, event->message_length); } -non_null() -static bool tox_event_friend_status_message_unpack_into( - Tox_Event_Friend_Status_Message *event, Bin_Unpack *bu) +static bool tox_event_friend_status_message_unpack_into(Tox_Event_Friend_Status_Message *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 2, nullptr)) { @@ -147,8 +139,7 @@ void tox_event_friend_status_message_free(Tox_Event_Friend_Status_Message *frien mem_delete(mem, friend_status_message); } -non_null() -static Tox_Event_Friend_Status_Message *tox_events_add_friend_status_message(Tox_Events *events, const Memory *mem) +static Tox_Event_Friend_Status_Message *tox_events_add_friend_status_message(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Friend_Status_Message *const friend_status_message = tox_event_friend_status_message_new(mem); @@ -181,8 +172,7 @@ bool tox_event_friend_status_message_unpack( return tox_event_friend_status_message_unpack_into(*event, bu); } -non_null() -static Tox_Event_Friend_Status_Message *tox_event_friend_status_message_alloc(void *user_data) +static Tox_Event_Friend_Status_Message *tox_event_friend_status_message_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/friend_typing.c b/external/toxcore/c-toxcore/toxcore/events/friend_typing.c index cb2cfac..fda20ba 100644 --- a/external/toxcore/c-toxcore/toxcore/events/friend_typing.c +++ b/external/toxcore/c-toxcore/toxcore/events/friend_typing.c @@ -26,9 +26,7 @@ struct Tox_Event_Friend_Typing { bool typing; }; -non_null() -static void tox_event_friend_typing_set_friend_number(Tox_Event_Friend_Typing *friend_typing, - uint32_t friend_number) +static void tox_event_friend_typing_set_friend_number(Tox_Event_Friend_Typing *_Nonnull friend_typing, uint32_t friend_number) { assert(friend_typing != nullptr); friend_typing->friend_number = friend_number; @@ -39,9 +37,7 @@ uint32_t tox_event_friend_typing_get_friend_number(const Tox_Event_Friend_Typing return friend_typing->friend_number; } -non_null() -static void tox_event_friend_typing_set_typing(Tox_Event_Friend_Typing *friend_typing, - bool typing) +static void tox_event_friend_typing_set_typing(Tox_Event_Friend_Typing *_Nonnull friend_typing, bool typing) { assert(friend_typing != nullptr); friend_typing->typing = typing; @@ -52,15 +48,13 @@ bool tox_event_friend_typing_get_typing(const Tox_Event_Friend_Typing *friend_ty return friend_typing->typing; } -non_null() -static void tox_event_friend_typing_construct(Tox_Event_Friend_Typing *friend_typing) +static void tox_event_friend_typing_construct(Tox_Event_Friend_Typing *_Nonnull friend_typing) { *friend_typing = (Tox_Event_Friend_Typing) { 0 }; } -non_null() -static void tox_event_friend_typing_destruct(Tox_Event_Friend_Typing *friend_typing, const Memory *mem) +static void tox_event_friend_typing_destruct(Tox_Event_Friend_Typing *_Nonnull friend_typing, const Memory *_Nonnull mem) { return; } @@ -73,9 +67,7 @@ bool tox_event_friend_typing_pack( && bin_pack_bool(bp, event->typing); } -non_null() -static bool tox_event_friend_typing_unpack_into( - Tox_Event_Friend_Typing *event, Bin_Unpack *bu) +static bool tox_event_friend_typing_unpack_into(Tox_Event_Friend_Typing *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 2, nullptr)) { @@ -118,8 +110,7 @@ void tox_event_friend_typing_free(Tox_Event_Friend_Typing *friend_typing, const mem_delete(mem, friend_typing); } -non_null() -static Tox_Event_Friend_Typing *tox_events_add_friend_typing(Tox_Events *events, const Memory *mem) +static Tox_Event_Friend_Typing *tox_events_add_friend_typing(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Friend_Typing *const friend_typing = tox_event_friend_typing_new(mem); @@ -152,8 +143,7 @@ bool tox_event_friend_typing_unpack( return tox_event_friend_typing_unpack_into(*event, bu); } -non_null() -static Tox_Event_Friend_Typing *tox_event_friend_typing_alloc(void *user_data) +static Tox_Event_Friend_Typing *tox_event_friend_typing_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/group_custom_packet.c b/external/toxcore/c-toxcore/toxcore/events/group_custom_packet.c index 337d601..65af4d4 100644 --- a/external/toxcore/c-toxcore/toxcore/events/group_custom_packet.c +++ b/external/toxcore/c-toxcore/toxcore/events/group_custom_packet.c @@ -30,9 +30,7 @@ struct Tox_Event_Group_Custom_Packet { uint32_t data_length; }; -non_null() -static void tox_event_group_custom_packet_set_group_number(Tox_Event_Group_Custom_Packet *group_custom_packet, - uint32_t group_number) +static void tox_event_group_custom_packet_set_group_number(Tox_Event_Group_Custom_Packet *_Nonnull group_custom_packet, uint32_t group_number) { assert(group_custom_packet != nullptr); group_custom_packet->group_number = group_number; @@ -43,9 +41,7 @@ uint32_t tox_event_group_custom_packet_get_group_number(const Tox_Event_Group_Cu return group_custom_packet->group_number; } -non_null() -static void tox_event_group_custom_packet_set_peer_id(Tox_Event_Group_Custom_Packet *group_custom_packet, - uint32_t peer_id) +static void tox_event_group_custom_packet_set_peer_id(Tox_Event_Group_Custom_Packet *_Nonnull group_custom_packet, uint32_t peer_id) { assert(group_custom_packet != nullptr); group_custom_packet->peer_id = peer_id; @@ -56,12 +52,10 @@ uint32_t tox_event_group_custom_packet_get_peer_id(const Tox_Event_Group_Custom_ return group_custom_packet->peer_id; } -non_null(1) nullable(2) -static bool tox_event_group_custom_packet_set_data(Tox_Event_Group_Custom_Packet *group_custom_packet, - const uint8_t *data, uint32_t data_length) +static bool tox_event_group_custom_packet_set_data(Tox_Event_Group_Custom_Packet *_Nonnull group_custom_packet, + const uint8_t *_Nullable data, uint32_t data_length) { assert(group_custom_packet != nullptr); - if (group_custom_packet->data != nullptr) { free(group_custom_packet->data); group_custom_packet->data = nullptr; @@ -95,15 +89,13 @@ const uint8_t *tox_event_group_custom_packet_get_data(const Tox_Event_Group_Cust return group_custom_packet->data; } -non_null() -static void tox_event_group_custom_packet_construct(Tox_Event_Group_Custom_Packet *group_custom_packet) +static void tox_event_group_custom_packet_construct(Tox_Event_Group_Custom_Packet *_Nonnull group_custom_packet) { *group_custom_packet = (Tox_Event_Group_Custom_Packet) { 0 }; } -non_null() -static void tox_event_group_custom_packet_destruct(Tox_Event_Group_Custom_Packet *group_custom_packet, const Memory *mem) +static void tox_event_group_custom_packet_destruct(Tox_Event_Group_Custom_Packet *_Nonnull group_custom_packet, const Memory *_Nonnull mem) { free(group_custom_packet->data); } @@ -117,9 +109,7 @@ bool tox_event_group_custom_packet_pack( && bin_pack_bin(bp, event->data, event->data_length); } -non_null() -static bool tox_event_group_custom_packet_unpack_into( - Tox_Event_Group_Custom_Packet *event, Bin_Unpack *bu) +static bool tox_event_group_custom_packet_unpack_into(Tox_Event_Group_Custom_Packet *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 3, nullptr)) { @@ -163,8 +153,7 @@ void tox_event_group_custom_packet_free(Tox_Event_Group_Custom_Packet *group_cus mem_delete(mem, group_custom_packet); } -non_null() -static Tox_Event_Group_Custom_Packet *tox_events_add_group_custom_packet(Tox_Events *events, const Memory *mem) +static Tox_Event_Group_Custom_Packet *tox_events_add_group_custom_packet(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Group_Custom_Packet *const group_custom_packet = tox_event_group_custom_packet_new(mem); @@ -197,8 +186,7 @@ bool tox_event_group_custom_packet_unpack( return tox_event_group_custom_packet_unpack_into(*event, bu); } -non_null() -static Tox_Event_Group_Custom_Packet *tox_event_group_custom_packet_alloc(void *user_data) +static Tox_Event_Group_Custom_Packet *tox_event_group_custom_packet_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/group_custom_private_packet.c b/external/toxcore/c-toxcore/toxcore/events/group_custom_private_packet.c index 9408a8d..eb58100 100644 --- a/external/toxcore/c-toxcore/toxcore/events/group_custom_private_packet.c +++ b/external/toxcore/c-toxcore/toxcore/events/group_custom_private_packet.c @@ -30,9 +30,7 @@ struct Tox_Event_Group_Custom_Private_Packet { uint32_t data_length; }; -non_null() -static void tox_event_group_custom_private_packet_set_group_number(Tox_Event_Group_Custom_Private_Packet *group_custom_private_packet, - uint32_t group_number) +static void tox_event_group_custom_private_packet_set_group_number(Tox_Event_Group_Custom_Private_Packet *_Nonnull group_custom_private_packet, uint32_t group_number) { assert(group_custom_private_packet != nullptr); group_custom_private_packet->group_number = group_number; @@ -43,9 +41,7 @@ uint32_t tox_event_group_custom_private_packet_get_group_number(const Tox_Event_ return group_custom_private_packet->group_number; } -non_null() -static void tox_event_group_custom_private_packet_set_peer_id(Tox_Event_Group_Custom_Private_Packet *group_custom_private_packet, - uint32_t peer_id) +static void tox_event_group_custom_private_packet_set_peer_id(Tox_Event_Group_Custom_Private_Packet *_Nonnull group_custom_private_packet, uint32_t peer_id) { assert(group_custom_private_packet != nullptr); group_custom_private_packet->peer_id = peer_id; @@ -56,12 +52,10 @@ uint32_t tox_event_group_custom_private_packet_get_peer_id(const Tox_Event_Group return group_custom_private_packet->peer_id; } -non_null(1) nullable(2) -static bool tox_event_group_custom_private_packet_set_data(Tox_Event_Group_Custom_Private_Packet *group_custom_private_packet, - const uint8_t *data, uint32_t data_length) +static bool tox_event_group_custom_private_packet_set_data(Tox_Event_Group_Custom_Private_Packet *_Nonnull group_custom_private_packet, + const uint8_t *_Nullable data, uint32_t data_length) { assert(group_custom_private_packet != nullptr); - if (group_custom_private_packet->data != nullptr) { free(group_custom_private_packet->data); group_custom_private_packet->data = nullptr; @@ -95,15 +89,13 @@ const uint8_t *tox_event_group_custom_private_packet_get_data(const Tox_Event_Gr return group_custom_private_packet->data; } -non_null() -static void tox_event_group_custom_private_packet_construct(Tox_Event_Group_Custom_Private_Packet *group_custom_private_packet) +static void tox_event_group_custom_private_packet_construct(Tox_Event_Group_Custom_Private_Packet *_Nonnull group_custom_private_packet) { *group_custom_private_packet = (Tox_Event_Group_Custom_Private_Packet) { 0 }; } -non_null() -static void tox_event_group_custom_private_packet_destruct(Tox_Event_Group_Custom_Private_Packet *group_custom_private_packet, const Memory *mem) +static void tox_event_group_custom_private_packet_destruct(Tox_Event_Group_Custom_Private_Packet *_Nonnull group_custom_private_packet, const Memory *_Nonnull mem) { free(group_custom_private_packet->data); } @@ -117,9 +109,7 @@ bool tox_event_group_custom_private_packet_pack( && bin_pack_bin(bp, event->data, event->data_length); } -non_null() -static bool tox_event_group_custom_private_packet_unpack_into( - Tox_Event_Group_Custom_Private_Packet *event, Bin_Unpack *bu) +static bool tox_event_group_custom_private_packet_unpack_into(Tox_Event_Group_Custom_Private_Packet *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 3, nullptr)) { @@ -163,8 +153,7 @@ void tox_event_group_custom_private_packet_free(Tox_Event_Group_Custom_Private_P mem_delete(mem, group_custom_private_packet); } -non_null() -static Tox_Event_Group_Custom_Private_Packet *tox_events_add_group_custom_private_packet(Tox_Events *events, const Memory *mem) +static Tox_Event_Group_Custom_Private_Packet *tox_events_add_group_custom_private_packet(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Group_Custom_Private_Packet *const group_custom_private_packet = tox_event_group_custom_private_packet_new(mem); @@ -197,8 +186,7 @@ bool tox_event_group_custom_private_packet_unpack( return tox_event_group_custom_private_packet_unpack_into(*event, bu); } -non_null() -static Tox_Event_Group_Custom_Private_Packet *tox_event_group_custom_private_packet_alloc(void *user_data) +static Tox_Event_Group_Custom_Private_Packet *tox_event_group_custom_private_packet_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/group_invite.c b/external/toxcore/c-toxcore/toxcore/events/group_invite.c index 3385b89..47959e5 100644 --- a/external/toxcore/c-toxcore/toxcore/events/group_invite.c +++ b/external/toxcore/c-toxcore/toxcore/events/group_invite.c @@ -31,9 +31,7 @@ struct Tox_Event_Group_Invite { uint32_t group_name_length; }; -non_null() -static void tox_event_group_invite_set_friend_number(Tox_Event_Group_Invite *group_invite, - uint32_t friend_number) +static void tox_event_group_invite_set_friend_number(Tox_Event_Group_Invite *_Nonnull group_invite, uint32_t friend_number) { assert(group_invite != nullptr); group_invite->friend_number = friend_number; @@ -44,12 +42,10 @@ uint32_t tox_event_group_invite_get_friend_number(const Tox_Event_Group_Invite * return group_invite->friend_number; } -non_null(1) nullable(2) -static bool tox_event_group_invite_set_invite_data(Tox_Event_Group_Invite *group_invite, - const uint8_t *invite_data, uint32_t invite_data_length) +static bool tox_event_group_invite_set_invite_data(Tox_Event_Group_Invite *_Nonnull group_invite, + const uint8_t *_Nullable invite_data, uint32_t invite_data_length) { assert(group_invite != nullptr); - if (group_invite->invite_data != nullptr) { free(group_invite->invite_data); group_invite->invite_data = nullptr; @@ -83,12 +79,10 @@ const uint8_t *tox_event_group_invite_get_invite_data(const Tox_Event_Group_Invi return group_invite->invite_data; } -non_null(1) nullable(2) -static bool tox_event_group_invite_set_group_name(Tox_Event_Group_Invite *group_invite, - const uint8_t *group_name, uint32_t group_name_length) +static bool tox_event_group_invite_set_group_name(Tox_Event_Group_Invite *_Nonnull group_invite, + const uint8_t *_Nullable group_name, uint32_t group_name_length) { assert(group_invite != nullptr); - if (group_invite->group_name != nullptr) { free(group_invite->group_name); group_invite->group_name = nullptr; @@ -122,15 +116,13 @@ const uint8_t *tox_event_group_invite_get_group_name(const Tox_Event_Group_Invit return group_invite->group_name; } -non_null() -static void tox_event_group_invite_construct(Tox_Event_Group_Invite *group_invite) +static void tox_event_group_invite_construct(Tox_Event_Group_Invite *_Nonnull group_invite) { *group_invite = (Tox_Event_Group_Invite) { 0 }; } -non_null() -static void tox_event_group_invite_destruct(Tox_Event_Group_Invite *group_invite, const Memory *mem) +static void tox_event_group_invite_destruct(Tox_Event_Group_Invite *_Nonnull group_invite, const Memory *_Nonnull mem) { free(group_invite->invite_data); free(group_invite->group_name); @@ -145,9 +137,7 @@ bool tox_event_group_invite_pack( && bin_pack_bin(bp, event->group_name, event->group_name_length); } -non_null() -static bool tox_event_group_invite_unpack_into( - Tox_Event_Group_Invite *event, Bin_Unpack *bu) +static bool tox_event_group_invite_unpack_into(Tox_Event_Group_Invite *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 3, nullptr)) { @@ -191,8 +181,7 @@ void tox_event_group_invite_free(Tox_Event_Group_Invite *group_invite, const Mem mem_delete(mem, group_invite); } -non_null() -static Tox_Event_Group_Invite *tox_events_add_group_invite(Tox_Events *events, const Memory *mem) +static Tox_Event_Group_Invite *tox_events_add_group_invite(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Group_Invite *const group_invite = tox_event_group_invite_new(mem); @@ -225,8 +214,7 @@ bool tox_event_group_invite_unpack( return tox_event_group_invite_unpack_into(*event, bu); } -non_null() -static Tox_Event_Group_Invite *tox_event_group_invite_alloc(void *user_data) +static Tox_Event_Group_Invite *tox_event_group_invite_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/group_join_fail.c b/external/toxcore/c-toxcore/toxcore/events/group_join_fail.c index 8fdefb7..8931f7b 100644 --- a/external/toxcore/c-toxcore/toxcore/events/group_join_fail.c +++ b/external/toxcore/c-toxcore/toxcore/events/group_join_fail.c @@ -28,9 +28,7 @@ struct Tox_Event_Group_Join_Fail { Tox_Group_Join_Fail fail_type; }; -non_null() -static void tox_event_group_join_fail_set_group_number(Tox_Event_Group_Join_Fail *group_join_fail, - uint32_t group_number) +static void tox_event_group_join_fail_set_group_number(Tox_Event_Group_Join_Fail *_Nonnull group_join_fail, uint32_t group_number) { assert(group_join_fail != nullptr); group_join_fail->group_number = group_number; @@ -41,9 +39,7 @@ uint32_t tox_event_group_join_fail_get_group_number(const Tox_Event_Group_Join_F return group_join_fail->group_number; } -non_null() -static void tox_event_group_join_fail_set_fail_type(Tox_Event_Group_Join_Fail *group_join_fail, - Tox_Group_Join_Fail fail_type) +static void tox_event_group_join_fail_set_fail_type(Tox_Event_Group_Join_Fail *_Nonnull group_join_fail, Tox_Group_Join_Fail fail_type) { assert(group_join_fail != nullptr); group_join_fail->fail_type = fail_type; @@ -54,15 +50,13 @@ Tox_Group_Join_Fail tox_event_group_join_fail_get_fail_type(const Tox_Event_Grou return group_join_fail->fail_type; } -non_null() -static void tox_event_group_join_fail_construct(Tox_Event_Group_Join_Fail *group_join_fail) +static void tox_event_group_join_fail_construct(Tox_Event_Group_Join_Fail *_Nonnull group_join_fail) { *group_join_fail = (Tox_Event_Group_Join_Fail) { 0 }; } -non_null() -static void tox_event_group_join_fail_destruct(Tox_Event_Group_Join_Fail *group_join_fail, const Memory *mem) +static void tox_event_group_join_fail_destruct(Tox_Event_Group_Join_Fail *_Nonnull group_join_fail, const Memory *_Nonnull mem) { return; } @@ -75,9 +69,7 @@ bool tox_event_group_join_fail_pack( && tox_group_join_fail_pack(event->fail_type, bp); } -non_null() -static bool tox_event_group_join_fail_unpack_into( - Tox_Event_Group_Join_Fail *event, Bin_Unpack *bu) +static bool tox_event_group_join_fail_unpack_into(Tox_Event_Group_Join_Fail *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 2, nullptr)) { @@ -120,8 +112,7 @@ void tox_event_group_join_fail_free(Tox_Event_Group_Join_Fail *group_join_fail, mem_delete(mem, group_join_fail); } -non_null() -static Tox_Event_Group_Join_Fail *tox_events_add_group_join_fail(Tox_Events *events, const Memory *mem) +static Tox_Event_Group_Join_Fail *tox_events_add_group_join_fail(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Group_Join_Fail *const group_join_fail = tox_event_group_join_fail_new(mem); @@ -154,8 +145,7 @@ bool tox_event_group_join_fail_unpack( return tox_event_group_join_fail_unpack_into(*event, bu); } -non_null() -static Tox_Event_Group_Join_Fail *tox_event_group_join_fail_alloc(void *user_data) +static Tox_Event_Group_Join_Fail *tox_event_group_join_fail_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/group_message.c b/external/toxcore/c-toxcore/toxcore/events/group_message.c index dfb2bc9..b8da841 100644 --- a/external/toxcore/c-toxcore/toxcore/events/group_message.c +++ b/external/toxcore/c-toxcore/toxcore/events/group_message.c @@ -34,9 +34,7 @@ struct Tox_Event_Group_Message { uint32_t message_id; }; -non_null() -static void tox_event_group_message_set_group_number(Tox_Event_Group_Message *group_message, - uint32_t group_number) +static void tox_event_group_message_set_group_number(Tox_Event_Group_Message *_Nonnull group_message, uint32_t group_number) { assert(group_message != nullptr); group_message->group_number = group_number; @@ -47,9 +45,7 @@ uint32_t tox_event_group_message_get_group_number(const Tox_Event_Group_Message return group_message->group_number; } -non_null() -static void tox_event_group_message_set_peer_id(Tox_Event_Group_Message *group_message, - uint32_t peer_id) +static void tox_event_group_message_set_peer_id(Tox_Event_Group_Message *_Nonnull group_message, uint32_t peer_id) { assert(group_message != nullptr); group_message->peer_id = peer_id; @@ -60,9 +56,7 @@ uint32_t tox_event_group_message_get_peer_id(const Tox_Event_Group_Message *grou return group_message->peer_id; } -non_null() -static void tox_event_group_message_set_message_type(Tox_Event_Group_Message *group_message, - Tox_Message_Type message_type) +static void tox_event_group_message_set_message_type(Tox_Event_Group_Message *_Nonnull group_message, Tox_Message_Type message_type) { assert(group_message != nullptr); group_message->message_type = message_type; @@ -73,12 +67,10 @@ Tox_Message_Type tox_event_group_message_get_message_type(const Tox_Event_Group_ return group_message->message_type; } -non_null(1) nullable(2) -static bool tox_event_group_message_set_message(Tox_Event_Group_Message *group_message, - const uint8_t *message, uint32_t message_length) +static bool tox_event_group_message_set_message(Tox_Event_Group_Message *_Nonnull group_message, + const uint8_t *_Nullable message, uint32_t message_length) { assert(group_message != nullptr); - if (group_message->message != nullptr) { free(group_message->message); group_message->message = nullptr; @@ -112,9 +104,7 @@ const uint8_t *tox_event_group_message_get_message(const Tox_Event_Group_Message return group_message->message; } -non_null() -static void tox_event_group_message_set_message_id(Tox_Event_Group_Message *group_message, - uint32_t message_id) +static void tox_event_group_message_set_message_id(Tox_Event_Group_Message *_Nonnull group_message, uint32_t message_id) { assert(group_message != nullptr); group_message->message_id = message_id; @@ -125,15 +115,13 @@ uint32_t tox_event_group_message_get_message_id(const Tox_Event_Group_Message *g return group_message->message_id; } -non_null() -static void tox_event_group_message_construct(Tox_Event_Group_Message *group_message) +static void tox_event_group_message_construct(Tox_Event_Group_Message *_Nonnull group_message) { *group_message = (Tox_Event_Group_Message) { 0 }; } -non_null() -static void tox_event_group_message_destruct(Tox_Event_Group_Message *group_message, const Memory *mem) +static void tox_event_group_message_destruct(Tox_Event_Group_Message *_Nonnull group_message, const Memory *_Nonnull mem) { free(group_message->message); } @@ -149,9 +137,7 @@ bool tox_event_group_message_pack( && bin_pack_u32(bp, event->message_id); } -non_null() -static bool tox_event_group_message_unpack_into( - Tox_Event_Group_Message *event, Bin_Unpack *bu) +static bool tox_event_group_message_unpack_into(Tox_Event_Group_Message *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 5, nullptr)) { @@ -197,8 +183,7 @@ void tox_event_group_message_free(Tox_Event_Group_Message *group_message, const mem_delete(mem, group_message); } -non_null() -static Tox_Event_Group_Message *tox_events_add_group_message(Tox_Events *events, const Memory *mem) +static Tox_Event_Group_Message *tox_events_add_group_message(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Group_Message *const group_message = tox_event_group_message_new(mem); @@ -231,8 +216,7 @@ bool tox_event_group_message_unpack( return tox_event_group_message_unpack_into(*event, bu); } -non_null() -static Tox_Event_Group_Message *tox_event_group_message_alloc(void *user_data) +static Tox_Event_Group_Message *tox_event_group_message_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/group_moderation.c b/external/toxcore/c-toxcore/toxcore/events/group_moderation.c index 9e2b87e..d622479 100644 --- a/external/toxcore/c-toxcore/toxcore/events/group_moderation.c +++ b/external/toxcore/c-toxcore/toxcore/events/group_moderation.c @@ -30,9 +30,7 @@ struct Tox_Event_Group_Moderation { Tox_Group_Mod_Event mod_type; }; -non_null() -static void tox_event_group_moderation_set_group_number(Tox_Event_Group_Moderation *group_moderation, - uint32_t group_number) +static void tox_event_group_moderation_set_group_number(Tox_Event_Group_Moderation *_Nonnull group_moderation, uint32_t group_number) { assert(group_moderation != nullptr); group_moderation->group_number = group_number; @@ -43,9 +41,7 @@ uint32_t tox_event_group_moderation_get_group_number(const Tox_Event_Group_Moder return group_moderation->group_number; } -non_null() -static void tox_event_group_moderation_set_source_peer_id(Tox_Event_Group_Moderation *group_moderation, - uint32_t source_peer_id) +static void tox_event_group_moderation_set_source_peer_id(Tox_Event_Group_Moderation *_Nonnull group_moderation, uint32_t source_peer_id) { assert(group_moderation != nullptr); group_moderation->source_peer_id = source_peer_id; @@ -56,9 +52,7 @@ uint32_t tox_event_group_moderation_get_source_peer_id(const Tox_Event_Group_Mod return group_moderation->source_peer_id; } -non_null() -static void tox_event_group_moderation_set_target_peer_id(Tox_Event_Group_Moderation *group_moderation, - uint32_t target_peer_id) +static void tox_event_group_moderation_set_target_peer_id(Tox_Event_Group_Moderation *_Nonnull group_moderation, uint32_t target_peer_id) { assert(group_moderation != nullptr); group_moderation->target_peer_id = target_peer_id; @@ -69,9 +63,7 @@ uint32_t tox_event_group_moderation_get_target_peer_id(const Tox_Event_Group_Mod return group_moderation->target_peer_id; } -non_null() -static void tox_event_group_moderation_set_mod_type(Tox_Event_Group_Moderation *group_moderation, - Tox_Group_Mod_Event mod_type) +static void tox_event_group_moderation_set_mod_type(Tox_Event_Group_Moderation *_Nonnull group_moderation, Tox_Group_Mod_Event mod_type) { assert(group_moderation != nullptr); group_moderation->mod_type = mod_type; @@ -82,15 +74,13 @@ Tox_Group_Mod_Event tox_event_group_moderation_get_mod_type(const Tox_Event_Grou return group_moderation->mod_type; } -non_null() -static void tox_event_group_moderation_construct(Tox_Event_Group_Moderation *group_moderation) +static void tox_event_group_moderation_construct(Tox_Event_Group_Moderation *_Nonnull group_moderation) { *group_moderation = (Tox_Event_Group_Moderation) { 0 }; } -non_null() -static void tox_event_group_moderation_destruct(Tox_Event_Group_Moderation *group_moderation, const Memory *mem) +static void tox_event_group_moderation_destruct(Tox_Event_Group_Moderation *_Nonnull group_moderation, const Memory *_Nonnull mem) { return; } @@ -105,9 +95,7 @@ bool tox_event_group_moderation_pack( && tox_group_mod_event_pack(event->mod_type, bp); } -non_null() -static bool tox_event_group_moderation_unpack_into( - Tox_Event_Group_Moderation *event, Bin_Unpack *bu) +static bool tox_event_group_moderation_unpack_into(Tox_Event_Group_Moderation *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 4, nullptr)) { @@ -152,8 +140,7 @@ void tox_event_group_moderation_free(Tox_Event_Group_Moderation *group_moderatio mem_delete(mem, group_moderation); } -non_null() -static Tox_Event_Group_Moderation *tox_events_add_group_moderation(Tox_Events *events, const Memory *mem) +static Tox_Event_Group_Moderation *tox_events_add_group_moderation(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Group_Moderation *const group_moderation = tox_event_group_moderation_new(mem); @@ -186,8 +173,7 @@ bool tox_event_group_moderation_unpack( return tox_event_group_moderation_unpack_into(*event, bu); } -non_null() -static Tox_Event_Group_Moderation *tox_event_group_moderation_alloc(void *user_data) +static Tox_Event_Group_Moderation *tox_event_group_moderation_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/group_password.c b/external/toxcore/c-toxcore/toxcore/events/group_password.c index 33b64a0..5c69233 100644 --- a/external/toxcore/c-toxcore/toxcore/events/group_password.c +++ b/external/toxcore/c-toxcore/toxcore/events/group_password.c @@ -29,9 +29,7 @@ struct Tox_Event_Group_Password { uint32_t password_length; }; -non_null() -static void tox_event_group_password_set_group_number(Tox_Event_Group_Password *group_password, - uint32_t group_number) +static void tox_event_group_password_set_group_number(Tox_Event_Group_Password *_Nonnull group_password, uint32_t group_number) { assert(group_password != nullptr); group_password->group_number = group_number; @@ -42,12 +40,10 @@ uint32_t tox_event_group_password_get_group_number(const Tox_Event_Group_Passwor return group_password->group_number; } -non_null(1) nullable(2) -static bool tox_event_group_password_set_password(Tox_Event_Group_Password *group_password, - const uint8_t *password, uint32_t password_length) +static bool tox_event_group_password_set_password(Tox_Event_Group_Password *_Nonnull group_password, + const uint8_t *_Nullable password, uint32_t password_length) { assert(group_password != nullptr); - if (group_password->password != nullptr) { free(group_password->password); group_password->password = nullptr; @@ -81,15 +77,13 @@ const uint8_t *tox_event_group_password_get_password(const Tox_Event_Group_Passw return group_password->password; } -non_null() -static void tox_event_group_password_construct(Tox_Event_Group_Password *group_password) +static void tox_event_group_password_construct(Tox_Event_Group_Password *_Nonnull group_password) { *group_password = (Tox_Event_Group_Password) { 0 }; } -non_null() -static void tox_event_group_password_destruct(Tox_Event_Group_Password *group_password, const Memory *mem) +static void tox_event_group_password_destruct(Tox_Event_Group_Password *_Nonnull group_password, const Memory *_Nonnull mem) { free(group_password->password); } @@ -102,9 +96,7 @@ bool tox_event_group_password_pack( && bin_pack_bin(bp, event->password, event->password_length); } -non_null() -static bool tox_event_group_password_unpack_into( - Tox_Event_Group_Password *event, Bin_Unpack *bu) +static bool tox_event_group_password_unpack_into(Tox_Event_Group_Password *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 2, nullptr)) { @@ -147,8 +139,7 @@ void tox_event_group_password_free(Tox_Event_Group_Password *group_password, con mem_delete(mem, group_password); } -non_null() -static Tox_Event_Group_Password *tox_events_add_group_password(Tox_Events *events, const Memory *mem) +static Tox_Event_Group_Password *tox_events_add_group_password(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Group_Password *const group_password = tox_event_group_password_new(mem); @@ -181,8 +172,7 @@ bool tox_event_group_password_unpack( return tox_event_group_password_unpack_into(*event, bu); } -non_null() -static Tox_Event_Group_Password *tox_event_group_password_alloc(void *user_data) +static Tox_Event_Group_Password *tox_event_group_password_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/group_peer_exit.c b/external/toxcore/c-toxcore/toxcore/events/group_peer_exit.c index a09f96b..7644266 100644 --- a/external/toxcore/c-toxcore/toxcore/events/group_peer_exit.c +++ b/external/toxcore/c-toxcore/toxcore/events/group_peer_exit.c @@ -35,9 +35,7 @@ struct Tox_Event_Group_Peer_Exit { uint32_t part_message_length; }; -non_null() -static void tox_event_group_peer_exit_set_group_number(Tox_Event_Group_Peer_Exit *group_peer_exit, - uint32_t group_number) +static void tox_event_group_peer_exit_set_group_number(Tox_Event_Group_Peer_Exit *_Nonnull group_peer_exit, uint32_t group_number) { assert(group_peer_exit != nullptr); group_peer_exit->group_number = group_number; @@ -48,9 +46,7 @@ uint32_t tox_event_group_peer_exit_get_group_number(const Tox_Event_Group_Peer_E return group_peer_exit->group_number; } -non_null() -static void tox_event_group_peer_exit_set_peer_id(Tox_Event_Group_Peer_Exit *group_peer_exit, - uint32_t peer_id) +static void tox_event_group_peer_exit_set_peer_id(Tox_Event_Group_Peer_Exit *_Nonnull group_peer_exit, uint32_t peer_id) { assert(group_peer_exit != nullptr); group_peer_exit->peer_id = peer_id; @@ -61,9 +57,7 @@ uint32_t tox_event_group_peer_exit_get_peer_id(const Tox_Event_Group_Peer_Exit * return group_peer_exit->peer_id; } -non_null() -static void tox_event_group_peer_exit_set_exit_type(Tox_Event_Group_Peer_Exit *group_peer_exit, - Tox_Group_Exit_Type exit_type) +static void tox_event_group_peer_exit_set_exit_type(Tox_Event_Group_Peer_Exit *_Nonnull group_peer_exit, Tox_Group_Exit_Type exit_type) { assert(group_peer_exit != nullptr); group_peer_exit->exit_type = exit_type; @@ -74,12 +68,10 @@ Tox_Group_Exit_Type tox_event_group_peer_exit_get_exit_type(const Tox_Event_Grou return group_peer_exit->exit_type; } -non_null(1) nullable(2) -static bool tox_event_group_peer_exit_set_name(Tox_Event_Group_Peer_Exit *group_peer_exit, - const uint8_t *name, uint32_t name_length) +static bool tox_event_group_peer_exit_set_name(Tox_Event_Group_Peer_Exit *_Nonnull group_peer_exit, + const uint8_t *_Nullable name, uint32_t name_length) { assert(group_peer_exit != nullptr); - if (group_peer_exit->name != nullptr) { free(group_peer_exit->name); group_peer_exit->name = nullptr; @@ -113,12 +105,10 @@ const uint8_t *tox_event_group_peer_exit_get_name(const Tox_Event_Group_Peer_Exi return group_peer_exit->name; } -non_null(1) nullable(2) -static bool tox_event_group_peer_exit_set_part_message(Tox_Event_Group_Peer_Exit *group_peer_exit, - const uint8_t *part_message, uint32_t part_message_length) +static bool tox_event_group_peer_exit_set_part_message(Tox_Event_Group_Peer_Exit *_Nonnull group_peer_exit, + const uint8_t *_Nullable part_message, uint32_t part_message_length) { assert(group_peer_exit != nullptr); - if (group_peer_exit->part_message != nullptr) { free(group_peer_exit->part_message); group_peer_exit->part_message = nullptr; @@ -152,15 +142,13 @@ const uint8_t *tox_event_group_peer_exit_get_part_message(const Tox_Event_Group_ return group_peer_exit->part_message; } -non_null() -static void tox_event_group_peer_exit_construct(Tox_Event_Group_Peer_Exit *group_peer_exit) +static void tox_event_group_peer_exit_construct(Tox_Event_Group_Peer_Exit *_Nonnull group_peer_exit) { *group_peer_exit = (Tox_Event_Group_Peer_Exit) { 0 }; } -non_null() -static void tox_event_group_peer_exit_destruct(Tox_Event_Group_Peer_Exit *group_peer_exit, const Memory *mem) +static void tox_event_group_peer_exit_destruct(Tox_Event_Group_Peer_Exit *_Nonnull group_peer_exit, const Memory *_Nonnull mem) { free(group_peer_exit->name); free(group_peer_exit->part_message); @@ -177,9 +165,7 @@ bool tox_event_group_peer_exit_pack( && bin_pack_bin(bp, event->part_message, event->part_message_length); } -non_null() -static bool tox_event_group_peer_exit_unpack_into( - Tox_Event_Group_Peer_Exit *event, Bin_Unpack *bu) +static bool tox_event_group_peer_exit_unpack_into(Tox_Event_Group_Peer_Exit *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 5, nullptr)) { @@ -225,8 +211,7 @@ void tox_event_group_peer_exit_free(Tox_Event_Group_Peer_Exit *group_peer_exit, mem_delete(mem, group_peer_exit); } -non_null() -static Tox_Event_Group_Peer_Exit *tox_events_add_group_peer_exit(Tox_Events *events, const Memory *mem) +static Tox_Event_Group_Peer_Exit *tox_events_add_group_peer_exit(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Group_Peer_Exit *const group_peer_exit = tox_event_group_peer_exit_new(mem); @@ -259,8 +244,7 @@ bool tox_event_group_peer_exit_unpack( return tox_event_group_peer_exit_unpack_into(*event, bu); } -non_null() -static Tox_Event_Group_Peer_Exit *tox_event_group_peer_exit_alloc(void *user_data) +static Tox_Event_Group_Peer_Exit *tox_event_group_peer_exit_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/group_peer_join.c b/external/toxcore/c-toxcore/toxcore/events/group_peer_join.c index d450564..4fd13f9 100644 --- a/external/toxcore/c-toxcore/toxcore/events/group_peer_join.c +++ b/external/toxcore/c-toxcore/toxcore/events/group_peer_join.c @@ -26,9 +26,7 @@ struct Tox_Event_Group_Peer_Join { uint32_t peer_id; }; -non_null() -static void tox_event_group_peer_join_set_group_number(Tox_Event_Group_Peer_Join *group_peer_join, - uint32_t group_number) +static void tox_event_group_peer_join_set_group_number(Tox_Event_Group_Peer_Join *_Nonnull group_peer_join, uint32_t group_number) { assert(group_peer_join != nullptr); group_peer_join->group_number = group_number; @@ -39,9 +37,7 @@ uint32_t tox_event_group_peer_join_get_group_number(const Tox_Event_Group_Peer_J return group_peer_join->group_number; } -non_null() -static void tox_event_group_peer_join_set_peer_id(Tox_Event_Group_Peer_Join *group_peer_join, - uint32_t peer_id) +static void tox_event_group_peer_join_set_peer_id(Tox_Event_Group_Peer_Join *_Nonnull group_peer_join, uint32_t peer_id) { assert(group_peer_join != nullptr); group_peer_join->peer_id = peer_id; @@ -52,15 +48,13 @@ uint32_t tox_event_group_peer_join_get_peer_id(const Tox_Event_Group_Peer_Join * return group_peer_join->peer_id; } -non_null() -static void tox_event_group_peer_join_construct(Tox_Event_Group_Peer_Join *group_peer_join) +static void tox_event_group_peer_join_construct(Tox_Event_Group_Peer_Join *_Nonnull group_peer_join) { *group_peer_join = (Tox_Event_Group_Peer_Join) { 0 }; } -non_null() -static void tox_event_group_peer_join_destruct(Tox_Event_Group_Peer_Join *group_peer_join, const Memory *mem) +static void tox_event_group_peer_join_destruct(Tox_Event_Group_Peer_Join *_Nonnull group_peer_join, const Memory *_Nonnull mem) { return; } @@ -73,9 +67,7 @@ bool tox_event_group_peer_join_pack( && bin_pack_u32(bp, event->peer_id); } -non_null() -static bool tox_event_group_peer_join_unpack_into( - Tox_Event_Group_Peer_Join *event, Bin_Unpack *bu) +static bool tox_event_group_peer_join_unpack_into(Tox_Event_Group_Peer_Join *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 2, nullptr)) { @@ -118,8 +110,7 @@ void tox_event_group_peer_join_free(Tox_Event_Group_Peer_Join *group_peer_join, mem_delete(mem, group_peer_join); } -non_null() -static Tox_Event_Group_Peer_Join *tox_events_add_group_peer_join(Tox_Events *events, const Memory *mem) +static Tox_Event_Group_Peer_Join *tox_events_add_group_peer_join(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Group_Peer_Join *const group_peer_join = tox_event_group_peer_join_new(mem); @@ -152,8 +143,7 @@ bool tox_event_group_peer_join_unpack( return tox_event_group_peer_join_unpack_into(*event, bu); } -non_null() -static Tox_Event_Group_Peer_Join *tox_event_group_peer_join_alloc(void *user_data) +static Tox_Event_Group_Peer_Join *tox_event_group_peer_join_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/group_peer_limit.c b/external/toxcore/c-toxcore/toxcore/events/group_peer_limit.c index 65c44e7..e652f7a 100644 --- a/external/toxcore/c-toxcore/toxcore/events/group_peer_limit.c +++ b/external/toxcore/c-toxcore/toxcore/events/group_peer_limit.c @@ -26,9 +26,7 @@ struct Tox_Event_Group_Peer_Limit { uint32_t peer_limit; }; -non_null() -static void tox_event_group_peer_limit_set_group_number(Tox_Event_Group_Peer_Limit *group_peer_limit, - uint32_t group_number) +static void tox_event_group_peer_limit_set_group_number(Tox_Event_Group_Peer_Limit *_Nonnull group_peer_limit, uint32_t group_number) { assert(group_peer_limit != nullptr); group_peer_limit->group_number = group_number; @@ -39,9 +37,7 @@ uint32_t tox_event_group_peer_limit_get_group_number(const Tox_Event_Group_Peer_ return group_peer_limit->group_number; } -non_null() -static void tox_event_group_peer_limit_set_peer_limit(Tox_Event_Group_Peer_Limit *group_peer_limit, - uint32_t peer_limit) +static void tox_event_group_peer_limit_set_peer_limit(Tox_Event_Group_Peer_Limit *_Nonnull group_peer_limit, uint32_t peer_limit) { assert(group_peer_limit != nullptr); group_peer_limit->peer_limit = peer_limit; @@ -52,15 +48,13 @@ uint32_t tox_event_group_peer_limit_get_peer_limit(const Tox_Event_Group_Peer_Li return group_peer_limit->peer_limit; } -non_null() -static void tox_event_group_peer_limit_construct(Tox_Event_Group_Peer_Limit *group_peer_limit) +static void tox_event_group_peer_limit_construct(Tox_Event_Group_Peer_Limit *_Nonnull group_peer_limit) { *group_peer_limit = (Tox_Event_Group_Peer_Limit) { 0 }; } -non_null() -static void tox_event_group_peer_limit_destruct(Tox_Event_Group_Peer_Limit *group_peer_limit, const Memory *mem) +static void tox_event_group_peer_limit_destruct(Tox_Event_Group_Peer_Limit *_Nonnull group_peer_limit, const Memory *_Nonnull mem) { return; } @@ -73,9 +67,7 @@ bool tox_event_group_peer_limit_pack( && bin_pack_u32(bp, event->peer_limit); } -non_null() -static bool tox_event_group_peer_limit_unpack_into( - Tox_Event_Group_Peer_Limit *event, Bin_Unpack *bu) +static bool tox_event_group_peer_limit_unpack_into(Tox_Event_Group_Peer_Limit *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 2, nullptr)) { @@ -118,8 +110,7 @@ void tox_event_group_peer_limit_free(Tox_Event_Group_Peer_Limit *group_peer_limi mem_delete(mem, group_peer_limit); } -non_null() -static Tox_Event_Group_Peer_Limit *tox_events_add_group_peer_limit(Tox_Events *events, const Memory *mem) +static Tox_Event_Group_Peer_Limit *tox_events_add_group_peer_limit(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Group_Peer_Limit *const group_peer_limit = tox_event_group_peer_limit_new(mem); @@ -152,8 +143,7 @@ bool tox_event_group_peer_limit_unpack( return tox_event_group_peer_limit_unpack_into(*event, bu); } -non_null() -static Tox_Event_Group_Peer_Limit *tox_event_group_peer_limit_alloc(void *user_data) +static Tox_Event_Group_Peer_Limit *tox_event_group_peer_limit_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/group_peer_name.c b/external/toxcore/c-toxcore/toxcore/events/group_peer_name.c index d653ff5..6009fd7 100644 --- a/external/toxcore/c-toxcore/toxcore/events/group_peer_name.c +++ b/external/toxcore/c-toxcore/toxcore/events/group_peer_name.c @@ -30,9 +30,7 @@ struct Tox_Event_Group_Peer_Name { uint32_t name_length; }; -non_null() -static void tox_event_group_peer_name_set_group_number(Tox_Event_Group_Peer_Name *group_peer_name, - uint32_t group_number) +static void tox_event_group_peer_name_set_group_number(Tox_Event_Group_Peer_Name *_Nonnull group_peer_name, uint32_t group_number) { assert(group_peer_name != nullptr); group_peer_name->group_number = group_number; @@ -43,9 +41,7 @@ uint32_t tox_event_group_peer_name_get_group_number(const Tox_Event_Group_Peer_N return group_peer_name->group_number; } -non_null() -static void tox_event_group_peer_name_set_peer_id(Tox_Event_Group_Peer_Name *group_peer_name, - uint32_t peer_id) +static void tox_event_group_peer_name_set_peer_id(Tox_Event_Group_Peer_Name *_Nonnull group_peer_name, uint32_t peer_id) { assert(group_peer_name != nullptr); group_peer_name->peer_id = peer_id; @@ -56,12 +52,10 @@ uint32_t tox_event_group_peer_name_get_peer_id(const Tox_Event_Group_Peer_Name * return group_peer_name->peer_id; } -non_null(1) nullable(2) -static bool tox_event_group_peer_name_set_name(Tox_Event_Group_Peer_Name *group_peer_name, - const uint8_t *name, uint32_t name_length) +static bool tox_event_group_peer_name_set_name(Tox_Event_Group_Peer_Name *_Nonnull group_peer_name, + const uint8_t *_Nullable name, uint32_t name_length) { assert(group_peer_name != nullptr); - if (group_peer_name->name != nullptr) { free(group_peer_name->name); group_peer_name->name = nullptr; @@ -95,15 +89,13 @@ const uint8_t *tox_event_group_peer_name_get_name(const Tox_Event_Group_Peer_Nam return group_peer_name->name; } -non_null() -static void tox_event_group_peer_name_construct(Tox_Event_Group_Peer_Name *group_peer_name) +static void tox_event_group_peer_name_construct(Tox_Event_Group_Peer_Name *_Nonnull group_peer_name) { *group_peer_name = (Tox_Event_Group_Peer_Name) { 0 }; } -non_null() -static void tox_event_group_peer_name_destruct(Tox_Event_Group_Peer_Name *group_peer_name, const Memory *mem) +static void tox_event_group_peer_name_destruct(Tox_Event_Group_Peer_Name *_Nonnull group_peer_name, const Memory *_Nonnull mem) { free(group_peer_name->name); } @@ -117,9 +109,7 @@ bool tox_event_group_peer_name_pack( && bin_pack_bin(bp, event->name, event->name_length); } -non_null() -static bool tox_event_group_peer_name_unpack_into( - Tox_Event_Group_Peer_Name *event, Bin_Unpack *bu) +static bool tox_event_group_peer_name_unpack_into(Tox_Event_Group_Peer_Name *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 3, nullptr)) { @@ -163,8 +153,7 @@ void tox_event_group_peer_name_free(Tox_Event_Group_Peer_Name *group_peer_name, mem_delete(mem, group_peer_name); } -non_null() -static Tox_Event_Group_Peer_Name *tox_events_add_group_peer_name(Tox_Events *events, const Memory *mem) +static Tox_Event_Group_Peer_Name *tox_events_add_group_peer_name(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Group_Peer_Name *const group_peer_name = tox_event_group_peer_name_new(mem); @@ -197,8 +186,7 @@ bool tox_event_group_peer_name_unpack( return tox_event_group_peer_name_unpack_into(*event, bu); } -non_null() -static Tox_Event_Group_Peer_Name *tox_event_group_peer_name_alloc(void *user_data) +static Tox_Event_Group_Peer_Name *tox_event_group_peer_name_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/group_peer_status.c b/external/toxcore/c-toxcore/toxcore/events/group_peer_status.c index 3dc56df..f193e2b 100644 --- a/external/toxcore/c-toxcore/toxcore/events/group_peer_status.c +++ b/external/toxcore/c-toxcore/toxcore/events/group_peer_status.c @@ -29,9 +29,7 @@ struct Tox_Event_Group_Peer_Status { Tox_User_Status status; }; -non_null() -static void tox_event_group_peer_status_set_group_number(Tox_Event_Group_Peer_Status *group_peer_status, - uint32_t group_number) +static void tox_event_group_peer_status_set_group_number(Tox_Event_Group_Peer_Status *_Nonnull group_peer_status, uint32_t group_number) { assert(group_peer_status != nullptr); group_peer_status->group_number = group_number; @@ -42,9 +40,7 @@ uint32_t tox_event_group_peer_status_get_group_number(const Tox_Event_Group_Peer return group_peer_status->group_number; } -non_null() -static void tox_event_group_peer_status_set_peer_id(Tox_Event_Group_Peer_Status *group_peer_status, - uint32_t peer_id) +static void tox_event_group_peer_status_set_peer_id(Tox_Event_Group_Peer_Status *_Nonnull group_peer_status, uint32_t peer_id) { assert(group_peer_status != nullptr); group_peer_status->peer_id = peer_id; @@ -55,9 +51,7 @@ uint32_t tox_event_group_peer_status_get_peer_id(const Tox_Event_Group_Peer_Stat return group_peer_status->peer_id; } -non_null() -static void tox_event_group_peer_status_set_status(Tox_Event_Group_Peer_Status *group_peer_status, - Tox_User_Status status) +static void tox_event_group_peer_status_set_status(Tox_Event_Group_Peer_Status *_Nonnull group_peer_status, Tox_User_Status status) { assert(group_peer_status != nullptr); group_peer_status->status = status; @@ -68,15 +62,13 @@ Tox_User_Status tox_event_group_peer_status_get_status(const Tox_Event_Group_Pee return group_peer_status->status; } -non_null() -static void tox_event_group_peer_status_construct(Tox_Event_Group_Peer_Status *group_peer_status) +static void tox_event_group_peer_status_construct(Tox_Event_Group_Peer_Status *_Nonnull group_peer_status) { *group_peer_status = (Tox_Event_Group_Peer_Status) { 0 }; } -non_null() -static void tox_event_group_peer_status_destruct(Tox_Event_Group_Peer_Status *group_peer_status, const Memory *mem) +static void tox_event_group_peer_status_destruct(Tox_Event_Group_Peer_Status *_Nonnull group_peer_status, const Memory *_Nonnull mem) { return; } @@ -90,9 +82,7 @@ bool tox_event_group_peer_status_pack( && tox_user_status_pack(event->status, bp); } -non_null() -static bool tox_event_group_peer_status_unpack_into( - Tox_Event_Group_Peer_Status *event, Bin_Unpack *bu) +static bool tox_event_group_peer_status_unpack_into(Tox_Event_Group_Peer_Status *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 3, nullptr)) { @@ -136,8 +126,7 @@ void tox_event_group_peer_status_free(Tox_Event_Group_Peer_Status *group_peer_st mem_delete(mem, group_peer_status); } -non_null() -static Tox_Event_Group_Peer_Status *tox_events_add_group_peer_status(Tox_Events *events, const Memory *mem) +static Tox_Event_Group_Peer_Status *tox_events_add_group_peer_status(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Group_Peer_Status *const group_peer_status = tox_event_group_peer_status_new(mem); @@ -170,8 +159,7 @@ bool tox_event_group_peer_status_unpack( return tox_event_group_peer_status_unpack_into(*event, bu); } -non_null() -static Tox_Event_Group_Peer_Status *tox_event_group_peer_status_alloc(void *user_data) +static Tox_Event_Group_Peer_Status *tox_event_group_peer_status_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/group_privacy_state.c b/external/toxcore/c-toxcore/toxcore/events/group_privacy_state.c index fde9e1d..9d50e50 100644 --- a/external/toxcore/c-toxcore/toxcore/events/group_privacy_state.c +++ b/external/toxcore/c-toxcore/toxcore/events/group_privacy_state.c @@ -28,9 +28,7 @@ struct Tox_Event_Group_Privacy_State { Tox_Group_Privacy_State privacy_state; }; -non_null() -static void tox_event_group_privacy_state_set_group_number(Tox_Event_Group_Privacy_State *group_privacy_state, - uint32_t group_number) +static void tox_event_group_privacy_state_set_group_number(Tox_Event_Group_Privacy_State *_Nonnull group_privacy_state, uint32_t group_number) { assert(group_privacy_state != nullptr); group_privacy_state->group_number = group_number; @@ -41,9 +39,7 @@ uint32_t tox_event_group_privacy_state_get_group_number(const Tox_Event_Group_Pr return group_privacy_state->group_number; } -non_null() -static void tox_event_group_privacy_state_set_privacy_state(Tox_Event_Group_Privacy_State *group_privacy_state, - Tox_Group_Privacy_State privacy_state) +static void tox_event_group_privacy_state_set_privacy_state(Tox_Event_Group_Privacy_State *_Nonnull group_privacy_state, Tox_Group_Privacy_State privacy_state) { assert(group_privacy_state != nullptr); group_privacy_state->privacy_state = privacy_state; @@ -54,15 +50,13 @@ Tox_Group_Privacy_State tox_event_group_privacy_state_get_privacy_state(const To return group_privacy_state->privacy_state; } -non_null() -static void tox_event_group_privacy_state_construct(Tox_Event_Group_Privacy_State *group_privacy_state) +static void tox_event_group_privacy_state_construct(Tox_Event_Group_Privacy_State *_Nonnull group_privacy_state) { *group_privacy_state = (Tox_Event_Group_Privacy_State) { 0 }; } -non_null() -static void tox_event_group_privacy_state_destruct(Tox_Event_Group_Privacy_State *group_privacy_state, const Memory *mem) +static void tox_event_group_privacy_state_destruct(Tox_Event_Group_Privacy_State *_Nonnull group_privacy_state, const Memory *_Nonnull mem) { return; } @@ -75,9 +69,7 @@ bool tox_event_group_privacy_state_pack( && tox_group_privacy_state_pack(event->privacy_state, bp); } -non_null() -static bool tox_event_group_privacy_state_unpack_into( - Tox_Event_Group_Privacy_State *event, Bin_Unpack *bu) +static bool tox_event_group_privacy_state_unpack_into(Tox_Event_Group_Privacy_State *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 2, nullptr)) { @@ -120,8 +112,7 @@ void tox_event_group_privacy_state_free(Tox_Event_Group_Privacy_State *group_pri mem_delete(mem, group_privacy_state); } -non_null() -static Tox_Event_Group_Privacy_State *tox_events_add_group_privacy_state(Tox_Events *events, const Memory *mem) +static Tox_Event_Group_Privacy_State *tox_events_add_group_privacy_state(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Group_Privacy_State *const group_privacy_state = tox_event_group_privacy_state_new(mem); @@ -154,8 +145,7 @@ bool tox_event_group_privacy_state_unpack( return tox_event_group_privacy_state_unpack_into(*event, bu); } -non_null() -static Tox_Event_Group_Privacy_State *tox_event_group_privacy_state_alloc(void *user_data) +static Tox_Event_Group_Privacy_State *tox_event_group_privacy_state_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/group_private_message.c b/external/toxcore/c-toxcore/toxcore/events/group_private_message.c index 24dd1db..d36e4c0 100644 --- a/external/toxcore/c-toxcore/toxcore/events/group_private_message.c +++ b/external/toxcore/c-toxcore/toxcore/events/group_private_message.c @@ -34,9 +34,7 @@ struct Tox_Event_Group_Private_Message { uint32_t message_id; }; -non_null() -static void tox_event_group_private_message_set_group_number(Tox_Event_Group_Private_Message *group_private_message, - uint32_t group_number) +static void tox_event_group_private_message_set_group_number(Tox_Event_Group_Private_Message *_Nonnull group_private_message, uint32_t group_number) { assert(group_private_message != nullptr); group_private_message->group_number = group_number; @@ -47,9 +45,7 @@ uint32_t tox_event_group_private_message_get_group_number(const Tox_Event_Group_ return group_private_message->group_number; } -non_null() -static void tox_event_group_private_message_set_peer_id(Tox_Event_Group_Private_Message *group_private_message, - uint32_t peer_id) +static void tox_event_group_private_message_set_peer_id(Tox_Event_Group_Private_Message *_Nonnull group_private_message, uint32_t peer_id) { assert(group_private_message != nullptr); group_private_message->peer_id = peer_id; @@ -60,9 +56,7 @@ uint32_t tox_event_group_private_message_get_peer_id(const Tox_Event_Group_Priva return group_private_message->peer_id; } -non_null() -static void tox_event_group_private_message_set_message_type(Tox_Event_Group_Private_Message *group_private_message, - Tox_Message_Type message_type) +static void tox_event_group_private_message_set_message_type(Tox_Event_Group_Private_Message *_Nonnull group_private_message, Tox_Message_Type message_type) { assert(group_private_message != nullptr); group_private_message->message_type = message_type; @@ -73,12 +67,10 @@ Tox_Message_Type tox_event_group_private_message_get_message_type(const Tox_Even return group_private_message->message_type; } -non_null(1) nullable(2) -static bool tox_event_group_private_message_set_message(Tox_Event_Group_Private_Message *group_private_message, - const uint8_t *message, uint32_t message_length) +static bool tox_event_group_private_message_set_message(Tox_Event_Group_Private_Message *_Nonnull group_private_message, + const uint8_t *_Nullable message, uint32_t message_length) { assert(group_private_message != nullptr); - if (group_private_message->message != nullptr) { free(group_private_message->message); group_private_message->message = nullptr; @@ -112,9 +104,7 @@ const uint8_t *tox_event_group_private_message_get_message(const Tox_Event_Group return group_private_message->message; } -non_null() -static void tox_event_group_private_message_set_message_id(Tox_Event_Group_Private_Message *group_private_message, - uint32_t message_id) +static void tox_event_group_private_message_set_message_id(Tox_Event_Group_Private_Message *_Nonnull group_private_message, uint32_t message_id) { assert(group_private_message != nullptr); group_private_message->message_id = message_id; @@ -125,15 +115,13 @@ uint32_t tox_event_group_private_message_get_message_id(const Tox_Event_Group_Pr return group_private_message->message_id; } -non_null() -static void tox_event_group_private_message_construct(Tox_Event_Group_Private_Message *group_private_message) +static void tox_event_group_private_message_construct(Tox_Event_Group_Private_Message *_Nonnull group_private_message) { *group_private_message = (Tox_Event_Group_Private_Message) { 0 }; } -non_null() -static void tox_event_group_private_message_destruct(Tox_Event_Group_Private_Message *group_private_message, const Memory *mem) +static void tox_event_group_private_message_destruct(Tox_Event_Group_Private_Message *_Nonnull group_private_message, const Memory *_Nonnull mem) { free(group_private_message->message); } @@ -149,9 +137,7 @@ bool tox_event_group_private_message_pack( && bin_pack_u32(bp, event->message_id); } -non_null() -static bool tox_event_group_private_message_unpack_into( - Tox_Event_Group_Private_Message *event, Bin_Unpack *bu) +static bool tox_event_group_private_message_unpack_into(Tox_Event_Group_Private_Message *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 5, nullptr)) { @@ -197,8 +183,7 @@ void tox_event_group_private_message_free(Tox_Event_Group_Private_Message *group mem_delete(mem, group_private_message); } -non_null() -static Tox_Event_Group_Private_Message *tox_events_add_group_private_message(Tox_Events *events, const Memory *mem) +static Tox_Event_Group_Private_Message *tox_events_add_group_private_message(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Group_Private_Message *const group_private_message = tox_event_group_private_message_new(mem); @@ -231,8 +216,7 @@ bool tox_event_group_private_message_unpack( return tox_event_group_private_message_unpack_into(*event, bu); } -non_null() -static Tox_Event_Group_Private_Message *tox_event_group_private_message_alloc(void *user_data) +static Tox_Event_Group_Private_Message *tox_event_group_private_message_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/group_self_join.c b/external/toxcore/c-toxcore/toxcore/events/group_self_join.c index 0703863..1fc7b96 100644 --- a/external/toxcore/c-toxcore/toxcore/events/group_self_join.c +++ b/external/toxcore/c-toxcore/toxcore/events/group_self_join.c @@ -25,9 +25,7 @@ struct Tox_Event_Group_Self_Join { uint32_t group_number; }; -non_null() -static void tox_event_group_self_join_set_group_number(Tox_Event_Group_Self_Join *group_self_join, - uint32_t group_number) +static void tox_event_group_self_join_set_group_number(Tox_Event_Group_Self_Join *_Nonnull group_self_join, uint32_t group_number) { assert(group_self_join != nullptr); group_self_join->group_number = group_number; @@ -38,15 +36,13 @@ uint32_t tox_event_group_self_join_get_group_number(const Tox_Event_Group_Self_J return group_self_join->group_number; } -non_null() -static void tox_event_group_self_join_construct(Tox_Event_Group_Self_Join *group_self_join) +static void tox_event_group_self_join_construct(Tox_Event_Group_Self_Join *_Nonnull group_self_join) { *group_self_join = (Tox_Event_Group_Self_Join) { 0 }; } -non_null() -static void tox_event_group_self_join_destruct(Tox_Event_Group_Self_Join *group_self_join, const Memory *mem) +static void tox_event_group_self_join_destruct(Tox_Event_Group_Self_Join *_Nonnull group_self_join, const Memory *_Nonnull mem) { return; } @@ -57,9 +53,7 @@ bool tox_event_group_self_join_pack( return bin_pack_u32(bp, event->group_number); } -non_null() -static bool tox_event_group_self_join_unpack_into( - Tox_Event_Group_Self_Join *event, Bin_Unpack *bu) +static bool tox_event_group_self_join_unpack_into(Tox_Event_Group_Self_Join *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); return bin_unpack_u32(bu, &event->group_number); @@ -97,8 +91,7 @@ void tox_event_group_self_join_free(Tox_Event_Group_Self_Join *group_self_join, mem_delete(mem, group_self_join); } -non_null() -static Tox_Event_Group_Self_Join *tox_events_add_group_self_join(Tox_Events *events, const Memory *mem) +static Tox_Event_Group_Self_Join *tox_events_add_group_self_join(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Group_Self_Join *const group_self_join = tox_event_group_self_join_new(mem); @@ -131,8 +124,7 @@ bool tox_event_group_self_join_unpack( return tox_event_group_self_join_unpack_into(*event, bu); } -non_null() -static Tox_Event_Group_Self_Join *tox_event_group_self_join_alloc(void *user_data) +static Tox_Event_Group_Self_Join *tox_event_group_self_join_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/group_topic.c b/external/toxcore/c-toxcore/toxcore/events/group_topic.c index f9d1a7b..396a423 100644 --- a/external/toxcore/c-toxcore/toxcore/events/group_topic.c +++ b/external/toxcore/c-toxcore/toxcore/events/group_topic.c @@ -30,9 +30,7 @@ struct Tox_Event_Group_Topic { uint32_t topic_length; }; -non_null() -static void tox_event_group_topic_set_group_number(Tox_Event_Group_Topic *group_topic, - uint32_t group_number) +static void tox_event_group_topic_set_group_number(Tox_Event_Group_Topic *_Nonnull group_topic, uint32_t group_number) { assert(group_topic != nullptr); group_topic->group_number = group_number; @@ -43,9 +41,7 @@ uint32_t tox_event_group_topic_get_group_number(const Tox_Event_Group_Topic *gro return group_topic->group_number; } -non_null() -static void tox_event_group_topic_set_peer_id(Tox_Event_Group_Topic *group_topic, - uint32_t peer_id) +static void tox_event_group_topic_set_peer_id(Tox_Event_Group_Topic *_Nonnull group_topic, uint32_t peer_id) { assert(group_topic != nullptr); group_topic->peer_id = peer_id; @@ -56,12 +52,10 @@ uint32_t tox_event_group_topic_get_peer_id(const Tox_Event_Group_Topic *group_to return group_topic->peer_id; } -non_null(1) nullable(2) -static bool tox_event_group_topic_set_topic(Tox_Event_Group_Topic *group_topic, - const uint8_t *topic, uint32_t topic_length) +static bool tox_event_group_topic_set_topic(Tox_Event_Group_Topic *_Nonnull group_topic, + const uint8_t *_Nullable topic, uint32_t topic_length) { assert(group_topic != nullptr); - if (group_topic->topic != nullptr) { free(group_topic->topic); group_topic->topic = nullptr; @@ -95,15 +89,13 @@ const uint8_t *tox_event_group_topic_get_topic(const Tox_Event_Group_Topic *grou return group_topic->topic; } -non_null() -static void tox_event_group_topic_construct(Tox_Event_Group_Topic *group_topic) +static void tox_event_group_topic_construct(Tox_Event_Group_Topic *_Nonnull group_topic) { *group_topic = (Tox_Event_Group_Topic) { 0 }; } -non_null() -static void tox_event_group_topic_destruct(Tox_Event_Group_Topic *group_topic, const Memory *mem) +static void tox_event_group_topic_destruct(Tox_Event_Group_Topic *_Nonnull group_topic, const Memory *_Nonnull mem) { free(group_topic->topic); } @@ -117,9 +109,7 @@ bool tox_event_group_topic_pack( && bin_pack_bin(bp, event->topic, event->topic_length); } -non_null() -static bool tox_event_group_topic_unpack_into( - Tox_Event_Group_Topic *event, Bin_Unpack *bu) +static bool tox_event_group_topic_unpack_into(Tox_Event_Group_Topic *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 3, nullptr)) { @@ -163,8 +153,7 @@ void tox_event_group_topic_free(Tox_Event_Group_Topic *group_topic, const Memory mem_delete(mem, group_topic); } -non_null() -static Tox_Event_Group_Topic *tox_events_add_group_topic(Tox_Events *events, const Memory *mem) +static Tox_Event_Group_Topic *tox_events_add_group_topic(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Group_Topic *const group_topic = tox_event_group_topic_new(mem); @@ -197,8 +186,7 @@ bool tox_event_group_topic_unpack( return tox_event_group_topic_unpack_into(*event, bu); } -non_null() -static Tox_Event_Group_Topic *tox_event_group_topic_alloc(void *user_data) +static Tox_Event_Group_Topic *tox_event_group_topic_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/group_topic_lock.c b/external/toxcore/c-toxcore/toxcore/events/group_topic_lock.c index a21acea..4c00031 100644 --- a/external/toxcore/c-toxcore/toxcore/events/group_topic_lock.c +++ b/external/toxcore/c-toxcore/toxcore/events/group_topic_lock.c @@ -28,9 +28,7 @@ struct Tox_Event_Group_Topic_Lock { Tox_Group_Topic_Lock topic_lock; }; -non_null() -static void tox_event_group_topic_lock_set_group_number(Tox_Event_Group_Topic_Lock *group_topic_lock, - uint32_t group_number) +static void tox_event_group_topic_lock_set_group_number(Tox_Event_Group_Topic_Lock *_Nonnull group_topic_lock, uint32_t group_number) { assert(group_topic_lock != nullptr); group_topic_lock->group_number = group_number; @@ -41,9 +39,7 @@ uint32_t tox_event_group_topic_lock_get_group_number(const Tox_Event_Group_Topic return group_topic_lock->group_number; } -non_null() -static void tox_event_group_topic_lock_set_topic_lock(Tox_Event_Group_Topic_Lock *group_topic_lock, - Tox_Group_Topic_Lock topic_lock) +static void tox_event_group_topic_lock_set_topic_lock(Tox_Event_Group_Topic_Lock *_Nonnull group_topic_lock, Tox_Group_Topic_Lock topic_lock) { assert(group_topic_lock != nullptr); group_topic_lock->topic_lock = topic_lock; @@ -54,15 +50,13 @@ Tox_Group_Topic_Lock tox_event_group_topic_lock_get_topic_lock(const Tox_Event_G return group_topic_lock->topic_lock; } -non_null() -static void tox_event_group_topic_lock_construct(Tox_Event_Group_Topic_Lock *group_topic_lock) +static void tox_event_group_topic_lock_construct(Tox_Event_Group_Topic_Lock *_Nonnull group_topic_lock) { *group_topic_lock = (Tox_Event_Group_Topic_Lock) { 0 }; } -non_null() -static void tox_event_group_topic_lock_destruct(Tox_Event_Group_Topic_Lock *group_topic_lock, const Memory *mem) +static void tox_event_group_topic_lock_destruct(Tox_Event_Group_Topic_Lock *_Nonnull group_topic_lock, const Memory *_Nonnull mem) { return; } @@ -75,9 +69,7 @@ bool tox_event_group_topic_lock_pack( && tox_group_topic_lock_pack(event->topic_lock, bp); } -non_null() -static bool tox_event_group_topic_lock_unpack_into( - Tox_Event_Group_Topic_Lock *event, Bin_Unpack *bu) +static bool tox_event_group_topic_lock_unpack_into(Tox_Event_Group_Topic_Lock *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 2, nullptr)) { @@ -120,8 +112,7 @@ void tox_event_group_topic_lock_free(Tox_Event_Group_Topic_Lock *group_topic_loc mem_delete(mem, group_topic_lock); } -non_null() -static Tox_Event_Group_Topic_Lock *tox_events_add_group_topic_lock(Tox_Events *events, const Memory *mem) +static Tox_Event_Group_Topic_Lock *tox_events_add_group_topic_lock(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Group_Topic_Lock *const group_topic_lock = tox_event_group_topic_lock_new(mem); @@ -154,8 +145,7 @@ bool tox_event_group_topic_lock_unpack( return tox_event_group_topic_lock_unpack_into(*event, bu); } -non_null() -static Tox_Event_Group_Topic_Lock *tox_event_group_topic_lock_alloc(void *user_data) +static Tox_Event_Group_Topic_Lock *tox_event_group_topic_lock_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/group_voice_state.c b/external/toxcore/c-toxcore/toxcore/events/group_voice_state.c index ebc78dc..9860254 100644 --- a/external/toxcore/c-toxcore/toxcore/events/group_voice_state.c +++ b/external/toxcore/c-toxcore/toxcore/events/group_voice_state.c @@ -28,9 +28,7 @@ struct Tox_Event_Group_Voice_State { Tox_Group_Voice_State voice_state; }; -non_null() -static void tox_event_group_voice_state_set_group_number(Tox_Event_Group_Voice_State *group_voice_state, - uint32_t group_number) +static void tox_event_group_voice_state_set_group_number(Tox_Event_Group_Voice_State *_Nonnull group_voice_state, uint32_t group_number) { assert(group_voice_state != nullptr); group_voice_state->group_number = group_number; @@ -41,9 +39,7 @@ uint32_t tox_event_group_voice_state_get_group_number(const Tox_Event_Group_Voic return group_voice_state->group_number; } -non_null() -static void tox_event_group_voice_state_set_voice_state(Tox_Event_Group_Voice_State *group_voice_state, - Tox_Group_Voice_State voice_state) +static void tox_event_group_voice_state_set_voice_state(Tox_Event_Group_Voice_State *_Nonnull group_voice_state, Tox_Group_Voice_State voice_state) { assert(group_voice_state != nullptr); group_voice_state->voice_state = voice_state; @@ -54,15 +50,13 @@ Tox_Group_Voice_State tox_event_group_voice_state_get_voice_state(const Tox_Even return group_voice_state->voice_state; } -non_null() -static void tox_event_group_voice_state_construct(Tox_Event_Group_Voice_State *group_voice_state) +static void tox_event_group_voice_state_construct(Tox_Event_Group_Voice_State *_Nonnull group_voice_state) { *group_voice_state = (Tox_Event_Group_Voice_State) { 0 }; } -non_null() -static void tox_event_group_voice_state_destruct(Tox_Event_Group_Voice_State *group_voice_state, const Memory *mem) +static void tox_event_group_voice_state_destruct(Tox_Event_Group_Voice_State *_Nonnull group_voice_state, const Memory *_Nonnull mem) { return; } @@ -75,9 +69,7 @@ bool tox_event_group_voice_state_pack( && tox_group_voice_state_pack(event->voice_state, bp); } -non_null() -static bool tox_event_group_voice_state_unpack_into( - Tox_Event_Group_Voice_State *event, Bin_Unpack *bu) +static bool tox_event_group_voice_state_unpack_into(Tox_Event_Group_Voice_State *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); if (!bin_unpack_array_fixed(bu, 2, nullptr)) { @@ -120,8 +112,7 @@ void tox_event_group_voice_state_free(Tox_Event_Group_Voice_State *group_voice_s mem_delete(mem, group_voice_state); } -non_null() -static Tox_Event_Group_Voice_State *tox_events_add_group_voice_state(Tox_Events *events, const Memory *mem) +static Tox_Event_Group_Voice_State *tox_events_add_group_voice_state(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Group_Voice_State *const group_voice_state = tox_event_group_voice_state_new(mem); @@ -154,8 +145,7 @@ bool tox_event_group_voice_state_unpack( return tox_event_group_voice_state_unpack_into(*event, bu); } -non_null() -static Tox_Event_Group_Voice_State *tox_event_group_voice_state_alloc(void *user_data) +static Tox_Event_Group_Voice_State *tox_event_group_voice_state_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/events/self_connection_status.c b/external/toxcore/c-toxcore/toxcore/events/self_connection_status.c index f66daff..223aca5 100644 --- a/external/toxcore/c-toxcore/toxcore/events/self_connection_status.c +++ b/external/toxcore/c-toxcore/toxcore/events/self_connection_status.c @@ -27,9 +27,7 @@ struct Tox_Event_Self_Connection_Status { Tox_Connection connection_status; }; -non_null() -static void tox_event_self_connection_status_set_connection_status(Tox_Event_Self_Connection_Status *self_connection_status, - Tox_Connection connection_status) +static void tox_event_self_connection_status_set_connection_status(Tox_Event_Self_Connection_Status *_Nonnull self_connection_status, Tox_Connection connection_status) { assert(self_connection_status != nullptr); self_connection_status->connection_status = connection_status; @@ -40,15 +38,13 @@ Tox_Connection tox_event_self_connection_status_get_connection_status(const Tox_ return self_connection_status->connection_status; } -non_null() -static void tox_event_self_connection_status_construct(Tox_Event_Self_Connection_Status *self_connection_status) +static void tox_event_self_connection_status_construct(Tox_Event_Self_Connection_Status *_Nonnull self_connection_status) { *self_connection_status = (Tox_Event_Self_Connection_Status) { TOX_CONNECTION_NONE }; } -non_null() -static void tox_event_self_connection_status_destruct(Tox_Event_Self_Connection_Status *self_connection_status, const Memory *mem) +static void tox_event_self_connection_status_destruct(Tox_Event_Self_Connection_Status *_Nonnull self_connection_status, const Memory *_Nonnull mem) { return; } @@ -59,9 +55,7 @@ bool tox_event_self_connection_status_pack( return tox_connection_pack(event->connection_status, bp); } -non_null() -static bool tox_event_self_connection_status_unpack_into( - Tox_Event_Self_Connection_Status *event, Bin_Unpack *bu) +static bool tox_event_self_connection_status_unpack_into(Tox_Event_Self_Connection_Status *_Nonnull event, Bin_Unpack *_Nonnull bu) { assert(event != nullptr); return tox_connection_unpack(&event->connection_status, bu); @@ -99,8 +93,7 @@ void tox_event_self_connection_status_free(Tox_Event_Self_Connection_Status *sel mem_delete(mem, self_connection_status); } -non_null() -static Tox_Event_Self_Connection_Status *tox_events_add_self_connection_status(Tox_Events *events, const Memory *mem) +static Tox_Event_Self_Connection_Status *tox_events_add_self_connection_status(Tox_Events *_Nonnull events, const Memory *_Nonnull mem) { Tox_Event_Self_Connection_Status *const self_connection_status = tox_event_self_connection_status_new(mem); @@ -133,8 +126,7 @@ bool tox_event_self_connection_status_unpack( return tox_event_self_connection_status_unpack_into(*event, bu); } -non_null() -static Tox_Event_Self_Connection_Status *tox_event_self_connection_status_alloc(void *user_data) +static Tox_Event_Self_Connection_Status *tox_event_self_connection_status_alloc(void *_Nonnull user_data) { Tox_Events_State *state = tox_events_alloc(user_data); assert(state != nullptr); diff --git a/external/toxcore/c-toxcore/toxcore/forwarding.c b/external/toxcore/c-toxcore/toxcore/forwarding.c index 6d608b5..4c7cf91 100644 --- a/external/toxcore/c-toxcore/toxcore/forwarding.c +++ b/external/toxcore/c-toxcore/toxcore/forwarding.c @@ -87,21 +87,18 @@ bool create_forward_chain_packet(const uint8_t *chain_keys, uint16_t chain_lengt return true; } -non_null() static uint16_t forwarding_packet_length(uint16_t sendback_data_len, uint16_t data_length) { const uint16_t sendback_len = sendback_data_len == 0 ? 0 : TIMED_AUTH_SIZE + sendback_data_len; return 1 + 1 + sendback_len + data_length; } -non_null(1, 4, 6) nullable(2) -static bool create_forwarding_packet(const Forwarding *forwarding, - const uint8_t *sendback_data, uint16_t sendback_data_len, - const uint8_t *data, uint16_t length, - uint8_t *packet) +static bool create_forwarding_packet(const Forwarding *_Nonnull forwarding, + const uint8_t *_Nullable sendback_data, uint16_t sendback_data_len, + const uint8_t *_Nonnull data, uint16_t length, + uint8_t *_Nonnull packet) { packet[0] = NET_PACKET_FORWARDING; - if (sendback_data_len == 0) { packet[1] = 0; memcpy(packet + 1 + 1, data, length); @@ -143,10 +140,9 @@ bool send_forwarding(const Forwarding *forwarding, const IP_Port *dest, #define FORWARD_REQUEST_MIN_PACKET_SIZE (1 + CRYPTO_PUBLIC_KEY_SIZE) -non_null(1) nullable(2, 4) -static bool handle_forward_request_dht(const Forwarding *forwarding, - const uint8_t *sendback_data, uint16_t sendback_data_len, - const uint8_t *packet, uint16_t length) +static bool handle_forward_request_dht(const Forwarding *_Nonnull forwarding, + const uint8_t *_Nullable sendback_data, uint16_t sendback_data_len, + const uint8_t *_Nullable packet, uint16_t length) { if (length < FORWARD_REQUEST_MIN_PACKET_SIZE) { return false; @@ -170,12 +166,10 @@ static bool handle_forward_request_dht(const Forwarding *forwarding, return route_packet(forwarding->dht, public_key, forwarding_packet, len) == len; } -non_null(1, 2) nullable(3, 5) -static int handle_forward_request(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, - void *userdata) +static int handle_forward_request(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nullable packet, uint16_t length, + void *_Nullable userdata) { const Forwarding *forwarding = (const Forwarding *)object; - uint8_t sendback_data[1 + MAX_PACKED_IPPORT_SIZE]; sendback_data[0] = SENDBACK_IPPORT; @@ -191,12 +185,10 @@ static int handle_forward_request(void *object, const IP_Port *source, const uin #define MIN_NONEMPTY_SENDBACK_SIZE TIMED_AUTH_SIZE #define FORWARD_REPLY_MIN_PACKET_SIZE (1 + 1 + MIN_NONEMPTY_SENDBACK_SIZE) -non_null(1, 2) nullable(3, 5) -static int handle_forward_reply(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, - void *userdata) +static int handle_forward_reply(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nullable packet, uint16_t length, + void *_Nullable userdata) { const Forwarding *forwarding = (const Forwarding *)object; - if (length < FORWARD_REPLY_MIN_PACKET_SIZE) { return 1; } @@ -265,12 +257,10 @@ static int handle_forward_reply(void *object, const IP_Port *source, const uint8 #define FORWARDING_MIN_PACKET_SIZE (1 + 1) -non_null(1, 2) nullable(3, 5) -static int handle_forwarding(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, - void *userdata) +static int handle_forwarding(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nullable packet, uint16_t length, + void *_Nullable userdata) { const Forwarding *forwarding = (const Forwarding *)object; - if (length < FORWARDING_MIN_PACKET_SIZE) { return 1; } @@ -358,7 +348,7 @@ void set_callback_forward_reply(Forwarding *forwarding, forward_reply_cb *functi forwarding->forward_reply_callback_object = object; } -Forwarding *new_forwarding(const Logger *log, const Memory *mem, const Random *rng, const Mono_Time *mono_time, DHT *dht) +Forwarding *_Nullable new_forwarding(const Logger *log, const Memory *mem, const Random *rng, const Mono_Time *mono_time, DHT *dht) { if (log == nullptr || mono_time == nullptr || dht == nullptr) { return nullptr; diff --git a/external/toxcore/c-toxcore/toxcore/forwarding.h b/external/toxcore/c-toxcore/toxcore/forwarding.h index b4431f5..ac533b3 100644 --- a/external/toxcore/c-toxcore/toxcore/forwarding.h +++ b/external/toxcore/c-toxcore/toxcore/forwarding.h @@ -30,8 +30,7 @@ extern "C" { typedef struct Forwarding Forwarding; -non_null() -DHT *forwarding_get_dht(const Forwarding *forwarding); +DHT *_Nonnull forwarding_get_dht(const Forwarding *_Nonnull forwarding); /** * @brief Send data to forwarder for forwarding via chain of dht nodes. @@ -45,10 +44,8 @@ DHT *forwarding_get_dht(const Forwarding *forwarding); * * @return true on success, false otherwise. */ -non_null() -bool send_forward_request(const Networking_Core *net, const IP_Port *forwarder, - const uint8_t *chain_keys, uint16_t chain_length, - const uint8_t *data, uint16_t data_length); +bool send_forward_request(const Networking_Core *_Nonnull net, const IP_Port *_Nonnull forwarder, const uint8_t *_Nonnull chain_keys, uint16_t chain_length, const uint8_t *_Nonnull data, + uint16_t data_length); /** Returns size of packet written by create_forward_chain_packet. */ uint16_t forward_chain_packet_size(uint16_t chain_length, uint16_t data_length); @@ -67,10 +64,7 @@ uint16_t forward_chain_packet_size(uint16_t chain_length, uint16_t data_length); * * @return true on success, false otherwise. */ -non_null() -bool create_forward_chain_packet(const uint8_t *chain_keys, uint16_t chain_length, - const uint8_t *data, uint16_t data_length, - uint8_t *packet); +bool create_forward_chain_packet(const uint8_t *_Nonnull chain_keys, uint16_t chain_length, const uint8_t *_Nonnull data, uint16_t data_length, uint8_t *_Nonnull packet); /** * @brief Send reply to forwarded packet via forwarder. @@ -79,49 +73,36 @@ bool create_forward_chain_packet(const uint8_t *chain_keys, uint16_t chain_lengt * * @return true on success, false otherwise. */ -non_null() -bool forward_reply(const Networking_Core *net, const IP_Port *forwarder, - const uint8_t *sendback, uint16_t sendback_length, - const uint8_t *data, uint16_t length); +bool forward_reply(const Networking_Core *_Nonnull net, const IP_Port *_Nonnull forwarder, const uint8_t *_Nonnull sendback, uint16_t sendback_length, const uint8_t *_Nonnull data, + uint16_t length); /** * @brief Set callback to handle a forwarded request. * To reply to the packet, callback should use `forward_reply()` to send a reply * forwarded via forwarder, passing the provided sendback. */ -typedef void forwarded_request_cb(void *object, const IP_Port *forwarder, const uint8_t *sendback, - uint16_t sendback_length, const uint8_t *data, - uint16_t length, void *userdata); -non_null(1) nullable(2, 3) -void set_callback_forwarded_request(Forwarding *forwarding, forwarded_request_cb *function, void *object); - +typedef void forwarded_request_cb(void *_Nullable object, const IP_Port *_Nonnull forwarder, const uint8_t *_Nonnull sendback, + uint16_t sendback_length, const uint8_t *_Nonnull data, + uint16_t length, void *_Nullable userdata); +void set_callback_forwarded_request(Forwarding *_Nonnull forwarding, forwarded_request_cb *_Nullable function, void *_Nullable object); /** @brief Set callback to handle a forwarded response. */ -typedef void forwarded_response_cb(void *object, const uint8_t *data, uint16_t length, void *userdata); -non_null(1) nullable(2, 3) -void set_callback_forwarded_response(Forwarding *forwarding, forwarded_response_cb *function, void *object); - +typedef void forwarded_response_cb(void *_Nullable object, const uint8_t *_Nonnull data, uint16_t length, void *_Nullable userdata); +void set_callback_forwarded_response(Forwarding *_Nonnull forwarding, forwarded_response_cb *_Nullable function, void *_Nullable object); /** @brief Send forwarding packet to dest with given sendback data and data. */ -non_null(1, 2, 5) nullable(3) -bool send_forwarding(const Forwarding *forwarding, const IP_Port *dest, - const uint8_t *sendback_data, uint16_t sendback_data_len, - const uint8_t *data, uint16_t length); - -typedef bool forward_reply_cb(void *object, const uint8_t *sendback_data, uint16_t sendback_data_len, - const uint8_t *data, uint16_t length); +bool send_forwarding(const Forwarding *_Nonnull forwarding, const IP_Port *_Nonnull dest, + const uint8_t *_Nullable sendback_data, uint16_t sendback_data_len, + const uint8_t *_Nonnull data, uint16_t length); +typedef bool forward_reply_cb(void *_Nullable object, const uint8_t *_Nullable sendback_data, uint16_t sendback_data_len, + const uint8_t *_Nonnull data, uint16_t length); /** * @brief Set callback to handle a forward reply with an otherwise unhandled * sendback. */ -non_null(1) nullable(2, 3) -void set_callback_forward_reply(Forwarding *forwarding, forward_reply_cb *function, void *object); - -non_null() -Forwarding *new_forwarding(const Logger *log, const Memory *mem, const Random *rng, const Mono_Time *mono_time, DHT *dht); - -nullable(1) -void kill_forwarding(Forwarding *forwarding); +void set_callback_forward_reply(Forwarding *_Nonnull forwarding, forward_reply_cb *_Nullable function, void *_Nullable object); +Forwarding *_Nullable new_forwarding(const Logger *_Nonnull log, const Memory *_Nonnull mem, const Random *_Nonnull rng, const Mono_Time *_Nonnull mono_time, DHT *_Nonnull dht); +void kill_forwarding(Forwarding *_Nullable forwarding); #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/external/toxcore/c-toxcore/toxcore/friend_connection.c b/external/toxcore/c-toxcore/toxcore/friend_connection.c index 78c6d4a..e3464e5 100644 --- a/external/toxcore/c-toxcore/toxcore/friend_connection.c +++ b/external/toxcore/c-toxcore/toxcore/friend_connection.c @@ -110,8 +110,7 @@ const IP_Port *friend_conn_get_dht_ip_port(const Friend_Conn *fc) * @retval true if the friendcon_id is valid. * @retval false if the friendcon_id is not valid. */ -non_null() -static bool friendconn_id_valid(const Friend_Connections *fr_c, int friendcon_id) +static bool friendconn_id_valid(const Friend_Connections *_Nonnull fr_c, int friendcon_id) { return (unsigned int)friendcon_id < fr_c->num_cons && fr_c->conns != nullptr && @@ -123,8 +122,7 @@ static bool friendconn_id_valid(const Friend_Connections *fr_c, int friendcon_id * @retval false if realloc fails. * @retval true if it succeeds. */ -non_null() -static bool realloc_friendconns(Friend_Connections *fr_c, uint32_t num) +static bool realloc_friendconns(Friend_Connections *_Nonnull fr_c, uint32_t num) { if (num == 0) { mem_delete(fr_c->mem, fr_c->conns); @@ -147,8 +145,7 @@ static bool realloc_friendconns(Friend_Connections *fr_c, uint32_t num) * @retval -1 on failure. * @return friendcon_id on success. */ -non_null() -static int create_friend_conn(Friend_Connections *fr_c) +static int create_friend_conn(Friend_Connections *_Nonnull fr_c) { for (uint32_t i = 0; i < fr_c->num_cons; ++i) { if (fr_c->conns[i].status == FRIENDCONN_STATUS_NONE) { @@ -172,8 +169,7 @@ static int create_friend_conn(Friend_Connections *fr_c) * @retval -1 on failure. * @retval 0 on success. */ -non_null() -static int wipe_friend_conn(Friend_Connections *fr_c, int friendcon_id) +static int wipe_friend_conn(Friend_Connections *_Nonnull fr_c, int friendcon_id) { if (!friendconn_id_valid(fr_c, friendcon_id)) { return -1; @@ -197,7 +193,7 @@ static int wipe_friend_conn(Friend_Connections *fr_c, int friendcon_id) return 0; } -Friend_Conn *get_conn(const Friend_Connections *fr_c, int friendcon_id) +Friend_Conn *_Nullable get_conn(const Friend_Connections *fr_c, int friendcon_id) { if (!friendconn_id_valid(fr_c, friendcon_id)) { return nullptr; @@ -230,9 +226,7 @@ int getfriend_conn_id_pk(const Friend_Connections *fr_c, const uint8_t *real_pk) * @retval -1 on failure. * @retval 0 on success. */ -non_null() -static int friend_add_tcp_relay(Friend_Connections *fr_c, int friendcon_id, const IP_Port *ip_port, - const uint8_t *public_key) +static int friend_add_tcp_relay(Friend_Connections *_Nonnull fr_c, int friendcon_id, const IP_Port *_Nonnull ip_port, const uint8_t *_Nonnull public_key) { IP_Port ipp_copy = *ip_port; @@ -268,8 +262,7 @@ static int friend_add_tcp_relay(Friend_Connections *fr_c, int friendcon_id, cons } /** Connect to number saved relays for friend. */ -non_null() -static void connect_to_saved_tcp_relays(Friend_Connections *fr_c, int friendcon_id, unsigned int number) +static void connect_to_saved_tcp_relays(Friend_Connections *_Nonnull fr_c, int friendcon_id, unsigned int number) { const Friend_Conn *const friend_con = get_conn(fr_c, friendcon_id); @@ -289,8 +282,7 @@ static void connect_to_saved_tcp_relays(Friend_Connections *fr_c, int friendcon_ } } -non_null() -static unsigned int send_relays(Friend_Connections *fr_c, int friendcon_id) +static unsigned int send_relays(Friend_Connections *_Nonnull fr_c, int friendcon_id) { Friend_Conn *const friend_con = get_conn(fr_c, friendcon_id); @@ -330,8 +322,7 @@ static unsigned int send_relays(Friend_Connections *fr_c, int friendcon_id) } /** callback for recv TCP relay nodes. */ -non_null() -static int tcp_relay_node_callback(void *object, uint32_t number, const IP_Port *ip_port, const uint8_t *public_key) +static int tcp_relay_node_callback(void *_Nonnull object, uint32_t number, const IP_Port *_Nonnull ip_port, const uint8_t *_Nonnull public_key) { Friend_Connections *fr_c = (Friend_Connections *)object; const Friend_Conn *friend_con = get_conn(fr_c, number); @@ -347,12 +338,10 @@ static int tcp_relay_node_callback(void *object, uint32_t number, const IP_Port return add_tcp_relay(fr_c->net_crypto, ip_port, public_key); } -non_null() -static int friend_new_connection(Friend_Connections *fr_c, int friendcon_id); +static int friend_new_connection(Friend_Connections *_Nonnull fr_c, int friendcon_id); /** Callback for DHT ip_port changes. */ -non_null() -static void dht_ip_callback(void *object, int32_t number, const IP_Port *ip_port) +static void dht_ip_callback(void *_Nonnull object, int32_t number, const IP_Port *_Nonnull ip_port) { Friend_Connections *const fr_c = (Friend_Connections *)object; Friend_Conn *const friend_con = get_conn(fr_c, number); @@ -375,8 +364,7 @@ static void dht_ip_callback(void *object, int32_t number, const IP_Port *ip_port } } -non_null() -static void change_dht_pk(Friend_Connections *fr_c, int friendcon_id, const uint8_t *dht_public_key) +static void change_dht_pk(Friend_Connections *_Nonnull fr_c, int friendcon_id, const uint8_t *_Nonnull dht_public_key) { Friend_Conn *const friend_con = get_conn(fr_c, friendcon_id); @@ -398,8 +386,7 @@ static void change_dht_pk(Friend_Connections *fr_c, int friendcon_id, const uint memcpy(friend_con->dht_temp_pk, dht_public_key, CRYPTO_PUBLIC_KEY_SIZE); } -non_null() -static int handle_status(void *object, int id, bool status, void *userdata) +static int handle_status(void *_Nonnull object, int id, bool status, void *_Nonnull userdata) { Friend_Connections *const fr_c = (Friend_Connections *)object; Friend_Conn *const friend_con = get_conn(fr_c, id); @@ -446,8 +433,7 @@ static int handle_status(void *object, int id, bool status, void *userdata) } /** Callback for dht public key changes. */ -non_null() -static void dht_pk_callback(void *object, int32_t number, const uint8_t *dht_public_key, void *userdata) +static void dht_pk_callback(void *_Nonnull object, int32_t number, const uint8_t *_Nonnull dht_public_key, void *_Nonnull userdata) { Friend_Connections *const fr_c = (Friend_Connections *)object; Friend_Conn *const friend_con = get_conn(fr_c, number); @@ -473,8 +459,7 @@ static void dht_pk_callback(void *object, int32_t number, const uint8_t *dht_pub onion_set_friend_dht_pubkey(fr_c->onion_c, friend_con->onion_friendnum, dht_public_key); } -non_null() -static int handle_packet(void *object, int id, const uint8_t *data, uint16_t length, void *userdata) +static int handle_packet(void *_Nonnull object, int id, const uint8_t *_Nonnull data, uint16_t length, void *_Nonnull userdata) { Friend_Connections *const fr_c = (Friend_Connections *)object; @@ -533,8 +518,7 @@ static int handle_packet(void *object, int id, const uint8_t *data, uint16_t len return 0; } -non_null() -static int handle_lossy_packet(void *object, int id, const uint8_t *data, uint16_t length, void *userdata) +static int handle_lossy_packet(void *_Nonnull object, int id, const uint8_t *_Nonnull data, uint16_t length, void *_Nonnull userdata) { const Friend_Connections *const fr_c = (const Friend_Connections *)object; @@ -565,8 +549,7 @@ static int handle_lossy_packet(void *object, int id, const uint8_t *data, uint16 return 0; } -non_null() -static int handle_new_connections(void *object, const New_Connection *n_c) +static int handle_new_connections(void *_Nonnull object, const New_Connection *_Nonnull n_c) { Friend_Connections *const fr_c = (Friend_Connections *)object; const int friendcon_id = getfriend_conn_id_pk(fr_c, n_c->public_key); @@ -638,8 +621,7 @@ static int friend_new_connection(Friend_Connections *fr_c, int friendcon_id) return 0; } -non_null() -static int send_ping(const Friend_Connections *fr_c, int friendcon_id) +static int send_ping(const Friend_Connections *_Nonnull fr_c, int friendcon_id) { Friend_Conn *const friend_con = get_conn(fr_c, friendcon_id); @@ -832,7 +814,7 @@ int new_friend_connection(Friend_Connections *fr_c, const uint8_t *real_public_k * @retval -1 on failure. * @retval 0 on success. */ -int kill_friend_connection(Friend_Connections *fr_c, int friendcon_id) +int kill_friend_connection(Friend_Connections *_Nonnull fr_c, int friendcon_id) { Friend_Conn *const friend_con = get_conn(fr_c, friendcon_id); @@ -952,8 +934,7 @@ Friend_Connections *new_friend_connections( } /** Send a LAN discovery packet every LAN_DISCOVERY_INTERVAL seconds. */ -non_null() -static void lan_discovery(Friend_Connections *fr_c) +static void lan_discovery(Friend_Connections *_Nonnull fr_c) { if (fr_c->last_lan_discovery + LAN_DISCOVERY_INTERVAL < mono_time_get(fr_c->mono_time)) { const uint16_t first = fr_c->next_lan_port; diff --git a/external/toxcore/c-toxcore/toxcore/friend_connection.h b/external/toxcore/c-toxcore/toxcore/friend_connection.h index 8c3c84f..8ab02ee 100644 --- a/external/toxcore/c-toxcore/toxcore/friend_connection.h +++ b/external/toxcore/c-toxcore/toxcore/friend_connection.h @@ -53,52 +53,45 @@ typedef enum Friendconn_Status { typedef struct Friend_Connections Friend_Connections; -non_null() Net_Crypto *friendconn_net_crypto(const Friend_Connections *fr_c); +Net_Crypto *_Nonnull friendconn_net_crypto(const Friend_Connections *_Nonnull fr_c); -/** @return friendcon_id corresponding to the real public key on success. +/** + * @return friendcon_id corresponding to the real public key on success. * @retval -1 on failure. */ -non_null() -int getfriend_conn_id_pk(const Friend_Connections *fr_c, const uint8_t *real_pk); +int getfriend_conn_id_pk(const Friend_Connections *_Nonnull fr_c, const uint8_t *_Nonnull real_pk); /** @brief Increases lock_count for the connection with friendcon_id by 1. * * @retval 0 on success. * @retval -1 on failure. */ -non_null() -int friend_connection_lock(const Friend_Connections *fr_c, int friendcon_id); +int friend_connection_lock(const Friend_Connections *_Nonnull fr_c, int friendcon_id); /** * @retval FRIENDCONN_STATUS_CONNECTED if the friend is connected. * @retval FRIENDCONN_STATUS_CONNECTING if the friend isn't connected. * @retval FRIENDCONN_STATUS_NONE on failure. */ -non_null() -unsigned int friend_con_connected(const Friend_Connections *fr_c, int friendcon_id); +unsigned int friend_con_connected(const Friend_Connections *_Nonnull fr_c, int friendcon_id); /** @brief Copy public keys associated to friendcon_id. * * @retval 0 on success. * @retval -1 on failure. */ -non_null(3) nullable(1, 2) -int get_friendcon_public_keys(uint8_t *real_pk, uint8_t *dht_temp_pk, const Friend_Connections *fr_c, int friendcon_id); - +int get_friendcon_public_keys(uint8_t *_Nullable real_pk, uint8_t *_Nullable dht_temp_pk, const Friend_Connections *_Nonnull fr_c, int friendcon_id); /** Set temp dht key for connection. */ -non_null() -void set_dht_temp_pk(Friend_Connections *fr_c, int friendcon_id, const uint8_t *dht_temp_pk, void *userdata); +void set_dht_temp_pk(Friend_Connections *_Nonnull fr_c, int friendcon_id, const uint8_t *_Nonnull dht_temp_pk, void *_Nonnull userdata); -typedef int global_status_cb(void *object, int friendcon_id, bool status, void *userdata); +typedef int global_status_cb(void *_Nullable object, int friendcon_id, bool status, void *_Nullable userdata); -typedef int fc_status_cb(void *object, int friendcon_id, bool status, void *userdata); -typedef int fc_data_cb(void *object, int friendcon_id, const uint8_t *data, uint16_t length, void *userdata); -typedef int fc_lossy_data_cb(void *object, int friendcon_id, const uint8_t *data, uint16_t length, void *userdata); +typedef int fc_status_cb(void *_Nullable object, int friendcon_id, bool status, void *_Nullable userdata); +typedef int fc_data_cb(void *_Nullable object, int friendcon_id, const uint8_t *_Nonnull data, uint16_t length, void *_Nullable userdata); +typedef int fc_lossy_data_cb(void *_Nullable object, int friendcon_id, const uint8_t *_Nonnull data, uint16_t length, void *_Nullable userdata); /** Set global status callback for friend connections. */ -non_null(1) nullable(2, 3) -void set_global_status_callback(Friend_Connections *fr_c, global_status_cb *global_status_callback, void *object); - +void set_global_status_callback(Friend_Connections *_Nonnull fr_c, global_status_cb *_Nullable global_status_callback, void *_Nullable object); /** @brief Set the callbacks for the friend connection. * @param index is the index (0 to (MAX_FRIEND_CONNECTION_CALLBACKS - 1)) we * want the callback to set in the array. @@ -106,20 +99,17 @@ void set_global_status_callback(Friend_Connections *fr_c, global_status_cb *glob * @retval 0 on success. * @retval -1 on failure */ -non_null(1) nullable(4, 5, 6, 7) -int friend_connection_callbacks(const Friend_Connections *fr_c, int friendcon_id, unsigned int index, - fc_status_cb *status_callback, - fc_data_cb *data_callback, - fc_lossy_data_cb *lossy_data_callback, - void *object, int number); - +int friend_connection_callbacks(const Friend_Connections *_Nonnull fr_c, int friendcon_id, unsigned int index, + fc_status_cb *_Nullable status_callback, + fc_data_cb *_Nullable data_callback, + fc_lossy_data_cb *_Nullable lossy_data_callback, + void *_Nullable object, int number); /** @brief return the crypt_connection_id for the connection. * * @return crypt_connection_id on success. * @retval -1 on failure. */ -non_null() -int friend_connection_crypt_connection_id(const Friend_Connections *fr_c, int friendcon_id); +int friend_connection_crypt_connection_id(const Friend_Connections *_Nonnull fr_c, int friendcon_id); /** @brief Create a new friend connection. * If one to that real public key already exists, increase lock count and return it. @@ -127,16 +117,14 @@ int friend_connection_crypt_connection_id(const Friend_Connections *fr_c, int fr * @retval -1 on failure. * @return connection id on success. */ -non_null() -int new_friend_connection(Friend_Connections *fr_c, const uint8_t *real_public_key); +int new_friend_connection(Friend_Connections *_Nonnull fr_c, const uint8_t *_Nonnull real_public_key); /** @brief Kill a friend connection. * * @retval -1 on failure. * @retval 0 on success. */ -non_null() -int kill_friend_connection(Friend_Connections *fr_c, int friendcon_id); +int kill_friend_connection(Friend_Connections *_Nonnull fr_c, int friendcon_id); /** @brief Send a Friend request packet. * @@ -144,38 +132,30 @@ int kill_friend_connection(Friend_Connections *fr_c, int friendcon_id); * @retval 0 if it sent the friend request directly to the friend. * @return the number of peers it was routed through if it did not send it directly. */ -non_null() -int send_friend_request_packet( - Friend_Connections *fr_c, int friendcon_id, uint32_t nospam_num, const uint8_t *data, uint16_t length); +int send_friend_request_packet(Friend_Connections *_Nonnull fr_c, int friendcon_id, uint32_t nospam_num, const uint8_t *_Nonnull data, uint16_t length); typedef int fr_request_cb( - void *object, const uint8_t *source_pubkey, const uint8_t *data, uint16_t length, void *userdata); + void *_Nonnull object, const uint8_t *_Nonnull source_pubkey, const uint8_t *_Nonnull data, uint16_t length, void *_Nullable userdata); /** @brief Set friend request callback. * * This function will be called every time a friend request packet is received. */ -non_null() -void set_friend_request_callback(Friend_Connections *fr_c, fr_request_cb *fr_request_callback, void *object); +void set_friend_request_callback(Friend_Connections *_Nonnull fr_c, fr_request_cb *_Nonnull fr_request_callback, void *_Nonnull object); /** Create new friend_connections instance. */ -non_null() -Friend_Connections *new_friend_connections( - const Logger *logger, const Memory *mem, const Mono_Time *mono_time, const Network *ns, - Onion_Client *onion_c, bool local_discovery_enabled); +Friend_Connections *_Nullable new_friend_connections(const Logger *_Nonnull logger, const Memory *_Nonnull mem, const Mono_Time *_Nonnull mono_time, const Network *_Nonnull ns, + Onion_Client *_Nonnull onion_c, bool local_discovery_enabled); /** main friend_connections loop. */ -non_null() -void do_friend_connections(Friend_Connections *fr_c, void *userdata); +void do_friend_connections(Friend_Connections *_Nonnull fr_c, void *_Nonnull userdata); /** Free everything related with friend_connections. */ -nullable(1) -void kill_friend_connections(Friend_Connections *fr_c); - +void kill_friend_connections(Friend_Connections *_Nullable fr_c); typedef struct Friend_Conn Friend_Conn; -non_null() Friend_Conn *get_conn(const Friend_Connections *fr_c, int friendcon_id); -non_null() int friend_conn_get_onion_friendnum(const Friend_Conn *fc); -non_null() const IP_Port *friend_conn_get_dht_ip_port(const Friend_Conn *fc); +Friend_Conn *_Nullable get_conn(const Friend_Connections *_Nonnull fr_c, int friendcon_id); +int friend_conn_get_onion_friendnum(const Friend_Conn *_Nonnull fc); +const IP_Port *_Nullable friend_conn_get_dht_ip_port(const Friend_Conn *_Nonnull fc); #endif /* C_TOXCORE_TOXCORE_FRIEND_CONNECTION_H */ diff --git a/external/toxcore/c-toxcore/toxcore/friend_requests.c b/external/toxcore/c-toxcore/toxcore/friend_requests.c index e28ce7d..0037327 100644 --- a/external/toxcore/c-toxcore/toxcore/friend_requests.c +++ b/external/toxcore/c-toxcore/toxcore/friend_requests.c @@ -78,8 +78,7 @@ void set_filter_function(Friend_Requests *fr, filter_function_cb *function, void } /** Add to list of received friend requests. */ -non_null() -static void addto_receivedlist(Friend_Requests *fr, const uint8_t *real_pk) +static void addto_receivedlist(Friend_Requests *_Nonnull fr, const uint8_t *_Nonnull real_pk) { if (fr->received.requests_index >= MAX_RECEIVED_STORED) { fr->received.requests_index = 0; @@ -94,8 +93,7 @@ static void addto_receivedlist(Friend_Requests *fr, const uint8_t *real_pk) * @retval false if it did not. * @retval true if it did. */ -non_null() -static bool request_received(const Friend_Requests *fr, const uint8_t *real_pk) +static bool request_received(const Friend_Requests *_Nonnull fr, const uint8_t *_Nonnull real_pk) { for (uint32_t i = 0; i < MAX_RECEIVED_STORED; ++i) { if (pk_equal(fr->received.requests[i], real_pk)) { @@ -111,7 +109,7 @@ static bool request_received(const Friend_Requests *fr, const uint8_t *real_pk) * @retval 0 if it removed it successfully. * @retval -1 if it didn't find it. */ -int remove_request_received(Friend_Requests *fr, const uint8_t *real_pk) +int remove_request_received(Friend_Requests *_Nonnull fr, const uint8_t *_Nonnull real_pk) { for (uint32_t i = 0; i < MAX_RECEIVED_STORED; ++i) { if (pk_equal(fr->received.requests[i], real_pk)) { @@ -123,9 +121,7 @@ int remove_request_received(Friend_Requests *fr, const uint8_t *real_pk) return -1; } -non_null() -static int friendreq_handlepacket(void *object, const uint8_t *source_pubkey, const uint8_t *data, uint16_t length, - void *userdata) +static int friendreq_handlepacket(void *_Nonnull object, const uint8_t *_Nonnull source_pubkey, const uint8_t *_Nonnull data, uint16_t length, void *_Nonnull userdata) { Friend_Requests *const fr = (Friend_Requests *)object; diff --git a/external/toxcore/c-toxcore/toxcore/friend_requests.h b/external/toxcore/c-toxcore/toxcore/friend_requests.h index c7bae81..0a31367 100644 --- a/external/toxcore/c-toxcore/toxcore/friend_requests.h +++ b/external/toxcore/c-toxcore/toxcore/friend_requests.h @@ -21,40 +21,33 @@ typedef struct Friend_Requests Friend_Requests; /** Set and get the nospam variable used to prevent one type of friend request spam. */ -non_null() void set_nospam(Friend_Requests *fr, uint32_t num); -non_null() uint32_t get_nospam(const Friend_Requests *fr); +void set_nospam(Friend_Requests *_Nonnull fr, uint32_t num); +uint32_t get_nospam(const Friend_Requests *_Nonnull fr); /** @brief Remove real_pk from received_requests list. * * @retval 0 if it removed it successfully. * @retval -1 if it didn't find it. */ -non_null() -int remove_request_received(Friend_Requests *fr, const uint8_t *real_pk); +int remove_request_received(Friend_Requests *_Nonnull fr, const uint8_t *_Nonnull real_pk); -typedef void fr_friend_request_cb(void *object, const uint8_t *public_key, const uint8_t *message, size_t length, - void *user_data); +typedef void fr_friend_request_cb(void *_Nonnull object, const uint8_t *_Nonnull public_key, const uint8_t *_Nonnull message, size_t length, + void *_Nullable user_data); /** Set the function that will be executed when a friend request for us is received. */ -non_null() -void callback_friendrequest(Friend_Requests *fr, fr_friend_request_cb *function, void *object); +void callback_friendrequest(Friend_Requests *_Nonnull fr, fr_friend_request_cb *_Nonnull function, void *_Nonnull object); -typedef int filter_function_cb(void *object, const uint8_t *public_key); +typedef int filter_function_cb(void *_Nonnull object, const uint8_t *_Nonnull public_key); /** @brief Set the function used to check if a friend request should be displayed to the user or not. * It must return 0 if the request is ok (anything else if it is bad). */ -non_null() -void set_filter_function(Friend_Requests *fr, filter_function_cb *function, void *userdata); +void set_filter_function(Friend_Requests *_Nonnull fr, filter_function_cb *_Nonnull function, void *_Nonnull userdata); /** Sets up friendreq packet handlers. */ -non_null() -void friendreq_init(Friend_Requests *fr, Friend_Connections *fr_c); +void friendreq_init(Friend_Requests *_Nonnull fr, Friend_Connections *_Nonnull fr_c); -non_null() -Friend_Requests *friendreq_new(const Memory *mem); - -nullable(1) -void friendreq_kill(Friend_Requests *fr); +Friend_Requests *_Nullable friendreq_new(const Memory *_Nonnull mem); +void friendreq_kill(Friend_Requests *_Nullable fr); #endif /* C_TOXCORE_TOXCORE_FRIEND_REQUESTS_H */ diff --git a/external/toxcore/c-toxcore/toxcore/group.c b/external/toxcore/c-toxcore/toxcore/group.c index dbc3876..4eddd9d 100644 --- a/external/toxcore/c-toxcore/toxcore/group.c +++ b/external/toxcore/c-toxcore/toxcore/group.c @@ -216,20 +216,17 @@ const Mono_Time *g_mono_time(const Group_Chats *g_c) return g_c->mono_time; } -non_null() -static bool group_id_eq(const uint8_t *a, const uint8_t *b) +static bool group_id_eq(const uint8_t *_Nonnull a, const uint8_t *_Nonnull b) { return pk_equal(a, b); } -non_null() -static bool g_title_eq(const Group_c *g, const uint8_t *title, uint8_t title_len) +static bool g_title_eq(const Group_c *_Nonnull g, const uint8_t *_Nonnull title, uint8_t title_len) { return memeq(g->title, g->title_len, title, title_len); } -non_null() -static bool g_peer_nick_eq(const Group_Peer *peer, const uint8_t *nick, uint8_t nick_len) +static bool g_peer_nick_eq(const Group_Peer *_Nonnull peer, const uint8_t *_Nonnull nick, uint8_t nick_len) { return memeq(peer->nick, peer->nick_len, nick, nick_len); } @@ -238,8 +235,7 @@ static bool g_peer_nick_eq(const Group_Peer *peer, const uint8_t *nick, uint8_t * @retval false if the groupnumber is not valid. * @retval true if the groupnumber is valid. */ -non_null() -static bool is_groupnumber_valid(const Group_Chats *g_c, uint32_t groupnumber) +static bool is_groupnumber_valid(const Group_Chats *_Nonnull g_c, uint32_t groupnumber) { return groupnumber < g_c->num_chats && g_c->chats != nullptr @@ -251,8 +247,7 @@ static bool is_groupnumber_valid(const Group_Chats *g_c, uint32_t groupnumber) * @retval false if mem_vrealloc fails. * @retval true if it succeeds. */ -non_null() -static bool realloc_conferences(Group_Chats *g_c, uint16_t num) +static bool realloc_conferences(Group_Chats *_Nonnull g_c, uint16_t num) { if (num == 0) { mem_delete(g_c->mem, g_c->chats); @@ -270,8 +265,7 @@ static bool realloc_conferences(Group_Chats *g_c, uint16_t num) return true; } -non_null() -static void setup_conference(Group_c *g) +static void setup_conference(Group_c *_Nonnull g) { *g = empty_group_c; g->maxfrozen = MAX_FROZEN_DEFAULT; @@ -282,8 +276,7 @@ static void setup_conference(Group_c *g) * @retval -1 on failure. * @return groupnumber on success. */ -non_null() -static int32_t create_group_chat(Group_Chats *g_c) +static int32_t create_group_chat(Group_Chats *_Nonnull g_c) { for (uint16_t i = 0; i < g_c->num_chats; ++i) { if (g_c->chats[i].status == GROUPCHAT_STATUS_NONE) { @@ -301,8 +294,7 @@ static int32_t create_group_chat(Group_Chats *g_c) return -1; } -non_null() -static void wipe_group_c(const Memory *mem, Group_c *g) +static void wipe_group_c(const Memory *_Nonnull mem, Group_c *_Nonnull g) { mem_delete(mem, g->frozen); mem_delete(mem, g->group); @@ -313,8 +305,7 @@ static void wipe_group_c(const Memory *mem, Group_c *g) * * @retval true on success. */ -non_null() -static bool wipe_group_chat(Group_Chats *g_c, uint32_t groupnumber) +static bool wipe_group_chat(Group_Chats *_Nonnull g_c, uint32_t groupnumber) { if (groupnumber >= g_c->num_chats || g_c->chats == nullptr) { return false; @@ -338,8 +329,7 @@ static bool wipe_group_chat(Group_Chats *g_c, uint32_t groupnumber) return true; } -non_null() -static Group_c *get_group_c(const Group_Chats *g_c, uint32_t groupnumber) +static Group_c *get_group_c(const Group_Chats *_Nonnull g_c, uint32_t groupnumber) { if (!is_groupnumber_valid(g_c, groupnumber)) { return nullptr; @@ -356,8 +346,7 @@ static Group_c *get_group_c(const Group_Chats *g_c, uint32_t groupnumber) * * TODO(irungentoo): make this more efficient. */ -non_null() -static int peer_in_group(const Group_c *g, const uint8_t *real_pk) +static int peer_in_group(const Group_c *_Nonnull g, const uint8_t *_Nonnull real_pk) { for (uint32_t i = 0; i < g->numpeers; ++i) { if (pk_equal(g->group[i].real_pk, real_pk)) { @@ -368,8 +357,7 @@ static int peer_in_group(const Group_c *g, const uint8_t *real_pk) return -1; } -non_null() -static int frozen_in_group(const Group_c *g, const uint8_t *real_pk) +static int frozen_in_group(const Group_c *_Nonnull g, const uint8_t *_Nonnull real_pk) { for (uint32_t i = 0; i < g->numfrozen; ++i) { if (pk_equal(g->frozen[i].real_pk, real_pk)) { @@ -388,8 +376,7 @@ static int frozen_in_group(const Group_c *g, const uint8_t *real_pk) * * TODO(irungentoo): make this more efficient and maybe use constant time comparisons? */ -non_null() -static int32_t get_group_num(const Group_Chats *g_c, const uint8_t type, const uint8_t *id) +static int32_t get_group_num(const Group_Chats *_Nonnull g_c, const uint8_t type, const uint8_t *_Nonnull id) { for (uint16_t i = 0; i < g_c->num_chats; ++i) { if (g_c->chats[i].type == type && group_id_eq(g_c->chats[i].id, id)) { @@ -419,8 +406,7 @@ int32_t conference_by_id(const Group_Chats *g_c, const uint8_t *id) * * TODO(irungentoo): make this more efficient. */ -non_null() -static int get_peer_index(const Group_c *g, uint16_t peer_number) +static int get_peer_index(const Group_c *_Nonnull g, uint16_t peer_number) { for (uint32_t i = 0; i < g->numpeers; ++i) { if (g->group[i].peer_number == peer_number) { @@ -431,8 +417,7 @@ static int get_peer_index(const Group_c *g, uint16_t peer_number) return -1; } -non_null() -static uint64_t calculate_comp_value(const uint8_t *pk1, const uint8_t *pk2) +static uint64_t calculate_comp_value(const uint8_t *_Nonnull pk1, const uint8_t *_Nonnull pk2) { uint64_t cmp1 = 0; uint64_t cmp2 = 0; @@ -451,8 +436,7 @@ typedef enum Groupchat_Closest_Change { GROUPCHAT_CLOSEST_CHANGE_REMOVED, } Groupchat_Closest_Change; -non_null() -static bool add_to_closest(Group_c *g, const uint8_t *real_pk, const uint8_t *temp_pk) +static bool add_to_closest(Group_c *_Nonnull g, const uint8_t *_Nonnull real_pk, const uint8_t *_Nonnull temp_pk) { if (pk_equal(g->real_pk, real_pk)) { return false; @@ -527,8 +511,7 @@ static bool add_to_closest(Group_c *g, const uint8_t *real_pk, const uint8_t *te return true; } -non_null() -static bool pk_in_closest_peers(const Group_c *g, const uint8_t *real_pk) +static bool pk_in_closest_peers(const Group_c *_Nonnull g, const uint8_t *_Nonnull real_pk) { for (unsigned int i = 0; i < DESIRED_CLOSEST; ++i) { if (!g->closest_peers[i].active) { @@ -543,11 +526,9 @@ static bool pk_in_closest_peers(const Group_c *g, const uint8_t *real_pk) return false; } -non_null() -static void remove_connection_reason(Group_Chats *g_c, Group_c *g, uint16_t i, uint8_t reason); +static void remove_connection_reason(Group_Chats *_Nonnull g_c, Group_c *_Nonnull g, uint16_t i, uint8_t reason); -non_null() -static void purge_closest(Group_Chats *g_c, uint32_t groupnumber) +static void purge_closest(Group_Chats *_Nonnull g_c, uint32_t groupnumber) { Group_c *g = get_group_c(g_c, groupnumber); @@ -573,19 +554,13 @@ static void purge_closest(Group_Chats *g_c, uint32_t groupnumber) } } -non_null() -static bool send_packet_online(const Friend_Connections *fr_c, int friendcon_id, uint16_t group_num, - uint8_t type, const uint8_t *id); +static bool send_packet_online(const Friend_Connections *_Nonnull fr_c, int friendcon_id, uint16_t group_num, uint8_t type, const uint8_t *_Nonnull id); -non_null() -static int add_conn_to_groupchat(Group_Chats *g_c, int friendcon_id, Group_c *g, uint8_t reason, - bool lock); +static int add_conn_to_groupchat(Group_Chats *_Nonnull g_c, int friendcon_id, Group_c *_Nonnull g, uint8_t reason, bool lock); -non_null(1) nullable(3) -static void add_closest_connections(Group_Chats *g_c, uint32_t groupnumber, void *userdata) +static void add_closest_connections(Group_Chats *_Nonnull g_c, uint32_t groupnumber, void *_Nullable userdata) { Group_c *g = get_group_c(g_c, groupnumber); - if (g == nullptr) { return; } @@ -628,11 +603,9 @@ static void add_closest_connections(Group_Chats *g_c, uint32_t groupnumber, void } } -non_null(1) nullable(3) -static bool connect_to_closest(Group_Chats *g_c, uint32_t groupnumber, void *userdata) +static bool connect_to_closest(Group_Chats *_Nonnull g_c, uint32_t groupnumber, void *_Nullable userdata) { Group_c *g = get_group_c(g_c, groupnumber); - if (g == nullptr) { return false; } @@ -656,8 +629,7 @@ static bool connect_to_closest(Group_Chats *g_c, uint32_t groupnumber, void *use return true; } -non_null() -static int get_frozen_index(const Group_c *g, uint16_t peer_number) +static int get_frozen_index(const Group_c *_Nonnull g, uint16_t peer_number) { for (uint32_t i = 0; i < g->numfrozen; ++i) { if (g->frozen[i].peer_number == peer_number) { @@ -668,8 +640,7 @@ static int get_frozen_index(const Group_c *g, uint16_t peer_number) return -1; } -non_null() -static bool delete_frozen(const Memory *mem, Group_c *g, uint32_t frozen_index) +static bool delete_frozen(const Memory *_Nonnull mem, Group_c *_Nonnull g, uint32_t frozen_index) { if (frozen_index >= g->numfrozen) { return false; @@ -702,11 +673,9 @@ static bool delete_frozen(const Memory *mem, Group_c *g, uint32_t frozen_index) * @return peer index if peer is in the conference. * @retval -1 otherwise, and on error. */ -non_null(1) nullable(4) -static int note_peer_active(Group_Chats *g_c, uint32_t groupnumber, uint16_t peer_number, void *userdata) +static int note_peer_active(Group_Chats *_Nonnull g_c, uint32_t groupnumber, uint16_t peer_number, void *_Nullable userdata) { Group_c *g = get_group_c(g_c, groupnumber); - if (g == nullptr) { return -1; } @@ -758,14 +727,10 @@ static int note_peer_active(Group_Chats *g_c, uint32_t groupnumber, uint16_t pee return thawed_index; } -non_null(1) nullable(4) -static bool delpeer(Group_Chats *g_c, uint32_t groupnumber, int peer_index, void *userdata); - -non_null(1, 3) nullable(4) -static void delete_any_peer_with_pk(Group_Chats *g_c, uint32_t groupnumber, const uint8_t *real_pk, void *userdata) +static bool delpeer(Group_Chats *_Nonnull g_c, uint32_t groupnumber, int peer_index, void *_Nullable userdata); +static void delete_any_peer_with_pk(Group_Chats *_Nonnull g_c, uint32_t groupnumber, const uint8_t *_Nonnull real_pk, void *_Nullable userdata) { Group_c *g = get_group_c(g_c, groupnumber); - if (g == nullptr) { return; } @@ -795,12 +760,10 @@ static void delete_any_peer_with_pk(Group_Chats *g_c, uint32_t groupnumber, cons * @return peer_index if success or peer already in chat. * @retval -1 if error. */ -non_null(1, 3, 4) nullable(6) -static int addpeer(Group_Chats *g_c, uint32_t groupnumber, const uint8_t *real_pk, const uint8_t *temp_pk, - uint16_t peer_number, void *userdata, bool fresh, bool do_gc_callback) +static int addpeer(Group_Chats *_Nonnull g_c, uint32_t groupnumber, const uint8_t *_Nonnull real_pk, const uint8_t *_Nonnull temp_pk, + uint16_t peer_number, void *_Nullable userdata, bool fresh, bool do_gc_callback) { Group_c *g = get_group_c(g_c, groupnumber); - if (g == nullptr) { return -1; } @@ -871,8 +834,7 @@ static int addpeer(Group_Chats *g_c, uint32_t groupnumber, const uint8_t *real_p return new_index; } -non_null() -static void remove_connection(Group_Chats *g_c, Group_c *g, uint16_t i) +static void remove_connection(Group_Chats *_Nonnull g_c, Group_c *_Nonnull g, uint16_t i) { if ((g->connections[i].reasons & GROUPCHAT_CONNECTION_REASON_INTRODUCER) != 0) { --g->num_introducer_connections; @@ -882,8 +844,7 @@ static void remove_connection(Group_Chats *g_c, Group_c *g, uint16_t i) g->connections[i].type = GROUPCHAT_CONNECTION_NONE; } -non_null() -static void remove_from_closest(Group_c *g, int peer_index) +static void remove_from_closest(Group_c *_Nonnull g, int peer_index) { for (uint32_t i = 0; i < DESIRED_CLOSEST; ++i) { if (g->closest_peers[i].active @@ -958,8 +919,7 @@ static bool delpeer(Group_Chats *g_c, uint32_t groupnumber, int peer_index, void } /** Order peers with friends first and with more recently active earlier */ -non_null() -static bool group_peer_less_handler(const void *object, const void *a, const void *b) +static bool group_peer_less_handler(const void *_Nonnull object, const void *_Nonnull a, const void *_Nonnull b) { const Group_Peer *pa = (const Group_Peer *)a; const Group_Peer *pb = (const Group_Peer *)b; @@ -971,30 +931,26 @@ static bool group_peer_less_handler(const void *object, const void *a, const voi return cmp_uint(pb->last_active, pa->last_active) < 0; } -non_null() -static const void *group_peer_get_handler(const void *arr, uint32_t index) +static const void *group_peer_get_handler(const void *_Nonnull arr, uint32_t index) { const Group_Peer *entries = (const Group_Peer *)arr; return &entries[index]; } -non_null() -static void group_peer_set_handler(void *arr, uint32_t index, const void *val) +static void group_peer_set_handler(void *_Nonnull arr, uint32_t index, const void *_Nonnull val) { Group_Peer *entries = (Group_Peer *)arr; const Group_Peer *entry = (const Group_Peer *)val; entries[index] = *entry; } -non_null() -static void *group_peer_subarr_handler(void *arr, uint32_t index, uint32_t size) +static void *group_peer_subarr_handler(void *_Nonnull arr, uint32_t index, uint32_t size) { Group_Peer *entries = (Group_Peer *)arr; return &entries[index]; } -non_null() -static void *group_peer_alloc_handler(const void *object, uint32_t size) +static void *group_peer_alloc_handler(const void *_Nonnull object, uint32_t size) { const Memory *mem = (const Memory *)object; Group_Peer *tmp = (Group_Peer *)mem_valloc(mem, size, sizeof(Group_Peer)); @@ -1006,8 +962,7 @@ static void *group_peer_alloc_handler(const void *object, uint32_t size) return tmp; } -non_null() -static void group_peer_delete_handler(const void *object, void *arr, uint32_t size) +static void group_peer_delete_handler(const void *_Nonnull object, void *_Nonnull arr, uint32_t size) { const Memory *mem = (const Memory *)object; mem_delete(mem, arr); @@ -1026,8 +981,7 @@ static const Sort_Funcs group_peer_cmp_funcs = { * * @retval true if any frozen peers are removed. */ -non_null() -static bool delete_old_frozen(Group_c *g, const Memory *mem) +static bool delete_old_frozen(Group_c *_Nonnull g, const Memory *_Nonnull mem) { if (g->numfrozen <= g->maxfrozen) { return false; @@ -1055,14 +1009,11 @@ static bool delete_old_frozen(Group_c *g, const Memory *mem) return true; } -non_null() -static bool try_send_rejoin(Group_Chats *g_c, Group_c *g, const uint8_t *real_pk); +static bool try_send_rejoin(Group_Chats *_Nonnull g_c, Group_c *_Nonnull g, const uint8_t *_Nonnull real_pk); -non_null(1) nullable(4) -static bool freeze_peer(Group_Chats *g_c, uint32_t groupnumber, int peer_index, void *userdata) +static bool freeze_peer(Group_Chats *_Nonnull g_c, uint32_t groupnumber, int peer_index, void *_Nullable userdata) { Group_c *g = get_group_c(g_c, groupnumber); - if (g == nullptr) { return false; } @@ -1098,9 +1049,8 @@ static bool freeze_peer(Group_Chats *g_c, uint32_t groupnumber, int peer_index, * * @retval true on success. */ -non_null(1, 4) nullable(6) -static bool setnick(Group_Chats *g_c, uint32_t groupnumber, int peer_index, const uint8_t *nick, uint16_t nick_len, - void *userdata, bool do_gc_callback) +static bool setnick(Group_Chats *_Nonnull g_c, uint32_t groupnumber, int peer_index, const uint8_t *_Nonnull nick, uint16_t nick_len, + void *_Nullable userdata, bool do_gc_callback) { if (nick_len > MAX_NAME_LENGTH) { return false; @@ -1136,9 +1086,8 @@ static bool setnick(Group_Chats *g_c, uint32_t groupnumber, int peer_index, cons * * @retval true on success. */ -non_null(1, 4) nullable(6) -static bool settitle(Group_Chats *g_c, uint32_t groupnumber, int peer_index, const uint8_t *title, uint8_t title_len, - void *userdata) +static bool settitle(Group_Chats *_Nonnull g_c, uint32_t groupnumber, int peer_index, const uint8_t *_Nonnull title, uint8_t title_len, + void *_Nullable userdata) { if (title_len > MAX_NAME_LENGTH || title_len == 0) { return false; @@ -1168,11 +1117,9 @@ static bool settitle(Group_Chats *g_c, uint32_t groupnumber, int peer_index, con } /** Check if the group has no online connection, and freeze all peers if so */ -non_null(1) nullable(3) -static void check_disconnected(Group_Chats *g_c, uint32_t groupnumber, void *userdata) +static void check_disconnected(Group_Chats *_Nonnull g_c, uint32_t groupnumber, void *_Nullable userdata) { const Group_c *g = get_group_c(g_c, groupnumber); - if (g == nullptr) { return; } @@ -1190,12 +1137,10 @@ static void check_disconnected(Group_Chats *g_c, uint32_t groupnumber, void *use } } -non_null(1) nullable(5) -static void set_conns_type_connections(Group_Chats *g_c, uint32_t groupnumber, int friendcon_id, uint8_t type, - void *userdata) +static void set_conns_type_connections(Group_Chats *_Nonnull g_c, uint32_t groupnumber, int friendcon_id, uint8_t type, + void *_Nullable userdata) { Group_c *g = get_group_c(g_c, groupnumber); - if (g == nullptr) { return; } @@ -1219,16 +1164,14 @@ static void set_conns_type_connections(Group_Chats *g_c, uint32_t groupnumber, i } /** Set the type for all connections with friendcon_id */ -non_null(1) nullable(4) -static void set_conns_status_groups(Group_Chats *g_c, int friendcon_id, uint8_t type, void *userdata) +static void set_conns_status_groups(Group_Chats *_Nonnull g_c, int friendcon_id, uint8_t type, void *_Nullable userdata) { for (uint16_t i = 0; i < g_c->num_chats; ++i) { set_conns_type_connections(g_c, i, friendcon_id, type, userdata); } } -non_null() -static void rejoin_frozen_friend(Group_Chats *g_c, int friendcon_id) +static void rejoin_frozen_friend(Group_Chats *_Nonnull g_c, int friendcon_id) { uint8_t real_pk[CRYPTO_PUBLIC_KEY_SIZE]; get_friendcon_public_keys(real_pk, nullptr, g_c->fr_c, friendcon_id); @@ -1249,11 +1192,9 @@ static void rejoin_frozen_friend(Group_Chats *g_c, int friendcon_id) } } -non_null(1) nullable(4) -static int g_handle_any_status(void *object, int friendcon_id, bool status, void *userdata) +static int g_handle_any_status(void *_Nonnull object, int friendcon_id, bool status, void *_Nullable userdata) { Group_Chats *g_c = (Group_Chats *)object; - if (status) { rejoin_frozen_friend(g_c, friendcon_id); } @@ -1261,11 +1202,9 @@ static int g_handle_any_status(void *object, int friendcon_id, bool status, void return 0; } -non_null(1) nullable(4) -static int g_handle_status(void *object, int friendcon_id, bool status, void *userdata) +static int g_handle_status(void *_Nonnull object, int friendcon_id, bool status, void *_Nullable userdata) { Group_Chats *g_c = (Group_Chats *)object; - if (status) { /* Went online */ set_conns_status_groups(g_c, friendcon_id, GROUPCHAT_CONNECTION_ONLINE, userdata); } else { /* Went offline */ @@ -1276,11 +1215,8 @@ static int g_handle_status(void *object, int friendcon_id, bool status, void *us return 0; } -non_null(1, 3) nullable(5) -static int g_handle_packet(void *object, int friendcon_id, const uint8_t *data, uint16_t length, void *userdata); -non_null(1, 3) nullable(5) -static int handle_lossy(void *object, int friendcon_id, const uint8_t *data, uint16_t length, void *userdata); - +static int g_handle_packet(void *_Nonnull object, int friendcon_id, const uint8_t *_Nonnull data, uint16_t length, void *_Nullable userdata); +static int handle_lossy(void *_Nonnull object, int friendcon_id, const uint8_t *_Nonnull data, uint16_t length, void *_Nullable userdata); /** @brief Add friend to group chat. * * @return connections index on success @@ -1333,8 +1269,7 @@ static int add_conn_to_groupchat(Group_Chats *g_c, int friendcon_id, Group_c *g, return ind; } -non_null() -static bool send_peer_introduced(const Group_Chats *g_c, int friendcon_id, uint16_t group_num); +static bool send_peer_introduced(const Group_Chats *_Nonnull g_c, int friendcon_id, uint16_t group_num); /** @brief Removes reason for keeping connection. * @@ -1397,8 +1332,7 @@ int add_groupchat(Group_Chats *g_c, const Random *rng, uint8_t type) return groupnumber; } -non_null() -static bool group_leave(const Group_Chats *g_c, uint32_t groupnumber, bool permanent); +static bool group_leave(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, bool permanent); /** @brief Delete a groupchat from the chats array, informing the group first as * appropriate. @@ -1438,8 +1372,7 @@ bool del_groupchat(Group_Chats *g_c, uint32_t groupnumber, bool leave_permanentl return wipe_group_chat(g_c, groupnumber); } -non_null() -static const Group_Peer *peer_in_list(const Group_c *g, uint32_t peernumber, bool frozen) +static const Group_Peer *peer_in_list(const Group_c *_Nonnull g, uint32_t peernumber, bool frozen) { const Group_Peer *list = frozen ? g->frozen : g->group; const uint32_t num = frozen ? g->numfrozen : g->numpeers; @@ -1658,9 +1591,7 @@ bool conference_get_id(const Group_Chats *g_c, uint32_t groupnumber, uint8_t *id * @retval true on success * @retval false on failure */ -non_null() -static bool send_packet_group_peer(const Friend_Connections *fr_c, int friendcon_id, uint8_t packet_id, - uint16_t group_num, const uint8_t *data, uint16_t length) +static bool send_packet_group_peer(const Friend_Connections *_Nonnull fr_c, int friendcon_id, uint8_t packet_id, uint16_t group_num, const uint8_t *_Nonnull data, uint16_t length) { if (1 + sizeof(uint16_t) + length > MAX_CRYPTO_DATA_SIZE) { return false; @@ -1681,9 +1612,7 @@ static bool send_packet_group_peer(const Friend_Connections *fr_c, int friendcon * @retval true on success * @retval false on failure */ -non_null() -static bool send_lossy_group_peer(const Friend_Connections *fr_c, int friendcon_id, uint8_t packet_id, - uint16_t group_num, const uint8_t *data, uint16_t length) +static bool send_lossy_group_peer(const Friend_Connections *_Nonnull fr_c, int friendcon_id, uint8_t packet_id, uint16_t group_num, const uint8_t *_Nonnull data, uint16_t length) { if (1 + sizeof(uint16_t) + length > MAX_CRYPTO_DATA_SIZE) { return false; @@ -1759,12 +1688,9 @@ static bool try_send_rejoin(Group_Chats *g_c, Group_c *g, const uint8_t *real_pk return true; } -non_null() -static bool send_peer_query(const Group_Chats *g_c, int friendcon_id, uint16_t group_num); +static bool send_peer_query(const Group_Chats *_Nonnull g_c, int friendcon_id, uint16_t group_num); -non_null() -static bool send_invite_response(Group_Chats *g_c, int groupnumber, uint32_t friendnumber, const uint8_t *data, - uint16_t length); +static bool send_invite_response(Group_Chats *_Nonnull g_c, int groupnumber, uint32_t friendnumber, const uint8_t *_Nonnull data, uint16_t length); /** @brief Join a group (we need to have been invited first). * @@ -1972,15 +1898,12 @@ int callback_groupchat_delete(const Group_Chats *g_c, uint32_t groupnumber, grou return 0; } -non_null(1) nullable(4) -static int send_message_group(const Group_Chats *g_c, uint32_t groupnumber, uint8_t message_id, const uint8_t *data, +static int send_message_group(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, uint8_t message_id, const uint8_t *_Nullable data, uint16_t len); - /** @brief send a ping message * return true on success */ -non_null() -static bool group_ping_send(const Group_Chats *g_c, uint32_t groupnumber) +static bool group_ping_send(const Group_Chats *_Nonnull g_c, uint32_t groupnumber) { return send_message_group(g_c, groupnumber, GROUP_MESSAGE_PING_ID, nullptr, 0) > 0; } @@ -1988,9 +1911,7 @@ static bool group_ping_send(const Group_Chats *g_c, uint32_t groupnumber) /** @brief send a new_peer message * return true on success */ -non_null() -static bool group_new_peer_send(const Group_Chats *g_c, uint32_t groupnumber, uint16_t peer_num, const uint8_t *real_pk, - const uint8_t *temp_pk) +static bool group_new_peer_send(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, uint16_t peer_num, const uint8_t *_Nonnull real_pk, const uint8_t *_Nonnull temp_pk) { uint8_t packet[GROUP_MESSAGE_NEW_PEER_LENGTH]; @@ -2005,8 +1926,7 @@ static bool group_new_peer_send(const Group_Chats *g_c, uint32_t groupnumber, ui /** @brief send a kill_peer message * return true on success */ -non_null() -static bool group_kill_peer_send(const Group_Chats *g_c, uint32_t groupnumber, uint16_t peer_num) +static bool group_kill_peer_send(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, uint16_t peer_num) { uint8_t packet[GROUP_MESSAGE_KILL_PEER_LENGTH]; @@ -2019,8 +1939,7 @@ static bool group_kill_peer_send(const Group_Chats *g_c, uint32_t groupnumber, u /** @brief send a freeze_peer message * return true on success */ -non_null() -static bool group_freeze_peer_send(const Group_Chats *g_c, uint32_t groupnumber, uint16_t peer_num) +static bool group_freeze_peer_send(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, uint16_t peer_num) { uint8_t packet[GROUP_MESSAGE_KILL_PEER_LENGTH]; @@ -2033,8 +1952,7 @@ static bool group_freeze_peer_send(const Group_Chats *g_c, uint32_t groupnumber, /** @brief send a name message * return true on success */ -non_null() -static bool group_name_send(const Group_Chats *g_c, uint32_t groupnumber, const uint8_t *nick, uint16_t nick_len) +static bool group_name_send(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, const uint8_t *_Nonnull nick, uint16_t nick_len) { if (nick_len > MAX_NAME_LENGTH) { return false; @@ -2141,8 +2059,7 @@ int group_title_get(const Group_Chats *g_c, uint32_t groupnumber, uint8_t *title return g->title_len; } -non_null() -static bool get_peer_number(const Group_c *g, const uint8_t *real_pk, uint16_t *peer_number) +static bool get_peer_number(const Group_c *_Nonnull g, const uint8_t *_Nonnull real_pk, uint16_t *_Nonnull peer_number) { const int peer_index = peer_in_group(g, real_pk); @@ -2161,12 +2078,10 @@ static bool get_peer_number(const Group_c *g, const uint8_t *real_pk, uint16_t * return false; } -non_null(1, 3) nullable(5) -static void handle_friend_invite_packet(Messenger *m, uint32_t friend_number, const uint8_t *cookie, uint16_t length, - void *user_data) +static void handle_friend_invite_packet(Messenger *_Nonnull m, uint32_t friend_number, const uint8_t *_Nonnull cookie, uint16_t length, + void *_Nullable user_data) { Group_Chats *g_c = m->conferences_object; - if (length <= 1) { return; } @@ -2289,8 +2204,7 @@ static void handle_friend_invite_packet(Messenger *m, uint32_t friend_number, co * return index on success * return -1 on failure. */ -non_null() -static int friend_in_connections(const Group_c *g, int friendcon_id) +static int friend_in_connections(const Group_c *_Nonnull g, int friendcon_id) { for (unsigned int i = 0; i < MAX_GROUP_CONNECTIONS; ++i) { if (g->connections[i].type == GROUPCHAT_CONNECTION_NONE) { @@ -2306,8 +2220,7 @@ static int friend_in_connections(const Group_c *g, int friendcon_id) } /** return number of connections. */ -non_null() -static unsigned int count_connected(const Group_c *g) +static unsigned int count_connected(const Group_c *_Nonnull g) { unsigned int count = 0; @@ -2333,11 +2246,9 @@ static bool send_packet_online(const Friend_Connections *fr_c, int friendcon_id, sizeof(packet), false) != -1; } -non_null() -static bool ping_groupchat(const Group_Chats *g_c, uint32_t groupnumber); +static bool ping_groupchat(const Group_Chats *_Nonnull g_c, uint32_t groupnumber); -non_null() -static int handle_packet_online(const Group_Chats *g_c, int friendcon_id, const uint8_t *data, uint16_t length) +static int handle_packet_online(const Group_Chats *_Nonnull g_c, int friendcon_id, const uint8_t *_Nonnull data, uint16_t length) { if (length != ONLINE_PACKET_DATA_SIZE) { return -1; @@ -2396,9 +2307,8 @@ static int handle_packet_online(const Group_Chats *g_c, int friendcon_id, const return 0; } -non_null(1, 3) nullable(5) -static int handle_packet_rejoin(Group_Chats *g_c, int friendcon_id, const uint8_t *data, uint16_t length, - void *userdata) +static int handle_packet_rejoin(Group_Chats *_Nonnull g_c, int friendcon_id, const uint8_t *_Nonnull data, uint16_t length, + void *_Nullable userdata) { if (length < 1 + GROUP_ID_LENGTH) { return -1; @@ -2461,8 +2371,7 @@ static bool send_peer_query(const Group_Chats *g_c, int friendcon_id, uint16_t g * @return number of peers sent on success. * @retval 0 on failure. */ -non_null() -static unsigned int send_peers(const Group_Chats *g_c, const Group_c *g, int friendcon_id, uint16_t group_num) +static unsigned int send_peers(const Group_Chats *_Nonnull g_c, const Group_c *_Nonnull g, int friendcon_id, uint16_t group_num) { uint8_t response_packet[MAX_CRYPTO_DATA_SIZE - (1 + sizeof(uint16_t))]; response_packet[0] = PEER_RESPONSE_ID; @@ -2513,9 +2422,8 @@ static unsigned int send_peers(const Group_Chats *g_c, const Group_c *g, int fri return sent; } -non_null(1, 3) nullable(5) -static int handle_send_peers(Group_Chats *g_c, uint32_t groupnumber, const uint8_t *data, uint16_t length, - void *userdata) +static int handle_send_peers(Group_Chats *_Nonnull g_c, uint32_t groupnumber, const uint8_t *_Nonnull data, uint16_t length, + void *_Nullable userdata) { if (length == 0) { return -1; @@ -2571,9 +2479,8 @@ static int handle_send_peers(Group_Chats *g_c, uint32_t groupnumber, const uint8 return 0; } -non_null(1, 3) nullable(6) -static void handle_direct_packet(Group_Chats *g_c, uint32_t groupnumber, const uint8_t *data, uint16_t length, - uint32_t connection_index, void *userdata) +static void handle_direct_packet(Group_Chats *_Nonnull g_c, uint32_t groupnumber, const uint8_t *_Nonnull data, uint16_t length, + uint32_t connection_index, void *_Nullable userdata) { if (length == 0) { return; @@ -2621,9 +2528,7 @@ static void handle_direct_packet(Group_Chats *g_c, uint32_t groupnumber, const u * * @return number of messages sent. */ -non_null() -static unsigned int send_message_all_connections(const Group_Chats *g_c, const Group_c *g, const uint8_t *data, - uint16_t length, int receiver) +static unsigned int send_message_all_connections(const Group_Chats *_Nonnull g_c, const Group_c *_Nonnull g, const uint8_t *_Nonnull data, uint16_t length, int receiver) { uint16_t sent = 0; @@ -2651,9 +2556,7 @@ static unsigned int send_message_all_connections(const Group_Chats *g_c, const G * * @return number of messages sent. */ -non_null() -static unsigned int send_lossy_all_connections(const Group_Chats *g_c, const Group_c *g, const uint8_t *data, - uint16_t length, int receiver) +static unsigned int send_lossy_all_connections(const Group_Chats *_Nonnull g_c, const Group_c *_Nonnull g, const uint8_t *_Nonnull data, uint16_t length, int receiver) { unsigned int sent = 0; unsigned int num_connected_closest = 0; @@ -2829,8 +2732,7 @@ int send_group_lossy_packet(const Group_Chats *g_c, uint32_t groupnumber, const return 0; } -non_null() -static Message_Info *find_message_slot_or_reject(uint32_t message_number, uint8_t message_id, Group_Peer *peer) +static Message_Info *find_message_slot_or_reject(uint32_t message_number, uint8_t message_id, Group_Peer *_Nonnull peer) { const bool ignore_older = message_id == GROUP_MESSAGE_NAME_ID || message_id == GROUP_MESSAGE_TITLE_ID; @@ -2858,8 +2760,7 @@ static Message_Info *find_message_slot_or_reject(uint32_t message_number, uint8_ * @retval true if message should be processed. * @retval false otherwise. */ -non_null() -static bool check_message_info(uint32_t message_number, uint8_t message_id, Group_Peer *peer) +static bool check_message_info(uint32_t message_number, uint8_t message_id, Group_Peer *_Nonnull peer) { Message_Info *const i = find_message_slot_or_reject(message_number, message_id, peer); @@ -2883,9 +2784,8 @@ static bool check_message_info(uint32_t message_number, uint8_t message_id, Grou return true; } -non_null(1, 3) nullable(6) -static void handle_message_packet_group(Group_Chats *g_c, uint32_t groupnumber, const uint8_t *data, uint16_t length, - uint32_t connection_index, void *userdata) +static void handle_message_packet_group(Group_Chats *_Nonnull g_c, uint32_t groupnumber, const uint8_t *_Nonnull data, uint16_t length, + uint32_t connection_index, void *_Nullable userdata) { if (length < sizeof(uint16_t) + sizeof(uint32_t) + 1) { return; @@ -3115,8 +3015,7 @@ static int g_handle_packet(void *object, int friendcon_id, const uint8_t *data, * * TODO(irungentoo): test this */ -non_null() -static int lossy_packet_not_received(const Group_c *g, int peer_index, uint16_t message_number) +static int lossy_packet_not_received(const Group_c *_Nonnull g, int peer_index, uint16_t message_number) { if (peer_index == -1) { return -1; @@ -3337,11 +3236,9 @@ static bool ping_groupchat(const Group_Chats *g_c, uint32_t groupnumber) /** Seconds of inactivity after which to freeze a peer */ #define FREEZE_TIMEOUT (GROUP_PING_INTERVAL * 3) -non_null(1) nullable(3) -static bool groupchat_freeze_timedout(Group_Chats *g_c, uint32_t groupnumber, void *userdata) +static bool groupchat_freeze_timedout(Group_Chats *_Nonnull g_c, uint32_t groupnumber, void *_Nullable userdata) { Group_c *g = get_group_c(g_c, groupnumber); - if (g == nullptr) { return false; } @@ -3364,8 +3261,7 @@ static bool groupchat_freeze_timedout(Group_Chats *g_c, uint32_t groupnumber, vo } /** Push non-empty slots to start. */ -non_null() -static void squash_connections(Group_c *g) +static void squash_connections(Group_c *_Nonnull g) { uint16_t num_connected = 0; @@ -3383,8 +3279,7 @@ static void squash_connections(Group_c *g) #define MIN_EMPTY_CONNECTIONS (1 + MAX_GROUP_CONNECTIONS / 10) -non_null() -static uint16_t empty_connection_count(const Group_c *g) +static uint16_t empty_connection_count(const Group_c *_Nonnull g) { uint16_t to_clear = MIN_EMPTY_CONNECTIONS; @@ -3408,8 +3303,7 @@ static uint16_t empty_connection_count(const Group_c *g) * This invalidates connections array indices (which is * why we do this periodically rather than on adding a connection). */ -non_null() -static void clean_connections(Group_Chats *g_c, Group_c *g) +static void clean_connections(Group_Chats *_Nonnull g_c, Group_c *_Nonnull g) { for (uint16_t to_clear = empty_connection_count(g); to_clear > 0; --to_clear) { // Remove a connection. Prefer non-closest connections, and given @@ -3460,14 +3354,12 @@ void send_name_all_groups(const Group_Chats *g_c) #define SAVED_PEER_SIZE_CONSTANT (2 * CRYPTO_PUBLIC_KEY_SIZE + sizeof(uint16_t) + sizeof(uint64_t) + 1) -non_null() -static uint32_t saved_peer_size(const Group_Peer *peer) +static uint32_t saved_peer_size(const Group_Peer *_Nonnull peer) { return SAVED_PEER_SIZE_CONSTANT + peer->nick_len; } -non_null() -static uint8_t *save_peer(const Group_Peer *peer, uint8_t *data) +static uint8_t *save_peer(const Group_Peer *_Nonnull peer, uint8_t *_Nonnull data) { memcpy(data, peer->real_pk, CRYPTO_PUBLIC_KEY_SIZE); data += CRYPTO_PUBLIC_KEY_SIZE; @@ -3494,8 +3386,7 @@ static uint8_t *save_peer(const Group_Peer *peer, uint8_t *data) #define SAVED_CONF_SIZE_CONSTANT (1 + GROUP_ID_LENGTH + sizeof(uint32_t) \ + sizeof(uint16_t) + sizeof(uint16_t) + sizeof(uint32_t) + 1) -non_null() -static uint32_t saved_conf_size(const Group_c *g) +static uint32_t saved_conf_size(const Group_c *_Nonnull g) { uint32_t len = SAVED_CONF_SIZE_CONSTANT + g->title_len; @@ -3519,8 +3410,7 @@ static uint32_t saved_conf_size(const Group_c *g) #define SAVE_OFFSET_MESSAGE_NUMBER (1 << 16) #define SAVE_OFFSET_LOSSY_MESSAGE_NUMBER (1 << 13) -non_null() -static uint8_t *save_conf(const Group_c *g, uint8_t *data) +static uint8_t *save_conf(const Group_c *_Nonnull g, uint8_t *_Nonnull data) { *data = g->type; ++data; @@ -3564,8 +3454,7 @@ static uint8_t *save_conf(const Group_c *g, uint8_t *data) return data; } -non_null() -static uint32_t conferences_section_size(const Group_Chats *g_c) +static uint32_t conferences_section_size(const Group_Chats *_Nonnull g_c) { uint32_t len = 0; @@ -3613,8 +3502,7 @@ uint8_t *conferences_save(const Group_Chats *g_c, uint8_t *data) * @param length Length of data * @return 0 on error, number of consumed bytes otherwise */ -non_null() -static uint32_t load_group(Group_c *g, const Group_Chats *g_c, const uint8_t *data, uint32_t length) +static uint32_t load_group(Group_c *_Nonnull g, const Group_Chats *_Nonnull g_c, const uint8_t *_Nonnull data, uint32_t length) { const uint8_t *init_data = data; @@ -3721,8 +3609,7 @@ static uint32_t load_group(Group_c *g, const Group_Chats *g_c, const uint8_t *da return (uint32_t)(data - init_data); } -non_null() -static State_Load_Status load_conferences_helper(Group_Chats *g_c, const uint8_t *data, uint32_t length) +static State_Load_Status load_conferences_helper(Group_Chats *_Nonnull g_c, const uint8_t *_Nonnull data, uint32_t length) { const uint8_t *init_data = data; @@ -3772,8 +3659,7 @@ static State_Load_Status load_conferences_helper(Group_Chats *g_c, const uint8_t return STATE_LOAD_STATUS_CONTINUE; } -non_null() -static State_Load_Status load_conferences(Group_Chats *g_c, const uint8_t *data, uint32_t length) +static State_Load_Status load_conferences(Group_Chats *_Nonnull g_c, const uint8_t *_Nonnull data, uint32_t length) { const State_Load_Status res = load_conferences_helper(g_c, data, length); diff --git a/external/toxcore/c-toxcore/toxcore/group.h b/external/toxcore/c-toxcore/toxcore/group.h index 706428f..a9ef032 100644 --- a/external/toxcore/c-toxcore/toxcore/group.h +++ b/external/toxcore/c-toxcore/toxcore/group.h @@ -24,79 +24,72 @@ typedef enum Groupchat_Type { GROUPCHAT_TYPE_AV, } Groupchat_Type; -typedef void peer_on_join_cb(void *object, uint32_t conference_number, uint32_t peer_number); -typedef void peer_on_leave_cb(void *object, uint32_t conference_number, void *peer_object); -typedef void group_on_delete_cb(void *object, uint32_t conference_number); +typedef void peer_on_join_cb(void *_Nullable object, uint32_t conference_number, uint32_t peer_number); +typedef void peer_on_leave_cb(void *_Nullable object, uint32_t conference_number, void *_Nullable peer_object); +typedef void group_on_delete_cb(void *_Nullable object, uint32_t conference_number); /** @brief Callback for group invites. * * data of length is what needs to be passed to `join_groupchat()`. */ -typedef void g_conference_invite_cb(Messenger *m, uint32_t friend_number, int type, const uint8_t *cookie, - size_t length, void *user_data); +typedef void g_conference_invite_cb(Messenger *_Nonnull m, uint32_t friend_number, int type, const uint8_t *_Nonnull cookie, + size_t length, void *_Nullable user_data); /** Callback for group connection. */ -typedef void g_conference_connected_cb(Messenger *m, uint32_t conference_number, void *user_data); +typedef void g_conference_connected_cb(Messenger *_Nonnull m, uint32_t conference_number, void *_Nullable user_data); /** Callback for group messages. */ -typedef void g_conference_message_cb(Messenger *m, uint32_t conference_number, uint32_t peer_number, int type, - const uint8_t *message, size_t length, void *user_data); +typedef void g_conference_message_cb(Messenger *_Nonnull m, uint32_t conference_number, uint32_t peer_number, int type, + const uint8_t *_Nonnull message, size_t length, void *_Nullable user_data); /** Callback for peer nickname changes. */ -typedef void peer_name_cb(Messenger *m, uint32_t conference_number, uint32_t peer_number, const uint8_t *name, - size_t length, void *user_data); +typedef void peer_name_cb(Messenger *_Nonnull m, uint32_t conference_number, uint32_t peer_number, const uint8_t *_Nonnull name, + size_t length, void *_Nullable user_data); /** Set callback function for peer list changes. */ -typedef void peer_list_changed_cb(Messenger *m, uint32_t conference_number, void *user_data); +typedef void peer_list_changed_cb(Messenger *_Nonnull m, uint32_t conference_number, void *_Nullable user_data); /** @brief Callback for title changes. * * If peer_number == -1, then author is unknown (e.g. initial joining the group). */ -typedef void title_cb(Messenger *m, uint32_t conference_number, uint32_t peer_number, const uint8_t *title, - size_t length, void *user_data); +typedef void title_cb(Messenger *_Nonnull m, uint32_t conference_number, uint32_t peer_number, const uint8_t *_Nonnull title, + size_t length, void *_Nullable user_data); /** @brief Callback for lossy packets. * * NOTE: Handler must return 0 if packet is to be relayed, -1 if the packet should not be relayed. */ -typedef int lossy_packet_cb(void *object, uint32_t conference_number, uint32_t peer_number, void *peer_object, - const uint8_t *packet, uint16_t length); +typedef int lossy_packet_cb(void *_Nullable object, uint32_t conference_number, uint32_t peer_number, void *_Nullable peer_object, + const uint8_t *_Nonnull packet, uint16_t length); typedef struct Group_Chats Group_Chats; -non_null() -const Mono_Time *g_mono_time(const Group_Chats *g_c); +const Mono_Time *_Nonnull g_mono_time(const Group_Chats *_Nonnull g_c); /** Set the callback for group invites. */ -non_null() -void g_callback_group_invite(Group_Chats *g_c, g_conference_invite_cb *function); +void g_callback_group_invite(Group_Chats *_Nonnull g_c, g_conference_invite_cb *_Nonnull function); /** Set the callback for group connection. */ -non_null() -void g_callback_group_connected(Group_Chats *g_c, g_conference_connected_cb *function); +void g_callback_group_connected(Group_Chats *_Nonnull g_c, g_conference_connected_cb *_Nonnull function); /** Set the callback for group messages. */ -non_null() -void g_callback_group_message(Group_Chats *g_c, g_conference_message_cb *function); +void g_callback_group_message(Group_Chats *_Nonnull g_c, g_conference_message_cb *_Nonnull function); /** Set callback function for title changes. */ -non_null() -void g_callback_group_title(Group_Chats *g_c, title_cb *function); +void g_callback_group_title(Group_Chats *_Nonnull g_c, title_cb *_Nonnull function); /** @brief Set callback function for peer nickname changes. * * It gets called every time a peer changes their nickname. */ -non_null() -void g_callback_peer_name(Group_Chats *g_c, peer_name_cb *function); +void g_callback_peer_name(Group_Chats *_Nonnull g_c, peer_name_cb *_Nonnull function); /** @brief Set callback function for peer list changes. * * It gets called every time the name list changes(new peer, deleted peer) */ -non_null() -void g_callback_peer_list_changed(Group_Chats *g_c, peer_list_changed_cb *function); +void g_callback_peer_list_changed(Group_Chats *_Nonnull g_c, peer_list_changed_cb *_Nonnull function); /** @brief Creates a new groupchat and puts it in the chats array. * @@ -106,8 +99,7 @@ void g_callback_peer_list_changed(Group_Chats *g_c, peer_list_changed_cb *functi * @return group number on success. * @retval -1 on failure. */ -non_null() -int add_groupchat(Group_Chats *g_c, const Random *rng, uint8_t type); +int add_groupchat(Group_Chats *_Nonnull g_c, const Random *_Nonnull rng, uint8_t type); /** @brief Delete a groupchat from the chats array, informing the group first as * appropriate. @@ -115,8 +107,7 @@ int add_groupchat(Group_Chats *g_c, const Random *rng, uint8_t type); * @retval true on success. * @retval false if groupnumber is invalid. */ -non_null() -bool del_groupchat(Group_Chats *g_c, uint32_t groupnumber, bool leave_permanently); +bool del_groupchat(Group_Chats *_Nonnull g_c, uint32_t groupnumber, bool leave_permanently); /** * @brief Copy the public key of (frozen, if frozen is true) peernumber who is in @@ -128,8 +119,7 @@ bool del_groupchat(Group_Chats *g_c, uint32_t groupnumber, bool leave_permanentl * @retval -1 if groupnumber is invalid. * @retval -2 if peernumber is invalid. */ -non_null() -int group_peer_pubkey(const Group_Chats *g_c, uint32_t groupnumber, uint32_t peernumber, uint8_t *pk, bool frozen); +int group_peer_pubkey(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, uint32_t peernumber, uint8_t *_Nonnull pk, bool frozen); /** * @brief Return the size of (frozen, if frozen is true) peernumber's name. @@ -137,8 +127,7 @@ int group_peer_pubkey(const Group_Chats *g_c, uint32_t groupnumber, uint32_t pee * @retval -1 if groupnumber is invalid. * @retval -2 if peernumber is invalid. */ -non_null() -int group_peername_size(const Group_Chats *g_c, uint32_t groupnumber, uint32_t peernumber, bool frozen); +int group_peername_size(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, uint32_t peernumber, bool frozen); /** * @brief Copy the name of (frozen, if frozen is true) peernumber who is in @@ -150,9 +139,7 @@ int group_peername_size(const Group_Chats *g_c, uint32_t groupnumber, uint32_t p * @retval -1 if groupnumber is invalid. * @retval -2 if peernumber is invalid. */ -non_null() -int group_peername(const Group_Chats *g_c, uint32_t groupnumber, uint32_t peernumber, uint8_t *name, - bool frozen); +int group_peername(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, uint32_t peernumber, uint8_t *_Nonnull name, bool frozen); /** * @brief Copy last active timestamp of frozen peernumber who is in groupnumber to @@ -162,17 +149,14 @@ int group_peername(const Group_Chats *g_c, uint32_t groupnumber, uint32_t peernu * @retval -1 if groupnumber is invalid. * @retval -2 if peernumber is invalid. */ -non_null() -int group_frozen_last_active( - const Group_Chats *g_c, uint32_t groupnumber, uint32_t peernumber, uint64_t *last_active); +int group_frozen_last_active(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, uint32_t peernumber, uint64_t *_Nonnull last_active); /** @brief Set maximum number of frozen peers. * * @retval 0 on success. * @retval -1 if groupnumber is invalid. */ -non_null() -int group_set_max_frozen(const Group_Chats *g_c, uint32_t groupnumber, uint32_t maxfrozen); +int group_set_max_frozen(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, uint32_t maxfrozen); /** @brief invite friendnumber to groupnumber. * @@ -181,8 +165,7 @@ int group_set_max_frozen(const Group_Chats *g_c, uint32_t groupnumber, uint32_t * @retval -2 if invite packet failed to send. * @retval -3 if we are not connected to the group chat. */ -non_null() -int invite_friend(const Group_Chats *g_c, uint32_t friendnumber, uint32_t groupnumber); +int invite_friend(const Group_Chats *_Nonnull g_c, uint32_t friendnumber, uint32_t groupnumber); /** @brief Join a group (we need to have been invited first). * @@ -197,23 +180,19 @@ int invite_friend(const Group_Chats *g_c, uint32_t friendnumber, uint32_t groupn * @retval -5 if group instance failed to initialize. * @retval -6 if join packet fails to send. */ -non_null() -int join_groupchat( - Group_Chats *g_c, uint32_t friendnumber, uint8_t expected_type, const uint8_t *data, uint16_t length); +int join_groupchat(Group_Chats *_Nonnull g_c, uint32_t friendnumber, uint8_t expected_type, const uint8_t *_Nonnull data, uint16_t length); /** @brief send a group message * @retval 0 on success * @see send_message_group for error codes. */ -non_null() -int group_message_send(const Group_Chats *g_c, uint32_t groupnumber, const uint8_t *message, uint16_t length); +int group_message_send(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, const uint8_t *_Nonnull message, uint16_t length); /** @brief send a group action * @retval 0 on success * @see send_message_group for error codes. */ -non_null() -int group_action_send(const Group_Chats *g_c, uint32_t groupnumber, const uint8_t *action, uint16_t length); +int group_action_send(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, const uint8_t *_Nonnull action, uint16_t length); /** @brief set the group's title, limited to MAX_NAME_LENGTH. * @retval 0 on success @@ -221,15 +200,13 @@ int group_action_send(const Group_Chats *g_c, uint32_t groupnumber, const uint8_ * @retval -2 if title is too long or empty. * @retval -3 if packet fails to send. */ -non_null() -int group_title_send(const Group_Chats *g_c, uint32_t groupnumber, const uint8_t *title, uint8_t title_len); +int group_title_send(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, const uint8_t *_Nonnull title, uint8_t title_len); /** @brief return the group's title size. * @retval -1 of groupnumber is invalid. * @retval -2 if title is too long or empty. */ -non_null() -int group_title_get_size(const Group_Chats *g_c, uint32_t groupnumber); +int group_title_get_size(const Group_Chats *_Nonnull g_c, uint32_t groupnumber); /** @brief Get group title from groupnumber and put it in title. * @@ -239,15 +216,13 @@ int group_title_get_size(const Group_Chats *g_c, uint32_t groupnumber); * @retval -1 if groupnumber is invalid. * @retval -2 if title is too long or empty. */ -non_null() -int group_title_get(const Group_Chats *g_c, uint32_t groupnumber, uint8_t *title); +int group_title_get(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, uint8_t *_Nonnull title); /** * @return the number of (frozen, if frozen is true) peers in the group chat on success. * @retval -1 if groupnumber is invalid. */ -non_null() -int group_number_peers(const Group_Chats *g_c, uint32_t groupnumber, bool frozen); +int group_number_peers(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, bool frozen); /** * @retval 1 if the peernumber corresponds to ours. @@ -256,20 +231,17 @@ int group_number_peers(const Group_Chats *g_c, uint32_t groupnumber, bool frozen * @retval -2 if peernumber is invalid. * @retval -3 if we are not connected to the group chat. */ -non_null() -int group_peernumber_is_ours(const Group_Chats *g_c, uint32_t groupnumber, uint32_t peernumber); +int group_peernumber_is_ours(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, uint32_t peernumber); /** Set handlers for custom lossy packets. */ -non_null() -void group_lossy_packet_registerhandler(Group_Chats *g_c, uint8_t byte, lossy_packet_cb *function); +void group_lossy_packet_registerhandler(Group_Chats *_Nonnull g_c, uint8_t byte, lossy_packet_cb *_Nonnull function); /** @brief High level function to send custom lossy packets. * * @retval -1 on failure. * @retval 0 on success. */ -non_null() -int send_group_lossy_packet(const Group_Chats *g_c, uint32_t groupnumber, const uint8_t *data, uint16_t length); +int send_group_lossy_packet(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, const uint8_t *_Nonnull data, uint16_t length); /** * @brief Return the number of chats in the instance m. @@ -277,8 +249,7 @@ int send_group_lossy_packet(const Group_Chats *g_c, uint32_t groupnumber, const * You should use this to determine how much memory to allocate * for copy_chatlist. */ -non_null() -uint32_t count_chatlist(const Group_Chats *g_c); +uint32_t count_chatlist(const Group_Chats *_Nonnull g_c); /** @brief Copy a list of valid chat IDs into the array out_list. * @@ -287,94 +258,76 @@ uint32_t count_chatlist(const Group_Chats *g_c); * If the array was too small, the contents * of out_list will be truncated to list_size. */ -non_null() -uint32_t copy_chatlist(const Group_Chats *g_c, uint32_t *out_list, uint32_t list_size); +uint32_t copy_chatlist(const Group_Chats *_Nonnull g_c, uint32_t *_Nonnull out_list, uint32_t list_size); /** @brief return the type of groupchat (GROUPCHAT_TYPE_) that groupnumber is. * * @retval -1 on failure. * @return type on success. */ -non_null() -int group_get_type(const Group_Chats *g_c, uint32_t groupnumber); +int group_get_type(const Group_Chats *_Nonnull g_c, uint32_t groupnumber); /** @brief Copies the unique id of `group_chat[groupnumber]` into `id`. * * @retval false on failure. * @retval true on success. */ -non_null() -bool conference_get_id(const Group_Chats *g_c, uint32_t groupnumber, uint8_t *id); +bool conference_get_id(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, uint8_t *_Nonnull id); -non_null() int32_t conference_by_id(const Group_Chats *g_c, const uint8_t *id); +int32_t conference_by_id(const Group_Chats *_Nonnull g_c, const uint8_t *_Nonnull id); /** Send current name (set in messenger) to all online groups. */ -non_null() -void send_name_all_groups(const Group_Chats *g_c); +void send_name_all_groups(const Group_Chats *_Nonnull g_c); /** @brief Set the object that is tied to the group chat. * * @retval 0 on success. * @retval -1 on failure */ -non_null(1) nullable(3) -int group_set_object(const Group_Chats *g_c, uint32_t groupnumber, void *object); - +int group_set_object(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, void *_Nullable object); /** @brief Set the object that is tied to the group peer. * * @retval 0 on success. * @retval -1 on failure */ -non_null(1) nullable(4) -int group_peer_set_object(const Group_Chats *g_c, uint32_t groupnumber, uint32_t peernumber, void *object); - +int group_peer_set_object(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, uint32_t peernumber, void *_Nullable object); /** @brief Return the object tied to the group chat previously set by group_set_object. * * @retval NULL on failure. * @return object on success. */ -non_null() -void *group_get_object(const Group_Chats *g_c, uint32_t groupnumber); +void *_Nullable group_get_object(const Group_Chats *_Nonnull g_c, uint32_t groupnumber); /** @brief Return the object tied to the group chat peer previously set by group_peer_set_object. * * @retval NULL on failure. * @return object on success. */ -non_null() -void *group_peer_get_object(const Group_Chats *g_c, uint32_t groupnumber, uint32_t peernumber); +void *_Nullable group_peer_get_object(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, uint32_t peernumber); /** @brief Set a function to be called when a new peer joins a group chat. * * @retval 0 on success. * @retval -1 on failure. */ -non_null(1) nullable(3) -int callback_groupchat_peer_new(const Group_Chats *g_c, uint32_t groupnumber, peer_on_join_cb *function); - +int callback_groupchat_peer_new(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, peer_on_join_cb *_Nullable function); /** @brief Set a function to be called when a peer leaves a group chat. * * @retval 0 on success. * @retval -1 on failure. */ -non_null(1) nullable(3) -int callback_groupchat_peer_delete(const Group_Chats *g_c, uint32_t groupnumber, peer_on_leave_cb *function); - +int callback_groupchat_peer_delete(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, peer_on_leave_cb *_Nullable function); /** @brief Set a function to be called when the group chat is deleted. * * @retval 0 on success. * @retval -1 on failure. */ -non_null(1) nullable(3) -int callback_groupchat_delete(const Group_Chats *g_c, uint32_t groupnumber, group_on_delete_cb *function); - +int callback_groupchat_delete(const Group_Chats *_Nonnull g_c, uint32_t groupnumber, group_on_delete_cb *_Nullable function); /** Return size of the conferences data (for saving). */ -non_null() -uint32_t conferences_size(const Group_Chats *g_c); +uint32_t conferences_size(const Group_Chats *_Nonnull g_c); /** Save the conferences in data (must be allocated memory of size at least `conferences_size()`). */ -non_null() -uint8_t *conferences_save(const Group_Chats *g_c, uint8_t *data); +uint8_t *_Nonnull conferences_save(const Group_Chats *_Nonnull g_c, uint8_t *_Nonnull data); /** * Load a state section. @@ -385,20 +338,13 @@ uint8_t *conferences_save(const Group_Chats *g_c, uint8_t *data); * @param status Result of loading section is stored here if the section is handled. * @return true iff section handled. */ -non_null() -bool conferences_load_state_section( - Group_Chats *g_c, const uint8_t *data, uint32_t length, uint16_t type, State_Load_Status *status); +bool conferences_load_state_section(Group_Chats *_Nonnull g_c, const uint8_t *_Nonnull data, uint32_t length, uint16_t type, State_Load_Status *_Nonnull status); /** Create new groupchat instance. */ -non_null() -Group_Chats *new_groupchats(const Mono_Time *mono_time, const Memory *mem, Messenger *m); +Group_Chats *_Nullable new_groupchats(const Mono_Time *_Nonnull mono_time, const Memory *_Nonnull mem, Messenger *_Nonnull m); /** main groupchats loop. */ -non_null(1) nullable(2) -void do_groupchats(Group_Chats *g_c, void *userdata); - +void do_groupchats(Group_Chats *_Nonnull g_c, void *_Nullable userdata); /** Free everything related with group chats. */ -nullable(1) -void kill_groupchats(Group_Chats *g_c); - +void kill_groupchats(Group_Chats *_Nullable g_c); #endif /* C_TOXCORE_TOXCORE_GROUP_H */ diff --git a/external/toxcore/c-toxcore/toxcore/group_announce.c b/external/toxcore/c-toxcore/toxcore/group_announce.c index caa7019..a5a55bc 100644 --- a/external/toxcore/c-toxcore/toxcore/group_announce.c +++ b/external/toxcore/c-toxcore/toxcore/group_announce.c @@ -19,8 +19,7 @@ /** * Removes `announces` from `gc_announces_list`. */ -non_null() -static void remove_announces(GC_Announces_List *gc_announces_list, GC_Announces *announces) +static void remove_announces(GC_Announces_List *_Nonnull gc_announces_list, GC_Announces *_Nonnull announces) { if (announces == nullptr || gc_announces_list == nullptr) { return; @@ -43,8 +42,7 @@ static void remove_announces(GC_Announces_List *gc_announces_list, GC_Announces * Returns the announce designated by `chat_id`. * Returns null if no announce is found. */ -non_null() -static GC_Announces *get_announces_by_chat_id(const GC_Announces_List *gc_announces_list, const uint8_t *chat_id) +static GC_Announces *_Nullable get_announces_by_chat_id(const GC_Announces_List *_Nonnull gc_announces_list, const uint8_t *_Nonnull chat_id) { GC_Announces *announces = gc_announces_list->root_announces; @@ -167,8 +165,7 @@ int gca_pack_announce(const Logger *log, uint8_t *data, uint16_t length, const G * Returns the size of the unpacked data on success. * Returns -1 on failure. */ -non_null() -static int gca_unpack_announce(const Logger *log, const uint8_t *data, uint16_t length, GC_Announce *announce) +static int gca_unpack_announce(const Logger *_Nonnull log, const uint8_t *_Nonnull data, uint16_t length, GC_Announce *_Nonnull announce) { if (length < ENC_PUBLIC_KEY_SIZE + 2) { LOGGER_ERROR(log, "Invalid announce length: %u", length); @@ -341,11 +338,7 @@ int gca_unpack_announces_list(const Logger *log, const uint8_t *data, uint16_t l return announces_count; } -non_null() -static GC_Announces *gca_new_announces( - const Memory *mem, - GC_Announces_List *gc_announces_list, - const GC_Public_Announce *public_announce) +static GC_Announces *_Nullable gca_new_announces(const Memory *_Nonnull mem, GC_Announces_List *_Nonnull gc_announces_list, const GC_Public_Announce *_Nonnull public_announce) { GC_Announces *announces = (GC_Announces *)mem_alloc(mem, sizeof(GC_Announces)); diff --git a/external/toxcore/c-toxcore/toxcore/group_announce.h b/external/toxcore/c-toxcore/toxcore/group_announce.h index 2e043a0..29238bc 100644 --- a/external/toxcore/c-toxcore/toxcore/group_announce.h +++ b/external/toxcore/c-toxcore/toxcore/group_announce.h @@ -74,15 +74,15 @@ struct GC_Announces { GC_Peer_Announce peer_announces[GCA_MAX_SAVED_ANNOUNCES_PER_GC]; - GC_Announces *next_announce; - GC_Announces *prev_announce; + GC_Announces *_Nullable next_announce; + GC_Announces *_Nullable prev_announce; }; /* A list of all announces. */ struct GC_Announces_List { - const Memory *mem; + const Memory *_Nonnull mem; - GC_Announces *root_announces; + GC_Announces *_Nullable root_announces; uint64_t last_timeout_check; }; @@ -90,13 +90,10 @@ struct GC_Announces_List { * * The caller is responsible for freeing the memory with `kill_gca`. */ -non_null() -GC_Announces_List *new_gca_list(const Memory *mem); +GC_Announces_List *_Nullable new_gca_list(const Memory *_Nonnull mem); /** @brief Frees all dynamically allocated memory associated with `announces_list`. */ -nullable(1) -void kill_gca(GC_Announces_List *announces_list); - +void kill_gca(GC_Announces_List *_Nullable announces_list); /** @brief Iterates through the announces list and removes announces that are considered stale. * * @param gc_announces_list The list of announces to iterate. @@ -104,16 +101,14 @@ void kill_gca(GC_Announces_List *announces_list); * This function should be called from the main loop, and will iterate the list a * maxmimum of once per second. */ -non_null() -void do_gca(const Mono_Time *mono_time, GC_Announces_List *gc_announces_list); +void do_gca(const Mono_Time *_Nonnull mono_time, GC_Announces_List *_Nonnull gc_announces_list); /** @brief Frees all dynamically allocated memory associated with an announces list entry. * * @param gc_announces_list The announces list we want to search through. * @param chat_id The chat ID that designates the entry we want to remove. */ -non_null() -void cleanup_gca(GC_Announces_List *gc_announces_list, const uint8_t *chat_id); +void cleanup_gca(GC_Announces_List *_Nonnull gc_announces_list, const uint8_t *_Nonnull chat_id); /** @brief Puts a set of announces from the announces list in supplied list. * @@ -126,9 +121,8 @@ void cleanup_gca(GC_Announces_List *gc_announces_list, const uint8_t *chat_id); * @return the number of added nodes on success. * @retval -1 on failure. */ -non_null() -int gca_get_announces(const GC_Announces_List *gc_announces_list, GC_Announce *gc_announces, uint8_t max_nodes, - const uint8_t *chat_id, const uint8_t *except_public_key); +int gca_get_announces(const GC_Announces_List *_Nonnull gc_announces_list, GC_Announce *_Nonnull gc_announces, uint8_t max_nodes, const uint8_t *_Nonnull chat_id, + const uint8_t *_Nonnull except_public_key); /** @brief Adds a public_announce to list of announces. * @@ -138,9 +132,8 @@ int gca_get_announces(const GC_Announces_List *gc_announces_list, GC_Announce *g * @return the peer announce on success. * @retval null on failure. */ -non_null() -GC_Peer_Announce *gca_add_announce(const Memory *mem, const Mono_Time *mono_time, GC_Announces_List *gc_announces_list, - const GC_Public_Announce *public_announce); +GC_Peer_Announce *_Nullable gca_add_announce(const Memory *_Nonnull mem, const Mono_Time *_Nonnull mono_time, GC_Announces_List *_Nonnull gc_announces_list, + const GC_Public_Announce *_Nonnull public_announce); /** @brief Packs an announce into a data buffer. * @@ -151,8 +144,7 @@ GC_Peer_Announce *gca_add_announce(const Memory *mem, const Mono_Time *mono_time * @return the size of the packed data on success. * @retval -1 on failure. */ -non_null() -int gca_pack_announce(const Logger *log, uint8_t *data, uint16_t length, const GC_Announce *announce); +int gca_pack_announce(const Logger *_Nonnull log, uint8_t *_Nonnull data, uint16_t length, const GC_Announce *_Nonnull announce); /** @brief Returns the number of bytes needed for a buff in which to pack `count` announces. */ uint16_t gca_pack_announces_list_size(uint16_t count); @@ -169,10 +161,8 @@ uint16_t gca_pack_announces_list_size(uint16_t count); * @return the number of packed announces on success. * @retval -1 on failure. */ -non_null(1, 2, 4) nullable(6) -int gca_pack_announces_list(const Logger *log, uint8_t *data, uint16_t length, const GC_Announce *announces, - uint8_t announces_count, size_t *processed); - +int gca_pack_announces_list(const Logger *_Nonnull log, uint8_t *_Nonnull data, uint16_t length, const GC_Announce *_Nonnull announces, + uint8_t announces_count, size_t *_Nullable processed); /** @brief Unpacks packed announces from a data buffer into a supplied list. * * @param data The data buffer to unpack from. @@ -183,9 +173,7 @@ int gca_pack_announces_list(const Logger *log, uint8_t *data, uint16_t length, c * @return the number of unpacked announces on success. * @retval -1 on failure. */ -non_null() -int gca_unpack_announces_list(const Logger *log, const uint8_t *data, uint16_t length, GC_Announce *announces, - uint8_t max_count); +int gca_unpack_announces_list(const Logger *_Nonnull log, const uint8_t *_Nonnull data, uint16_t length, GC_Announce *_Nonnull announces, uint8_t max_count); /** @brief Packs a public announce into a data buffer. * @@ -196,9 +184,7 @@ int gca_unpack_announces_list(const Logger *log, const uint8_t *data, uint16_t l * @return the size of the packed data on success. * @retval -1 on failure. */ -non_null() -int gca_pack_public_announce(const Logger *log, uint8_t *data, uint16_t length, - const GC_Public_Announce *public_announce); +int gca_pack_public_announce(const Logger *_Nonnull log, uint8_t *_Nonnull data, uint16_t length, const GC_Public_Announce *_Nonnull public_announce); /** @brief Unpacks a public announce from a data buffer into a supplied public announce. * @@ -209,16 +195,13 @@ int gca_pack_public_announce(const Logger *log, uint8_t *data, uint16_t length, * @return the size of the unpacked data on success. * @retval -1 on failure. */ -non_null() -int gca_unpack_public_announce(const Logger *log, const uint8_t *data, uint16_t length, - GC_Public_Announce *public_announce); +int gca_unpack_public_announce(const Logger *_Nonnull log, const uint8_t *_Nonnull data, uint16_t length, GC_Public_Announce *_Nonnull public_announce); /** @brief Returns true if the announce is valid. * * An announce is considered valid if there is at least one TCP relay, or the ip_port is set. */ -non_null() -bool gca_is_valid_announce(const GC_Announce *announce); +bool gca_is_valid_announce(const GC_Announce *_Nonnull announce); #ifdef __cplusplus } /* extern "C" */ diff --git a/external/toxcore/c-toxcore/toxcore/group_announce_test.cc b/external/toxcore/c-toxcore/toxcore/group_announce_test.cc index 1b37fd3..d78fccf 100644 --- a/external/toxcore/c-toxcore/toxcore/group_announce_test.cc +++ b/external/toxcore/c-toxcore/toxcore/group_announce_test.cc @@ -55,7 +55,7 @@ TEST_F(Announces, CanBeCreatedAndDeleted) GC_Public_Announce ann{}; ann.chat_public_key[0] = 0x88; ASSERT_NE(gca_add_announce(mem_, mono_time_, gca_, &ann), nullptr); -#ifndef _DEBUG +#ifndef __clang__ ASSERT_EQ(gca_add_announce(mem_, mono_time_, gca_, nullptr), nullptr); ASSERT_EQ(gca_add_announce(mem_, mono_time_, nullptr, &ann), nullptr); #endif @@ -110,7 +110,7 @@ TEST_F(Announces, AnnouncesGetAndCleanup) cleanup_gca(gca_, ann2.chat_public_key); ASSERT_EQ(gca_get_announces(gca_, &announces, 1, ann2.chat_public_key, empty_pk), 0); -#ifndef _DEBUG +#ifndef __clang__ ASSERT_EQ(gca_get_announces(gca_, nullptr, 1, ann2.chat_public_key, empty_pk), -1); #endif } @@ -172,7 +172,7 @@ TEST_F(AnnouncesPack, PublicAnnounceCanBePackedAndUnpacked) TEST_F(AnnouncesPack, UnpackEmptyPublicAnnounce) { -#ifndef _DEBUG +#ifndef __clang__ GC_Public_Announce ann{}; std::vector packed(GCA_PUBLIC_ANNOUNCE_MAX_SIZE); @@ -183,7 +183,7 @@ TEST_F(AnnouncesPack, UnpackEmptyPublicAnnounce) TEST_F(AnnouncesPack, PackEmptyPublicAnnounce) { -#ifndef _DEBUG +#ifndef __clang__ GC_Public_Announce ann{}; std::vector packed(GCA_PUBLIC_ANNOUNCE_MAX_SIZE); EXPECT_EQ(gca_pack_public_announce(logger_, packed.data(), packed.size(), nullptr), -1); @@ -212,7 +212,7 @@ TEST_F(AnnouncesPack, PublicAnnouncePackNull) TEST_F(AnnouncesPack, AnnouncesValidationCheck) { -#ifndef _DEBUG +#ifndef __clang__ EXPECT_EQ(gca_is_valid_announce(nullptr), false); #endif @@ -233,7 +233,7 @@ TEST_F(AnnouncesPack, UnpackIncompleteAnnouncesList) GC_Announce announce; EXPECT_EQ(gca_unpack_announces_list(logger_, data, sizeof(data), &announce, 1), -1); -#ifndef _DEBUG +#ifndef __clang__ EXPECT_EQ(gca_unpack_announces_list(logger_, data, sizeof(data), nullptr, 1), -1); EXPECT_EQ(gca_unpack_announces_list(logger_, nullptr, 0, &announce, 1), -1); #endif @@ -264,7 +264,7 @@ TEST_F(AnnouncesPack, PackingEmptyAnnounceFails) std::vector packed(gca_pack_announces_list_size(1)); EXPECT_EQ( gca_pack_announces_list(logger_, packed.data(), packed.size(), &announce, 1, nullptr), -1); -#ifndef _DEBUG +#ifndef __clang__ EXPECT_EQ( gca_pack_announces_list(logger_, packed.data(), packed.size(), nullptr, 1, nullptr), -1); EXPECT_EQ(gca_pack_announces_list(logger_, nullptr, 0, &announce, 1, nullptr), -1); @@ -273,7 +273,7 @@ TEST_F(AnnouncesPack, PackingEmptyAnnounceFails) TEST_F(AnnouncesPack, PackAnnounceNull) { -#ifndef _DEBUG +#ifndef __clang__ std::vector data(GCA_ANNOUNCE_MAX_SIZE); GC_Announce announce; ASSERT_EQ(gca_pack_announce(logger_, nullptr, 0, &announce), -1); diff --git a/external/toxcore/c-toxcore/toxcore/group_chats.c b/external/toxcore/c-toxcore/toxcore/group_chats.c index 43ed7e8..5ba2c85 100644 --- a/external/toxcore/c-toxcore/toxcore/group_chats.c +++ b/external/toxcore/c-toxcore/toxcore/group_chats.c @@ -161,17 +161,16 @@ typedef enum Group_Sync_Flags { GF_STATE = (1 << 2), // 4 } Group_Sync_Flags; -non_null() static bool self_gc_is_founder(const GC_Chat *chat); -non_null() static bool group_number_valid(const GC_Session *c, int group_number); -non_null() static int peer_update(const GC_Chat *chat, const GC_Peer *peer, uint32_t peer_number); -non_null() static void group_delete(GC_Session *c, GC_Chat *chat); -non_null() static void group_cleanup(const GC_Session *c, GC_Chat *chat); -non_null() static bool group_exists(const GC_Session *c, const uint8_t *chat_id); -non_null() static void add_tcp_relays_to_chat(const GC_Session *c, GC_Chat *chat); -non_null() static void create_gc_session_keypair(const Logger *log, const Random *rng, uint8_t *public_key, - uint8_t *secret_key); -non_null() static size_t load_gc_peers(GC_Chat *chat, const GC_SavedPeerInfo *addrs, uint16_t num_addrs); -non_null() static bool saved_peer_is_valid(const GC_SavedPeerInfo *saved_peer); +static bool self_gc_is_founder(const GC_Chat *_Nonnull chat); +static bool group_number_valid(const GC_Session *_Nonnull c, int group_number); +static int peer_update(const GC_Chat *_Nonnull chat, const GC_Peer *_Nonnull peer, uint32_t peer_number); +static void group_delete(GC_Session *_Nonnull c, GC_Chat *_Nonnull chat); +static void group_cleanup(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat); +static bool group_exists(const GC_Session *_Nonnull c, const uint8_t *_Nonnull chat_id); +static void add_tcp_relays_to_chat(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat); +static void create_gc_session_keypair(const Logger *_Nonnull log, const Random *_Nonnull rng, uint8_t *_Nonnull public_key, uint8_t *_Nonnull secret_key); +static size_t load_gc_peers(GC_Chat *_Nonnull chat, const GC_SavedPeerInfo *_Nonnull addrs, uint16_t num_addrs); +static bool saved_peer_is_valid(const GC_SavedPeerInfo *_Nonnull saved_peer); static const GC_Chat empty_gc_chat = {nullptr}; @@ -204,8 +203,7 @@ static GC_Peer_Id gc_unknown_peer_id(void) return gc_peer_id_from_int(0); } -non_null() -static void kill_group_friend_connection(const GC_Session *c, const GC_Chat *chat) +static void kill_group_friend_connection(const GC_Session *_Nonnull c, const GC_Chat *_Nonnull chat) { if (chat->friend_connection_id != -1) { m_kill_group_connection(c->messenger, chat); @@ -237,8 +235,7 @@ bool gc_peer_number_is_valid(const GC_Chat *chat, int peer_number) return peer_number >= 0 && peer_number < (int)chat->numpeers; } -non_null() -static GC_Peer *get_gc_peer(const GC_Chat *chat, int peer_number) +static GC_Peer *get_gc_peer(const GC_Chat *_Nonnull chat, int peer_number) { if (!gc_peer_number_is_valid(chat, peer_number)) { return nullptr; @@ -297,8 +294,7 @@ uint16_t gc_get_self_nick_size(const GC_Chat *chat) * * Returns false if `nick` is null or `length` is greater than MAX_GC_NICK_SIZE. */ -non_null() -static bool self_gc_set_nick(const GC_Chat *chat, const uint8_t *nick, uint16_t length) +static bool self_gc_set_nick(const GC_Chat *_Nonnull chat, const uint8_t *_Nonnull nick, uint16_t length) { if (nick == nullptr || length > MAX_GC_NICK_SIZE) { return false; @@ -323,8 +319,7 @@ Group_Role gc_get_self_role(const GC_Chat *chat) } /** Sets self role. If role is invalid this function has no effect. */ -non_null() -static void self_gc_set_role(const GC_Chat *chat, Group_Role role) +static void self_gc_set_role(const GC_Chat *_Nonnull chat, Group_Role role) { if (role <= GR_OBSERVER) { GC_Peer *peer = get_gc_peer(chat, 0); @@ -343,8 +338,7 @@ uint8_t gc_get_self_status(const GC_Chat *chat) } /** Sets self status. If status is invalid this function has no effect. */ -non_null() -static void self_gc_set_status(const GC_Chat *chat, Group_Peer_Status status) +static void self_gc_set_status(const GC_Chat *_Nonnull chat, Group_Peer_Status status) { if (status == GS_NONE || status == GS_AWAY || status == GS_BUSY) { GC_Peer *peer = get_gc_peer(chat, 0); @@ -365,8 +359,7 @@ GC_Peer_Id gc_get_self_peer_id(const GC_Chat *chat) } /** Sets self confirmed status. */ -non_null() -static void self_gc_set_confirmed(const GC_Chat *chat, bool confirmed) +static void self_gc_set_confirmed(const GC_Chat *_Nonnull chat, bool confirmed) { GC_Connection *gconn = get_gc_connection(chat, 0); assert(gconn != nullptr); @@ -375,8 +368,7 @@ static void self_gc_set_confirmed(const GC_Chat *chat, bool confirmed) } /** Returns true if self has the founder role */ -non_null() -static bool self_gc_is_founder(const GC_Chat *chat) +static bool self_gc_is_founder(const GC_Chat *_Nonnull chat) { return gc_get_self_role(chat) == GR_FOUNDER; } @@ -392,8 +384,7 @@ void gc_get_self_public_key(const GC_Chat *chat, uint8_t *public_key) * * If `ext_public_key` is null this function has no effect. */ -non_null() -static void self_gc_set_ext_public_key(const GC_Chat *chat, const Extended_Public_Key *ext_public_key) +static void self_gc_set_ext_public_key(const GC_Chat *_Nonnull chat, const Extended_Public_Key *_Nonnull ext_public_key) { if (ext_public_key != nullptr) { GC_Connection *gconn = get_gc_connection(chat, 0); @@ -405,8 +396,7 @@ static void self_gc_set_ext_public_key(const GC_Chat *chat, const Extended_Publi /** * Return true if `peer` has permission to speak according to the `voice_state`. */ -non_null() -static bool peer_has_voice(const GC_Peer *peer, Group_Voice_State voice_state) +static bool peer_has_voice(const GC_Peer *_Nonnull peer, Group_Voice_State voice_state) { const Group_Role role = peer->role; @@ -531,22 +521,19 @@ int unpack_gc_saved_peers(GC_Chat *chat, const uint8_t *data, uint16_t length) } /** Returns true if chat privacy state is set to public. */ -non_null() -static bool is_public_chat(const GC_Chat *chat) +static bool is_public_chat(const GC_Chat *_Nonnull chat) { return chat->shared_state.privacy_state == GI_PUBLIC; } /** Returns true if group is password protected */ -non_null() -static bool chat_is_password_protected(const GC_Chat *chat) +static bool chat_is_password_protected(const GC_Chat *_Nonnull chat) { return chat->shared_state.password_length > 0; } /** Returns true if `password` matches the current group password. */ -non_null() -static bool validate_password(const GC_Chat *chat, const uint8_t *password, uint16_t length) +static bool validate_password(const GC_Chat *_Nonnull chat, const uint8_t *_Nonnull password, uint16_t length) { if (length > MAX_GC_PASSWORD_SIZE) { return false; @@ -563,8 +550,7 @@ static bool validate_password(const GC_Chat *chat, const uint8_t *password, uint * * `id` must be at least ENC_PUBLIC_KEY_SIZE bytes in length. */ -non_null() -static GC_Chat *get_chat_by_id(const GC_Session *c, const uint8_t *id) +static GC_Chat *get_chat_by_id(const GC_Session *_Nonnull c, const uint8_t *_Nonnull id) { if (c == nullptr) { return nullptr; @@ -599,8 +585,7 @@ uint32_t gc_get_pk_jenkins_hash(const uint8_t *public_key) * * Must be called every time a peer is confirmed or deleted. */ -non_null() -static void set_gc_peerlist_checksum(GC_Chat *chat) +static void set_gc_peerlist_checksum(GC_Chat *_Nonnull chat) { uint16_t sum = 0; @@ -618,8 +603,7 @@ static void set_gc_peerlist_checksum(GC_Chat *chat) } /** Returns a checksum of the topic currently set in `topic_info`. */ -non_null() -static uint16_t get_gc_topic_checksum(const GC_TopicInfo *topic_info) +static uint16_t get_gc_topic_checksum(const GC_TopicInfo *_Nonnull topic_info) { return data_checksum(topic_info->topic, topic_info->length); } @@ -652,8 +636,7 @@ int get_peer_number_of_enc_pk(const GC_Chat *chat, const uint8_t *public_enc_key * Returns the peer number if peer is in the peer list. * Returns -1 if peer is not in the peer list. */ -non_null() -static int get_peer_number_of_sig_pk(const GC_Chat *chat, const uint8_t *public_sig_key) +static int get_peer_number_of_sig_pk(const GC_Chat *_Nonnull chat, const uint8_t *_Nonnull public_sig_key) { for (uint32_t i = 0; i < chat->numpeers; ++i) { const GC_Connection *gconn = get_gc_connection(chat, i); @@ -668,8 +651,7 @@ static int get_peer_number_of_sig_pk(const GC_Chat *chat, const uint8_t *public_ return -1; } -non_null() -static bool gc_get_enc_pk_from_sig_pk(const GC_Chat *chat, uint8_t *public_key, const uint8_t *public_sig_key) +static bool gc_get_enc_pk_from_sig_pk(const GC_Chat *_Nonnull chat, uint8_t *_Nonnull public_key, const uint8_t *_Nonnull public_sig_key) { for (uint32_t i = 0; i < chat->numpeers; ++i) { const GC_Connection *gconn = get_gc_connection(chat, i); @@ -687,8 +669,7 @@ static bool gc_get_enc_pk_from_sig_pk(const GC_Chat *chat, uint8_t *public_key, return false; } -non_null() -static GC_Connection *random_gc_connection(const GC_Chat *chat) +static GC_Connection *random_gc_connection(const GC_Chat *_Nonnull chat) { if (chat->numpeers <= 1) { return nullptr; @@ -715,8 +696,7 @@ static GC_Connection *random_gc_connection(const GC_Chat *chat) /** @brief Returns the peer number associated with peer_id. * Returns -1 if peer_id is invalid. */ -non_null() -static int get_peer_number_of_peer_id(const GC_Chat *chat, GC_Peer_Id peer_id) +static int get_peer_number_of_peer_id(const GC_Chat *_Nonnull chat, GC_Peer_Id peer_id) { for (uint32_t i = 0; i < chat->numpeers; ++i) { if (chat->group[i].peer_id.value == peer_id.value) { @@ -733,8 +713,7 @@ static int get_peer_number_of_peer_id(const GC_Chat *chat, GC_Peer_Id peer_id) * These ID's are permanently assigned to a peer when they join the group and should be * considered arbitrary values. */ -non_null() -static GC_Peer_Id get_new_peer_id(const GC_Chat *chat) +static GC_Peer_Id get_new_peer_id(const GC_Chat *_Nonnull chat) { for (uint32_t i = 0; i < UINT32_MAX - 1; ++i) { const GC_Peer_Id peer_id = gc_peer_id_from_int(i); @@ -750,8 +729,7 @@ static GC_Peer_Id get_new_peer_id(const GC_Chat *chat) * * Return true on success. */ -non_null(1) nullable(2) -static bool set_gc_password_local(GC_Chat *chat, const uint8_t *passwd, uint16_t length) +static bool set_gc_password_local(GC_Chat *_Nonnull chat, const uint8_t *_Nullable passwd, uint16_t length) { if (length > MAX_GC_PASSWORD_SIZE) { return false; @@ -773,8 +751,7 @@ static bool set_gc_password_local(GC_Chat *chat, const uint8_t *passwd, uint16_t * * This should always be called instead of setting the variables manually. */ -non_null() -static void set_gc_shared_state_version(GC_Chat *chat, uint32_t version) +static void set_gc_shared_state_version(GC_Chat *_Nonnull chat, uint32_t version) { chat->shared_state.version = version; chat->moderation.shared_state_version = version; @@ -786,8 +763,7 @@ static void set_gc_shared_state_version(GC_Chat *chat, uint32_t version) * * Return true on success. */ -non_null() -static bool expand_chat_id(Extended_Public_Key *dest, const uint8_t *chat_id) +static bool expand_chat_id(Extended_Public_Key *_Nonnull dest, const uint8_t *_Nonnull chat_id) { assert(dest != nullptr); @@ -798,8 +774,7 @@ static bool expand_chat_id(Extended_Public_Key *dest, const uint8_t *chat_id) } /** Copies peer connect info from `gconn` to `addr`. */ -non_null() -static void copy_gc_saved_peer(const Random *rng, const GC_Connection *gconn, GC_SavedPeerInfo *addr) +static void copy_gc_saved_peer(const Random *_Nonnull rng, const GC_Connection *_Nonnull gconn, GC_SavedPeerInfo *_Nonnull addr) { if (!gcc_copy_tcp_relay(rng, &addr->tcp_relay, gconn)) { addr->tcp_relay = (Node_format) { @@ -812,8 +787,7 @@ static void copy_gc_saved_peer(const Random *rng, const GC_Connection *gconn, GC } /** Return true if `saved_peer` has either a valid IP_Port or a valid TCP relay. */ -non_null() -static bool saved_peer_is_valid(const GC_SavedPeerInfo *saved_peer) +static bool saved_peer_is_valid(const GC_SavedPeerInfo *_Nonnull saved_peer) { return ipport_isset(&saved_peer->ip_port) || ipport_isset(&saved_peer->tcp_relay.ip_port); } @@ -821,8 +795,7 @@ static bool saved_peer_is_valid(const GC_SavedPeerInfo *saved_peer) /** @brief Returns the index of the saved peers entry for `public_key`. * Returns -1 if key is not found. */ -non_null() -static int saved_peer_index(const GC_Chat *chat, const uint8_t *public_key) +static int saved_peer_index(const GC_Chat *_Nonnull chat, const uint8_t *_Nonnull public_key) { for (uint16_t i = 0; i < GC_MAX_SAVED_PEERS; ++i) { const GC_SavedPeerInfo *saved_peer = &chat->saved_peers[i]; @@ -836,8 +809,7 @@ static int saved_peer_index(const GC_Chat *chat, const uint8_t *public_key) } /** @brief Removes entry containing `public_key` from the saved peers list. */ -non_null() -static void saved_peers_remove_entry(GC_Chat *chat, const uint8_t *public_key) +static void saved_peers_remove_entry(GC_Chat *_Nonnull chat, const uint8_t *_Nonnull public_key) { const int idx = saved_peer_index(chat, public_key); @@ -861,12 +833,10 @@ static void saved_peers_remove_entry(GC_Chat *chat, const uint8_t *public_key) * * Returns -1 if there are no vacant indices. */ -non_null(1) nullable(2) -static int saved_peers_get_new_index(const GC_Chat *chat, const uint8_t *public_key) +static int saved_peers_get_new_index(const GC_Chat *_Nonnull chat, const uint8_t *_Nullable public_key) { if (public_key != nullptr) { const int idx = saved_peer_index(chat, public_key); - if (idx != -1) { return idx; } @@ -904,8 +874,7 @@ static int saved_peers_get_new_index(const GC_Chat *chat, const uint8_t *public_ * * This function should be called every time a new peer joins the group. */ -non_null() -static void add_gc_saved_peers(GC_Chat *chat, const GC_Connection *gconn) +static void add_gc_saved_peers(GC_Chat *_Nonnull chat, const GC_Connection *_Nonnull gconn) { const int idx = saved_peers_get_new_index(chat, gconn->addr.public_key.enc); @@ -922,8 +891,7 @@ static void add_gc_saved_peers(GC_Chat *chat, const GC_Connection *gconn) * * This function should be called after a confirmed peer exits the group. */ -non_null() -static void refresh_gc_saved_peers(GC_Chat *chat) +static void refresh_gc_saved_peers(GC_Chat *_Nonnull chat) { const int idx = saved_peers_get_new_index(chat, nullptr); @@ -951,8 +919,7 @@ static void refresh_gc_saved_peers(GC_Chat *chat) } /** Returns the number of confirmed peers in peerlist. */ -non_null() -static uint16_t get_gc_confirmed_numpeers(const GC_Chat *chat) +static uint16_t get_gc_confirmed_numpeers(const GC_Chat *_Nonnull chat) { uint16_t count = 0; @@ -969,17 +936,15 @@ static uint16_t get_gc_confirmed_numpeers(const GC_Chat *chat) return count; } -non_null() static bool sign_gc_shared_state(GC_Chat *chat); -non_null() static bool broadcast_gc_mod_list(const GC_Chat *chat); -non_null() static bool broadcast_gc_shared_state(const GC_Chat *chat); -non_null() static bool update_gc_sanctions_list(GC_Chat *chat, const uint8_t *public_sig_key); -non_null() static bool update_gc_topic(GC_Chat *chat, const uint8_t *public_sig_key); -non_null() static bool send_gc_set_observer(const GC_Chat *chat, const Extended_Public_Key *target_ext_pk, - const uint8_t *sanction_data, uint16_t length, bool add_obs); +static bool sign_gc_shared_state(GC_Chat *_Nonnull chat); +static bool broadcast_gc_mod_list(const GC_Chat *_Nonnull chat); +static bool broadcast_gc_shared_state(const GC_Chat *_Nonnull chat); +static bool update_gc_sanctions_list(GC_Chat *_Nonnull chat, const uint8_t *_Nonnull public_sig_key); +static bool update_gc_topic(GC_Chat *_Nonnull chat, const uint8_t *_Nonnull public_sig_key); +static bool send_gc_set_observer(const GC_Chat *_Nonnull chat, const Extended_Public_Key *_Nonnull target_ext_pk, const uint8_t *_Nonnull sanction_data, uint16_t length, bool add_obs); /** Returns true if peer designated by `peer_number` is in the sanctions list as an observer. */ -non_null() -static bool peer_is_observer(const GC_Chat *chat, uint32_t peer_number) +static bool peer_is_observer(const GC_Chat *_Nonnull chat, uint32_t peer_number) { const GC_Connection *gconn = get_gc_connection(chat, peer_number); @@ -991,8 +956,7 @@ static bool peer_is_observer(const GC_Chat *chat, uint32_t peer_number) } /** Returns true if peer designated by `peer_number` is the group founder. */ -non_null() -static bool peer_is_founder(const GC_Chat *chat, uint32_t peer_number) +static bool peer_is_founder(const GC_Chat *_Nonnull chat, uint32_t peer_number) { const GC_Connection *gconn = get_gc_connection(chat, peer_number); @@ -1005,8 +969,7 @@ static bool peer_is_founder(const GC_Chat *chat, uint32_t peer_number) } /** Returns true if peer designated by `peer_number` is in the moderator list or is the founder. */ -non_null() -static bool peer_is_moderator(const GC_Chat *chat, uint32_t peer_number) +static bool peer_is_moderator(const GC_Chat *_Nonnull chat, uint32_t peer_number) { const GC_Connection *gconn = get_gc_connection(chat, peer_number); @@ -1030,8 +993,7 @@ static bool peer_is_moderator(const GC_Chat *chat, uint32_t peer_number) * This should be called every time the moderator list or sanctions list changes, * and after a new peer is marked as confirmed. */ -non_null() -static void update_gc_peer_roles(GC_Chat *chat) +static void update_gc_peer_roles(GC_Chat *_Nonnull chat) { chat->roles_checksum = 0; bool conflicts = false; @@ -1097,8 +1059,7 @@ static void update_gc_peer_roles(GC_Chat *chat) * * Returns false on failure. */ -non_null() -static bool prune_gc_mod_list(GC_Chat *chat) +static bool prune_gc_mod_list(GC_Chat *_Nonnull chat) { if (chat->moderation.num_mods == 0) { return true; @@ -1129,10 +1090,7 @@ static bool prune_gc_mod_list(GC_Chat *chat) && update_gc_topic(chat, public_sig_key); } -non_null() -static bool prune_gc_sanctions_list_inner( - GC_Chat *chat, const Mod_Sanction *sanction, - const Extended_Public_Key *target_ext_pk) +static bool prune_gc_sanctions_list_inner(GC_Chat *_Nonnull chat, const Mod_Sanction *_Nonnull sanction, const Extended_Public_Key *_Nonnull target_ext_pk) { if (!sanctions_list_remove_observer(&chat->moderation, sanction->target_public_enc_key, nullptr)) { LOGGER_WARNING(chat->log, "Failed to remove entry from observer list"); @@ -1160,8 +1118,7 @@ static bool prune_gc_sanctions_list_inner( * * @retval false on failure or if no presently sanctioned peer is offline. */ -non_null() -static bool prune_gc_sanctions_list(GC_Chat *chat) +static bool prune_gc_sanctions_list(GC_Chat *_Nonnull chat) { if (chat->moderation.num_sanctions == 0) { return true; @@ -1192,8 +1149,7 @@ static bool prune_gc_sanctions_list(GC_Chat *chat) * Return length of packed peer on success. * Return -1 on failure. */ -non_null() -static int pack_gc_peer(uint8_t *data, uint16_t length, const GC_Peer *peer) +static int pack_gc_peer(uint8_t *_Nonnull data, uint16_t length, const GC_Peer *_Nonnull peer) { if (PACKED_GC_PEER_SIZE > length) { return -1; @@ -1216,8 +1172,7 @@ static int pack_gc_peer(uint8_t *data, uint16_t length, const GC_Peer *peer) * Returns the length of processed data on success. * Returns -1 on failure. */ -non_null() -static int unpack_gc_peer(GC_Peer *peer, const uint8_t *data, uint16_t length) +static int unpack_gc_peer(GC_Peer *_Nonnull peer, const uint8_t *_Nonnull data, uint16_t length) { if (PACKED_GC_PEER_SIZE > length) { return -1; @@ -1242,8 +1197,7 @@ static int unpack_gc_peer(GC_Peer *peer, const uint8_t *data, uint16_t length) * * Returns packed data length. */ -non_null() -static uint16_t pack_gc_shared_state(uint8_t *data, uint16_t length, const GC_SharedState *shared_state) +static uint16_t pack_gc_shared_state(uint8_t *_Nonnull data, uint16_t length, const GC_SharedState *_Nonnull shared_state) { if (length < GC_PACKED_SHARED_STATE_SIZE) { return 0; @@ -1290,8 +1244,7 @@ static uint16_t pack_gc_shared_state(uint8_t *data, uint16_t length, const GC_Sh * * Returns the length of processed data. */ -non_null() -static uint16_t unpack_gc_shared_state(GC_SharedState *shared_state, const uint8_t *data, uint16_t length) +static uint16_t unpack_gc_shared_state(GC_SharedState *_Nonnull shared_state, const uint8_t *_Nonnull data, uint16_t length) { if (length < GC_PACKED_SHARED_STATE_SIZE) { return 0; @@ -1344,8 +1297,7 @@ static uint16_t unpack_gc_shared_state(GC_SharedState *shared_state, const uint8 * * Returns packed data length. */ -non_null() -static uint16_t pack_gc_topic_info(uint8_t *data, uint16_t length, const GC_TopicInfo *topic_info) +static uint16_t pack_gc_topic_info(uint8_t *_Nonnull data, uint16_t length, const GC_TopicInfo *_Nonnull topic_info) { if (length < topic_info->length + GC_MIN_PACKED_TOPIC_INFO_SIZE) { return 0; @@ -1372,8 +1324,7 @@ static uint16_t pack_gc_topic_info(uint8_t *data, uint16_t length, const GC_Topi * Returns -1 on failure. * Returns the length of the processed data on success. */ -non_null() -static int unpack_gc_topic_info(GC_TopicInfo *topic_info, const uint8_t *data, uint16_t length) +static int unpack_gc_topic_info(GC_TopicInfo *_Nonnull topic_info, const uint8_t *_Nonnull data, uint16_t length) { if (length < sizeof(uint16_t) + sizeof(uint16_t) + sizeof(uint32_t)) { return -1; @@ -1414,8 +1365,7 @@ static int unpack_gc_topic_info(GC_TopicInfo *topic_info, const uint8_t *data, u * Returns packet length on success. * Returns -1 on failure. */ -non_null() -static int make_gc_shared_state_packet(const GC_Chat *chat, uint8_t *data, uint16_t length) +static int make_gc_shared_state_packet(const GC_Chat *_Nonnull chat, uint8_t *_Nonnull data, uint16_t length) { if (length < GC_SHARED_STATE_ENC_PACKET_SIZE) { return -1; @@ -1439,8 +1389,7 @@ static int make_gc_shared_state_packet(const GC_Chat *chat, uint8_t *data, uint1 * * Returns true on success and increments the shared state version. */ -non_null() -static bool sign_gc_shared_state(GC_Chat *chat) +static bool sign_gc_shared_state(GC_Chat *_Nonnull chat) { if (!self_gc_is_founder(chat)) { LOGGER_ERROR(chat->log, "Failed to sign shared state (invalid permission)"); @@ -1486,9 +1435,8 @@ static bool sign_gc_shared_state(GC_Chat *chat) * Return -2 on decryption failure. * Return -3 if plaintext payload length is invalid. */ -non_null(1, 2, 3, 4, 6, 7) nullable(5) -static int group_packet_unwrap(const Logger *log, const Memory *mem, const GC_Connection *gconn, uint8_t *data, uint64_t *message_id, - uint8_t *packet_type, const uint8_t *packet, uint16_t length) +static int group_packet_unwrap(const Logger *_Nonnull log, const Memory *_Nonnull mem, const GC_Connection *_Nonnull gconn, uint8_t *_Nonnull data, uint64_t *_Nullable message_id, + uint8_t *_Nonnull packet_type, const uint8_t *_Nonnull packet, uint16_t length) { assert(data != nullptr); assert(packet != nullptr); @@ -1625,9 +1573,7 @@ int group_packet_wrap( * * Returns true on success. */ -non_null() -static bool send_lossy_group_packet(const GC_Chat *chat, GC_Connection *gconn, const uint8_t *data, - uint16_t length, uint8_t packet_type) +static bool send_lossy_group_packet(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, const uint8_t *_Nonnull data, uint16_t length, uint8_t packet_type) { assert(length <= MAX_GC_CUSTOM_LOSSY_PACKET_SIZE); @@ -1667,12 +1613,10 @@ static bool send_lossy_group_packet(const GC_Chat *chat, GC_Connection *gconn, c * * Returns true on success. */ -non_null(1, 2) nullable(3) -static bool send_lossless_group_packet(const GC_Chat *chat, GC_Connection *gconn, const uint8_t *data, uint16_t length, +static bool send_lossless_group_packet(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, const uint8_t *_Nullable data, uint16_t length, uint8_t packet_type) { assert(length <= MAX_GC_PACKET_SIZE); - if (!gconn->handshaked || gconn->pending_delete) { return false; } @@ -1688,8 +1632,7 @@ static bool send_lossless_group_packet(const GC_Chat *chat, GC_Connection *gconn * * Returns true on success or if sync request timeout has not expired. */ -non_null() -static bool send_gc_sync_request(GC_Chat *chat, GC_Connection *gconn, uint16_t sync_flags) +static bool send_gc_sync_request(GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, uint16_t sync_flags) { if (!mono_time_is_timeout(chat->mono_time, chat->last_sync_request, GC_SYNC_REQUEST_LIMIT)) { return true; @@ -1717,16 +1660,14 @@ static bool send_gc_sync_request(GC_Chat *chat, GC_Connection *gconn, uint16_t s * * Return true on success. */ -non_null(1, 2) nullable(3) -static bool send_gc_sync_response(const GC_Chat *chat, GC_Connection *gconn, const uint8_t *data, uint16_t length) +static bool send_gc_sync_response(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, const uint8_t *_Nullable data, uint16_t length) { return send_lossless_group_packet(chat, gconn, data, length, GP_SYNC_RESPONSE); } -non_null() static bool send_gc_peer_exchange(const GC_Chat *chat, GC_Connection *gconn); -non_null() static bool send_gc_handshake_packet(const GC_Chat *chat, GC_Connection *gconn, uint8_t handshake_type, - uint8_t request_type, uint8_t join_type); -non_null() static bool send_gc_oob_handshake_request(const GC_Chat *chat, const GC_Connection *gconn); +static bool send_gc_peer_exchange(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn); +static bool send_gc_handshake_packet(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, uint8_t handshake_type, uint8_t request_type, uint8_t join_type); +static bool send_gc_oob_handshake_request(const GC_Chat *_Nonnull chat, const GC_Connection *_Nonnull gconn); /** @brief Unpacks a sync announce. * @@ -1735,8 +1676,7 @@ non_null() static bool send_gc_oob_handshake_request(const GC_Chat *chat, const * * Return true on success (whether or not the peer was added). */ -non_null() -static bool unpack_gc_sync_announce(GC_Chat *chat, const uint8_t *data, const uint16_t length) +static bool unpack_gc_sync_announce(GC_Chat *_Nonnull chat, const uint8_t *_Nonnull data, const uint16_t length) { GC_Announce announce = {0}; @@ -1816,9 +1756,8 @@ static bool unpack_gc_sync_announce(GC_Chat *chat, const uint8_t *data, const ui * Return -1 if the group is full or the peer failed to unpack. * Return -2 if `peer_number` does not designate a valid peer. */ -non_null(1, 2) nullable(4, 6) -static int handle_gc_sync_response(const GC_Session *c, GC_Chat *chat, uint32_t peer_number, const uint8_t *data, - uint16_t length, void *userdata) +static int handle_gc_sync_response(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, uint32_t peer_number, const uint8_t *_Nullable data, + uint16_t length, void *_Nullable userdata) { if (chat->connection_state == CS_CONNECTED && get_gc_confirmed_numpeers(chat) >= chat->shared_state.maxpeers && !peer_is_founder(chat, peer_number)) { @@ -1851,20 +1790,18 @@ static int handle_gc_sync_response(const GC_Session *c, GC_Chat *chat, uint32_t return 0; } -non_null() static int get_gc_peer_public_key(const GC_Chat *chat, uint32_t peer_number, uint8_t *public_key); -non_null() static bool send_peer_shared_state(const GC_Chat *chat, GC_Connection *gconn); -non_null() static bool send_peer_mod_list(const GC_Chat *chat, GC_Connection *gconn); -non_null() static bool send_peer_sanctions_list(const GC_Chat *chat, GC_Connection *gconn); -non_null() static bool send_peer_topic(const GC_Chat *chat, GC_Connection *gconn); +static int get_gc_peer_public_key(const GC_Chat *_Nonnull chat, uint32_t peer_number, uint8_t *_Nonnull public_key); +static bool send_peer_shared_state(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn); +static bool send_peer_mod_list(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn); +static bool send_peer_sanctions_list(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn); +static bool send_peer_topic(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn); /** @brief Creates a sync announce for peer designated by `gconn` and puts it in `announce`, which * must be zeroed by the caller. * * Returns true if announce was successfully created. */ -non_null() -static bool create_sync_announce(const GC_Chat *chat, const GC_Connection *gconn, uint32_t peer_number, - GC_Announce *announce) +static bool create_sync_announce(const GC_Chat *_Nonnull chat, const GC_Connection *_Nonnull gconn, uint32_t peer_number, GC_Announce *_Nonnull announce) { if (chat == nullptr || gconn == nullptr) { return false; @@ -1886,8 +1823,7 @@ static bool create_sync_announce(const GC_Chat *chat, const GC_Connection *gconn return true; } -non_null() -static bool sync_response_send_peers(GC_Chat *chat, GC_Connection *gconn, uint32_t peer_number, bool first_sync) +static bool sync_response_send_peers(GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, uint32_t peer_number, bool first_sync) { // Always respond to a peer's first sync request if (!first_sync && !mono_time_is_timeout(chat->mono_time, @@ -1955,9 +1891,7 @@ static bool sync_response_send_peers(GC_Chat *chat, GC_Connection *gconn, uint32 * * Return true on success. */ -non_null() -static bool sync_response_send_state(GC_Chat *chat, GC_Connection *gconn, uint32_t peer_number, - uint16_t sync_flags) +static bool sync_response_send_state(GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, uint32_t peer_number, uint16_t sync_flags) { const bool first_sync = gconn->last_sync_response == 0; @@ -2014,8 +1948,7 @@ static bool sync_response_send_state(GC_Chat *chat, GC_Connection *gconn, uint32 * Return -3 if we fail to send a response packet. * Return -4 if `peer_number` does not designate a valid peer. */ -non_null() -static int handle_gc_sync_request(GC_Chat *chat, uint32_t peer_number, const uint8_t *data, uint16_t length) +static int handle_gc_sync_request(GC_Chat *_Nonnull chat, uint32_t peer_number, const uint8_t *_Nonnull data, uint16_t length) { GC_Connection *gconn = get_gc_connection(chat, peer_number); @@ -2037,7 +1970,7 @@ static int handle_gc_sync_request(GC_Chat *chat, uint32_t peer_number, const uin } if (!mono_time_is_timeout(chat->mono_time, gconn->last_sync_response, GC_PING_TIMEOUT)) { - LOGGER_DEBUG(chat->log, "sync request rate limit for peer %d", peer_number); + LOGGER_DEBUG(chat->log, "sync request rate limit for peer %u", peer_number); return 0; } @@ -2067,15 +2000,14 @@ static int handle_gc_sync_request(GC_Chat *chat, uint32_t peer_number, const uin return 0; } -non_null() static void copy_self(const GC_Chat *chat, GC_Peer *peer); -non_null() static bool send_gc_peer_info_request(const GC_Chat *chat, GC_Connection *gconn); +static void copy_self(const GC_Chat *_Nonnull chat, GC_Peer *_Nonnull peer); +static bool send_gc_peer_info_request(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn); /** @brief Shares our TCP relays with peer and adds shared relays to our connection with them. * * Returns true on success or if we're not connected to any TCP relays. */ -non_null() -static bool send_gc_tcp_relays(const GC_Chat *chat, GC_Connection *gconn) +static bool send_gc_tcp_relays(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn) { Node_format tcp_relays[GCC_MAX_TCP_SHARED_RELAYS]; @@ -2116,8 +2048,7 @@ static bool send_gc_tcp_relays(const GC_Chat *chat, GC_Connection *gconn) * Return -1 if packet has invalid size. * Return -2 if packet contains invalid data. */ -non_null() -static int handle_gc_tcp_relays(GC_Chat *chat, GC_Connection *gconn, const uint8_t *data, uint16_t length) +static int handle_gc_tcp_relays(GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, const uint8_t *_Nonnull data, uint16_t length) { if (length == 0) { return -1; @@ -2153,8 +2084,7 @@ static int handle_gc_tcp_relays(GC_Chat *chat, GC_Connection *gconn, const uint8 * * Return true on success. */ -non_null() -static bool send_gc_invite_request(const GC_Chat *chat, GC_Connection *gconn) +static bool send_gc_invite_request(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn) { if (!chat_is_password_protected(chat)) { return send_lossless_group_packet(chat, gconn, nullptr, 0, GP_INVITE_REQUEST); @@ -2171,8 +2101,7 @@ static bool send_gc_invite_request(const GC_Chat *chat, GC_Connection *gconn) return send_lossless_group_packet(chat, gconn, data, length, GP_INVITE_REQUEST); } -non_null() -static bool send_gc_invite_response(const GC_Chat *chat, GC_Connection *gconn) +static bool send_gc_invite_response(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn) { return send_lossless_group_packet(chat, gconn, nullptr, 0, GP_INVITE_RESPONSE); } @@ -2182,8 +2111,7 @@ static bool send_gc_invite_response(const GC_Chat *chat, GC_Connection *gconn) * Return 0 if packet is correctly handled. * Return -1 if we fail to send a sync request. */ -non_null() -static int handle_gc_invite_response(GC_Chat *chat, GC_Connection *gconn) +static int handle_gc_invite_response(GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn) { const uint16_t flags = GF_PEERS | GF_TOPIC | GF_STATE; @@ -2200,9 +2128,8 @@ static int handle_gc_invite_response(GC_Chat *chat, GC_Connection *gconn) * Return 0 if packet is handled correctly. * Return -1 if packet has invalid size. */ -non_null(1, 2, 3) nullable(5) -static int handle_gc_invite_response_reject(const GC_Session *c, GC_Chat *chat, const uint8_t *data, uint16_t length, - void *userdata) +static int handle_gc_invite_response_reject(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, const uint8_t *_Nonnull data, uint16_t length, + void *_Nullable userdata) { if (length < sizeof(uint8_t)) { return -1; @@ -2235,8 +2162,7 @@ static int handle_gc_invite_response_reject(const GC_Session *c, GC_Chat *chat, * * Return true on success. */ -non_null() -static bool send_gc_invite_response_reject(const GC_Chat *chat, GC_Connection *gconn, uint8_t type) +static bool send_gc_invite_response_reject(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, uint8_t type) { if (type >= GJ_INVALID) { type = GJ_INVITE_FAILED; @@ -2258,8 +2184,7 @@ static bool send_gc_invite_response_reject(const GC_Chat *chat, GC_Connection *g * Return -3 if we fail to send an invite response. * Return -4 if peer_number does not designate a valid peer. */ -non_null(1) nullable(3) -static int handle_gc_invite_request(GC_Chat *chat, uint32_t peer_number, const uint8_t *data, uint16_t length) +static int handle_gc_invite_request(GC_Chat *_Nonnull chat, uint32_t peer_number, const uint8_t *_Nullable data, uint16_t length) { if (chat->shared_state.version == 0) { // we aren't synced yet; ignore request return 0; @@ -2316,8 +2241,7 @@ FAILED_INVITE: * Return true if packet is successfully sent to at least one peer or the * group is empty. */ -non_null() -static bool send_gc_lossless_packet_all_peers(const GC_Chat *chat, const uint8_t *data, uint16_t length, uint8_t type) +static bool send_gc_lossless_packet_all_peers(const GC_Chat *_Nonnull chat, const uint8_t *_Nonnull data, uint16_t length, uint8_t type) { uint32_t sent = 0; uint32_t confirmed_peers = 0; @@ -2346,8 +2270,7 @@ static bool send_gc_lossless_packet_all_peers(const GC_Chat *chat, const uint8_t * Return true if packet is successfully sent to at least one peer or the * group is empty. */ -non_null() -static bool send_gc_lossy_packet_all_peers(const GC_Chat *chat, const uint8_t *data, uint16_t length, uint8_t type) +static bool send_gc_lossy_packet_all_peers(const GC_Chat *_Nonnull chat, const uint8_t *_Nonnull data, uint16_t length, uint8_t type) { uint32_t sent = 0; uint32_t confirmed_peers = 0; @@ -2375,8 +2298,7 @@ static bool send_gc_lossy_packet_all_peers(const GC_Chat *chat, const uint8_t *d * * Returns length of packet including header. */ -non_null(3) nullable(1) -static uint16_t make_gc_broadcast_header(const uint8_t *data, uint16_t length, uint8_t *packet, uint8_t bc_type) +static uint16_t make_gc_broadcast_header(const uint8_t *_Nullable data, uint16_t length, uint8_t *_Nonnull packet, uint8_t bc_type) { packet[0] = bc_type; const uint16_t header_len = sizeof(uint8_t); @@ -2392,8 +2314,7 @@ static uint16_t make_gc_broadcast_header(const uint8_t *data, uint16_t length, u * * Returns true on success. */ -non_null(1) nullable(2) -static bool send_gc_broadcast_message(const GC_Chat *chat, const uint8_t *data, uint16_t length, uint8_t bc_type) +static bool send_gc_broadcast_message(const GC_Chat *_Nonnull chat, const uint8_t *_Nullable data, uint16_t length, uint8_t bc_type) { if (length + GC_BROADCAST_ENC_HEADER_SIZE > MAX_GC_PACKET_SIZE) { LOGGER_ERROR(chat->log, "Failed to broadcast message: invalid length %u", length); @@ -2415,15 +2336,12 @@ static bool send_gc_broadcast_message(const GC_Chat *chat, const uint8_t *data, return ret; } -non_null() -static bool group_topic_lock_enabled(const GC_Chat *chat); +static bool group_topic_lock_enabled(const GC_Chat *_Nonnull chat); /** @brief Compares the supplied values with our own state and returns the appropriate * sync flags for a sync request. */ -non_null() -static uint16_t get_sync_flags(const GC_Chat *chat, uint16_t peers_checksum, uint16_t peer_count, - uint32_t sstate_version, uint32_t screds_version, uint16_t roles_checksum, +static uint16_t get_sync_flags(const GC_Chat *_Nonnull chat, uint16_t peers_checksum, uint16_t peer_count, uint32_t sstate_version, uint32_t screds_version, uint16_t roles_checksum, uint32_t topic_version, uint16_t topic_checksum) { uint16_t sync_flags = 0; @@ -2462,9 +2380,7 @@ static uint16_t get_sync_flags(const GC_Chat *chat, uint16_t peers_checksum, uin * * Returns true if a sync request packet is successfully sent. */ -non_null() -static bool do_gc_peer_state_sync(GC_Chat *chat, GC_Connection *gconn, const uint8_t *sync_data, - const uint16_t length) +static bool do_gc_peer_state_sync(GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, const uint8_t *_Nonnull sync_data, const uint16_t length) { if (length < GC_PING_PACKET_MIN_DATA_SIZE) { return false; @@ -2524,8 +2440,7 @@ static bool do_gc_peer_state_sync(GC_Chat *chat, GC_Connection *gconn, const uin * Return 0 if packet is handled correctly. * Return -1 if packet has invalid size or peer is not confirmed. */ -non_null() -static int handle_gc_ping(GC_Chat *chat, GC_Connection *gconn, const uint8_t *data, uint16_t length) +static int handle_gc_ping(GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, const uint8_t *_Nonnull data, uint16_t length) { if (length < GC_PING_PACKET_MIN_DATA_SIZE) { return -1; @@ -2576,9 +2491,8 @@ int gc_set_self_status(const Messenger *m, int group_number, Group_Peer_Status s * Return 0 if packet is handled correctly. * Return -1 if packet has invalid length. */ -non_null(1, 2, 3, 4) nullable(6) -static int handle_gc_status(const GC_Session *c, const GC_Chat *chat, GC_Peer *peer, const uint8_t *data, - uint16_t length, void *userdata) +static int handle_gc_status(const GC_Session *_Nonnull c, const GC_Chat *_Nonnull chat, GC_Peer *_Nonnull peer, const uint8_t *_Nonnull data, + uint16_t length, void *_Nullable userdata) { if (length < sizeof(uint8_t)) { return -1; @@ -2641,8 +2555,7 @@ void gc_get_chat_id(const GC_Chat *chat, uint8_t *dest) * * Returns true on success. */ -non_null() -static bool send_self_to_peer(const GC_Chat *chat, GC_Connection *gconn) +static bool send_self_to_peer(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn) { GC_Peer *self = (GC_Peer *)mem_alloc(chat->mem, sizeof(GC_Peer)); @@ -2695,8 +2608,7 @@ static bool send_self_to_peer(const GC_Chat *chat, GC_Connection *gconn) * Return -2 if response fails. * Return -3 if `peer_number` does not designate a valid peer. */ -non_null() -static int handle_gc_peer_info_request(const GC_Chat *chat, uint32_t peer_number) +static int handle_gc_peer_info_request(const GC_Chat *_Nonnull chat, uint32_t peer_number) { GC_Connection *gconn = get_gc_connection(chat, peer_number); @@ -2720,8 +2632,7 @@ static int handle_gc_peer_info_request(const GC_Chat *chat, uint32_t peer_number * * Return true on success. */ -non_null() -static bool send_gc_peer_info_request(const GC_Chat *chat, GC_Connection *gconn) +static bool send_gc_peer_info_request(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn) { return send_lossless_group_packet(chat, gconn, nullptr, 0, GP_PEER_INFO_REQUEST); } @@ -2751,9 +2662,8 @@ static bool send_gc_peer_exchange(const GC_Chat *chat, GC_Connection *gconn) * Return -7 if peer's role cannot be validated. * Return -8 if memory allocation fails. */ -non_null(1, 2, 4) nullable(6) -static int handle_gc_peer_info_response(const GC_Session *c, GC_Chat *chat, uint32_t peer_number, - const uint8_t *data, uint16_t length, void *userdata) +static int handle_gc_peer_info_response(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, uint32_t peer_number, + const uint8_t *_Nonnull data, uint16_t length, void *_Nullable userdata) { if (length < PACKED_GC_PEER_SIZE) { return -1; @@ -2834,8 +2744,7 @@ static int handle_gc_peer_info_response(const GC_Session *c, GC_Chat *chat, uint * * Returns true on success. */ -non_null() -static bool send_peer_shared_state(const GC_Chat *chat, GC_Connection *gconn) +static bool send_peer_shared_state(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn) { if (chat->shared_state.version == 0) { return false; @@ -2855,8 +2764,7 @@ static bool send_peer_shared_state(const GC_Chat *chat, GC_Connection *gconn) * * Returns true on success. */ -non_null() -static bool broadcast_gc_shared_state(const GC_Chat *chat) +static bool broadcast_gc_shared_state(const GC_Chat *_Nonnull chat) { uint8_t packet[GC_SHARED_STATE_ENC_PACKET_SIZE]; const int packet_len = make_gc_shared_state_packet(chat, packet, sizeof(packet)); @@ -2873,8 +2781,7 @@ static bool broadcast_gc_shared_state(const GC_Chat *chat) * If the privacy state has been set to private, we kill our group's connection to the DHT. * Otherwise, we create a new connection with the DHT and flag an announcement. */ -non_null(1, 2) nullable(3) -static void do_privacy_state_change(const GC_Session *c, GC_Chat *chat, void *userdata) +static void do_privacy_state_change(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, void *_Nullable userdata) { if (is_public_chat(chat)) { if (!m_create_group_connection(c->messenger, chat)) { @@ -2901,9 +2808,8 @@ static void do_privacy_state_change(const GC_Session *c, GC_Chat *chat, void *us * * The initial retrieval of the shared state on group join will be ignored by this function. */ -non_null(1, 2, 3) nullable(4) -static void do_gc_shared_state_changes(const GC_Session *c, GC_Chat *chat, const GC_SharedState *old_shared_state, - void *userdata) +static void do_gc_shared_state_changes(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, const GC_SharedState *_Nonnull old_shared_state, + void *_Nullable userdata) { /* Max peers changed */ if (chat->shared_state.maxpeers != old_shared_state->maxpeers && c->peer_limit != nullptr) { @@ -2941,8 +2847,7 @@ static void do_gc_shared_state_changes(const GC_Session *c, GC_Chat *chat, const * * Return true on success. */ -non_null() -static bool send_gc_random_sync_request(GC_Chat *chat, uint16_t sync_flags) +static bool send_gc_random_sync_request(GC_Chat *_Nonnull chat, uint16_t sync_flags) { GC_Connection *rand_gconn = random_gc_connection(chat); @@ -2954,8 +2859,7 @@ static bool send_gc_random_sync_request(GC_Chat *chat, uint16_t sync_flags) } /** @brief Returns true if all shared state values are legal. */ -non_null() -static bool validate_gc_shared_state(const GC_SharedState *state) +static bool validate_gc_shared_state(const GC_SharedState *_Nonnull state) { return state->maxpeers > 0 && state->password_length <= MAX_GC_PASSWORD_SIZE @@ -2970,8 +2874,7 @@ static bool validate_gc_shared_state(const GC_SharedState *state) * Return 0 if error is currectly handled. * Return -1 on failure. */ -non_null() -static int handle_gc_shared_state_error(GC_Chat *chat, GC_Connection *gconn) +static int handle_gc_shared_state_error(GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn) { gcc_mark_for_deletion(gconn, chat->tcp_conn, GC_EXIT_TYPE_SYNC_ERR, nullptr, 0); @@ -2996,9 +2899,8 @@ static int handle_gc_shared_state_error(GC_Chat *chat, GC_Connection *gconn) * Return 0 if packet is successfully handled. * Return -1 if packet is invalid and this is not successfully handled. */ -non_null(1, 2, 3, 4) nullable(6) -static int handle_gc_shared_state(const GC_Session *c, GC_Chat *chat, GC_Connection *gconn, const uint8_t *data, - uint16_t length, void *userdata) +static int handle_gc_shared_state(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, const uint8_t *_Nonnull data, + uint16_t length, void *_Nullable userdata) { if (length < GC_SHARED_STATE_ENC_PACKET_SIZE) { return handle_gc_shared_state_error(chat, gconn); @@ -3059,8 +2961,7 @@ static int handle_gc_shared_state(const GC_Session *c, GC_Chat *chat, GC_Connect * Return 0 if data is valid. * Return -1 if data is invalid. */ -non_null() -static int validate_unpack_mod_list(GC_Chat *chat, const uint8_t *data, uint16_t length, uint16_t num_mods) +static int validate_unpack_mod_list(GC_Chat *_Nonnull chat, const uint8_t *_Nonnull data, uint16_t length, uint16_t num_mods) { if (num_mods > MOD_MAX_NUM_MODERATORS) { return -1; @@ -3095,8 +2996,7 @@ static int validate_unpack_mod_list(GC_Chat *chat, const uint8_t *data, uint16_t * Return -1 if packet has invalid size. * Return -2 if packet contained invalid data or validation failed. */ -non_null(1, 2, 3) nullable(5) -static int handle_gc_mod_list(const GC_Session *c, GC_Chat *chat, const uint8_t *data, uint16_t length, void *userdata) +static int handle_gc_mod_list(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, const uint8_t *_Nonnull data, uint16_t length, void *_Nullable userdata) { if (length < sizeof(uint16_t)) { return -1; @@ -3147,8 +3047,7 @@ static int handle_gc_mod_list(const GC_Session *c, GC_Chat *chat, const uint8_t * Return 0 on success. * Return -1 on failure. */ -non_null() -static int handle_gc_sanctions_list_error(GC_Chat *chat) +static int handle_gc_sanctions_list_error(GC_Chat *_Nonnull chat) { if (chat->moderation.sanctions_creds.version > 0) { return 0; @@ -3176,9 +3075,8 @@ static int handle_gc_sanctions_list_error(GC_Chat *chat) * Return -1 if we failed to gracefully handle a sanctions list error. * Return -2 if packet has invalid size. */ -non_null(1, 2, 3) nullable(5) -static int handle_gc_sanctions_list(const GC_Session *c, GC_Chat *chat, const uint8_t *data, uint16_t length, - void *userdata) +static int handle_gc_sanctions_list(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, const uint8_t *_Nonnull data, uint16_t length, + void *_Nullable userdata) { if (length < sizeof(uint16_t)) { return -2; @@ -3249,8 +3147,7 @@ static int handle_gc_sanctions_list(const GC_Session *c, GC_Chat *chat, const ui * Returns length of packet data on success. * Returns -1 on failure. */ -non_null() -static int make_gc_mod_list_packet(const GC_Chat *chat, uint8_t *data, uint32_t maxlen, uint16_t mod_list_size) +static int make_gc_mod_list_packet(const GC_Chat *_Nonnull chat, uint8_t *_Nonnull data, uint32_t maxlen, uint16_t mod_list_size) { if (maxlen < sizeof(uint16_t) + mod_list_size) { return -1; @@ -3279,8 +3176,7 @@ static int make_gc_mod_list_packet(const GC_Chat *chat, uint8_t *data, uint32_t * * Return true on success. */ -non_null() -static bool send_peer_mod_list(const GC_Chat *chat, GC_Connection *gconn) +static bool send_peer_mod_list(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn) { const uint16_t mod_list_size = chat->moderation.num_mods * MOD_LIST_ENTRY_SIZE; const uint16_t length = sizeof(uint16_t) + mod_list_size; @@ -3309,8 +3205,7 @@ static bool send_peer_mod_list(const GC_Chat *chat, GC_Connection *gconn) * Returns packet length on success. * Returns -1 on failure. */ -non_null() -static int make_gc_sanctions_list_packet(const GC_Chat *chat, uint8_t *data, uint16_t maxlen) +static int make_gc_sanctions_list_packet(const GC_Chat *_Nonnull chat, uint8_t *_Nonnull data, uint16_t maxlen) { if (maxlen < sizeof(uint16_t)) { return -1; @@ -3333,8 +3228,7 @@ static int make_gc_sanctions_list_packet(const GC_Chat *chat, uint8_t *data, uin * * Returns true on success. */ -non_null() -static bool send_peer_sanctions_list(const GC_Chat *chat, GC_Connection *gconn) +static bool send_peer_sanctions_list(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn) { if (chat->moderation.sanctions_creds.version == 0) { return true; @@ -3367,8 +3261,7 @@ static bool send_peer_sanctions_list(const GC_Chat *chat, GC_Connection *gconn) * * Returns true on success. */ -non_null() -static bool broadcast_gc_sanctions_list(const GC_Chat *chat) +static bool broadcast_gc_sanctions_list(const GC_Chat *_Nonnull chat) { const uint16_t packet_size = MOD_SANCTION_PACKED_SIZE * chat->moderation.num_sanctions + sizeof(uint16_t) + MOD_SANCTIONS_CREDS_SIZE; @@ -3398,8 +3291,7 @@ static bool broadcast_gc_sanctions_list(const GC_Chat *chat) * * Returns true on success. */ -non_null() -static bool update_gc_sanctions_list(GC_Chat *chat, const uint8_t *public_sig_key) +static bool update_gc_sanctions_list(GC_Chat *_Nonnull chat, const uint8_t *_Nonnull public_sig_key) { const uint16_t num_replaced = sanctions_list_replace_sig(&chat->moderation, public_sig_key); @@ -3414,8 +3306,7 @@ static bool update_gc_sanctions_list(GC_Chat *chat, const uint8_t *public_sig_ke * * Returns true on success. */ -non_null() -static bool broadcast_gc_mod_list(const GC_Chat *chat) +static bool broadcast_gc_mod_list(const GC_Chat *_Nonnull chat) { const uint16_t mod_list_size = chat->moderation.num_mods * MOD_LIST_ENTRY_SIZE; const uint16_t length = sizeof(uint16_t) + mod_list_size; @@ -3445,8 +3336,7 @@ static bool broadcast_gc_mod_list(const GC_Chat *chat) * Returns -1 if the message is too long. * Returns -2 if the packet failed to send. */ -non_null(1) nullable(2) -static int send_gc_self_exit(const GC_Chat *chat, const uint8_t *partmessage, uint16_t length) +static int send_gc_self_exit(const GC_Chat *_Nonnull chat, const uint8_t *_Nullable partmessage, uint16_t length) { if (length > MAX_GC_PART_MESSAGE_SIZE) { return -1; @@ -3460,8 +3350,7 @@ static int send_gc_self_exit(const GC_Chat *chat, const uint8_t *partmessage, ui } /** @brief Handles a peer exit broadcast. */ -non_null(1, 2) nullable(3) -static void handle_gc_peer_exit(const GC_Chat *chat, GC_Connection *gconn, const uint8_t *data, uint16_t length) +static void handle_gc_peer_exit(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, const uint8_t *_Nullable data, uint16_t length) { if (length > MAX_GC_PART_MESSAGE_SIZE) { length = MAX_GC_PART_MESSAGE_SIZE; @@ -3533,9 +3422,8 @@ int gc_get_peer_nick_size(const GC_Chat *chat, GC_Peer_Id peer_id) * Return 0 if packet is handled correctly. * Return -1 on failure. */ -non_null(1, 2, 3, 4) nullable(6) -static int handle_gc_nick(const GC_Session *c, GC_Chat *chat, GC_Peer *peer, const uint8_t *nick, - uint16_t length, void *userdata) +static int handle_gc_nick(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, GC_Peer *_Nonnull peer, const uint8_t *_Nonnull nick, + uint16_t length, void *_Nullable userdata) { /* If this happens malicious behaviour is highly suspect */ if (length == 0 || length > MAX_GC_NICK_SIZE) { @@ -3561,8 +3449,7 @@ static int handle_gc_nick(const GC_Session *c, GC_Chat *chat, GC_Peer *peer, con * Returns -1 if peer_number is invalid. * Returns -2 if `public_key` is null. */ -non_null() -static int get_gc_peer_public_key(const GC_Chat *chat, uint32_t peer_number, uint8_t *public_key) +static int get_gc_peer_public_key(const GC_Chat *_Nonnull chat, uint32_t peer_number, uint8_t *_Nonnull public_key) { const GC_Connection *gconn = get_gc_connection(chat, peer_number); @@ -3602,8 +3489,7 @@ int gc_get_peer_public_key_by_peer_id(const GC_Chat *chat, GC_Peer_Id peer_id, u * connection is direct, otherwise puts a placeholder in the buffer indicating that * the IP cannot be displayed. */ -non_null() -static void get_gc_ip_ntoa(const IP_Port *ip_port, Ip_Ntoa *ip_str) +static void get_gc_ip_ntoa(const IP_Port *_Nonnull ip_port, Ip_Ntoa *_Nonnull ip_str) { net_ip_ntoa(&ip_port->ip, ip_str); @@ -3684,8 +3570,7 @@ unsigned int gc_get_peer_connection_status(const GC_Chat *chat, GC_Peer_Id peer_ * Returns packet length on success. * Returns -1 on failure. */ -non_null() -static int make_gc_topic_packet(const GC_Chat *chat, uint8_t *data, uint16_t length) +static int make_gc_topic_packet(const GC_Chat *_Nonnull chat, uint8_t *_Nonnull data, uint16_t length) { if (length < SIGNATURE_SIZE + chat->topic_info.length + GC_MIN_PACKED_TOPIC_INFO_SIZE) { return -1; @@ -3708,8 +3593,7 @@ static int make_gc_topic_packet(const GC_Chat *chat, uint8_t *data, uint16_t len * * Returns true on success. */ -non_null() -static bool send_peer_topic(const GC_Chat *chat, GC_Connection *gconn) +static bool send_peer_topic(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn) { const uint16_t packet_buf_size = SIGNATURE_SIZE + chat->topic_info.length + GC_MIN_PACKED_TOPIC_INFO_SIZE; uint8_t *packet = (uint8_t *)mem_balloc(chat->mem, packet_buf_size); @@ -3740,8 +3624,7 @@ static bool send_peer_topic(const GC_Chat *chat, GC_Connection *gconn) * * Return true on success. */ -non_null() -static bool send_peer_key_rotation_request(const GC_Chat *chat, GC_Connection *gconn) +static bool send_peer_key_rotation_request(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn) { // Only the peer closest to the chat_id sends requests. This is to prevent both peers from sending // requests at the same time and ending up with a different resulting shared key @@ -3776,8 +3659,7 @@ static bool send_peer_key_rotation_request(const GC_Chat *chat, GC_Connection *g * * Returns true on success. */ -non_null() -static bool broadcast_gc_topic(const GC_Chat *chat) +static bool broadcast_gc_topic(const GC_Chat *_Nonnull chat) { const uint16_t packet_buf_size = SIGNATURE_SIZE + chat->topic_info.length + GC_MIN_PACKED_TOPIC_INFO_SIZE; uint8_t *packet = (uint8_t *)mem_balloc(chat->mem, packet_buf_size); @@ -3900,8 +3782,7 @@ uint16_t gc_get_topic_size(const GC_Chat *chat) * * Returns true on success */ -non_null() -static bool update_gc_topic(GC_Chat *chat, const uint8_t *public_sig_key) +static bool update_gc_topic(GC_Chat *_Nonnull chat, const uint8_t *_Nonnull public_sig_key) { if (memcmp(public_sig_key, chat->topic_info.public_sig_key, SIG_PUBLIC_KEY_SIZE) != 0) { return true; @@ -3915,9 +3796,7 @@ static bool update_gc_topic(GC_Chat *chat, const uint8_t *public_sig_key) * * Return true if topic info is valid. */ -non_null() -static bool handle_gc_topic_validate(const GC_Chat *chat, const GC_Peer *peer, const GC_TopicInfo *topic_info, - bool topic_lock_enabled) +static bool handle_gc_topic_validate(const GC_Chat *_Nonnull chat, const GC_Peer *_Nonnull peer, const GC_TopicInfo *_Nonnull topic_info, bool topic_lock_enabled) { if (topic_info->checksum != get_gc_topic_checksum(topic_info)) { LOGGER_WARNING(chat->log, "received invalid topic checksum"); @@ -3975,9 +3854,8 @@ static bool handle_gc_topic_validate(const GC_Chat *chat, const GC_Peer *peer, c * Return 0 if packet is correctly handled. * Return -1 if packet has invalid size. */ -non_null(1, 2, 3, 4) nullable(6) -static int handle_gc_topic(const GC_Session *c, GC_Chat *chat, const GC_Peer *peer, const uint8_t *data, - uint16_t length, void *userdata) +static int handle_gc_topic(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, const GC_Peer *_Nonnull peer, const uint8_t *_Nonnull data, + uint16_t length, void *_Nullable userdata) { if (length < SIGNATURE_SIZE + GC_MIN_PACKED_TOPIC_INFO_SIZE) { return -1; @@ -4032,8 +3910,7 @@ static int handle_gc_topic(const GC_Session *c, GC_Chat *chat, const GC_Peer *pe * Return -2 if we fail to create a new session keypair. * Return -3 if response packet fails to send. */ -non_null() -static int handle_gc_key_exchange(const GC_Chat *chat, GC_Connection *gconn, const uint8_t *data, uint16_t length) +static int handle_gc_key_exchange(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, const uint8_t *_Nonnull data, uint16_t length) { if (length < 1 + ENC_PUBLIC_KEY_SIZE) { return -1; @@ -4163,9 +4040,7 @@ int gc_founder_set_password(GC_Chat *chat, const uint8_t *password, uint16_t pas * Return -3 if target peer is not a valid role (probably indicates sync issues). * Return -4 on validation failure. */ -non_null() -static int validate_unpack_gc_set_mod(GC_Chat *chat, uint32_t peer_number, const uint8_t *data, uint16_t length, - bool add_mod) +static int validate_unpack_gc_set_mod(GC_Chat *_Nonnull chat, uint32_t peer_number, const uint8_t *_Nonnull data, uint16_t length, bool add_mod) { int target_peer_number; uint8_t mod_data[MOD_LIST_ENTRY_SIZE]; @@ -4222,9 +4097,8 @@ static int validate_unpack_gc_set_mod(GC_Chat *chat, uint32_t peer_number, const * Return -2 if the packet contains invalid data. * Return -3 if `peer_number` does not designate a valid peer. */ -non_null(1, 2, 4) nullable(6) -static int handle_gc_set_mod(const GC_Session *c, GC_Chat *chat, uint32_t peer_number, const uint8_t *data, - uint16_t length, void *userdata) +static int handle_gc_set_mod(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, uint32_t peer_number, const uint8_t *_Nonnull data, + uint16_t length, void *_Nullable userdata) { if (length < 1 + SIG_PUBLIC_KEY_SIZE) { return -1; @@ -4267,8 +4141,7 @@ static int handle_gc_set_mod(const GC_Session *c, GC_Chat *chat, uint32_t peer_n * * Return true on success. */ -non_null() -static bool send_gc_set_mod(const GC_Chat *chat, const GC_Connection *gconn, bool add_mod) +static bool send_gc_set_mod(const GC_Chat *_Nonnull chat, const GC_Connection *_Nonnull gconn, bool add_mod) { const uint16_t length = 1 + SIG_PUBLIC_KEY_SIZE; uint8_t *data = (uint8_t *)mem_balloc(chat->mem, length); @@ -4297,8 +4170,7 @@ static bool send_gc_set_mod(const GC_Chat *chat, const GC_Connection *gconn, boo * * Returns true on success. */ -non_null() -static bool founder_gc_set_moderator(GC_Chat *chat, const GC_Connection *gconn, bool add_mod) +static bool founder_gc_set_moderator(GC_Chat *_Nonnull chat, const GC_Connection *_Nonnull gconn, bool add_mod) { if (!self_gc_is_founder(chat)) { return false; @@ -4319,7 +4191,7 @@ static bool founder_gc_set_moderator(GC_Chat *chat, const GC_Connection *gconn, return false; } - if (!update_gc_sanctions_list(chat, get_sig_pk(&gconn->addr.public_key)) + if (!update_gc_sanctions_list(chat, get_sig_pk(&gconn->addr.public_key)) || !update_gc_topic(chat, get_sig_pk(&gconn->addr.public_key))) { return false; } @@ -4349,9 +4221,7 @@ static bool founder_gc_set_moderator(GC_Chat *chat, const GC_Connection *gconn, * Return 0 if data is valid and sanctions list is successfully modified. * Return -1 if data is invalid format. */ -non_null() -static int validate_unpack_observer_entry(GC_Chat *chat, const uint8_t *data, uint16_t length, - const uint8_t *public_key, bool add_obs) +static int validate_unpack_observer_entry(GC_Chat *_Nonnull chat, const uint8_t *_Nonnull data, uint16_t length, const uint8_t *_Nonnull public_key, bool add_obs) { Mod_Sanction_Creds creds; @@ -4402,9 +4272,8 @@ static int validate_unpack_observer_entry(GC_Chat *chat, const uint8_t *data, ui * Return -2 if the packet contains invalid data. * Return -3 if `peer_number` does not designate a valid peer. */ -non_null(1, 2, 4) nullable(6) -static int handle_gc_set_observer(const GC_Session *c, GC_Chat *chat, uint32_t peer_number, const uint8_t *data, - uint16_t length, void *userdata) +static int handle_gc_set_observer(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, uint32_t peer_number, const uint8_t *_Nonnull data, + uint16_t length, void *_Nullable userdata) { if (length <= 1 + EXT_PUBLIC_KEY_SIZE) { return -1; @@ -4469,9 +4338,7 @@ static int handle_gc_set_observer(const GC_Session *c, GC_Chat *chat, uint32_t p * * Returns true on success. */ -non_null() -static bool send_gc_set_observer(const GC_Chat *chat, const Extended_Public_Key *target_ext_pk, - const uint8_t *sanction_data, uint16_t length, bool add_obs) +static bool send_gc_set_observer(const GC_Chat *_Nonnull chat, const Extended_Public_Key *_Nonnull target_ext_pk, const uint8_t *_Nonnull sanction_data, uint16_t length, bool add_obs) { const uint16_t packet_len = 1 + ENC_PUBLIC_KEY_SIZE + SIG_PUBLIC_KEY_SIZE + length; uint8_t *packet = (uint8_t *)mem_balloc(chat->mem, packet_len); @@ -4501,8 +4368,7 @@ static bool send_gc_set_observer(const GC_Chat *chat, const Extended_Public_Key * * Returns true on success. */ -non_null() -static bool mod_gc_set_observer(GC_Chat *chat, uint32_t peer_number, bool add_obs) +static bool mod_gc_set_observer(GC_Chat *_Nonnull chat, uint32_t peer_number, bool add_obs) { const GC_Connection *gconn = get_gc_connection(chat, peer_number); @@ -4579,8 +4445,7 @@ static bool mod_gc_set_observer(GC_Chat *chat, uint32_t peer_number, bool add_ob * * Return true on success. */ -non_null() -static bool apply_new_gc_role(GC_Chat *chat, uint32_t peer_number, Group_Role current_role, Group_Role new_role) +static bool apply_new_gc_role(GC_Chat *_Nonnull chat, uint32_t peer_number, Group_Role current_role, Group_Role new_role) { const GC_Connection *gconn = get_gc_connection(chat, peer_number); @@ -4690,8 +4555,7 @@ int gc_set_peer_role(const Messenger *m, int group_number, GC_Peer_Id peer_id, G } /** @brief Return true if topic lock is enabled */ -non_null() -static bool group_topic_lock_enabled(const GC_Chat *chat) +static bool group_topic_lock_enabled(const GC_Chat *_Nonnull chat) { return chat->shared_state.topic_lock == GC_TOPIC_LOCK_ENABLED; } @@ -4938,9 +4802,8 @@ int gc_send_message(const GC_Chat *chat, const uint8_t *message, uint16_t length * Return 0 if packet is handled correctly. * Return -1 if packet has invalid size. */ -non_null(1, 2, 3, 4) nullable(7) -static int handle_gc_message(const GC_Session *c, const GC_Chat *chat, const GC_Peer *peer, const uint8_t *data, - uint16_t length, uint8_t type, void *userdata) +static int handle_gc_message(const GC_Session *_Nonnull c, const GC_Chat *_Nonnull chat, const GC_Peer *_Nonnull peer, const uint8_t *_Nonnull data, + uint16_t length, uint8_t type, void *_Nullable userdata) { if (data == nullptr || length > MAX_GC_MESSAGE_RAW_SIZE || length <= GC_MESSAGE_PSEUDO_ID_SIZE) { return -1; @@ -5039,9 +4902,8 @@ int gc_send_private_message(const GC_Chat *chat, GC_Peer_Id peer_id, uint8_t typ * Return 0 if packet is handled correctly. * Return -1 if packet has invalid size. */ -non_null(1, 2, 3, 4) nullable(6) -static int handle_gc_private_message(const GC_Session *c, const GC_Chat *chat, const GC_Peer *peer, const uint8_t *data, - uint16_t length, void *userdata) +static int handle_gc_private_message(const GC_Session *_Nonnull c, const GC_Chat *_Nonnull chat, const GC_Peer *_Nonnull peer, const uint8_t *_Nonnull data, + uint16_t length, void *_Nullable userdata) { if (data == nullptr || length > MAX_GC_MESSAGE_SIZE || length <= 1 + GC_MESSAGE_PSEUDO_ID_SIZE) { return -1; @@ -5111,9 +4973,8 @@ int gc_send_custom_private_packet(const GC_Chat *chat, bool lossless, GC_Peer_Id * @retval 0 if packet is handled correctly. * @retval -1 if packet has invalid size. */ -non_null(1, 2, 3, 4) nullable(7) -static int handle_gc_custom_private_packet(const GC_Session *c, const GC_Chat *chat, const GC_Peer *peer, - const uint8_t *data, uint16_t length, bool lossless, void *userdata) +static int handle_gc_custom_private_packet(const GC_Session *_Nonnull c, const GC_Chat *_Nonnull chat, const GC_Peer *_Nonnull peer, + const uint8_t *_Nonnull data, uint16_t length, bool lossless, void *_Nullable userdata) { if (!custom_gc_packet_length_is_valid(length, lossless)) { return -1; @@ -5156,9 +5017,8 @@ int gc_send_custom_packet(const GC_Chat *chat, bool lossless, const uint8_t *dat * Return 0 if packet is handled correctly. * Return -1 if packet has invalid size. */ -non_null(1, 2, 3, 4) nullable(7) -static int handle_gc_custom_packet(const GC_Session *c, const GC_Chat *chat, const GC_Peer *peer, const uint8_t *data, - uint16_t length, bool lossless, void *userdata) +static int handle_gc_custom_packet(const GC_Session *_Nonnull c, const GC_Chat *_Nonnull chat, const GC_Peer *_Nonnull peer, const uint8_t *_Nonnull data, + uint16_t length, bool lossless, void *_Nullable userdata) { if (!custom_gc_packet_length_is_valid(length, lossless)) { return -1; @@ -5180,9 +5040,8 @@ static int handle_gc_custom_packet(const GC_Session *c, const GC_Chat *chat, con * Return 0 if packet is handled correctly. * Return -1 if packet has invalid size. */ -non_null(1, 2, 3, 4) nullable(6) -static int handle_gc_kick_peer(const GC_Session *c, GC_Chat *chat, const GC_Peer *setter_peer, const uint8_t *data, - uint16_t length, void *userdata) +static int handle_gc_kick_peer(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, const GC_Peer *_Nonnull setter_peer, const uint8_t *_Nonnull data, + uint16_t length, void *_Nullable userdata) { if (length < ENC_PUBLIC_KEY_SIZE) { return -1; @@ -5240,8 +5099,7 @@ static int handle_gc_kick_peer(const GC_Session *c, GC_Chat *chat, const GC_Peer * * Returns true on success. */ -non_null() -static bool send_gc_kick_peer(const GC_Chat *chat, const GC_Connection *gconn) +static bool send_gc_kick_peer(const GC_Chat *_Nonnull chat, const GC_Connection *_Nonnull gconn) { uint8_t packet[ENC_PUBLIC_KEY_SIZE]; memcpy(packet, gconn->addr.public_key.enc, ENC_PUBLIC_KEY_SIZE); @@ -5330,8 +5188,7 @@ bool gc_send_message_ack(const GC_Chat *chat, GC_Connection *gconn, uint64_t mes * Return -2 if we failed to handle the ack (may be caused by connection issues). * Return -3 if we failed to re-send a requested packet. */ -non_null() -static int handle_gc_message_ack(const GC_Chat *chat, GC_Connection *gconn, const uint8_t *data, uint16_t length) +static int handle_gc_message_ack(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, const uint8_t *_Nonnull data, uint16_t length) { if (length < GC_LOSSLESS_ACK_PACKET_SIZE) { return -1; @@ -5377,8 +5234,7 @@ static int handle_gc_message_ack(const GC_Chat *chat, GC_Connection *gconn, cons * * Return true on success. */ -non_null() -static bool send_gc_hs_response_ack(const GC_Chat *chat, GC_Connection *gconn) +static bool send_gc_hs_response_ack(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn) { return send_lossless_group_packet(chat, gconn, nullptr, 0, GP_HS_RESPONSE_ACK); } @@ -5388,8 +5244,7 @@ static bool send_gc_hs_response_ack(const GC_Chat *chat, GC_Connection *gconn) * Return 0 if packet is handled correctly. * Return -1 if we failed to respond with an invite request. */ -non_null() -static int handle_gc_hs_response_ack(const GC_Chat *chat, GC_Connection *gconn) +static int handle_gc_hs_response_ack(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn) { gconn->handshaked = true; // has to be true before we can send a lossless packet @@ -5425,9 +5280,8 @@ int gc_set_ignore(const GC_Chat *chat, GC_Peer_Id peer_id, bool ignore) * Returns 0 if packet is handled correctly. * Returns -1 on failure. */ -non_null(1, 2, 4) nullable(6) -static int handle_gc_broadcast(const GC_Session *c, GC_Chat *chat, uint32_t peer_number, const uint8_t *data, - uint16_t length, void *userdata) +static int handle_gc_broadcast(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, uint32_t peer_number, const uint8_t *_Nonnull data, + uint16_t length, void *_Nullable userdata) { if (length < GC_BROADCAST_ENC_HEADER_SIZE) { return -1; @@ -5520,9 +5374,8 @@ static int handle_gc_broadcast(const GC_Session *c, GC_Chat *chat, uint32_t peer * Return -1 if length is invalid. * Return -2 if decryption fails. */ -non_null() -static int unwrap_group_handshake_packet(const Logger *log, const Memory *mem, const uint8_t *self_sk, const uint8_t *sender_pk, - uint8_t *plain, size_t plain_size, const uint8_t *packet, uint16_t length) +static int unwrap_group_handshake_packet(const Logger *_Nonnull log, const Memory *_Nonnull mem, const uint8_t *_Nonnull self_sk, const uint8_t *_Nonnull sender_pk, uint8_t *_Nonnull plain, + size_t plain_size, const uint8_t *_Nonnull packet, uint16_t length) { if (length <= CRYPTO_NONCE_SIZE) { LOGGER_FATAL(log, "Invalid handshake packet length %u", length); @@ -5550,11 +5403,8 @@ static int unwrap_group_handshake_packet(const Logger *log, const Memory *mem, c * Return -2 on memory allocation failure. * Return -3 if encryption fails. */ -non_null() -static int wrap_group_handshake_packet( - const Logger *log, const Memory *mem, const Random *rng, const uint8_t *self_pk, const uint8_t *self_sk, - const uint8_t *target_pk, uint8_t *packet, uint32_t packet_size, - const uint8_t *data, uint16_t length) +static int wrap_group_handshake_packet(const Logger *_Nonnull log, const Memory *_Nonnull mem, const Random *_Nonnull rng, const uint8_t *_Nonnull self_pk, const uint8_t *_Nonnull self_sk, + const uint8_t *_Nonnull target_pk, uint8_t *_Nonnull packet, uint32_t packet_size, const uint8_t *_Nonnull data, uint16_t length) { if (packet_size != GC_MIN_ENCRYPTED_HS_PAYLOAD_SIZE + sizeof(Node_format)) { LOGGER_FATAL(log, "Invalid packet size: %u", packet_size); @@ -5598,10 +5448,8 @@ static int wrap_group_handshake_packet( * Returns length of encrypted packet on success. * Returns -1 on failure. */ -non_null() -static int make_gc_handshake_packet(const GC_Chat *chat, const GC_Connection *gconn, uint8_t handshake_type, - uint8_t request_type, uint8_t join_type, uint8_t *packet, size_t packet_size, - const Node_format *node) +static int make_gc_handshake_packet(const GC_Chat *_Nonnull chat, const GC_Connection *_Nonnull gconn, uint8_t handshake_type, uint8_t request_type, uint8_t join_type, uint8_t *_Nonnull packet, + size_t packet_size, const Node_format *_Nonnull node) { if (chat == nullptr || gconn == nullptr || node == nullptr) { return -1; @@ -5652,9 +5500,7 @@ static int make_gc_handshake_packet(const GC_Chat *chat, const GC_Connection *gc * * Returns true on success. */ -non_null() -static bool send_gc_handshake_packet(const GC_Chat *chat, GC_Connection *gconn, uint8_t handshake_type, - uint8_t request_type, uint8_t join_type) +static bool send_gc_handshake_packet(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, uint8_t handshake_type, uint8_t request_type, uint8_t join_type) { if (gconn == nullptr) { return false; @@ -5742,9 +5588,7 @@ static bool send_gc_oob_handshake_request(const GC_Chat *chat, const GC_Connecti * Returns peer_number of new connected peer on success. * Returns -1 on failure. */ -non_null() -static int handle_gc_handshake_response(const GC_Chat *chat, const uint8_t *sender_pk, const uint8_t *data, - uint16_t length) +static int handle_gc_handshake_response(const GC_Chat *_Nonnull chat, const uint8_t *_Nonnull sender_pk, const uint8_t *_Nonnull data, uint16_t length) { // this should be checked at lower level; this is a redundant defense check. Ideally we should // guarantee that this can never happen in the future. @@ -5808,8 +5652,7 @@ static int handle_gc_handshake_response(const GC_Chat *chat, const uint8_t *send * * Return true on success. */ -non_null() -static bool send_gc_handshake_response(const GC_Chat *chat, GC_Connection *gconn) +static bool send_gc_handshake_response(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn) { return send_gc_handshake_packet(chat, gconn, GH_RESPONSE, gconn->pending_handshake_type, 0); } @@ -5824,9 +5667,8 @@ static bool send_gc_handshake_response(const GC_Chat *chat, GC_Connection *gconn * Return -1 on failure. */ #define GC_NEW_PEER_CONNECTION_LIMIT 10 -non_null(1, 3, 4) nullable(2) -static int handle_gc_handshake_request(GC_Chat *chat, const IP_Port *ipp, const uint8_t *sender_pk, - const uint8_t *data, uint16_t length) +static int handle_gc_handshake_request(GC_Chat *_Nonnull chat, const IP_Port *_Nullable ipp, const uint8_t *_Nonnull sender_pk, + const uint8_t *_Nonnull data, uint16_t length) { // this should be checked at lower level; this is a redundant defense check. Ideally we should // guarantee that this can never happen in the future. @@ -5949,9 +5791,8 @@ static int handle_gc_handshake_request(GC_Chat *chat, const IP_Port *ipp, const * Returns the peer_number of the connecting peer on success. * Returns -1 on failure. */ -non_null(1, 2, 4) nullable(3, 7) -static int handle_gc_handshake_packet(GC_Chat *chat, const uint8_t *sender_pk, const IP_Port *ipp, - const uint8_t *packet, uint16_t length, bool direct_conn, void *userdata) +static int handle_gc_handshake_packet(GC_Chat *_Nonnull chat, const uint8_t *_Nonnull sender_pk, const IP_Port *_Nullable ipp, + const uint8_t *_Nonnull packet, uint16_t length, bool direct_conn, void *_Nullable userdata) { if (length < GC_MIN_HS_PACKET_PAYLOAD_SIZE + CRYPTO_MAC_SIZE + CRYPTO_NONCE_SIZE) { return -1; @@ -6105,7 +5946,7 @@ bool handle_gc_lossless_helper(const GC_Session *c, GC_Chat *chat, uint32_t peer } if (ret < 0) { - LOGGER_DEBUG(chat->log, "Lossless packet handle error %d: type: 0x%02x, peernumber: %d", + LOGGER_DEBUG(chat->log, "Lossless packet handle error %d: type: 0x%02x, peernumber: %u", ret, packet_type, peer_number); return false; } @@ -6129,10 +5970,9 @@ bool handle_gc_lossless_helper(const GC_Session *c, GC_Chat *chat, uint32_t peer * * Return true if packet is handled successfully. */ -non_null(1, 2, 4) nullable(5, 9) -static bool handle_gc_packet_fragment(const GC_Session *c, GC_Chat *chat, uint32_t peer_number, GC_Connection *gconn, - const uint8_t *data, uint16_t length, uint8_t packet_type, uint64_t message_id, - void *userdata) +static bool handle_gc_packet_fragment(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, uint32_t peer_number, GC_Connection *_Nonnull gconn, + const uint8_t *_Nullable data, uint16_t length, uint8_t packet_type, uint64_t message_id, + void *_Nullable userdata) { if (gconn->last_chunk_id != 0 && message_id != gconn->last_chunk_id + 1) { return gc_send_message_ack(chat, gconn, gconn->last_chunk_id + 1, GR_ACK_REQ); @@ -6164,9 +6004,8 @@ static bool handle_gc_packet_fragment(const GC_Session *c, GC_Chat *chat, uint32 * * Returns true if packet is successfully handled. */ -non_null(1, 2, 3, 4) nullable(7) -static bool handle_gc_lossless_packet(const GC_Session *c, GC_Chat *chat, const uint8_t *sender_pk, - const uint8_t *packet, uint16_t length, bool direct_conn, void *userdata) +static bool handle_gc_lossless_packet(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, const uint8_t *_Nonnull sender_pk, + const uint8_t *_Nonnull packet, uint16_t length, bool direct_conn, void *_Nullable userdata) { if (length < GC_MIN_LOSSLESS_PAYLOAD_SIZE) { return false; @@ -6242,7 +6081,7 @@ static bool handle_gc_lossless_packet(const GC_Session *c, GC_Chat *chat, const /* request missing packet */ if (lossless_ret == 1) { - LOGGER_TRACE(chat->log, "received out of order packet from peer %u. expected %llu, got %llu", peer_number, + LOGGER_TRACE(chat->log, "received out of order packet from peer %d. expected %llu, got %llu", peer_number, (unsigned long long)gconn->received_message_id + 1, (unsigned long long)message_id); mem_delete(chat->mem, data); return gc_send_message_ack(chat, gconn, gconn->received_message_id + 1, GR_ACK_REQ); @@ -6275,10 +6114,9 @@ static bool handle_gc_lossless_packet(const GC_Session *c, GC_Chat *chat, const return true; } -non_null(1, 2, 3, 4, 6) nullable(8) static int handle_gc_lossy_packet_decoded( - const GC_Session *c, GC_Chat *chat, GC_Connection *gconn, const GC_Peer *peer, - uint8_t packet_type, const uint8_t *data, uint16_t payload_len, void *userdata) + const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, const GC_Peer *_Nonnull peer, + uint8_t packet_type, const uint8_t *_Nonnull data, uint16_t payload_len, void *_Nullable userdata) { switch (packet_type) { case GP_MESSAGE_ACK: { @@ -6314,9 +6152,8 @@ static int handle_gc_lossy_packet_decoded( * * Return true if packet is handled successfully. */ -non_null(1, 2, 3, 4) nullable(7) -static bool handle_gc_lossy_packet(const GC_Session *c, GC_Chat *chat, const uint8_t *sender_pk, - const uint8_t *packet, uint16_t length, bool direct_conn, void *userdata) +static bool handle_gc_lossy_packet(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, const uint8_t *_Nonnull sender_pk, + const uint8_t *_Nonnull packet, uint16_t length, bool direct_conn, void *_Nullable userdata) { if (length < GC_MIN_LOSSY_PAYLOAD_SIZE) { return false; @@ -6378,8 +6215,7 @@ static bool handle_gc_lossy_packet(const GC_Session *c, GC_Chat *chat, const uin } /** @brief Return true if group is either connected or attempting to connect. */ -non_null() -static bool group_can_handle_packets(const GC_Chat *chat) +static bool group_can_handle_packets(const GC_Chat *_Nonnull chat) { const GC_Conn_State state = chat->connection_state; return state == CS_CONNECTING || state == CS_CONNECTED; @@ -6391,24 +6227,22 @@ static bool group_can_handle_packets(const GC_Chat *chat) * Returns -1 on failure. */ #define MIN_TCP_PACKET_SIZE (1 + ENC_PUBLIC_KEY_SIZE + CRYPTO_NONCE_SIZE + CRYPTO_MAC_SIZE) -non_null(1, 3) nullable(5) -static int handle_gc_tcp_packet(void *object, int crypt_connection_id, const uint8_t *packet, uint16_t length, void *userdata) +static int handle_gc_tcp_packet(void *_Nonnull object, int crypt_connection_id, const uint8_t *_Nonnull packet, uint16_t length, void *_Nullable userdata) { const Messenger *m = (Messenger *)object; - if (m == nullptr) { return -1; } if (length <= MIN_TCP_PACKET_SIZE) { LOGGER_WARNING(m->log, "Got tcp packet with invalid length: %u (expected %u to %u)", length, - MIN_TCP_PACKET_SIZE, MAX_GC_PACKET_INCOMING_CHUNK_SIZE + MIN_TCP_PACKET_SIZE + ENC_PUBLIC_KEY_SIZE); + (unsigned int)MIN_TCP_PACKET_SIZE, (unsigned int)(MAX_GC_PACKET_INCOMING_CHUNK_SIZE + MIN_TCP_PACKET_SIZE + ENC_PUBLIC_KEY_SIZE)); return -1; } if (length > MAX_GC_PACKET_INCOMING_CHUNK_SIZE + MIN_TCP_PACKET_SIZE + ENC_PUBLIC_KEY_SIZE) { LOGGER_WARNING(m->log, "Got tcp packet with invalid length: %u (expected %u to %u)", length, - MIN_TCP_PACKET_SIZE, MAX_GC_PACKET_INCOMING_CHUNK_SIZE + MIN_TCP_PACKET_SIZE + ENC_PUBLIC_KEY_SIZE); + (unsigned int)MIN_TCP_PACKET_SIZE, (unsigned int)(MAX_GC_PACKET_INCOMING_CHUNK_SIZE + MIN_TCP_PACKET_SIZE + ENC_PUBLIC_KEY_SIZE)); return -1; } @@ -6471,25 +6305,23 @@ static int handle_gc_tcp_packet(void *object, int crypt_connection_id, const uin } } -non_null(1, 2, 4) nullable(6) -static int handle_gc_tcp_oob_packet(void *object, const uint8_t *public_key, unsigned int tcp_connections_number, - const uint8_t *packet, uint16_t length, void *userdata) +static int handle_gc_tcp_oob_packet(void *_Nonnull object, const uint8_t *_Nonnull public_key, unsigned int tcp_connections_number, + const uint8_t *_Nonnull packet, uint16_t length, void *_Nullable userdata) { const Messenger *m = (Messenger *)object; - if (m == nullptr) { return -1; } if (length <= GC_MIN_HS_PACKET_PAYLOAD_SIZE) { LOGGER_WARNING(m->log, "Got tcp oob packet with invalid length: %u (expected %u to %u)", length, - GC_MIN_HS_PACKET_PAYLOAD_SIZE, MAX_GC_PACKET_INCOMING_CHUNK_SIZE + CRYPTO_MAC_SIZE + CRYPTO_NONCE_SIZE); + (unsigned int)GC_MIN_HS_PACKET_PAYLOAD_SIZE, (unsigned int)(MAX_GC_PACKET_INCOMING_CHUNK_SIZE + CRYPTO_MAC_SIZE + CRYPTO_NONCE_SIZE)); return -1; } if (length > MAX_GC_PACKET_INCOMING_CHUNK_SIZE + CRYPTO_MAC_SIZE + CRYPTO_NONCE_SIZE) { LOGGER_WARNING(m->log, "Got tcp oob packet with invalid length: %u (expected %u to %u)", length, - GC_MIN_HS_PACKET_PAYLOAD_SIZE, MAX_GC_PACKET_INCOMING_CHUNK_SIZE + CRYPTO_MAC_SIZE + CRYPTO_NONCE_SIZE); + (unsigned int)GC_MIN_HS_PACKET_PAYLOAD_SIZE, (unsigned int)(MAX_GC_PACKET_INCOMING_CHUNK_SIZE + CRYPTO_MAC_SIZE + CRYPTO_NONCE_SIZE)); return -1; } @@ -6527,25 +6359,23 @@ static int handle_gc_tcp_oob_packet(void *object, const uint8_t *public_key, uns } #define MIN_UDP_PACKET_SIZE (1 + ENC_PUBLIC_KEY_SIZE + CRYPTO_NONCE_SIZE + CRYPTO_MAC_SIZE) -non_null(1, 2, 3) nullable(5) -static int handle_gc_udp_packet(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, - void *userdata) +static int handle_gc_udp_packet(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, + void *_Nullable userdata) { const Messenger *m = (Messenger *)object; - if (m == nullptr) { return -1; } if (length <= MIN_UDP_PACKET_SIZE) { LOGGER_WARNING(m->log, "Got UDP packet with invalid length: %u (expected %u to %u)", length, - MIN_UDP_PACKET_SIZE, MAX_GC_PACKET_INCOMING_CHUNK_SIZE + MIN_UDP_PACKET_SIZE + ENC_PUBLIC_KEY_SIZE); + (unsigned int)MIN_UDP_PACKET_SIZE, (unsigned int)(MAX_GC_PACKET_INCOMING_CHUNK_SIZE + MIN_UDP_PACKET_SIZE + ENC_PUBLIC_KEY_SIZE)); return -1; } if (length > MAX_GC_PACKET_INCOMING_CHUNK_SIZE + MIN_UDP_PACKET_SIZE + ENC_PUBLIC_KEY_SIZE) { LOGGER_WARNING(m->log, "Got UDP packet with invalid length: %u (expected %u to %u)", length, - MIN_UDP_PACKET_SIZE, MAX_GC_PACKET_INCOMING_CHUNK_SIZE + MIN_UDP_PACKET_SIZE + ENC_PUBLIC_KEY_SIZE); + (unsigned int)MIN_UDP_PACKET_SIZE, (unsigned int)(MAX_GC_PACKET_INCOMING_CHUNK_SIZE + MIN_UDP_PACKET_SIZE + ENC_PUBLIC_KEY_SIZE)); return -1; } @@ -6714,11 +6544,9 @@ void gc_callback_rejected(const Messenger *m, gc_rejected_cb *function) * * Return true on success. */ -non_null(1, 2) nullable(4) -static bool peer_delete(const GC_Session *c, GC_Chat *chat, uint32_t peer_number, void *userdata) +static bool peer_delete(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, uint32_t peer_number, void *_Nullable userdata) { GC_Peer *peer = get_gc_peer(chat, peer_number); - if (peer == nullptr) { return false; } @@ -6899,8 +6727,7 @@ int peer_add(GC_Chat *chat, const IP_Port *ipp, const uint8_t *public_key) } /** @brief Copies own peer data to `peer`. */ -non_null() -static void copy_self(const GC_Chat *chat, GC_Peer *peer) +static void copy_self(const GC_Chat *_Nonnull chat, GC_Peer *_Nonnull peer) { *peer = (GC_Peer) { 0 @@ -6915,8 +6742,7 @@ static void copy_self(const GC_Chat *chat, GC_Peer *peer) /** @brief Returns true if we haven't received a ping from this peer after n seconds. * n depends on whether or not the peer has been confirmed. */ -non_null() -static bool peer_timed_out(const Mono_Time *mono_time, const GC_Connection *gconn) +static bool peer_timed_out(const Mono_Time *_Nonnull mono_time, const GC_Connection *_Nonnull gconn) { return mono_time_is_timeout(mono_time, gconn->last_received_packet_time, gconn->confirmed ? GC_CONFIRMED_PEER_TIMEOUT @@ -6929,8 +6755,7 @@ static bool peer_timed_out(const Mono_Time *mono_time, const GC_Connection *gcon * * Return true on success. */ -non_null() -static bool send_pending_handshake(const GC_Chat *chat, GC_Connection *gconn) +static bool send_pending_handshake(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn) { if (chat == nullptr || gconn == nullptr) { return false; @@ -6960,8 +6785,7 @@ static bool send_pending_handshake(const GC_Chat *chat, GC_Connection *gconn) } #define GC_TCP_RELAY_SEND_INTERVAL (60 * 3) -non_null(1, 2) nullable(3) -static void do_peer_connections(const GC_Session *c, GC_Chat *chat, void *userdata) +static void do_peer_connections(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, void *_Nullable userdata) { for (uint32_t i = 1; i < chat->numpeers; ++i) { GC_Connection *gconn = get_gc_connection(chat, i); @@ -6996,8 +6820,7 @@ static void do_peer_connections(const GC_Session *c, GC_Chat *chat, void *userda * load peers from our saved peers list and initiate handshake requests with them. */ #define LOAD_PEERS_TIMEOUT (GC_UNCONFIRMED_PEER_TIMEOUT + 10) -non_null() -static void do_handshakes(GC_Chat *chat) +static void do_handshakes(GC_Chat *_Nonnull chat) { for (uint32_t i = 1; i < chat->numpeers; ++i) { GC_Connection *gconn = get_gc_connection(chat, i); @@ -7021,8 +6844,7 @@ static void do_handshakes(GC_Chat *chat) } /** @brief Adds `gconn` to the group timeout list. */ -non_null() -static void add_gc_peer_timeout_list(GC_Chat *chat, const GC_Connection *gconn) +static void add_gc_peer_timeout_list(GC_Chat *_Nonnull chat, const GC_Connection *_Nonnull gconn) { const size_t idx = chat->timeout_list_index; const uint64_t tm = mono_time_get(chat->mono_time); @@ -7034,8 +6856,7 @@ static void add_gc_peer_timeout_list(GC_Chat *chat, const GC_Connection *gconn) chat->timeout_list_index = (idx + 1) % MAX_GC_SAVED_TIMEOUTS; } -non_null(1, 2) nullable(3) -static void do_peer_delete(const GC_Session *c, GC_Chat *chat, void *userdata) +static void do_peer_delete(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, void *_Nullable userdata) { for (uint32_t i = 1; i < chat->numpeers; ++i) { GC_Connection *gconn = get_gc_connection(chat, i); @@ -7071,8 +6892,7 @@ static void do_peer_delete(const GC_Session *c, GC_Chat *chat, void *userdata) * * Return true on success. */ -non_null() -static bool ping_peer(const GC_Chat *chat, GC_Connection *gconn) +static bool ping_peer(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn) { const uint16_t buf_size = GC_PING_PACKET_MIN_DATA_SIZE + sizeof(IP_Port); uint8_t *data = (uint8_t *)mem_balloc(chat->mem, buf_size); @@ -7140,8 +6960,7 @@ static bool ping_peer(const GC_Chat *chat, GC_Connection *gconn) * do not have a direct connection with. */ #define GC_DO_PINGS_INTERVAL 2 -non_null() -static void do_gc_ping_and_key_rotation(GC_Chat *chat) +static void do_gc_ping_and_key_rotation(GC_Chat *_Nonnull chat) { if (!mono_time_is_timeout(chat->mono_time, chat->last_ping_interval, GC_DO_PINGS_INTERVAL)) { return; @@ -7173,8 +6992,7 @@ static void do_gc_ping_and_key_rotation(GC_Chat *chat) chat->last_ping_interval = tm; } -non_null() -static void do_new_connection_cooldown(GC_Chat *chat) +static void do_new_connection_cooldown(GC_Chat *_Nonnull chat) { if (chat->connection_o_metre == 0) { return; @@ -7194,8 +7012,7 @@ static void do_new_connection_cooldown(GC_Chat *chat) } #define TCP_RELAYS_CHECK_INTERVAL 10 -non_null(1, 2) nullable(3) -static void do_gc_tcp(const GC_Session *c, GC_Chat *chat, void *userdata) +static void do_gc_tcp(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, void *_Nullable userdata) { if (chat->tcp_conn == nullptr || !group_can_handle_packets(chat)) { return; @@ -7225,8 +7042,7 @@ static void do_gc_tcp(const GC_Session *c, GC_Chat *chat, void *userdata) */ #define GC_SELF_CONNECTION_CHECK_INTERVAL 5 // how often in seconds we should run this function #define GC_SELF_REFRESH_ANNOUNCE_INTERVAL (60 * 20) // how often in seconds we force refresh our group announcement -non_null() -static void do_self_connection(const GC_Session *c, GC_Chat *chat) +static void do_self_connection(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat) { if (!mono_time_is_timeout(chat->mono_time, chat->last_self_announce_check, GC_SELF_CONNECTION_CHECK_INTERVAL)) { return; @@ -7254,8 +7070,7 @@ static void do_self_connection(const GC_Session *c, GC_Chat *chat) * should automatically do this for us. */ #define TIMED_OUT_RECONN_INTERVAL 2 -non_null() -static void do_timed_out_reconn(GC_Chat *chat) +static void do_timed_out_reconn(GC_Chat *_Nonnull chat) { if (is_public_chat(chat)) { return; @@ -7337,8 +7152,7 @@ void do_gc(GC_Session *c, void *userdata) * * Return true on success. */ -non_null() -static bool realloc_groupchats(const Memory *mem, GC_Session *c, uint32_t n) +static bool realloc_groupchats(const Memory *_Nonnull mem, GC_Session *_Nonnull c, uint32_t n) { if (n == 0) { mem_delete(mem, c->chats); @@ -7356,8 +7170,7 @@ static bool realloc_groupchats(const Memory *mem, GC_Session *c, uint32_t n) return true; } -non_null() -static int get_new_group_index(const Memory *mem, GC_Session *c) +static int get_new_group_index(const Memory *_Nonnull mem, GC_Session *_Nonnull c) { if (c == nullptr) { return -1; @@ -7412,8 +7225,7 @@ static void add_tcp_relays_to_chat(const GC_Session *c, GC_Chat *chat) mem_delete(chat->mem, tcp_relays); } -non_null() -static bool init_gc_tcp_connection(const GC_Session *c, GC_Chat *chat) +static bool init_gc_tcp_connection(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat) { const Messenger *m = c->messenger; @@ -7433,8 +7245,7 @@ static bool init_gc_tcp_connection(const GC_Session *c, GC_Chat *chat) } /** Initializes default shared state values. */ -non_null() -static void init_gc_shared_state(GC_Chat *chat, Group_Privacy_State privacy_state) +static void init_gc_shared_state(GC_Chat *_Nonnull chat, Group_Privacy_State privacy_state) { chat->shared_state.maxpeers = MAX_GC_PEERS_DEFAULT; chat->shared_state.privacy_state = privacy_state; @@ -7446,9 +7257,7 @@ static void init_gc_shared_state(GC_Chat *chat, Group_Privacy_State privacy_stat * * Return true on success. */ -non_null() -static bool init_gc_shared_state_founder(GC_Chat *chat, Group_Privacy_State privacy_state, const uint8_t *group_name, - uint16_t name_length) +static bool init_gc_shared_state_founder(GC_Chat *_Nonnull chat, Group_Privacy_State privacy_state, const uint8_t *_Nonnull group_name, uint16_t name_length) { chat->shared_state.founder_public_key = chat->self_public_key; memcpy(chat->shared_state.group_name, group_name, name_length); @@ -7463,8 +7272,7 @@ static bool init_gc_shared_state_founder(GC_Chat *chat, Group_Privacy_State priv * This must be called before any moderation * or sanctions related operations. */ -non_null() -static void init_gc_moderation(GC_Chat *chat) +static void init_gc_moderation(GC_Chat *_Nonnull chat) { memcpy(chat->moderation.founder_public_sig_key, get_sig_pk(&chat->shared_state.founder_public_key), SIG_PUBLIC_KEY_SIZE); @@ -7475,12 +7283,9 @@ static void init_gc_moderation(GC_Chat *chat) chat->moderation.mem = chat->mem; } -non_null() -static bool create_new_chat_ext_keypair(GC_Chat *chat); +static bool create_new_chat_ext_keypair(GC_Chat *_Nonnull chat); -non_null() -static int create_new_group(const Memory *mem, GC_Session *c, const uint8_t *nick, size_t nick_length, bool founder, - const Group_Privacy_State privacy_state) +static int create_new_group(const Memory *_Nonnull mem, GC_Session *_Nonnull c, const uint8_t *_Nonnull nick, size_t nick_length, bool founder, const Group_Privacy_State privacy_state) { if (nick == nullptr || nick_length == 0) { return -1; @@ -7553,8 +7358,7 @@ static int create_new_group(const Memory *mem, GC_Session *c, const uint8_t *nic * * Return true on success. */ -non_null() -static bool init_gc_sanctions_creds(GC_Chat *chat) +static bool init_gc_sanctions_creds(GC_Chat *_Nonnull chat) { return sanctions_list_make_creds(&chat->moderation); } @@ -7934,8 +7738,7 @@ int gc_invite_friend(const GC_Session *c, GC_Chat *chat, int32_t friend_number, * Return -2 if `chat `is null. * Return -3 if packet failed to send. */ -non_null() -static int send_gc_invite_accepted_packet(const Messenger *m, const GC_Chat *chat, uint32_t friend_number) +static int send_gc_invite_accepted_packet(const Messenger *_Nonnull m, const GC_Chat *_Nonnull chat, uint32_t friend_number) { if (!friend_is_valid(m, friend_number)) { return -1; @@ -7971,9 +7774,7 @@ static int send_gc_invite_accepted_packet(const Messenger *m, const GC_Chat *cha * * Return true on success. */ -non_null() -static bool send_gc_invite_confirmed_packet(const Messenger *m, const GC_Chat *chat, uint32_t friend_number, - const uint8_t *data, uint16_t length) +static bool send_gc_invite_confirmed_packet(const Messenger *_Nonnull m, const GC_Chat *_Nonnull chat, uint32_t friend_number, const uint8_t *_Nonnull data, uint16_t length) { if (!friend_is_valid(m, friend_number)) { return false; @@ -8013,9 +7814,7 @@ static bool send_gc_invite_confirmed_packet(const Messenger *m, const GC_Chat *c * * Returns the number of relays successfully added. */ -non_null() -static uint32_t add_gc_tcp_relays(const GC_Chat *chat, GC_Connection *gconn, const Node_format *tcp_relays, - size_t num_nodes) +static uint32_t add_gc_tcp_relays(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, const Node_format *_Nonnull tcp_relays, size_t num_nodes) { uint32_t relays_added = 0; @@ -8034,8 +7833,7 @@ static uint32_t add_gc_tcp_relays(const GC_Chat *chat, GC_Connection *gconn, con return relays_added; } -non_null() -static bool copy_friend_ip_port_to_gconn(const Messenger *m, int friend_number, GC_Connection *gconn) +static bool copy_friend_ip_port_to_gconn(const Messenger *_Nonnull m, int friend_number, GC_Connection *_Nonnull gconn) { if (!friend_is_valid(m, friend_number)) { return false; @@ -8116,8 +7914,7 @@ int handle_gc_invite_confirmed_packet(const GC_Session *c, int friend_number, co } /** Return true if we have a pending sent invite for our friend designated by `friend_number`. */ -non_null() -static bool friend_was_invited(const Messenger *m, GC_Chat *chat, int friend_number) +static bool friend_was_invited(const Messenger *_Nonnull m, GC_Chat *_Nonnull chat, int friend_number) { for (size_t i = 0; i < MAX_GC_SAVED_INVITES; ++i) { if (chat->saved_invites[i] == friend_number) { @@ -8256,10 +8053,8 @@ int gc_accept_invite(GC_Session *c, int32_t friend_number, const uint8_t *data, return group_number; } -non_null(1, 3) nullable(5) -static bool gc_handle_announce_response_callback(Onion_Client *onion_c, uint32_t sendback_num, const uint8_t *data, - size_t data_length, void *user_data); - +static bool gc_handle_announce_response_callback(Onion_Client *_Nonnull onion_c, uint32_t sendback_num, const uint8_t *_Nonnull data, + size_t data_length, void *_Nullable user_data); GC_Session *new_dht_groupchats(Messenger *m) { if (m == nullptr) { @@ -8345,8 +8140,7 @@ int gc_group_exit(GC_Session *c, GC_Chat *chat, const uint8_t *message, uint16_t return group_can_handle_packets(chat) ? send_gc_self_exit(chat, message, length) : 0; } -non_null() -static int kill_group(GC_Session *c, GC_Chat *chat) +static int kill_group(GC_Session *_Nonnull c, GC_Chat *_Nonnull chat) { const int ret = gc_group_exit(c, chat, nullptr, 0); group_delete(c, chat); @@ -8461,8 +8255,7 @@ static void create_gc_session_keypair(const Logger *log, const Random *rng, uint * * Return false if key generation fails. */ -non_null() -static bool create_new_chat_ext_keypair(GC_Chat *chat) +static bool create_new_chat_ext_keypair(GC_Chat *_Nonnull chat) { crypto_memlock(&chat->self_secret_key, sizeof(chat->self_secret_key)); @@ -8515,8 +8308,7 @@ static bool gc_handle_announce_response_callback(Onion_Client *onion_c, uint32_t * * Returns the number of relays successfully added. */ -non_null() -static uint32_t add_gc_tcp_relays_from_announce(const GC_Chat *chat, GC_Connection *gconn, const GC_Announce *announce) +static uint32_t add_gc_tcp_relays_from_announce(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, const GC_Announce *_Nonnull announce) { uint32_t added_relays = 0; diff --git a/external/toxcore/c-toxcore/toxcore/group_chats.h b/external/toxcore/c-toxcore/toxcore/group_chats.h index 481dee1..ef051e7 100644 --- a/external/toxcore/c-toxcore/toxcore/group_chats.h +++ b/external/toxcore/c-toxcore/toxcore/group_chats.h @@ -115,12 +115,10 @@ typedef enum Group_Message_Ack_Type { /** @brief Returns the GC_Connection object associated with `peer_number`. * Returns null if peer_number does not designate a valid peer. */ -non_null() -GC_Connection *get_gc_connection(const GC_Chat *chat, int peer_number); +GC_Connection *_Nullable get_gc_connection(const GC_Chat *_Nonnull chat, int peer_number); /** @brief Returns the jenkins hash of a 32 byte public encryption key. */ -non_null() -uint32_t gc_get_pk_jenkins_hash(const uint8_t *public_key); +uint32_t gc_get_pk_jenkins_hash(const uint8_t *_Nonnull public_key); /** @brief Check if peer with the public encryption key is in peer list. * @@ -129,8 +127,7 @@ uint32_t gc_get_pk_jenkins_hash(const uint8_t *public_key); * * If `confirmed` is true the peer number will only be returned if the peer is confirmed. */ -non_null() -int get_peer_number_of_enc_pk(const GC_Chat *chat, const uint8_t *public_enc_key, bool confirmed); +int get_peer_number_of_enc_pk(const GC_Chat *_Nonnull chat, const uint8_t *_Nonnull public_enc_key, bool confirmed); /** @brief Encrypts `data` of size `length` using the peer's shared key and a new nonce. * @@ -142,12 +139,10 @@ int get_peer_number_of_enc_pk(const GC_Chat *chat, const uint8_t *public_enc_key * Return -2 if malloc fails. * Return -3 if encryption fails. */ -non_null(1, 2, 3, 4, 5, 6) nullable(8) int group_packet_wrap( - const Logger *log, const Memory *mem, const Random *rng, const uint8_t *self_pk, const uint8_t *shared_key, uint8_t *packet, - uint16_t packet_size, const uint8_t *data, uint16_t length, uint64_t message_id, + const Logger *_Nonnull log, const Memory *_Nonnull mem, const Random *_Nonnull rng, const uint8_t *_Nonnull self_pk, const uint8_t *_Nonnull shared_key, uint8_t *_Nonnull packet, + uint16_t packet_size, const uint8_t *_Nullable data, uint16_t length, uint64_t message_id, uint8_t gp_packet_type, Net_Packet_Type net_packet_type); - /** @brief Returns the size of a wrapped/encrypted packet with a plain size of `length`. * * `packet_type` should be either NET_PACKET_GC_LOSSY or NET_PACKET_GC_LOSSLESS. @@ -166,10 +161,8 @@ uint16_t gc_get_wrapped_packet_size(uint16_t length, Net_Packet_Type packet_type * Returns -4 if the sender does not have permission to speak. * Returns -5 if the packet fails to send. */ -non_null(1, 2) nullable(5) -int gc_send_message(const GC_Chat *chat, const uint8_t *message, uint16_t length, uint8_t type, - uint32_t *message_id); - +int gc_send_message(const GC_Chat *_Nonnull chat, const uint8_t *_Nonnull message, uint16_t length, uint8_t type, + uint32_t *_Nullable message_id); /** @brief Sends a private message to peer_id. * * `length` must not exceed MAX_GC_MESSAGE_SIZE and must not be equal to zero. @@ -182,10 +175,8 @@ int gc_send_message(const GC_Chat *chat, const uint8_t *message, uint16_t length * Returns -5 if the sender has the observer role. * Returns -6 if the packet fails to send. */ -non_null(1, 4) nullable(6) -int gc_send_private_message(const GC_Chat *chat, GC_Peer_Id peer_id, uint8_t type, const uint8_t *message, - uint16_t length, uint32_t *message_id); - +int gc_send_private_message(const GC_Chat *_Nonnull chat, GC_Peer_Id peer_id, uint8_t type, const uint8_t *_Nonnull message, + uint16_t length, uint32_t *_Nullable message_id); /** @brief Sends a custom packet to the group. If lossless is true, the packet will be lossless. * * `length` must not exceed MAX_GC_MESSAGE_SIZE and must not be equal to zero. @@ -195,8 +186,7 @@ int gc_send_private_message(const GC_Chat *chat, GC_Peer_Id peer_id, uint8_t typ * Returns -2 if the message pointer is NULL or length is zero. * Returns -3 if the packet did not successfully send to any peer. */ -non_null() -int gc_send_custom_packet(const GC_Chat *chat, bool lossless, const uint8_t *data, uint16_t length); +int gc_send_custom_packet(const GC_Chat *_Nonnull chat, bool lossless, const uint8_t *_Nonnull data, uint16_t length); /** @brief Sends a custom private packet to the peer designated by peer_id. * @@ -208,9 +198,7 @@ int gc_send_custom_packet(const GC_Chat *chat, bool lossless, const uint8_t *dat * @retval -3 if the supplied peer_id does not designate a valid peer. * @retval -4 if the packet fails to send. */ -non_null() -int gc_send_custom_private_packet(const GC_Chat *chat, bool lossless, GC_Peer_Id peer_id, const uint8_t *message, - uint16_t length); +int gc_send_custom_private_packet(const GC_Chat *_Nonnull chat, bool lossless, GC_Peer_Id peer_id, const uint8_t *_Nonnull message, uint16_t length); /** @brief Sets ignore for peer_id. * @@ -218,8 +206,7 @@ int gc_send_custom_private_packet(const GC_Chat *chat, bool lossless, GC_Peer_Id * Returns -1 if the peer_id is invalid. * Returns -2 if the caller attempted to ignore himself. */ -non_null() -int gc_set_ignore(const GC_Chat *chat, GC_Peer_Id peer_id, bool ignore); +int gc_set_ignore(const GC_Chat *_Nonnull chat, GC_Peer_Id peer_id, bool ignore); /** @brief Sets the group topic and broadcasts it to the group. * @@ -231,36 +218,29 @@ int gc_set_ignore(const GC_Chat *chat, GC_Peer_Id peer_id, bool ignore); * Returns -3 if the packet cannot be created or signing fails. * Returns -4 if the packet fails */ -non_null(1) nullable(2) -int gc_set_topic(GC_Chat *chat, const uint8_t *topic, uint16_t length); - +int gc_set_topic(GC_Chat *_Nonnull chat, const uint8_t *_Nullable topic, uint16_t length); /** @brief Copies the group topic to `topic`. If topic is null this function has no effect. * * Call `gc_get_topic_size` to determine the allocation size for the `topic` parameter. * * The data written to `topic` is equal to the data received by the last topic callback. */ -non_null(1) nullable(2) -void gc_get_topic(const GC_Chat *chat, uint8_t *topic); - +void gc_get_topic(const GC_Chat *_Nonnull chat, uint8_t *_Nullable topic); /** @brief Returns the topic length. * * The return value is equal to the `length` agument received by the last topic callback. */ -non_null() -uint16_t gc_get_topic_size(const GC_Chat *chat); +uint16_t gc_get_topic_size(const GC_Chat *_Nonnull chat); /** @brief Copies group name to `group_name`. If `group_name` is null this function has no effect. * * Call `gc_get_group_name_size` to determine the allocation size for the `group_name` * parameter. */ -non_null() -void gc_get_group_name(const GC_Chat *chat, uint8_t *group_name); +void gc_get_group_name(const GC_Chat *_Nonnull chat, uint8_t *_Nonnull group_name); /** @brief Returns the group name length. */ -non_null() -uint16_t gc_get_group_name_size(const GC_Chat *chat); +uint16_t gc_get_group_name_size(const GC_Chat *_Nonnull chat); /** @brief Copies the group password to password. * @@ -271,40 +251,34 @@ uint16_t gc_get_group_name_size(const GC_Chat *chat); * * The data received is equal to the data received by the last password callback. */ -non_null() -void gc_get_password(const GC_Chat *chat, uint8_t *password); +void gc_get_password(const GC_Chat *_Nonnull chat, uint8_t *_Nonnull password); /** @brief Returns the group password length. */ -non_null() -uint16_t gc_get_password_size(const GC_Chat *chat); +uint16_t gc_get_password_size(const GC_Chat *_Nonnull chat); /** @brief Returns the group privacy state. * * The value returned is equal to the data receieved by the last privacy_state callback. */ -non_null() -Group_Privacy_State gc_get_privacy_state(const GC_Chat *chat); +Group_Privacy_State gc_get_privacy_state(const GC_Chat *_Nonnull chat); /** @brief Returns the group topic lock state. * * The value returned is equal to the data received by the last last topic_lock callback. */ -non_null() -Group_Topic_Lock gc_get_topic_lock_state(const GC_Chat *chat); +Group_Topic_Lock gc_get_topic_lock_state(const GC_Chat *_Nonnull chat); /** @brief Returns the group voice state. * * The value returned is equal to the data received by the last voice_state callback. */ -non_null() -Group_Voice_State gc_get_voice_state(const GC_Chat *chat); +Group_Voice_State gc_get_voice_state(const GC_Chat *_Nonnull chat); /** @brief Returns the group peer limit. * * The value returned is equal to the data receieved by the last peer_limit callback. */ -non_null() -uint16_t gc_get_max_peers(const GC_Chat *chat); +uint16_t gc_get_max_peers(const GC_Chat *_Nonnull chat); /** @brief Sets your own nick to `nick`. * @@ -317,34 +291,28 @@ uint16_t gc_get_max_peers(const GC_Chat *chat); * Returns -3 if the length is zero or nick is a NULL pointer. * Returns -4 if the packet fails to send. */ -non_null() -int gc_set_self_nick(const Messenger *m, int group_number, const uint8_t *nick, uint16_t length); +int gc_set_self_nick(const Messenger *_Nonnull m, int group_number, const uint8_t *_Nonnull nick, uint16_t length); /** @brief Copies your own name to `nick`. * * If `nick` is null this function has no effect. */ -non_null() -void gc_get_self_nick(const GC_Chat *chat, uint8_t *nick); +void gc_get_self_nick(const GC_Chat *_Nonnull chat, uint8_t *_Nonnull nick); /** @brief Return your own nick length. * * If no nick was set before calling this function it will return 0. */ -non_null() -uint16_t gc_get_self_nick_size(const GC_Chat *chat); +uint16_t gc_get_self_nick_size(const GC_Chat *_Nonnull chat); /** @brief Returns your own group role. */ -non_null() -Group_Role gc_get_self_role(const GC_Chat *chat); +Group_Role gc_get_self_role(const GC_Chat *_Nonnull chat); /** @brief Return your own status. */ -non_null() -uint8_t gc_get_self_status(const GC_Chat *chat); +uint8_t gc_get_self_status(const GC_Chat *_Nonnull chat); /** @brief Returns your own peer id. */ -non_null() -GC_Peer_Id gc_get_self_peer_id(const GC_Chat *chat); +GC_Peer_Id gc_get_self_peer_id(const GC_Chat *_Nonnull chat); /** @brief Copies self public key to `public_key`. * @@ -354,9 +322,7 @@ GC_Peer_Id gc_get_self_peer_id(const GC_Chat *chat); * exit the group. This key is the only way for other peers to reliably identify * us across client restarts. */ -non_null(1) nullable(2) -void gc_get_self_public_key(const GC_Chat *chat, uint8_t *public_key); - +void gc_get_self_public_key(const GC_Chat *_Nonnull chat, uint8_t *_Nullable public_key); /** @brief Copies nick designated by `peer_id` to `name`. * * Call `gc_get_peer_nick_size` to determine the allocation size for the `name` parameter. @@ -366,17 +332,14 @@ void gc_get_self_public_key(const GC_Chat *chat, uint8_t *public_key); * Returns true on success. * Returns false if peer_id is invalid. */ -non_null(1) nullable(3) -bool gc_get_peer_nick(const GC_Chat *chat, GC_Peer_Id peer_id, uint8_t *name); - +bool gc_get_peer_nick(const GC_Chat *_Nonnull chat, GC_Peer_Id peer_id, uint8_t *_Nullable name); /** @brief Returns the length of the nick for the peer designated by `peer_id`. * Returns -1 if peer_id is invalid. * * The value returned is equal to the `length` argument received by the last * nick_change callback. */ -non_null() -int gc_get_peer_nick_size(const GC_Chat *chat, GC_Peer_Id peer_id); +int gc_get_peer_nick_size(const GC_Chat *_Nonnull chat, GC_Peer_Id peer_id); /** @brief Copies peer_id's public key to `public_key`. * @@ -390,14 +353,11 @@ int gc_get_peer_nick_size(const GC_Chat *chat, GC_Peer_Id peer_id); * Returns -1 if peer_id is invalid or doesn't correspond to a valid peer connection. * Returns -2 if `public_key` is null. */ -non_null(1) nullable(3) -int gc_get_peer_public_key_by_peer_id(const GC_Chat *chat, GC_Peer_Id peer_id, uint8_t *public_key); - +int gc_get_peer_public_key_by_peer_id(const GC_Chat *_Nonnull chat, GC_Peer_Id peer_id, uint8_t *_Nullable public_key); /** @brief Returns the length of the IP address for the peer designated by `peer_id`. * Returns -1 if peer_id is invalid. */ -non_null() -int gc_get_peer_ip_address_size(const GC_Chat *chat, GC_Peer_Id peer_id); +int gc_get_peer_ip_address_size(const GC_Chat *_Nonnull chat, GC_Peer_Id peer_id); /** @brief Copies peer_id's IP address to `ip_addr`. * @@ -413,9 +373,7 @@ int gc_get_peer_ip_address_size(const GC_Chat *chat, GC_Peer_Id peer_id); * Returns -1 if peer_id is invalid or doesn't correspond to a valid peer connection. * Returns -2 if `ip_addr` is null. */ -non_null(1) nullable(3) -int gc_get_peer_ip_address(const GC_Chat *chat, GC_Peer_Id peer_id, uint8_t *ip_addr); - +int gc_get_peer_ip_address(const GC_Chat *_Nonnull chat, GC_Peer_Id peer_id, uint8_t *_Nullable ip_addr); /** @brief Gets the connection status for peer associated with `peer_id`. * * If `peer_id` designates ourself, the return value indicates whether we're capable @@ -427,8 +385,7 @@ int gc_get_peer_ip_address(const GC_Chat *chat, GC_Peer_Id peer_id, uint8_t *ip_ * * Note: Return values must correspond to Tox_Connection enum in API. */ -non_null() -unsigned int gc_get_peer_connection_status(const GC_Chat *chat, GC_Peer_Id peer_id); +unsigned int gc_get_peer_connection_status(const GC_Chat *_Nonnull chat, GC_Peer_Id peer_id); /** @brief Sets the caller's status to `status`. * @@ -436,8 +393,7 @@ unsigned int gc_get_peer_connection_status(const GC_Chat *chat, GC_Peer_Id peer_ * Returns -1 if the group_number is invalid. * Returns -2 if the packet failed to send. */ -non_null() -int gc_set_self_status(const Messenger *m, int group_number, Group_Peer_Status status); +int gc_set_self_status(const Messenger *_Nonnull m, int group_number, Group_Peer_Status status); /** @brief Returns the status of peer designated by `peer_id`. * Returns UINT8_MAX on failure. @@ -445,16 +401,14 @@ int gc_set_self_status(const Messenger *m, int group_number, Group_Peer_Status s * The status returned is equal to the last status received through the status_change * callback. */ -non_null() -uint8_t gc_get_status(const GC_Chat *chat, GC_Peer_Id peer_id); +uint8_t gc_get_status(const GC_Chat *_Nonnull chat, GC_Peer_Id peer_id); /** @brief Returns the group role of peer designated by `peer_id`. * Returns UINT8_MAX on failure. * * The role returned is equal to the last role received through the moderation callback. */ -non_null() -uint8_t gc_get_role(const GC_Chat *chat, GC_Peer_Id peer_id); +uint8_t gc_get_role(const GC_Chat *_Nonnull chat, GC_Peer_Id peer_id); /** @brief Sets the role of peer_id. role must be one of: GR_MODERATOR, GR_USER, GR_OBSERVER * @@ -466,8 +420,7 @@ uint8_t gc_get_role(const GC_Chat *chat, GC_Peer_Id peer_id); * Returns -5 if the role failed to be set. * Returns -6 if the caller attempted to kick himself. */ -non_null() -int gc_set_peer_role(const Messenger *m, int group_number, GC_Peer_Id peer_id, Group_Role new_role); +int gc_set_peer_role(const Messenger *_Nonnull m, int group_number, GC_Peer_Id peer_id, Group_Role new_role); /** @brief Sets the group password and distributes the new shared state to the group. * @@ -481,9 +434,7 @@ int gc_set_peer_role(const Messenger *m, int group_number, GC_Peer_Id peer_id, G * Returns -3 if the packet failed to send. * Returns -4 if malloc failed. */ -non_null(1) nullable(2) -int gc_founder_set_password(GC_Chat *chat, const uint8_t *password, uint16_t password_length); - +int gc_founder_set_password(GC_Chat *_Nonnull chat, const uint8_t *_Nullable password, uint16_t password_length); /** @brief Sets the topic lock and distributes the new shared state to the group. * * When the topic lock is enabled, only the group founder and moderators may set the topic. @@ -499,8 +450,7 @@ int gc_founder_set_password(GC_Chat *chat, const uint8_t *password, uint16_t pas * Returns -5 if the topic lock could not be set. * Returns -6 if the packet failed to send. */ -non_null() -int gc_founder_set_topic_lock(const Messenger *m, int group_number, Group_Topic_Lock new_lock_state); +int gc_founder_set_topic_lock(const Messenger *_Nonnull m, int group_number, Group_Topic_Lock new_lock_state); /** @brief Sets the group privacy state and distributes the new shared state to the group. * @@ -516,8 +466,7 @@ int gc_founder_set_topic_lock(const Messenger *m, int group_number, Group_Topic_ * Returns -4 if the privacy state could not be set. * Returns -5 if the packet failed to send. */ -non_null() -int gc_founder_set_privacy_state(const Messenger *m, int group_number, Group_Privacy_State new_privacy_state); +int gc_founder_set_privacy_state(const Messenger *_Nonnull m, int group_number, Group_Privacy_State new_privacy_state); /** @brief Sets the group voice state and distributes the new shared state to the group. * @@ -533,8 +482,7 @@ int gc_founder_set_privacy_state(const Messenger *m, int group_number, Group_Pri * Returns -4 if the voice state could not be set. * Returns -5 if the packet failed to send. */ -non_null() -int gc_founder_set_voice_state(const Messenger *m, int group_number, Group_Voice_State new_voice_state); +int gc_founder_set_voice_state(const Messenger *_Nonnull m, int group_number, Group_Voice_State new_voice_state); /** @brief Sets the peer limit to maxpeers and distributes the new shared state to the group. * @@ -545,8 +493,7 @@ int gc_founder_set_voice_state(const Messenger *m, int group_number, Group_Voice * Returns -2 if the peer limit could not be set. * Returns -3 if the packet failed to send. */ -non_null() -int gc_founder_set_max_peers(GC_Chat *chat, uint16_t max_peers); +int gc_founder_set_max_peers(GC_Chat *_Nonnull chat, uint16_t max_peers); /** @brief Removes peer designated by `peer_id` from peer list and sends a broadcast instructing * all other peers to remove the peer from their peerlist as well. @@ -561,51 +508,42 @@ int gc_founder_set_max_peers(GC_Chat *chat, uint16_t max_peers); * Returns -5 if the packet failed to send. * Returns -6 if the caller attempted to kick himself. */ -non_null() -int gc_kick_peer(const Messenger *m, int group_number, GC_Peer_Id peer_id); +int gc_kick_peer(const Messenger *_Nonnull m, int group_number, GC_Peer_Id peer_id); /** @brief Copies the chat_id to dest. If dest is null this function has no effect. * * `dest` should have room for at least CHAT_ID_SIZE bytes. */ -non_null(1) nullable(2) -void gc_get_chat_id(const GC_Chat *chat, uint8_t *dest); - +void gc_get_chat_id(const GC_Chat *_Nonnull chat, uint8_t *_Nullable dest); /** Group callbacks */ -non_null(1) nullable(2) void gc_callback_message(const Messenger *m, gc_message_cb *function); -non_null(1) nullable(2) void gc_callback_private_message(const Messenger *m, gc_private_message_cb *function); -non_null(1) nullable(2) void gc_callback_custom_packet(const Messenger *m, gc_custom_packet_cb *function); -non_null(1) nullable(2) void gc_callback_custom_private_packet(const Messenger *m, - gc_custom_private_packet_cb *function); -non_null(1) nullable(2) void gc_callback_moderation(const Messenger *m, gc_moderation_cb *function); -non_null(1) nullable(2) void gc_callback_nick_change(const Messenger *m, gc_nick_change_cb *function); -non_null(1) nullable(2) void gc_callback_status_change(const Messenger *m, gc_status_change_cb *function); -non_null(1) nullable(2) void gc_callback_topic_change(const Messenger *m, gc_topic_change_cb *function); -non_null(1) nullable(2) void gc_callback_peer_limit(const Messenger *m, gc_peer_limit_cb *function); -non_null(1) nullable(2) void gc_callback_privacy_state(const Messenger *m, gc_privacy_state_cb *function); -non_null(1) nullable(2) void gc_callback_topic_lock(const Messenger *m, gc_topic_lock_cb *function); -non_null(1) nullable(2) void gc_callback_password(const Messenger *m, gc_password_cb *function); -non_null(1) nullable(2) void gc_callback_peer_join(const Messenger *m, gc_peer_join_cb *function); -non_null(1) nullable(2) void gc_callback_peer_exit(const Messenger *m, gc_peer_exit_cb *function); -non_null(1) nullable(2) void gc_callback_self_join(const Messenger *m, gc_self_join_cb *function); -non_null(1) nullable(2) void gc_callback_rejected(const Messenger *m, gc_rejected_cb *function); -non_null(1) nullable(2) void gc_callback_voice_state(const Messenger *m, gc_voice_state_cb *function); +void gc_callback_message(const Messenger *_Nonnull m, gc_message_cb *_Nullable function); +void gc_callback_private_message(const Messenger *_Nonnull m, gc_private_message_cb *_Nullable function); +void gc_callback_custom_packet(const Messenger *_Nonnull m, gc_custom_packet_cb *_Nullable function); +void gc_callback_custom_private_packet(const Messenger *_Nonnull m, + gc_custom_private_packet_cb *_Nullable function); +void gc_callback_moderation(const Messenger *_Nonnull m, gc_moderation_cb *_Nullable function); +void gc_callback_nick_change(const Messenger *_Nonnull m, gc_nick_change_cb *_Nullable function); +void gc_callback_status_change(const Messenger *_Nonnull m, gc_status_change_cb *_Nullable function); +void gc_callback_topic_change(const Messenger *_Nonnull m, gc_topic_change_cb *_Nullable function); +void gc_callback_peer_limit(const Messenger *_Nonnull m, gc_peer_limit_cb *_Nullable function); +void gc_callback_privacy_state(const Messenger *_Nonnull m, gc_privacy_state_cb *_Nullable function); +void gc_callback_topic_lock(const Messenger *_Nonnull m, gc_topic_lock_cb *_Nullable function); +void gc_callback_password(const Messenger *_Nonnull m, gc_password_cb *_Nullable function); +void gc_callback_peer_join(const Messenger *_Nonnull m, gc_peer_join_cb *_Nullable function); +void gc_callback_peer_exit(const Messenger *_Nonnull m, gc_peer_exit_cb *_Nullable function); +void gc_callback_self_join(const Messenger *_Nonnull m, gc_self_join_cb *_Nullable function); +void gc_callback_rejected(const Messenger *_Nonnull m, gc_rejected_cb *_Nullable function); +void gc_callback_voice_state(const Messenger *_Nonnull m, gc_voice_state_cb *_Nullable function); /** @brief The main loop. Should be called with every Messenger iteration. */ -non_null(1) nullable(2) -void do_gc(GC_Session *c, void *userdata); - +void do_gc(GC_Session *_Nonnull c, void *_Nullable userdata); /** * Make sure that DHT is initialized before calling this. * Returns a NULL pointer on failure. */ -nullable(1) -GC_Session *new_dht_groupchats(Messenger *m); - +GC_Session *_Nullable new_dht_groupchats(Messenger *_Nullable m); /** @brief Cleans up groupchat structures and calls `gc_group_exit()` for every group chat */ -nullable(1) -void kill_dht_groupchats(GC_Session *c); - +void kill_dht_groupchats(GC_Session *_Nullable c); /** @brief Loads a previously saved group and attempts to join it. * * `bu` is the packed group info. @@ -613,14 +551,12 @@ void kill_dht_groupchats(GC_Session *c); * Returns group_number on success. * Returns -1 on failure. */ -non_null() -int gc_group_load(GC_Session *c, Bin_Unpack *bu); +int gc_group_load(GC_Session *_Nonnull c, Bin_Unpack *_Nonnull bu); /** * @brief Saves info from `chat` to `bp` in binary format. */ -non_null() -void gc_group_save(const GC_Chat *chat, Bin_Pack *bp); +void gc_group_save(const GC_Chat *_Nonnull chat, Bin_Pack *_Nonnull bp); /** @brief Creates a new group and adds it to the group sessions group array. * @@ -635,10 +571,7 @@ void gc_group_save(const GC_Chat *chat, Bin_Pack *bp); * Return -4 if the group state fails to initialize. * Return -5 if the Messenger friend connection fails to initialize. */ -non_null() -int gc_group_add(GC_Session *c, Group_Privacy_State privacy_state, const uint8_t *group_name, - uint16_t group_name_length, - const uint8_t *nick, size_t nick_length); +int gc_group_add(GC_Session *_Nonnull c, Group_Privacy_State privacy_state, const uint8_t *_Nonnull group_name, uint16_t group_name_length, const uint8_t *_Nonnull nick, size_t nick_length); /** @brief Joins a group designated by `chat_id`. * @@ -656,17 +589,14 @@ int gc_group_add(GC_Session *c, Group_Privacy_State privacy_state, const uint8_t * Return -5 if there is an error setting the group password. * Return -6 if the Messenger friend connection fails to initialize. */ -non_null(1, 2, 3) nullable(5) -int gc_group_join(GC_Session *c, const uint8_t *chat_id, const uint8_t *nick, size_t nick_length, const uint8_t *passwd, +int gc_group_join(GC_Session *_Nonnull c, const uint8_t *_Nonnull chat_id, const uint8_t *_Nonnull nick, size_t nick_length, const uint8_t *_Nullable passwd, uint16_t passwd_len); - /** @brief Disconnects from all peers in a group but saves the group state for later use. * * Return true on sucess. * Return false if the group handler object or chat object is null. */ -non_null() -bool gc_disconnect_from_group(const GC_Session *c, GC_Chat *chat); +bool gc_disconnect_from_group(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat); /** @brief Disconnects from all peers in a group and attempts to reconnect. * @@ -676,9 +606,7 @@ bool gc_disconnect_from_group(const GC_Session *c, GC_Chat *chat); * Returns -1 if the group handler object or chat object is null. * Returns -2 if the Messenger friend connection fails to initialize. */ -non_null(1, 2) nullable(3) -int gc_rejoin_group(GC_Session *c, GC_Chat *chat, const uint8_t *passwd, uint16_t passwd_len); - +int gc_rejoin_group(GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, const uint8_t *_Nullable passwd, uint16_t passwd_len); /** @brief Joins a group using the invite data received in a friend's group invite. * * The invite is only valid while the inviter is present in the group. @@ -692,11 +620,9 @@ int gc_rejoin_group(GC_Session *c, GC_Chat *chat, const uint8_t *passwd, uint16_ * Return -6 if friend doesn't exist. * Return -7 if sending packet failed. */ -non_null(1, 3, 5) nullable(7) -int gc_accept_invite(GC_Session *c, int32_t friend_number, const uint8_t *data, uint16_t length, const uint8_t *nick, - size_t nick_length, const uint8_t *passwd, uint16_t passwd_len); - -typedef bool gc_send_group_invite_packet_cb(const Messenger *m, uint32_t friendnumber, const uint8_t *packet, +int gc_accept_invite(GC_Session *_Nonnull c, int32_t friend_number, const uint8_t *_Nonnull data, uint16_t length, const uint8_t *_Nonnull nick, + size_t nick_length, const uint8_t *_Nullable passwd, uint16_t passwd_len); +typedef bool gc_send_group_invite_packet_cb(const Messenger *_Nonnull m, uint32_t friendnumber, const uint8_t *_Nonnull packet, uint16_t length); /** @brief Invites friend designated by `friendnumber` to chat. @@ -707,9 +633,7 @@ typedef bool gc_send_group_invite_packet_cb(const Messenger *m, uint32_t friendn * Return -2 on failure to create the invite data. * Return -3 if the packet fails to send. */ -non_null() -int gc_invite_friend(const GC_Session *c, GC_Chat *chat, int32_t friend_number, - gc_send_group_invite_packet_cb *callback); +int gc_invite_friend(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, int32_t friend_number, gc_send_group_invite_packet_cb *_Nonnull callback); /** @brief Leaves a group and sends an exit broadcast packet with an optional parting message. * @@ -719,31 +643,25 @@ int gc_invite_friend(const GC_Session *c, GC_Chat *chat, int32_t friend_number, * Return -1 if the parting message is too long. * Return -2 if the parting message failed to send. */ -non_null(1, 2) nullable(3) -int gc_group_exit(GC_Session *c, GC_Chat *chat, const uint8_t *message, uint16_t length); - +int gc_group_exit(GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, const uint8_t *_Nullable message, uint16_t length); /** @brief Returns true if `chat` is a valid group chat. * * A valid group chat constitutes an initialized chat instance with a non-zero shared state version. * The shared state version will be non-zero either if a peer has created the group, or if * they have ever successfully connected to the group. */ -non_null() -bool gc_group_is_valid(const GC_Chat *chat); +bool gc_group_is_valid(const GC_Chat *_Nonnull chat); /** @brief Returns the number of active groups in `c`. */ -non_null() -uint32_t gc_count_groups(const GC_Session *c); +uint32_t gc_count_groups(const GC_Session *_Nonnull c); /** @brief Returns true if peer_number exists */ -non_null() -bool gc_peer_number_is_valid(const GC_Chat *chat, int peer_number); +bool gc_peer_number_is_valid(const GC_Chat *_Nonnull chat, int peer_number); /** @brief Return group_number's GC_Chat pointer on success * Return NULL on failure */ -non_null() -GC_Chat *gc_get_group(const GC_Session *c, int group_number); +GC_Chat *_Nullable gc_get_group(const GC_Session *_Nonnull c, int group_number); /** @brief Sends a lossy message acknowledgement to peer associated with `gconn`. * @@ -754,8 +672,7 @@ GC_Chat *gc_get_group(const GC_Session *c, int group_number); * * @retval true on success. */ -non_null() -bool gc_send_message_ack(const GC_Chat *chat, GC_Connection *gconn, uint64_t message_id, Group_Message_Ack_Type type); +bool gc_send_message_ack(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, uint64_t message_id, Group_Message_Ack_Type type); /** @brief Helper function for `handle_gc_lossless_packet()`. * @@ -763,23 +680,19 @@ bool gc_send_message_ack(const GC_Chat *chat, GC_Connection *gconn, uint64_t mes * * @retval true if packet is successfully handled. */ -non_null(1, 2) nullable(4, 7) -bool handle_gc_lossless_helper(const GC_Session *c, GC_Chat *chat, uint32_t peer_number, const uint8_t *data, - uint16_t length, uint8_t packet_type, void *userdata); - +bool handle_gc_lossless_helper(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, uint32_t peer_number, const uint8_t *_Nullable data, + uint16_t length, uint8_t packet_type, void *_Nullable userdata); /** @brief Handles an invite accept packet. * * @retval true on success. */ -non_null() -bool handle_gc_invite_accepted_packet(const GC_Session *c, int friend_number, const uint8_t *data, uint16_t length); +bool handle_gc_invite_accepted_packet(const GC_Session *_Nonnull c, int friend_number, const uint8_t *_Nonnull data, uint16_t length); /** @brief Return true if `chat_id` is not present in our group sessions array. * * `length` must be at least CHAT_ID_SIZE bytes in length. */ -non_null() -bool group_not_added(const GC_Session *c, const uint8_t *chat_id, uint32_t length); +bool group_not_added(const GC_Session *_Nonnull c, const uint8_t *_Nonnull chat_id, uint32_t length); /** @brief Handles an invite confirmed packet. * @@ -790,21 +703,18 @@ bool group_not_added(const GC_Session *c, const uint8_t *chat_id, uint32_t lengt * Return -4 if `friend_number` does not designate a valid friend. * Return -5 if data contains invalid connection info. */ -non_null() -int handle_gc_invite_confirmed_packet(const GC_Session *c, int friend_number, const uint8_t *data, uint16_t length); +int handle_gc_invite_confirmed_packet(const GC_Session *_Nonnull c, int friend_number, const uint8_t *_Nonnull data, uint16_t length); /** @brief Returns the group designated by `public_key`. * Returns null if group does not exist. */ -non_null() -GC_Chat *gc_get_group_by_public_key(const GC_Session *c, const uint8_t *public_key); +GC_Chat *_Nullable gc_get_group_by_public_key(const GC_Session *_Nonnull c, const uint8_t *_Nonnull public_key); /** @brief Attempts to add peers from `announces` to our peer list and initiate an invite request. * * Returns the number of peers added on success. * Returns -1 on failure. */ -non_null() -int gc_add_peers_from_announces(GC_Chat *chat, const GC_Announce *announces, uint8_t gc_announces_count); +int gc_add_peers_from_announces(GC_Chat *_Nonnull chat, const GC_Announce *_Nonnull announces, uint8_t gc_announces_count); #endif /* C_TOXCORE_TOXCORE_GROUP_CHATS_H */ diff --git a/external/toxcore/c-toxcore/toxcore/group_common.h b/external/toxcore/c-toxcore/toxcore/group_common.h index 1921770..35dcb70 100644 --- a/external/toxcore/c-toxcore/toxcore/group_common.h +++ b/external/toxcore/c-toxcore/toxcore/group_common.h @@ -85,7 +85,7 @@ typedef struct GC_PeerAddress { } GC_PeerAddress; typedef struct GC_Message_Array_Entry { - uint8_t *data; + uint8_t *_Nullable data; uint16_t data_length; uint8_t packet_type; uint64_t message_id; @@ -97,10 +97,10 @@ typedef struct GC_Connection { uint64_t send_message_id; /* message_id of the next message we send to peer */ uint16_t send_array_start; /* send_array index of oldest item */ - GC_Message_Array_Entry *send_array; + GC_Message_Array_Entry *_Nullable send_array; uint64_t received_message_id; /* message_id of peer's last message to us */ - GC_Message_Array_Entry *recv_array; + GC_Message_Array_Entry *_Nullable recv_array; uint64_t last_chunk_id; /* The message ID of the last packet fragment we received */ @@ -265,22 +265,22 @@ typedef struct GC_TopicInfo { } GC_TopicInfo; typedef struct GC_Chat { - Mono_Time *mono_time; - const Logger *log; - const Memory *mem; - const Random *rng; + Mono_Time *_Nonnull mono_time; + const Logger *_Nonnull log; + const Memory *_Nonnull mem; + const Random *_Nonnull rng; uint32_t connected_tcp_relays; Self_UDP_Status self_udp_status; IP_Port self_ip_port; - Networking_Core *net; - TCP_Connections *tcp_conn; + Networking_Core *_Nonnull net; + TCP_Connections *_Nullable tcp_conn; uint64_t last_checked_tcp_relays; Group_Handshake_Join_Type join_type; - GC_Peer *group; + GC_Peer *_Nullable group; Moderation moderation; GC_Conn_State connection_state; @@ -347,60 +347,60 @@ typedef struct GC_Chat { typedef struct Messenger Messenger; #endif /* MESSENGER_DEFINED */ -typedef void gc_message_cb(const Messenger *m, uint32_t group_number, GC_Peer_Id peer_id, unsigned int type, - const uint8_t *message, size_t length, uint32_t message_id, void *user_data); -typedef void gc_private_message_cb(const Messenger *m, uint32_t group_number, GC_Peer_Id peer_id, unsigned int type, - const uint8_t *message, size_t length, uint32_t message_id, void *user_data); -typedef void gc_custom_packet_cb(const Messenger *m, uint32_t group_number, GC_Peer_Id peer_id, const uint8_t *data, - size_t length, void *user_data); -typedef void gc_custom_private_packet_cb(const Messenger *m, uint32_t group_number, GC_Peer_Id peer_id, - const uint8_t *data, size_t length, void *user_data); -typedef void gc_moderation_cb(const Messenger *m, uint32_t group_number, GC_Peer_Id source_peer_number, - GC_Peer_Id target_peer_number, unsigned int mod_type, void *user_data); -typedef void gc_nick_change_cb(const Messenger *m, uint32_t group_number, GC_Peer_Id peer_id, const uint8_t *name, - size_t length, void *user_data); -typedef void gc_status_change_cb(const Messenger *m, uint32_t group_number, GC_Peer_Id peer_id, unsigned int status, - void *user_data); -typedef void gc_topic_change_cb(const Messenger *m, uint32_t group_number, GC_Peer_Id peer_id, const uint8_t *topic, - size_t length, void *user_data); -typedef void gc_topic_lock_cb(const Messenger *m, uint32_t group_number, unsigned int topic_lock, void *user_data); -typedef void gc_voice_state_cb(const Messenger *m, uint32_t group_number, unsigned int voice_state, void *user_data); -typedef void gc_peer_limit_cb(const Messenger *m, uint32_t group_number, uint32_t peer_limit, void *user_data); -typedef void gc_privacy_state_cb(const Messenger *m, uint32_t group_number, unsigned int privacy_state, void *user_data); -typedef void gc_password_cb(const Messenger *m, uint32_t group_number, const uint8_t *password, size_t length, - void *user_data); -typedef void gc_peer_join_cb(const Messenger *m, uint32_t group_number, GC_Peer_Id peer_id, void *user_data); -typedef void gc_peer_exit_cb(const Messenger *m, uint32_t group_number, GC_Peer_Id peer_id, unsigned int exit_type, - const uint8_t *name, size_t name_length, const uint8_t *part_message, size_t length, - void *user_data); -typedef void gc_self_join_cb(const Messenger *m, uint32_t group_number, void *user_data); -typedef void gc_rejected_cb(const Messenger *m, uint32_t group_number, unsigned int fail_type, void *user_data); +typedef void gc_message_cb(const Messenger *_Nonnull m, uint32_t group_number, GC_Peer_Id peer_id, unsigned int type, + const uint8_t *_Nonnull message, size_t length, uint32_t message_id, void *_Nullable user_data); +typedef void gc_private_message_cb(const Messenger *_Nonnull m, uint32_t group_number, GC_Peer_Id peer_id, unsigned int type, + const uint8_t *_Nonnull message, size_t length, uint32_t message_id, void *_Nullable user_data); +typedef void gc_custom_packet_cb(const Messenger *_Nonnull m, uint32_t group_number, GC_Peer_Id peer_id, const uint8_t *_Nonnull data, + size_t length, void *_Nullable user_data); +typedef void gc_custom_private_packet_cb(const Messenger *_Nonnull m, uint32_t group_number, GC_Peer_Id peer_id, + const uint8_t *_Nonnull data, size_t length, void *_Nullable user_data); +typedef void gc_moderation_cb(const Messenger *_Nonnull m, uint32_t group_number, GC_Peer_Id source_peer_number, + GC_Peer_Id target_peer_number, unsigned int mod_type, void *_Nullable user_data); +typedef void gc_nick_change_cb(const Messenger *_Nonnull m, uint32_t group_number, GC_Peer_Id peer_id, const uint8_t *_Nonnull name, + size_t length, void *_Nullable user_data); +typedef void gc_status_change_cb(const Messenger *_Nonnull m, uint32_t group_number, GC_Peer_Id peer_id, unsigned int status, + void *_Nullable user_data); +typedef void gc_topic_change_cb(const Messenger *_Nonnull m, uint32_t group_number, GC_Peer_Id peer_id, const uint8_t *_Nullable topic, + size_t length, void *_Nullable user_data); +typedef void gc_topic_lock_cb(const Messenger *_Nonnull m, uint32_t group_number, unsigned int topic_lock, void *_Nullable user_data); +typedef void gc_voice_state_cb(const Messenger *_Nonnull m, uint32_t group_number, unsigned int voice_state, void *_Nullable user_data); +typedef void gc_peer_limit_cb(const Messenger *_Nonnull m, uint32_t group_number, uint32_t peer_limit, void *_Nullable user_data); +typedef void gc_privacy_state_cb(const Messenger *_Nonnull m, uint32_t group_number, unsigned int privacy_state, void *_Nullable user_data); +typedef void gc_password_cb(const Messenger *_Nonnull m, uint32_t group_number, const uint8_t *_Nullable password, size_t length, + void *_Nullable user_data); +typedef void gc_peer_join_cb(const Messenger *_Nonnull m, uint32_t group_number, GC_Peer_Id peer_id, void *_Nullable user_data); +typedef void gc_peer_exit_cb(const Messenger *_Nonnull m, uint32_t group_number, GC_Peer_Id peer_id, unsigned int exit_type, + const uint8_t *_Nullable name, size_t name_length, const uint8_t *_Nullable part_message, size_t length, + void *_Nullable user_data); +typedef void gc_self_join_cb(const Messenger *_Nonnull m, uint32_t group_number, void *_Nullable user_data); +typedef void gc_rejected_cb(const Messenger *_Nonnull m, uint32_t group_number, unsigned int fail_type, void *_Nullable user_data); typedef struct GC_Session { - Messenger *messenger; - GC_Chat *chats; - Net_Profile *tcp_np; - struct GC_Announces_List *announces_list; + Messenger *_Nonnull messenger; + GC_Chat *_Nullable chats; + Net_Profile *_Nullable tcp_np; + struct GC_Announces_List *_Nullable announces_list; uint32_t chats_index; - gc_message_cb *message; - gc_private_message_cb *private_message; - gc_custom_packet_cb *custom_packet; - gc_custom_private_packet_cb *custom_private_packet; - gc_moderation_cb *moderation; - gc_nick_change_cb *nick_change; - gc_status_change_cb *status_change; - gc_topic_change_cb *topic_change; - gc_topic_lock_cb *topic_lock; - gc_voice_state_cb *voice_state; - gc_peer_limit_cb *peer_limit; - gc_privacy_state_cb *privacy_state; - gc_password_cb *password; - gc_peer_join_cb *peer_join; - gc_peer_exit_cb *peer_exit; - gc_self_join_cb *self_join; - gc_rejected_cb *rejected; + gc_message_cb *_Nullable message; + gc_private_message_cb *_Nullable private_message; + gc_custom_packet_cb *_Nullable custom_packet; + gc_custom_private_packet_cb *_Nullable custom_private_packet; + gc_moderation_cb *_Nullable moderation; + gc_nick_change_cb *_Nullable nick_change; + gc_status_change_cb *_Nullable status_change; + gc_topic_change_cb *_Nullable topic_change; + gc_topic_lock_cb *_Nullable topic_lock; + gc_voice_state_cb *_Nullable voice_state; + gc_peer_limit_cb *_Nullable peer_limit; + gc_privacy_state_cb *_Nullable privacy_state; + gc_password_cb *_Nullable password; + gc_peer_join_cb *_Nullable peer_join; + gc_peer_exit_cb *_Nullable peer_exit; + gc_self_join_cb *_Nullable self_join; + gc_rejected_cb *_Nullable rejected; } GC_Session; /** @brief Adds a new peer to group_number's peer list. @@ -409,16 +409,13 @@ typedef struct GC_Session { * Return -1 on failure. * Return -2 if a peer with public_key is already in our peerlist. */ -non_null(1, 3) nullable(2) -int peer_add(GC_Chat *chat, const IP_Port *ipp, const uint8_t *public_key); - +int peer_add(GC_Chat *_Nonnull chat, const IP_Port *_Nullable ipp, const uint8_t *_Nonnull public_key); /** @brief Unpacks saved peers from `data` of size `length` into `chat`. * * Returns the number of unpacked peers on success. * Returns -1 on failure. */ -non_null() -int unpack_gc_saved_peers(GC_Chat *chat, const uint8_t *data, uint16_t length); +int unpack_gc_saved_peers(GC_Chat *_Nonnull chat, const uint8_t *_Nonnull data, uint16_t length); /** @brief Packs all valid entries from saved peerlist into `data`. * @@ -428,7 +425,5 @@ int unpack_gc_saved_peers(GC_Chat *chat, const uint8_t *data, uint16_t length); * Return the number of packed saved peers on success. * Return -1 if buffer is too small. */ -non_null(1, 2) nullable(4) -int pack_gc_saved_peers(const GC_Chat *chat, uint8_t *data, uint16_t length, uint16_t *processed); - +int pack_gc_saved_peers(const GC_Chat *_Nonnull chat, uint8_t *_Nonnull data, uint16_t length, uint16_t *_Nullable processed); #endif /* C_TOXCORE_TOXCORE_GROUP_COMMON_H */ diff --git a/external/toxcore/c-toxcore/toxcore/group_connection.c b/external/toxcore/c-toxcore/toxcore/group_connection.c index dd6d21f..5b68fe0 100644 --- a/external/toxcore/c-toxcore/toxcore/group_connection.c +++ b/external/toxcore/c-toxcore/toxcore/group_connection.c @@ -33,16 +33,14 @@ #define GCC_UDP_DIRECT_RETRY 1 /** Returns true if array entry does not contain an active packet. */ -non_null() -static bool array_entry_is_empty(const GC_Message_Array_Entry *array_entry) +static bool array_entry_is_empty(const GC_Message_Array_Entry *_Nonnull array_entry) { assert(array_entry != nullptr); return array_entry->time_added == 0; } /** @brief Clears an array entry. */ -non_null() -static void clear_array_entry(const Memory *mem, GC_Message_Array_Entry *const array_entry) +static void clear_array_entry(const Memory *_Nonnull mem, GC_Message_Array_Entry *_Nonnull array_entry) { mem_delete(mem, array_entry->data); @@ -56,8 +54,7 @@ static void clear_array_entry(const Memory *mem, GC_Message_Array_Entry *const a * `start_id` and ending at `end_id`, and sets the send_message_id for `gconn` * to `start_id`. */ -non_null() -static void clear_send_queue_id_range(const Memory *mem, GC_Connection *gconn, uint64_t start_id, uint64_t end_id) +static void clear_send_queue_id_range(const Memory *_Nonnull mem, GC_Connection *_Nonnull gconn, uint64_t start_id, uint64_t end_id) { const uint16_t start_idx = gcc_get_array_index(start_id); const uint16_t end_idx = gcc_get_array_index(end_id); @@ -93,9 +90,8 @@ void gcc_set_recv_message_id(GC_Connection *gconn, uint64_t id) * * Return true on success. */ -non_null(1, 2, 3, 4) nullable(5) -static bool create_array_entry(const Logger *log, const Memory *mem, const Mono_Time *mono_time, GC_Message_Array_Entry *array_entry, - const uint8_t *data, uint16_t length, uint8_t packet_type, uint64_t message_id) +static bool create_array_entry(const Logger *_Nonnull log, const Memory *_Nonnull mem, const Mono_Time *_Nonnull mono_time, GC_Message_Array_Entry *_Nonnull array_entry, + const uint8_t *_Nullable data, uint16_t length, uint8_t packet_type, uint64_t message_id) { if (!array_entry_is_empty(array_entry)) { LOGGER_WARNING(log, "Failed to create array entry; entry is not empty."); @@ -137,9 +133,8 @@ static bool create_array_entry(const Logger *log, const Memory *mem, const Mono_ * * Returns true and increments gconn's send_message_id on success. */ -non_null(1, 2, 3, 4) nullable(5) -static bool add_to_send_array(const Logger *log, const Memory *mem, const Mono_Time *mono_time, GC_Connection *gconn, - const uint8_t *data, uint16_t length, uint8_t packet_type) +static bool add_to_send_array(const Logger *_Nonnull log, const Memory *_Nonnull mem, const Mono_Time *_Nonnull mono_time, GC_Connection *_Nonnull gconn, + const uint8_t *_Nullable data, uint16_t length, uint8_t packet_type) { /* check if send_array is full */ if ((gconn->send_message_id % GCC_BUFFER_SIZE) == (uint16_t)(gconn->send_array_start - 1)) { @@ -339,9 +334,8 @@ int gcc_save_tcp_relay(const Random *rng, GC_Connection *gconn, const Node_forma * * Return true on success. */ -non_null(1, 2, 3, 4) nullable(5) -static bool store_in_recv_array(const Logger *log, const Memory *mem, const Mono_Time *mono_time, - GC_Connection *gconn, const uint8_t *data, +static bool store_in_recv_array(const Logger *_Nonnull log, const Memory *_Nonnull mem, const Mono_Time *_Nonnull mono_time, + GC_Connection *_Nonnull gconn, const uint8_t *_Nullable data, uint16_t length, uint8_t packet_type, uint64_t message_id) { const uint16_t idx = gcc_get_array_index(message_id); @@ -361,8 +355,7 @@ static bool store_in_recv_array(const Logger *log, const Memory *mem, const Mono * Return the length of the fully reassembled packet on success. * Return 0 on failure. */ -non_null(1, 2, 4) nullable(3) -static uint16_t reassemble_packet(const Logger *log, const Memory *mem, GC_Connection *gconn, uint8_t **payload, uint64_t message_id) +static uint16_t reassemble_packet(const Logger *_Nonnull log, const Memory *_Nonnull mem, GC_Connection *_Nullable gconn, uint8_t *_Nonnull *payload, uint64_t message_id) { uint16_t end_idx = gcc_get_array_index(message_id - 1); uint16_t start_idx = end_idx; @@ -511,9 +504,8 @@ int gcc_handle_received_message(const Logger *log, const Memory *mem, const Mono * * Return true on success. */ -non_null(1, 2, 3, 5) nullable(6) -static bool process_recv_array_entry(const GC_Session *c, GC_Chat *chat, GC_Connection *gconn, uint32_t peer_number, - GC_Message_Array_Entry *const array_entry, void *userdata) +static bool process_recv_array_entry(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, uint32_t peer_number, + GC_Message_Array_Entry *_Nonnull array_entry, void *_Nullable userdata) { uint8_t sender_pk[ENC_PUBLIC_KEY_SIZE]; memcpy(sender_pk, get_enc_key(&gconn->addr.public_key), ENC_PUBLIC_KEY_SIZE); diff --git a/external/toxcore/c-toxcore/toxcore/group_connection.h b/external/toxcore/c-toxcore/toxcore/group_connection.h index 7122f7a..010b51e 100644 --- a/external/toxcore/c-toxcore/toxcore/group_connection.h +++ b/external/toxcore/c-toxcore/toxcore/group_connection.h @@ -24,10 +24,8 @@ #define GCC_MAX_TCP_SHARED_RELAYS 3 /** Marks a peer for deletion. If gconn is null or already marked for deletion this function has no effect. */ -non_null(1, 2) nullable(4) -void gcc_mark_for_deletion(GC_Connection *gconn, TCP_Connections *tcp_conn, Group_Exit_Type type, - const uint8_t *part_message, uint16_t length); - +void gcc_mark_for_deletion(GC_Connection *_Nonnull gconn, TCP_Connections *_Nonnull tcp_conn, Group_Exit_Type type, + const uint8_t *_Nullable part_message, uint16_t length); /** @brief Decides if message need to be put in recv_array or immediately handled. * * Return 3 if message is in correct sequence and is a fragment packet. @@ -36,11 +34,9 @@ void gcc_mark_for_deletion(GC_Connection *gconn, TCP_Connections *tcp_conn, Grou * Return 0 if message is a duplicate. * Return -1 on failure */ -non_null(1, 2, 3, 4) nullable(5) -int gcc_handle_received_message(const Logger *log, const Memory *mem, const Mono_Time *mono_time, GC_Connection *gconn, - const uint8_t *data, uint16_t length, uint8_t packet_type, uint64_t message_id, +int gcc_handle_received_message(const Logger *_Nonnull log, const Memory *_Nonnull mem, const Mono_Time *_Nonnull mono_time, GC_Connection *_Nonnull gconn, + const uint8_t *_Nullable data, uint16_t length, uint8_t packet_type, uint64_t message_id, bool direct_conn); - /** @brief Handles a packet fragment. * * If the fragment is incomplete, it gets stored in the recv @@ -51,11 +47,9 @@ int gcc_handle_received_message(const Logger *log, const Memory *mem, const Mono * Return 0 if fragment is the end of a sequence and successfully handled. * Return -1 on failure. */ -non_null(1, 2, 4) nullable(5, 9) -int gcc_handle_packet_fragment(const GC_Session *c, GC_Chat *chat, uint32_t peer_number, GC_Connection *gconn, - const uint8_t *chunk, uint16_t length, uint8_t packet_type, uint64_t message_id, - void *userdata); - +int gcc_handle_packet_fragment(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, uint32_t peer_number, GC_Connection *_Nonnull gconn, + const uint8_t *_Nullable chunk, uint16_t length, uint8_t packet_type, uint64_t message_id, + void *_Nullable userdata); /** @brief Return array index for message_id */ uint16_t gcc_get_array_index(uint64_t message_id); @@ -63,40 +57,33 @@ uint16_t gcc_get_array_index(uint64_t message_id); * * Return true on success. */ -non_null() -bool gcc_handle_ack(const Logger *log, const Memory *mem, GC_Connection *gconn, uint64_t message_id); +bool gcc_handle_ack(const Logger *_Nonnull log, const Memory *_Nonnull mem, GC_Connection *_Nonnull gconn, uint64_t message_id); /** @brief Sets the send_message_id and send_array_start for `gconn` to `id`. * * This should only be used to initialize a new lossless connection. */ -non_null() -void gcc_set_send_message_id(GC_Connection *gconn, uint64_t id); +void gcc_set_send_message_id(GC_Connection *_Nonnull gconn, uint64_t id); /** @brief Sets the received_message_id for `gconn` to `id`. */ -non_null() -void gcc_set_recv_message_id(GC_Connection *gconn, uint64_t id); +void gcc_set_recv_message_id(GC_Connection *_Nonnull gconn, uint64_t id); /** * @brief Returns true if the ip_port is set for gconn. */ -non_null() -bool gcc_ip_port_is_set(const GC_Connection *gconn); +bool gcc_ip_port_is_set(const GC_Connection *_Nonnull gconn); /** * @brief Sets the ip_port for gconn to ipp. * * If ipp is not set this function has no effect. */ -non_null(1) nullable(2) -void gcc_set_ip_port(GC_Connection *gconn, const IP_Port *ipp); - +void gcc_set_ip_port(GC_Connection *_Nonnull gconn, const IP_Port *_Nullable ipp); /** @brief Copies a random TCP relay node from gconn to tcp_node. * * Return true on success. */ -non_null() -bool gcc_copy_tcp_relay(const Random *rng, Node_format *tcp_node, const GC_Connection *gconn); +bool gcc_copy_tcp_relay(const Random *_Nonnull rng, Node_format *_Nonnull tcp_node, const GC_Connection *_Nonnull gconn); /** @brief Saves tcp_node to gconn's list of connected tcp relays. * @@ -106,19 +93,15 @@ bool gcc_copy_tcp_relay(const Random *rng, Node_format *tcp_node, const GC_Conne * Return -1 on failure. * Return -2 if node is already in list. */ -non_null() -int gcc_save_tcp_relay(const Random *rng, GC_Connection *gconn, const Node_format *tcp_node); +int gcc_save_tcp_relay(const Random *_Nonnull rng, GC_Connection *_Nonnull gconn, const Node_format *_Nonnull tcp_node); /** @brief Checks for and handles messages that are in proper sequence in gconn's recv_array. * This should always be called after a new packet is successfully handled. */ -non_null(1, 2, 3) nullable(5) -void gcc_check_recv_array(const GC_Session *c, GC_Chat *chat, GC_Connection *gconn, uint32_t peer_number, - void *userdata); - +void gcc_check_recv_array(const GC_Session *_Nonnull c, GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, uint32_t peer_number, + void *_Nullable userdata); /** @brief Attempts to re-send lossless packets that have not yet received an ack. */ -non_null() -void gcc_resend_packets(const GC_Chat *chat, GC_Connection *gconn); +void gcc_resend_packets(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn); /** * Uses public encryption key `sender_pk` and the shared secret key associated with `gconn` @@ -128,20 +111,16 @@ void gcc_resend_packets(const GC_Chat *chat, GC_Connection *gconn); * Puts the result in the shared session key buffer for `gconn`, which must have room for * CRYPTO_SHARED_KEY_SIZE bytes. This resulting shared key should be treated as a secret key. */ -non_null() -void gcc_make_session_shared_key(GC_Connection *gconn, const uint8_t *sender_pk); +void gcc_make_session_shared_key(GC_Connection *_Nonnull gconn, const uint8_t *_Nonnull sender_pk); /** @brief Return true if we have a direct connection with `gconn`. */ -non_null() -bool gcc_conn_is_direct(const Mono_Time *mono_time, const GC_Connection *gconn); +bool gcc_conn_is_direct(const Mono_Time *_Nonnull mono_time, const GC_Connection *_Nonnull gconn); /** @brief Return true if we can try a direct connection with `gconn` again. */ -non_null() -bool gcc_conn_should_try_direct(const Mono_Time *mono_time, const GC_Connection *gconn); +bool gcc_conn_should_try_direct(const Mono_Time *_Nonnull mono_time, const GC_Connection *_Nonnull gconn); /** @brief Return true if a direct UDP connection is possible with `gconn`. */ -non_null() -bool gcc_direct_conn_is_possible(const GC_Chat *chat, const GC_Connection *gconn); +bool gcc_direct_conn_is_possible(const GC_Chat *_Nonnull chat, const GC_Connection *_Nonnull gconn); /** @brief Sends a packet to the peer associated with gconn. * @@ -149,8 +128,7 @@ bool gcc_direct_conn_is_possible(const GC_Chat *chat, const GC_Connection *gconn * * Return true on success. */ -non_null() -bool gcc_send_packet(const GC_Chat *chat, GC_Connection *gconn, const uint8_t *packet, uint16_t length); +bool gcc_send_packet(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, const uint8_t *_Nonnull packet, uint16_t length); /** @brief Sends a lossless packet to `gconn` comprised of `data` of size `length`. * @@ -161,10 +139,8 @@ bool gcc_send_packet(const GC_Chat *chat, GC_Connection *gconn, const uint8_t *p * Return -1 if the packet couldn't be added to the send array. * Return -2 if the packet failed to be wrapped or encrypted. */ -non_null(1, 2) nullable(3) -int gcc_send_lossless_packet(const GC_Chat *chat, GC_Connection *gconn, const uint8_t *data, uint16_t length, +int gcc_send_lossless_packet(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, const uint8_t *_Nullable data, uint16_t length, uint8_t packet_type); - /** @brief Splits a lossless packet up into fragments, wraps each fragment in a GP_FRAGMENT * header, encrypts them, and send them in succession. * @@ -174,9 +150,7 @@ int gcc_send_lossless_packet(const GC_Chat *chat, GC_Connection *gconn, const ui * * Return true if all fragments are successfully added to the send array. */ -non_null() -bool gcc_send_lossless_packet_fragments(const GC_Chat *chat, GC_Connection *gconn, const uint8_t *data, - uint16_t length, uint8_t packet_type); +bool gcc_send_lossless_packet_fragments(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, const uint8_t *_Nonnull data, uint16_t length, uint8_t packet_type); /** @brief Encrypts `data` of `length` bytes, designated by `message_id`, using the shared key * associated with `gconn` and sends lossless packet over the wire. @@ -187,16 +161,12 @@ bool gcc_send_lossless_packet_fragments(const GC_Chat *chat, GC_Connection *gcon * Return -1 if packet wrapping and encryption fails. * Return -2 if the packet fails to send. */ -non_null(1, 2) nullable(3) -int gcc_encrypt_and_send_lossless_packet(const GC_Chat *chat, GC_Connection *gconn, const uint8_t *data, +int gcc_encrypt_and_send_lossless_packet(const GC_Chat *_Nonnull chat, GC_Connection *_Nonnull gconn, const uint8_t *_Nullable data, uint16_t length, uint64_t message_id, uint8_t packet_type); - /** @brief Called when a peer leaves the group. */ -non_null() -void gcc_peer_cleanup(const Memory *mem, GC_Connection *gconn); +void gcc_peer_cleanup(const Memory *_Nonnull mem, GC_Connection *_Nonnull gconn); /** @brief Called on group exit. */ -non_null() -void gcc_cleanup(const GC_Chat *chat); +void gcc_cleanup(const GC_Chat *_Nonnull chat); #endif /* C_TOXCORE_TOXCORE_GROUP_CONNECTION_H */ diff --git a/external/toxcore/c-toxcore/toxcore/group_moderation.c b/external/toxcore/c-toxcore/toxcore/group_moderation.c index acc17bd..b25eb44 100644 --- a/external/toxcore/c-toxcore/toxcore/group_moderation.c +++ b/external/toxcore/c-toxcore/toxcore/group_moderation.c @@ -34,12 +34,12 @@ static_assert(MOD_MAX_NUM_MODERATORS <= MOD_MAX_NUM_MODERATORS_LIMIT, static_assert(MOD_MAX_NUM_SANCTIONS <= MOD_MAX_NUM_SANCTIONS_LIMIT, "MOD_MAX_NUM_SANCTIONS must be <= MOD_MAX_NUM_SANCTIONS_LIMIT"); -uint16_t mod_list_packed_size(const Moderation *moderation) +uint16_t mod_list_packed_size(const Moderation *_Nonnull moderation) { return moderation->num_mods * MOD_LIST_ENTRY_SIZE; } -int mod_list_unpack(Moderation *moderation, const uint8_t *data, uint16_t length, uint16_t num_mods) +int mod_list_unpack(Moderation *_Nonnull moderation, const uint8_t *_Nonnull data, uint16_t length, uint16_t num_mods) { if (length < num_mods * MOD_LIST_ENTRY_SIZE) { return -1; @@ -79,19 +79,19 @@ int mod_list_unpack(Moderation *moderation, const uint8_t *data, uint16_t length return unpacked_len; } -void mod_list_pack(const Moderation *moderation, uint8_t *data) +void mod_list_pack(const Moderation *_Nonnull moderation, uint8_t *_Nonnull data) { for (uint16_t i = 0; i < moderation->num_mods; ++i) { memcpy(&data[i * MOD_LIST_ENTRY_SIZE], moderation->mod_list[i], MOD_LIST_ENTRY_SIZE); } } -void mod_list_get_data_hash(uint8_t *hash, const uint8_t *packed_mod_list, uint16_t length) +void mod_list_get_data_hash(uint8_t *_Nonnull hash, const uint8_t *_Nonnull packed_mod_list, uint16_t length) { crypto_sha256(hash, packed_mod_list, length); } -bool mod_list_make_hash(const Moderation *moderation, uint8_t *hash) +bool mod_list_make_hash(const Moderation *_Nonnull moderation, uint8_t *_Nonnull hash) { if (moderation->num_mods == 0) { memzero(hash, MOD_MODERATION_HASH_SIZE); @@ -121,8 +121,7 @@ bool mod_list_make_hash(const Moderation *moderation, uint8_t *hash) * Returns moderator list index for public_sig_key. * Returns -1 if key is not in the list. */ -non_null() -static int mod_list_index_of_sig_pk(const Moderation *moderation, const uint8_t *public_sig_key) +static int mod_list_index_of_sig_pk(const Moderation *_Nonnull moderation, const uint8_t *_Nonnull public_sig_key) { for (uint16_t i = 0; i < moderation->num_mods; ++i) { if (memcmp(moderation->mod_list[i], public_sig_key, SIG_PUBLIC_KEY_SIZE) == 0) { @@ -133,7 +132,7 @@ static int mod_list_index_of_sig_pk(const Moderation *moderation, const uint8_t return -1; } -bool mod_list_verify_sig_pk(const Moderation *moderation, const uint8_t *sig_pk) +bool mod_list_verify_sig_pk(const Moderation *_Nonnull moderation, const uint8_t *_Nonnull sig_pk) { if (memcmp(moderation->founder_public_sig_key, sig_pk, SIG_PUBLIC_KEY_SIZE) == 0) { return true; @@ -148,7 +147,7 @@ bool mod_list_verify_sig_pk(const Moderation *moderation, const uint8_t *sig_pk) return false; } -bool mod_list_remove_index(Moderation *moderation, uint16_t index) +bool mod_list_remove_index(Moderation *_Nonnull moderation, uint16_t index) { if (index >= moderation->num_mods) { return false; @@ -180,7 +179,7 @@ bool mod_list_remove_index(Moderation *moderation, uint16_t index) return true; } -bool mod_list_remove_entry(Moderation *moderation, const uint8_t *public_sig_key) +bool mod_list_remove_entry(Moderation *_Nonnull moderation, const uint8_t *_Nonnull public_sig_key) { if (moderation->num_mods == 0) { return false; @@ -197,7 +196,7 @@ bool mod_list_remove_entry(Moderation *moderation, const uint8_t *public_sig_key return mod_list_remove_index(moderation, (uint16_t)idx); } -bool mod_list_add_entry(Moderation *moderation, const uint8_t *mod_data) +bool mod_list_add_entry(Moderation *_Nonnull moderation, const uint8_t *_Nonnull mod_data) { if (moderation->num_mods >= MOD_MAX_NUM_MODERATORS) { return false; @@ -225,14 +224,14 @@ bool mod_list_add_entry(Moderation *moderation, const uint8_t *mod_data) return true; } -void mod_list_cleanup(Moderation *moderation) +void mod_list_cleanup(Moderation *_Nullable moderation) { free_uint8_t_pointer_array(moderation->mem, moderation->mod_list, moderation->num_mods); moderation->num_mods = 0; moderation->mod_list = nullptr; } -uint16_t sanctions_creds_pack(const Mod_Sanction_Creds *creds, uint8_t *data) +uint16_t sanctions_creds_pack(const Mod_Sanction_Creds *_Nonnull creds, uint8_t *_Nonnull data) { uint16_t packed_len = 0; @@ -255,8 +254,8 @@ uint16_t sanctions_list_packed_size(uint16_t num_sanctions) return MOD_SANCTION_PACKED_SIZE * num_sanctions; } -int sanctions_list_pack(uint8_t *data, uint16_t length, const Mod_Sanction *sanctions, uint16_t num_sanctions, - const Mod_Sanction_Creds *creds) +int sanctions_list_pack(uint8_t *_Nonnull data, uint16_t length, const Mod_Sanction *_Nullable sanctions, uint16_t num_sanctions, + const Mod_Sanction_Creds *_Nullable creds) { assert(sanctions != nullptr || num_sanctions == 0); assert(sanctions != nullptr || creds != nullptr); @@ -314,7 +313,7 @@ int sanctions_list_pack(uint8_t *data, uint16_t length, const Mod_Sanction *sanc return packed_len + cred_len; } -uint16_t sanctions_creds_unpack(Mod_Sanction_Creds *creds, const uint8_t *data) +uint16_t sanctions_creds_unpack(Mod_Sanction_Creds *_Nonnull creds, const uint8_t *_Nonnull data) { uint16_t len_processed = 0; @@ -332,8 +331,8 @@ uint16_t sanctions_creds_unpack(Mod_Sanction_Creds *creds, const uint8_t *data) return len_processed; } -int sanctions_list_unpack(Mod_Sanction *sanctions, Mod_Sanction_Creds *creds, uint16_t max_sanctions, - const uint8_t *data, uint16_t length, uint16_t *processed_data_len) +int sanctions_list_unpack(Mod_Sanction *_Nonnull sanctions, Mod_Sanction_Creds *_Nonnull creds, uint16_t max_sanctions, + const uint8_t *_Nonnull data, uint16_t length, uint16_t *_Nullable processed_data_len) { uint16_t num = 0; uint16_t len_processed = 0; @@ -405,9 +404,8 @@ int sanctions_list_unpack(Mod_Sanction *sanctions, Mod_Sanction_Creds *creds, ui * * Return true on success. */ -non_null(1, 5) nullable(2) -static bool sanctions_list_make_hash(const Memory *mem, const Mod_Sanction *sanctions, uint32_t new_version, uint16_t num_sanctions, - uint8_t *hash) +static bool sanctions_list_make_hash(const Memory *_Nonnull mem, const Mod_Sanction *_Nullable sanctions, uint32_t new_version, uint16_t num_sanctions, + uint8_t *_Nonnull hash) { if (num_sanctions == 0 || sanctions == nullptr) { memzero(hash, MOD_SANCTION_HASH_SIZE); @@ -444,8 +442,7 @@ static bool sanctions_list_make_hash(const Memory *mem, const Mod_Sanction *sanc * * Returns true on success. */ -non_null() -static bool sanctions_list_validate_entry(const Moderation *moderation, const Mod_Sanction *sanction) +static bool sanctions_list_validate_entry(const Moderation *_Nonnull moderation, const Mod_Sanction *_Nonnull sanction) { if (!mod_list_verify_sig_pk(moderation, sanction->setter_public_sig_key)) { return false; @@ -470,19 +467,17 @@ static bool sanctions_list_validate_entry(const Moderation *moderation, const Mo sanction->setter_public_sig_key); } -non_null() -static uint16_t sanctions_creds_get_checksum(const Mod_Sanction_Creds *creds) +static uint16_t sanctions_creds_get_checksum(const Mod_Sanction_Creds *_Nonnull creds) { return data_checksum(creds->hash, sizeof(creds->hash)); } -non_null() -static void sanctions_creds_set_checksum(Mod_Sanction_Creds *creds) +static void sanctions_creds_set_checksum(Mod_Sanction_Creds *_Nonnull creds) { creds->checksum = sanctions_creds_get_checksum(creds); } -bool sanctions_list_make_creds(Moderation *moderation) +bool sanctions_list_make_creds(Moderation *_Nonnull moderation) { const Mod_Sanction_Creds old_creds = moderation->sanctions_creds; @@ -522,9 +517,8 @@ bool sanctions_list_make_creds(Moderation *moderation) * * Returns true on success. */ -non_null(1, 3) nullable(2) -static bool sanctions_creds_validate(const Moderation *moderation, const Mod_Sanction *sanctions, - const Mod_Sanction_Creds *creds, uint16_t num_sanctions) +static bool sanctions_creds_validate(const Moderation *_Nonnull moderation, const Mod_Sanction *_Nullable sanctions, + const Mod_Sanction_Creds *_Nonnull creds, uint16_t num_sanctions) { if (!mod_list_verify_sig_pk(moderation, creds->sig_pk)) { LOGGER_WARNING(moderation->log, "Invalid credentials signature pk"); @@ -563,8 +557,8 @@ static bool sanctions_creds_validate(const Moderation *moderation, const Mod_San return true; } -bool sanctions_list_check_integrity(const Moderation *moderation, const Mod_Sanction_Creds *creds, - const Mod_Sanction *sanctions, uint16_t num_sanctions) +bool sanctions_list_check_integrity(const Moderation *_Nonnull moderation, const Mod_Sanction_Creds *_Nonnull creds, + const Mod_Sanction *_Nonnull sanctions, uint16_t num_sanctions) { for (uint16_t i = 0; i < num_sanctions; ++i) { if (!sanctions_list_validate_entry(moderation, &sanctions[i])) { @@ -587,9 +581,8 @@ bool sanctions_list_check_integrity(const Moderation *moderation, const Mod_Sanc * * @retval false if sanctions credentials validation fails. */ -non_null(1, 2) nullable(3) -static bool sanctions_apply_new(Moderation *moderation, Mod_Sanction *new_sanctions, - const Mod_Sanction_Creds *new_creds, +static bool sanctions_apply_new(Moderation *_Nonnull moderation, Mod_Sanction *_Nonnull new_sanctions, + const Mod_Sanction_Creds *_Nullable new_creds, uint16_t num_sanctions) { if (new_creds != nullptr) { @@ -611,8 +604,7 @@ static bool sanctions_apply_new(Moderation *moderation, Mod_Sanction *new_sancti /** @brief Returns a copy of the sanctions list. The caller is responsible for freeing the * memory returned by this function. */ -non_null() -static Mod_Sanction *sanctions_list_copy(const Memory *mem, const Mod_Sanction *sanctions, uint16_t num_sanctions) +static Mod_Sanction *sanctions_list_copy(const Memory *_Nonnull mem, const Mod_Sanction *_Nonnull sanctions, uint16_t num_sanctions) { Mod_Sanction *copy = (Mod_Sanction *)mem_valloc(mem, num_sanctions, sizeof(Mod_Sanction)); @@ -631,8 +623,7 @@ static Mod_Sanction *sanctions_list_copy(const Memory *mem, const Mod_Sanction * * * Returns true on success. */ -non_null(1) nullable(3) -static bool sanctions_list_remove_index(Moderation *moderation, uint16_t index, const Mod_Sanction_Creds *creds) +static bool sanctions_list_remove_index(Moderation *_Nonnull moderation, uint16_t index, const Mod_Sanction_Creds *_Nullable creds) { if (index >= moderation->num_sanctions) { return false; @@ -680,8 +671,8 @@ static bool sanctions_list_remove_index(Moderation *moderation, uint16_t index, return true; } -bool sanctions_list_remove_observer(Moderation *moderation, const uint8_t *public_key, - const Mod_Sanction_Creds *creds) +bool sanctions_list_remove_observer(Moderation *_Nonnull moderation, const uint8_t *_Nonnull public_key, + const Mod_Sanction_Creds *_Nullable creds) { for (uint16_t i = 0; i < moderation->num_sanctions; ++i) { const Mod_Sanction *curr_sanction = &moderation->sanctions[i]; @@ -706,7 +697,7 @@ bool sanctions_list_remove_observer(Moderation *moderation, const uint8_t *publi return false; } -bool sanctions_list_is_observer(const Moderation *moderation, const uint8_t *public_key) +bool sanctions_list_is_observer(const Moderation *_Nonnull moderation, const uint8_t *_Nonnull public_key) { for (uint16_t i = 0; i < moderation->num_sanctions; ++i) { const Mod_Sanction *curr_sanction = &moderation->sanctions[i]; @@ -723,7 +714,7 @@ bool sanctions_list_is_observer(const Moderation *moderation, const uint8_t *pub return false; } -bool sanctions_list_entry_exists(const Moderation *moderation, const Mod_Sanction *sanction) +bool sanctions_list_entry_exists(const Moderation *_Nonnull moderation, const Mod_Sanction *_Nonnull sanction) { if (sanction->type == SA_OBSERVER) { return sanctions_list_is_observer(moderation, sanction->target_public_enc_key); @@ -732,7 +723,7 @@ bool sanctions_list_entry_exists(const Moderation *moderation, const Mod_Sanctio return false; } -bool sanctions_list_add_entry(Moderation *moderation, const Mod_Sanction *sanction, const Mod_Sanction_Creds *creds) +bool sanctions_list_add_entry(Moderation *_Nonnull moderation, const Mod_Sanction *_Nonnull sanction, const Mod_Sanction_Creds *_Nullable creds) { if (moderation->num_sanctions >= MOD_MAX_NUM_SANCTIONS) { LOGGER_WARNING(moderation->log, "num_sanctions %d exceeds maximum", moderation->num_sanctions); @@ -784,8 +775,7 @@ bool sanctions_list_add_entry(Moderation *moderation, const Mod_Sanction *sancti * * Returns true on success. */ -non_null() -static bool sanctions_list_sign_entry(const Moderation *moderation, Mod_Sanction *sanction) +static bool sanctions_list_sign_entry(const Moderation *_Nonnull moderation, Mod_Sanction *_Nonnull sanction) { uint8_t packed_data[MOD_SANCTION_PACKED_SIZE]; const int packed_len = sanctions_list_pack(packed_data, sizeof(packed_data), sanction, 1, nullptr); @@ -799,7 +789,7 @@ static bool sanctions_list_sign_entry(const Moderation *moderation, Mod_Sanction moderation->self_secret_sig_key); } -bool sanctions_list_make_entry(Moderation *moderation, const uint8_t *public_key, Mod_Sanction *sanction, +bool sanctions_list_make_entry(Moderation *_Nonnull moderation, const uint8_t *_Nonnull public_key, Mod_Sanction *_Nonnull sanction, uint8_t type) { *sanction = (Mod_Sanction) { @@ -834,7 +824,7 @@ bool sanctions_list_make_entry(Moderation *moderation, const uint8_t *public_key return true; } -uint16_t sanctions_list_replace_sig(Moderation *moderation, const uint8_t *public_sig_key) +uint16_t sanctions_list_replace_sig(Moderation *_Nonnull moderation, const uint8_t *_Nonnull public_sig_key) { uint16_t count = 0; @@ -862,7 +852,7 @@ uint16_t sanctions_list_replace_sig(Moderation *moderation, const uint8_t *publi return count; } -void sanctions_list_cleanup(Moderation *moderation) +void sanctions_list_cleanup(Moderation *_Nonnull moderation) { mem_delete(moderation->mem, moderation->sanctions); diff --git a/external/toxcore/c-toxcore/toxcore/group_moderation.h b/external/toxcore/c-toxcore/toxcore/group_moderation.h index eeab32f..068198b 100644 --- a/external/toxcore/c-toxcore/toxcore/group_moderation.h +++ b/external/toxcore/c-toxcore/toxcore/group_moderation.h @@ -81,27 +81,26 @@ typedef struct Mod_Sanction { } Mod_Sanction; typedef struct Moderation { - const Memory *mem; - const Logger *log; + const Memory *_Nonnull mem; + const Logger *_Nonnull log; - Mod_Sanction *sanctions; + Mod_Sanction *_Nullable sanctions; uint16_t num_sanctions; Mod_Sanction_Creds sanctions_creds; - uint8_t **mod_list; // array of public signature keys of all the mods + uint8_t *_Nullable *_Nullable mod_list; // array of public signature keys of all the mods uint16_t num_mods; // copies from parent/sibling chat/shared state objects - uint8_t founder_public_sig_key[SIG_PUBLIC_KEY_SIZE]; + uint8_t founder_public_sig_key[CRYPTO_PUBLIC_KEY_SIZE]; uint8_t self_public_sig_key[SIG_PUBLIC_KEY_SIZE]; uint8_t self_secret_sig_key[SIG_SECRET_KEY_SIZE]; uint32_t shared_state_version; } Moderation; /** @brief Returns the size in bytes of the packed moderation list. */ -non_null() -uint16_t mod_list_packed_size(const Moderation *moderation); +uint16_t mod_list_packed_size(const Moderation *_Nonnull moderation); /** @brief Unpacks data into the moderator list. * @@ -110,14 +109,12 @@ uint16_t mod_list_packed_size(const Moderation *moderation); * Returns length of unpacked data on success. * Returns -1 on failure. */ -non_null() -int mod_list_unpack(Moderation *moderation, const uint8_t *data, uint16_t length, uint16_t num_mods); +int mod_list_unpack(Moderation *_Nonnull moderation, const uint8_t *_Nonnull data, uint16_t length, uint16_t num_mods); /** @brief Packs moderator list into data. * @param data must have room for the number of bytes returned by `mod_list_packed_size`. */ -non_null() -void mod_list_pack(const Moderation *moderation, uint8_t *data); +void mod_list_pack(const Moderation *_Nonnull moderation, uint8_t *_Nonnull data); /** @brief Creates a new moderator list hash and puts it in `hash`. * @@ -127,29 +124,25 @@ void mod_list_pack(const Moderation *moderation, uint8_t *data); * * Returns true on sucess. */ -non_null() -bool mod_list_make_hash(const Moderation *moderation, uint8_t *hash); +bool mod_list_make_hash(const Moderation *_Nonnull moderation, uint8_t *_Nonnull hash); /** @brief Puts a sha256 hash of `packed_mod_list` of `length` bytes in `hash`. * * @param hash must have room for at least MOD_MODERATION_HASH_SIZE bytes. */ -non_null() -void mod_list_get_data_hash(uint8_t *hash, const uint8_t *packed_mod_list, uint16_t length); +void mod_list_get_data_hash(uint8_t *_Nonnull hash, const uint8_t *_Nonnull packed_mod_list, uint16_t length); /** @brief Removes moderator at index-th position in the moderator list. * * Returns true on success. */ -non_null() -bool mod_list_remove_index(Moderation *moderation, uint16_t index); +bool mod_list_remove_index(Moderation *_Nonnull moderation, uint16_t index); /** @brief Removes public_sig_key from the moderator list. * * Returns true on success. */ -non_null() -bool mod_list_remove_entry(Moderation *moderation, const uint8_t *public_sig_key); +bool mod_list_remove_entry(Moderation *_Nonnull moderation, const uint8_t *_Nonnull public_sig_key); /** @brief Adds a mod to the moderator list. * @@ -157,17 +150,13 @@ bool mod_list_remove_entry(Moderation *moderation, const uint8_t *public_sig_key * * Returns true on success. */ -non_null() -bool mod_list_add_entry(Moderation *moderation, const uint8_t *mod_data); +bool mod_list_add_entry(Moderation *_Nonnull moderation, const uint8_t *_Nonnull mod_data); /** @return true if the public signature key belongs to a moderator or the founder */ -non_null() -bool mod_list_verify_sig_pk(const Moderation *moderation, const uint8_t *sig_pk); +bool mod_list_verify_sig_pk(const Moderation *_Nonnull moderation, const uint8_t *_Nonnull sig_pk); /** @brief Frees all memory associated with the moderator list and sets num_mods to 0. */ -nullable(1) -void mod_list_cleanup(Moderation *moderation); - +void mod_list_cleanup(Moderation *_Nullable moderation); /** @brief Returns the size in bytes of num_sanctions packed sanctions. */ uint16_t sanctions_list_packed_size(uint16_t num_sanctions); @@ -184,10 +173,8 @@ uint16_t sanctions_list_packed_size(uint16_t num_sanctions); * @retval The length of packed data on success. * @retval -1 on failure. */ -non_null(1) nullable(3, 5) -int sanctions_list_pack(uint8_t *data, uint16_t length, const Mod_Sanction *sanctions, uint16_t num_sanctions, - const Mod_Sanction_Creds *creds); - +int sanctions_list_pack(uint8_t *_Nonnull data, uint16_t length, const Mod_Sanction *_Nullable sanctions, uint16_t num_sanctions, + const Mod_Sanction_Creds *_Nullable creds); /** @brief Unpacks sanctions and new sanctions credentials. * * @param sanctions The sanctions array the sanctions data is unpacked into. @@ -200,18 +187,15 @@ int sanctions_list_pack(uint8_t *data, uint16_t length, const Mod_Sanction *sanc * @retval The number of unpacked entries on success. * @retval -1 on failure. */ -non_null(1, 2, 4) nullable(6) -int sanctions_list_unpack(Mod_Sanction *sanctions, Mod_Sanction_Creds *creds, uint16_t max_sanctions, - const uint8_t *data, uint16_t length, uint16_t *processed_data_len); - +int sanctions_list_unpack(Mod_Sanction *_Nonnull sanctions, Mod_Sanction_Creds *_Nonnull creds, uint16_t max_sanctions, + const uint8_t *_Nonnull data, uint16_t length, uint16_t *_Nullable processed_data_len); /** @brief Packs sanction list credentials into data. * * @param data must have room for MOD_SANCTIONS_CREDS_SIZE bytes. * * Returns length of packed data. */ -non_null() -uint16_t sanctions_creds_pack(const Mod_Sanction_Creds *creds, uint8_t *data); +uint16_t sanctions_creds_pack(const Mod_Sanction_Creds *_Nonnull creds, uint8_t *_Nonnull data); /** @brief Unpacks sanctions credentials into creds from data. * @@ -219,8 +203,7 @@ uint16_t sanctions_creds_pack(const Mod_Sanction_Creds *creds, uint8_t *data); * * Returns the length of the data processed. */ -non_null() -uint16_t sanctions_creds_unpack(Mod_Sanction_Creds *creds, const uint8_t *data); +uint16_t sanctions_creds_unpack(Mod_Sanction_Creds *_Nonnull creds, const uint8_t *_Nonnull data); /** @brief Updates sanction list credentials. * @@ -229,17 +212,14 @@ uint16_t sanctions_creds_unpack(Mod_Sanction_Creds *creds, const uint8_t *data); * * Returns true on success. */ -non_null() -bool sanctions_list_make_creds(Moderation *moderation); +bool sanctions_list_make_creds(Moderation *_Nonnull moderation); /** @brief Validates all sanctions list entries as well as the list itself. * * Returns true if all entries are valid. * Returns false if one or more entries are invalid. */ -non_null() -bool sanctions_list_check_integrity(const Moderation *moderation, const Mod_Sanction_Creds *creds, - const Mod_Sanction *sanctions, uint16_t num_sanctions); +bool sanctions_list_check_integrity(const Moderation *_Nonnull moderation, const Mod_Sanction_Creds *_Nonnull creds, const Mod_Sanction *_Nonnull sanctions, uint16_t num_sanctions); /** @brief Adds an entry to the sanctions list. * @@ -250,26 +230,20 @@ bool sanctions_list_check_integrity(const Moderation *moderation, const Mod_Sanc * * Returns true on success. */ -non_null(1, 2) nullable(3) -bool sanctions_list_add_entry(Moderation *moderation, const Mod_Sanction *sanction, const Mod_Sanction_Creds *creds); - +bool sanctions_list_add_entry(Moderation *_Nonnull moderation, const Mod_Sanction *_Nonnull sanction, const Mod_Sanction_Creds *_Nullable creds); /** @brief Creates a new sanction entry for `public_key` where type is one of Mod_Sanction_Type. * * New entry is signed and placed in the sanctions list. * * Returns true on success. */ -non_null() -bool sanctions_list_make_entry(Moderation *moderation, const uint8_t *public_key, Mod_Sanction *sanction, - uint8_t type); +bool sanctions_list_make_entry(Moderation *_Nonnull moderation, const uint8_t *_Nonnull public_key, Mod_Sanction *_Nonnull sanction, uint8_t type); /** @return true if public key is in the observer list. */ -non_null() -bool sanctions_list_is_observer(const Moderation *moderation, const uint8_t *public_key); +bool sanctions_list_is_observer(const Moderation *_Nonnull moderation, const uint8_t *_Nonnull public_key); /** @return true if sanction already exists in the sanctions list. */ -non_null() -bool sanctions_list_entry_exists(const Moderation *moderation, const Mod_Sanction *sanction); +bool sanctions_list_entry_exists(const Moderation *_Nonnull moderation, const Mod_Sanction *_Nonnull sanction); /** @brief Removes observer entry for public key from sanction list. * @@ -277,21 +251,17 @@ bool sanctions_list_entry_exists(const Moderation *moderation, const Mod_Sanctio * * Returns false on failure or if entry was not found. */ -non_null(1, 2) nullable(3) -bool sanctions_list_remove_observer(Moderation *moderation, const uint8_t *public_key, - const Mod_Sanction_Creds *creds); - +bool sanctions_list_remove_observer(Moderation *_Nonnull moderation, const uint8_t *_Nonnull public_key, + const Mod_Sanction_Creds *_Nullable creds); /** @brief Replaces all sanctions list signatures made by public_sig_key with the caller's. * * This is called whenever the founder demotes a moderator. * * Returns the number of entries re-signed. */ -non_null() -uint16_t sanctions_list_replace_sig(Moderation *moderation, const uint8_t *public_sig_key); +uint16_t sanctions_list_replace_sig(Moderation *_Nonnull moderation, const uint8_t *_Nonnull public_sig_key); -non_null() -void sanctions_list_cleanup(Moderation *moderation); +void sanctions_list_cleanup(Moderation *_Nonnull moderation); #ifdef __cplusplus } /* extern "C" */ diff --git a/external/toxcore/c-toxcore/toxcore/group_onion_announce.c b/external/toxcore/c-toxcore/toxcore/group_onion_announce.c index 5a19935..059931a 100644 --- a/external/toxcore/c-toxcore/toxcore/group_onion_announce.c +++ b/external/toxcore/c-toxcore/toxcore/group_onion_announce.c @@ -28,10 +28,8 @@ static_assert(GCA_ANNOUNCE_MAX_SIZE <= ONION_MAX_EXTRA_DATA_SIZE, "GC_Announce does not fit into the onion packet extra data"); static pack_extra_data_cb pack_group_announces; -non_null() -static int pack_group_announces(void *object, const Logger *logger, const Memory *mem, const Mono_Time *mono_time, - uint8_t num_nodes, uint8_t *plain, uint16_t plain_size, - uint8_t *response, uint16_t response_size, uint16_t offset) +static int pack_group_announces(void *_Nonnull object, const Logger *_Nonnull logger, const Memory *_Nonnull mem, const Mono_Time *_Nonnull mono_time, uint8_t num_nodes, + uint8_t *_Nonnull plain, uint16_t plain_size, uint8_t *_Nonnull response, uint16_t response_size, uint16_t offset) { GC_Announces_List *gc_announces_list = (GC_Announces_List *)object; GC_Public_Announce public_announce; diff --git a/external/toxcore/c-toxcore/toxcore/group_onion_announce.h b/external/toxcore/c-toxcore/toxcore/group_onion_announce.h index 8abff63..4ebd702 100644 --- a/external/toxcore/c-toxcore/toxcore/group_onion_announce.h +++ b/external/toxcore/c-toxcore/toxcore/group_onion_announce.h @@ -12,14 +12,10 @@ #include "mem.h" #include "onion_announce.h" -non_null() -void gca_onion_init(GC_Announces_List *group_announce, Onion_Announce *onion_a); +void gca_onion_init(GC_Announces_List *_Nonnull group_announce, Onion_Announce *_Nonnull onion_a); -non_null() -int create_gca_announce_request( - const Memory *mem, const Random *rng, uint8_t *packet, uint16_t max_packet_length, - const uint8_t *dest_client_id, const uint8_t *public_key, const uint8_t *secret_key, - const uint8_t *ping_id, const uint8_t *client_id, const uint8_t *data_public_key, - uint64_t sendback_data, const uint8_t *gc_data, uint16_t gc_data_length); +int create_gca_announce_request(const Memory *_Nonnull mem, const Random *_Nonnull rng, uint8_t *_Nonnull packet, uint16_t max_packet_length, const uint8_t *_Nonnull dest_client_id, + const uint8_t *_Nonnull public_key, const uint8_t *_Nonnull secret_key, const uint8_t *_Nonnull ping_id, const uint8_t *_Nonnull client_id, const uint8_t *_Nonnull data_public_key, + uint64_t sendback_data, const uint8_t *_Nonnull gc_data, uint16_t gc_data_length); #endif /* C_TOXCORE_TOXCORE_GROUP_ONION_ANNOUNCE_H */ diff --git a/external/toxcore/c-toxcore/toxcore/group_pack.c b/external/toxcore/c-toxcore/toxcore/group_pack.c index 877df74..c3bcd1e 100644 --- a/external/toxcore/c-toxcore/toxcore/group_pack.c +++ b/external/toxcore/c-toxcore/toxcore/group_pack.c @@ -74,8 +74,7 @@ bool group_voice_state_from_int(uint8_t value, Group_Voice_State *out_enum) } } -non_null() -static bool load_unpack_state_values(GC_Chat *chat, Bin_Unpack *bu) +static bool load_unpack_state_values(GC_Chat *_Nonnull chat, Bin_Unpack *_Nonnull bu) { if (!bin_unpack_array_fixed(bu, 8, nullptr)) { LOGGER_ERROR(chat->log, "Group state values array malformed"); @@ -110,8 +109,7 @@ static bool load_unpack_state_values(GC_Chat *chat, Bin_Unpack *bu) return true; } -non_null() -static bool load_unpack_state_bin(GC_Chat *chat, Bin_Unpack *bu) +static bool load_unpack_state_bin(GC_Chat *_Nonnull chat, Bin_Unpack *_Nonnull bu) { if (!bin_unpack_array_fixed(bu, 5, nullptr)) { LOGGER_ERROR(chat->log, "Group state binary array malformed"); @@ -138,8 +136,7 @@ static bool load_unpack_state_bin(GC_Chat *chat, Bin_Unpack *bu) return true; } -non_null() -static bool load_unpack_topic_info(GC_Chat *chat, Bin_Unpack *bu) +static bool load_unpack_topic_info(GC_Chat *_Nonnull chat, Bin_Unpack *_Nonnull bu) { if (!bin_unpack_array_fixed(bu, 6, nullptr)) { LOGGER_ERROR(chat->log, "Group topic array malformed"); @@ -159,12 +156,11 @@ static bool load_unpack_topic_info(GC_Chat *chat, Bin_Unpack *bu) return true; } -non_null() -static bool load_unpack_mod_list(GC_Chat *chat, Bin_Unpack *bu) +static bool load_unpack_mod_list(GC_Chat *_Nonnull chat, Bin_Unpack *_Nonnull bu) { uint32_t actual_size = 0; if (!bin_unpack_array_fixed(bu, 2, &actual_size)) { - LOGGER_ERROR(chat->log, "Group mod list array malformed: %d != 2", actual_size); + LOGGER_ERROR(chat->log, "Group mod list array malformed: %u != 2", actual_size); return false; } @@ -179,7 +175,7 @@ static bool load_unpack_mod_list(GC_Chat *chat, Bin_Unpack *bu) } if (chat->moderation.num_mods > MOD_MAX_NUM_MODERATORS) { - LOGGER_ERROR(chat->log, "moderation count %u exceeds maximum %u", chat->moderation.num_mods, MOD_MAX_NUM_MODERATORS); + LOGGER_ERROR(chat->log, "moderation count %u exceeds maximum %u", chat->moderation.num_mods, (unsigned int)MOD_MAX_NUM_MODERATORS); chat->moderation.num_mods = MOD_MAX_NUM_MODERATORS; } @@ -209,8 +205,7 @@ static bool load_unpack_mod_list(GC_Chat *chat, Bin_Unpack *bu) return true; } -non_null() -static bool load_unpack_keys(GC_Chat *chat, Bin_Unpack *bu) +static bool load_unpack_keys(GC_Chat *_Nonnull chat, Bin_Unpack *_Nonnull bu) { if (!bin_unpack_array_fixed(bu, 4, nullptr)) { LOGGER_ERROR(chat->log, "Group keys array malformed"); @@ -228,8 +223,7 @@ static bool load_unpack_keys(GC_Chat *chat, Bin_Unpack *bu) return true; } -non_null() -static bool load_unpack_self_info(GC_Chat *chat, Bin_Unpack *bu) +static bool load_unpack_self_info(GC_Chat *_Nonnull chat, Bin_Unpack *_Nonnull bu) { if (!bin_unpack_array_fixed(bu, 4, nullptr)) { LOGGER_ERROR(chat->log, "Group self info array malformed"); @@ -281,8 +275,7 @@ static bool load_unpack_self_info(GC_Chat *chat, Bin_Unpack *bu) return true; } -non_null() -static bool load_unpack_saved_peers(GC_Chat *chat, Bin_Unpack *bu) +static bool load_unpack_saved_peers(GC_Chat *_Nonnull chat, Bin_Unpack *_Nonnull bu) { if (!bin_unpack_array_fixed(bu, 2, nullptr)) { LOGGER_ERROR(chat->log, "Group saved peers array malformed"); @@ -328,7 +321,7 @@ bool gc_load_unpack_group(GC_Chat *chat, Bin_Unpack *bu) { uint32_t actual_size; if (!bin_unpack_array_fixed(bu, 7, &actual_size)) { - LOGGER_ERROR(chat->log, "Group info array malformed: %d != 7", actual_size); + LOGGER_ERROR(chat->log, "Group info array malformed: %u != 7", actual_size); return false; } @@ -341,8 +334,7 @@ bool gc_load_unpack_group(GC_Chat *chat, Bin_Unpack *bu) && load_unpack_saved_peers(chat, bu); } -non_null() -static void save_pack_state_values(const GC_Chat *chat, Bin_Pack *bp) +static void save_pack_state_values(const GC_Chat *_Nonnull chat, Bin_Pack *_Nonnull bp) { bin_pack_array(bp, 8); bin_pack_bool(bp, chat->connection_state == CS_DISCONNECTED); // 1 @@ -355,8 +347,7 @@ static void save_pack_state_values(const GC_Chat *chat, Bin_Pack *bp) bin_pack_u08(bp, chat->shared_state.voice_state); // 8 } -non_null() -static void save_pack_state_bin(const GC_Chat *chat, Bin_Pack *bp) +static void save_pack_state_bin(const GC_Chat *_Nonnull chat, Bin_Pack *_Nonnull bp) { bin_pack_array(bp, 5); @@ -367,8 +358,7 @@ static void save_pack_state_bin(const GC_Chat *chat, Bin_Pack *bp) bin_pack_bin(bp, chat->shared_state.mod_list_hash, MOD_MODERATION_HASH_SIZE); // 5 } -non_null() -static void save_pack_topic_info(const GC_Chat *chat, Bin_Pack *bp) +static void save_pack_topic_info(const GC_Chat *_Nonnull chat, Bin_Pack *_Nonnull bp) { bin_pack_array(bp, 6); @@ -380,8 +370,7 @@ static void save_pack_topic_info(const GC_Chat *chat, Bin_Pack *bp) bin_pack_bin(bp, chat->topic_sig, SIGNATURE_SIZE); // 6 } -non_null() -static void save_pack_mod_list(const GC_Chat *chat, Bin_Pack *bp) +static void save_pack_mod_list(const GC_Chat *_Nonnull chat, Bin_Pack *_Nonnull bp) { bin_pack_array(bp, 2); @@ -414,8 +403,7 @@ static void save_pack_mod_list(const GC_Chat *chat, Bin_Pack *bp) mem_delete(chat->mem, packed_mod_list); } -non_null() -static void save_pack_keys(const GC_Chat *chat, Bin_Pack *bp) +static void save_pack_keys(const GC_Chat *_Nonnull chat, Bin_Pack *_Nonnull bp) { bin_pack_array(bp, 4); @@ -425,8 +413,7 @@ static void save_pack_keys(const GC_Chat *chat, Bin_Pack *bp) pack_extended_secret_key(&chat->self_secret_key, bp); // 4 } -non_null() -static void save_pack_self_info(const GC_Chat *chat, Bin_Pack *bp) +static void save_pack_self_info(const GC_Chat *_Nonnull chat, Bin_Pack *_Nonnull bp) { bin_pack_array(bp, 4); @@ -443,8 +430,7 @@ static void save_pack_self_info(const GC_Chat *chat, Bin_Pack *bp) bin_pack_bin(bp, self->nick, self->nick_length); // 4 } -non_null() -static void save_pack_saved_peers(const GC_Chat *chat, Bin_Pack *bp) +static void save_pack_saved_peers(const GC_Chat *_Nonnull chat, Bin_Pack *_Nonnull bp) { bin_pack_array(bp, 2); diff --git a/external/toxcore/c-toxcore/toxcore/group_pack.h b/external/toxcore/c-toxcore/toxcore/group_pack.h index 4c99913..cc0e5b8 100644 --- a/external/toxcore/c-toxcore/toxcore/group_pack.h +++ b/external/toxcore/c-toxcore/toxcore/group_pack.h @@ -21,8 +21,7 @@ * Packs group data from `chat` into `mp` in binary format. Parallel to the * `gc_load_unpack_group` function. */ -non_null() -void gc_save_pack_group(const GC_Chat *chat, Bin_Pack *bp); +void gc_save_pack_group(const GC_Chat *_Nonnull chat, Bin_Pack *_Nonnull bp); /** * Unpacks binary group data from `obj` into `chat`. Parallel to the `gc_save_pack_group` @@ -30,12 +29,9 @@ void gc_save_pack_group(const GC_Chat *chat, Bin_Pack *bp); * * Return true if unpacking is successful. */ -non_null() -bool gc_load_unpack_group(GC_Chat *chat, Bin_Unpack *bu); +bool gc_load_unpack_group(GC_Chat *_Nonnull chat, Bin_Unpack *_Nonnull bu); -non_null() -bool group_privacy_state_from_int(uint8_t value, Group_Privacy_State *out_enum); -non_null() -bool group_voice_state_from_int(uint8_t value, Group_Voice_State *out_enum); +bool group_privacy_state_from_int(uint8_t value, Group_Privacy_State *_Nonnull out_enum); +bool group_voice_state_from_int(uint8_t value, Group_Voice_State *_Nonnull out_enum); #endif /* C_TOXCORE_TOXCORE_GROUP_PACK_H */ diff --git a/external/toxcore/c-toxcore/toxcore/list.c b/external/toxcore/c-toxcore/toxcore/list.c index 689ad0a..66330b0 100644 --- a/external/toxcore/c-toxcore/toxcore/list.c +++ b/external/toxcore/c-toxcore/toxcore/list.c @@ -41,8 +41,7 @@ static int32_t list_index(uint32_t i) * @retval <0 no match, returns index (return value is `list_index(index)`) where * the data should be inserted */ -non_null() -static int find(const BS_List *list, const uint8_t *data) +static int find(const BS_List *_Nonnull list, const uint8_t *_Nonnull data) { // should work well, but could be improved if (list->n == 0) { @@ -60,7 +59,7 @@ static int find(const BS_List *list, const uint8_t *data) // closest match is found if we move back to where we have already been while (true) { - const int r = list->cmp_callback(data, list->data + list->element_size * i, list->element_size); + const int r = list->cmp_callback(data, (const void *_Nonnull)(list->data + list->element_size * i), list->element_size); if (r == 0) { return i; @@ -107,8 +106,7 @@ static int find(const BS_List *list, const uint8_t *data) * * @return true on success. */ -non_null() -static bool resize(BS_List *list, uint32_t new_size) +static bool resize(BS_List *_Nonnull list, uint32_t new_size) { if (new_size == 0) { bs_list_free(list); diff --git a/external/toxcore/c-toxcore/toxcore/list.h b/external/toxcore/c-toxcore/toxcore/list.h index ae0ea32..168cbe3 100644 --- a/external/toxcore/c-toxcore/toxcore/list.h +++ b/external/toxcore/c-toxcore/toxcore/list.h @@ -22,17 +22,17 @@ extern "C" { #endif -typedef int bs_list_cmp_cb(const void *a, const void *b, size_t size); +typedef int bs_list_cmp_cb(const void *_Nonnull a, const void *_Nonnull b, size_t size); typedef struct BS_List { - const Memory *mem; + const Memory *_Nonnull mem; uint32_t n; // number of elements uint32_t capacity; // number of elements memory is allocated for uint32_t element_size; // size of the elements - uint8_t *data; // array of elements - int *ids; // array of element ids - bs_list_cmp_cb *cmp_callback; + uint8_t *_Nullable data; // array of elements + int *_Nullable ids; // array of element ids + bs_list_cmp_cb *_Nullable cmp_callback; } BS_List; /** @brief Initialize a list. @@ -43,36 +43,30 @@ typedef struct BS_List { * @retval 1 success * @retval 0 failure */ -non_null() -int bs_list_init(BS_List *list, const Memory *mem, uint32_t element_size, uint32_t initial_capacity, bs_list_cmp_cb *cmp_callback); +int bs_list_init(BS_List *_Nonnull list, const Memory *_Nonnull mem, uint32_t element_size, uint32_t initial_capacity, bs_list_cmp_cb *_Nonnull cmp_callback); /** Free a list initiated with list_init */ -nullable(1) -void bs_list_free(BS_List *list); - +void bs_list_free(BS_List *_Nullable list); /** @brief Retrieve the id of an element in the list * * @retval >=0 id associated with data * @retval -1 failure */ -non_null() -int bs_list_find(const BS_List *list, const uint8_t *data); +int bs_list_find(const BS_List *_Nonnull list, const uint8_t *_Nonnull data); /** @brief Add an element with associated id to the list * * @retval true success * @retval false failure (data already in list) */ -non_null() -bool bs_list_add(BS_List *list, const uint8_t *data, int id); +bool bs_list_add(BS_List *_Nonnull list, const uint8_t *_Nonnull data, int id); /** @brief Remove element from the list * * @retval true success * @retval false failure (element not found or id does not match) */ -non_null() -bool bs_list_remove(BS_List *list, const uint8_t *data, int id); +bool bs_list_remove(BS_List *_Nonnull list, const uint8_t *_Nonnull data, int id); #ifdef __cplusplus } /* extern "C" */ diff --git a/external/toxcore/c-toxcore/toxcore/logger.h b/external/toxcore/c-toxcore/toxcore/logger.h index 893c21f..060c189 100644 --- a/external/toxcore/c-toxcore/toxcore/logger.h +++ b/external/toxcore/c-toxcore/toxcore/logger.h @@ -33,28 +33,23 @@ typedef enum Logger_Level { typedef struct Logger Logger; -typedef void logger_cb(void *context, Logger_Level level, const char *file, uint32_t line, - const char *func, const char *message, void *userdata); +typedef void logger_cb(void *_Nullable context, Logger_Level level, const char *_Nonnull file, uint32_t line, + const char *_Nonnull func, const char *_Nonnull message, void *_Nullable userdata); /** * Creates a new logger with logging disabled (callback is NULL) by default. */ -non_null() -Logger *logger_new(const Memory *mem); +Logger *_Nullable logger_new(const Memory *_Nonnull mem); /** * Frees all resources associated with the logger. */ -nullable(1) -void logger_kill(Logger *log); - +void logger_kill(Logger *_Nullable log); /** * Sets the logger callback. Disables logging if set to NULL. * The context parameter is passed to the callback as first argument. */ -non_null(1) nullable(2, 3, 4) -void logger_callback_log(Logger *log, logger_cb *function, void *context, void *userdata); - +void logger_callback_log(Logger *_Nonnull log, logger_cb *_Nullable function, void *_Nullable context, void *_Nullable userdata); /** @brief Main write function. If logging is disabled, this does nothing. * * If the logger is NULL and `NDEBUG` is not defined, this writes to stderr. @@ -64,10 +59,8 @@ void logger_callback_log(Logger *log, logger_cb *function, void *context, void * * * If `NDEBUG` is defined, the NULL logger does nothing. */ -non_null(3, 5, 6) nullable(1) GNU_PRINTF(6, 7) -void logger_write( - const Logger *log, Logger_Level level, const char *file, uint32_t line, const char *func, - const char *format, ...); +GNU_PRINTF(6, 7) +void logger_write(const Logger *_Nullable log, Logger_Level level, const char *_Nonnull file, uint32_t line, const char *_Nonnull func, const char *_Nonnull format, ...); /* @brief Terminate the program with a signal. */ void logger_abort(void); diff --git a/external/toxcore/c-toxcore/toxcore/mem.c b/external/toxcore/c-toxcore/toxcore/mem.c index 32e7eec..31aa4c9 100644 --- a/external/toxcore/c-toxcore/toxcore/mem.c +++ b/external/toxcore/c-toxcore/toxcore/mem.c @@ -10,26 +10,22 @@ #include "attributes.h" #include "ccompat.h" -nullable(1) -static void *sys_malloc(void *obj, uint32_t size) +static void *sys_malloc(void *_Nullable obj, uint32_t size) { return malloc(size); } -nullable(1) -static void *sys_calloc(void *obj, uint32_t nmemb, uint32_t size) +static void *sys_calloc(void *_Nullable obj, uint32_t nmemb, uint32_t size) { return calloc(nmemb, size); } -nullable(1, 2) -static void *sys_realloc(void *obj, void *ptr, uint32_t size) +static void *sys_realloc(void *_Nullable obj, void *_Nullable ptr, uint32_t size) { return realloc(ptr, size); } -nullable(1, 2) -static void sys_free(void *obj, void *ptr) +static void sys_free(void *_Nullable obj, void *_Nullable ptr) { free(ptr); } diff --git a/external/toxcore/c-toxcore/toxcore/mem.h b/external/toxcore/c-toxcore/toxcore/mem.h index 6c36027..a8a4eff 100644 --- a/external/toxcore/c-toxcore/toxcore/mem.h +++ b/external/toxcore/c-toxcore/toxcore/mem.h @@ -17,25 +17,25 @@ extern "C" { #endif -typedef void *mem_malloc_cb(void *obj, uint32_t size); -typedef void *mem_calloc_cb(void *obj, uint32_t nmemb, uint32_t size); -typedef void *mem_realloc_cb(void *obj, void *ptr, uint32_t size); -typedef void mem_free_cb(void *obj, void *ptr); +typedef void *mem_malloc_cb(void *_Nullable obj, uint32_t size); +typedef void *mem_calloc_cb(void *_Nullable obj, uint32_t nmemb, uint32_t size); +typedef void *mem_realloc_cb(void *_Nullable obj, void *_Nullable ptr, uint32_t size); +typedef void mem_free_cb(void *_Nullable obj, void *_Nullable ptr); /** @brief Functions wrapping standard C memory allocation functions. */ typedef struct Memory_Funcs { - mem_malloc_cb *malloc; - mem_calloc_cb *calloc; - mem_realloc_cb *realloc; - mem_free_cb *free; + mem_malloc_cb *_Nullable malloc; + mem_calloc_cb *_Nullable calloc; + mem_realloc_cb *_Nullable realloc; + mem_free_cb *_Nullable free; } Memory_Funcs; typedef struct Memory { - const Memory_Funcs *funcs; - void *obj; + const Memory_Funcs *_Nullable funcs; + void *_Nullable obj; } Memory; -const Memory *os_memory(void); +const Memory *_Nullable os_memory(void); /** * @brief Allocate an array of a given size for built-in types. @@ -43,7 +43,7 @@ const Memory *os_memory(void); * The array will not be initialised. Supported built-in types are * `uint8_t`, `int8_t`, and `int16_t`. */ -non_null() void *mem_balloc(const Memory *mem, uint32_t size); +void *_Nullable mem_balloc(const Memory *_Nonnull mem, uint32_t size); /** * @brief Resize an array of a given size for built-in types. @@ -51,21 +51,21 @@ non_null() void *mem_balloc(const Memory *mem, uint32_t size); * If used for a type other than byte-sized types, `size` needs to be manually * multiplied by the element size. */ -non_null(1) nullable(2) void *mem_brealloc(const Memory *mem, void *ptr, uint32_t size); +void *_Nullable mem_brealloc(const Memory *_Nonnull mem, void *_Nullable ptr, uint32_t size); /** * @brief Allocate a single object. * * Always use as `(T *)mem_alloc(mem, sizeof(T))`. */ -non_null() void *mem_alloc(const Memory *mem, uint32_t size); +void *_Nullable mem_alloc(const Memory *_Nonnull mem, uint32_t size); /** * @brief Allocate a vector (array) of objects. * * Always use as `(T *)mem_valloc(mem, N, sizeof(T))`. */ -non_null() void *mem_valloc(const Memory *mem, uint32_t nmemb, uint32_t size); +void *_Nullable mem_valloc(const Memory *_Nonnull mem, uint32_t nmemb, uint32_t size); /** * @brief Resize an object vector. @@ -82,10 +82,10 @@ non_null() void *mem_valloc(const Memory *mem, uint32_t nmemb, uint32_t size); * case where the multiplication would overflow. If such an overflow occurs, * `mem_vrealloc()` returns `nullptr`. */ -non_null(1) nullable(2) void *mem_vrealloc(const Memory *mem, void *ptr, uint32_t nmemb, uint32_t size); +void *_Nullable mem_vrealloc(const Memory *_Nonnull mem, void *_Nullable ptr, uint32_t nmemb, uint32_t size); /** @brief Free an array, object, or object vector. */ -non_null(1) nullable(2) void mem_delete(const Memory *mem, void *ptr); +void mem_delete(const Memory *_Nonnull mem, void *_Nullable ptr); #ifdef __cplusplus } /* extern "C" */ diff --git a/external/toxcore/c-toxcore/toxcore/mono_time.c b/external/toxcore/c-toxcore/toxcore/mono_time.c index 8a3044c..6e1ea37 100644 --- a/external/toxcore/c-toxcore/toxcore/mono_time.c +++ b/external/toxcore/c-toxcore/toxcore/mono_time.c @@ -57,8 +57,7 @@ static uint64_t timespec_to_u64(struct timespec clock_mono) } #ifdef OS_WIN32 -non_null() -static uint64_t current_time_monotonic_default(void *user_data) +static uint64_t current_time_monotonic_default(void *_Nonnull user_data) { LARGE_INTEGER freq; LARGE_INTEGER count; @@ -79,8 +78,7 @@ static uint64_t current_time_monotonic_default(void *user_data) } #else #ifdef __APPLE__ -non_null() -static uint64_t current_time_monotonic_default(void *user_data) +static uint64_t current_time_monotonic_default(void *_Nonnull user_data) { struct timespec clock_mono; clock_serv_t muhclock; @@ -95,8 +93,7 @@ static uint64_t current_time_monotonic_default(void *user_data) return timespec_to_u64(clock_mono); } #else // !__APPLE__ -non_null() -static uint64_t current_time_monotonic_default(void *user_data) +static uint64_t current_time_monotonic_default(void *_Nonnull user_data) { #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION // This assert should always fail. If it does, the fuzzing harness didn't diff --git a/external/toxcore/c-toxcore/toxcore/mono_time.h b/external/toxcore/c-toxcore/toxcore/mono_time.h index e23c1ba..cb24309 100644 --- a/external/toxcore/c-toxcore/toxcore/mono_time.h +++ b/external/toxcore/c-toxcore/toxcore/mono_time.h @@ -46,48 +46,39 @@ extern "C" { */ typedef struct Mono_Time Mono_Time; -typedef uint64_t mono_time_current_time_cb(void *user_data); - -non_null(1) nullable(2, 3) -Mono_Time *mono_time_new(const Memory *mem, mono_time_current_time_cb *current_time_callback, void *user_data); - -non_null(1) nullable(2) -void mono_time_free(const Memory *mem, Mono_Time *mono_time); +typedef uint64_t mono_time_current_time_cb(void *_Nullable user_data); +Mono_Time *_Nullable mono_time_new(const Memory *_Nonnull mem, mono_time_current_time_cb *_Nullable current_time_callback, void *_Nullable user_data); +void mono_time_free(const Memory *_Nonnull mem, Mono_Time *_Nullable mono_time); /** * Update mono_time; subsequent calls to mono_time_get or mono_time_is_timeout * will use the time at the call to mono_time_update. */ -non_null() -void mono_time_update(Mono_Time *mono_time); +void mono_time_update(Mono_Time *_Nonnull mono_time); /** @brief Return current monotonic time in milliseconds (ms). * * The starting point is UNIX epoch as measured by `time()` in `mono_time_new()`. */ -non_null() -uint64_t mono_time_get_ms(const Mono_Time *mono_time); +uint64_t mono_time_get_ms(const Mono_Time *_Nonnull mono_time); /** @brief Return a monotonically increasing time in seconds. * * The starting point is UNIX epoch as measured by `time()` in `mono_time_new()`. */ -non_null() -uint64_t mono_time_get(const Mono_Time *mono_time); +uint64_t mono_time_get(const Mono_Time *_Nonnull mono_time); /** * Return true iff timestamp is at least timeout seconds in the past. */ -non_null() -bool mono_time_is_timeout(const Mono_Time *mono_time, uint64_t timestamp, uint64_t timeout); +bool mono_time_is_timeout(const Mono_Time *_Nonnull mono_time, uint64_t timestamp, uint64_t timeout); /** @brief Return current monotonic time in milliseconds (ms). * * The starting point is unspecified and in particular is likely not comparable * to the return value of `mono_time_get_ms()`. */ -non_null() -uint64_t current_time_monotonic(const Mono_Time *mono_time); +uint64_t current_time_monotonic(const Mono_Time *_Nonnull mono_time); /** * Override implementation of `current_time_monotonic()` (for tests). @@ -95,10 +86,8 @@ uint64_t current_time_monotonic(const Mono_Time *mono_time); * The caller is obligated to ensure that `current_time_monotonic()` continues * to increase monotonically. */ -non_null(1) nullable(2, 3) -void mono_time_set_current_time_callback(Mono_Time *mono_time, - mono_time_current_time_cb *current_time_callback, void *user_data); - +void mono_time_set_current_time_callback(Mono_Time *_Nonnull mono_time, + mono_time_current_time_cb *_Nullable current_time_callback, void *_Nullable user_data); #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/external/toxcore/c-toxcore/toxcore/net_crypto.c b/external/toxcore/c-toxcore/toxcore/net_crypto.c index bf9f1d5..6815a13 100644 --- a/external/toxcore/c-toxcore/toxcore/net_crypto.c +++ b/external/toxcore/c-toxcore/toxcore/net_crypto.c @@ -181,8 +181,7 @@ DHT *nc_get_dht(const Net_Crypto *c) return c->dht; } -non_null() -static bool crypt_connection_id_is_valid(const Net_Crypto *c, int crypt_connection_id) +static bool crypt_connection_id_is_valid(const Net_Crypto *_Nonnull c, int crypt_connection_id) { if ((uint32_t)crypt_connection_id >= c->crypto_connections_length) { return false; @@ -216,9 +215,7 @@ static bool crypt_connection_id_is_valid(const Net_Crypto *c, int crypt_connecti * @retval -1 on failure. * @retval COOKIE_REQUEST_LENGTH on success. */ -non_null() -static int create_cookie_request(const Net_Crypto *c, uint8_t *packet, const uint8_t *dht_public_key, - uint64_t number, uint8_t *shared_key) +static int create_cookie_request(const Net_Crypto *_Nonnull c, uint8_t *_Nonnull packet, const uint8_t *_Nonnull dht_public_key, uint64_t number, uint8_t *_Nonnull shared_key) { uint8_t plain[COOKIE_REQUEST_PLAIN_LENGTH]; @@ -247,9 +244,8 @@ static int create_cookie_request(const Net_Crypto *c, uint8_t *packet, const uin * @retval -1 on failure. * @retval 0 on success. */ -non_null() -static int create_cookie(const Memory *mem, const Random *rng, const Mono_Time *mono_time, uint8_t *cookie, const uint8_t *bytes, - const uint8_t *encryption_key) +static int create_cookie(const Memory *_Nonnull mem, const Random *_Nonnull rng, const Mono_Time *_Nonnull mono_time, uint8_t *_Nonnull cookie, const uint8_t *_Nonnull bytes, + const uint8_t *_Nonnull encryption_key) { uint8_t contents[COOKIE_CONTENTS_LENGTH]; const uint64_t temp_time = mono_time_get(mono_time); @@ -270,9 +266,7 @@ static int create_cookie(const Memory *mem, const Random *rng, const Mono_Time * * @retval -1 on failure. * @retval 0 on success. */ -non_null() -static int open_cookie(const Memory *mem, const Mono_Time *mono_time, uint8_t *bytes, const uint8_t *cookie, - const uint8_t *encryption_key) +static int open_cookie(const Memory *_Nonnull mem, const Mono_Time *_Nonnull mono_time, uint8_t *_Nonnull bytes, const uint8_t *_Nonnull cookie, const uint8_t *_Nonnull encryption_key) { uint8_t contents[COOKIE_CONTENTS_LENGTH]; const int len = decrypt_data_symmetric(mem, encryption_key, cookie, cookie + CRYPTO_NONCE_SIZE, @@ -301,9 +295,8 @@ static int open_cookie(const Memory *mem, const Mono_Time *mono_time, uint8_t *b * @retval -1 on failure. * @retval COOKIE_RESPONSE_LENGTH on success. */ -non_null() -static int create_cookie_response(const Net_Crypto *c, uint8_t *packet, const uint8_t *request_plain, - const uint8_t *shared_key, const uint8_t *dht_public_key) +static int create_cookie_response(const Net_Crypto *_Nonnull c, uint8_t *_Nonnull packet, const uint8_t *_Nonnull request_plain, const uint8_t *_Nonnull shared_key, + const uint8_t *_Nonnull dht_public_key) { uint8_t cookie_plain[COOKIE_DATA_LENGTH]; memcpy(cookie_plain, request_plain, CRYPTO_PUBLIC_KEY_SIZE); @@ -333,9 +326,8 @@ static int create_cookie_response(const Net_Crypto *c, uint8_t *packet, const ui * @retval -1 on failure. * @retval 0 on success. */ -non_null() -static int handle_cookie_request(const Net_Crypto *c, uint8_t *request_plain, uint8_t *shared_key, - uint8_t *dht_public_key, const uint8_t *packet, uint16_t length) +static int handle_cookie_request(const Net_Crypto *_Nonnull c, uint8_t *_Nonnull request_plain, uint8_t *_Nonnull shared_key, uint8_t *_Nonnull dht_public_key, + const uint8_t *_Nonnull packet, uint16_t length) { if (length != COOKIE_REQUEST_LENGTH) { return -1; @@ -356,9 +348,8 @@ static int handle_cookie_request(const Net_Crypto *c, uint8_t *request_plain, ui } /** Handle the cookie request packet (for raw UDP) */ -non_null(1, 2, 3) nullable(5) -static int udp_handle_cookie_request(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, - void *userdata) +static int udp_handle_cookie_request(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, + void *_Nullable userdata) { const Net_Crypto *c = (const Net_Crypto *)object; uint8_t request_plain[COOKIE_REQUEST_PLAIN_LENGTH]; @@ -383,9 +374,7 @@ static int udp_handle_cookie_request(void *object, const IP_Port *source, const } /** Handle the cookie request packet (for TCP) */ -non_null() -static int tcp_handle_cookie_request(const Net_Crypto *c, int connections_number, const uint8_t *packet, - uint16_t length) +static int tcp_handle_cookie_request(const Net_Crypto *_Nonnull c, int connections_number, const uint8_t *_Nonnull packet, uint16_t length) { uint8_t request_plain[COOKIE_REQUEST_PLAIN_LENGTH]; uint8_t shared_key[CRYPTO_SHARED_KEY_SIZE]; @@ -406,9 +395,8 @@ static int tcp_handle_cookie_request(const Net_Crypto *c, int connections_number } /** Handle the cookie request packet (for TCP oob packets) */ -non_null() -static int tcp_oob_handle_cookie_request(const Net_Crypto *c, unsigned int tcp_connections_number, - const uint8_t *dht_public_key, const uint8_t *packet, uint16_t length) +static int tcp_oob_handle_cookie_request(const Net_Crypto *_Nonnull c, unsigned int tcp_connections_number, const uint8_t *_Nonnull dht_public_key, const uint8_t *_Nonnull packet, + uint16_t length) { uint8_t request_plain[COOKIE_REQUEST_PLAIN_LENGTH]; uint8_t shared_key[CRYPTO_SHARED_KEY_SIZE]; @@ -440,10 +428,8 @@ static int tcp_oob_handle_cookie_request(const Net_Crypto *c, unsigned int tcp_c * @retval -1 on failure. * @retval COOKIE_LENGTH on success. */ -non_null() -static int handle_cookie_response(const Memory *mem, uint8_t *cookie, uint64_t *number, - const uint8_t *packet, uint16_t length, - const uint8_t *shared_key) +static int handle_cookie_response(const Memory *_Nonnull mem, uint8_t *_Nonnull cookie, uint64_t *_Nonnull number, const uint8_t *_Nonnull packet, uint16_t length, + const uint8_t *_Nonnull shared_key) { if (length != COOKIE_RESPONSE_LENGTH) { return -1; @@ -471,9 +457,8 @@ static int handle_cookie_response(const Memory *mem, uint8_t *cookie, uint64_t * * @retval -1 on failure. * @retval HANDSHAKE_PACKET_LENGTH on success. */ -non_null() -static int create_crypto_handshake(const Net_Crypto *c, uint8_t *packet, const uint8_t *cookie, const uint8_t *nonce, - const uint8_t *session_pk, const uint8_t *peer_real_pk, const uint8_t *peer_dht_pubkey) +static int create_crypto_handshake(const Net_Crypto *_Nonnull c, uint8_t *_Nonnull packet, const uint8_t *_Nonnull cookie, const uint8_t *_Nonnull nonce, const uint8_t *_Nonnull session_pk, + const uint8_t *_Nonnull peer_real_pk, const uint8_t *_Nonnull peer_dht_pubkey) { uint8_t plain[CRYPTO_NONCE_SIZE + CRYPTO_PUBLIC_KEY_SIZE + CRYPTO_SHA512_SIZE + COOKIE_LENGTH]; memcpy(plain, nonce, CRYPTO_NONCE_SIZE); @@ -520,9 +505,8 @@ static int create_crypto_handshake(const Net_Crypto *c, uint8_t *packet, const u * @retval false on failure. * @retval true on success. */ -non_null(1, 2, 3, 4, 5, 6, 7) nullable(9) -static bool handle_crypto_handshake(const Net_Crypto *c, uint8_t *nonce, uint8_t *session_pk, uint8_t *peer_real_pk, - uint8_t *dht_public_key, uint8_t *cookie, const uint8_t *packet, uint16_t length, const uint8_t *expected_real_pk) +static bool handle_crypto_handshake(const Net_Crypto *_Nonnull c, uint8_t *_Nonnull nonce, uint8_t *_Nonnull session_pk, uint8_t *_Nonnull peer_real_pk, + uint8_t *_Nonnull dht_public_key, uint8_t *_Nonnull cookie, const uint8_t *_Nonnull packet, uint16_t length, const uint8_t *_Nullable expected_real_pk) { if (length != HANDSHAKE_PACKET_LENGTH) { return false; @@ -562,8 +546,7 @@ static bool handle_crypto_handshake(const Net_Crypto *c, uint8_t *nonce, uint8_t return true; } -non_null() -static Crypto_Connection *get_crypto_connection(const Net_Crypto *c, int crypt_connection_id) +static Crypto_Connection *get_crypto_connection(const Net_Crypto *_Nonnull c, int crypt_connection_id) { if (!crypt_connection_id_is_valid(c, crypt_connection_id)) { return nullptr; @@ -577,8 +560,7 @@ static Crypto_Connection *get_crypto_connection(const Net_Crypto *c, int crypt_c * @retval -1 on failure. * @retval 0 on success. */ -non_null() -static int add_ip_port_connection(Net_Crypto *c, int crypt_connection_id, const IP_Port *ip_port) +static int add_ip_port_connection(Net_Crypto *_Nonnull c, int crypt_connection_id, const IP_Port *_Nonnull ip_port) { Crypto_Connection *conn = get_crypto_connection(c, crypt_connection_id); @@ -616,8 +598,7 @@ static int add_ip_port_connection(Net_Crypto *c, int crypt_connection_id, const * @retval IP_Port with family 0 on failure. * @return IP_Port on success. */ -non_null() -static IP_Port return_ip_port_connection(const Net_Crypto *c, int crypt_connection_id) +static IP_Port return_ip_port_connection(const Net_Crypto *_Nonnull c, int crypt_connection_id) { const IP_Port empty = {{{0}}}; @@ -674,8 +655,7 @@ static IP_Port return_ip_port_connection(const Net_Crypto *c, int crypt_connecti * @retval -1 on failure. * @retval 0 on success. */ -non_null() -static int send_packet_to(const Net_Crypto *c, int crypt_connection_id, const uint8_t *data, uint16_t length) +static int send_packet_to(const Net_Crypto *_Nonnull c, int crypt_connection_id, const uint8_t *_Nonnull data, uint16_t length) { // TODO(irungentoo): TCP, etc... Crypto_Connection *conn = get_crypto_connection(c, crypt_connection_id); @@ -734,8 +714,7 @@ static int send_packet_to(const Net_Crypto *c, int crypt_connection_id, const ui /** @brief Return number of packets in array * Note that holes are counted too. */ -non_null() -static uint32_t num_packets_array(const Packets_Array *array) +static uint32_t num_packets_array(const Packets_Array *_Nonnull array) { return array->buffer_end - array->buffer_start; } @@ -745,8 +724,7 @@ static uint32_t num_packets_array(const Packets_Array *array) * @retval -1 on failure. * @retval 0 on success. */ -non_null() -static int add_data_to_buffer(const Memory *mem, Packets_Array *array, uint32_t number, const Packet_Data *data) +static int add_data_to_buffer(const Memory *_Nonnull mem, Packets_Array *_Nonnull array, uint32_t number, const Packet_Data *_Nonnull data) { if (number - array->buffer_start >= CRYPTO_PACKET_BUFFER_SIZE) { return -1; @@ -780,8 +758,7 @@ static int add_data_to_buffer(const Memory *mem, Packets_Array *array, uint32_t * @retval 0 if data at number is empty. * @retval 1 if data pointer was put in data. */ -non_null() -static int get_data_pointer(const Packets_Array *array, Packet_Data **data, uint32_t number) +static int get_data_pointer(const Packets_Array *_Nonnull array, Packet_Data *_Nonnull *_Nonnull data, uint32_t number) { const uint32_t num_spots = num_packets_array(array); @@ -804,8 +781,7 @@ static int get_data_pointer(const Packets_Array *array, Packet_Data **data, uint * @retval -1 on failure. * @return packet number on success. */ -non_null() -static int64_t add_data_end_of_buffer(const Logger *logger, const Memory *mem, Packets_Array *array, const Packet_Data *data) +static int64_t add_data_end_of_buffer(const Logger *_Nonnull logger, const Memory *_Nonnull mem, Packets_Array *_Nonnull array, const Packet_Data *_Nonnull data) { const uint32_t num_spots = num_packets_array(array); @@ -833,8 +809,7 @@ static int64_t add_data_end_of_buffer(const Logger *logger, const Memory *mem, P * @retval -1 on failure. * @return packet number on success. */ -non_null() -static int64_t read_data_beg_buffer(const Memory *mem, Packets_Array *array, Packet_Data *data) +static int64_t read_data_beg_buffer(const Memory *_Nonnull mem, Packets_Array *_Nonnull array, Packet_Data *_Nonnull data) { if (array->buffer_end == array->buffer_start) { return -1; @@ -859,8 +834,7 @@ static int64_t read_data_beg_buffer(const Memory *mem, Packets_Array *array, Pac * @retval -1 on failure. * @retval 0 on success */ -non_null() -static int clear_buffer_until(const Memory *mem, Packets_Array *array, uint32_t number) +static int clear_buffer_until(const Memory *_Nonnull mem, Packets_Array *_Nonnull array, uint32_t number) { const uint32_t num_spots = num_packets_array(array); @@ -883,8 +857,7 @@ static int clear_buffer_until(const Memory *mem, Packets_Array *array, uint32_t return 0; } -non_null() -static int clear_buffer(const Memory *mem, Packets_Array *array) +static int clear_buffer(const Memory *_Nonnull mem, Packets_Array *_Nonnull array) { uint32_t i; @@ -906,8 +879,7 @@ static int clear_buffer(const Memory *mem, Packets_Array *array) * @retval -1 on failure. * @retval 0 on success. */ -non_null() -static int set_buffer_end(Packets_Array *array, uint32_t number) +static int set_buffer_end(Packets_Array *_Nonnull array, uint32_t number) { if (number - array->buffer_start > CRYPTO_PACKET_BUFFER_SIZE) { return -1; @@ -928,8 +900,7 @@ static int set_buffer_end(Packets_Array *array, uint32_t number) * @retval -1 on failure. * @return length of packet on success. */ -non_null() -static int generate_request_packet(uint8_t *data, uint16_t length, const Packets_Array *recv_array) +static int generate_request_packet(uint8_t *_Nonnull data, uint16_t length, const Packets_Array *_Nonnull recv_array) { if (length == 0) { return -1; @@ -982,10 +953,8 @@ static int generate_request_packet(uint8_t *data, uint16_t length, const Packets * @retval -1 on failure. * @return number of requested packets on success. */ -non_null() -static int handle_request_packet(const Memory *mem, const Mono_Time *mono_time, Packets_Array *send_array, - const uint8_t *data, uint16_t length, - uint64_t *latest_send_time, uint64_t rtt_time) +static int handle_request_packet(const Memory *_Nonnull mem, const Mono_Time *_Nonnull mono_time, Packets_Array *_Nonnull send_array, const uint8_t *_Nonnull data, uint16_t length, + uint64_t *_Nonnull latest_send_time, uint64_t rtt_time) { if (length == 0) { return -1; @@ -1065,8 +1034,7 @@ static int handle_request_packet(const Memory *mem, const Mono_Time *mono_time, * @retval -1 on failure. * @retval 0 on success. */ -non_null() -static int send_data_packet(const Net_Crypto *c, int crypt_connection_id, const uint8_t *data, uint16_t length) +static int send_data_packet(const Net_Crypto *_Nonnull c, int crypt_connection_id, const uint8_t *_Nonnull data, uint16_t length) { const uint16_t max_length = MAX_CRYPTO_PACKET_SIZE - (1 + sizeof(uint16_t) + CRYPTO_MAC_SIZE); @@ -1103,9 +1071,7 @@ static int send_data_packet(const Net_Crypto *c, int crypt_connection_id, const * @retval -1 on failure. * @retval 0 on success. */ -non_null() -static int send_data_packet_helper(const Net_Crypto *c, int crypt_connection_id, uint32_t buffer_start, uint32_t num, - const uint8_t *data, uint16_t length) +static int send_data_packet_helper(const Net_Crypto *_Nonnull c, int crypt_connection_id, uint32_t buffer_start, uint32_t num, const uint8_t *_Nonnull data, uint16_t length) { if (length == 0 || length > MAX_CRYPTO_DATA_SIZE) { LOGGER_ERROR(c->log, "zero-length or too large data packet: %d (max: %d)", length, MAX_CRYPTO_PACKET_SIZE); @@ -1125,8 +1091,7 @@ static int send_data_packet_helper(const Net_Crypto *c, int crypt_connection_id, return send_data_packet(c, crypt_connection_id, packet, packet_size); } -non_null() -static int reset_max_speed_reached(const Net_Crypto *c, int crypt_connection_id) +static int reset_max_speed_reached(const Net_Crypto *_Nonnull c, int crypt_connection_id) { Crypto_Connection *conn = get_crypto_connection(c, crypt_connection_id); @@ -1160,9 +1125,7 @@ static int reset_max_speed_reached(const Net_Crypto *c, int crypt_connection_id) * @retval -1 if data could not be put in packet queue. * @return positive packet number if data was put into the queue. */ -non_null() -static int64_t send_lossless_packet(const Net_Crypto *c, int crypt_connection_id, const uint8_t *data, uint16_t length, - bool congestion_control) +static int64_t send_lossless_packet(const Net_Crypto *_Nonnull c, int crypt_connection_id, const uint8_t *_Nonnull data, uint16_t length, bool congestion_control) { if (length == 0 || length > MAX_CRYPTO_DATA_SIZE) { LOGGER_ERROR(c->log, "rejecting too large (or empty) packet of size %d on crypt connection %d", length, @@ -1217,8 +1180,7 @@ static int64_t send_lossless_packet(const Net_Crypto *c, int crypt_connection_id * @brief Get the lowest 2 bytes from the nonce and convert * them to host byte format before returning them. */ -non_null() -static uint16_t get_nonce_uint16(const uint8_t *nonce) +static uint16_t get_nonce_uint16(const uint8_t *_Nonnull nonce) { uint16_t num; memcpy(&num, nonce + (CRYPTO_NONCE_SIZE - sizeof(uint16_t)), sizeof(uint16_t)); @@ -1234,9 +1196,7 @@ static uint16_t get_nonce_uint16(const uint8_t *nonce) * @retval -1 on failure. * @return length of data on success. */ -non_null() -static int handle_data_packet(const Net_Crypto *c, int crypt_connection_id, uint8_t *data, const uint8_t *packet, - uint16_t length) +static int handle_data_packet(const Net_Crypto *_Nonnull c, int crypt_connection_id, uint8_t *_Nonnull data, const uint8_t *_Nonnull packet, uint16_t length) { const uint16_t crypto_packet_overhead = 1 + sizeof(uint16_t) + CRYPTO_MAC_SIZE; @@ -1276,8 +1236,7 @@ static int handle_data_packet(const Net_Crypto *c, int crypt_connection_id, uint * @retval -1 on failure. * @retval 0 on success. */ -non_null() -static int send_request_packet(const Net_Crypto *c, int crypt_connection_id) +static int send_request_packet(const Net_Crypto *_Nonnull c, int crypt_connection_id) { const Crypto_Connection *conn = get_crypto_connection(c, crypt_connection_id); @@ -1301,8 +1260,7 @@ static int send_request_packet(const Net_Crypto *c, int crypt_connection_id) * @retval -1 on failure. * @return number of packets sent on success. */ -non_null() -static int send_requested_packets(const Net_Crypto *c, int crypt_connection_id, uint32_t max_num) +static int send_requested_packets(const Net_Crypto *_Nonnull c, int crypt_connection_id, uint32_t max_num) { if (max_num == 0) { return -1; @@ -1354,8 +1312,7 @@ static int send_requested_packets(const Net_Crypto *c, int crypt_connection_id, * @retval -1 on failure. * @retval 0 on success. */ -non_null() -static int new_temp_packet(const Net_Crypto *c, int crypt_connection_id, const uint8_t *packet, uint16_t length) +static int new_temp_packet(const Net_Crypto *_Nonnull c, int crypt_connection_id, const uint8_t *_Nonnull packet, uint16_t length) { if (length == 0 || length > MAX_CRYPTO_PACKET_SIZE) { return -1; @@ -1390,8 +1347,7 @@ static int new_temp_packet(const Net_Crypto *c, int crypt_connection_id, const u * @retval -1 on failure. * @retval 0 on success. */ -non_null() -static int clear_temp_packet(const Net_Crypto *c, int crypt_connection_id) +static int clear_temp_packet(const Net_Crypto *_Nonnull c, int crypt_connection_id) { Crypto_Connection *conn = get_crypto_connection(c, crypt_connection_id); @@ -1415,8 +1371,7 @@ static int clear_temp_packet(const Net_Crypto *c, int crypt_connection_id) * @retval -1 on failure. * @retval 0 on success. */ -non_null() -static int send_temp_packet(const Net_Crypto *c, int crypt_connection_id) +static int send_temp_packet(const Net_Crypto *_Nonnull c, int crypt_connection_id) { Crypto_Connection *conn = get_crypto_connection(c, crypt_connection_id); @@ -1443,9 +1398,7 @@ static int send_temp_packet(const Net_Crypto *c, int crypt_connection_id) * @retval -1 on failure. * @retval 0 on success. */ -non_null() -static int create_send_handshake(const Net_Crypto *c, int crypt_connection_id, const uint8_t *cookie, - const uint8_t *dht_public_key) +static int create_send_handshake(const Net_Crypto *_Nonnull c, int crypt_connection_id, const uint8_t *_Nonnull cookie, const uint8_t *_Nonnull dht_public_key) { const Crypto_Connection *conn = get_crypto_connection(c, crypt_connection_id); @@ -1473,8 +1426,7 @@ static int create_send_handshake(const Net_Crypto *c, int crypt_connection_id, c * @retval -1 on failure. * @retval 0 on success. */ -non_null() -static int send_kill_packet(const Net_Crypto *c, int crypt_connection_id) +static int send_kill_packet(const Net_Crypto *_Nonnull c, int crypt_connection_id) { const Crypto_Connection *conn = get_crypto_connection(c, crypt_connection_id); @@ -1487,11 +1439,9 @@ static int send_kill_packet(const Net_Crypto *c, int crypt_connection_id) kill_packet, sizeof(kill_packet)); } -non_null(1) nullable(3) -static void connection_kill(Net_Crypto *c, int crypt_connection_id, void *userdata) +static void connection_kill(Net_Crypto *_Nonnull c, int crypt_connection_id, void *_Nullable userdata) { const Crypto_Connection *conn = get_crypto_connection(c, crypt_connection_id); - if (conn == nullptr) { return; } @@ -1509,9 +1459,8 @@ static void connection_kill(Net_Crypto *c, int crypt_connection_id, void *userda * @retval -1 on failure. * @retval 0 on success. */ -non_null(1, 3) nullable(6) -static int handle_data_packet_core(Net_Crypto *c, int crypt_connection_id, const uint8_t *packet, uint16_t length, - bool udp, void *userdata) +static int handle_data_packet_core(Net_Crypto *_Nonnull c, int crypt_connection_id, const uint8_t *_Nonnull packet, uint16_t length, + bool udp, void *_Nullable userdata) { if (length > MAX_CRYPTO_PACKET_SIZE || length <= CRYPTO_DATA_PACKET_MIN_SIZE) { return -1; @@ -1648,8 +1597,7 @@ static int handle_data_packet_core(Net_Crypto *c, int crypt_connection_id, const return 0; } -non_null() -static int handle_packet_cookie_response(const Net_Crypto *c, int crypt_connection_id, const uint8_t *packet, uint16_t length) +static int handle_packet_cookie_response(const Net_Crypto *_Nonnull c, int crypt_connection_id, const uint8_t *_Nonnull packet, uint16_t length) { Crypto_Connection *conn = get_crypto_connection(c, crypt_connection_id); @@ -1680,12 +1628,10 @@ static int handle_packet_cookie_response(const Net_Crypto *c, int crypt_connecti return 0; } -non_null(1, 3) nullable(5) -static int handle_packet_crypto_hs(const Net_Crypto *c, int crypt_connection_id, const uint8_t *packet, uint16_t length, - void *userdata) +static int handle_packet_crypto_hs(const Net_Crypto *_Nonnull c, int crypt_connection_id, const uint8_t *_Nonnull packet, uint16_t length, + void *_Nullable userdata) { Crypto_Connection *conn = get_crypto_connection(c, crypt_connection_id); - if (conn == nullptr) { return -1; } @@ -1724,12 +1670,10 @@ static int handle_packet_crypto_hs(const Net_Crypto *c, int crypt_connection_id, return 0; } -non_null(1, 3) nullable(6) -static int handle_packet_crypto_data(Net_Crypto *c, int crypt_connection_id, const uint8_t *packet, uint16_t length, - bool udp, void *userdata) +static int handle_packet_crypto_data(Net_Crypto *_Nonnull c, int crypt_connection_id, const uint8_t *_Nonnull packet, uint16_t length, + bool udp, void *_Nullable userdata) { const Crypto_Connection *conn = get_crypto_connection(c, crypt_connection_id); - if (conn == nullptr) { return -1; } @@ -1746,9 +1690,8 @@ static int handle_packet_crypto_data(Net_Crypto *c, int crypt_connection_id, con * @retval -1 on failure. * @retval 0 on success. */ -non_null(1, 3) nullable(6) -static int handle_packet_connection(Net_Crypto *c, int crypt_connection_id, const uint8_t *packet, uint16_t length, - bool udp, void *userdata) +static int handle_packet_connection(Net_Crypto *_Nonnull c, int crypt_connection_id, const uint8_t *_Nonnull packet, uint16_t length, + bool udp, void *_Nullable userdata) { if (length == 0 || length > MAX_CRYPTO_PACKET_SIZE) { return -1; @@ -1774,8 +1717,7 @@ static int handle_packet_connection(Net_Crypto *c, int crypt_connection_id, cons * @retval -1 if mem_vrealloc fails. * @retval 0 if it succeeds. */ -non_null() -static int realloc_cryptoconnection(Net_Crypto *c, uint32_t num) +static int realloc_cryptoconnection(Net_Crypto *_Nonnull c, uint32_t num) { if (num == 0) { mem_delete(c->mem, c->crypto_connections); @@ -1799,8 +1741,7 @@ static int realloc_cryptoconnection(Net_Crypto *c, uint32_t num) * @retval -1 on failure. * @return connection id on success. */ -non_null() -static int create_crypto_connection(Net_Crypto *c) +static int create_crypto_connection(Net_Crypto *_Nonnull c) { int id = -1; @@ -1839,8 +1780,7 @@ static int create_crypto_connection(Net_Crypto *c) * @retval -1 on failure. * @retval 0 on success. */ -non_null() -static int wipe_crypto_connection(Net_Crypto *c, int crypt_connection_id) +static int wipe_crypto_connection(Net_Crypto *_Nonnull c, int crypt_connection_id) { if ((uint32_t)crypt_connection_id >= c->crypto_connections_length) { return -1; @@ -1880,8 +1820,7 @@ static int wipe_crypto_connection(Net_Crypto *c, int crypt_connection_id) * @retval -1 if there are no connections like we are looking for. * @return id if it found it. */ -non_null() -static int getcryptconnection_id(const Net_Crypto *c, const uint8_t *public_key) +static int getcryptconnection_id(const Net_Crypto *_Nonnull c, const uint8_t *_Nonnull public_key) { for (uint32_t i = 0; i < c->crypto_connections_length; ++i) { if (!crypt_connection_id_is_valid(c, i)) { @@ -1903,8 +1842,7 @@ static int getcryptconnection_id(const Net_Crypto *c, const uint8_t *public_key) * @retval 0 if source was a direct UDP connection. * @return positive number on success. */ -non_null() -static int crypto_connection_add_source(Net_Crypto *c, int crypt_connection_id, const IP_Port *source) +static int crypto_connection_add_source(Net_Crypto *_Nonnull c, int crypt_connection_id, const IP_Port *_Nonnull source) { Crypto_Connection *conn = get_crypto_connection(c, crypt_connection_id); @@ -1955,12 +1893,10 @@ void new_connection_handler(Net_Crypto *c, new_connection_cb *new_connection_cal * @retval -1 on failure. * @retval 0 on success. */ -non_null(1, 2, 3) nullable(5) -static int handle_new_connection_handshake(Net_Crypto *c, const IP_Port *source, const uint8_t *data, uint16_t length, - void *userdata) +static int handle_new_connection_handshake(Net_Crypto *_Nonnull c, const IP_Port *_Nonnull source, const uint8_t *_Nonnull data, uint16_t length, + void *_Nullable userdata) { uint8_t *cookie = (uint8_t *)mem_balloc(c->mem, COOKIE_LENGTH); - if (cookie == nullptr) { return -1; } @@ -2155,12 +2091,10 @@ int set_direct_ip_port(Net_Crypto *c, int crypt_connection_id, const IP_Port *ip return 0; } -non_null(1, 3) nullable(5) -static int tcp_data_callback(void *object, int crypt_connection_id, const uint8_t *packet, uint16_t length, - void *userdata) +static int tcp_data_callback(void *_Nonnull object, int crypt_connection_id, const uint8_t *_Nonnull packet, uint16_t length, + void *_Nullable userdata) { Net_Crypto *c = (Net_Crypto *)object; - if (length == 0 || length > MAX_CRYPTO_PACKET_SIZE) { return -1; } @@ -2185,12 +2119,10 @@ static int tcp_data_callback(void *object, int crypt_connection_id, const uint8_ return 0; } -non_null(1, 2, 4) nullable(6) -static int tcp_oob_callback(void *object, const uint8_t *public_key, unsigned int tcp_connections_number, - const uint8_t *packet, uint16_t length, void *userdata) +static int tcp_oob_callback(void *_Nonnull object, const uint8_t *_Nonnull public_key, unsigned int tcp_connections_number, + const uint8_t *_Nonnull packet, uint16_t length, void *_Nullable userdata) { Net_Crypto *c = (Net_Crypto *)object; - if (length == 0 || length > MAX_CRYPTO_PACKET_SIZE) { return -1; } @@ -2312,8 +2244,7 @@ uint32_t copy_connected_tcp_relays_index(const Net_Crypto *c, Node_format *tcp_r return tcp_copy_connected_relays_index(c->tcp_c, tcp_relays, num, idx); } -non_null() -static void do_tcp(Net_Crypto *c, void *userdata) +static void do_tcp(Net_Crypto *_Nonnull c, void *_Nonnull userdata) { do_tcp_connections(c->log, c->tcp_c, userdata); @@ -2439,8 +2370,7 @@ int nc_dht_pk_callback(const Net_Crypto *c, int crypt_connection_id, dht_pk_cb * * return -1 on failure. * return connection id on success. */ -non_null() -static int crypto_id_ip_port(const Net_Crypto *c, const IP_Port *ip_port) +static int crypto_id_ip_port(const Net_Crypto *_Nonnull c, const IP_Port *_Nonnull ip_port) { return bs_list_find(&c->ip_port_list, (const uint8_t *)ip_port); } @@ -2455,12 +2385,10 @@ static int crypto_id_ip_port(const Net_Crypto *c, const IP_Port *ip_port) * Crypto data packets. * */ -non_null(1, 2, 3) nullable(5) -static int udp_handle_packet(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, - void *userdata) +static int udp_handle_packet(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, + void *_Nullable userdata) { Net_Crypto *c = (Net_Crypto *)object; - if (length <= CRYPTO_MIN_PACKET_SIZE || length > MAX_CRYPTO_PACKET_SIZE) { return 1; } @@ -2518,8 +2446,7 @@ static int udp_handle_packet(void *object, const IP_Port *source, const uint8_t */ #define SEND_QUEUE_RATIO 2.0 -non_null() -static void send_crypto_packets(Net_Crypto *c) +static void send_crypto_packets(Net_Crypto *_Nonnull c) { const uint64_t temp_time = current_time_monotonic(c->mono_time); double total_send_rate = 0; @@ -3033,12 +2960,10 @@ Net_Crypto *new_net_crypto(const Logger *log, const Memory *mem, const Random *r return temp; } -non_null(1) nullable(2) -static void kill_timedout(Net_Crypto *c, void *userdata) +static void kill_timedout(Net_Crypto *_Nonnull c, void *_Nullable userdata) { for (uint32_t i = 0; i < c->crypto_connections_length; ++i) { const Crypto_Connection *conn = get_crypto_connection(c, i); - if (conn == nullptr) { continue; } diff --git a/external/toxcore/c-toxcore/toxcore/net_crypto.h b/external/toxcore/c-toxcore/toxcore/net_crypto.h index 8947070..dc93d65 100644 --- a/external/toxcore/c-toxcore/toxcore/net_crypto.h +++ b/external/toxcore/c-toxcore/toxcore/net_crypto.h @@ -123,10 +123,10 @@ typedef enum Packet_Id { typedef struct Net_Crypto Net_Crypto; -non_null() const uint8_t *nc_get_self_public_key(const Net_Crypto *c); -non_null() const uint8_t *nc_get_self_secret_key(const Net_Crypto *c); -non_null() TCP_Connections *nc_get_tcp_c(const Net_Crypto *c); -non_null() DHT *nc_get_dht(const Net_Crypto *c); +const uint8_t *_Nonnull nc_get_self_public_key(const Net_Crypto *_Nonnull c); +const uint8_t *_Nonnull nc_get_self_secret_key(const Net_Crypto *_Nonnull c); +TCP_Connections *_Nonnull nc_get_tcp_c(const Net_Crypto *_Nonnull c); +DHT *_Nonnull nc_get_dht(const Net_Crypto *_Nonnull c); typedef struct New_Connection { IP_Port source; @@ -134,15 +134,15 @@ typedef struct New_Connection { uint8_t dht_public_key[CRYPTO_PUBLIC_KEY_SIZE]; /* The dht public key of the peer. */ uint8_t recv_nonce[CRYPTO_NONCE_SIZE]; /* Nonce of received packets. */ uint8_t peersessionpublic_key[CRYPTO_PUBLIC_KEY_SIZE]; /* The public key of the peer. */ - uint8_t *cookie; + uint8_t *_Nullable cookie; uint8_t cookie_length; } New_Connection; -typedef int connection_status_cb(void *object, int id, bool status, void *userdata); -typedef int connection_data_cb(void *object, int id, const uint8_t *data, uint16_t length, void *userdata); -typedef int connection_lossy_data_cb(void *object, int id, const uint8_t *data, uint16_t length, void *userdata); -typedef void dht_pk_cb(void *object, int32_t number, const uint8_t *dht_public_key, void *userdata); -typedef int new_connection_cb(void *object, const New_Connection *n_c); +typedef int connection_status_cb(void *_Nonnull object, int id, bool status, void *_Nullable userdata); +typedef int connection_data_cb(void *_Nonnull object, int id, const uint8_t *_Nonnull data, uint16_t length, void *_Nullable userdata); +typedef int connection_lossy_data_cb(void *_Nonnull object, int id, const uint8_t *_Nonnull data, uint16_t length, void *_Nullable userdata); +typedef void dht_pk_cb(void *_Nonnull object, int32_t number, const uint8_t *_Nonnull dht_public_key, void *_Nullable userdata); +typedef int new_connection_cb(void *_Nonnull object, const New_Connection *_Nonnull n_c); /** @brief Set function to be called when someone requests a new connection to us. * @@ -150,16 +150,14 @@ typedef int new_connection_cb(void *object, const New_Connection *n_c); * * n_c is only valid for the duration of the function call. */ -non_null() -void new_connection_handler(Net_Crypto *c, new_connection_cb *new_connection_callback, void *object); +void new_connection_handler(Net_Crypto *_Nonnull c, new_connection_cb *_Nonnull new_connection_callback, void *_Nonnull object); /** @brief Accept a crypto connection. * * return -1 on failure. * return connection id on success. */ -non_null() -int accept_crypto_connection(Net_Crypto *c, const New_Connection *n_c); +int accept_crypto_connection(Net_Crypto *_Nonnull c, const New_Connection *_Nonnull n_c); /** @brief Create a crypto connection. * If one to that real public key already exists, return it. @@ -167,8 +165,7 @@ int accept_crypto_connection(Net_Crypto *c, const New_Connection *n_c); * return -1 on failure. * return connection id on success. */ -non_null() -int new_crypto_connection(Net_Crypto *c, const uint8_t *real_public_key, const uint8_t *dht_public_key); +int new_crypto_connection(Net_Crypto *_Nonnull c, const uint8_t *_Nonnull real_public_key, const uint8_t *_Nonnull dht_public_key); /** @brief Set the direct ip of the crypto connection. * @@ -177,8 +174,7 @@ int new_crypto_connection(Net_Crypto *c, const uint8_t *real_public_key, const u * return -1 on failure. * return 0 on success. */ -non_null() -int set_direct_ip_port(Net_Crypto *c, int crypt_connection_id, const IP_Port *ip_port, bool connected); +int set_direct_ip_port(Net_Crypto *_Nonnull c, int crypt_connection_id, const IP_Port *_Nonnull ip_port, bool connected); /** @brief Set function to be called when connection with crypt_connection_id goes connects/disconnects. * @@ -190,9 +186,7 @@ int set_direct_ip_port(Net_Crypto *c, int crypt_connection_id, const IP_Port *ip * return -1 on failure. * return 0 on success. */ -non_null() -int connection_status_handler(const Net_Crypto *c, int crypt_connection_id, - connection_status_cb *connection_status_callback, void *object, int id); +int connection_status_handler(const Net_Crypto *_Nonnull c, int crypt_connection_id, connection_status_cb *_Nonnull connection_status_callback, void *_Nonnull object, int id); /** @brief Set function to be called when connection with crypt_connection_id receives a lossless data packet of length. * @@ -202,9 +196,7 @@ int connection_status_handler(const Net_Crypto *c, int crypt_connection_id, * return -1 on failure. * return 0 on success. */ -non_null() -int connection_data_handler(const Net_Crypto *c, int crypt_connection_id, - connection_data_cb *connection_data_callback, void *object, int id); +int connection_data_handler(const Net_Crypto *_Nonnull c, int crypt_connection_id, connection_data_cb *_Nonnull connection_data_callback, void *_Nonnull object, int id); /** @brief Set function to be called when connection with crypt_connection_id receives a lossy data packet of length. * @@ -214,9 +206,7 @@ int connection_data_handler(const Net_Crypto *c, int crypt_connection_id, * return -1 on failure. * return 0 on success. */ -non_null() -int connection_lossy_data_handler(const Net_Crypto *c, int crypt_connection_id, - connection_lossy_data_cb *connection_lossy_data_callback, void *object, int id); +int connection_lossy_data_handler(const Net_Crypto *_Nonnull c, int crypt_connection_id, connection_lossy_data_cb *_Nonnull connection_lossy_data_callback, void *_Nonnull object, int id); /** @brief Set the function for this friend that will be callbacked with object and number if * the friend sends us a different dht public key than we have associated to him. @@ -228,23 +218,19 @@ int connection_lossy_data_handler(const Net_Crypto *c, int crypt_connection_id, * return -1 on failure. * return 0 on success. */ -non_null() -int nc_dht_pk_callback(const Net_Crypto *c, int crypt_connection_id, - dht_pk_cb *function, void *object, uint32_t number); +int nc_dht_pk_callback(const Net_Crypto *_Nonnull c, int crypt_connection_id, dht_pk_cb *_Nonnull function, void *_Nonnull object, uint32_t number); /** * @return the number of packet slots left in the sendbuffer. * @retval 0 if failure. */ -non_null() -uint32_t crypto_num_free_sendqueue_slots(const Net_Crypto *c, int crypt_connection_id); +uint32_t crypto_num_free_sendqueue_slots(const Net_Crypto *_Nonnull c, int crypt_connection_id); /** * @retval 1 if max speed was reached for this connection (no more data can be physically through the pipe). * @retval 0 if it wasn't reached. */ -non_null() -bool max_speed_reached(const Net_Crypto *c, int crypt_connection_id); +bool max_speed_reached(const Net_Crypto *_Nonnull c, int crypt_connection_id); /** @brief Sends a lossless cryptopacket. * @@ -255,9 +241,7 @@ bool max_speed_reached(const Net_Crypto *c, int crypt_connection_id); * * congestion_control: should congestion control apply to this packet? */ -non_null() -int64_t write_cryptpacket(const Net_Crypto *c, int crypt_connection_id, - const uint8_t *data, uint16_t length, bool congestion_control); +int64_t write_cryptpacket(const Net_Crypto *_Nonnull c, int crypt_connection_id, const uint8_t *_Nonnull data, uint16_t length, bool congestion_control); /** @brief Check if packet_number was received by the other side. * @@ -273,8 +257,7 @@ int64_t write_cryptpacket(const Net_Crypto *c, int crypt_connection_id, * It CANNOT be simplified to `packet_number < buffer_start`, as it will fail * when `buffer_end < buffer_start`. */ -non_null() -int cryptpacket_received(const Net_Crypto *c, int crypt_connection_id, uint32_t packet_number); +int cryptpacket_received(const Net_Crypto *_Nonnull c, int crypt_connection_id, uint32_t packet_number); /** @brief Sends a lossy cryptopacket. * @@ -283,25 +266,21 @@ int cryptpacket_received(const Net_Crypto *c, int crypt_connection_id, uint32_t * * The first byte of data must be in the PACKET_ID_RANGE_LOSSY. */ -non_null() -int send_lossy_cryptpacket(const Net_Crypto *c, int crypt_connection_id, const uint8_t *data, uint16_t length); +int send_lossy_cryptpacket(const Net_Crypto *_Nonnull c, int crypt_connection_id, const uint8_t *_Nonnull data, uint16_t length); /** @brief Add a tcp relay, associating it to a crypt_connection_id. * * return 0 if it was added. * return -1 if it wasn't. */ -non_null() -int add_tcp_relay_peer(Net_Crypto *c, int crypt_connection_id, const IP_Port *ip_port, - const uint8_t *public_key); +int add_tcp_relay_peer(Net_Crypto *_Nonnull c, int crypt_connection_id, const IP_Port *_Nonnull ip_port, const uint8_t *_Nonnull public_key); /** @brief Add a tcp relay to the array. * * return 0 if it was added. * return -1 if it wasn't. */ -non_null() -int add_tcp_relay(Net_Crypto *c, const IP_Port *ip_port, const uint8_t *public_key); +int add_tcp_relay(Net_Crypto *_Nonnull c, const IP_Port *_Nonnull ip_port, const uint8_t *_Nonnull public_key); /** @brief Return a random TCP connection number for use in send_tcp_onion_request. * @@ -311,25 +290,21 @@ int add_tcp_relay(Net_Crypto *c, const IP_Port *ip_port, const uint8_t *public_k * return TCP connection number on success. * return -1 on failure. */ -non_null() -int get_random_tcp_con_number(const Net_Crypto *c); +int get_random_tcp_con_number(const Net_Crypto *_Nonnull c); /** @brief Put IP_Port of a random onion TCP connection in ip_port. * * return true on success. * return false on failure. */ -non_null() -bool get_random_tcp_conn_ip_port(const Net_Crypto *c, IP_Port *ip_port); +bool get_random_tcp_conn_ip_port(const Net_Crypto *_Nonnull c, IP_Port *_Nonnull ip_port); /** @brief Send an onion packet via the TCP relay corresponding to tcp_connections_number. * * return 0 on success. * return -1 on failure. */ -non_null() -int send_tcp_onion_request(Net_Crypto *c, unsigned int tcp_connections_number, - const uint8_t *data, uint16_t length); +int send_tcp_onion_request(Net_Crypto *_Nonnull c, unsigned int tcp_connections_number, const uint8_t *_Nonnull data, uint16_t length); /** * Send a forward request to the TCP relay with IP_Port tcp_forwarder, @@ -339,10 +314,8 @@ int send_tcp_onion_request(Net_Crypto *c, unsigned int tcp_connections_number, * return 0 on success. * return -1 on failure. */ -non_null() -int send_tcp_forward_request(const Logger *logger, Net_Crypto *c, const IP_Port *tcp_forwarder, const IP_Port *dht_node, - const uint8_t *chain_keys, uint16_t chain_length, - const uint8_t *data, uint16_t data_length); +int send_tcp_forward_request(const Logger *_Nonnull logger, Net_Crypto *_Nonnull c, const IP_Port *_Nonnull tcp_forwarder, const IP_Port *_Nonnull dht_node, + const uint8_t *_Nonnull chain_keys, uint16_t chain_length, const uint8_t *_Nonnull data, uint16_t data_length); /** @brief Copy a maximum of num random TCP relays we are connected to to tcp_relays. * @@ -351,8 +324,7 @@ int send_tcp_forward_request(const Logger *logger, Net_Crypto *c, const IP_Port * return number of relays copied to tcp_relays on success. * return 0 on failure. */ -non_null() -unsigned int copy_connected_tcp_relays(const Net_Crypto *c, Node_format *tcp_relays, uint16_t num); +unsigned int copy_connected_tcp_relays(const Net_Crypto *_Nonnull c, Node_format *_Nonnull tcp_relays, uint16_t num); /** * Copy a maximum of `max_num` TCP relays we are connected to starting at the index in the TCP relay array @@ -360,16 +332,14 @@ unsigned int copy_connected_tcp_relays(const Net_Crypto *c, Node_format *tcp_rel * * Returns the number of relays successfully copied. */ -non_null() -uint32_t copy_connected_tcp_relays_index(const Net_Crypto *c, Node_format *tcp_relays, uint16_t num, uint32_t idx); +uint32_t copy_connected_tcp_relays_index(const Net_Crypto *_Nonnull c, Node_format *_Nonnull tcp_relays, uint16_t num, uint32_t idx); /** @brief Kill a crypto connection. * * return -1 on failure. * return 0 on success. */ -non_null() -int crypto_kill(Net_Crypto *c, int crypt_connection_id); +int crypto_kill(Net_Crypto *_Nonnull c, int crypt_connection_id); /** * @retval true if connection is valid, false otherwise @@ -377,48 +347,37 @@ int crypto_kill(Net_Crypto *c, int crypt_connection_id); * sets direct_connected to 1 if connection connects directly to other, 0 if it isn't. * sets online_tcp_relays to the number of connected tcp relays this connection has. */ -non_null(1, 3) nullable(4) bool crypto_connection_status( - const Net_Crypto *c, int crypt_connection_id, bool *direct_connected, uint32_t *online_tcp_relays); - + const Net_Crypto *_Nonnull c, int crypt_connection_id, bool *_Nonnull direct_connected, uint32_t *_Nullable online_tcp_relays); /** @brief Generate our public and private keys. * Only call this function the first time the program starts. */ -non_null() -void new_keys(Net_Crypto *c); +void new_keys(Net_Crypto *_Nonnull c); /** @brief Save the public and private keys to the keys array. * Length must be CRYPTO_PUBLIC_KEY_SIZE + CRYPTO_SECRET_KEY_SIZE. * * TODO(irungentoo): Save only secret key. */ -non_null() -void save_keys(const Net_Crypto *c, uint8_t *keys); +void save_keys(const Net_Crypto *_Nonnull c, uint8_t *_Nonnull keys); /** @brief Load the secret key. * Length must be CRYPTO_SECRET_KEY_SIZE. */ -non_null() -void load_secret_key(Net_Crypto *c, const uint8_t *sk); +void load_secret_key(Net_Crypto *_Nonnull c, const uint8_t *_Nonnull sk); /** @brief Create new instance of Net_Crypto. * Sets all the global connection variables to their default values. */ -non_null() -Net_Crypto *new_net_crypto(const Logger *log, const Memory *mem, const Random *rng, const Network *ns, - Mono_Time *mono_time, DHT *dht, const TCP_Proxy_Info *proxy_info, Net_Profile *tcp_np); +Net_Crypto *_Nullable new_net_crypto(const Logger *_Nonnull log, const Memory *_Nonnull mem, const Random *_Nonnull rng, const Network *_Nonnull ns, Mono_Time *_Nonnull mono_time, DHT *_Nonnull dht, + const TCP_Proxy_Info *_Nonnull proxy_info, Net_Profile *_Nonnull tcp_np); /** return the optimal interval in ms for running do_net_crypto. */ -non_null() -uint32_t crypto_run_interval(const Net_Crypto *c); +uint32_t crypto_run_interval(const Net_Crypto *_Nonnull c); /** Main loop. */ -non_null(1) nullable(2) -void do_net_crypto(Net_Crypto *c, void *userdata); - -nullable(1) -void kill_net_crypto(Net_Crypto *c); - +void do_net_crypto(Net_Crypto *_Nonnull c, void *_Nullable userdata); +void kill_net_crypto(Net_Crypto *_Nullable c); #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/external/toxcore/c-toxcore/toxcore/net_profile.c b/external/toxcore/c-toxcore/toxcore/net_profile.c index 1d700bd..c195a2e 100644 --- a/external/toxcore/c-toxcore/toxcore/net_profile.c +++ b/external/toxcore/c-toxcore/toxcore/net_profile.c @@ -33,8 +33,7 @@ typedef struct Net_Profile { } Net_Profile; /** Returns the number of sent or received packets for all ID's between `start_id` and `end_id`. */ -nullable(1) -static uint64_t netprof_get_packet_count_id_range(const Net_Profile *profile, uint8_t start_id, uint8_t end_id, +static uint64_t netprof_get_packet_count_id_range(const Net_Profile *_Nullable profile, uint8_t start_id, uint8_t end_id, Packet_Direction dir) { if (profile == nullptr) { @@ -52,8 +51,7 @@ static uint64_t netprof_get_packet_count_id_range(const Net_Profile *profile, ui } /** Returns the number of sent or received bytes for all ID's between `start_id` and `end_id`. */ -nullable(1) -static uint64_t netprof_get_bytes_id_range(const Net_Profile *profile, uint8_t start_id, uint8_t end_id, +static uint64_t netprof_get_bytes_id_range(const Net_Profile *_Nullable profile, uint8_t start_id, uint8_t end_id, Packet_Direction dir) { if (profile == nullptr) { diff --git a/external/toxcore/c-toxcore/toxcore/net_profile.h b/external/toxcore/c-toxcore/toxcore/net_profile.h index be16f67..b797ad8 100644 --- a/external/toxcore/c-toxcore/toxcore/net_profile.h +++ b/external/toxcore/c-toxcore/toxcore/net_profile.h @@ -34,46 +34,33 @@ typedef enum Packet_Direction { /** * Records a sent or received packet of type `id` and size `length` to the given profile. */ -nullable(1) -void netprof_record_packet(Net_Profile *profile, uint8_t id, size_t length, Packet_Direction dir); - +void netprof_record_packet(Net_Profile *_Nullable profile, uint8_t id, size_t length, Packet_Direction dir); /** * Returns the number of sent or received packets of type `id` for the given profile. */ -nullable(1) -uint64_t netprof_get_packet_count_id(const Net_Profile *profile, uint8_t id, Packet_Direction dir); - +uint64_t netprof_get_packet_count_id(const Net_Profile *_Nullable profile, uint8_t id, Packet_Direction dir); /** * Returns the total number of sent or received packets for the given profile. */ -nullable(1) -uint64_t netprof_get_packet_count_total(const Net_Profile *profile, Packet_Direction dir); - +uint64_t netprof_get_packet_count_total(const Net_Profile *_Nullable profile, Packet_Direction dir); /** * Returns the number of bytes sent or received of packet type `id` for the given profile. */ -nullable(1) -uint64_t netprof_get_bytes_id(const Net_Profile *profile, uint8_t id, Packet_Direction dir); - +uint64_t netprof_get_bytes_id(const Net_Profile *_Nullable profile, uint8_t id, Packet_Direction dir); /** * Returns the total number of bytes sent or received for the given profile. */ -nullable(1) -uint64_t netprof_get_bytes_total(const Net_Profile *profile, Packet_Direction dir); - +uint64_t netprof_get_bytes_total(const Net_Profile *_Nullable profile, Packet_Direction dir); /** * Returns a new net_profile object. The caller is responsible for freeing the * returned memory via `netprof_kill`. */ -non_null() -Net_Profile *netprof_new(const Logger *log, const Memory *mem); +Net_Profile *_Nullable netprof_new(const Logger *_Nonnull log, const Memory *_Nonnull mem); /** * Kills a net_profile object and frees all associated memory. */ -non_null(1) nullable(2) -void netprof_kill(const Memory *mem, Net_Profile *net_profile); - +void netprof_kill(const Memory *_Nonnull mem, Net_Profile *_Nullable net_profile); #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/external/toxcore/c-toxcore/toxcore/network.c b/external/toxcore/c-toxcore/toxcore/network.c index bd6babf..00e8c87 100644 --- a/external/toxcore/c-toxcore/toxcore/network.c +++ b/external/toxcore/c-toxcore/toxcore/network.c @@ -118,26 +118,22 @@ static bool should_ignore_connect_error(int err) return err == EWOULDBLOCK || err == EINPROGRESS; } -non_null() -static const char *inet_ntop4(const struct in_addr *addr, char *buf, size_t bufsize) +static const char *inet_ntop4(const struct in_addr *_Nonnull addr, char *_Nonnull buf, size_t bufsize) { return inet_ntop(AF_INET, addr, buf, bufsize); } -non_null() -static const char *inet_ntop6(const struct in6_addr *addr, char *buf, size_t bufsize) +static const char *inet_ntop6(const struct in6_addr *_Nonnull addr, char *_Nonnull buf, size_t bufsize) { return inet_ntop(AF_INET6, addr, buf, bufsize); } -non_null() -static int inet_pton4(const char *addr_string, struct in_addr *addrbuf) +static int inet_pton4(const char *_Nonnull addr_string, struct in_addr *_Nonnull addrbuf) { return inet_pton(AF_INET, addr_string, addrbuf); } -non_null() -static int inet_pton6(const char *addr_string, struct in6_addr *addrbuf) +static int inet_pton6(const char *_Nonnull addr_string, struct in6_addr *_Nonnull addrbuf) { return inet_pton(AF_INET6, addr_string, addrbuf); } @@ -159,8 +155,7 @@ static bool should_ignore_connect_error(int err) return err == WSAEWOULDBLOCK || err == WSAEINPROGRESS; } -non_null() -static const char *inet_ntop4(const struct in_addr *addr, char *buf, size_t bufsize) +static const char *inet_ntop4(const struct in_addr *_Nonnull addr, char *_Nonnull buf, size_t bufsize) { struct sockaddr_in saddr = {0}; @@ -176,8 +171,7 @@ static const char *inet_ntop4(const struct in_addr *addr, char *buf, size_t bufs return buf; } -non_null() -static const char *inet_ntop6(const struct in6_addr *addr, char *buf, size_t bufsize) +static const char *inet_ntop6(const struct in6_addr *_Nonnull addr, char *_Nonnull buf, size_t bufsize) { struct sockaddr_in6 saddr = {0}; @@ -193,8 +187,7 @@ static const char *inet_ntop6(const struct in6_addr *addr, char *buf, size_t buf return buf; } -non_null() -static int inet_pton4(const char *addrString, struct in_addr *addrbuf) +static int inet_pton4(const char *_Nonnull addrString, struct in_addr *_Nonnull addrbuf) { struct sockaddr_in saddr = {0}; @@ -209,8 +202,7 @@ static int inet_pton4(const char *addrString, struct in_addr *addrbuf) return 1; } -non_null() -static int inet_pton6(const char *addrString, struct in6_addr *addrbuf) +static int inet_pton6(const char *_Nonnull addrString, struct in6_addr *_Nonnull addrbuf) { struct sockaddr_in6 saddr = {0}; @@ -306,30 +298,26 @@ static const Family *make_tox_family(int family) } } -non_null() -static void get_ip4(IP4 *result, const struct in_addr *addr) +static void get_ip4(IP4 *_Nonnull result, const struct in_addr *_Nonnull addr) { static_assert(sizeof(result->uint32) == sizeof(addr->s_addr), "Tox and operating system don't agree on size of IPv4 addresses"); result->uint32 = addr->s_addr; } -non_null() -static void get_ip6(IP6 *result, const struct in6_addr *addr) +static void get_ip6(IP6 *_Nonnull result, const struct in6_addr *_Nonnull addr) { static_assert(sizeof(result->uint8) == sizeof(addr->s6_addr), "Tox and operating system don't agree on size of IPv6 addresses"); memcpy(result->uint8, addr->s6_addr, sizeof(result->uint8)); } -non_null() -static void fill_addr4(const IP4 *ip, struct in_addr *addr) +static void fill_addr4(const IP4 *_Nonnull ip, struct in_addr *_Nonnull addr) { addr->s_addr = ip->uint32; } -non_null() -static void fill_addr6(const IP6 *ip, struct in6_addr *addr) +static void fill_addr6(const IP6 *_Nonnull ip, struct in6_addr *_Nonnull addr) { memcpy(addr->s6_addr, ip->uint8, sizeof(ip->uint8)); } @@ -488,8 +476,7 @@ struct Network_Addr { size_t size; }; -non_null() -static int sys_close(void *obj, Socket sock) +static int sys_close(void *_Nonnull obj, Socket sock) { #if defined(OS_WIN32) return closesocket(net_socket_to_native(sock)); @@ -498,32 +485,27 @@ static int sys_close(void *obj, Socket sock) #endif /* OS_WIN32 */ } -non_null() -static Socket sys_accept(void *obj, Socket sock) +static Socket sys_accept(void *_Nonnull obj, Socket sock) { return net_socket_from_native(accept(net_socket_to_native(sock), nullptr, nullptr)); } -non_null() -static int sys_bind(void *obj, Socket sock, const Network_Addr *addr) +static int sys_bind(void *_Nonnull obj, Socket sock, const Network_Addr *_Nonnull addr) { return bind(net_socket_to_native(sock), (const struct sockaddr *)&addr->addr, addr->size); } -non_null() -static int sys_listen(void *obj, Socket sock, int backlog) +static int sys_listen(void *_Nonnull obj, Socket sock, int backlog) { return listen(net_socket_to_native(sock), backlog); } -non_null() -static int sys_connect(void *obj, Socket sock, const Network_Addr *addr) +static int sys_connect(void *_Nonnull obj, Socket sock, const Network_Addr *_Nonnull addr) { return connect(net_socket_to_native(sock), (const struct sockaddr *)&addr->addr, addr->size); } -non_null() -static int sys_recvbuf(void *obj, Socket sock) +static int sys_recvbuf(void *_Nonnull obj, Socket sock) { #ifdef OS_WIN32 u_long count = 0; @@ -536,26 +518,22 @@ static int sys_recvbuf(void *obj, Socket sock) return count; } -non_null() -static int sys_recv(void *obj, Socket sock, uint8_t *buf, size_t len) +static int sys_recv(void *_Nonnull obj, Socket sock, uint8_t *_Nonnull buf, size_t len) { return recv(net_socket_to_native(sock), (char *)buf, len, MSG_NOSIGNAL); } -non_null() -static int sys_send(void *obj, Socket sock, const uint8_t *buf, size_t len) +static int sys_send(void *_Nonnull obj, Socket sock, const uint8_t *_Nonnull buf, size_t len) { return send(net_socket_to_native(sock), (const char *)buf, len, MSG_NOSIGNAL); } -non_null() -static int sys_sendto(void *obj, Socket sock, const uint8_t *buf, size_t len, const Network_Addr *addr) +static int sys_sendto(void *_Nonnull obj, Socket sock, const uint8_t *_Nonnull buf, size_t len, const Network_Addr *_Nonnull addr) { return sendto(net_socket_to_native(sock), (const char *)buf, len, 0, (const struct sockaddr *)&addr->addr, addr->size); } -non_null() -static int sys_recvfrom(void *obj, Socket sock, uint8_t *buf, size_t len, Network_Addr *addr) +static int sys_recvfrom(void *_Nonnull obj, Socket sock, uint8_t *_Nonnull buf, size_t len, Network_Addr *_Nonnull addr) { socklen_t size = addr->size; const int ret = recvfrom(net_socket_to_native(sock), (char *)buf, len, 0, (struct sockaddr *)&addr->addr, &size); @@ -563,14 +541,12 @@ static int sys_recvfrom(void *obj, Socket sock, uint8_t *buf, size_t len, Networ return ret; } -non_null() -static Socket sys_socket(void *obj, int domain, int type, int proto) +static Socket sys_socket(void *_Nonnull obj, int domain, int type, int proto) { return net_socket_from_native(socket(domain, type, proto)); } -non_null() -static int sys_socket_nonblock(void *obj, Socket sock, bool nonblock) +static int sys_socket_nonblock(void *_Nonnull obj, Socket sock, bool nonblock) { #ifdef OS_WIN32 u_long mode = nonblock ? 1 : 0; @@ -580,8 +556,7 @@ static int sys_socket_nonblock(void *obj, Socket sock, bool nonblock) #endif /* OS_WIN32 */ } -non_null() -static int sys_getsockopt(void *obj, Socket sock, int level, int optname, void *optval, size_t *optlen) +static int sys_getsockopt(void *_Nonnull obj, Socket sock, int level, int optname, void *_Nonnull optval, size_t *_Nonnull optlen) { socklen_t len = *optlen; const int ret = getsockopt(net_socket_to_native(sock), level, optname, (char *)optval, &len); @@ -589,8 +564,7 @@ static int sys_getsockopt(void *obj, Socket sock, int level, int optname, void * return ret; } -non_null() -static int sys_setsockopt(void *obj, Socket sock, int level, int optname, const void *optval, size_t optlen) +static int sys_setsockopt(void *_Nonnull obj, Socket sock, int level, int optname, const void *_Nonnull optval, size_t optlen) { #ifdef EMSCRIPTEN return 0; @@ -601,8 +575,7 @@ static int sys_setsockopt(void *obj, Socket sock, int level, int optname, const // sets and fills an array of addrs for address // returns the number of entries in addrs -non_null() -static int sys_getaddrinfo(void *obj, const Memory *mem, const char *address, int family, int sock_type, Network_Addr **addrs) +static int sys_getaddrinfo(void *_Nonnull obj, const Memory *_Nonnull mem, const char *_Nonnull address, int family, int sock_type, Network_Addr **_Nonnull addrs) { assert(addrs != nullptr); @@ -673,8 +646,7 @@ static int sys_getaddrinfo(void *obj, const Memory *mem, const char *address, in return result; } -non_null() -static int sys_freeaddrinfo(void *obj, const Memory *mem, Network_Addr *addrs) +static int sys_freeaddrinfo(void *_Nonnull obj, const Memory *_Nonnull mem, Network_Addr *_Nonnull addrs) { if (addrs == nullptr) { return 0; @@ -732,20 +704,17 @@ void os_network_deinit(const Network *ns) } #endif /* 0 */ -non_null() -static int net_setsockopt(const Network *ns, Socket sock, int level, int optname, const void *optval, size_t optlen) +static int net_setsockopt(const Network *_Nonnull ns, Socket sock, int level, int optname, const void *_Nonnull optval, size_t optlen) { return ns->funcs->setsockopt(ns->obj, sock, level, optname, optval, optlen); } -non_null() -static int net_getsockopt(const Network *ns, Socket sock, int level, int optname, void *optval, size_t *optlen) +static int net_getsockopt(const Network *_Nonnull ns, Socket sock, int level, int optname, void *_Nonnull optval, size_t *_Nonnull optlen) { return ns->funcs->getsockopt(ns->obj, sock, level, optname, optval, optlen); } -non_null() -static uint32_t data_0(uint16_t buflen, const uint8_t *buffer) +static uint32_t data_0(uint16_t buflen, const uint8_t *_Nonnull buffer) { uint32_t data = 0; @@ -755,8 +724,7 @@ static uint32_t data_0(uint16_t buflen, const uint8_t *buffer) return data; } -non_null() -static uint32_t data_1(uint16_t buflen, const uint8_t *buffer) +static uint32_t data_1(uint16_t buflen, const uint8_t *_Nonnull buffer) { uint32_t data = 0; @@ -882,9 +850,7 @@ static const char *net_packet_type_name(Net_Packet_Type type) return ""; } -non_null() -static void loglogdata(const Logger *log, const char *message, const uint8_t *buffer, - uint16_t buflen, const IP_Port *ip_port, long res) +static void loglogdata(const Logger *_Nonnull log, const char *_Nonnull message, const uint8_t *_Nonnull buffer, uint16_t buflen, const IP_Port *_Nonnull ip_port, long res) { if (res < 0) { /* Windows doesn't necessarily know `%zu` */ Ip_Ntoa ip_str; @@ -893,21 +859,21 @@ static void loglogdata(const Logger *log, const char *message, const uint8_t *bu LOGGER_TRACE(log, "[%02x = %-21s] %s %3u%c %s:%u (%u: %s) | %08x%08x...%02x", buffer[0], net_packet_type_name((Net_Packet_Type)buffer[0]), message, min_u16(buflen, 999), 'E', - net_ip_ntoa(&ip_port->ip, &ip_str), net_ntohs(ip_port->port), error, + net_ip_ntoa(&ip_port->ip, &ip_str), net_ntohs(ip_port->port), (unsigned int)error, net_strerror(error, &error_str), data_0(buflen, buffer), data_1(buflen, buffer), buffer[buflen - 1]); } else if ((res > 0) && ((size_t)res <= buflen)) { Ip_Ntoa ip_str; LOGGER_TRACE(log, "[%02x = %-21s] %s %3u%c %s:%u (%u: %s) | %08x%08x...%02x", buffer[0], net_packet_type_name((Net_Packet_Type)buffer[0]), message, min_u16(res, 999), (size_t)res < buflen ? '<' : '=', - net_ip_ntoa(&ip_port->ip, &ip_str), net_ntohs(ip_port->port), 0, "OK", + net_ip_ntoa(&ip_port->ip, &ip_str), net_ntohs(ip_port->port), (unsigned int)0, "OK", data_0(buflen, buffer), data_1(buflen, buffer), buffer[buflen - 1]); } else { /* empty or overwrite */ Ip_Ntoa ip_str; LOGGER_TRACE(log, "[%02x = %-21s] %s %lu%c%u %s:%u (%u: %s) | %08x%08x...%02x", buffer[0], net_packet_type_name((Net_Packet_Type)buffer[0]), message, - res, res == 0 ? '!' : '>', buflen, - net_ip_ntoa(&ip_port->ip, &ip_str), net_ntohs(ip_port->port), 0, "OK", + (unsigned long)res, res == 0 ? '!' : '>', buflen, + net_ip_ntoa(&ip_port->ip, &ip_str), net_ntohs(ip_port->port), (unsigned int)0, "OK", data_0(buflen, buffer), data_1(buflen, buffer), buffer[buflen - 1]); } } @@ -925,10 +891,7 @@ int net_send(const Network *ns, const Logger *log, return res; } -non_null() -static int net_sendto( - const Network *ns, - Socket sock, const uint8_t *buf, size_t len, const Network_Addr *addr, const IP_Port *ip_port) +static int net_sendto(const Network *_Nonnull ns, Socket sock, const uint8_t *_Nonnull buf, size_t len, const Network_Addr *_Nonnull addr, const IP_Port *_Nonnull ip_port) { return ns->funcs->sendto(ns->obj, sock, buf, len, addr); } @@ -941,9 +904,7 @@ int net_recv(const Network *ns, const Logger *log, return res; } -non_null() -static int net_recvfrom(const Network *ns, - Socket sock, uint8_t *buf, size_t len, Network_Addr *addr) +static int net_recvfrom(const Network *_Nonnull ns, Socket sock, uint8_t *_Nonnull buf, size_t len, Network_Addr *_Nonnull addr) { return ns->funcs->recvfrom(ns->obj, sock, buf, len, addr); } @@ -953,8 +914,7 @@ int net_listen(const Network *ns, Socket sock, int backlog) return ns->funcs->listen(ns->obj, sock, backlog); } -non_null() -static int net_bind(const Network *ns, Socket sock, const Network_Addr *addr) +static int net_bind(const Network *_Nonnull ns, Socket sock, const Network_Addr *_Nonnull addr) { return ns->funcs->bind(ns->obj, sock, addr); } @@ -1135,8 +1095,7 @@ int sendpacket(const Networking_Core *net, const IP_Port *ip_port, const uint8_t * Packet data is put into data. * Packet length is put into length. */ -non_null() -static int receivepacket(const Network *ns, const Logger *log, Socket sock, IP_Port *ip_port, uint8_t *data, uint32_t *length) +static int receivepacket(const Network *_Nonnull ns, const Logger *_Nonnull log, Socket sock, IP_Port *_Nonnull ip_port, uint8_t *_Nonnull data, uint32_t *_Nonnull length) { memset(ip_port, 0, sizeof(IP_Port)); Network_Addr addr = {{0}}; @@ -1150,7 +1109,7 @@ static int receivepacket(const Network *ns, const Logger *log, Socket sock, IP_P if (!should_ignore_recv_error(error)) { Net_Strerror error_str; - LOGGER_ERROR(log, "unexpected error reading from socket: %u, %s", error, net_strerror(error, &error_str)); + LOGGER_ERROR(log, "unexpected error reading from socket: %u, %s", (unsigned int)error, net_strerror(error, &error_str)); } return -1; /* Nothing received. */ @@ -1568,14 +1527,12 @@ bool ipport_equal(const IP_Port *a, const IP_Port *b) return ip_equal(&a->ip, &b->ip); } -non_null() -static int ip4_cmp(const IP4 *a, const IP4 *b) +static int ip4_cmp(const IP4 *_Nonnull a, const IP4 *_Nonnull b) { return cmp_uint(a->uint32, b->uint32); } -non_null() -static int ip6_cmp(const IP6 *a, const IP6 *b) +static int ip6_cmp(const IP6 *_Nonnull a, const IP6 *_Nonnull b) { const int res = cmp_uint(a->uint64[0], b->uint64[0]); if (res != 0) { @@ -1584,8 +1541,7 @@ static int ip6_cmp(const IP6 *a, const IP6 *b) return cmp_uint(a->uint64[1], b->uint64[1]); } -non_null() -static int ip_cmp(const IP *a, const IP *b) +static int ip_cmp(const IP *_Nonnull a, const IP *_Nonnull b) { const int res = cmp_uint(a->family.value, b->family.value); if (res != 0) { @@ -1718,8 +1674,7 @@ void ipport_copy(IP_Port *target, const IP_Port *source) * * @retval true on success. */ -non_null() -static bool bin_pack_ip(Bin_Pack *bp, const IP *ip, bool is_ipv4) +static bool bin_pack_ip(Bin_Pack *_Nonnull bp, const IP *_Nonnull ip, bool is_ipv4) { if (is_ipv4) { return bin_pack_bin_b(bp, ip->ip.v4.uint8, SIZE_IP4); @@ -1763,8 +1718,7 @@ bool bin_pack_ip_port(Bin_Pack *bp, const Logger *logger, const IP_Port *ip_port && bin_pack_u16_b(bp, net_ntohs(ip_port->port)); } -non_null() -static bool bin_pack_ip_port_handler(const void *obj, const Logger *logger, Bin_Pack *bp) +static bool bin_pack_ip_port_handler(const void *_Nonnull obj, const Logger *_Nonnull logger, Bin_Pack *_Nonnull bp) { const IP_Port *ip_port = (const IP_Port *)obj; return bin_pack_ip_port(bp, logger, ip_port); @@ -1941,8 +1895,7 @@ bool addr_parse_ip(const char *address, IP *to) * * @return false on failure, true on success. */ -non_null(1, 2, 3, 4) nullable(5) -static bool addr_resolve(const Network *ns, const Memory *mem, const char *address, IP *to, IP *extra) +static bool addr_resolve(const Network *_Nonnull ns, const Memory *_Nonnull mem, const char *_Nonnull address, IP *_Nonnull to, IP *_Nullable extra) { #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION if ((true)) { @@ -2374,8 +2327,7 @@ char *net_strerror(int error, Net_Strerror *buf) } #else #if defined(_GNU_SOURCE) && defined(__GLIBC__) -non_null() -static const char *net_strerror_r(int error, char *tmp, size_t tmp_size) +static const char *net_strerror_r(int error, char *_Nonnull tmp, size_t tmp_size) { const char *retstr = strerror_r(error, tmp, tmp_size); @@ -2386,8 +2338,7 @@ static const char *net_strerror_r(int error, char *tmp, size_t tmp_size) return retstr; } #else -non_null() -static const char *net_strerror_r(int error, char *tmp, size_t tmp_size) +static const char *net_strerror_r(int error, char *_Nonnull tmp, size_t tmp_size) { const int fmt_error = strerror_r(error, tmp, tmp_size); diff --git a/external/toxcore/c-toxcore/toxcore/network.h b/external/toxcore/c-toxcore/toxcore/network.h index a13c98b..35917fb 100644 --- a/external/toxcore/c-toxcore/toxcore/network.h +++ b/external/toxcore/c-toxcore/toxcore/network.h @@ -36,22 +36,22 @@ typedef struct Socket { int net_socket_to_native(Socket sock); Socket net_socket_from_native(int sock); -typedef int net_close_cb(void *obj, Socket sock); -typedef Socket net_accept_cb(void *obj, Socket sock); -typedef int net_bind_cb(void *obj, Socket sock, const Network_Addr *addr); -typedef int net_listen_cb(void *obj, Socket sock, int backlog); -typedef int net_connect_cb(void *obj, Socket sock, const Network_Addr *addr); -typedef int net_recvbuf_cb(void *obj, Socket sock); -typedef int net_recv_cb(void *obj, Socket sock, uint8_t *buf, size_t len); -typedef int net_recvfrom_cb(void *obj, Socket sock, uint8_t *buf, size_t len, Network_Addr *addr); -typedef int net_send_cb(void *obj, Socket sock, const uint8_t *buf, size_t len); -typedef int net_sendto_cb(void *obj, Socket sock, const uint8_t *buf, size_t len, const Network_Addr *addr); -typedef Socket net_socket_cb(void *obj, int domain, int type, int proto); -typedef int net_socket_nonblock_cb(void *obj, Socket sock, bool nonblock); -typedef int net_getsockopt_cb(void *obj, Socket sock, int level, int optname, void *optval, size_t *optlen); -typedef int net_setsockopt_cb(void *obj, Socket sock, int level, int optname, const void *optval, size_t optlen); -typedef int net_getaddrinfo_cb(void *obj, const Memory *mem, const char *address, int family, int protocol, Network_Addr **addrs); -typedef int net_freeaddrinfo_cb(void *obj, const Memory *mem, Network_Addr *addrs); +typedef int net_close_cb(void *_Nullable obj, Socket sock); +typedef Socket net_accept_cb(void *_Nullable obj, Socket sock); +typedef int net_bind_cb(void *_Nullable obj, Socket sock, const Network_Addr *_Nonnull addr); +typedef int net_listen_cb(void *_Nullable obj, Socket sock, int backlog); +typedef int net_connect_cb(void *_Nullable obj, Socket sock, const Network_Addr *_Nonnull addr); +typedef int net_recvbuf_cb(void *_Nullable obj, Socket sock); +typedef int net_recv_cb(void *_Nullable obj, Socket sock, uint8_t *_Nonnull buf, size_t len); +typedef int net_recvfrom_cb(void *_Nullable obj, Socket sock, uint8_t *_Nonnull buf, size_t len, Network_Addr *_Nonnull addr); +typedef int net_send_cb(void *_Nullable obj, Socket sock, const uint8_t *_Nonnull buf, size_t len); +typedef int net_sendto_cb(void *_Nullable obj, Socket sock, const uint8_t *_Nonnull buf, size_t len, const Network_Addr *_Nonnull addr); +typedef Socket net_socket_cb(void *_Nullable obj, int domain, int type, int proto); +typedef int net_socket_nonblock_cb(void *_Nullable obj, Socket sock, bool nonblock); +typedef int net_getsockopt_cb(void *_Nullable obj, Socket sock, int level, int optname, void *_Nonnull optval, size_t *_Nonnull optlen); +typedef int net_setsockopt_cb(void *_Nullable obj, Socket sock, int level, int optname, const void *_Nonnull optval, size_t optlen); +typedef int net_getaddrinfo_cb(void *_Nullable obj, const Memory *_Nonnull mem, const char *_Nonnull address, int family, int protocol, Network_Addr *_Nullable *_Nonnull addrs); +typedef int net_freeaddrinfo_cb(void *_Nullable obj, const Memory *_Nonnull mem, Network_Addr *_Nullable addrs); /** @brief Functions wrapping POSIX network functions. * @@ -59,30 +59,30 @@ typedef int net_freeaddrinfo_cb(void *obj, const Memory *mem, Network_Addr *addr * expected to do when providing alternative Network implementations. */ typedef struct Network_Funcs { - net_close_cb *close; - net_accept_cb *accept; - net_bind_cb *bind; - net_listen_cb *listen; - net_connect_cb *connect; - net_recvbuf_cb *recvbuf; - net_recv_cb *recv; - net_recvfrom_cb *recvfrom; - net_send_cb *send; - net_sendto_cb *sendto; - net_socket_cb *socket; - net_socket_nonblock_cb *socket_nonblock; - net_getsockopt_cb *getsockopt; - net_setsockopt_cb *setsockopt; - net_getaddrinfo_cb *getaddrinfo; - net_freeaddrinfo_cb *freeaddrinfo; + net_close_cb *_Nullable close; + net_accept_cb *_Nullable accept; + net_bind_cb *_Nullable bind; + net_listen_cb *_Nullable listen; + net_connect_cb *_Nullable connect; + net_recvbuf_cb *_Nullable recvbuf; + net_recv_cb *_Nullable recv; + net_recvfrom_cb *_Nullable recvfrom; + net_send_cb *_Nullable send; + net_sendto_cb *_Nullable sendto; + net_socket_cb *_Nullable socket; + net_socket_nonblock_cb *_Nullable socket_nonblock; + net_getsockopt_cb *_Nullable getsockopt; + net_setsockopt_cb *_Nullable setsockopt; + net_getaddrinfo_cb *_Nullable getaddrinfo; + net_freeaddrinfo_cb *_Nullable freeaddrinfo; } Network_Funcs; typedef struct Network { - const Network_Funcs *funcs; - void *obj; + const Network_Funcs *_Nullable funcs; + void *_Nullable obj; } Network; -const Network *os_network(void); +const Network *_Nullable os_network(void); typedef struct Family { uint8_t value; @@ -222,8 +222,7 @@ typedef struct IP_Port { uint16_t port; } IP_Port; -non_null() -Socket net_socket(const Network *ns, Family domain, int type, int protocol); +Socket net_socket(const Network *_Nonnull ns, Family domain, int type, int protocol); /** * Check if socket is valid. @@ -245,9 +244,8 @@ Socket net_invalid_socket(void); * @param ip_port IP and port to send data to. * @param net_profile Network profile to record the packet. */ -non_null(1, 2, 4, 6) nullable(7) -int net_send(const Network *ns, const Logger *log, Socket sock, const uint8_t *buf, size_t len, const IP_Port *ip_port, - Net_Profile *net_profile); +int net_send(const Network *_Nonnull ns, const Logger *_Nonnull log, Socket sock, const uint8_t *_Nonnull buf, size_t len, const IP_Port *_Nonnull ip_port, + Net_Profile *_Nullable net_profile); /** * Calls recv(sockfd, buf, len, MSG_NOSIGNAL). * @@ -258,25 +256,21 @@ int net_send(const Network *ns, const Logger *log, Socket sock, const uint8_t *b * @param len Length of buffer. * @param ip_port IP and port of the sender. */ -non_null() -int net_recv(const Network *ns, const Logger *log, Socket sock, uint8_t *buf, size_t len, const IP_Port *ip_port); +int net_recv(const Network *_Nonnull ns, const Logger *_Nonnull log, Socket sock, uint8_t *_Nonnull buf, size_t len, const IP_Port *_Nonnull ip_port); /** * Calls listen(sockfd, backlog). */ -non_null() -int net_listen(const Network *ns, Socket sock, int backlog); +int net_listen(const Network *_Nonnull ns, Socket sock, int backlog); /** * Calls accept(sockfd, nullptr, nullptr). */ -non_null() -Socket net_accept(const Network *ns, Socket sock); +Socket net_accept(const Network *_Nonnull ns, Socket sock); /** * return the size of data in the tcp recv buffer. * return 0 on failure. */ -non_null() -uint16_t net_socket_data_recv_buffer(const Network *ns, Socket sock); +uint16_t net_socket_data_recv_buffer(const Network *_Nonnull ns, Socket sock); /** Convert values between host and network byte order. */ uint32_t net_htonl(uint32_t hostlong); @@ -284,27 +278,18 @@ uint16_t net_htons(uint16_t hostshort); uint32_t net_ntohl(uint32_t hostlong); uint16_t net_ntohs(uint16_t hostshort); -non_null() -size_t net_pack_bool(uint8_t *bytes, bool v); -non_null() -size_t net_pack_u16(uint8_t *bytes, uint16_t v); -non_null() -size_t net_pack_u32(uint8_t *bytes, uint32_t v); -non_null() -size_t net_pack_u64(uint8_t *bytes, uint64_t v); +size_t net_pack_bool(uint8_t *_Nonnull bytes, bool v); +size_t net_pack_u16(uint8_t *_Nonnull bytes, uint16_t v); +size_t net_pack_u32(uint8_t *_Nonnull bytes, uint32_t v); +size_t net_pack_u64(uint8_t *_Nonnull bytes, uint64_t v); -non_null() -size_t net_unpack_bool(const uint8_t *bytes, bool *v); -non_null() -size_t net_unpack_u16(const uint8_t *bytes, uint16_t *v); -non_null() -size_t net_unpack_u32(const uint8_t *bytes, uint32_t *v); -non_null() -size_t net_unpack_u64(const uint8_t *bytes, uint64_t *v); +size_t net_unpack_bool(const uint8_t *_Nonnull bytes, bool *_Nonnull v); +size_t net_unpack_u16(const uint8_t *_Nonnull bytes, uint16_t *_Nonnull v); +size_t net_unpack_u32(const uint8_t *_Nonnull bytes, uint32_t *_Nonnull v); +size_t net_unpack_u64(const uint8_t *_Nonnull bytes, uint64_t *_Nonnull v); /** Does the IP6 struct a contain an IPv4 address in an IPv6 one? */ -non_null() -bool ipv6_ipv4_in_v6(const IP6 *a); +bool ipv6_ipv4_in_v6(const IP6 *_Nonnull a); #define TOX_ENABLE_IPV6_DEFAULT true @@ -329,8 +314,7 @@ typedef struct Ip_Ntoa { * * @return Pointer to the buffer inside `ip_str` containing the IP string. */ -non_null() -const char *net_ip_ntoa(const IP *ip, Ip_Ntoa *ip_str); +const char *_Nonnull net_ip_ntoa(const IP *_Nonnull ip, Ip_Ntoa *_Nonnull ip_str); /** * Parses IP structure into an address string. @@ -344,8 +328,7 @@ const char *net_ip_ntoa(const IP *ip, Ip_Ntoa *ip_str); * * @return true on success, false on failure. */ -non_null() -bool ip_parse_addr(const IP *ip, char *address, size_t length); +bool ip_parse_addr(const IP *_Nonnull ip, char *_Nonnull address, size_t length); /** * Directly parses the input into an IP structure. @@ -357,8 +340,7 @@ bool ip_parse_addr(const IP *ip, char *address, size_t length); * * @return true on success, false on failure. */ -non_null() -bool addr_parse_ip(const char *address, IP *to); +bool addr_parse_ip(const char *_Nonnull address, IP *_Nonnull to); /** * Compares two IP structures. @@ -367,9 +349,7 @@ bool addr_parse_ip(const char *address, IP *to); * * @return false when not equal or when uninitialized. */ -nullable(1, 2) -bool ip_equal(const IP *a, const IP *b); - +bool ip_equal(const IP *_Nullable a, const IP *_Nullable b); /** * Compares two IP_Port structures. * @@ -377,9 +357,7 @@ bool ip_equal(const IP *a, const IP *b); * * @return false when not equal or when uninitialized. */ -nullable(1, 2) -bool ipport_equal(const IP_Port *a, const IP_Port *b); - +bool ipport_equal(const IP_Port *_Nullable a, const IP_Port *_Nullable b); /** * @brief IP_Port comparison function with `memcmp` signature. * @@ -389,30 +367,22 @@ bool ipport_equal(const IP_Port *a, const IP_Port *b); * @retval 0 if `a == b` * @retval 1 if `a > b` */ -non_null() -int ipport_cmp_handler(const void *a, const void *b, size_t size); +int ipport_cmp_handler(const void *_Nonnull a, const void *_Nonnull b, size_t size); /** nulls out ip */ -non_null() -void ip_reset(IP *ip); +void ip_reset(IP *_Nonnull ip); /** nulls out ip_port */ -non_null() -void ipport_reset(IP_Port *ipport); +void ipport_reset(IP_Port *_Nonnull ipport); /** nulls out ip, sets family according to flag */ -non_null() -void ip_init(IP *ip, bool ipv6enabled); +void ip_init(IP *_Nonnull ip, bool ipv6enabled); /** checks if ip is valid */ -non_null() -bool ip_isset(const IP *ip); +bool ip_isset(const IP *_Nonnull ip); /** checks if ip is valid */ -non_null() -bool ipport_isset(const IP_Port *ipport); +bool ipport_isset(const IP_Port *_Nonnull ipport); /** copies an ip structure (careful about direction) */ -non_null() -void ip_copy(IP *target, const IP *source); +void ip_copy(IP *_Nonnull target, const IP *_Nonnull source); /** copies an ip_port structure (careful about direction) */ -non_null() -void ipport_copy(IP_Port *target, const IP_Port *source); +void ipport_copy(IP_Port *_Nonnull target, const IP_Port *_Nonnull source); /** * @brief Resolves string into an IP address. @@ -430,57 +400,48 @@ void ipport_copy(IP_Port *target, const IP_Port *source); * * @return true on success, false on failure */ -non_null(1, 2, 3, 4) nullable(5) -bool addr_resolve_or_parse_ip(const Network *ns, const Memory *mem, const char *address, IP *to, IP *extra, bool dns_enabled); - +bool addr_resolve_or_parse_ip(const Network *_Nonnull ns, const Memory *_Nonnull mem, const char *_Nonnull address, IP *_Nonnull to, IP *_Nullable extra, bool dns_enabled); /** @brief Function to receive data, ip and port of sender is put into ip_port. * Packet data is put into data. * Packet length is put into length. */ -typedef int packet_handler_cb(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, void *userdata); +typedef int packet_handler_cb(void *_Nullable object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, void *_Nullable userdata); typedef struct Networking_Core Networking_Core; -non_null() -Family net_family(const Networking_Core *net); -non_null() -uint16_t net_port(const Networking_Core *net); +Family net_family(const Networking_Core *_Nonnull net); +uint16_t net_port(const Networking_Core *_Nonnull net); /** Close the socket. */ -non_null() -void kill_sock(const Network *ns, Socket sock); +void kill_sock(const Network *_Nonnull ns, Socket sock); /** * Set socket as nonblocking * * @return true on success, false on failure. */ -non_null() -bool set_socket_nonblock(const Network *ns, Socket sock); +bool set_socket_nonblock(const Network *_Nonnull ns, Socket sock); /** * Set socket to not emit SIGPIPE * * @return true on success, false on failure. */ -non_null() -bool set_socket_nosigpipe(const Network *ns, Socket sock); +bool set_socket_nosigpipe(const Network *_Nonnull ns, Socket sock); /** * Enable SO_REUSEADDR on socket. * * @return true on success, false on failure. */ -non_null() -bool set_socket_reuseaddr(const Network *ns, Socket sock); +bool set_socket_reuseaddr(const Network *_Nonnull ns, Socket sock); /** * Set socket to dual (IPv4 + IPv6 socket) * * @return true on success, false on failure. */ -non_null() -bool set_socket_dualstack(const Network *ns, Socket sock); +bool set_socket_dualstack(const Network *_Nonnull ns, Socket sock); /* Basic network functions: */ @@ -490,39 +451,33 @@ bool set_socket_dualstack(const Network *ns, Socket sock); * Use `send_packet` to send it to an IP/port endpoint. */ typedef struct Packet { - const uint8_t *data; + const uint8_t *_Nonnull data; uint16_t length; } Packet; /** * Function to send a network packet to a given IP/port. */ -non_null() -int send_packet(const Networking_Core *net, const IP_Port *ip_port, Packet packet); +int send_packet(const Networking_Core *_Nonnull net, const IP_Port *_Nonnull ip_port, Packet packet); /** * Function to send packet(data) of length length to ip_port. * * @deprecated Use send_packet instead. */ -non_null() -int sendpacket(const Networking_Core *net, const IP_Port *ip_port, const uint8_t *data, uint16_t length); +int sendpacket(const Networking_Core *_Nonnull net, const IP_Port *_Nonnull ip_port, const uint8_t *_Nonnull data, uint16_t length); /** Function to call when packet beginning with byte is received. */ -non_null(1) nullable(3, 4) -void networking_registerhandler(Networking_Core *net, uint8_t byte, packet_handler_cb *cb, void *object); - +void networking_registerhandler(Networking_Core *_Nonnull net, uint8_t byte, packet_handler_cb *_Nullable cb, void *_Nullable object); /** Call this several times a second. */ -non_null(1) nullable(2) -void networking_poll(const Networking_Core *net, void *userdata); - +void networking_poll(const Networking_Core *_Nonnull net, void *_Nullable userdata); typedef enum Net_Err_Connect { NET_ERR_CONNECT_OK, NET_ERR_CONNECT_INVALID_FAMILY, NET_ERR_CONNECT_FAILED, } Net_Err_Connect; -const char *net_err_connect_to_string(Net_Err_Connect err); +const char *_Nonnull net_err_connect_to_string(Net_Err_Connect err); /** @brief Connect a socket to the address specified by the ip_port. * @@ -530,8 +485,7 @@ const char *net_err_connect_to_string(Net_Err_Connect err); * * @retval true on success, false on failure. */ -non_null() -bool net_connect(const Network *ns, const Memory *mem, const Logger *log, Socket sock, const IP_Port *ip_port, Net_Err_Connect *err); +bool net_connect(const Network *_Nonnull ns, const Memory *_Nonnull mem, const Logger *_Nonnull log, Socket sock, const IP_Port *_Nonnull ip_port, Net_Err_Connect *_Nonnull err); /** @brief High-level getaddrinfo implementation. * @@ -553,15 +507,11 @@ bool net_connect(const Network *ns, const Memory *mem, const Logger *log, Socket * @retval 0 if res array empty. * @retval -1 on error. */ -non_null() -int32_t net_getipport(const Network *ns, const Memory *mem, const char *node, IP_Port **res, int tox_type, bool dns_enabled); +int32_t net_getipport(const Network *_Nonnull ns, const Memory *_Nonnull mem, const char *_Nonnull node, IP_Port *_Nullable *_Nonnull res, int tox_type, bool dns_enabled); /** Deallocates memory allocated by net_getipport */ -non_null(1) nullable(2) -void net_freeipport(const Memory *mem, IP_Port *ip_ports); - -non_null() -bool bin_pack_ip_port(Bin_Pack *bp, const Logger *logger, const IP_Port *ip_port); +void net_freeipport(const Memory *_Nonnull mem, IP_Port *_Nullable ip_ports); +bool bin_pack_ip_port(Bin_Pack *_Nonnull bp, const Logger *_Nonnull logger, const IP_Port *_Nonnull ip_port); /** @brief Pack an IP_Port structure into data of max size length. * @@ -570,8 +520,7 @@ bool bin_pack_ip_port(Bin_Pack *bp, const Logger *logger, const IP_Port *ip_port * @return size of packed IP_Port data on success. * @retval -1 on failure. */ -non_null() -int pack_ip_port(const Logger *logger, uint8_t *data, uint16_t length, const IP_Port *ip_port); +int pack_ip_port(const Logger *_Nonnull logger, uint8_t *_Nonnull data, uint16_t length, const IP_Port *_Nonnull ip_port); /** @brief Unpack IP_Port structure from data of max size length into ip_port. * @@ -580,14 +529,12 @@ int pack_ip_port(const Logger *logger, uint8_t *data, uint16_t length, const IP_ * @return size of unpacked ip_port on success. * @retval -1 on failure. */ -non_null() -int unpack_ip_port(IP_Port *ip_port, const uint8_t *data, uint16_t length, bool tcp_enabled); +int unpack_ip_port(IP_Port *_Nonnull ip_port, const uint8_t *_Nonnull data, uint16_t length, bool tcp_enabled); /** * @return true on success, false on failure. */ -non_null() -bool bind_to_port(const Network *ns, Socket sock, Family family, uint16_t port); +bool bind_to_port(const Network *_Nonnull ns, Socket sock, Family family, uint16_t port); /** @brief Get the last networking error code. * @@ -621,8 +568,7 @@ typedef struct Net_Strerror { * * @return pointer to a NULL-terminated string describing the error code. */ -non_null() -char *net_strerror(int error, Net_Strerror *buf); +char *_Nonnull net_strerror(int error, Net_Strerror *_Nonnull buf); /** @brief Initialize networking. * Bind to ip and port. @@ -634,24 +580,18 @@ char *net_strerror(int error, Net_Strerror *buf); * * If error is non NULL it is set to 0 if no issues, 1 if socket related error, 2 if other. */ -non_null(1, 2, 3, 4) nullable(7) -Networking_Core *new_networking_ex( - const Logger *log, const Memory *mem, const Network *ns, const IP *ip, - uint16_t port_from, uint16_t port_to, unsigned int *error); - -non_null() -Networking_Core *new_networking_no_udp(const Logger *log, const Memory *mem, const Network *ns); +Networking_Core *_Nullable new_networking_ex( + const Logger *_Nonnull log, const Memory *_Nonnull mem, const Network *_Nonnull ns, const IP *_Nonnull ip, + uint16_t port_from, uint16_t port_to, unsigned int *_Nullable error); +Networking_Core *_Nullable new_networking_no_udp(const Logger *_Nonnull log, const Memory *_Nonnull mem, const Network *_Nonnull ns); /** Function to cleanup networking stuff (doesn't do much right now). */ -nullable(1) -void kill_networking(Networking_Core *net); - +void kill_networking(Networking_Core *_Nullable net); /** @brief Returns a pointer to the network net_profile object associated with `net`. * * Returns null if `net` is null. */ -non_null() -const Net_Profile *net_get_net_profile(const Networking_Core *net); +const Net_Profile *_Nullable net_get_net_profile(const Networking_Core *_Nonnull net); #ifdef __cplusplus } /* extern "C" */ diff --git a/external/toxcore/c-toxcore/toxcore/onion.c b/external/toxcore/c-toxcore/toxcore/onion.c index f948be5..f5738df 100644 --- a/external/toxcore/c-toxcore/toxcore/onion.c +++ b/external/toxcore/c-toxcore/toxcore/onion.c @@ -38,8 +38,7 @@ #define KEYS_TIMEOUT 600 /** Change symmetric keys every 2 hours to make paths expire eventually. */ -non_null() -static void change_symmetric_key(Onion *onion) +static void change_symmetric_key(Onion *_Nonnull onion) { if (mono_time_is_timeout(onion->mono_time, onion->timestamp, KEY_REFRESH_INTERVAL)) { new_symmetric_key(onion->rng, onion->secret_symmetric_key); @@ -48,8 +47,7 @@ static void change_symmetric_key(Onion *onion) } /** packing and unpacking functions */ -non_null() -static void ip_pack_to_bytes(uint8_t *data, const IP *source) +static void ip_pack_to_bytes(uint8_t *_Nonnull data, const IP *_Nonnull source) { data[0] = source->family.value; @@ -62,8 +60,7 @@ static void ip_pack_to_bytes(uint8_t *data, const IP *source) } /** return 0 on success, -1 on failure. */ -non_null() -static int ip_unpack_from_bytes(IP *target, const uint8_t *data, unsigned int data_size, bool disable_family_check) +static int ip_unpack_from_bytes(IP *_Nonnull target, const uint8_t *_Nonnull data, unsigned int data_size, bool disable_family_check) { if (data_size < (1 + SIZE_IP6)) { return -1; @@ -85,16 +82,14 @@ static int ip_unpack_from_bytes(IP *target, const uint8_t *data, unsigned int da return valid ? 0 : -1; } -non_null() -static void ipport_pack(uint8_t *data, const IP_Port *source) +static void ipport_pack(uint8_t *_Nonnull data, const IP_Port *_Nonnull source) { ip_pack_to_bytes(data, &source->ip); memcpy(data + SIZE_IP, &source->port, SIZE_PORT); } /** return 0 on success, -1 on failure. */ -non_null() -static int ipport_unpack(IP_Port *target, const uint8_t *data, unsigned int data_size, bool disable_family_check) +static int ipport_unpack(IP_Port *_Nonnull target, const uint8_t *_Nonnull data, unsigned int data_size, bool disable_family_check) { if (data_size < (SIZE_IP + SIZE_PORT)) { return -1; @@ -316,21 +311,19 @@ int send_onion_response(const Logger *log, const Networking_Core *net, return 0; } -non_null() -static int handle_send_initial(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, - void *userdata) +static int handle_send_initial(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, void *_Nonnull userdata) { Onion *onion = (Onion *)object; if (length > ONION_MAX_PACKET_SIZE) { LOGGER_TRACE(onion->log, "invalid initial onion packet length: %u (max: %u)", - length, ONION_MAX_PACKET_SIZE); + length, (unsigned int)ONION_MAX_PACKET_SIZE); return 1; } if (length <= 1 + SEND_1) { LOGGER_TRACE(onion->log, "initial onion packet cannot contain SEND_1 packet: %u <= %u", - length, 1 + SEND_1); + length, (unsigned int)(1 + SEND_1)); return 1; } @@ -412,8 +405,7 @@ int onion_send_1(const Onion *onion, const uint8_t *plain, uint16_t len, const I return 0; } -non_null() -static int handle_send_1(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, void *userdata) +static int handle_send_1(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, void *_Nonnull userdata) { Onion *onion = (Onion *)object; @@ -478,8 +470,7 @@ static int handle_send_1(void *object, const IP_Port *source, const uint8_t *pac return 0; } -non_null() -static int handle_send_2(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, void *userdata) +static int handle_send_2(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, void *_Nonnull userdata) { Onion *onion = (Onion *)object; @@ -551,8 +542,7 @@ static int handle_send_2(void *object, const IP_Port *source, const uint8_t *pac return 0; } -non_null() -static int handle_recv_3(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, void *userdata) +static int handle_recv_3(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, void *_Nonnull userdata) { Onion *onion = (Onion *)object; @@ -604,8 +594,7 @@ static int handle_recv_3(void *object, const IP_Port *source, const uint8_t *pac return 0; } -non_null() -static int handle_recv_2(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, void *userdata) +static int handle_recv_2(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, void *_Nonnull userdata) { Onion *onion = (Onion *)object; @@ -656,8 +645,7 @@ static int handle_recv_2(void *object, const IP_Port *source, const uint8_t *pac return 0; } -non_null() -static int handle_recv_1(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, void *userdata) +static int handle_recv_1(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, void *_Nonnull userdata) { Onion *onion = (Onion *)object; diff --git a/external/toxcore/c-toxcore/toxcore/onion.h b/external/toxcore/c-toxcore/toxcore/onion.h index bbc3f22..355a41f 100644 --- a/external/toxcore/c-toxcore/toxcore/onion.h +++ b/external/toxcore/c-toxcore/toxcore/onion.h @@ -18,24 +18,24 @@ #include "network.h" #include "shared_key_cache.h" -typedef int onion_recv_1_cb(void *object, const IP_Port *dest, const uint8_t *data, uint16_t length); +typedef int onion_recv_1_cb(void *_Nullable object, const IP_Port *_Nonnull dest, const uint8_t *_Nonnull data, uint16_t length); typedef struct Onion { - const Logger *log; - const Mono_Time *mono_time; - const Random *rng; - const Memory *mem; - DHT *dht; - Networking_Core *net; + const Logger *_Nonnull log; + const Mono_Time *_Nonnull mono_time; + const Random *_Nonnull rng; + const Memory *_Nonnull mem; + DHT *_Nonnull dht; + Networking_Core *_Nonnull net; uint8_t secret_symmetric_key[CRYPTO_SYMMETRIC_KEY_SIZE]; uint64_t timestamp; - Shared_Key_Cache *shared_keys_1; - Shared_Key_Cache *shared_keys_2; - Shared_Key_Cache *shared_keys_3; + Shared_Key_Cache *_Nonnull shared_keys_1; + Shared_Key_Cache *_Nonnull shared_keys_2; + Shared_Key_Cache *_Nonnull shared_keys_3; - onion_recv_1_cb *recv_1_function; - void *callback_object; + onion_recv_1_cb *_Nullable recv_1_function; + void *_Nullable callback_object; } Onion; #define ONION_MAX_PACKET_SIZE 1400 @@ -84,16 +84,14 @@ typedef struct Onion_Path { * return -1 on failure. * return 0 on success. */ -non_null() -int create_onion_path(const Random *rng, const DHT *dht, Onion_Path *new_path, const Node_format *nodes); +int create_onion_path(const Random *_Nonnull rng, const DHT *_Nonnull dht, Onion_Path *_Nonnull new_path, const Node_format *_Nonnull nodes); /** @brief Dump nodes in onion path to nodes of length num_nodes. * * return -1 on failure. * return 0 on success. */ -non_null() -int onion_path_to_nodes(Node_format *nodes, unsigned int num_nodes, const Onion_Path *path); +int onion_path_to_nodes(Node_format *_Nonnull nodes, unsigned int num_nodes, const Onion_Path *_Nonnull path); /** @brief Create a onion packet. * @@ -104,10 +102,8 @@ int onion_path_to_nodes(Node_format *nodes, unsigned int num_nodes, const Onion_ * return -1 on failure. * return length of created packet on success. */ -non_null() -int create_onion_packet(const Memory *mem, const Random *rng, uint8_t *packet, uint16_t max_packet_length, - const Onion_Path *path, const IP_Port *dest, - const uint8_t *data, uint16_t length); +int create_onion_packet(const Memory *_Nonnull mem, const Random *_Nonnull rng, uint8_t *_Nonnull packet, uint16_t max_packet_length, const Onion_Path *_Nonnull path, + const IP_Port *_Nonnull dest, const uint8_t *_Nonnull data, uint16_t length); /** @brief Create a onion packet to be sent over tcp. * @@ -118,10 +114,8 @@ int create_onion_packet(const Memory *mem, const Random *rng, uint8_t *packet, u * return -1 on failure. * return length of created packet on success. */ -non_null() -int create_onion_packet_tcp(const Memory *mem, const Random *rng, uint8_t *packet, uint16_t max_packet_length, - const Onion_Path *path, const IP_Port *dest, - const uint8_t *data, uint16_t length); +int create_onion_packet_tcp(const Memory *_Nonnull mem, const Random *_Nonnull rng, uint8_t *_Nonnull packet, uint16_t max_packet_length, const Onion_Path *_Nonnull path, + const IP_Port *_Nonnull dest, const uint8_t *_Nonnull data, uint16_t length); /** @brief Create and send a onion response sent initially to dest with. * Maximum length of data is ONION_RESPONSE_MAX_DATA_SIZE. @@ -129,10 +123,8 @@ int create_onion_packet_tcp(const Memory *mem, const Random *rng, uint8_t *packe * return -1 on failure. * return 0 on success. */ -non_null() -int send_onion_response(const Logger *log, const Networking_Core *net, - const IP_Port *dest, const uint8_t *data, uint16_t length, - const uint8_t *ret); +int send_onion_response(const Logger *_Nonnull log, const Networking_Core *_Nonnull net, const IP_Port *_Nonnull dest, const uint8_t *_Nonnull data, uint16_t length, + const uint8_t *_Nonnull ret); /** @brief Function to handle/send received decrypted versions of the packet created by create_onion_packet. * @@ -144,17 +136,11 @@ int send_onion_response(const Logger *log, const Networking_Core *net, * Source family must be set to something else than TOX_AF_INET6 or TOX_AF_INET so that the callback gets called * when the response is received. */ -non_null() -int onion_send_1(const Onion *onion, const uint8_t *plain, uint16_t len, const IP_Port *source, const uint8_t *nonce); +int onion_send_1(const Onion *_Nonnull onion, const uint8_t *_Nonnull plain, uint16_t len, const IP_Port *_Nonnull source, const uint8_t *_Nonnull nonce); /** Set the callback to be called when the dest ip_port doesn't have TOX_AF_INET6 or TOX_AF_INET as the family. */ -non_null(1) nullable(2, 3) -void set_callback_handle_recv_1(Onion *onion, onion_recv_1_cb *function, void *object); - -non_null() -Onion *new_onion(const Logger *log, const Memory *mem, const Mono_Time *mono_time, const Random *rng, DHT *dht); - -nullable(1) -void kill_onion(Onion *onion); +void set_callback_handle_recv_1(Onion *_Nonnull onion, onion_recv_1_cb *_Nullable function, void *_Nullable object); +Onion *_Nullable new_onion(const Logger *_Nonnull log, const Memory *_Nonnull mem, const Mono_Time *_Nonnull mono_time, const Random *_Nonnull rng, DHT *_Nonnull dht); +void kill_onion(Onion *_Nullable onion); #endif /* C_TOXCORE_TOXCORE_ONION_H */ diff --git a/external/toxcore/c-toxcore/toxcore/onion_announce.c b/external/toxcore/c-toxcore/toxcore/onion_announce.c index 50e2e00..6c80aa9 100644 --- a/external/toxcore/c-toxcore/toxcore/onion_announce.c +++ b/external/toxcore/c-toxcore/toxcore/onion_announce.c @@ -269,8 +269,7 @@ int send_data_request( * return -1 if no * return position in list if yes */ -non_null() -static int in_entries(const Onion_Announce *onion_a, const uint8_t *public_key) +static int in_entries(const Onion_Announce *_Nonnull onion_a, const uint8_t *_Nonnull public_key) { for (unsigned int i = 0; i < ONION_ANNOUNCE_MAX_ENTRIES; ++i) { if (!mono_time_is_timeout(onion_a->mono_time, onion_a->entries[i].announce_time, ONION_ANNOUNCE_TIMEOUT) @@ -288,8 +287,7 @@ typedef struct Onion_Announce_Entry_Cmp { const uint8_t *comp_public_key; } Onion_Announce_Entry_Cmp; -non_null() -static int onion_announce_entry_cmp(const Onion_Announce_Entry_Cmp *cmp, const Onion_Announce_Entry *entry1, const Onion_Announce_Entry *entry2) +static int onion_announce_entry_cmp(const Onion_Announce_Entry_Cmp *_Nonnull cmp, const Onion_Announce_Entry *_Nonnull entry1, const Onion_Announce_Entry *_Nonnull entry2) { const bool t1 = mono_time_is_timeout(cmp->mono_time, entry1->announce_time, ONION_ANNOUNCE_TIMEOUT); const bool t2 = mono_time_is_timeout(cmp->mono_time, entry2->announce_time, ONION_ANNOUNCE_TIMEOUT); @@ -319,8 +317,7 @@ static int onion_announce_entry_cmp(const Onion_Announce_Entry_Cmp *cmp, const O return 0; } -non_null() -static bool onion_announce_entry_less_handler(const void *object, const void *a, const void *b) +static bool onion_announce_entry_less_handler(const void *_Nonnull object, const void *_Nonnull a, const void *_Nonnull b) { const Onion_Announce_Entry_Cmp *cmp = (const Onion_Announce_Entry_Cmp *)object; const Onion_Announce_Entry *entry1 = (const Onion_Announce_Entry *)a; @@ -329,30 +326,26 @@ static bool onion_announce_entry_less_handler(const void *object, const void *a, return onion_announce_entry_cmp(cmp, entry1, entry2) < 0; } -non_null() -static const void *onion_announce_entry_get_handler(const void *arr, uint32_t index) +static const void *onion_announce_entry_get_handler(const void *_Nonnull arr, uint32_t index) { const Onion_Announce_Entry *entries = (const Onion_Announce_Entry *)arr; return &entries[index]; } -non_null() -static void onion_announce_entry_set_handler(void *arr, uint32_t index, const void *val) +static void onion_announce_entry_set_handler(void *_Nonnull arr, uint32_t index, const void *_Nonnull val) { Onion_Announce_Entry *entries = (Onion_Announce_Entry *)arr; const Onion_Announce_Entry *entry = (const Onion_Announce_Entry *)val; entries[index] = *entry; } -non_null() -static void *onion_announce_entry_subarr_handler(void *arr, uint32_t index, uint32_t size) +static void *onion_announce_entry_subarr_handler(void *_Nonnull arr, uint32_t index, uint32_t size) { Onion_Announce_Entry *entries = (Onion_Announce_Entry *)arr; return &entries[index]; } -non_null() -static void *onion_announce_entry_alloc_handler(const void *object, uint32_t size) +static void *onion_announce_entry_alloc_handler(const void *_Nonnull object, uint32_t size) { const Onion_Announce_Entry_Cmp *cmp = (const Onion_Announce_Entry_Cmp *)object; Onion_Announce_Entry *tmp = (Onion_Announce_Entry *)mem_valloc(cmp->mem, size, sizeof(Onion_Announce_Entry)); @@ -364,8 +357,7 @@ static void *onion_announce_entry_alloc_handler(const void *object, uint32_t siz return tmp; } -non_null() -static void onion_announce_entry_delete_handler(const void *object, void *arr, uint32_t size) +static void onion_announce_entry_delete_handler(const void *_Nonnull object, void *_Nonnull arr, uint32_t size) { const Onion_Announce_Entry_Cmp *cmp = (const Onion_Announce_Entry_Cmp *)object; mem_delete(cmp->mem, arr); @@ -380,10 +372,8 @@ static const Sort_Funcs onion_announce_entry_cmp_funcs = { onion_announce_entry_delete_handler, }; -non_null() -static void sort_onion_announce_list(const Memory *mem, const Mono_Time *mono_time, - Onion_Announce_Entry *list, unsigned int length, - const uint8_t *comp_public_key) +static void sort_onion_announce_list(const Memory *_Nonnull mem, const Mono_Time *_Nonnull mono_time, Onion_Announce_Entry *_Nonnull list, unsigned int length, + const uint8_t *_Nonnull comp_public_key) { // Pass comp_public_key to sort with each Onion_Announce_Entry entry, so the // comparison function can use it as the base of comparison. @@ -401,9 +391,8 @@ static void sort_onion_announce_list(const Memory *mem, const Mono_Time *mono_ti * return -1 if failure * return position if added */ -non_null() -static int add_to_entries(Onion_Announce *onion_a, const IP_Port *ret_ip_port, const uint8_t *public_key, - const uint8_t *data_public_key, const uint8_t *ret) +static int add_to_entries(Onion_Announce *_Nonnull onion_a, const IP_Port *_Nonnull ret_ip_port, const uint8_t *_Nonnull public_key, const uint8_t *_Nonnull data_public_key, + const uint8_t *_Nonnull ret) { int pos = in_entries(onion_a, public_key); @@ -437,9 +426,8 @@ static int add_to_entries(Onion_Announce *onion_a, const IP_Port *ret_ip_port, c return in_entries(onion_a, public_key); } -non_null() -static void make_announce_payload_helper(const Onion_Announce *onion_a, const uint8_t *ping_id, - uint8_t *response, int index, const uint8_t *packet_public_key, const uint8_t *data_public_key) +static void make_announce_payload_helper(const Onion_Announce *_Nonnull onion_a, const uint8_t *_Nonnull ping_id, uint8_t *_Nonnull response, int index, + const uint8_t *_Nonnull packet_public_key, const uint8_t *_Nonnull data_public_key) { if (index < 0) { response[0] = 0; @@ -479,11 +467,10 @@ static void make_announce_payload_helper(const Onion_Announce *onion_a, const ui * @retval 1 on failure. * @retval 0 on success. */ -non_null(1, 2, 3) nullable(9) static int handle_announce_request_common( - Onion_Announce *onion_a, const IP_Port *source, const uint8_t *packet, uint16_t length, + Onion_Announce *_Nonnull onion_a, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, uint8_t response_packet_id, uint16_t plain_size, bool want_node_count, uint16_t max_extra_size, - pack_extra_data_cb *pack_extra_data_callback) + pack_extra_data_cb *_Nullable pack_extra_data_callback) { const uint8_t *packet_public_key = packet + 1 + CRYPTO_NONCE_SIZE; const uint8_t *shared_key = shared_key_cache_lookup(onion_a->shared_keys_recv, packet_public_key); @@ -620,9 +607,7 @@ static int handle_announce_request_common( return 0; } -non_null() -static int handle_gca_announce_request(Onion_Announce *onion_a, const IP_Port *source, const uint8_t *packet, - uint16_t length) +static int handle_gca_announce_request(Onion_Announce *_Nonnull onion_a, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length) { if (length > ANNOUNCE_REQUEST_MAX_SIZE_RECV || length <= ANNOUNCE_REQUEST_MIN_SIZE_RECV) { return 1; @@ -637,12 +622,10 @@ static int handle_gca_announce_request(Onion_Announce *onion_a, const IP_Port *s true, onion_a->extra_data_max_size, onion_a->extra_data_callback); } -non_null(1, 2, 3) nullable(5) -static int handle_announce_request(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, - void *userdata) +static int handle_announce_request(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, + void *_Nullable userdata) { Onion_Announce *onion_a = (Onion_Announce *)object; - if (length != ANNOUNCE_REQUEST_MIN_SIZE_RECV) { return handle_gca_announce_request(onion_a, source, packet, length); } @@ -653,12 +636,10 @@ static int handle_announce_request(void *object, const IP_Port *source, const ui } /* TODO(Jfreegman): DEPRECATE */ -non_null(1, 2, 3) nullable(5) -static int handle_announce_request_old(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, - void *userdata) +static int handle_announce_request_old(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, + void *_Nullable userdata) { Onion_Announce *onion_a = (Onion_Announce *)object; - if (length != ANNOUNCE_REQUEST_SIZE_RECV) { return 1; } @@ -668,9 +649,7 @@ static int handle_announce_request_old(void *object, const IP_Port *source, cons false, 0, nullptr); } -non_null() -static int handle_data_request(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, - void *userdata) +static int handle_data_request(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, void *_Nonnull userdata) { const Onion_Announce *onion_a = (const Onion_Announce *)object; diff --git a/external/toxcore/c-toxcore/toxcore/onion_announce.h b/external/toxcore/c-toxcore/toxcore/onion_announce.h index d883439..a7e0f06 100644 --- a/external/toxcore/c-toxcore/toxcore/onion_announce.h +++ b/external/toxcore/c-toxcore/toxcore/onion_announce.h @@ -44,10 +44,8 @@ typedef struct Onion_Announce Onion_Announce; /** These two are not public; they are for tests only! */ -non_null() -uint8_t *onion_announce_entry_public_key(Onion_Announce *onion_a, uint32_t entry); -non_null() -void onion_announce_entry_set_time(Onion_Announce *onion_a, uint32_t entry, uint64_t announce_time); +uint8_t *_Nullable onion_announce_entry_public_key(Onion_Announce *_Nonnull onion_a, uint32_t entry); +void onion_announce_entry_set_time(Onion_Announce *_Nonnull onion_a, uint32_t entry, uint64_t announce_time); /** @brief Create an onion announce request packet in packet of max_packet_length. * @@ -64,10 +62,9 @@ void onion_announce_entry_set_time(Onion_Announce *onion_a, uint32_t entry, uint * return -1 on failure. * return packet length on success. */ -non_null() -int create_announce_request(const Memory *mem, const Random *rng, uint8_t *packet, uint16_t max_packet_length, const uint8_t *dest_client_id, - const uint8_t *public_key, const uint8_t *secret_key, const uint8_t *ping_id, const uint8_t *client_id, - const uint8_t *data_public_key, uint64_t sendback_data); +int create_announce_request(const Memory *_Nonnull mem, const Random *_Nonnull rng, uint8_t *_Nonnull packet, uint16_t max_packet_length, const uint8_t *_Nonnull dest_client_id, + const uint8_t *_Nonnull public_key, const uint8_t *_Nonnull secret_key, const uint8_t *_Nonnull ping_id, const uint8_t *_Nonnull client_id, const uint8_t *_Nonnull data_public_key, + uint64_t sendback_data); /** @brief Create an onion data request packet in packet of max_packet_length. * @@ -81,9 +78,8 @@ int create_announce_request(const Memory *mem, const Random *rng, uint8_t *packe * return -1 on failure. * return 0 on success. */ -non_null() -int create_data_request(const Memory *mem, const Random *rng, uint8_t *packet, uint16_t max_packet_length, const uint8_t *public_key, - const uint8_t *encrypt_public_key, const uint8_t *nonce, const uint8_t *data, uint16_t length); +int create_data_request(const Memory *_Nonnull mem, const Random *_Nonnull rng, uint8_t *_Nonnull packet, uint16_t max_packet_length, const uint8_t *_Nonnull public_key, + const uint8_t *_Nonnull encrypt_public_key, const uint8_t *_Nonnull nonce, const uint8_t *_Nonnull data, uint16_t length); /** @brief Create and send an onion announce request packet. * @@ -99,13 +95,9 @@ int create_data_request(const Memory *mem, const Random *rng, uint8_t *packet, u * return -1 on failure. * return 0 on success. */ -non_null() -int send_announce_request( - const Logger *log, const Memory *mem, const Networking_Core *net, const Random *rng, - const Onion_Path *path, const Node_format *dest, - const uint8_t *public_key, const uint8_t *secret_key, - const uint8_t *ping_id, const uint8_t *client_id, - const uint8_t *data_public_key, uint64_t sendback_data); +int send_announce_request(const Logger *_Nonnull log, const Memory *_Nonnull mem, const Networking_Core *_Nonnull net, const Random *_Nonnull rng, const Onion_Path *_Nonnull path, + const Node_format *_Nonnull dest, const uint8_t *_Nonnull public_key, const uint8_t *_Nonnull secret_key, const uint8_t *_Nonnull ping_id, const uint8_t *_Nonnull client_id, + const uint8_t *_Nonnull data_public_key, uint64_t sendback_data); /** @brief Create and send an onion data request packet. * @@ -123,24 +115,16 @@ int send_announce_request( * return -1 on failure. * return 0 on success. */ -non_null() -int send_data_request( - const Logger *log, const Memory *mem, const Networking_Core *net, const Random *rng, const Onion_Path *path, const IP_Port *dest, - const uint8_t *public_key, const uint8_t *encrypt_public_key, const uint8_t *nonce, - const uint8_t *data, uint16_t length); +int send_data_request(const Logger *_Nonnull log, const Memory *_Nonnull mem, const Networking_Core *_Nonnull net, const Random *_Nonnull rng, const Onion_Path *_Nonnull path, + const IP_Port *_Nonnull dest, const uint8_t *_Nonnull public_key, const uint8_t *_Nonnull encrypt_public_key, const uint8_t *_Nonnull nonce, const uint8_t *_Nonnull data, uint16_t length); -typedef int pack_extra_data_cb(void *object, const Logger *logger, const Memory *mem, const Mono_Time *mono_time, - uint8_t num_nodes, uint8_t *plain, uint16_t plain_size, - uint8_t *response, uint16_t response_size, uint16_t offset); +typedef int pack_extra_data_cb(void *_Nonnull object, const Logger *_Nonnull logger, const Memory *_Nonnull mem, const Mono_Time *_Nonnull mono_time, + uint8_t num_nodes, uint8_t *_Nonnull plain, uint16_t plain_size, + uint8_t *_Nonnull response, uint16_t response_size, uint16_t offset); -non_null() -void onion_announce_extra_data_callback(Onion_Announce *onion_a, uint16_t extra_data_max_size, - pack_extra_data_cb *extra_data_callback, void *extra_data_object); +void onion_announce_extra_data_callback(Onion_Announce *_Nonnull onion_a, uint16_t extra_data_max_size, pack_extra_data_cb *_Nonnull extra_data_callback, void *_Nonnull extra_data_object); -non_null() -Onion_Announce *new_onion_announce(const Logger *log, const Memory *mem, const Random *rng, const Mono_Time *mono_time, DHT *dht); - -nullable(1) -void kill_onion_announce(Onion_Announce *onion_a); +Onion_Announce *_Nullable new_onion_announce(const Logger *_Nonnull log, const Memory *_Nonnull mem, const Random *_Nonnull rng, const Mono_Time *_Nonnull mono_time, DHT *_Nonnull dht); +void kill_onion_announce(Onion_Announce *_Nullable onion_a); #endif /* C_TOXCORE_TOXCORE_ONION_ANNOUNCE_H */ diff --git a/external/toxcore/c-toxcore/toxcore/onion_client.c b/external/toxcore/c-toxcore/toxcore/onion_client.c index e802d70..4c50925 100644 --- a/external/toxcore/c-toxcore/toxcore/onion_client.c +++ b/external/toxcore/c-toxcore/toxcore/onion_client.c @@ -257,8 +257,7 @@ bool onion_add_bs_path_node(Onion_Client *onion_c, const IP_Port *ip_port, const * return -1 on failure * return 0 on success */ -non_null() -static int onion_add_path_node(Onion_Client *onion_c, const IP_Port *ip_port, const uint8_t *public_key) +static int onion_add_path_node(Onion_Client *_Nonnull onion_c, const IP_Port *_Nonnull ip_port, const uint8_t *_Nonnull public_key) { if (!net_family_is_ipv4(ip_port->ip.family) && !net_family_is_ipv6(ip_port->ip.family)) { return -1; @@ -325,8 +324,7 @@ uint16_t onion_backup_nodes(const Onion_Client *onion_c, Node_format *nodes, uin * * return the number of nodes. */ -non_null() -static uint16_t random_nodes_path_onion(const Onion_Client *onion_c, Node_format *nodes, uint16_t max_num) +static uint16_t random_nodes_path_onion(const Onion_Client *_Nonnull onion_c, Node_format *_Nonnull nodes, uint16_t max_num) { if (max_num == 0) { return 0; @@ -383,8 +381,7 @@ static uint16_t random_nodes_path_onion(const Onion_Client *onion_c, Node_format * return -1 if nodes are suitable for creating a new path. * return path number of already existing similar path if one already exists. */ -non_null() -static int is_path_used(const Mono_Time *mono_time, const Onion_Client_Paths *onion_paths, const Node_format *nodes) +static int is_path_used(const Mono_Time *_Nonnull mono_time, const Onion_Client_Paths *_Nonnull onion_paths, const Node_format *_Nonnull nodes) { for (unsigned int i = 0; i < NUMBER_ONION_PATHS; ++i) { if (mono_time_is_timeout(mono_time, onion_paths->last_path_success[i], ONION_PATH_TIMEOUT)) { @@ -405,8 +402,7 @@ static int is_path_used(const Mono_Time *mono_time, const Onion_Client_Paths *on } /** is path timed out */ -non_null() -static bool path_timed_out(const Mono_Time *mono_time, const Onion_Client_Paths *onion_paths, uint32_t pathnum) +static bool path_timed_out(const Mono_Time *_Nonnull mono_time, const Onion_Client_Paths *_Nonnull onion_paths, uint32_t pathnum) { pathnum = pathnum % NUMBER_ONION_PATHS; @@ -419,8 +415,7 @@ static bool path_timed_out(const Mono_Time *mono_time, const Onion_Client_Paths } /** should node be considered to have timed out */ -non_null() -static bool onion_node_timed_out(const Onion_Node *node, const Mono_Time *mono_time) +static bool onion_node_timed_out(const Onion_Node *_Nonnull node, const Mono_Time *_Nonnull mono_time) { return node->timestamp == 0 || (node->pings_since_last_response >= ONION_NODE_MAX_PINGS @@ -436,8 +431,7 @@ static bool onion_node_timed_out(const Onion_Node *node, const Mono_Time *mono_t * TODO(irungentoo): Make this function better, it currently probably is * vulnerable to some attacks that could deanonimize us. */ -non_null() -static int random_path(const Onion_Client *onion_c, Onion_Client_Paths *onion_paths, uint32_t pathnum, Onion_Path *path) +static int random_path(const Onion_Client *_Nonnull onion_c, Onion_Client_Paths *_Nonnull onion_paths, uint32_t pathnum, Onion_Path *_Nonnull path) { if (pathnum == UINT32_MAX) { pathnum = random_range_u32(onion_c->rng, NUMBER_ONION_PATHS); @@ -485,8 +479,7 @@ static int random_path(const Onion_Client *onion_c, Onion_Client_Paths *onion_pa } /** Set path timeouts, return the path number. */ -non_null() -static uint32_t set_path_timeouts(Onion_Client *onion_c, uint32_t num, uint32_t path_num) +static uint32_t set_path_timeouts(Onion_Client *_Nonnull onion_c, uint32_t num, uint32_t path_num) { if (num > onion_c->num_friends) { return -1; @@ -523,9 +516,7 @@ static uint32_t set_path_timeouts(Onion_Client *onion_c, uint32_t num, uint32_t * return -1 on failure. * return 0 on success. */ -non_null() -static int send_onion_packet_tcp_udp(const Onion_Client *onion_c, const Onion_Path *path, const IP_Port *dest, - const uint8_t *data, uint16_t length) +static int send_onion_packet_tcp_udp(const Onion_Client *_Nonnull onion_c, const Onion_Path *_Nonnull path, const IP_Port *_Nonnull dest, const uint8_t *_Nonnull data, uint16_t length) { if (net_family_is_ipv4(path->ip_port1.ip.family) || net_family_is_ipv6(path->ip_port1.ip.family)) { uint8_t packet[ONION_MAX_PACKET_SIZE]; @@ -573,9 +564,7 @@ static int send_onion_packet_tcp_udp(const Onion_Client *onion_c, const Onion_Pa * return 0 on success * */ -non_null() -static int new_sendback(Onion_Client *onion_c, uint32_t num, const uint8_t *public_key, const IP_Port *ip_port, - uint32_t path_num, uint64_t *sendback) +static int new_sendback(Onion_Client *_Nonnull onion_c, uint32_t num, const uint8_t *_Nonnull public_key, const IP_Port *_Nonnull ip_port, uint32_t path_num, uint64_t *_Nonnull sendback) { uint8_t data[sizeof(uint32_t) + CRYPTO_PUBLIC_KEY_SIZE + SIZE_IPPORT + sizeof(uint32_t)]; memcpy(data, &num, sizeof(uint32_t)); @@ -608,9 +597,7 @@ static int new_sendback(Onion_Client *onion_c, uint32_t num, const uint8_t *publ * return -1 on failure * return num (see new_sendback(...)) on success */ -non_null() -static uint32_t check_sendback(Onion_Client *onion_c, const uint8_t *sendback, uint8_t *ret_pubkey, - IP_Port *ret_ip_port, uint32_t *path_num) +static uint32_t check_sendback(Onion_Client *_Nonnull onion_c, const uint8_t *_Nonnull sendback, uint8_t *_Nonnull ret_pubkey, IP_Port *_Nonnull ret_ip_port, uint32_t *_Nonnull path_num) { uint64_t sback; memcpy(&sback, sendback, sizeof(uint64_t)); @@ -629,9 +616,8 @@ static uint32_t check_sendback(Onion_Client *onion_c, const uint8_t *sendback, u return num; } -non_null(1, 3, 4) nullable(5) -static int client_send_announce_request(Onion_Client *onion_c, uint32_t num, const IP_Port *dest, - const uint8_t *dest_pubkey, const uint8_t *ping_id, uint32_t pathnum) +static int client_send_announce_request(Onion_Client *_Nonnull onion_c, uint32_t num, const IP_Port *_Nonnull dest, + const uint8_t *_Nonnull dest_pubkey, const uint8_t *_Nullable ping_id, uint32_t pathnum) { if (num > onion_c->num_friends) { LOGGER_TRACE(onion_c->logger, "not sending announce to out of bounds friend %u (num friends: %u)", num, onion_c->num_friends); @@ -707,8 +693,7 @@ typedef struct Onion_Node_Cmp { const uint8_t *comp_public_key; } Onion_Node_Cmp; -non_null() -static int onion_node_cmp(const Onion_Node_Cmp *cmp, const Onion_Node *entry1, const Onion_Node *entry2) +static int onion_node_cmp(const Onion_Node_Cmp *_Nonnull cmp, const Onion_Node *_Nonnull entry1, const Onion_Node *_Nonnull entry2) { const bool t1 = onion_node_timed_out(entry1, cmp->mono_time); const bool t2 = onion_node_timed_out(entry2, cmp->mono_time); @@ -738,8 +723,7 @@ static int onion_node_cmp(const Onion_Node_Cmp *cmp, const Onion_Node *entry1, c return 0; } -non_null() -static bool onion_node_less_handler(const void *object, const void *a, const void *b) +static bool onion_node_less_handler(const void *_Nonnull object, const void *_Nonnull a, const void *_Nonnull b) { const Onion_Node_Cmp *cmp = (const Onion_Node_Cmp *)object; const Onion_Node *entry1 = (const Onion_Node *)a; @@ -748,30 +732,26 @@ static bool onion_node_less_handler(const void *object, const void *a, const voi return onion_node_cmp(cmp, entry1, entry2) < 0; } -non_null() -static const void *onion_node_get_handler(const void *arr, uint32_t index) +static const void *onion_node_get_handler(const void *_Nonnull arr, uint32_t index) { const Onion_Node *entries = (const Onion_Node *)arr; return &entries[index]; } -non_null() -static void onion_node_set_handler(void *arr, uint32_t index, const void *val) +static void onion_node_set_handler(void *_Nonnull arr, uint32_t index, const void *_Nonnull val) { Onion_Node *entries = (Onion_Node *)arr; const Onion_Node *entry = (const Onion_Node *)val; entries[index] = *entry; } -non_null() -static void *onion_node_subarr_handler(void *arr, uint32_t index, uint32_t size) +static void *onion_node_subarr_handler(void *_Nonnull arr, uint32_t index, uint32_t size) { Onion_Node *entries = (Onion_Node *)arr; return &entries[index]; } -non_null() -static void *onion_node_alloc_handler(const void *object, uint32_t size) +static void *onion_node_alloc_handler(const void *_Nonnull object, uint32_t size) { const Onion_Node_Cmp *cmp = (const Onion_Node_Cmp *)object; Onion_Node *tmp = (Onion_Node *)mem_valloc(cmp->mem, size, sizeof(Onion_Node)); @@ -783,8 +763,7 @@ static void *onion_node_alloc_handler(const void *object, uint32_t size) return tmp; } -non_null() -static void onion_node_delete_handler(const void *object, void *arr, uint32_t size) +static void onion_node_delete_handler(const void *_Nonnull object, void *_Nonnull arr, uint32_t size) { const Onion_Node_Cmp *cmp = (const Onion_Node_Cmp *)object; mem_delete(cmp->mem, arr); @@ -799,9 +778,7 @@ static const Sort_Funcs onion_node_cmp_funcs = { onion_node_delete_handler, }; -non_null() -static void sort_onion_node_list(const Memory *mem, const Mono_Time *mono_time, - Onion_Node *list, unsigned int length, const uint8_t *comp_public_key) +static void sort_onion_node_list(const Memory *_Nonnull mem, const Mono_Time *_Nonnull mono_time, Onion_Node *_Nonnull list, unsigned int length, const uint8_t *_Nonnull comp_public_key) { // Pass comp_public_key to sort with each Onion_Node entry, so the // comparison function can use it as the base of comparison. @@ -814,9 +791,8 @@ static void sort_onion_node_list(const Memory *mem, const Mono_Time *mono_time, merge_sort(list, length, &cmp, &onion_node_cmp_funcs); } -non_null() -static int client_add_to_list(Onion_Client *onion_c, uint32_t num, const uint8_t *public_key, const IP_Port *ip_port, - uint8_t is_stored, const uint8_t *pingid_or_key, uint32_t path_used) +static int client_add_to_list(Onion_Client *_Nonnull onion_c, uint32_t num, const uint8_t *_Nonnull public_key, const IP_Port *_Nonnull ip_port, uint8_t is_stored, + const uint8_t *_Nonnull pingid_or_key, uint32_t path_used) { if (num > onion_c->num_friends) { return -1; @@ -891,9 +867,7 @@ static int client_add_to_list(Onion_Client *onion_c, uint32_t num, const uint8_t return 0; } -non_null() -static bool good_to_ping(const Mono_Time *mono_time, Last_Pinged *last_pinged, uint8_t *last_pinged_index, - const uint8_t *public_key) +static bool good_to_ping(const Mono_Time *_Nonnull mono_time, Last_Pinged *_Nonnull last_pinged, uint8_t *_Nonnull last_pinged_index, const uint8_t *_Nonnull public_key) { for (unsigned int i = 0; i < MAX_STORED_PINGED_NODES; ++i) { if (!mono_time_is_timeout(mono_time, last_pinged[i].timestamp, MIN_NODE_PING_TIME)) { @@ -909,9 +883,7 @@ static bool good_to_ping(const Mono_Time *mono_time, Last_Pinged *last_pinged, u return true; } -non_null() -static int client_ping_nodes(Onion_Client *onion_c, uint32_t num, const Node_format *nodes, uint16_t num_nodes, - const IP_Port *source) +static int client_ping_nodes(Onion_Client *_Nonnull onion_c, uint32_t num, const Node_format *_Nonnull nodes, uint16_t num_nodes, const IP_Port *_Nonnull source) { if (num > onion_c->num_friends) { return -1; @@ -973,8 +945,7 @@ static int client_ping_nodes(Onion_Client *onion_c, uint32_t num, const Node_for return 0; } -non_null() -static bool handle_group_announce_response(Onion_Client *onion_c, uint32_t num, const uint8_t *plain, size_t plain_size) +static bool handle_group_announce_response(Onion_Client *_Nonnull onion_c, uint32_t num, const uint8_t *_Nonnull plain, size_t plain_size) { if (onion_c->group_announce_response == nullptr) { return true; @@ -983,12 +954,10 @@ static bool handle_group_announce_response(Onion_Client *onion_c, uint32_t num, return onion_c->group_announce_response(onion_c, num, plain, plain_size, onion_c->group_announce_response_user_data); } -non_null(1, 2, 3) nullable(5) -static int handle_announce_response(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, - void *userdata) +static int handle_announce_response(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, + void *_Nullable userdata) { Onion_Client *onion_c = (Onion_Client *)object; - if (length < ONION_ANNOUNCE_RESPONSE_MIN_SIZE || length > ONION_ANNOUNCE_RESPONSE_MAX_SIZE) { LOGGER_TRACE(onion_c->logger, "invalid announce response length: %u (min: %u, max: %u)", length, (unsigned int)ONION_ANNOUNCE_RESPONSE_MIN_SIZE, (unsigned int)ONION_ANNOUNCE_RESPONSE_MAX_SIZE); @@ -1085,12 +1054,10 @@ static int handle_announce_response(void *object, const IP_Port *source, const u } /* TODO(jfreegman): DEPRECATE */ -non_null(1, 2, 3) nullable(5) -static int handle_announce_response_old(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, - void *userdata) +static int handle_announce_response_old(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, + void *_Nullable userdata) { Onion_Client *onion_c = (Onion_Client *)object; - if (length < ONION_ANNOUNCE_RESPONSE_MIN_SIZE || length > ONION_ANNOUNCE_RESPONSE_MAX_SIZE) { LOGGER_TRACE(onion_c->logger, "invalid announce response length: %u (min: %u, max: %u)", length, (unsigned int)ONION_ANNOUNCE_RESPONSE_MIN_SIZE, (unsigned int)ONION_ANNOUNCE_RESPONSE_MAX_SIZE); @@ -1170,9 +1137,7 @@ static int handle_announce_response_old(void *object, const IP_Port *source, con #define DATA_IN_RESPONSE_MIN_SIZE ONION_DATA_IN_RESPONSE_MIN_SIZE -non_null() -static int handle_data_response(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, - void *userdata) +static int handle_data_response(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, void *_Nonnull userdata) { Onion_Client *onion_c = (Onion_Client *)object; @@ -1214,12 +1179,10 @@ static int handle_data_response(void *object, const IP_Port *source, const uint8 #define DHTPK_DATA_MIN_LENGTH (1 + sizeof(uint64_t) + CRYPTO_PUBLIC_KEY_SIZE) #define DHTPK_DATA_MAX_LENGTH (DHTPK_DATA_MIN_LENGTH + sizeof(Node_format)*MAX_SENT_NODES) -non_null(1, 2, 3) nullable(5) -static int handle_dhtpk_announce(void *object, const uint8_t *source_pubkey, const uint8_t *data, uint16_t length, - void *userdata) +static int handle_dhtpk_announce(void *_Nonnull object, const uint8_t *_Nonnull source_pubkey, const uint8_t *_Nonnull data, uint16_t length, + void *_Nullable userdata) { Onion_Client *onion_c = (Onion_Client *)object; - if (length < DHTPK_DATA_MIN_LENGTH) { return 1; } @@ -1279,8 +1242,7 @@ static int handle_dhtpk_announce(void *object, const uint8_t *source_pubkey, con return 0; } -non_null() -static int handle_tcp_onion(void *object, const uint8_t *data, uint16_t length, void *userdata) +static int handle_tcp_onion(void *_Nonnull object, const uint8_t *_Nonnull data, uint16_t length, void *_Nonnull userdata) { if (length == 0) { return 1; @@ -1396,8 +1358,7 @@ int send_onion_data(Onion_Client *onion_c, int friend_num, const uint8_t *data, * return the number of packets sent on success * return -1 on failure. */ -non_null() -static int send_dht_dhtpk(const Onion_Client *onion_c, int friend_num, const uint8_t *data, uint16_t length) +static int send_dht_dhtpk(const Onion_Client *_Nonnull onion_c, int friend_num, const uint8_t *_Nonnull data, uint16_t length) { if ((uint32_t)friend_num >= onion_c->num_friends) { return -1; @@ -1436,9 +1397,8 @@ static int send_dht_dhtpk(const Onion_Client *onion_c, int friend_num, const uin return route_to_friend(onion_c->dht, onion_c->friends_list[friend_num].dht_public_key, &packet); } -non_null() -static int handle_dht_dhtpk(void *object, const IP_Port *source, const uint8_t *source_pubkey, const uint8_t *packet, - uint16_t length, void *userdata) +static int handle_dht_dhtpk(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull source_pubkey, const uint8_t *_Nonnull packet, uint16_t length, + void *_Nonnull userdata) { Onion_Client *onion_c = (Onion_Client *)object; @@ -1476,8 +1436,7 @@ static int handle_dht_dhtpk(void *object, const IP_Port *source, const uint8_t * * return the number of packets sent on success * return -1 on failure. */ -non_null() -static int send_dhtpk_announce(Onion_Client *onion_c, uint16_t friend_num, uint8_t onion_dht_both) +static int send_dhtpk_announce(Onion_Client *_Nonnull onion_c, uint16_t friend_num, uint8_t onion_dht_both) { if (friend_num >= onion_c->num_friends) { return -1; @@ -1550,8 +1509,7 @@ int onion_friend_num(const Onion_Client *onion_c, const uint8_t *public_key) * @retval -1 if mem_vrealloc fails. * @retval 0 if it succeeds. */ -non_null() -static int realloc_onion_friends(Onion_Client *onion_c, uint32_t num) +static int realloc_onion_friends(Onion_Client *_Nonnull onion_c, uint32_t num) { if (num == 0) { mem_delete(onion_c->mem, onion_c->friends_list); @@ -1778,8 +1736,7 @@ int onion_set_friend_online(Onion_Client *onion_c, int friend_num, bool is_onlin return 0; } -non_null() -static void populate_path_nodes(Onion_Client *onion_c) +static void populate_path_nodes(Onion_Client *_Nonnull onion_c) { Node_format node_list[MAX_FRIEND_CLIENTS]; @@ -1805,8 +1762,7 @@ static void populate_path_nodes(Onion_Client *onion_c) /* Max exponent when calculating the announce request interval */ #define MAX_RUN_COUNT_EXPONENT 12 -non_null() -static void do_friend(Onion_Client *onion_c, uint16_t friendnum) +static void do_friend(Onion_Client *_Nonnull onion_c, uint16_t friendnum) { if (friendnum >= onion_c->num_friends) { return; @@ -1944,8 +1900,7 @@ void onion_group_announce_register(Onion_Client *onion_c, onion_group_announce_c #define TIME_TO_STABLE (ONION_NODE_PING_INTERVAL * 6) #define ANNOUNCE_INTERVAL_STABLE (ONION_NODE_PING_INTERVAL * 8) -non_null() -static bool key_list_contains(const uint8_t *const *keys, uint16_t keys_size, const uint8_t *public_key) +static bool key_list_contains(const uint8_t *const *_Nonnull keys, uint16_t keys_size, const uint8_t *_Nonnull public_key) { for (uint16_t i = 0; i < keys_size; ++i) { if (memeq(keys[i], CRYPTO_PUBLIC_KEY_SIZE, public_key, CRYPTO_PUBLIC_KEY_SIZE)) { @@ -1957,8 +1912,7 @@ static bool key_list_contains(const uint8_t *const *keys, uint16_t keys_size, co } /** Does path with path_num exist. */ -non_null() -static bool path_exists(const Mono_Time *mono_time, const Onion_Client_Paths *onion_paths, uint32_t path_num) +static bool path_exists(const Mono_Time *_Nonnull mono_time, const Onion_Client_Paths *_Nonnull onion_paths, uint32_t path_num) { if (path_timed_out(mono_time, onion_paths, path_num)) { return false; @@ -1971,9 +1925,7 @@ static bool path_exists(const Mono_Time *mono_time, const Onion_Client_Paths *on * A node/path is considered "stable" if it has survived for at least TIME_TO_STABLE * and the latest packets sent to it are not timing out. */ -non_null() -static bool path_is_stable(const Mono_Time *mono_time, const Onion_Client_Paths *paths, - uint32_t pathnum, const Onion_Node *node) +static bool path_is_stable(const Mono_Time *_Nonnull mono_time, const Onion_Client_Paths *_Nonnull paths, uint32_t pathnum, const Onion_Node *_Nonnull node) { return mono_time_is_timeout(mono_time, node->added_time, TIME_TO_STABLE) && !(node->pings_since_last_response > 0 @@ -1983,8 +1935,7 @@ static bool path_is_stable(const Mono_Time *mono_time, const Onion_Client_Paths && mono_time_is_timeout(mono_time, paths->last_path_used[pathnum], ONION_PATH_TIMEOUT)); } -non_null() -static void do_announce(Onion_Client *onion_c) +static void do_announce(Onion_Client *_Nonnull onion_c) { unsigned int count = 0; Onion_Node *node_list = onion_c->clients_announce_list; @@ -2094,15 +2045,14 @@ static void do_announce(Onion_Client *onion_c) * @retval false if we are not connected to the network. * @retval true if we are. */ -non_null() -static bool onion_isconnected(Onion_Client *onion_c) +static bool onion_isconnected(Onion_Client *_Nonnull onion_c) { unsigned int live = 0; unsigned int announced = 0; if (mono_time_is_timeout(onion_c->mono_time, onion_c->last_packet_recv, ONION_OFFLINE_TIMEOUT)) { LOGGER_TRACE(onion_c->logger, "onion is NOT connected: last packet received at %llu (timeout=%u)", - (unsigned long long)onion_c->last_packet_recv, ONION_OFFLINE_TIMEOUT); + (unsigned long long)onion_c->last_packet_recv, (unsigned int)ONION_OFFLINE_TIMEOUT); onion_c->last_populated = 0; return false; } @@ -2134,7 +2084,7 @@ static bool onion_isconnected(Onion_Client *onion_c) if (live != 0 && announced != 0) { if ((live / 2) <= announced && (pnodes / 2) <= live) { LOGGER_TRACE(onion_c->logger, "onion is connected: %u live nodes, %u announced, %d path nodes", - live, announced, pnodes); + live, announced, (int)pnodes); return true; } } @@ -2142,12 +2092,11 @@ static bool onion_isconnected(Onion_Client *onion_c) onion_c->last_populated = 0; LOGGER_TRACE(onion_c->logger, "onion is NOT connected: %u live nodes, %u announced, %d path nodes", - live, announced, pnodes); + live, announced, (int)pnodes); return false; } -non_null() -static void reset_friend_run_counts(Onion_Client *onion_c) +static void reset_friend_run_counts(Onion_Client *_Nonnull onion_c) { for (uint16_t i = 0; i < onion_c->num_friends; ++i) { Onion_Friend *o_friend = &onion_c->friends_list[i]; diff --git a/external/toxcore/c-toxcore/toxcore/onion_client.h b/external/toxcore/c-toxcore/toxcore/onion_client.h index 5999f15..bdcaf35 100644 --- a/external/toxcore/c-toxcore/toxcore/onion_client.h +++ b/external/toxcore/c-toxcore/toxcore/onion_client.h @@ -66,10 +66,8 @@ typedef struct Onion_Client Onion_Client; -non_null() -DHT *onion_get_dht(const Onion_Client *onion_c); -non_null() -Net_Crypto *onion_get_net_crypto(const Onion_Client *onion_c); +DHT *_Nonnull onion_get_dht(const Onion_Client *_Nonnull onion_c); +Net_Crypto *_Nonnull onion_get_net_crypto(const Onion_Client *_Nonnull onion_c); /** @brief Add a node to the path_nodes bootstrap array. * @@ -84,39 +82,34 @@ Net_Crypto *onion_get_net_crypto(const Onion_Client *onion_c); * @retval false on failure * @retval true on success */ -non_null() -bool onion_add_bs_path_node(Onion_Client *onion_c, const IP_Port *ip_port, const uint8_t *public_key); +bool onion_add_bs_path_node(Onion_Client *_Nonnull onion_c, const IP_Port *_Nonnull ip_port, const uint8_t *_Nonnull public_key); /** @brief Put up to max_num nodes in nodes. * * return the number of nodes. */ -non_null() -uint16_t onion_backup_nodes(const Onion_Client *onion_c, Node_format *nodes, uint16_t max_num); +uint16_t onion_backup_nodes(const Onion_Client *_Nonnull onion_c, Node_format *_Nonnull nodes, uint16_t max_num); /** @brief Get the friend_num of a friend. * * return -1 on failure. * return friend number on success. */ -non_null() -int onion_friend_num(const Onion_Client *onion_c, const uint8_t *public_key); +int onion_friend_num(const Onion_Client *_Nonnull onion_c, const uint8_t *_Nonnull public_key); /** @brief Add a friend who we want to connect to. * * return -1 on failure. * return the friend number on success or if the friend was already added. */ -non_null() -int onion_addfriend(Onion_Client *onion_c, const uint8_t *public_key); +int onion_addfriend(Onion_Client *_Nonnull onion_c, const uint8_t *_Nonnull public_key); /** @brief Delete a friend. * * return -1 on failure. * return the deleted friend number on success. */ -non_null() -int onion_delfriend(Onion_Client *onion_c, int friend_num); +int onion_delfriend(Onion_Client *_Nonnull onion_c, int friend_num); /** @brief Set if friend is online or not. * @@ -126,8 +119,7 @@ int onion_delfriend(Onion_Client *onion_c, int friend_num); * return -1 on failure. * return 0 on success. */ -non_null() -int onion_set_friend_online(Onion_Client *onion_c, int friend_num, bool is_online); +int onion_set_friend_online(Onion_Client *_Nonnull onion_c, int friend_num, bool is_online); /** @brief Get the ip of friend friendnum and put it in ip_port * @@ -135,10 +127,9 @@ int onion_set_friend_online(Onion_Client *onion_c, int friend_num, bool is_onlin * @retval 0 if public_key refers to a friend and we failed to find the friend (yet) * @retval 1 if public_key refers to a friend and we found them */ -non_null() -int onion_getfriendip(const Onion_Client *onion_c, int friend_num, IP_Port *ip_port); +int onion_getfriendip(const Onion_Client *_Nonnull onion_c, int friend_num, IP_Port *_Nonnull ip_port); -typedef int recv_tcp_relay_cb(void *object, uint32_t number, const IP_Port *ip_port, const uint8_t *public_key); +typedef int recv_tcp_relay_cb(void *_Nonnull object, uint32_t number, const IP_Port *_Nonnull ip_port, const uint8_t *_Nonnull public_key); /** @brief Set the function for this friend that will be callbacked with object and number * when that friend gives us one of the TCP relays they are connected to. @@ -148,11 +139,9 @@ typedef int recv_tcp_relay_cb(void *object, uint32_t number, const IP_Port *ip_p * return -1 on failure. * return 0 on success. */ -non_null() -int recv_tcp_relay_handler(Onion_Client *onion_c, int friend_num, - recv_tcp_relay_cb *callback, void *object, uint32_t number); +int recv_tcp_relay_handler(Onion_Client *_Nonnull onion_c, int friend_num, recv_tcp_relay_cb *_Nonnull callback, void *_Nonnull object, uint32_t number); -typedef void onion_dht_pk_cb(void *object, int32_t number, const uint8_t *dht_public_key, void *userdata); +typedef void onion_dht_pk_cb(void *_Nonnull object, int32_t number, const uint8_t *_Nonnull dht_public_key, void *_Nullable userdata); /** @brief Set the function for this friend that will be callbacked with object and number * when that friend gives us their DHT temporary public key. @@ -162,25 +151,21 @@ typedef void onion_dht_pk_cb(void *object, int32_t number, const uint8_t *dht_pu * return -1 on failure. * return 0 on success. */ -non_null() -int onion_dht_pk_callback(Onion_Client *onion_c, int friend_num, onion_dht_pk_cb *function, void *object, - uint32_t number); +int onion_dht_pk_callback(Onion_Client *_Nonnull onion_c, int friend_num, onion_dht_pk_cb *_Nonnull function, void *_Nonnull object, uint32_t number); /** @brief Set a friend's DHT public key. * * return -1 on failure. * return 0 on success. */ -non_null() -int onion_set_friend_dht_pubkey(Onion_Client *onion_c, int friend_num, const uint8_t *dht_key); +int onion_set_friend_dht_pubkey(Onion_Client *_Nonnull onion_c, int friend_num, const uint8_t *_Nonnull dht_key); /** @brief Copy friends DHT public key into dht_key. * * return 0 on failure (no key copied). * return 1 on success (key copied). */ -non_null() -unsigned int onion_getfriend_dht_pubkey(const Onion_Client *onion_c, int friend_num, uint8_t *dht_key); +unsigned int onion_getfriend_dht_pubkey(const Onion_Client *_Nonnull onion_c, int friend_num, uint8_t *_Nonnull dht_key); #define ONION_DATA_IN_RESPONSE_MIN_SIZE (CRYPTO_PUBLIC_KEY_SIZE + CRYPTO_MAC_SIZE) @@ -196,32 +181,23 @@ unsigned int onion_getfriend_dht_pubkey(const Onion_Client *onion_c, int friend_ * return the number of packets sent on success * return -1 on failure. */ -non_null() -int send_onion_data(Onion_Client *onion_c, int friend_num, const uint8_t *data, uint16_t length); +int send_onion_data(Onion_Client *_Nonnull onion_c, int friend_num, const uint8_t *_Nonnull data, uint16_t length); -typedef int oniondata_handler_cb(void *object, const uint8_t *source_pubkey, const uint8_t *data, - uint16_t length, void *userdata); +typedef int oniondata_handler_cb(void *_Nullable object, const uint8_t *_Nonnull source_pubkey, const uint8_t *_Nonnull data, + uint16_t length, void *_Nullable userdata); /** Function to call when onion data packet with contents beginning with byte is received. */ -non_null(1) nullable(3, 4) -void oniondata_registerhandler(Onion_Client *onion_c, uint8_t byte, oniondata_handler_cb *cb, void *object); - -typedef bool onion_group_announce_cb(Onion_Client *onion_c, uint32_t sendback_num, const uint8_t *data, - size_t data_length, void *user_data); +void oniondata_registerhandler(Onion_Client *_Nonnull onion_c, uint8_t byte, oniondata_handler_cb *_Nullable cb, void *_Nullable object); +typedef bool onion_group_announce_cb(Onion_Client *_Nonnull onion_c, uint32_t sendback_num, const uint8_t *_Nonnull data, + size_t data_length, void *_Nullable user_data); /** Function to call when the onion gets a group announce response. */ -non_null(1) nullable(2, 3) -void onion_group_announce_register(Onion_Client *onion_c, onion_group_announce_cb *func, void *user_data); +void onion_group_announce_register(Onion_Client *_Nonnull onion_c, onion_group_announce_cb *_Nullable func, void *_Nullable user_data); +void do_onion_client(Onion_Client *_Nonnull onion_c); -non_null() -void do_onion_client(Onion_Client *onion_c); - -non_null() -Onion_Client *new_onion_client(const Logger *logger, const Memory *mem, const Random *rng, const Mono_Time *mono_time, Net_Crypto *c); - -nullable(1) -void kill_onion_client(Onion_Client *onion_c); +Onion_Client *_Nullable new_onion_client(const Logger *_Nonnull logger, const Memory *_Nonnull mem, const Random *_Nonnull rng, const Mono_Time *_Nonnull mono_time, Net_Crypto *_Nonnull c); +void kill_onion_client(Onion_Client *_Nullable onion_c); typedef enum Onion_Connection_Status { /** We are not connected to the network. */ ONION_CONNECTION_STATUS_NONE = 0, @@ -231,18 +207,16 @@ typedef enum Onion_Connection_Status { ONION_CONNECTION_STATUS_UDP = 2, } Onion_Connection_Status; -non_null() -Onion_Connection_Status onion_connection_status(const Onion_Client *onion_c); +Onion_Connection_Status onion_connection_status(const Onion_Client *_Nonnull onion_c); typedef struct Onion_Friend Onion_Friend; -non_null() uint16_t onion_get_friend_count(const Onion_Client *onion_c); -non_null() Onion_Friend *onion_get_friend(const Onion_Client *onion_c, uint16_t friend_num); -non_null() const uint8_t *onion_friend_get_gc_public_key(const Onion_Friend *onion_friend); -non_null() const uint8_t *onion_friend_get_gc_public_key_num(const Onion_Client *onion_c, uint32_t num); -non_null() void onion_friend_set_gc_public_key(Onion_Friend *onion_friend, const uint8_t *public_key); -non_null(1) nullable(2) -void onion_friend_set_gc_data(Onion_Friend *onion_friend, const uint8_t *gc_data, uint16_t gc_data_length); -non_null() bool onion_friend_is_groupchat(const Onion_Friend *onion_friend); +uint16_t onion_get_friend_count(const Onion_Client *_Nonnull onion_c); +Onion_Friend *_Nullable onion_get_friend(const Onion_Client *_Nonnull onion_c, uint16_t friend_num); +const uint8_t *_Nullable onion_friend_get_gc_public_key(const Onion_Friend *_Nonnull onion_friend); +const uint8_t *_Nullable onion_friend_get_gc_public_key_num(const Onion_Client *_Nonnull onion_c, uint32_t num); +void onion_friend_set_gc_public_key(Onion_Friend *_Nonnull onion_friend, const uint8_t *_Nonnull public_key); +void onion_friend_set_gc_data(Onion_Friend *_Nonnull onion_friend, const uint8_t *_Nullable gc_data, uint16_t gc_data_length); +bool onion_friend_is_groupchat(const Onion_Friend *_Nonnull onion_friend); #endif /* C_TOXCORE_TOXCORE_ONION_CLIENT_H */ diff --git a/external/toxcore/c-toxcore/toxcore/ping.c b/external/toxcore/c-toxcore/toxcore/ping.c index bfb3c92..13e4433 100644 --- a/external/toxcore/c-toxcore/toxcore/ping.c +++ b/external/toxcore/c-toxcore/toxcore/ping.c @@ -86,9 +86,7 @@ void ping_send_request(Ping *ping, const IP_Port *ipp, const uint8_t *public_key sendpacket(dht_get_net(ping->dht), ipp, pk, sizeof(pk)); } -non_null() -static int ping_send_response(const Ping *ping, const IP_Port *ipp, const uint8_t *public_key, - uint64_t ping_id, const uint8_t *shared_encryption_key) +static int ping_send_response(const Ping *_Nonnull ping, const IP_Port *_Nonnull ipp, const uint8_t *_Nonnull public_key, uint64_t ping_id, const uint8_t *_Nonnull shared_encryption_key) { uint8_t pk[DHT_PING_SIZE]; @@ -117,9 +115,7 @@ static int ping_send_response(const Ping *ping, const IP_Port *ipp, const uint8_ return sendpacket(dht_get_net(ping->dht), ipp, pk, sizeof(pk)); } -non_null() -static int handle_ping_request(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, - void *userdata) +static int handle_ping_request(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, void *_Nonnull userdata) { DHT *dht = (DHT *)object; @@ -161,9 +157,7 @@ static int handle_ping_request(void *object, const IP_Port *source, const uint8_ return 0; } -non_null() -static int handle_ping_response(void *object, const IP_Port *source, const uint8_t *packet, uint16_t length, - void *userdata) +static int handle_ping_response(void *_Nonnull object, const IP_Port *_Nonnull source, const uint8_t *_Nonnull packet, uint16_t length, void *_Nonnull userdata) { DHT *dht = (DHT *)object; int rc; @@ -225,9 +219,7 @@ static int handle_ping_response(void *object, const IP_Port *source, const uint8 * return true if it is. * return false if it isn't. */ -non_null() -static bool in_list(const Client_data *list, uint16_t length, const Mono_Time *mono_time, const uint8_t *public_key, - const IP_Port *ip_port) +static bool in_list(const Client_data *_Nonnull list, uint16_t length, const Mono_Time *_Nonnull mono_time, const uint8_t *_Nonnull public_key, const IP_Port *_Nonnull ip_port) { for (unsigned int i = 0; i < length; ++i) { if (pk_equal(list[i].public_key, public_key)) { diff --git a/external/toxcore/c-toxcore/toxcore/ping.h b/external/toxcore/c-toxcore/toxcore/ping.h index 98ae7bd..90e9cfa 100644 --- a/external/toxcore/c-toxcore/toxcore/ping.h +++ b/external/toxcore/c-toxcore/toxcore/ping.h @@ -21,12 +21,9 @@ typedef struct Ping Ping; -non_null() -Ping *ping_new(const Memory *mem, const Mono_Time *mono_time, const Random *rng, DHT *dht); - -non_null(1) nullable(2) -void ping_kill(const Memory *mem, Ping *ping); +Ping *_Nullable ping_new(const Memory *_Nonnull mem, const Mono_Time *_Nonnull mono_time, const Random *_Nonnull rng, DHT *_Nonnull dht); +void ping_kill(const Memory *_Nonnull mem, Ping *_Nullable ping); /** @brief Add nodes to the to_ping list. * All nodes in this list are pinged every TIME_TO_PING seconds * and are then removed from the list. @@ -37,16 +34,13 @@ void ping_kill(const Memory *mem, Ping *ping); * @retval 0 if node was added. * @retval -1 if node was not added. */ -non_null() -int32_t ping_add(Ping *ping, const uint8_t *public_key, const IP_Port *ip_port); +int32_t ping_add(Ping *_Nonnull ping, const uint8_t *_Nonnull public_key, const IP_Port *_Nonnull ip_port); /** @brief Ping all the valid nodes in the to_ping list every TIME_TO_PING seconds. * This function must be run at least once every TIME_TO_PING seconds. */ -non_null() -void ping_iterate(Ping *ping); +void ping_iterate(Ping *_Nonnull ping); -non_null() -void ping_send_request(Ping *ping, const IP_Port *ipp, const uint8_t *public_key); +void ping_send_request(Ping *_Nonnull ping, const IP_Port *_Nonnull ipp, const uint8_t *_Nonnull public_key); #endif /* C_TOXCORE_TOXCORE_PING_H */ diff --git a/external/toxcore/c-toxcore/toxcore/ping_array.c b/external/toxcore/c-toxcore/toxcore/ping_array.c index 91b9064..61e607c 100644 --- a/external/toxcore/c-toxcore/toxcore/ping_array.c +++ b/external/toxcore/c-toxcore/toxcore/ping_array.c @@ -66,8 +66,7 @@ Ping_Array *ping_array_new(const Memory *mem, uint32_t size, uint32_t timeout) return empty_array; } -non_null() -static void clear_entry(Ping_Array *array, uint32_t index) +static void clear_entry(Ping_Array *_Nonnull array, uint32_t index) { const Ping_Array_Entry empty = {nullptr}; mem_delete(array->mem, array->entries[index].data); @@ -91,8 +90,7 @@ void ping_array_kill(Ping_Array *array) } /** Clear timed out entries. */ -non_null() -static void ping_array_clear_timedout(Ping_Array *array, const Mono_Time *mono_time) +static void ping_array_clear_timedout(Ping_Array *_Nonnull array, const Mono_Time *_Nonnull mono_time) { while (array->last_deleted != array->last_added) { const uint32_t index = array->last_deleted % array->total_size; diff --git a/external/toxcore/c-toxcore/toxcore/ping_array.h b/external/toxcore/c-toxcore/toxcore/ping_array.h index 2d1f9f5..9c025e0 100644 --- a/external/toxcore/c-toxcore/toxcore/ping_array.h +++ b/external/toxcore/c-toxcore/toxcore/ping_array.h @@ -31,23 +31,18 @@ typedef struct Ping_Array Ping_Array; * * @return pointer to allocated Ping_Array on success, nullptr on failure. */ -non_null() -struct Ping_Array *ping_array_new(const Memory *mem, uint32_t size, uint32_t timeout); +struct Ping_Array *_Nullable ping_array_new(const Memory *_Nonnull mem, uint32_t size, uint32_t timeout); /** * @brief Free all the allocated memory in a @ref Ping_Array. */ -nullable(1) -void ping_array_kill(Ping_Array *array); - +void ping_array_kill(Ping_Array *_Nullable array); /** * @brief Add a data with length to the @ref Ping_Array list and return a ping_id. * * @return ping_id on success, 0 on failure. */ -non_null() -uint64_t ping_array_add(Ping_Array *array, const Mono_Time *mono_time, const Random *rng, - const uint8_t *data, uint32_t length); +uint64_t ping_array_add(Ping_Array *_Nonnull array, const Mono_Time *_Nonnull mono_time, const Random *_Nonnull rng, const uint8_t *_Nonnull data, uint32_t length); /** * @brief Check if @p ping_id is valid and not timed out. @@ -56,9 +51,7 @@ uint64_t ping_array_add(Ping_Array *array, const Mono_Time *mono_time, const Ran * * @return length of data copied on success, -1 on failure. */ -non_null() -int32_t ping_array_check(Ping_Array *array, const Mono_Time *mono_time, uint8_t *data, size_t length, - uint64_t ping_id); +int32_t ping_array_check(Ping_Array *_Nonnull array, const Mono_Time *_Nonnull mono_time, uint8_t *_Nonnull data, size_t length, uint64_t ping_id); #ifdef __cplusplus } /* extern "C" */ diff --git a/external/toxcore/c-toxcore/toxcore/shared_key_cache.c b/external/toxcore/c-toxcore/toxcore/shared_key_cache.c index 64906b5..1e0a82b 100644 --- a/external/toxcore/c-toxcore/toxcore/shared_key_cache.c +++ b/external/toxcore/c-toxcore/toxcore/shared_key_cache.c @@ -30,8 +30,7 @@ struct Shared_Key_Cache { uint8_t keys_per_slot; }; -non_null() -static bool shared_key_is_empty(const Logger *log, const Shared_Key *k) +static bool shared_key_is_empty(const Logger *_Nonnull log, const Shared_Key *_Nonnull k) { LOGGER_ASSERT(log, k != nullptr, "shared key must not be NULL"); /* @@ -41,8 +40,7 @@ static bool shared_key_is_empty(const Logger *log, const Shared_Key *k) return k->time_last_requested == 0; } -non_null() -static void shared_key_set_empty(const Logger *log, Shared_Key *k) +static void shared_key_set_empty(const Logger *_Nonnull log, Shared_Key *_Nonnull k) { crypto_memzero(k, sizeof(Shared_Key)); LOGGER_ASSERT(log, shared_key_is_empty(log, k), "shared key must be empty after clearing it"); diff --git a/external/toxcore/c-toxcore/toxcore/shared_key_cache.h b/external/toxcore/c-toxcore/toxcore/shared_key_cache.h index 6929532..c9892d0 100644 --- a/external/toxcore/c-toxcore/toxcore/shared_key_cache.h +++ b/external/toxcore/c-toxcore/toxcore/shared_key_cache.h @@ -28,19 +28,14 @@ typedef struct Shared_Key_Cache Shared_Key_Cache; * @param keys_per_slot There are 256 slots, this controls how many keys are stored per slot and the size of the cache. * @return nullptr on error. */ -non_null() -Shared_Key_Cache *shared_key_cache_new( - const Logger *log, const Mono_Time *mono_time, const Memory *mem, - const uint8_t *self_secret_key, - uint64_t timeout, uint8_t keys_per_slot); +Shared_Key_Cache *_Nullable shared_key_cache_new(const Logger *_Nonnull log, const Mono_Time *_Nonnull mono_time, const Memory *_Nonnull mem, const uint8_t *_Nonnull self_secret_key, uint64_t timeout, + uint8_t keys_per_slot); /** * @brief Deletes the cache and frees all resources. * @param cache Cache to delete or nullptr. */ -nullable(1) -void shared_key_cache_free(Shared_Key_Cache *cache); - +void shared_key_cache_free(Shared_Key_Cache *_Nullable cache); /** * @brief Looks up a key from the cache or computes it if it didn't exist yet. * @param cache Cache to perform the lookup on. @@ -49,7 +44,6 @@ void shared_key_cache_free(Shared_Key_Cache *cache); * @return The shared key of length CRYPTO_SHARED_KEY_SIZE, matching the public key and our secret key. * @return nullptr on error. */ -non_null() -const uint8_t *shared_key_cache_lookup(Shared_Key_Cache *cache, const uint8_t public_key[CRYPTO_PUBLIC_KEY_SIZE]); +const uint8_t *_Nullable shared_key_cache_lookup(Shared_Key_Cache *_Nonnull cache, const uint8_t public_key[_Nonnull CRYPTO_PUBLIC_KEY_SIZE]); #endif /* C_TOXCORE_TOXCORE_SHARED_KEY_CACHE_H */ diff --git a/external/toxcore/c-toxcore/toxcore/sort.c b/external/toxcore/c-toxcore/toxcore/sort.c index 9bd83d6..b3bc4a4 100644 --- a/external/toxcore/c-toxcore/toxcore/sort.c +++ b/external/toxcore/c-toxcore/toxcore/sort.c @@ -25,13 +25,8 @@ */ #define SMALL_ARRAY_THRESHOLD 16 -non_null() -static void merge_sort_merge_back( - void *arr, - const void *l_arr, uint32_t l_arr_size, - const void *r_arr, uint32_t r_arr_size, - uint32_t left_start, - const void *object, const Sort_Funcs *funcs) +static void merge_sort_merge_back(void *_Nonnull arr, const void *_Nonnull l_arr, uint32_t l_arr_size, const void *_Nonnull r_arr, uint32_t r_arr_size, uint32_t left_start, + const void *_Nonnull object, const Sort_Funcs *_Nonnull funcs) { uint32_t li = 0; uint32_t ri = 0; @@ -67,10 +62,7 @@ static void merge_sort_merge_back( } /** Function to merge the two haves `arr[left_start..mid]` and `arr[mid+1..right_end]` of array `arr[]`. */ -non_null() -static void merge_sort_merge( - void *arr, uint32_t left_start, uint32_t mid, uint32_t right_end, void *tmp, - const void *object, const Sort_Funcs *funcs) +static void merge_sort_merge(void *_Nonnull arr, uint32_t left_start, uint32_t mid, uint32_t right_end, void *_Nonnull tmp, const void *_Nonnull object, const Sort_Funcs *_Nonnull funcs) { const uint32_t l_arr_size = mid - left_start + 1; const uint32_t r_arr_size = right_end - mid; @@ -96,8 +88,7 @@ static void merge_sort_merge( merge_sort_merge_back(arr, l_arr, l_arr_size, r_arr, r_arr_size, left_start, object, funcs); } -non_null() -static void insertion_sort_step(void *arr, void *tmp, uint32_t i, const void *object, const Sort_Funcs *funcs) +static void insertion_sort_step(void *_Nonnull arr, void *_Nonnull tmp, uint32_t i, const void *_Nonnull object, const Sort_Funcs *_Nonnull funcs) { funcs->set_callback(tmp, 0, funcs->get_callback(arr, i)); uint32_t j = i; @@ -113,16 +104,14 @@ static void insertion_sort_step(void *arr, void *tmp, uint32_t i, const void *ob funcs->set_callback(arr, j, tmp); } -non_null() -static void insertion_sort_with_buf(void *arr, uint32_t arr_size, void *tmp, uint32_t tmp_size, const void *object, const Sort_Funcs *funcs) +static void insertion_sort_with_buf(void *_Nonnull arr, uint32_t arr_size, void *_Nonnull tmp, uint32_t tmp_size, const void *_Nonnull object, const Sort_Funcs *_Nonnull funcs) { for (uint32_t i = 1; i < arr_size; ++i) { insertion_sort_step(arr, tmp, i, object, funcs); } } -non_null() -static bool insertion_sort(void *arr, uint32_t arr_size, const void *object, const Sort_Funcs *funcs) +static bool insertion_sort(void *_Nonnull arr, uint32_t arr_size, const void *_Nonnull object, const Sort_Funcs *_Nonnull funcs) { void *tmp = funcs->alloc_callback(object, 1); diff --git a/external/toxcore/c-toxcore/toxcore/sort.h b/external/toxcore/c-toxcore/toxcore/sort.h index b95ca8b..b5b244b 100644 --- a/external/toxcore/c-toxcore/toxcore/sort.h +++ b/external/toxcore/c-toxcore/toxcore/sort.h @@ -15,25 +15,25 @@ extern "C" { #endif /** @brief Compare elements with a less-than ordering: `a < b`. */ -typedef bool sort_less_cb(const void *object, const void *a, const void *b); +typedef bool sort_less_cb(const void *_Nonnull object, const void *_Nonnull a, const void *_Nonnull b); /** @brief Get element from array at index. */ -typedef const void *sort_get_cb(const void *arr, uint32_t index); +typedef const void *sort_get_cb(const void *_Nonnull arr, uint32_t index); /** @brief Set element in array at index to new value (perform copy). */ -typedef void sort_set_cb(void *arr, uint32_t index, const void *val); +typedef void sort_set_cb(void *_Nonnull arr, uint32_t index, const void *_Nonnull val); /** @brief Get a sub-array at an index of a given size (mutable pointer). * * Used to index in the temporary array allocated by `sort_alloc_cb` and get * a sub-array for working memory. */ -typedef void *sort_subarr_cb(void *arr, uint32_t index, uint32_t size); +typedef void *sort_subarr_cb(void *_Nonnull arr, uint32_t index, uint32_t size); /** @brief Allocate a new array of the element type. * * @param size The array size in elements of type T (not byte size). This value * is always exactly the input array size as passed to `merge_sort`. */ -typedef void *sort_alloc_cb(const void *object, uint32_t size); +typedef void *sort_alloc_cb(const void *_Nonnull object, uint32_t size); /** @brief Free the element type array. */ -typedef void sort_delete_cb(const void *object, void *arr, uint32_t size); +typedef void sort_delete_cb(const void *_Nonnull object, void *_Nonnull arr, uint32_t size); /** @brief Virtual function table for getting/setting elements in an array and * comparing them. @@ -46,12 +46,12 @@ typedef void sort_delete_cb(const void *object, void *arr, uint32_t size); * to mutate any state, but if necessary that can be changed in the future. */ typedef struct Sort_Funcs { - sort_less_cb *less_callback; - sort_get_cb *get_callback; - sort_set_cb *set_callback; - sort_subarr_cb *subarr_callback; - sort_alloc_cb *alloc_callback; - sort_delete_cb *delete_callback; + sort_less_cb *_Nonnull less_callback; + sort_get_cb *_Nonnull get_callback; + sort_set_cb *_Nonnull set_callback; + sort_subarr_cb *_Nonnull subarr_callback; + sort_alloc_cb *_Nonnull alloc_callback; + sort_delete_cb *_Nonnull delete_callback; } Sort_Funcs; /** @brief Non-recursive merge sort function to sort `arr[0...arr_size-1]`. @@ -82,8 +82,7 @@ typedef struct Sort_Funcs { * @param[in] object Comparator object. * @param[in] funcs Callback struct for elements of type T. */ -non_null() -bool merge_sort(void *arr, uint32_t arr_size, const void *object, const Sort_Funcs *funcs); +bool merge_sort(void *_Nonnull arr, uint32_t arr_size, const void *_Nonnull object, const Sort_Funcs *_Nonnull funcs); /** * @brief Merge sort like above but with a pre-allocated buffer. @@ -106,8 +105,7 @@ bool merge_sort(void *arr, uint32_t arr_size, const void *object, const Sort_Fun * @param[in] object Comparator object. * @param[in] funcs Callback struct for elements of type T. */ -non_null() -void merge_sort_with_buf(void *arr, uint32_t arr_size, void *tmp, uint32_t tmp_size, const void *object, const Sort_Funcs *funcs); +void merge_sort_with_buf(void *_Nonnull arr, uint32_t arr_size, void *_Nonnull tmp, uint32_t tmp_size, const void *_Nonnull object, const Sort_Funcs *_Nonnull funcs); #ifdef __cplusplus } /* extern "C" */ diff --git a/external/toxcore/c-toxcore/toxcore/state.c b/external/toxcore/c-toxcore/toxcore/state.c index 6835ca0..6afdde4 100644 --- a/external/toxcore/c-toxcore/toxcore/state.c +++ b/external/toxcore/c-toxcore/toxcore/state.c @@ -10,8 +10,8 @@ #include "logger.h" /** state load/save */ -int state_load(const Logger *log, state_load_cb *state_load_callback, void *outer, - const uint8_t *data, uint32_t length, uint16_t cookie_inner) +int state_load(const Logger *_Nonnull log, state_load_cb *_Nonnull state_load_callback, void *_Nonnull outer, + const uint8_t *_Nonnull data, uint32_t length, uint16_t cookie_inner) { if (state_load_callback == nullptr || data == nullptr) { LOGGER_ERROR(log, "state_load() called with invalid args."); @@ -70,7 +70,7 @@ int state_load(const Logger *log, state_load_cb *state_load_callback, void *oute return 0; } -uint8_t *state_write_section_header(uint8_t *data, uint16_t cookie_type, uint32_t len, uint32_t section_type) +uint8_t *_Nonnull state_write_section_header(uint8_t *_Nonnull data, uint16_t cookie_type, uint32_t len, uint32_t section_type) { host_to_lendian_bytes32(data, len); data += sizeof(uint32_t); @@ -93,7 +93,7 @@ uint16_t host_to_lendian16(uint16_t host) return lendian_to_host16(host); } -void host_to_lendian_bytes64(uint8_t *dest, uint64_t num) +void host_to_lendian_bytes64(uint8_t *_Nonnull dest, uint64_t num) { #ifdef WORDS_BIGENDIAN num = ((num << 8) & 0xFF00FF00FF00FF00) | ((num >> 8) & 0xFF00FF00FF00FF); @@ -103,7 +103,7 @@ void host_to_lendian_bytes64(uint8_t *dest, uint64_t num) memcpy(dest, &num, sizeof(uint64_t)); } -void lendian_bytes_to_host64(uint64_t *dest, const uint8_t *lendian) +void lendian_bytes_to_host64(uint64_t *_Nonnull dest, const uint8_t *_Nonnull lendian) { uint64_t d; memcpy(&d, lendian, sizeof(uint64_t)); @@ -115,7 +115,7 @@ void lendian_bytes_to_host64(uint64_t *dest, const uint8_t *lendian) *dest = d; } -void host_to_lendian_bytes32(uint8_t *dest, uint32_t num) +void host_to_lendian_bytes32(uint8_t *_Nonnull dest, uint32_t num) { #ifdef WORDS_BIGENDIAN num = ((num << 8) & 0xFF00FF00) | ((num >> 8) & 0xFF00FF); @@ -124,7 +124,7 @@ void host_to_lendian_bytes32(uint8_t *dest, uint32_t num) memcpy(dest, &num, sizeof(uint32_t)); } -void lendian_bytes_to_host32(uint32_t *dest, const uint8_t *lendian) +void lendian_bytes_to_host32(uint32_t *_Nonnull dest, const uint8_t *_Nonnull lendian) { uint32_t d; memcpy(&d, lendian, sizeof(uint32_t)); @@ -135,7 +135,7 @@ void lendian_bytes_to_host32(uint32_t *dest, const uint8_t *lendian) *dest = d; } -void host_to_lendian_bytes16(uint8_t *dest, uint16_t num) +void host_to_lendian_bytes16(uint8_t *_Nonnull dest, uint16_t num) { #ifdef WORDS_BIGENDIAN num = (num << 8) | (num >> 8); @@ -143,7 +143,7 @@ void host_to_lendian_bytes16(uint8_t *dest, uint16_t num) memcpy(dest, &num, sizeof(uint16_t)); } -void lendian_bytes_to_host16(uint16_t *dest, const uint8_t *lendian) +void lendian_bytes_to_host16(uint16_t *_Nonnull dest, const uint8_t *_Nonnull lendian) { uint16_t d; memcpy(&d, lendian, sizeof(uint16_t)); diff --git a/external/toxcore/c-toxcore/toxcore/state.h b/external/toxcore/c-toxcore/toxcore/state.h index ebe0c37..8ae9ab6 100644 --- a/external/toxcore/c-toxcore/toxcore/state.h +++ b/external/toxcore/c-toxcore/toxcore/state.h @@ -52,35 +52,26 @@ typedef enum State_Load_Status { STATE_LOAD_STATUS_END, } State_Load_Status; -typedef State_Load_Status state_load_cb(void *outer, const uint8_t *data, uint32_t length, uint16_t type); +typedef State_Load_Status state_load_cb(void *_Nonnull outer, const uint8_t *_Nonnull data, uint32_t length, uint16_t type); /** state load/save */ -non_null() -int state_load(const Logger *log, state_load_cb *state_load_callback, void *outer, - const uint8_t *data, uint32_t length, uint16_t cookie_inner); +int state_load(const Logger *_Nonnull log, state_load_cb *_Nonnull state_load_callback, void *_Nonnull outer, const uint8_t *_Nonnull data, uint32_t length, uint16_t cookie_inner); -non_null() -uint8_t *state_write_section_header(uint8_t *data, uint16_t cookie_type, uint32_t len, uint32_t section_type); +uint8_t *_Nonnull state_write_section_header(uint8_t *_Nonnull data, uint16_t cookie_type, uint32_t len, uint32_t section_type); // Utilities for state data serialisation. uint16_t lendian_to_host16(uint16_t lendian); uint16_t host_to_lendian16(uint16_t host); -non_null() -void host_to_lendian_bytes64(uint8_t *dest, uint64_t num); -non_null() -void lendian_bytes_to_host64(uint64_t *dest, const uint8_t *lendian); +void host_to_lendian_bytes64(uint8_t *_Nonnull dest, uint64_t num); +void lendian_bytes_to_host64(uint64_t *_Nonnull dest, const uint8_t *_Nonnull lendian); -non_null() -void host_to_lendian_bytes32(uint8_t *dest, uint32_t num); -non_null() -void lendian_bytes_to_host32(uint32_t *dest, const uint8_t *lendian); +void host_to_lendian_bytes32(uint8_t *_Nonnull dest, uint32_t num); +void lendian_bytes_to_host32(uint32_t *_Nonnull dest, const uint8_t *_Nonnull lendian); -non_null() -void host_to_lendian_bytes16(uint8_t *dest, uint16_t num); -non_null() -void lendian_bytes_to_host16(uint16_t *dest, const uint8_t *lendian); +void host_to_lendian_bytes16(uint8_t *_Nonnull dest, uint16_t num); +void lendian_bytes_to_host16(uint16_t *_Nonnull dest, const uint8_t *_Nonnull lendian); #ifdef __cplusplus } /* extern "C" */ diff --git a/external/toxcore/c-toxcore/toxcore/timed_auth.c b/external/toxcore/c-toxcore/toxcore/timed_auth.c index 45afe07..cfa05bd 100644 --- a/external/toxcore/c-toxcore/toxcore/timed_auth.c +++ b/external/toxcore/c-toxcore/toxcore/timed_auth.c @@ -10,9 +10,8 @@ #include "crypto_core.h" #include "mono_time.h" -non_null(1, 6) nullable(4) -static void create_timed_auth_to_hash(const Mono_Time *mono_time, uint16_t timeout, bool previous, const uint8_t *data, - uint16_t length, uint8_t *to_hash) +static void create_timed_auth_to_hash(const Mono_Time *_Nonnull mono_time, uint16_t timeout, bool previous, const uint8_t *_Nullable data, + uint16_t length, uint8_t *_Nonnull to_hash) { const uint64_t t = (mono_time_get(mono_time) / timeout) - (previous ? 1 : 0); memcpy(to_hash, &t, sizeof(t)); diff --git a/external/toxcore/c-toxcore/toxcore/timed_auth.h b/external/toxcore/c-toxcore/toxcore/timed_auth.h index ccef4b3..bd26a9e 100644 --- a/external/toxcore/c-toxcore/toxcore/timed_auth.h +++ b/external/toxcore/c-toxcore/toxcore/timed_auth.h @@ -16,10 +16,8 @@ * @param timed_auth Must be of size TIMED_AUTH_SIZE. */ -non_null(1, 3, 6) nullable(4) -void generate_timed_auth(const Mono_Time *mono_time, uint16_t timeout, const uint8_t *key, - const uint8_t *data, uint16_t length, uint8_t *timed_auth); - +void generate_timed_auth(const Mono_Time *_Nonnull mono_time, uint16_t timeout, const uint8_t *_Nonnull key, + const uint8_t *_Nullable data, uint16_t length, uint8_t *_Nonnull timed_auth); /** * @brief Check timed_auth. This succeeds if `timed_auth` was generated by * `generate_timed_auth` at most `timeout` seconds ago, and fails if at least @@ -30,7 +28,6 @@ void generate_timed_auth(const Mono_Time *mono_time, uint16_t timeout, const uin * @param timed_auth Must be of size TIMED_AUTH_SIZE. * @return true on success, false otherwise. */ -non_null(1, 3, 6) nullable(4) -bool check_timed_auth(const Mono_Time *mono_time, uint16_t timeout, const uint8_t *key, - const uint8_t *data, uint16_t length, const uint8_t *timed_auth); +bool check_timed_auth(const Mono_Time *_Nonnull mono_time, uint16_t timeout, const uint8_t *_Nonnull key, + const uint8_t *_Nullable data, uint16_t length, const uint8_t *_Nonnull timed_auth); #endif /* C_TOXCORE_TOXCORE_TIMED_AUTH_H */ diff --git a/external/toxcore/c-toxcore/toxcore/tox.c b/external/toxcore/c-toxcore/toxcore/tox.c index 8e1b439..c81741a 100644 --- a/external/toxcore/c-toxcore/toxcore/tox.c +++ b/external/toxcore/c-toxcore/toxcore/tox.c @@ -80,9 +80,8 @@ struct Tox_Userdata { }; static logger_cb tox_log_handler; -non_null(1, 3, 5, 6) nullable(7) -static void tox_log_handler(void *context, Logger_Level level, const char *file, uint32_t line, const char *func, - const char *message, void *userdata) +static void tox_log_handler(void *_Nullable context, Logger_Level level, const char *_Nonnull file, uint32_t line, const char *_Nonnull func, + const char *_Nonnull message, void *_Nullable userdata) { Tox *tox = (Tox *)context; assert(tox != nullptr); @@ -93,11 +92,9 @@ static void tox_log_handler(void *context, Logger_Level level, const char *file, } static m_self_connection_status_cb tox_self_connection_status_handler; -non_null(1) nullable(3) -static void tox_self_connection_status_handler(Messenger *m, Onion_Connection_Status connection_status, void *user_data) +static void tox_self_connection_status_handler(Messenger *_Nonnull m, Onion_Connection_Status connection_status, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->self_connection_status_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->self_connection_status_callback(tox_data->tox, (Tox_Connection)connection_status, tox_data->user_data); @@ -106,12 +103,10 @@ static void tox_self_connection_status_handler(Messenger *m, Onion_Connection_St } static m_friend_name_cb tox_friend_name_handler; -non_null(1, 3) nullable(5) -static void tox_friend_name_handler(Messenger *m, uint32_t friend_number, const uint8_t *name, size_t length, - void *user_data) +static void tox_friend_name_handler(Messenger *_Nonnull m, uint32_t friend_number, const uint8_t *_Nonnull name, size_t length, + void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->friend_name_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->friend_name_callback(tox_data->tox, friend_number, name, length, tox_data->user_data); @@ -120,12 +115,10 @@ static void tox_friend_name_handler(Messenger *m, uint32_t friend_number, const } static m_friend_status_message_cb tox_friend_status_message_handler; -non_null(1, 3) nullable(5) -static void tox_friend_status_message_handler(Messenger *m, uint32_t friend_number, const uint8_t *message, - size_t length, void *user_data) +static void tox_friend_status_message_handler(Messenger *_Nonnull m, uint32_t friend_number, const uint8_t *_Nonnull message, + size_t length, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->friend_status_message_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->friend_status_message_callback(tox_data->tox, friend_number, message, length, tox_data->user_data); @@ -134,11 +127,9 @@ static void tox_friend_status_message_handler(Messenger *m, uint32_t friend_numb } static m_friend_status_cb tox_friend_status_handler; -non_null(1) nullable(4) -static void tox_friend_status_handler(Messenger *m, uint32_t friend_number, unsigned int status, void *user_data) +static void tox_friend_status_handler(Messenger *_Nonnull m, uint32_t friend_number, unsigned int status, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->friend_status_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->friend_status_callback(tox_data->tox, friend_number, (Tox_User_Status)status, tox_data->user_data); @@ -147,12 +138,10 @@ static void tox_friend_status_handler(Messenger *m, uint32_t friend_number, unsi } static m_friend_connection_status_cb tox_friend_connection_status_handler; -non_null(1) nullable(4) -static void tox_friend_connection_status_handler(Messenger *m, uint32_t friend_number, unsigned int connection_status, - void *user_data) +static void tox_friend_connection_status_handler(Messenger *_Nonnull m, uint32_t friend_number, unsigned int connection_status, + void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->friend_connection_status_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->friend_connection_status_callback(tox_data->tox, friend_number, (Tox_Connection)connection_status, @@ -162,11 +151,9 @@ static void tox_friend_connection_status_handler(Messenger *m, uint32_t friend_n } static m_friend_typing_cb tox_friend_typing_handler; -non_null(1) nullable(4) -static void tox_friend_typing_handler(Messenger *m, uint32_t friend_number, bool is_typing, void *user_data) +static void tox_friend_typing_handler(Messenger *_Nonnull m, uint32_t friend_number, bool is_typing, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->friend_typing_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->friend_typing_callback(tox_data->tox, friend_number, is_typing, tox_data->user_data); @@ -175,11 +162,9 @@ static void tox_friend_typing_handler(Messenger *m, uint32_t friend_number, bool } static m_friend_read_receipt_cb tox_friend_read_receipt_handler; -non_null(1) nullable(4) -static void tox_friend_read_receipt_handler(Messenger *m, uint32_t friend_number, uint32_t message_id, void *user_data) +static void tox_friend_read_receipt_handler(Messenger *_Nonnull m, uint32_t friend_number, uint32_t message_id, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->friend_read_receipt_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->friend_read_receipt_callback(tox_data->tox, friend_number, message_id, tox_data->user_data); @@ -188,12 +173,10 @@ static void tox_friend_read_receipt_handler(Messenger *m, uint32_t friend_number } static m_friend_request_cb tox_friend_request_handler; -non_null(1, 2, 3) nullable(5) -static void tox_friend_request_handler(Messenger *m, const uint8_t public_key[TOX_PUBLIC_KEY_SIZE], const uint8_t *message, size_t length, - void *user_data) +static void tox_friend_request_handler(Messenger *_Nonnull m, const uint8_t public_key[TOX_PUBLIC_KEY_SIZE], const uint8_t *_Nonnull message, size_t length, + void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->friend_request_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->friend_request_callback(tox_data->tox, public_key, message, length, tox_data->user_data); @@ -202,12 +185,10 @@ static void tox_friend_request_handler(Messenger *m, const uint8_t public_key[TO } static m_friend_message_cb tox_friend_message_handler; -non_null(1, 4) nullable(6) -static void tox_friend_message_handler(Messenger *m, uint32_t friend_number, unsigned int message_type, - const uint8_t *message, size_t length, void *user_data) +static void tox_friend_message_handler(Messenger *_Nonnull m, uint32_t friend_number, unsigned int message_type, + const uint8_t *_Nonnull message, size_t length, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->friend_message_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->friend_message_callback(tox_data->tox, friend_number, (Tox_Message_Type)message_type, message, length, @@ -217,12 +198,10 @@ static void tox_friend_message_handler(Messenger *m, uint32_t friend_number, uns } static m_file_recv_control_cb tox_file_recv_control_handler; -non_null(1) nullable(5) -static void tox_file_recv_control_handler(Messenger *m, uint32_t friend_number, uint32_t file_number, - unsigned int control, void *user_data) +static void tox_file_recv_control_handler(Messenger *_Nonnull m, uint32_t friend_number, uint32_t file_number, + unsigned int control, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->file_recv_control_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->file_recv_control_callback(tox_data->tox, friend_number, file_number, (Tox_File_Control)control, @@ -232,12 +211,10 @@ static void tox_file_recv_control_handler(Messenger *m, uint32_t friend_number, } static m_file_chunk_request_cb tox_file_chunk_request_handler; -non_null(1) nullable(6) -static void tox_file_chunk_request_handler(Messenger *m, uint32_t friend_number, uint32_t file_number, - uint64_t position, size_t length, void *user_data) +static void tox_file_chunk_request_handler(Messenger *_Nonnull m, uint32_t friend_number, uint32_t file_number, + uint64_t position, size_t length, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->file_chunk_request_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->file_chunk_request_callback(tox_data->tox, friend_number, file_number, position, length, @@ -247,12 +224,10 @@ static void tox_file_chunk_request_handler(Messenger *m, uint32_t friend_number, } static m_file_recv_cb tox_file_recv_handler; -non_null(1, 6) nullable(8) -static void tox_file_recv_handler(Messenger *m, uint32_t friend_number, uint32_t file_number, uint32_t kind, - uint64_t file_size, const uint8_t *filename, size_t filename_length, void *user_data) +static void tox_file_recv_handler(Messenger *_Nonnull m, uint32_t friend_number, uint32_t file_number, uint32_t kind, + uint64_t file_size, const uint8_t *_Nonnull filename, size_t filename_length, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->file_recv_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->file_recv_callback(tox_data->tox, friend_number, file_number, kind, file_size, filename, filename_length, @@ -262,12 +237,10 @@ static void tox_file_recv_handler(Messenger *m, uint32_t friend_number, uint32_t } static m_file_recv_chunk_cb tox_file_recv_chunk_handler; -non_null(1, 5) nullable(7) -static void tox_file_recv_chunk_handler(Messenger *m, uint32_t friend_number, uint32_t file_number, uint64_t position, - const uint8_t *data, size_t length, void *user_data) +static void tox_file_recv_chunk_handler(Messenger *_Nonnull m, uint32_t friend_number, uint32_t file_number, uint64_t position, + const uint8_t *_Nullable data, size_t length, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->file_recv_chunk_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->file_recv_chunk_callback(tox_data->tox, friend_number, file_number, position, data, length, @@ -277,12 +250,10 @@ static void tox_file_recv_chunk_handler(Messenger *m, uint32_t friend_number, ui } static g_conference_invite_cb tox_conference_invite_handler; -non_null(1, 4) nullable(6) -static void tox_conference_invite_handler(Messenger *m, uint32_t friend_number, int type, const uint8_t *cookie, - size_t length, void *user_data) +static void tox_conference_invite_handler(Messenger *_Nonnull m, uint32_t friend_number, int type, const uint8_t *_Nonnull cookie, + size_t length, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->conference_invite_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->conference_invite_callback(tox_data->tox, friend_number, (Tox_Conference_Type)type, cookie, length, @@ -292,11 +263,9 @@ static void tox_conference_invite_handler(Messenger *m, uint32_t friend_number, } static g_conference_connected_cb tox_conference_connected_handler; -non_null(1) nullable(3) -static void tox_conference_connected_handler(Messenger *m, uint32_t conference_number, void *user_data) +static void tox_conference_connected_handler(Messenger *_Nonnull m, uint32_t conference_number, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->conference_connected_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->conference_connected_callback(tox_data->tox, conference_number, tox_data->user_data); @@ -305,12 +274,10 @@ static void tox_conference_connected_handler(Messenger *m, uint32_t conference_n } static g_conference_message_cb tox_conference_message_handler; -non_null(1, 5) nullable(7) -static void tox_conference_message_handler(Messenger *m, uint32_t conference_number, uint32_t peer_number, int type, - const uint8_t *message, size_t length, void *user_data) +static void tox_conference_message_handler(Messenger *_Nonnull m, uint32_t conference_number, uint32_t peer_number, int type, + const uint8_t *_Nonnull message, size_t length, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->conference_message_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->conference_message_callback(tox_data->tox, conference_number, peer_number, (Tox_Message_Type)type, @@ -320,12 +287,10 @@ static void tox_conference_message_handler(Messenger *m, uint32_t conference_num } static title_cb tox_conference_title_handler; -non_null(1, 4) nullable(6) -static void tox_conference_title_handler(Messenger *m, uint32_t conference_number, uint32_t peer_number, - const uint8_t *title, size_t length, void *user_data) +static void tox_conference_title_handler(Messenger *_Nonnull m, uint32_t conference_number, uint32_t peer_number, + const uint8_t *_Nonnull title, size_t length, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->conference_title_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->conference_title_callback(tox_data->tox, conference_number, peer_number, title, length, @@ -335,12 +300,10 @@ static void tox_conference_title_handler(Messenger *m, uint32_t conference_numbe } static peer_name_cb tox_conference_peer_name_handler; -non_null(1, 4) nullable(6) -static void tox_conference_peer_name_handler(Messenger *m, uint32_t conference_number, uint32_t peer_number, - const uint8_t *name, size_t length, void *user_data) +static void tox_conference_peer_name_handler(Messenger *_Nonnull m, uint32_t conference_number, uint32_t peer_number, + const uint8_t *_Nonnull name, size_t length, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->conference_peer_name_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->conference_peer_name_callback(tox_data->tox, conference_number, peer_number, name, length, @@ -350,11 +313,9 @@ static void tox_conference_peer_name_handler(Messenger *m, uint32_t conference_n } static peer_list_changed_cb tox_conference_peer_list_changed_handler; -non_null(1) nullable(3) -static void tox_conference_peer_list_changed_handler(Messenger *m, uint32_t conference_number, void *user_data) +static void tox_conference_peer_list_changed_handler(Messenger *_Nonnull m, uint32_t conference_number, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->conference_peer_list_changed_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->conference_peer_list_changed_callback(tox_data->tox, conference_number, tox_data->user_data); @@ -363,11 +324,9 @@ static void tox_conference_peer_list_changed_handler(Messenger *m, uint32_t conf } static dht_nodes_response_cb tox_dht_nodes_response_handler; -non_null(1, 2) nullable(3) -static void tox_dht_nodes_response_handler(const DHT *dht, const Node_format *node, void *user_data) +static void tox_dht_nodes_response_handler(const DHT *_Nonnull dht, const Node_format *_Nonnull node, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->dht_nodes_response_callback == nullptr) { return; } @@ -383,12 +342,10 @@ static void tox_dht_nodes_response_handler(const DHT *dht, const Node_format *no } static m_friend_lossy_packet_cb tox_friend_lossy_packet_handler; -non_null(1, 4) nullable(6) -static void tox_friend_lossy_packet_handler(Messenger *m, uint32_t friend_number, uint8_t packet_id, - const uint8_t *data, size_t length, void *user_data) +static void tox_friend_lossy_packet_handler(Messenger *_Nonnull m, uint32_t friend_number, uint8_t packet_id, + const uint8_t *_Nonnull data, size_t length, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - assert(data != nullptr); assert(length > 0); @@ -401,12 +358,10 @@ static void tox_friend_lossy_packet_handler(Messenger *m, uint32_t friend_number } static m_friend_lossless_packet_cb tox_friend_lossless_packet_handler; -non_null(1, 4) nullable(6) -static void tox_friend_lossless_packet_handler(Messenger *m, uint32_t friend_number, uint8_t packet_id, - const uint8_t *data, size_t length, void *user_data) +static void tox_friend_lossless_packet_handler(Messenger *_Nonnull m, uint32_t friend_number, uint8_t packet_id, + const uint8_t *_Nonnull data, size_t length, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - assert(data != nullptr); assert(length > 0); @@ -418,12 +373,10 @@ static void tox_friend_lossless_packet_handler(Messenger *m, uint32_t friend_num } } -non_null(1, 4) nullable(6) -static void tox_group_peer_name_handler(const Messenger *m, uint32_t group_number, GC_Peer_Id peer_id, - const uint8_t *name, size_t length, void *user_data) +static void tox_group_peer_name_handler(const Messenger *_Nonnull m, uint32_t group_number, GC_Peer_Id peer_id, + const uint8_t *_Nonnull name, size_t length, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->group_peer_name_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->group_peer_name_callback(tox_data->tox, group_number, gc_peer_id_to_int(peer_id), name, length, tox_data->user_data); @@ -431,12 +384,10 @@ static void tox_group_peer_name_handler(const Messenger *m, uint32_t group_numbe } } -non_null(1) nullable(5) -static void tox_group_peer_status_handler(const Messenger *m, uint32_t group_number, GC_Peer_Id peer_id, - unsigned int status, void *user_data) +static void tox_group_peer_status_handler(const Messenger *_Nonnull m, uint32_t group_number, GC_Peer_Id peer_id, + unsigned int status, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->group_peer_status_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->group_peer_status_callback(tox_data->tox, group_number, gc_peer_id_to_int(peer_id), (Tox_User_Status)status, @@ -445,12 +396,10 @@ static void tox_group_peer_status_handler(const Messenger *m, uint32_t group_num } } -non_null(1, 4) nullable(6) -static void tox_group_topic_handler(const Messenger *m, uint32_t group_number, GC_Peer_Id peer_id, const uint8_t *topic, - size_t length, void *user_data) +static void tox_group_topic_handler(const Messenger *_Nonnull m, uint32_t group_number, GC_Peer_Id peer_id, const uint8_t *_Nonnull topic, + size_t length, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->group_topic_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->group_topic_callback(tox_data->tox, group_number, gc_peer_id_to_int(peer_id), topic, length, tox_data->user_data); @@ -458,12 +407,10 @@ static void tox_group_topic_handler(const Messenger *m, uint32_t group_number, G } } -non_null(1) nullable(4) -static void tox_group_topic_lock_handler(const Messenger *m, uint32_t group_number, unsigned int topic_lock, - void *user_data) +static void tox_group_topic_lock_handler(const Messenger *_Nonnull m, uint32_t group_number, unsigned int topic_lock, + void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->group_topic_lock_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->group_topic_lock_callback(tox_data->tox, group_number, (Tox_Group_Topic_Lock)topic_lock, @@ -472,12 +419,10 @@ static void tox_group_topic_lock_handler(const Messenger *m, uint32_t group_numb } } -non_null(1) nullable(4) -static void tox_group_voice_state_handler(const Messenger *m, uint32_t group_number, unsigned int voice_state, - void *user_data) +static void tox_group_voice_state_handler(const Messenger *_Nonnull m, uint32_t group_number, unsigned int voice_state, + void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->group_voice_state_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->group_voice_state_callback(tox_data->tox, group_number, (Tox_Group_Voice_State)voice_state, @@ -486,12 +431,10 @@ static void tox_group_voice_state_handler(const Messenger *m, uint32_t group_num } } -non_null(1) nullable(4) -static void tox_group_peer_limit_handler(const Messenger *m, uint32_t group_number, uint32_t peer_limit, - void *user_data) +static void tox_group_peer_limit_handler(const Messenger *_Nonnull m, uint32_t group_number, uint32_t peer_limit, + void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->group_peer_limit_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->group_peer_limit_callback(tox_data->tox, group_number, peer_limit, tox_data->user_data); @@ -499,12 +442,10 @@ static void tox_group_peer_limit_handler(const Messenger *m, uint32_t group_numb } } -non_null(1) nullable(4) -static void tox_group_privacy_state_handler(const Messenger *m, uint32_t group_number, unsigned int privacy_state, - void *user_data) +static void tox_group_privacy_state_handler(const Messenger *_Nonnull m, uint32_t group_number, unsigned int privacy_state, + void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->group_privacy_state_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->group_privacy_state_callback(tox_data->tox, group_number, (Tox_Group_Privacy_State)privacy_state, @@ -513,12 +454,10 @@ static void tox_group_privacy_state_handler(const Messenger *m, uint32_t group_n } } -non_null(1) nullable(3, 5) -static void tox_group_password_handler(const Messenger *m, uint32_t group_number, const uint8_t *password, - size_t length, void *user_data) +static void tox_group_password_handler(const Messenger *_Nonnull m, uint32_t group_number, const uint8_t *_Nullable password, + size_t length, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->group_password_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->group_password_callback(tox_data->tox, group_number, password, length, tox_data->user_data); @@ -526,12 +465,10 @@ static void tox_group_password_handler(const Messenger *m, uint32_t group_number } } -non_null(1, 5) nullable(8) -static void tox_group_message_handler(const Messenger *m, uint32_t group_number, GC_Peer_Id peer_id, unsigned int type, - const uint8_t *message, size_t length, Tox_Group_Message_Id message_id, void *user_data) +static void tox_group_message_handler(const Messenger *_Nonnull m, uint32_t group_number, GC_Peer_Id peer_id, unsigned int type, + const uint8_t *_Nonnull message, size_t length, Tox_Group_Message_Id message_id, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->group_message_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->group_message_callback(tox_data->tox, group_number, gc_peer_id_to_int(peer_id), (Tox_Message_Type)type, message, length, @@ -540,12 +477,10 @@ static void tox_group_message_handler(const Messenger *m, uint32_t group_number, } } -non_null(1, 5) nullable(8) -static void tox_group_private_message_handler(const Messenger *m, uint32_t group_number, GC_Peer_Id peer_id, - unsigned int type, const uint8_t *message, size_t length, Tox_Group_Message_Id message_id, void *user_data) +static void tox_group_private_message_handler(const Messenger *_Nonnull m, uint32_t group_number, GC_Peer_Id peer_id, + unsigned int type, const uint8_t *_Nonnull message, size_t length, Tox_Group_Message_Id message_id, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->group_private_message_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->group_private_message_callback(tox_data->tox, group_number, gc_peer_id_to_int(peer_id), (Tox_Message_Type)type, message, @@ -554,12 +489,10 @@ static void tox_group_private_message_handler(const Messenger *m, uint32_t group } } -non_null(1, 4) nullable(6) -static void tox_group_custom_packet_handler(const Messenger *m, uint32_t group_number, GC_Peer_Id peer_id, - const uint8_t *data, size_t length, void *user_data) +static void tox_group_custom_packet_handler(const Messenger *_Nonnull m, uint32_t group_number, GC_Peer_Id peer_id, + const uint8_t *_Nonnull data, size_t length, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->group_custom_packet_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->group_custom_packet_callback(tox_data->tox, group_number, gc_peer_id_to_int(peer_id), data, length, tox_data->user_data); @@ -567,12 +500,10 @@ static void tox_group_custom_packet_handler(const Messenger *m, uint32_t group_n } } -non_null(1, 4) nullable(6) -static void tox_group_custom_private_packet_handler(const Messenger *m, uint32_t group_number, GC_Peer_Id peer_id, - const uint8_t *data, size_t length, void *user_data) +static void tox_group_custom_private_packet_handler(const Messenger *_Nonnull m, uint32_t group_number, GC_Peer_Id peer_id, + const uint8_t *_Nonnull data, size_t length, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->group_custom_private_packet_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->group_custom_private_packet_callback(tox_data->tox, group_number, gc_peer_id_to_int(peer_id), data, length, @@ -581,12 +512,10 @@ static void tox_group_custom_private_packet_handler(const Messenger *m, uint32_t } } -non_null(1, 3, 5) nullable(7) -static void tox_group_invite_handler(const Messenger *m, uint32_t friend_number, const uint8_t *invite_data, - size_t length, const uint8_t *group_name, size_t group_name_length, void *user_data) +static void tox_group_invite_handler(const Messenger *_Nonnull m, uint32_t friend_number, const uint8_t *_Nonnull invite_data, + size_t length, const uint8_t *_Nonnull group_name, size_t group_name_length, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->group_invite_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->group_invite_callback(tox_data->tox, friend_number, invite_data, length, group_name, group_name_length, @@ -595,11 +524,9 @@ static void tox_group_invite_handler(const Messenger *m, uint32_t friend_number, } } -non_null(1) nullable(4) -static void tox_group_peer_join_handler(const Messenger *m, uint32_t group_number, GC_Peer_Id peer_id, void *user_data) +static void tox_group_peer_join_handler(const Messenger *_Nonnull m, uint32_t group_number, GC_Peer_Id peer_id, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->group_peer_join_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->group_peer_join_callback(tox_data->tox, group_number, gc_peer_id_to_int(peer_id), tox_data->user_data); @@ -607,13 +534,11 @@ static void tox_group_peer_join_handler(const Messenger *m, uint32_t group_numbe } } -non_null(1, 5) nullable(7, 9) -static void tox_group_peer_exit_handler(const Messenger *m, uint32_t group_number, GC_Peer_Id peer_id, - unsigned int exit_type, const uint8_t *name, size_t name_length, - const uint8_t *part_message, size_t length, void *user_data) +static void tox_group_peer_exit_handler(const Messenger *_Nonnull m, uint32_t group_number, GC_Peer_Id peer_id, + unsigned int exit_type, const uint8_t *_Nonnull name, size_t name_length, + const uint8_t *_Nullable part_message, size_t length, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->group_peer_exit_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->group_peer_exit_callback(tox_data->tox, group_number, gc_peer_id_to_int(peer_id), @@ -623,11 +548,9 @@ static void tox_group_peer_exit_handler(const Messenger *m, uint32_t group_numbe } } -non_null(1) nullable(3) -static void tox_group_self_join_handler(const Messenger *m, uint32_t group_number, void *user_data) +static void tox_group_self_join_handler(const Messenger *_Nonnull m, uint32_t group_number, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->group_self_join_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->group_self_join_callback(tox_data->tox, group_number, tox_data->user_data); @@ -635,12 +558,10 @@ static void tox_group_self_join_handler(const Messenger *m, uint32_t group_numbe } } -non_null(1) nullable(4) -static void tox_group_join_fail_handler(const Messenger *m, uint32_t group_number, unsigned int fail_type, - void *user_data) +static void tox_group_join_fail_handler(const Messenger *_Nonnull m, uint32_t group_number, unsigned int fail_type, + void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->group_join_fail_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->group_join_fail_callback(tox_data->tox, group_number, (Tox_Group_Join_Fail)fail_type, @@ -649,12 +570,10 @@ static void tox_group_join_fail_handler(const Messenger *m, uint32_t group_numbe } } -non_null(1) nullable(6) -static void tox_group_moderation_handler(const Messenger *m, uint32_t group_number, GC_Peer_Id source_peer_number, - GC_Peer_Id target_peer_number, unsigned int mod_type, void *user_data) +static void tox_group_moderation_handler(const Messenger *_Nonnull m, uint32_t group_number, GC_Peer_Id source_peer_number, + GC_Peer_Id target_peer_number, unsigned int mod_type, void *_Nullable user_data) { struct Tox_Userdata *tox_data = (struct Tox_Userdata *)user_data; - if (tox_data->tox->group_moderation_callback != nullptr) { tox_unlock(tox_data->tox); tox_data->tox->group_moderation_callback(tox_data->tox, group_number, @@ -669,8 +588,7 @@ bool tox_version_is_compatible(uint32_t major, uint32_t minor, uint32_t patch) return TOX_VERSION_IS_API_COMPATIBLE(major, minor, patch); } -non_null() -static State_Load_Status state_load_callback(void *outer, const uint8_t *data, uint32_t length, uint16_t type) +static State_Load_Status state_load_callback(void *_Nonnull outer, const uint8_t *_Nonnull data, uint32_t length, uint16_t type) { const Tox *tox = (const Tox *)outer; State_Load_Status status = STATE_LOAD_STATUS_CONTINUE; @@ -695,8 +613,7 @@ static State_Load_Status state_load_callback(void *outer, const uint8_t *data, u } /** Load tox from data of size length. */ -non_null() -static int tox_load(Tox *tox, const uint8_t *data, uint32_t length) +static int tox_load(Tox *_Nonnull tox, const uint8_t *_Nonnull data, uint32_t length) { uint32_t data32[2]; const uint32_t cookie_len = sizeof(data32); @@ -716,11 +633,9 @@ static int tox_load(Tox *tox, const uint8_t *data, uint32_t length) length - cookie_len, STATE_COOKIE_TYPE); } -nullable(1, 2, 3) -static Tox *tox_new_system(const struct Tox_Options *options, Tox_Err_New *error, const Tox_System *sys) +static Tox *tox_new_system(const struct Tox_Options *_Nullable options, Tox_Err_New *_Nullable error, const Tox_System *_Nullable sys) { struct Tox_Options *default_options = nullptr; - if (options == nullptr) { Tox_Err_Options_New err; default_options = tox_options_new(&err); @@ -1084,8 +999,7 @@ static uint32_t end_size(void) return 2 * sizeof(uint32_t); } -non_null() -static void end_save(uint8_t *data) +static void end_save(uint8_t *_Nonnull data) { state_write_section_header(data, STATE_COOKIE_TYPE, 0, STATE_TYPE_END); } @@ -1129,9 +1043,8 @@ void tox_get_savedata(const Tox *tox, uint8_t *savedata) tox_unlock(tox); } -non_null(5) nullable(1, 2, 4, 6) -static int32_t resolve_bootstrap_node(Tox *tox, const char *host, uint16_t port, const uint8_t public_key[TOX_PUBLIC_KEY_SIZE], - IP_Port **root, Tox_Err_Bootstrap *error) +static int32_t resolve_bootstrap_node(Tox *_Nullable tox, const char *_Nullable host, uint16_t port, const uint8_t public_key[TOX_PUBLIC_KEY_SIZE], + IP_Port *_Nonnull *root, Tox_Err_Bootstrap *_Nullable error) { assert(tox != nullptr); assert(root != nullptr); @@ -1265,7 +1178,7 @@ Tox_Connection tox_self_get_connection_status(const Tox *tox) return TOX_CONNECTION_UDP; } - LOGGER_FATAL(tox->m->log, "impossible return value: %d", ret); + LOGGER_FATAL(tox->m->log, "impossible return value: %u", ret); return TOX_CONNECTION_NONE; } @@ -1456,8 +1369,7 @@ Tox_User_Status tox_self_get_status(const Tox *tox) return (Tox_User_Status)status; } -non_null(1) nullable(3) -static void set_friend_error(const Logger *log, int32_t ret, Tox_Err_Friend_Add *error) +static void set_friend_error(const Logger *_Nonnull log, int32_t ret, Tox_Err_Friend_Add *_Nullable error) { switch (ret) { case FAERR_TOOLONG: { @@ -1833,8 +1745,7 @@ bool tox_self_set_typing(Tox *tox, uint32_t friend_number, bool typing, Tox_Err_ return true; } -non_null(1) nullable(3) -static void set_message_error(const Logger *log, int ret, Tox_Err_Friend_Send_Message *error) +static void set_message_error(const Logger *_Nonnull log, int ret, Tox_Err_Friend_Send_Message *_Nullable error) { switch (ret) { case 0: { @@ -2822,8 +2733,7 @@ uint32_t tox_conference_by_uid(const Tox *tox, const uint8_t uid[TOX_CONFERENCE_ return res; } -nullable(2) -static void set_custom_packet_error(int ret, Tox_Err_Friend_Custom_Packet *error) +static void set_custom_packet_error(int ret, Tox_Err_Friend_Custom_Packet *_Nullable error) { switch (ret) { case 0: { diff --git a/external/toxcore/c-toxcore/toxcore/tox_dispatch.c b/external/toxcore/c-toxcore/toxcore/tox_dispatch.c index c793f6b..04e0d93 100644 --- a/external/toxcore/c-toxcore/toxcore/tox_dispatch.c +++ b/external/toxcore/c-toxcore/toxcore/tox_dispatch.c @@ -285,8 +285,7 @@ void tox_events_callback_dht_nodes_response( dispatch->dht_nodes_response_callback = callback; } -non_null(1, 2) nullable(3) -static void tox_dispatch_invoke_event(const Tox_Dispatch *dispatch, const Tox_Event *event, void *user_data) +static void tox_dispatch_invoke_event(const Tox_Dispatch *_Nonnull dispatch, const Tox_Event *_Nonnull event, void *_Nullable user_data) { switch (event->type) { case TOX_EVENT_CONFERENCE_CONNECTED: { diff --git a/external/toxcore/c-toxcore/toxcore/tox_event.c b/external/toxcore/c-toxcore/toxcore/tox_event.c index 0a08b62..faa7be4 100644 --- a/external/toxcore/c-toxcore/toxcore/tox_event.c +++ b/external/toxcore/c-toxcore/toxcore/tox_event.c @@ -578,14 +578,12 @@ void tox_event_destruct(Tox_Event *event, const Memory *mem) event->data.value = nullptr; } -non_null() -static bool tox_event_type_pack(Tox_Event_Type type, Bin_Pack *bp) +static bool tox_event_type_pack(Tox_Event_Type type, Bin_Pack *_Nonnull bp) { return bin_pack_u32(bp, (uint32_t)type); } -non_null() -static bool tox_event_data_pack(Tox_Event_Type type, const Tox_Event_Data *data, Bin_Pack *bp) +static bool tox_event_data_pack(Tox_Event_Type type, const Tox_Event_Data *_Nonnull data, Bin_Pack *_Nonnull bp) { switch (type) { case TOX_EVENT_CONFERENCE_CONNECTED: @@ -724,8 +722,7 @@ bool tox_event_pack(const Tox_Event *event, Bin_Pack *bp) && tox_event_data_pack(event->type, &event->data, bp); } -non_null() -static bool tox_event_type_from_int(uint32_t value, Tox_Event_Type *out_enum) +static bool tox_event_type_from_int(uint32_t value, Tox_Event_Type *_Nonnull out_enum) { switch (value) { case TOX_EVENT_SELF_CONNECTION_STATUS: { @@ -940,16 +937,14 @@ static bool tox_event_type_from_int(uint32_t value, Tox_Event_Type *out_enum) } } -non_null() -static bool tox_event_type_unpack(Tox_Event_Type *val, Bin_Unpack *bu) +static bool tox_event_type_unpack(Tox_Event_Type *_Nonnull val, Bin_Unpack *_Nonnull bu) { uint32_t u32; return bin_unpack_u32(bu, &u32) && tox_event_type_from_int(u32, val); } -non_null() -static bool tox_event_data_unpack(Tox_Event_Type type, Tox_Event_Data *data, Bin_Unpack *bu, const Memory *mem) +static bool tox_event_data_unpack(Tox_Event_Type type, Tox_Event_Data *_Nonnull data, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem) { switch (type) { case TOX_EVENT_CONFERENCE_CONNECTED: diff --git a/external/toxcore/c-toxcore/toxcore/tox_event.h b/external/toxcore/c-toxcore/toxcore/tox_event.h index eebc233..ebbf7b3 100644 --- a/external/toxcore/c-toxcore/toxcore/tox_event.h +++ b/external/toxcore/c-toxcore/toxcore/tox_event.h @@ -20,48 +20,48 @@ typedef union Tox_Event_Data { /** * Opaque pointer just to check whether any value is set. */ - void *value; + void *_Nullable value; - Tox_Event_Conference_Connected *conference_connected; - Tox_Event_Conference_Invite *conference_invite; - Tox_Event_Conference_Message *conference_message; - Tox_Event_Conference_Peer_List_Changed *conference_peer_list_changed; - Tox_Event_Conference_Peer_Name *conference_peer_name; - Tox_Event_Conference_Title *conference_title; - Tox_Event_File_Chunk_Request *file_chunk_request; - Tox_Event_File_Recv *file_recv; - Tox_Event_File_Recv_Chunk *file_recv_chunk; - Tox_Event_File_Recv_Control *file_recv_control; - Tox_Event_Friend_Connection_Status *friend_connection_status; - Tox_Event_Friend_Lossless_Packet *friend_lossless_packet; - Tox_Event_Friend_Lossy_Packet *friend_lossy_packet; - Tox_Event_Friend_Message *friend_message; - Tox_Event_Friend_Name *friend_name; - Tox_Event_Friend_Read_Receipt *friend_read_receipt; - Tox_Event_Friend_Request *friend_request; - Tox_Event_Friend_Status *friend_status; - Tox_Event_Friend_Status_Message *friend_status_message; - Tox_Event_Friend_Typing *friend_typing; - Tox_Event_Self_Connection_Status *self_connection_status; - Tox_Event_Group_Peer_Name *group_peer_name; - Tox_Event_Group_Peer_Status *group_peer_status; - Tox_Event_Group_Topic *group_topic; - Tox_Event_Group_Privacy_State *group_privacy_state; - Tox_Event_Group_Voice_State *group_voice_state; - Tox_Event_Group_Topic_Lock *group_topic_lock; - Tox_Event_Group_Peer_Limit *group_peer_limit; - Tox_Event_Group_Password *group_password; - Tox_Event_Group_Message *group_message; - Tox_Event_Group_Private_Message *group_private_message; - Tox_Event_Group_Custom_Packet *group_custom_packet; - Tox_Event_Group_Custom_Private_Packet *group_custom_private_packet; - Tox_Event_Group_Invite *group_invite; - Tox_Event_Group_Peer_Join *group_peer_join; - Tox_Event_Group_Peer_Exit *group_peer_exit; - Tox_Event_Group_Self_Join *group_self_join; - Tox_Event_Group_Join_Fail *group_join_fail; - Tox_Event_Group_Moderation *group_moderation; - Tox_Event_Dht_Nodes_Response *dht_nodes_response; + Tox_Event_Conference_Connected *_Nullable conference_connected; + Tox_Event_Conference_Invite *_Nullable conference_invite; + Tox_Event_Conference_Message *_Nullable conference_message; + Tox_Event_Conference_Peer_List_Changed *_Nullable conference_peer_list_changed; + Tox_Event_Conference_Peer_Name *_Nullable conference_peer_name; + Tox_Event_Conference_Title *_Nullable conference_title; + Tox_Event_File_Chunk_Request *_Nullable file_chunk_request; + Tox_Event_File_Recv *_Nullable file_recv; + Tox_Event_File_Recv_Chunk *_Nullable file_recv_chunk; + Tox_Event_File_Recv_Control *_Nullable file_recv_control; + Tox_Event_Friend_Connection_Status *_Nullable friend_connection_status; + Tox_Event_Friend_Lossless_Packet *_Nullable friend_lossless_packet; + Tox_Event_Friend_Lossy_Packet *_Nullable friend_lossy_packet; + Tox_Event_Friend_Message *_Nullable friend_message; + Tox_Event_Friend_Name *_Nullable friend_name; + Tox_Event_Friend_Read_Receipt *_Nullable friend_read_receipt; + Tox_Event_Friend_Request *_Nullable friend_request; + Tox_Event_Friend_Status *_Nullable friend_status; + Tox_Event_Friend_Status_Message *_Nullable friend_status_message; + Tox_Event_Friend_Typing *_Nullable friend_typing; + Tox_Event_Self_Connection_Status *_Nullable self_connection_status; + Tox_Event_Group_Peer_Name *_Nullable group_peer_name; + Tox_Event_Group_Peer_Status *_Nullable group_peer_status; + Tox_Event_Group_Topic *_Nullable group_topic; + Tox_Event_Group_Privacy_State *_Nullable group_privacy_state; + Tox_Event_Group_Voice_State *_Nullable group_voice_state; + Tox_Event_Group_Topic_Lock *_Nullable group_topic_lock; + Tox_Event_Group_Peer_Limit *_Nullable group_peer_limit; + Tox_Event_Group_Password *_Nullable group_password; + Tox_Event_Group_Message *_Nullable group_message; + Tox_Event_Group_Private_Message *_Nullable group_private_message; + Tox_Event_Group_Custom_Packet *_Nullable group_custom_packet; + Tox_Event_Group_Custom_Private_Packet *_Nullable group_custom_private_packet; + Tox_Event_Group_Invite *_Nullable group_invite; + Tox_Event_Group_Peer_Join *_Nullable group_peer_join; + Tox_Event_Group_Peer_Exit *_Nullable group_peer_exit; + Tox_Event_Group_Self_Join *_Nullable group_self_join; + Tox_Event_Group_Join_Fail *_Nullable group_join_fail; + Tox_Event_Group_Moderation *_Nullable group_moderation; + Tox_Event_Dht_Nodes_Response *_Nullable dht_nodes_response; } Tox_Event_Data; struct Tox_Event { @@ -72,186 +72,186 @@ struct Tox_Event { /** * Constructor. */ -non_null() bool tox_event_construct(Tox_Event *event, Tox_Event_Type type, const Memory *mem); +bool tox_event_construct(Tox_Event *_Nonnull event, Tox_Event_Type type, const Memory *_Nonnull mem); -non_null() Tox_Event_Conference_Connected *tox_event_conference_connected_new(const Memory *mem); -non_null() Tox_Event_Conference_Invite *tox_event_conference_invite_new(const Memory *mem); -non_null() Tox_Event_Conference_Message *tox_event_conference_message_new(const Memory *mem); -non_null() Tox_Event_Conference_Peer_List_Changed *tox_event_conference_peer_list_changed_new(const Memory *mem); -non_null() Tox_Event_Conference_Peer_Name *tox_event_conference_peer_name_new(const Memory *mem); -non_null() Tox_Event_Conference_Title *tox_event_conference_title_new(const Memory *mem); -non_null() Tox_Event_File_Chunk_Request *tox_event_file_chunk_request_new(const Memory *mem); -non_null() Tox_Event_File_Recv_Chunk *tox_event_file_recv_chunk_new(const Memory *mem); -non_null() Tox_Event_File_Recv_Control *tox_event_file_recv_control_new(const Memory *mem); -non_null() Tox_Event_File_Recv *tox_event_file_recv_new(const Memory *mem); -non_null() Tox_Event_Friend_Connection_Status *tox_event_friend_connection_status_new(const Memory *mem); -non_null() Tox_Event_Friend_Lossless_Packet *tox_event_friend_lossless_packet_new(const Memory *mem); -non_null() Tox_Event_Friend_Lossy_Packet *tox_event_friend_lossy_packet_new(const Memory *mem); -non_null() Tox_Event_Friend_Message *tox_event_friend_message_new(const Memory *mem); -non_null() Tox_Event_Friend_Name *tox_event_friend_name_new(const Memory *mem); -non_null() Tox_Event_Friend_Read_Receipt *tox_event_friend_read_receipt_new(const Memory *mem); -non_null() Tox_Event_Friend_Request *tox_event_friend_request_new(const Memory *mem); -non_null() Tox_Event_Friend_Status_Message *tox_event_friend_status_message_new(const Memory *mem); -non_null() Tox_Event_Friend_Status *tox_event_friend_status_new(const Memory *mem); -non_null() Tox_Event_Friend_Typing *tox_event_friend_typing_new(const Memory *mem); -non_null() Tox_Event_Self_Connection_Status *tox_event_self_connection_status_new(const Memory *mem); -non_null() Tox_Event_Group_Peer_Name *tox_event_group_peer_name_new(const Memory *mem); -non_null() Tox_Event_Group_Peer_Status *tox_event_group_peer_status_new(const Memory *mem); -non_null() Tox_Event_Group_Topic *tox_event_group_topic_new(const Memory *mem); -non_null() Tox_Event_Group_Privacy_State *tox_event_group_privacy_state_new(const Memory *mem); -non_null() Tox_Event_Group_Voice_State *tox_event_group_voice_state_new(const Memory *mem); -non_null() Tox_Event_Group_Topic_Lock *tox_event_group_topic_lock_new(const Memory *mem); -non_null() Tox_Event_Group_Peer_Limit *tox_event_group_peer_limit_new(const Memory *mem); -non_null() Tox_Event_Group_Password *tox_event_group_password_new(const Memory *mem); -non_null() Tox_Event_Group_Message *tox_event_group_message_new(const Memory *mem); -non_null() Tox_Event_Group_Private_Message *tox_event_group_private_message_new(const Memory *mem); -non_null() Tox_Event_Group_Custom_Packet *tox_event_group_custom_packet_new(const Memory *mem); -non_null() Tox_Event_Group_Custom_Private_Packet *tox_event_group_custom_private_packet_new(const Memory *mem); -non_null() Tox_Event_Group_Invite *tox_event_group_invite_new(const Memory *mem); -non_null() Tox_Event_Group_Peer_Join *tox_event_group_peer_join_new(const Memory *mem); -non_null() Tox_Event_Group_Peer_Exit *tox_event_group_peer_exit_new(const Memory *mem); -non_null() Tox_Event_Group_Self_Join *tox_event_group_self_join_new(const Memory *mem); -non_null() Tox_Event_Group_Join_Fail *tox_event_group_join_fail_new(const Memory *mem); -non_null() Tox_Event_Group_Moderation *tox_event_group_moderation_new(const Memory *mem); -non_null() Tox_Event_Dht_Nodes_Response *tox_event_dht_nodes_response_new(const Memory *mem); +Tox_Event_Conference_Connected *_Nullable tox_event_conference_connected_new(const Memory *_Nonnull mem); +Tox_Event_Conference_Invite *_Nullable tox_event_conference_invite_new(const Memory *_Nonnull mem); +Tox_Event_Conference_Message *_Nullable tox_event_conference_message_new(const Memory *_Nonnull mem); +Tox_Event_Conference_Peer_List_Changed *_Nullable tox_event_conference_peer_list_changed_new(const Memory *_Nonnull mem); +Tox_Event_Conference_Peer_Name *_Nullable tox_event_conference_peer_name_new(const Memory *_Nonnull mem); +Tox_Event_Conference_Title *_Nullable tox_event_conference_title_new(const Memory *_Nonnull mem); +Tox_Event_File_Chunk_Request *_Nullable tox_event_file_chunk_request_new(const Memory *_Nonnull mem); +Tox_Event_File_Recv_Chunk *_Nullable tox_event_file_recv_chunk_new(const Memory *_Nonnull mem); +Tox_Event_File_Recv_Control *_Nullable tox_event_file_recv_control_new(const Memory *_Nonnull mem); +Tox_Event_File_Recv *_Nullable tox_event_file_recv_new(const Memory *_Nonnull mem); +Tox_Event_Friend_Connection_Status *_Nullable tox_event_friend_connection_status_new(const Memory *_Nonnull mem); +Tox_Event_Friend_Lossless_Packet *_Nullable tox_event_friend_lossless_packet_new(const Memory *_Nonnull mem); +Tox_Event_Friend_Lossy_Packet *_Nullable tox_event_friend_lossy_packet_new(const Memory *_Nonnull mem); +Tox_Event_Friend_Message *_Nullable tox_event_friend_message_new(const Memory *_Nonnull mem); +Tox_Event_Friend_Name *_Nullable tox_event_friend_name_new(const Memory *_Nonnull mem); +Tox_Event_Friend_Read_Receipt *_Nullable tox_event_friend_read_receipt_new(const Memory *_Nonnull mem); +Tox_Event_Friend_Request *_Nullable tox_event_friend_request_new(const Memory *_Nonnull mem); +Tox_Event_Friend_Status_Message *_Nullable tox_event_friend_status_message_new(const Memory *_Nonnull mem); +Tox_Event_Friend_Status *_Nullable tox_event_friend_status_new(const Memory *_Nonnull mem); +Tox_Event_Friend_Typing *_Nullable tox_event_friend_typing_new(const Memory *_Nonnull mem); +Tox_Event_Self_Connection_Status *_Nullable tox_event_self_connection_status_new(const Memory *_Nonnull mem); +Tox_Event_Group_Peer_Name *_Nullable tox_event_group_peer_name_new(const Memory *_Nonnull mem); +Tox_Event_Group_Peer_Status *_Nullable tox_event_group_peer_status_new(const Memory *_Nonnull mem); +Tox_Event_Group_Topic *_Nullable tox_event_group_topic_new(const Memory *_Nonnull mem); +Tox_Event_Group_Privacy_State *_Nullable tox_event_group_privacy_state_new(const Memory *_Nonnull mem); +Tox_Event_Group_Voice_State *_Nullable tox_event_group_voice_state_new(const Memory *_Nonnull mem); +Tox_Event_Group_Topic_Lock *_Nullable tox_event_group_topic_lock_new(const Memory *_Nonnull mem); +Tox_Event_Group_Peer_Limit *_Nullable tox_event_group_peer_limit_new(const Memory *_Nonnull mem); +Tox_Event_Group_Password *_Nullable tox_event_group_password_new(const Memory *_Nonnull mem); +Tox_Event_Group_Message *_Nullable tox_event_group_message_new(const Memory *_Nonnull mem); +Tox_Event_Group_Private_Message *_Nullable tox_event_group_private_message_new(const Memory *_Nonnull mem); +Tox_Event_Group_Custom_Packet *_Nullable tox_event_group_custom_packet_new(const Memory *_Nonnull mem); +Tox_Event_Group_Custom_Private_Packet *_Nullable tox_event_group_custom_private_packet_new(const Memory *_Nonnull mem); +Tox_Event_Group_Invite *_Nullable tox_event_group_invite_new(const Memory *_Nonnull mem); +Tox_Event_Group_Peer_Join *_Nullable tox_event_group_peer_join_new(const Memory *_Nonnull mem); +Tox_Event_Group_Peer_Exit *_Nullable tox_event_group_peer_exit_new(const Memory *_Nonnull mem); +Tox_Event_Group_Self_Join *_Nullable tox_event_group_self_join_new(const Memory *_Nonnull mem); +Tox_Event_Group_Join_Fail *_Nullable tox_event_group_join_fail_new(const Memory *_Nonnull mem); +Tox_Event_Group_Moderation *_Nullable tox_event_group_moderation_new(const Memory *_Nonnull mem); +Tox_Event_Dht_Nodes_Response *_Nullable tox_event_dht_nodes_response_new(const Memory *_Nonnull mem); /** * Destructor. */ -non_null(2) nullable(1) void tox_event_destruct(Tox_Event *event, const Memory *mem); +void tox_event_destruct(Tox_Event *_Nullable event, const Memory *_Nonnull mem); -non_null(2) nullable(1) void tox_event_conference_connected_free(Tox_Event_Conference_Connected *conference_connected, const Memory *mem); -non_null(2) nullable(1) void tox_event_conference_invite_free(Tox_Event_Conference_Invite *conference_invite, const Memory *mem); -non_null(2) nullable(1) void tox_event_conference_message_free(Tox_Event_Conference_Message *conference_message, const Memory *mem); -non_null(2) nullable(1) void tox_event_conference_peer_list_changed_free(Tox_Event_Conference_Peer_List_Changed *conference_peer_list_changed, const Memory *mem); -non_null(2) nullable(1) void tox_event_conference_peer_name_free(Tox_Event_Conference_Peer_Name *conference_peer_name, const Memory *mem); -non_null(2) nullable(1) void tox_event_conference_title_free(Tox_Event_Conference_Title *conference_title, const Memory *mem); -non_null(2) nullable(1) void tox_event_file_chunk_request_free(Tox_Event_File_Chunk_Request *file_chunk_request, const Memory *mem); -non_null(2) nullable(1) void tox_event_file_recv_chunk_free(Tox_Event_File_Recv_Chunk *file_recv_chunk, const Memory *mem); -non_null(2) nullable(1) void tox_event_file_recv_control_free(Tox_Event_File_Recv_Control *file_recv_control, const Memory *mem); -non_null(2) nullable(1) void tox_event_file_recv_free(Tox_Event_File_Recv *file_recv, const Memory *mem); -non_null(2) nullable(1) void tox_event_friend_connection_status_free(Tox_Event_Friend_Connection_Status *friend_connection_status, const Memory *mem); -non_null(2) nullable(1) void tox_event_friend_lossless_packet_free(Tox_Event_Friend_Lossless_Packet *friend_lossless_packet, const Memory *mem); -non_null(2) nullable(1) void tox_event_friend_lossy_packet_free(Tox_Event_Friend_Lossy_Packet *friend_lossy_packet, const Memory *mem); -non_null(2) nullable(1) void tox_event_friend_message_free(Tox_Event_Friend_Message *friend_message, const Memory *mem); -non_null(2) nullable(1) void tox_event_friend_name_free(Tox_Event_Friend_Name *friend_name, const Memory *mem); -non_null(2) nullable(1) void tox_event_friend_read_receipt_free(Tox_Event_Friend_Read_Receipt *friend_read_receipt, const Memory *mem); -non_null(2) nullable(1) void tox_event_friend_request_free(Tox_Event_Friend_Request *friend_request, const Memory *mem); -non_null(2) nullable(1) void tox_event_friend_status_message_free(Tox_Event_Friend_Status_Message *friend_status_message, const Memory *mem); -non_null(2) nullable(1) void tox_event_friend_status_free(Tox_Event_Friend_Status *friend_status, const Memory *mem); -non_null(2) nullable(1) void tox_event_friend_typing_free(Tox_Event_Friend_Typing *friend_typing, const Memory *mem); -non_null(2) nullable(1) void tox_event_self_connection_status_free(Tox_Event_Self_Connection_Status *self_connection_status, const Memory *mem); -non_null(2) nullable(1) void tox_event_group_peer_name_free(Tox_Event_Group_Peer_Name *group_peer_name, const Memory *mem); -non_null(2) nullable(1) void tox_event_group_peer_status_free(Tox_Event_Group_Peer_Status *group_peer_status, const Memory *mem); -non_null(2) nullable(1) void tox_event_group_topic_free(Tox_Event_Group_Topic *group_topic, const Memory *mem); -non_null(2) nullable(1) void tox_event_group_privacy_state_free(Tox_Event_Group_Privacy_State *group_privacy_state, const Memory *mem); -non_null(2) nullable(1) void tox_event_group_voice_state_free(Tox_Event_Group_Voice_State *group_voice_state, const Memory *mem); -non_null(2) nullable(1) void tox_event_group_topic_lock_free(Tox_Event_Group_Topic_Lock *group_topic_lock, const Memory *mem); -non_null(2) nullable(1) void tox_event_group_peer_limit_free(Tox_Event_Group_Peer_Limit *group_peer_limit, const Memory *mem); -non_null(2) nullable(1) void tox_event_group_password_free(Tox_Event_Group_Password *group_password, const Memory *mem); -non_null(2) nullable(1) void tox_event_group_message_free(Tox_Event_Group_Message *group_message, const Memory *mem); -non_null(2) nullable(1) void tox_event_group_private_message_free(Tox_Event_Group_Private_Message *group_private_message, const Memory *mem); -non_null(2) nullable(1) void tox_event_group_custom_packet_free(Tox_Event_Group_Custom_Packet *group_custom_packet, const Memory *mem); -non_null(2) nullable(1) void tox_event_group_custom_private_packet_free(Tox_Event_Group_Custom_Private_Packet *group_custom_private_packet, const Memory *mem); -non_null(2) nullable(1) void tox_event_group_invite_free(Tox_Event_Group_Invite *group_invite, const Memory *mem); -non_null(2) nullable(1) void tox_event_group_peer_join_free(Tox_Event_Group_Peer_Join *group_peer_join, const Memory *mem); -non_null(2) nullable(1) void tox_event_group_peer_exit_free(Tox_Event_Group_Peer_Exit *group_peer_exit, const Memory *mem); -non_null(2) nullable(1) void tox_event_group_self_join_free(Tox_Event_Group_Self_Join *group_self_join, const Memory *mem); -non_null(2) nullable(1) void tox_event_group_join_fail_free(Tox_Event_Group_Join_Fail *group_join_fail, const Memory *mem); -non_null(2) nullable(1) void tox_event_group_moderation_free(Tox_Event_Group_Moderation *group_moderation, const Memory *mem); -non_null(2) nullable(1) void tox_event_dht_nodes_response_free(Tox_Event_Dht_Nodes_Response *dht_nodes_response, const Memory *mem); +void tox_event_conference_connected_free(Tox_Event_Conference_Connected *_Nullable conference_connected, const Memory *_Nonnull mem); +void tox_event_conference_invite_free(Tox_Event_Conference_Invite *_Nullable conference_invite, const Memory *_Nonnull mem); +void tox_event_conference_message_free(Tox_Event_Conference_Message *_Nullable conference_message, const Memory *_Nonnull mem); +void tox_event_conference_peer_list_changed_free(Tox_Event_Conference_Peer_List_Changed *_Nullable conference_peer_list_changed, const Memory *_Nonnull mem); +void tox_event_conference_peer_name_free(Tox_Event_Conference_Peer_Name *_Nullable conference_peer_name, const Memory *_Nonnull mem); +void tox_event_conference_title_free(Tox_Event_Conference_Title *_Nullable conference_title, const Memory *_Nonnull mem); +void tox_event_file_chunk_request_free(Tox_Event_File_Chunk_Request *_Nullable file_chunk_request, const Memory *_Nonnull mem); +void tox_event_file_recv_chunk_free(Tox_Event_File_Recv_Chunk *_Nullable file_recv_chunk, const Memory *_Nonnull mem); +void tox_event_file_recv_control_free(Tox_Event_File_Recv_Control *_Nullable file_recv_control, const Memory *_Nonnull mem); +void tox_event_file_recv_free(Tox_Event_File_Recv *_Nullable file_recv, const Memory *_Nonnull mem); +void tox_event_friend_connection_status_free(Tox_Event_Friend_Connection_Status *_Nullable friend_connection_status, const Memory *_Nonnull mem); +void tox_event_friend_lossless_packet_free(Tox_Event_Friend_Lossless_Packet *_Nullable friend_lossless_packet, const Memory *_Nonnull mem); +void tox_event_friend_lossy_packet_free(Tox_Event_Friend_Lossy_Packet *_Nullable friend_lossy_packet, const Memory *_Nonnull mem); +void tox_event_friend_message_free(Tox_Event_Friend_Message *_Nullable friend_message, const Memory *_Nonnull mem); +void tox_event_friend_name_free(Tox_Event_Friend_Name *_Nullable friend_name, const Memory *_Nonnull mem); +void tox_event_friend_read_receipt_free(Tox_Event_Friend_Read_Receipt *_Nullable friend_read_receipt, const Memory *_Nonnull mem); +void tox_event_friend_request_free(Tox_Event_Friend_Request *_Nullable friend_request, const Memory *_Nonnull mem); +void tox_event_friend_status_message_free(Tox_Event_Friend_Status_Message *_Nullable friend_status_message, const Memory *_Nonnull mem); +void tox_event_friend_status_free(Tox_Event_Friend_Status *_Nullable friend_status, const Memory *_Nonnull mem); +void tox_event_friend_typing_free(Tox_Event_Friend_Typing *_Nullable friend_typing, const Memory *_Nonnull mem); +void tox_event_self_connection_status_free(Tox_Event_Self_Connection_Status *_Nullable self_connection_status, const Memory *_Nonnull mem); +void tox_event_group_peer_name_free(Tox_Event_Group_Peer_Name *_Nullable group_peer_name, const Memory *_Nonnull mem); +void tox_event_group_peer_status_free(Tox_Event_Group_Peer_Status *_Nullable group_peer_status, const Memory *_Nonnull mem); +void tox_event_group_topic_free(Tox_Event_Group_Topic *_Nullable group_topic, const Memory *_Nonnull mem); +void tox_event_group_privacy_state_free(Tox_Event_Group_Privacy_State *_Nullable group_privacy_state, const Memory *_Nonnull mem); +void tox_event_group_voice_state_free(Tox_Event_Group_Voice_State *_Nullable group_voice_state, const Memory *_Nonnull mem); +void tox_event_group_topic_lock_free(Tox_Event_Group_Topic_Lock *_Nullable group_topic_lock, const Memory *_Nonnull mem); +void tox_event_group_peer_limit_free(Tox_Event_Group_Peer_Limit *_Nullable group_peer_limit, const Memory *_Nonnull mem); +void tox_event_group_password_free(Tox_Event_Group_Password *_Nullable group_password, const Memory *_Nonnull mem); +void tox_event_group_message_free(Tox_Event_Group_Message *_Nullable group_message, const Memory *_Nonnull mem); +void tox_event_group_private_message_free(Tox_Event_Group_Private_Message *_Nullable group_private_message, const Memory *_Nonnull mem); +void tox_event_group_custom_packet_free(Tox_Event_Group_Custom_Packet *_Nullable group_custom_packet, const Memory *_Nonnull mem); +void tox_event_group_custom_private_packet_free(Tox_Event_Group_Custom_Private_Packet *_Nullable group_custom_private_packet, const Memory *_Nonnull mem); +void tox_event_group_invite_free(Tox_Event_Group_Invite *_Nullable group_invite, const Memory *_Nonnull mem); +void tox_event_group_peer_join_free(Tox_Event_Group_Peer_Join *_Nullable group_peer_join, const Memory *_Nonnull mem); +void tox_event_group_peer_exit_free(Tox_Event_Group_Peer_Exit *_Nullable group_peer_exit, const Memory *_Nonnull mem); +void tox_event_group_self_join_free(Tox_Event_Group_Self_Join *_Nullable group_self_join, const Memory *_Nonnull mem); +void tox_event_group_join_fail_free(Tox_Event_Group_Join_Fail *_Nullable group_join_fail, const Memory *_Nonnull mem); +void tox_event_group_moderation_free(Tox_Event_Group_Moderation *_Nullable group_moderation, const Memory *_Nonnull mem); +void tox_event_dht_nodes_response_free(Tox_Event_Dht_Nodes_Response *_Nullable dht_nodes_response, const Memory *_Nonnull mem); /** * Pack into msgpack. */ -non_null() bool tox_event_pack(const Tox_Event *event, Bin_Pack *bp); +bool tox_event_pack(const Tox_Event *_Nonnull event, Bin_Pack *_Nonnull bp); -non_null() bool tox_event_conference_connected_pack(const Tox_Event_Conference_Connected *event, Bin_Pack *bp); -non_null() bool tox_event_conference_invite_pack(const Tox_Event_Conference_Invite *event, Bin_Pack *bp); -non_null() bool tox_event_conference_message_pack(const Tox_Event_Conference_Message *event, Bin_Pack *bp); -non_null() bool tox_event_conference_peer_list_changed_pack(const Tox_Event_Conference_Peer_List_Changed *event, Bin_Pack *bp); -non_null() bool tox_event_conference_peer_name_pack(const Tox_Event_Conference_Peer_Name *event, Bin_Pack *bp); -non_null() bool tox_event_conference_title_pack(const Tox_Event_Conference_Title *event, Bin_Pack *bp); -non_null() bool tox_event_file_chunk_request_pack(const Tox_Event_File_Chunk_Request *event, Bin_Pack *bp); -non_null() bool tox_event_file_recv_chunk_pack(const Tox_Event_File_Recv_Chunk *event, Bin_Pack *bp); -non_null() bool tox_event_file_recv_control_pack(const Tox_Event_File_Recv_Control *event, Bin_Pack *bp); -non_null() bool tox_event_file_recv_pack(const Tox_Event_File_Recv *event, Bin_Pack *bp); -non_null() bool tox_event_friend_connection_status_pack(const Tox_Event_Friend_Connection_Status *event, Bin_Pack *bp); -non_null() bool tox_event_friend_lossless_packet_pack(const Tox_Event_Friend_Lossless_Packet *event, Bin_Pack *bp); -non_null() bool tox_event_friend_lossy_packet_pack(const Tox_Event_Friend_Lossy_Packet *event, Bin_Pack *bp); -non_null() bool tox_event_friend_message_pack(const Tox_Event_Friend_Message *event, Bin_Pack *bp); -non_null() bool tox_event_friend_name_pack(const Tox_Event_Friend_Name *event, Bin_Pack *bp); -non_null() bool tox_event_friend_read_receipt_pack(const Tox_Event_Friend_Read_Receipt *event, Bin_Pack *bp); -non_null() bool tox_event_friend_request_pack(const Tox_Event_Friend_Request *event, Bin_Pack *bp); -non_null() bool tox_event_friend_status_message_pack(const Tox_Event_Friend_Status_Message *event, Bin_Pack *bp); -non_null() bool tox_event_friend_status_pack(const Tox_Event_Friend_Status *event, Bin_Pack *bp); -non_null() bool tox_event_friend_typing_pack(const Tox_Event_Friend_Typing *event, Bin_Pack *bp); -non_null() bool tox_event_self_connection_status_pack(const Tox_Event_Self_Connection_Status *event, Bin_Pack *bp); -non_null() bool tox_event_group_peer_name_pack(const Tox_Event_Group_Peer_Name *event, Bin_Pack *bp); -non_null() bool tox_event_group_peer_status_pack(const Tox_Event_Group_Peer_Status *event, Bin_Pack *bp); -non_null() bool tox_event_group_topic_pack(const Tox_Event_Group_Topic *event, Bin_Pack *bp); -non_null() bool tox_event_group_privacy_state_pack(const Tox_Event_Group_Privacy_State *event, Bin_Pack *bp); -non_null() bool tox_event_group_voice_state_pack(const Tox_Event_Group_Voice_State *event, Bin_Pack *bp); -non_null() bool tox_event_group_topic_lock_pack(const Tox_Event_Group_Topic_Lock *event, Bin_Pack *bp); -non_null() bool tox_event_group_peer_limit_pack(const Tox_Event_Group_Peer_Limit *event, Bin_Pack *bp); -non_null() bool tox_event_group_password_pack(const Tox_Event_Group_Password *event, Bin_Pack *bp); -non_null() bool tox_event_group_message_pack(const Tox_Event_Group_Message *event, Bin_Pack *bp); -non_null() bool tox_event_group_private_message_pack(const Tox_Event_Group_Private_Message *event, Bin_Pack *bp); -non_null() bool tox_event_group_custom_packet_pack(const Tox_Event_Group_Custom_Packet *event, Bin_Pack *bp); -non_null() bool tox_event_group_custom_private_packet_pack(const Tox_Event_Group_Custom_Private_Packet *event, Bin_Pack *bp); -non_null() bool tox_event_group_invite_pack(const Tox_Event_Group_Invite *event, Bin_Pack *bp); -non_null() bool tox_event_group_peer_join_pack(const Tox_Event_Group_Peer_Join *event, Bin_Pack *bp); -non_null() bool tox_event_group_peer_exit_pack(const Tox_Event_Group_Peer_Exit *event, Bin_Pack *bp); -non_null() bool tox_event_group_self_join_pack(const Tox_Event_Group_Self_Join *event, Bin_Pack *bp); -non_null() bool tox_event_group_join_fail_pack(const Tox_Event_Group_Join_Fail *event, Bin_Pack *bp); -non_null() bool tox_event_group_moderation_pack(const Tox_Event_Group_Moderation *event, Bin_Pack *bp); -non_null() bool tox_event_dht_nodes_response_pack(const Tox_Event_Dht_Nodes_Response *event, Bin_Pack *bp); +bool tox_event_conference_connected_pack(const Tox_Event_Conference_Connected *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_conference_invite_pack(const Tox_Event_Conference_Invite *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_conference_message_pack(const Tox_Event_Conference_Message *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_conference_peer_list_changed_pack(const Tox_Event_Conference_Peer_List_Changed *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_conference_peer_name_pack(const Tox_Event_Conference_Peer_Name *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_conference_title_pack(const Tox_Event_Conference_Title *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_file_chunk_request_pack(const Tox_Event_File_Chunk_Request *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_file_recv_chunk_pack(const Tox_Event_File_Recv_Chunk *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_file_recv_control_pack(const Tox_Event_File_Recv_Control *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_file_recv_pack(const Tox_Event_File_Recv *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_friend_connection_status_pack(const Tox_Event_Friend_Connection_Status *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_friend_lossless_packet_pack(const Tox_Event_Friend_Lossless_Packet *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_friend_lossy_packet_pack(const Tox_Event_Friend_Lossy_Packet *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_friend_message_pack(const Tox_Event_Friend_Message *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_friend_name_pack(const Tox_Event_Friend_Name *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_friend_read_receipt_pack(const Tox_Event_Friend_Read_Receipt *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_friend_request_pack(const Tox_Event_Friend_Request *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_friend_status_message_pack(const Tox_Event_Friend_Status_Message *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_friend_status_pack(const Tox_Event_Friend_Status *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_friend_typing_pack(const Tox_Event_Friend_Typing *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_self_connection_status_pack(const Tox_Event_Self_Connection_Status *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_group_peer_name_pack(const Tox_Event_Group_Peer_Name *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_group_peer_status_pack(const Tox_Event_Group_Peer_Status *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_group_topic_pack(const Tox_Event_Group_Topic *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_group_privacy_state_pack(const Tox_Event_Group_Privacy_State *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_group_voice_state_pack(const Tox_Event_Group_Voice_State *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_group_topic_lock_pack(const Tox_Event_Group_Topic_Lock *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_group_peer_limit_pack(const Tox_Event_Group_Peer_Limit *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_group_password_pack(const Tox_Event_Group_Password *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_group_message_pack(const Tox_Event_Group_Message *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_group_private_message_pack(const Tox_Event_Group_Private_Message *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_group_custom_packet_pack(const Tox_Event_Group_Custom_Packet *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_group_custom_private_packet_pack(const Tox_Event_Group_Custom_Private_Packet *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_group_invite_pack(const Tox_Event_Group_Invite *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_group_peer_join_pack(const Tox_Event_Group_Peer_Join *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_group_peer_exit_pack(const Tox_Event_Group_Peer_Exit *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_group_self_join_pack(const Tox_Event_Group_Self_Join *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_group_join_fail_pack(const Tox_Event_Group_Join_Fail *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_group_moderation_pack(const Tox_Event_Group_Moderation *_Nonnull event, Bin_Pack *_Nonnull bp); +bool tox_event_dht_nodes_response_pack(const Tox_Event_Dht_Nodes_Response *_Nonnull event, Bin_Pack *_Nonnull bp); /** * Unpack from msgpack. */ -non_null() bool tox_event_unpack_into(Tox_Event *event, Bin_Unpack *bu, const Memory *mem); +bool tox_event_unpack_into(Tox_Event *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); -non_null() bool tox_event_conference_connected_unpack(Tox_Event_Conference_Connected **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_conference_invite_unpack(Tox_Event_Conference_Invite **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_conference_message_unpack(Tox_Event_Conference_Message **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_conference_peer_list_changed_unpack(Tox_Event_Conference_Peer_List_Changed **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_conference_peer_name_unpack(Tox_Event_Conference_Peer_Name **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_conference_title_unpack(Tox_Event_Conference_Title **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_file_chunk_request_unpack(Tox_Event_File_Chunk_Request **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_file_recv_chunk_unpack(Tox_Event_File_Recv_Chunk **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_file_recv_control_unpack(Tox_Event_File_Recv_Control **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_file_recv_unpack(Tox_Event_File_Recv **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_friend_connection_status_unpack(Tox_Event_Friend_Connection_Status **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_friend_lossless_packet_unpack(Tox_Event_Friend_Lossless_Packet **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_friend_lossy_packet_unpack(Tox_Event_Friend_Lossy_Packet **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_friend_message_unpack(Tox_Event_Friend_Message **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_friend_name_unpack(Tox_Event_Friend_Name **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_friend_read_receipt_unpack(Tox_Event_Friend_Read_Receipt **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_friend_request_unpack(Tox_Event_Friend_Request **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_friend_status_message_unpack(Tox_Event_Friend_Status_Message **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_friend_status_unpack(Tox_Event_Friend_Status **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_friend_typing_unpack(Tox_Event_Friend_Typing **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_self_connection_status_unpack(Tox_Event_Self_Connection_Status **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_group_peer_name_unpack(Tox_Event_Group_Peer_Name **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_group_peer_status_unpack(Tox_Event_Group_Peer_Status **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_group_topic_unpack(Tox_Event_Group_Topic **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_group_privacy_state_unpack(Tox_Event_Group_Privacy_State **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_group_voice_state_unpack(Tox_Event_Group_Voice_State **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_group_topic_lock_unpack(Tox_Event_Group_Topic_Lock **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_group_peer_limit_unpack(Tox_Event_Group_Peer_Limit **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_group_password_unpack(Tox_Event_Group_Password **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_group_message_unpack(Tox_Event_Group_Message **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_group_private_message_unpack(Tox_Event_Group_Private_Message **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_group_custom_packet_unpack(Tox_Event_Group_Custom_Packet **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_group_custom_private_packet_unpack(Tox_Event_Group_Custom_Private_Packet **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_group_invite_unpack(Tox_Event_Group_Invite **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_group_peer_join_unpack(Tox_Event_Group_Peer_Join **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_group_peer_exit_unpack(Tox_Event_Group_Peer_Exit **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_group_self_join_unpack(Tox_Event_Group_Self_Join **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_group_join_fail_unpack(Tox_Event_Group_Join_Fail **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_group_moderation_unpack(Tox_Event_Group_Moderation **event, Bin_Unpack *bu, const Memory *mem); -non_null() bool tox_event_dht_nodes_response_unpack(Tox_Event_Dht_Nodes_Response **event, Bin_Unpack *bu, const Memory *mem); +bool tox_event_conference_connected_unpack(Tox_Event_Conference_Connected *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_conference_invite_unpack(Tox_Event_Conference_Invite *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_conference_message_unpack(Tox_Event_Conference_Message *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_conference_peer_list_changed_unpack(Tox_Event_Conference_Peer_List_Changed *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_conference_peer_name_unpack(Tox_Event_Conference_Peer_Name *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_conference_title_unpack(Tox_Event_Conference_Title *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_file_chunk_request_unpack(Tox_Event_File_Chunk_Request *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_file_recv_chunk_unpack(Tox_Event_File_Recv_Chunk *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_file_recv_control_unpack(Tox_Event_File_Recv_Control *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_file_recv_unpack(Tox_Event_File_Recv *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_friend_connection_status_unpack(Tox_Event_Friend_Connection_Status *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_friend_lossless_packet_unpack(Tox_Event_Friend_Lossless_Packet *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_friend_lossy_packet_unpack(Tox_Event_Friend_Lossy_Packet *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_friend_message_unpack(Tox_Event_Friend_Message *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_friend_name_unpack(Tox_Event_Friend_Name *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_friend_read_receipt_unpack(Tox_Event_Friend_Read_Receipt *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_friend_request_unpack(Tox_Event_Friend_Request *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_friend_status_message_unpack(Tox_Event_Friend_Status_Message *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_friend_status_unpack(Tox_Event_Friend_Status *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_friend_typing_unpack(Tox_Event_Friend_Typing *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_self_connection_status_unpack(Tox_Event_Self_Connection_Status *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_group_peer_name_unpack(Tox_Event_Group_Peer_Name *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_group_peer_status_unpack(Tox_Event_Group_Peer_Status *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_group_topic_unpack(Tox_Event_Group_Topic *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_group_privacy_state_unpack(Tox_Event_Group_Privacy_State *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_group_voice_state_unpack(Tox_Event_Group_Voice_State *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_group_topic_lock_unpack(Tox_Event_Group_Topic_Lock *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_group_peer_limit_unpack(Tox_Event_Group_Peer_Limit *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_group_password_unpack(Tox_Event_Group_Password *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_group_message_unpack(Tox_Event_Group_Message *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_group_private_message_unpack(Tox_Event_Group_Private_Message *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_group_custom_packet_unpack(Tox_Event_Group_Custom_Packet *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_group_custom_private_packet_unpack(Tox_Event_Group_Custom_Private_Packet *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_group_invite_unpack(Tox_Event_Group_Invite *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_group_peer_join_unpack(Tox_Event_Group_Peer_Join *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_group_peer_exit_unpack(Tox_Event_Group_Peer_Exit *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_group_self_join_unpack(Tox_Event_Group_Self_Join *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_group_join_fail_unpack(Tox_Event_Group_Join_Fail *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_group_moderation_unpack(Tox_Event_Group_Moderation *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); +bool tox_event_dht_nodes_response_unpack(Tox_Event_Dht_Nodes_Response *_Nonnull *_Nonnull event, Bin_Unpack *_Nonnull bu, const Memory *_Nonnull mem); #ifdef __cplusplus } /* extern "C" */ diff --git a/external/toxcore/c-toxcore/toxcore/tox_events.c b/external/toxcore/c-toxcore/toxcore/tox_events.c index 81bb76f..05aae5a 100644 --- a/external/toxcore/c-toxcore/toxcore/tox_events.c +++ b/external/toxcore/c-toxcore/toxcore/tox_events.c @@ -74,8 +74,7 @@ uint32_t tox_events_get_size(const Tox_Events *events) return events == nullptr ? 0 : events->events_size; } -nullable(1) -static const Tox_Event *tox_events_get_events(const Tox_Events *events) +static const Tox_Event *tox_events_get_events(const Tox_Events *_Nullable events) { return events == nullptr ? nullptr : events->events; } @@ -107,16 +106,14 @@ Tox_Events *tox_events_iterate(Tox *tox, bool fail_hard, Tox_Err_Events_Iterate return state.events; } -non_null() -static bool tox_event_pack_handler(const void *arr, uint32_t index, const Logger *logger, Bin_Pack *bp) +static bool tox_event_pack_handler(const void *_Nonnull arr, uint32_t index, const Logger *_Nonnull logger, Bin_Pack *_Nonnull bp) { const Tox_Event *events = (const Tox_Event *)arr; assert(events != nullptr); return tox_event_pack(&events[index], bp); } -non_null(3) nullable(1, 2) -static bool tox_events_pack_handler(const void *obj, const Logger *logger, Bin_Pack *bp) +static bool tox_events_pack_handler(const void *_Nullable obj, const Logger *_Nullable logger, Bin_Pack *_Nonnull bp) { const Tox_Events *events = (const Tox_Events *)obj; return bin_pack_obj_array(bp, tox_event_pack_handler, tox_events_get_events(events), tox_events_get_size(events), logger); @@ -132,8 +129,7 @@ bool tox_events_get_bytes(const Tox_Events *events, uint8_t *bytes) return bin_pack_obj(tox_events_pack_handler, events, nullptr, bytes, UINT32_MAX); } -non_null() -static bool tox_events_unpack_handler(void *obj, Bin_Unpack *bu) +static bool tox_events_unpack_handler(void *_Nonnull obj, Bin_Unpack *_Nonnull bu) { Tox_Events *events = (Tox_Events *)obj; diff --git a/external/toxcore/c-toxcore/toxcore/tox_options.h b/external/toxcore/c-toxcore/toxcore/tox_options.h index 7d8b7aa..f90e186 100644 --- a/external/toxcore/c-toxcore/toxcore/tox_options.h +++ b/external/toxcore/c-toxcore/toxcore/tox_options.h @@ -239,12 +239,13 @@ struct Tox_Options { */ void *log_user_data; - /** + /* * These options are experimental, so avoid writing code that depends on * them. Options marked "experimental" may change their behaviour or go away * entirely in the future, or may be renamed to something non-experimental * if they become part of the supported API. */ + /** * Make public API functions thread-safe using a per-instance lock. * diff --git a/external/toxcore/c-toxcore/toxcore/tox_pack.h b/external/toxcore/c-toxcore/toxcore/tox_pack.h index 895cd23..56ef94d 100644 --- a/external/toxcore/c-toxcore/toxcore/tox_pack.h +++ b/external/toxcore/c-toxcore/toxcore/tox_pack.h @@ -9,16 +9,16 @@ #include "bin_pack.h" #include "tox.h" -non_null() bool tox_conference_type_pack(Tox_Conference_Type val, Bin_Pack *bp); -non_null() bool tox_connection_pack(Tox_Connection val, Bin_Pack *bp); -non_null() bool tox_file_control_pack(Tox_File_Control val, Bin_Pack *bp); -non_null() bool tox_message_type_pack(Tox_Message_Type val, Bin_Pack *bp); -non_null() bool tox_user_status_pack(Tox_User_Status val, Bin_Pack *bp); -non_null() bool tox_group_privacy_state_pack(Tox_Group_Privacy_State val, Bin_Pack *bp); -non_null() bool tox_group_voice_state_pack(Tox_Group_Voice_State val, Bin_Pack *bp); -non_null() bool tox_group_topic_lock_pack(Tox_Group_Topic_Lock val, Bin_Pack *bp); -non_null() bool tox_group_join_fail_pack(Tox_Group_Join_Fail val, Bin_Pack *bp); -non_null() bool tox_group_mod_event_pack(Tox_Group_Mod_Event val, Bin_Pack *bp); -non_null() bool tox_group_exit_type_pack(Tox_Group_Exit_Type val, Bin_Pack *bp); +bool tox_conference_type_pack(Tox_Conference_Type val, Bin_Pack *_Nonnull bp); +bool tox_connection_pack(Tox_Connection val, Bin_Pack *_Nonnull bp); +bool tox_file_control_pack(Tox_File_Control val, Bin_Pack *_Nonnull bp); +bool tox_message_type_pack(Tox_Message_Type val, Bin_Pack *_Nonnull bp); +bool tox_user_status_pack(Tox_User_Status val, Bin_Pack *_Nonnull bp); +bool tox_group_privacy_state_pack(Tox_Group_Privacy_State val, Bin_Pack *_Nonnull bp); +bool tox_group_voice_state_pack(Tox_Group_Voice_State val, Bin_Pack *_Nonnull bp); +bool tox_group_topic_lock_pack(Tox_Group_Topic_Lock val, Bin_Pack *_Nonnull bp); +bool tox_group_join_fail_pack(Tox_Group_Join_Fail val, Bin_Pack *_Nonnull bp); +bool tox_group_mod_event_pack(Tox_Group_Mod_Event val, Bin_Pack *_Nonnull bp); +bool tox_group_exit_type_pack(Tox_Group_Exit_Type val, Bin_Pack *_Nonnull bp); #endif /* C_TOXCORE_TOXCORE_TOX_PACK_H */ diff --git a/external/toxcore/c-toxcore/toxcore/tox_private.c b/external/toxcore/c-toxcore/toxcore/tox_private.c index dd9c63c..e87072e 100644 --- a/external/toxcore/c-toxcore/toxcore/tox_private.c +++ b/external/toxcore/c-toxcore/toxcore/tox_private.c @@ -269,7 +269,7 @@ uint64_t tox_netprof_get_packet_id_count(const Tox *tox, Tox_Netprof_Packet_Type } default: { - LOGGER_ERROR(tox->m->log, "invalid packet type: %d", type); + LOGGER_ERROR(tox->m->log, "invalid packet type: %u", type); break; } } @@ -318,7 +318,7 @@ uint64_t tox_netprof_get_packet_total_count(const Tox *tox, Tox_Netprof_Packet_T } default: { - LOGGER_ERROR(tox->m->log, "invalid packet type: %d", type); + LOGGER_ERROR(tox->m->log, "invalid packet type: %u", type); break; } } @@ -367,7 +367,7 @@ uint64_t tox_netprof_get_packet_id_bytes(const Tox *tox, Tox_Netprof_Packet_Type } default: { - LOGGER_ERROR(tox->m->log, "invalid packet type: %d", type); + LOGGER_ERROR(tox->m->log, "invalid packet type: %u", type); break; } } @@ -416,7 +416,7 @@ uint64_t tox_netprof_get_packet_total_bytes(const Tox *tox, Tox_Netprof_Packet_T } default: { - LOGGER_ERROR(tox->m->log, "invalid packet type: %d", type); + LOGGER_ERROR(tox->m->log, "invalid packet type: %u", type); break; } } diff --git a/external/toxcore/c-toxcore/toxcore/tox_test.cc b/external/toxcore/c-toxcore/toxcore/tox_test.cc index 23a53b0..6d3c25c 100644 --- a/external/toxcore/c-toxcore/toxcore/tox_test.cc +++ b/external/toxcore/c-toxcore/toxcore/tox_test.cc @@ -87,7 +87,7 @@ TEST(Tox, OneTest) tox_options_set_log_callback(options, [](Tox *tox, Tox_Log_Level level, const char *file, uint32_t line, const char *func, const char *message, void *user_data) { - fprintf(stderr, "[%c] %s:%d(%s): %s\n", tox_log_level_to_string(level)[0], file, line, + fprintf(stderr, "[%c] %s:%u(%s): %s\n", tox_log_level_to_string(level)[0], file, line, func, message); }); diff --git a/external/toxcore/c-toxcore/toxcore/tox_unpack.c b/external/toxcore/c-toxcore/toxcore/tox_unpack.c index 6b31029..cc52781 100644 --- a/external/toxcore/c-toxcore/toxcore/tox_unpack.c +++ b/external/toxcore/c-toxcore/toxcore/tox_unpack.c @@ -10,8 +10,7 @@ #include "bin_unpack.h" #include "tox.h" -non_null() -static bool tox_conference_type_from_int(uint32_t value, Tox_Conference_Type *out_enum) +static bool tox_conference_type_from_int(uint32_t value, Tox_Conference_Type *_Nonnull out_enum) { switch (value) { case TOX_CONFERENCE_TYPE_TEXT: { @@ -37,8 +36,7 @@ bool tox_conference_type_unpack(Tox_Conference_Type *val, Bin_Unpack *bu) && tox_conference_type_from_int(u32, val); } -non_null() -static bool tox_connection_from_int(uint32_t value, Tox_Connection *out_enum) +static bool tox_connection_from_int(uint32_t value, Tox_Connection *_Nonnull out_enum) { switch (value) { case TOX_CONNECTION_NONE: { @@ -70,8 +68,7 @@ bool tox_connection_unpack(Tox_Connection *val, Bin_Unpack *bu) && tox_connection_from_int(u32, val); } -non_null() -static bool tox_file_control_from_int(uint32_t value, Tox_File_Control *out_enum) +static bool tox_file_control_from_int(uint32_t value, Tox_File_Control *_Nonnull out_enum) { switch (value) { case TOX_FILE_CONTROL_RESUME: { @@ -103,8 +100,7 @@ bool tox_file_control_unpack(Tox_File_Control *val, Bin_Unpack *bu) && tox_file_control_from_int(u32, val); } -non_null() -static bool tox_message_type_from_int(uint32_t value, Tox_Message_Type *out_enum) +static bool tox_message_type_from_int(uint32_t value, Tox_Message_Type *_Nonnull out_enum) { switch (value) { case TOX_MESSAGE_TYPE_NORMAL: { @@ -131,8 +127,7 @@ bool tox_message_type_unpack(Tox_Message_Type *val, Bin_Unpack *bu) && tox_message_type_from_int(u32, val); } -non_null() -static bool tox_user_status_from_int(uint32_t value, Tox_User_Status *out_enum) +static bool tox_user_status_from_int(uint32_t value, Tox_User_Status *_Nonnull out_enum) { switch (value) { case TOX_USER_STATUS_NONE: { @@ -164,8 +159,7 @@ bool tox_user_status_unpack(Tox_User_Status *val, Bin_Unpack *bu) && tox_user_status_from_int(u32, val); } -non_null() -static bool tox_group_privacy_state_from_int(uint32_t value, Tox_Group_Privacy_State *out_enum) +static bool tox_group_privacy_state_from_int(uint32_t value, Tox_Group_Privacy_State *_Nonnull out_enum) { switch (value) { case TOX_GROUP_PRIVACY_STATE_PUBLIC: { @@ -188,8 +182,7 @@ bool tox_group_privacy_state_unpack(Tox_Group_Privacy_State *val, Bin_Unpack *bu return bin_unpack_u32(bu, &u32) && tox_group_privacy_state_from_int(u32, val); } -non_null() -static bool tox_group_voice_state_from_int(uint32_t value, Tox_Group_Voice_State *out_enum) +static bool tox_group_voice_state_from_int(uint32_t value, Tox_Group_Voice_State *_Nonnull out_enum) { switch (value) { case TOX_GROUP_VOICE_STATE_ALL: { @@ -217,8 +210,7 @@ bool tox_group_voice_state_unpack(Tox_Group_Voice_State *val, Bin_Unpack *bu) && tox_group_voice_state_from_int(u32, val); } -non_null() -static bool tox_group_topic_lock_from_int(uint32_t value, Tox_Group_Topic_Lock *out_enum) +static bool tox_group_topic_lock_from_int(uint32_t value, Tox_Group_Topic_Lock *_Nonnull out_enum) { switch (value) { case TOX_GROUP_TOPIC_LOCK_ENABLED: { @@ -242,8 +234,7 @@ bool tox_group_topic_lock_unpack(Tox_Group_Topic_Lock *val, Bin_Unpack *bu) && tox_group_topic_lock_from_int(u32, val); } -non_null() -static bool tox_group_join_fail_from_int(uint32_t value, Tox_Group_Join_Fail *out_enum) +static bool tox_group_join_fail_from_int(uint32_t value, Tox_Group_Join_Fail *_Nonnull out_enum) { switch (value) { case TOX_GROUP_JOIN_FAIL_PEER_LIMIT: { @@ -271,8 +262,7 @@ bool tox_group_join_fail_unpack(Tox_Group_Join_Fail *val, Bin_Unpack *bu) && tox_group_join_fail_from_int(u32, val); } -non_null() -static bool tox_group_mod_event_from_int(uint32_t value, Tox_Group_Mod_Event *out_enum) +static bool tox_group_mod_event_from_int(uint32_t value, Tox_Group_Mod_Event *_Nonnull out_enum) { switch (value) { case TOX_GROUP_MOD_EVENT_KICK: { @@ -304,8 +294,7 @@ bool tox_group_mod_event_unpack(Tox_Group_Mod_Event *val, Bin_Unpack *bu) && tox_group_mod_event_from_int(u32, val); } -non_null() -static bool tox_group_exit_type_from_int(uint32_t value, Tox_Group_Exit_Type *out_enum) +static bool tox_group_exit_type_from_int(uint32_t value, Tox_Group_Exit_Type *_Nonnull out_enum) { switch (value) { case TOX_GROUP_EXIT_TYPE_QUIT: { diff --git a/external/toxcore/c-toxcore/toxcore/tox_unpack.h b/external/toxcore/c-toxcore/toxcore/tox_unpack.h index 0909237..b9b885b 100644 --- a/external/toxcore/c-toxcore/toxcore/tox_unpack.h +++ b/external/toxcore/c-toxcore/toxcore/tox_unpack.h @@ -9,16 +9,16 @@ #include "bin_unpack.h" #include "tox.h" -non_null() bool tox_conference_type_unpack(Tox_Conference_Type *val, Bin_Unpack *bu); -non_null() bool tox_connection_unpack(Tox_Connection *val, Bin_Unpack *bu); -non_null() bool tox_file_control_unpack(Tox_File_Control *val, Bin_Unpack *bu); -non_null() bool tox_message_type_unpack(Tox_Message_Type *val, Bin_Unpack *bu); -non_null() bool tox_user_status_unpack(Tox_User_Status *val, Bin_Unpack *bu); -non_null() bool tox_group_privacy_state_unpack(Tox_Group_Privacy_State *val, Bin_Unpack *bu); -non_null() bool tox_group_voice_state_unpack(Tox_Group_Voice_State *val, Bin_Unpack *bu); -non_null() bool tox_group_topic_lock_unpack(Tox_Group_Topic_Lock *val, Bin_Unpack *bu); -non_null() bool tox_group_join_fail_unpack(Tox_Group_Join_Fail *val, Bin_Unpack *bu); -non_null() bool tox_group_mod_event_unpack(Tox_Group_Mod_Event *val, Bin_Unpack *bu); -non_null() bool tox_group_exit_type_unpack(Tox_Group_Exit_Type *val, Bin_Unpack *bu); +bool tox_conference_type_unpack(Tox_Conference_Type *_Nonnull val, Bin_Unpack *_Nonnull bu); +bool tox_connection_unpack(Tox_Connection *_Nonnull val, Bin_Unpack *_Nonnull bu); +bool tox_file_control_unpack(Tox_File_Control *_Nonnull val, Bin_Unpack *_Nonnull bu); +bool tox_message_type_unpack(Tox_Message_Type *_Nonnull val, Bin_Unpack *_Nonnull bu); +bool tox_user_status_unpack(Tox_User_Status *_Nonnull val, Bin_Unpack *_Nonnull bu); +bool tox_group_privacy_state_unpack(Tox_Group_Privacy_State *_Nonnull val, Bin_Unpack *_Nonnull bu); +bool tox_group_voice_state_unpack(Tox_Group_Voice_State *_Nonnull val, Bin_Unpack *_Nonnull bu); +bool tox_group_topic_lock_unpack(Tox_Group_Topic_Lock *_Nonnull val, Bin_Unpack *_Nonnull bu); +bool tox_group_join_fail_unpack(Tox_Group_Join_Fail *_Nonnull val, Bin_Unpack *_Nonnull bu); +bool tox_group_mod_event_unpack(Tox_Group_Mod_Event *_Nonnull val, Bin_Unpack *_Nonnull bu); +bool tox_group_exit_type_unpack(Tox_Group_Exit_Type *_Nonnull val, Bin_Unpack *_Nonnull bu); #endif /* C_TOXCORE_TOXCORE_TOX_UNPACK_H */ diff --git a/external/toxcore/c-toxcore/toxcore/util.h b/external/toxcore/c-toxcore/toxcore/util.h index 9be7213..179616b 100644 --- a/external/toxcore/c-toxcore/toxcore/util.h +++ b/external/toxcore/c-toxcore/toxcore/util.h @@ -25,11 +25,9 @@ extern "C" { bool is_power_of_2(uint64_t x); /** @brief Frees all pointers in a uint8_t pointer array, as well as the array itself. */ -non_null(1) nullable(2) -void free_uint8_t_pointer_array(const Memory *mem, uint8_t **ary, size_t n_items); - +void free_uint8_t_pointer_array(const Memory *_Nonnull mem, uint8_t *_Nullable *_Nullable ary, size_t n_items); /** Returns -1 if failed or 0 if success */ -non_null() int create_recursive_mutex(pthread_mutex_t *mutex); +int create_recursive_mutex(pthread_mutex_t *_Nonnull mutex); /** * @brief Checks whether two buffers are the same length and contents. @@ -39,14 +37,14 @@ non_null() int create_recursive_mutex(pthread_mutex_t *mutex); * @retval true if sizes and contents are equal. * @retval false otherwise. */ -non_null() bool memeq(const uint8_t *a, size_t a_size, const uint8_t *b, size_t b_size); +bool memeq(const uint8_t *_Nonnull a, size_t a_size, const uint8_t *_Nonnull b, size_t b_size); /** * @brief Copies a byte array of a given size into a newly allocated one. * * @return nullptr on allocation failure or if the input data was nullptr or data_size was 0. */ -non_null(1) nullable(2) uint8_t *memdup(const Memory *mem, const uint8_t *data, size_t data_size); +uint8_t *_Nullable memdup(const Memory *_Nonnull mem, const uint8_t *_Nullable data, size_t data_size); /** * @brief Set all bytes in `data` to 0. @@ -56,7 +54,7 @@ non_null(1) nullable(2) uint8_t *memdup(const Memory *mem, const uint8_t *data, * message buffers, public keys, encrypted data, etc. It is not ok for buffers * containing key material (secret keys, shared keys). */ -nullable(1) void memzero(uint8_t *data, size_t data_size); +void memzero(uint8_t *_Nullable data, size_t data_size); // Safe min/max functions with specific types. This forces the conversion to the // desired type before the comparison expression, giving the choice of @@ -88,8 +86,7 @@ uint64_t min_u64(uint64_t a, uint64_t b); int cmp_uint(uint64_t a, uint64_t b); /** @brief Returns a 32-bit hash of key of size len */ -non_null() -uint32_t jenkins_one_at_a_time_hash(const uint8_t *key, size_t len); +uint32_t jenkins_one_at_a_time_hash(const uint8_t *_Nonnull key, size_t len); /** @brief Computes a checksum of a byte array. * @@ -98,8 +95,7 @@ uint32_t jenkins_one_at_a_time_hash(const uint8_t *key, size_t len); * * @retval The resulting checksum. */ -non_null() -uint16_t data_checksum(const uint8_t *data, uint32_t length); +uint16_t data_checksum(const uint8_t *_Nonnull data, uint32_t length); #ifdef __cplusplus } /* extern "C" */