diff options
author | iphydf <iphydf@users.noreply.github.com> | 2017-06-04 12:59:34 +0000 |
---|---|---|
committer | iphydf <iphydf@users.noreply.github.com> | 2017-06-04 17:48:23 +0000 |
commit | 1e8fa85aadf602bdca3a540de09a8184f7139a6c (patch) | |
tree | 4caab80957f7f9a2098fb97e776be763defc44ab /toxcore/TCP_server.c | |
parent | 03f99bde2ecee3722d47a5b6a1031fc88e7210b7 (diff) |
Add a monolith_test that includes all toxcore sources.
This requires that every symbol, even if static (file-scope), is unique.
The idea is that we can easily run "whole" program static analysis on
programs that include monolith.h ("whole" is in quotes, as we don't
include dependencies like libsodium in this static analysis).
Diffstat (limited to 'toxcore/TCP_server.c')
-rw-r--r-- | toxcore/TCP_server.c | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/toxcore/TCP_server.c b/toxcore/TCP_server.c index d2b08206..3f2e554f 100644 --- a/toxcore/TCP_server.c +++ b/toxcore/TCP_server.c | |||
@@ -45,9 +45,9 @@ struct TCP_Server { | |||
45 | 45 | ||
46 | uint8_t public_key[CRYPTO_PUBLIC_KEY_SIZE]; | 46 | uint8_t public_key[CRYPTO_PUBLIC_KEY_SIZE]; |
47 | uint8_t secret_key[CRYPTO_SECRET_KEY_SIZE]; | 47 | uint8_t secret_key[CRYPTO_SECRET_KEY_SIZE]; |
48 | TCP_Secure_Connection incomming_connection_queue[MAX_INCOMMING_CONNECTIONS]; | 48 | TCP_Secure_Connection incoming_connection_queue[MAX_INCOMING_CONNECTIONS]; |
49 | uint16_t incomming_connection_queue_index; | 49 | uint16_t incoming_connection_queue_index; |
50 | TCP_Secure_Connection unconfirmed_connection_queue[MAX_INCOMMING_CONNECTIONS]; | 50 | TCP_Secure_Connection unconfirmed_connection_queue[MAX_INCOMING_CONNECTIONS]; |
51 | uint16_t unconfirmed_connection_queue_index; | 51 | uint16_t unconfirmed_connection_queue_index; |
52 | 52 | ||
53 | TCP_Secure_Connection *accepted_connection_array; | 53 | TCP_Secure_Connection *accepted_connection_array; |
@@ -477,7 +477,7 @@ static int write_packet_TCP_secure_connection(TCP_Secure_Connection *con, const | |||
477 | 477 | ||
478 | /* Kill a TCP_Secure_Connection | 478 | /* Kill a TCP_Secure_Connection |
479 | */ | 479 | */ |
480 | static void kill_TCP_connection(TCP_Secure_Connection *con) | 480 | static void kill_TCP_secure_connection(TCP_Secure_Connection *con) |
481 | { | 481 | { |
482 | kill_sock(con->sock); | 482 | kill_sock(con->sock); |
483 | crypto_memzero(con, sizeof(TCP_Secure_Connection)); | 483 | crypto_memzero(con, sizeof(TCP_Secure_Connection)); |
@@ -927,7 +927,7 @@ static int confirm_TCP_connection(TCP_Server *TCP_server, TCP_Secure_Connection | |||
927 | int index = add_accepted(TCP_server, con); | 927 | int index = add_accepted(TCP_server, con); |
928 | 928 | ||
929 | if (index == -1) { | 929 | if (index == -1) { |
930 | kill_TCP_connection(con); | 930 | kill_TCP_secure_connection(con); |
931 | return -1; | 931 | return -1; |
932 | } | 932 | } |
933 | 933 | ||
@@ -960,19 +960,19 @@ static int accept_connection(TCP_Server *TCP_server, Socket sock) | |||
960 | return -1; | 960 | return -1; |
961 | } | 961 | } |
962 | 962 | ||
963 | uint16_t index = TCP_server->incomming_connection_queue_index % MAX_INCOMMING_CONNECTIONS; | 963 | uint16_t index = TCP_server->incoming_connection_queue_index % MAX_INCOMING_CONNECTIONS; |
964 | 964 | ||
965 | TCP_Secure_Connection *conn = &TCP_server->incomming_connection_queue[index]; | 965 | TCP_Secure_Connection *conn = &TCP_server->incoming_connection_queue[index]; |
966 | 966 | ||
967 | if (conn->status != TCP_STATUS_NO_STATUS) { | 967 | if (conn->status != TCP_STATUS_NO_STATUS) { |
968 | kill_TCP_connection(conn); | 968 | kill_TCP_secure_connection(conn); |
969 | } | 969 | } |
970 | 970 | ||
971 | conn->status = TCP_STATUS_CONNECTED; | 971 | conn->status = TCP_STATUS_CONNECTED; |
972 | conn->sock = sock; | 972 | conn->sock = sock; |
973 | conn->next_packet_length = 0; | 973 | conn->next_packet_length = 0; |
974 | 974 | ||
975 | ++TCP_server->incomming_connection_queue_index; | 975 | ++TCP_server->incoming_connection_queue_index; |
976 | return index; | 976 | return index; |
977 | } | 977 | } |
978 | 978 | ||
@@ -1107,21 +1107,21 @@ static void do_TCP_accept_new(TCP_Server *TCP_server) | |||
1107 | 1107 | ||
1108 | static int do_incoming(TCP_Server *TCP_server, uint32_t i) | 1108 | static int do_incoming(TCP_Server *TCP_server, uint32_t i) |
1109 | { | 1109 | { |
1110 | if (TCP_server->incomming_connection_queue[i].status != TCP_STATUS_CONNECTED) { | 1110 | if (TCP_server->incoming_connection_queue[i].status != TCP_STATUS_CONNECTED) { |
1111 | return -1; | 1111 | return -1; |
1112 | } | 1112 | } |
1113 | 1113 | ||
1114 | int ret = read_connection_handshake(&TCP_server->incomming_connection_queue[i], TCP_server->secret_key); | 1114 | int ret = read_connection_handshake(&TCP_server->incoming_connection_queue[i], TCP_server->secret_key); |
1115 | 1115 | ||
1116 | if (ret == -1) { | 1116 | if (ret == -1) { |
1117 | kill_TCP_connection(&TCP_server->incomming_connection_queue[i]); | 1117 | kill_TCP_secure_connection(&TCP_server->incoming_connection_queue[i]); |
1118 | } else if (ret == 1) { | 1118 | } else if (ret == 1) { |
1119 | int index_new = TCP_server->unconfirmed_connection_queue_index % MAX_INCOMMING_CONNECTIONS; | 1119 | int index_new = TCP_server->unconfirmed_connection_queue_index % MAX_INCOMING_CONNECTIONS; |
1120 | TCP_Secure_Connection *conn_old = &TCP_server->incomming_connection_queue[i]; | 1120 | TCP_Secure_Connection *conn_old = &TCP_server->incoming_connection_queue[i]; |
1121 | TCP_Secure_Connection *conn_new = &TCP_server->unconfirmed_connection_queue[index_new]; | 1121 | TCP_Secure_Connection *conn_new = &TCP_server->unconfirmed_connection_queue[index_new]; |
1122 | 1122 | ||
1123 | if (conn_new->status != TCP_STATUS_NO_STATUS) { | 1123 | if (conn_new->status != TCP_STATUS_NO_STATUS) { |
1124 | kill_TCP_connection(conn_new); | 1124 | kill_TCP_secure_connection(conn_new); |
1125 | } | 1125 | } |
1126 | 1126 | ||
1127 | memcpy(conn_new, conn_old, sizeof(TCP_Secure_Connection)); | 1127 | memcpy(conn_new, conn_old, sizeof(TCP_Secure_Connection)); |
@@ -1151,7 +1151,7 @@ static int do_unconfirmed(TCP_Server *TCP_server, uint32_t i) | |||
1151 | } | 1151 | } |
1152 | 1152 | ||
1153 | if (len == -1) { | 1153 | if (len == -1) { |
1154 | kill_TCP_connection(conn); | 1154 | kill_TCP_secure_connection(conn); |
1155 | return -1; | 1155 | return -1; |
1156 | } | 1156 | } |
1157 | 1157 | ||
@@ -1179,11 +1179,11 @@ static void do_confirmed_recv(TCP_Server *TCP_server, uint32_t i) | |||
1179 | } | 1179 | } |
1180 | } | 1180 | } |
1181 | 1181 | ||
1182 | static void do_TCP_incomming(TCP_Server *TCP_server) | 1182 | static void do_TCP_incoming(TCP_Server *TCP_server) |
1183 | { | 1183 | { |
1184 | uint32_t i; | 1184 | uint32_t i; |
1185 | 1185 | ||
1186 | for (i = 0; i < MAX_INCOMMING_CONNECTIONS; ++i) { | 1186 | for (i = 0; i < MAX_INCOMING_CONNECTIONS; ++i) { |
1187 | do_incoming(TCP_server, i); | 1187 | do_incoming(TCP_server, i); |
1188 | } | 1188 | } |
1189 | } | 1189 | } |
@@ -1192,7 +1192,7 @@ static void do_TCP_unconfirmed(TCP_Server *TCP_server) | |||
1192 | { | 1192 | { |
1193 | uint32_t i; | 1193 | uint32_t i; |
1194 | 1194 | ||
1195 | for (i = 0; i < MAX_INCOMMING_CONNECTIONS; ++i) { | 1195 | for (i = 0; i < MAX_INCOMING_CONNECTIONS; ++i) { |
1196 | do_unconfirmed(TCP_server, i); | 1196 | do_unconfirmed(TCP_server, i); |
1197 | } | 1197 | } |
1198 | } | 1198 | } |
@@ -1276,12 +1276,12 @@ static void do_TCP_epoll(TCP_Server *TCP_server) | |||
1276 | } | 1276 | } |
1277 | 1277 | ||
1278 | case TCP_SOCKET_INCOMING: { | 1278 | case TCP_SOCKET_INCOMING: { |
1279 | kill_TCP_connection(&TCP_server->incomming_connection_queue[index]); | 1279 | kill_TCP_secure_connection(&TCP_server->incoming_connection_queue[index]); |
1280 | break; | 1280 | break; |
1281 | } | 1281 | } |
1282 | 1282 | ||
1283 | case TCP_SOCKET_UNCONFIRMED: { | 1283 | case TCP_SOCKET_UNCONFIRMED: { |
1284 | kill_TCP_connection(&TCP_server->unconfirmed_connection_queue[index]); | 1284 | kill_TCP_secure_connection(&TCP_server->unconfirmed_connection_queue[index]); |
1285 | break; | 1285 | break; |
1286 | } | 1286 | } |
1287 | 1287 | ||
@@ -1324,7 +1324,7 @@ static void do_TCP_epoll(TCP_Server *TCP_server) | |||
1324 | }; | 1324 | }; |
1325 | 1325 | ||
1326 | if (epoll_ctl(TCP_server->efd, EPOLL_CTL_ADD, sock_new, &ev) == -1) { | 1326 | if (epoll_ctl(TCP_server->efd, EPOLL_CTL_ADD, sock_new, &ev) == -1) { |
1327 | kill_TCP_connection(&TCP_server->incomming_connection_queue[index_new]); | 1327 | kill_TCP_secure_connection(&TCP_server->incoming_connection_queue[index_new]); |
1328 | continue; | 1328 | continue; |
1329 | } | 1329 | } |
1330 | } | 1330 | } |
@@ -1340,7 +1340,7 @@ static void do_TCP_epoll(TCP_Server *TCP_server) | |||
1340 | events[n].data.u64 = sock | ((uint64_t)TCP_SOCKET_UNCONFIRMED << 32) | ((uint64_t)index_new << 40); | 1340 | events[n].data.u64 = sock | ((uint64_t)TCP_SOCKET_UNCONFIRMED << 32) | ((uint64_t)index_new << 40); |
1341 | 1341 | ||
1342 | if (epoll_ctl(TCP_server->efd, EPOLL_CTL_MOD, sock, &events[n]) == -1) { | 1342 | if (epoll_ctl(TCP_server->efd, EPOLL_CTL_MOD, sock, &events[n]) == -1) { |
1343 | kill_TCP_connection(&TCP_server->unconfirmed_connection_queue[index_new]); | 1343 | kill_TCP_secure_connection(&TCP_server->unconfirmed_connection_queue[index_new]); |
1344 | break; | 1344 | break; |
1345 | } | 1345 | } |
1346 | } | 1346 | } |
@@ -1386,7 +1386,7 @@ void do_TCP_server(TCP_Server *TCP_server) | |||
1386 | 1386 | ||
1387 | #else | 1387 | #else |
1388 | do_TCP_accept_new(TCP_server); | 1388 | do_TCP_accept_new(TCP_server); |
1389 | do_TCP_incomming(TCP_server); | 1389 | do_TCP_incoming(TCP_server); |
1390 | do_TCP_unconfirmed(TCP_server); | 1390 | do_TCP_unconfirmed(TCP_server); |
1391 | #endif | 1391 | #endif |
1392 | 1392 | ||