From 98d91a73cf6fa9dd523e8d037459adf31d409fc4 Mon Sep 17 00:00:00 2001 From: Michael Jones Date: Mon, 8 Sep 2025 23:14:56 -0500 Subject: [PATCH] Improve const correctness in coturn (#1424) Marking variables as const when they won't be modified after initialization helps programmers trying to understand a codebase to manage the cognative load. This pull request uses a clang-tidy fixit (Hard to automate, since the code needs to be temporarily compiled as C++ for it to work) to try to mechanically apply the const keyword to code where the automated tool can determine that the variable won't be modified. I then follow this up with a manual improvement pass to turnutils_uclient, where I address const correctness of local variables, as well as do some adjustments to loops and scoping to help with reducing complexity. Co-authored-by: redraincatching Co-authored-by: Pavel Punsky --- .clang-format | 9 +- .clang-tidy | 1 + src/apps/common/apputils.c | 38 +++--- src/apps/common/ns_turn_utils.c | 6 +- src/apps/common/stun_buffer.c | 2 +- src/apps/natdiscovery/natdiscovery.c | 10 +- src/apps/oauth/oauth.c | 8 +- src/apps/peer/udpserver.c | 2 +- src/apps/relay/dbdrivers/dbd_sqlite.c | 22 ++-- src/apps/relay/dbdrivers/dbdriver.c | 4 +- src/apps/relay/dbdrivers/dbdriver.h | 2 +- src/apps/relay/dtls_listener.c | 20 ++-- src/apps/relay/http_server.c | 6 +- src/apps/relay/mainrelay.c | 24 ++-- src/apps/relay/netengine.c | 58 +++++----- src/apps/relay/ns_ioalib_engine_impl.c | 84 +++++++------- src/apps/relay/tls_listener.c | 2 +- src/apps/relay/turn_admin_server.c | 40 +++---- src/apps/relay/turn_ports.c | 55 +++++---- src/apps/relay/userdb.c | 30 ++--- src/apps/rfc5769/rfc5769check.c | 14 ++- src/apps/stunclient/stunclient.c | 20 ++-- src/apps/uclient/mainuclient.c | 2 +- src/apps/uclient/startuclient.c | 154 ++++++++++++------------- src/client/ns_turn_ioaddr.c | 4 +- src/client/ns_turn_msg.c | 94 +++++++-------- src/server/ns_turn_allocation.c | 8 +- src/server/ns_turn_maps.c | 36 +++--- src/server/ns_turn_maps_rtcp.c | 8 +- src/server/ns_turn_server.c | 149 ++++++++++++------------ 30 files changed, 458 insertions(+), 454 deletions(-) diff --git a/.clang-format b/.clang-format index 4ca1bf4..847c9ca 100644 --- a/.clang-format +++ b/.clang-format @@ -130,9 +130,10 @@ Standard: Latest StatementMacros: - Q_UNUSED - QT_REQUIRE_VERSION -TabWidth: 8 -UseCRLF: false -UseTab: Never -InsertBraces: true +TabWidth: 8 +UseCRLF: false +UseTab: Never +InsertBraces: true +QualifierAlignment: Left ... diff --git a/.clang-tidy b/.clang-tidy index baca00d..32a62fa 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -17,6 +17,7 @@ Checks: 'clang-diagnostic-*, ,-readability-magic-numbers, ,-readability-function-cognitive-complexity, ,-readability-uppercase-literal-suffix, + ,-readability-suspicious-call-argument, ,modernize-*, ,-modernize-use-auto, ,-modernize-avoid-c-arrays, diff --git a/src/apps/common/apputils.c b/src/apps/common/apputils.c index f1b13a8..6f824b1 100644 --- a/src/apps/common/apputils.c +++ b/src/apps/common/apputils.c @@ -198,13 +198,13 @@ int socket_set_reusable(evutil_socket_t fd, int flag, SOCKET_TYPE st) { #if defined(WINDOWS) int use_reuseaddr = IS_TURN_SERVER; #else - int use_reuseaddr = 1; + const int use_reuseaddr = 1; #endif #if defined(SO_REUSEADDR) if (use_reuseaddr) { int on = flag; - int ret = setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (const void *)&on, (socklen_t)sizeof(on)); + const int ret = setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (const void *)&on, (socklen_t)sizeof(on)); if (ret < 0) { perror("SO_REUSEADDR"); } @@ -318,7 +318,7 @@ int addr_bind(evutil_socket_t fd, const ioa_addr *addr, int reusable, int debug, } if (ret < 0) { if (debug) { - int err = socket_errno(); + const int err = socket_errno(); perror("bind"); char str[129]; addr_to_string(addr, (uint8_t *)str); @@ -670,7 +670,7 @@ int set_mtu_df(SSL *ssl, evutil_socket_t fd, int family, int mtu, int df_value, return 0; } - int ret = set_socket_df(fd, family, df_value); + const int ret = set_socket_df(fd, family, df_value); if (!mtu) { mtu = SOSO_MTU; @@ -1094,7 +1094,7 @@ void print_abs_file_name(const char *msg1, const char *msg2, const char *fn) { if (!getcwd(absfn, sizeof(absfn) - 1)) { absfn[0] = 0; } - size_t blen = strlen(absfn); + const size_t blen = strlen(absfn); if (blen < sizeof(absfn) - 1) { strncpy(absfn + blen, "/", sizeof(absfn) - blen); strncpy(absfn + blen + 1, fn, sizeof(absfn) - blen - 1); @@ -1122,10 +1122,10 @@ char *find_config_file(const char *config_file) { } } else { int i = 0; - size_t cflen = strlen(config_file); + const size_t cflen = strlen(config_file); while (config_file_search_dirs[i]) { - size_t dirlen = strlen(config_file_search_dirs[i]); + const size_t dirlen = strlen(config_file_search_dirs[i]); size_t fnsz = sizeof(char) * (dirlen + cflen + 10); char *fn = (char *)malloc(fnsz + 1); strncpy(fn, config_file_search_dirs[i], fnsz); @@ -1139,7 +1139,7 @@ char *find_config_file(const char *config_file) { } free(fn); if (config_file_search_dirs[i][0] != '/' && config_file_search_dirs[i][0] != '.' && c_execdir && c_execdir[0]) { - size_t celen = strlen(c_execdir); + const size_t celen = strlen(c_execdir); fnsz = sizeof(char) * (dirlen + cflen + celen + 10); fn = (char *)malloc(fnsz + 1); strncpy(fn, c_execdir, fnsz); @@ -1198,8 +1198,8 @@ static uint64_t turn_getRandTime(void) { #else tp.tv_sec = time(NULL); #endif - uint64_t current_time = (uint64_t)(tp.tv_sec); - uint64_t current_mstime = (uint64_t)(current_time + (tp.tv_nsec)); + const uint64_t current_time = (uint64_t)(tp.tv_sec); + const uint64_t current_mstime = (uint64_t)(current_time + (tp.tv_nsec)); return current_mstime; } @@ -1311,11 +1311,11 @@ char *base64_encode(const unsigned char *data, size_t input_length, size_t *outp for (size_t i = 0, j = 0; i < input_length;) { - uint32_t octet_a = i < input_length ? data[i++] : 0; - uint32_t octet_b = i < input_length ? data[i++] : 0; - uint32_t octet_c = i < input_length ? data[i++] : 0; + const uint32_t octet_a = i < input_length ? data[i++] : 0; + const uint32_t octet_b = i < input_length ? data[i++] : 0; + const uint32_t octet_c = i < input_length ? data[i++] : 0; - uint32_t triple = (octet_a << 0x10) + (octet_b << 0x08) + octet_c; + const uint32_t triple = (octet_a << 0x10) + (octet_b << 0x08) + octet_c; encoded_data[j++] = encoding_table[(triple >> 3 * 6) & 0x3F]; encoded_data[j++] = encoding_table[(triple >> 2 * 6) & 0x3F]; @@ -1369,12 +1369,12 @@ unsigned char *base64_decode(const char *data, size_t input_length, size_t *outp size_t j; for (i = 0, j = 0; i < (int)input_length;) { - uint32_t sextet_a = data[i] == '=' ? 0 & i++ : decoding_table[(int)data[i++]]; - uint32_t sextet_b = data[i] == '=' ? 0 & i++ : decoding_table[(int)data[i++]]; - uint32_t sextet_c = data[i] == '=' ? 0 & i++ : decoding_table[(int)data[i++]]; - uint32_t sextet_d = data[i] == '=' ? 0 & i++ : decoding_table[(int)data[i++]]; + const uint32_t sextet_a = data[i] == '=' ? 0 & i++ : decoding_table[(int)data[i++]]; + const uint32_t sextet_b = data[i] == '=' ? 0 & i++ : decoding_table[(int)data[i++]]; + const uint32_t sextet_c = data[i] == '=' ? 0 & i++ : decoding_table[(int)data[i++]]; + const uint32_t sextet_d = data[i] == '=' ? 0 & i++ : decoding_table[(int)data[i++]]; - uint32_t triple = (sextet_a << 3 * 6) + (sextet_b << 2 * 6) + (sextet_c << 1 * 6) + (sextet_d << 0 * 6); + const uint32_t triple = (sextet_a << 3 * 6) + (sextet_b << 2 * 6) + (sextet_c << 1 * 6) + (sextet_d << 0 * 6); if (j < *output_length) { decoded_data[j++] = (triple >> 2 * 8) & 0xFF; diff --git a/src/apps/common/ns_turn_utils.c b/src/apps/common/ns_turn_utils.c index 33c200b..aeab08b 100644 --- a/src/apps/common/ns_turn_utils.c +++ b/src/apps/common/ns_turn_utils.c @@ -216,7 +216,7 @@ void set_syslog_facility(char *val) { return; } #if defined(__unix__) || defined(unix) || defined(__APPLE__) - int tmp = str_to_syslog_facility(val); + const int tmp = str_to_syslog_facility(val); if (tmp == -1) { TURN_LOG_FUNC(TURN_LOG_LEVEL_WARNING, "WARNING: invalid syslog-facility value (%s); ignored.\n", val); return; @@ -578,7 +578,7 @@ void turn_log_func_default(const char *const file, const int line, const TURN_LO char s[MAX_RTPPRINTF_BUFFER_SIZE + 1]; size_t so_far = 0; if (use_new_log_timestamp_format) { - time_t now = time(NULL); + const time_t now = time(NULL); so_far += strftime(s, sizeof(s), turn_log_timestamp_format, localtime(&now)); } else { so_far += snprintf(s, sizeof(s), "%lu: ", (unsigned long)log_time()); @@ -721,7 +721,7 @@ int get_canonic_origin(const char *o, char *co, int sz) { if (uri) { const char *scheme = evhttp_uri_get_scheme(uri); if (scheme && scheme[0]) { - size_t schlen = strlen(scheme); + const size_t schlen = strlen(scheme); if ((schlen < (size_t)sz) && (schlen < STUN_MAX_ORIGIN_SIZE)) { const char *host = evhttp_uri_get_host(uri); if (host && host[0]) { diff --git a/src/apps/common/stun_buffer.c b/src/apps/common/stun_buffer.c index 9e3970a..695079e 100644 --- a/src/apps/common/stun_buffer.c +++ b/src/apps/common/stun_buffer.c @@ -152,7 +152,7 @@ bool stun_is_channel_message(stun_buffer *buf, uint16_t *chnumber, bool is_paddi return false; } size_t blen = buf->len; - bool ret = stun_is_channel_message_str(buf->buf, &blen, chnumber, is_padding_mandatory); + const bool ret = stun_is_channel_message_str(buf->buf, &blen, chnumber, is_padding_mandatory); if (ret) { buf->len = blen; } diff --git a/src/apps/natdiscovery/natdiscovery.c b/src/apps/natdiscovery/natdiscovery.c index 4569fbc..fdecde7 100644 --- a/src/apps/natdiscovery/natdiscovery.c +++ b/src/apps/natdiscovery/natdiscovery.c @@ -62,7 +62,7 @@ static int counter = 0; #ifdef __cplusplus static int init_socket(int *socketfd, ioa_addr *local_addr, int local_port, ioa_addr *remote_addr) { - int ret = 0; + const int ret = 0; if (local_port >= 0) { addr_set_port(local_addr, local_port); @@ -84,7 +84,7 @@ static int init_socket(int *socketfd, ioa_addr *local_addr, int local_port, ioa_ static int stunclient_send(int sockfd, ioa_addr *local_addr, int *local_port, ioa_addr *remote_addr, bool change_ip, bool change_port, int padding, int response_port) { - int ret = 0; + const int ret = 0; turn::StunMsgRequest req(STUN_METHOD_BINDING); @@ -141,8 +141,8 @@ static int stunclient_send(int sockfd, ioa_addr *local_addr, int *local_port, io } { - int len = 0; - int slen = get_ioa_addr_len(remote_addr); + const int len = 0; + const int slen = get_ioa_addr_len(remote_addr); do { len = sendto(sockfd, req.getRawBuffer(), req.getSize(), 0, (struct sockaddr *)remote_addr, (socklen_t)slen); @@ -234,7 +234,7 @@ static int stunclient_receive(int sockfd, ioa_addr *local_addr, ioa_addr *reflex addr1.getAddr(*other_addr); turn::StunAttrIterator iter3(res, STUN_ATTRIBUTE_RESPONSE_ORIGIN); if (!iter3.eof()) { - ioa_addr response_origin; + const ioa_addr response_origin; turn::StunAttrAddr addr3(iter3); addr3.getAddr(response_origin); addr_debug_print(1, &response_origin, "Response origin: "); diff --git a/src/apps/oauth/oauth.c b/src/apps/oauth/oauth.c index cd04e3f..d3a502e 100644 --- a/src/apps/oauth/oauth.c +++ b/src/apps/oauth/oauth.c @@ -86,7 +86,7 @@ static int setup_ikm_key(const char *kid, const char *ikm_key, const turn_time_t } char err_msg[1025] = "\0"; - size_t err_msg_size = sizeof(err_msg) - 1; + const size_t err_msg_size = sizeof(err_msg) - 1; if (!convert_oauth_key_data(&okd, key, err_msg, err_msg_size)) { fprintf(stderr, "%s\n", err_msg); @@ -165,8 +165,8 @@ static void print_token_body(oauth_token *dot) { printf("{\n"); printf(" mac key: %s\n", (char *)dot->enc_block.mac_key); printf(" mac key length: %d\n", (int)dot->enc_block.key_length); - time_t time = dot->enc_block.timestamp >> 16; - unsigned msec = (dot->enc_block.timestamp & 0xFFFF) * 64; + const time_t time = dot->enc_block.timestamp >> 16; + const unsigned msec = (dot->enc_block.timestamp & 0xFFFF) * 64; printf(" timestamp:\n"); printf(" unixtime: %u (localtime: %s )", (unsigned int)time, ctime(&time)); printf(" msec:%u\n", msec); @@ -212,7 +212,7 @@ int main(int argc, char **argv) { char mac_key[OAUTH_MAC_KEY_SIZE + 1] = ""; - time_t current_time = time(NULL); + const time_t current_time = time(NULL); struct tm *gmt = gmtime(¤t_time); uint64_t token_timestamp = (unsigned long long)mktime(gmt) << 16; uint32_t token_lifetime = OAUTH_TOKEN_LIFETIME; diff --git a/src/apps/peer/udpserver.c b/src/apps/peer/udpserver.c index d62de45..ef25a37 100644 --- a/src/apps/peer/udpserver.c +++ b/src/apps/peer/udpserver.c @@ -69,7 +69,7 @@ static void udp_server_input_handler(evutil_socket_t fd, short what, void *arg) ///////////////////// operations ////////////////////////// static int udp_create_server_socket(server_type *const server, const char *const ifname, - const char *const local_address, int const port) { + const char *const local_address, const int port) { if (!server) { return -1; diff --git a/src/apps/relay/dbdrivers/dbd_sqlite.c b/src/apps/relay/dbdrivers/dbd_sqlite.c index 4d64494..111dc37 100644 --- a/src/apps/relay/dbdrivers/dbd_sqlite.c +++ b/src/apps/relay/dbdrivers/dbd_sqlite.c @@ -59,14 +59,14 @@ static int read_threads = 0; static int write_level = 0; #if defined(WINDOWS) static pthread_t write_thread = {0}; -static pthread_t const null_thread = {0}; +static const pthread_t null_thread = {0}; #else static pthread_t write_thread = 0; -static pthread_t const null_thread = 0; +static const pthread_t null_thread = 0; #endif -static void sqlite_lock(bool const write) { - pthread_t const pths = pthread_self(); +static void sqlite_lock(const bool write) { + const pthread_t pths = pthread_self(); bool can_move = false; while (!can_move) { @@ -88,7 +88,7 @@ static void sqlite_lock(bool const write) { } } -static void sqlite_unlock(bool const write) { +static void sqlite_unlock(const bool write) { pthread_mutex_lock(&rc_mutex); if (write) { if (--write_level == 0) { @@ -145,8 +145,8 @@ static void fix_user_directory(char *dir0) { } } } - size_t szh = strlen(home); - size_t sz = strlen(dir0) + 1 + szh; + const size_t szh = strlen(home); + const size_t sz = strlen(dir0) + 1 + szh; char *dir_fixed = (char *)malloc(sz); strncpy(dir_fixed, home, szh); strncpy(dir_fixed + szh, dir + 1, (sz - szh - 1)); @@ -195,7 +195,7 @@ static sqlite3 *get_sqlite_connection(void) { fix_user_directory(pud->userdb); (void)pthread_once(&sqlite_init_once, sqlite_init_multithreaded); - int const rc = sqlite3_open(pud->userdb, &sqliteconnection); + const int rc = sqlite3_open(pud->userdb, &sqliteconnection); if ((sqliteconnection == NULL) || (rc != SQLITE_OK)) { const char *errmsg = sqlite3_errmsg(sqliteconnection); TURN_LOG_FUNC( @@ -287,8 +287,8 @@ static int sqlite_get_user_key(uint8_t *usname, uint8_t *realm, hmackey_t key) { // TODO: Error if more than one result. if (sqlite3_step(st) == SQLITE_ROW) { - char const *const kval = (const char *)sqlite3_column_text(st, 0); - size_t const sz = get_hmackey_size(SHATYPE_DEFAULT); + const char *const kval = (const char *)sqlite3_column_text(st, 0); + const size_t sz = get_hmackey_size(SHATYPE_DEFAULT); convert_string_key_to_binary(kval, key, sz); ret = 0; } @@ -1117,7 +1117,7 @@ static void sqlite_reread_realms(secrets_list_t *realms_list) { { lock_realms(); - size_t const rlsz = realms_list->sz; + const size_t rlsz = realms_list->sz; unlock_realms(); for (size_t i = 0; i < rlsz; ++i) { diff --git a/src/apps/relay/dbdrivers/dbdriver.c b/src/apps/relay/dbdrivers/dbdriver.c index 6ac483d..3039d5d 100644 --- a/src/apps/relay/dbdrivers/dbdriver.c +++ b/src/apps/relay/dbdrivers/dbdriver.c @@ -49,7 +49,7 @@ static void make_connection_key(void) { (void)pthread_key_create(&connection_key pthread_key_t connection_key; pthread_once_t connection_key_once = PTHREAD_ONCE_INIT; -void convert_string_key_to_binary(char const *keysource, hmackey_t key, size_t sz) { +void convert_string_key_to_binary(const char *keysource, hmackey_t key, size_t sz) { char is[3]; size_t i; unsigned int v; @@ -129,7 +129,7 @@ char *sanitize_userdb_string(char *udb) { pstart += strlen("postgresql://"); pend = strstr(pstart, "@"); if (pend != NULL) { - size_t plen = pend - pstart; + const size_t plen = pend - pstart; memset(pstart, '*', plen); } } diff --git a/src/apps/relay/dbdrivers/dbdriver.h b/src/apps/relay/dbdrivers/dbdriver.h index 20ef723..06cc53d 100644 --- a/src/apps/relay/dbdrivers/dbdriver.h +++ b/src/apps/relay/dbdrivers/dbdriver.h @@ -83,7 +83,7 @@ typedef struct _turn_dbdriver_t { /////////// USER DB CHECK ////////////////// -void convert_string_key_to_binary(char const *keysource, hmackey_t key, size_t sz); +void convert_string_key_to_binary(const char *keysource, hmackey_t key, size_t sz); persistent_users_db_t *get_persistent_users_db(void); const turn_dbdriver_t *get_dbdriver(void); char *sanitize_userdb_string(char *udb); diff --git a/src/apps/relay/dtls_listener.c b/src/apps/relay/dtls_listener.c index 68b756e..5d7da07 100644 --- a/src/apps/relay/dtls_listener.c +++ b/src/apps/relay/dtls_listener.c @@ -135,8 +135,8 @@ int get_dtls_version(const unsigned char *buf, int len) { #if DTLS_SUPPORTED static void calculate_cookie(SSL *ssl, unsigned char *cookie_secret, unsigned int cookie_length) { - long rv = (long)ssl; - long inum = (cookie_length - (((long)cookie_secret) % sizeof(long))) / sizeof(long); + const long rv = (long)ssl; + const long inum = (cookie_length - (((long)cookie_secret) % sizeof(long))) / sizeof(long); long i = 0; long *ip = (long *)cookie_secret; for (i = 0; i < inum; ++i, ++ip) { @@ -233,7 +233,7 @@ static ioa_socket_handle dtls_accept_client_connection(dtls_listener_relay_serve return NULL; } - int rc = ssl_read(sock->fd, ssl, nbh, server->verbose); + const int rc = ssl_read(sock->fd, ssl, nbh, server->verbose); if (rc < 0) { return NULL; @@ -309,7 +309,7 @@ static ioa_socket_handle dtls_server_input_handler(dtls_listener_relay_server_ty static int handle_udp_packet(dtls_listener_relay_server_type *server, struct message_to_relay *sm, ioa_engine_handle ioa_eng, turn_turnserver *ts) { - int verbose = ioa_eng->verbose; + const int verbose = ioa_eng->verbose; ioa_socket_handle s = sm->m.sm.s; ur_addr_map_value_type mvt = 0; @@ -328,7 +328,7 @@ static int handle_udp_packet(dtls_listener_relay_server_type *server, struct mes s = chs; sm->m.sm.s = s; if (s->ssl) { - int sslret = ssl_read(s->fd, s->ssl, sm->m.sm.nd.nbh, verbose); + const int sslret = ssl_read(s->fd, s->ssl, sm->m.sm.nd.nbh, verbose); if (sslret < 0) { ioa_network_buffer_delete(ioa_eng, sm->m.sm.nd.nbh); sm->m.sm.nd.nbh = NULL; @@ -556,7 +556,7 @@ static int create_new_connected_udp_socket(dtls_listener_relay_server_type *serv ); SSL_set_max_cert_list(connecting_ssl, 655350); - int rc = ssl_read(ret->fd, connecting_ssl, server->sm.m.sm.nd.nbh, server->verbose); + const int rc = ssl_read(ret->fd, connecting_ssl, server->sm.m.sm.nd.nbh, server->verbose); if (rc < 0) { if (!(SSL_get_shutdown(connecting_ssl) & SSL_SENT_SHUTDOWN)) { @@ -621,7 +621,7 @@ start_udp_cycle: u_long iMode = 1; ioctlsocket(fd, FIONBIO, &iMode); #else - int flags = MSG_DONTWAIT; + const int flags = MSG_DONTWAIT; #endif bsize = udp_recvfrom(fd, &(server->sm.m.sm.nd.src_addr), &(server->addr), (char *)ioa_network_buffer_data(elem), (int)ioa_network_buffer_get_capacity_udp(), &(server->sm.m.sm.nd.recv_ttl), @@ -652,7 +652,7 @@ start_udp_cycle: ioctlsocket(fd, FIONBIO, &iMode); #else // Linux - int eflags = MSG_ERRQUEUE | MSG_DONTWAIT; + const int eflags = MSG_ERRQUEUE | MSG_DONTWAIT; #endif static char buffer[65535]; uint32_t errcode = 0; @@ -689,7 +689,7 @@ start_udp_cycle: if (bsize < 0) { if (!to_block && !conn_reset) { - int ern = socket_errno(); + const int ern = socket_errno(); perror(__FUNCTION__); TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "%s: recvfrom error %d\n", __FUNCTION__, ern); } @@ -829,7 +829,7 @@ static int reopen_server_socket(dtls_listener_relay_server_type *server, evutil_ return create_server_socket(server, 1); } - ioa_socket_raw udp_listen_fd = + const ioa_socket_raw udp_listen_fd = socket(server->addr.ss.sa_family, CLIENT_DGRAM_SOCKET_TYPE, CLIENT_DGRAM_SOCKET_PROTOCOL); if (udp_listen_fd < 0) { perror("socket"); diff --git a/src/apps/relay/http_server.c b/src/apps/relay/http_server.c index 7e0bb52..4a25ff9 100644 --- a/src/apps/relay/http_server.c +++ b/src/apps/relay/http_server.c @@ -58,7 +58,7 @@ struct http_headers { static void write_http_echo(ioa_socket_handle s) { if (s && !ioa_socket_tobeclosed(s)) { - SOCKET_APP_TYPE sat = get_ioa_socket_app_type(s); + const SOCKET_APP_TYPE sat = get_ioa_socket_app_type(s); if ((sat == HTTP_CLIENT_SOCKET) || (sat == HTTPS_CLIENT_SOCKET)) { char content_http[1025]; const char *const title = "TURN Server"; @@ -91,7 +91,7 @@ const char *get_http_date_header(void) { static const char *wds[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; static const char *mons[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; - time_t now = time(NULL); + const time_t now = time(NULL); struct tm *gmtm = gmtime(&now); buffer_header[0] = 0; @@ -351,7 +351,7 @@ struct str_buffer *str_buffer_new(void) { void str_buffer_append(struct str_buffer *sb, const char *str) { if (sb && str && str[0]) { - size_t len = strlen(str); + const size_t len = strlen(str); while (sb->sz + len + 1 > sb->capacity) { sb->capacity += len + 1024; sb->buffer = (char *)realloc(sb->buffer, sb->capacity); diff --git a/src/apps/relay/mainrelay.c b/src/apps/relay/mainrelay.c index 16e99f7..bfc39e6 100644 --- a/src/apps/relay/mainrelay.c +++ b/src/apps/relay/mainrelay.c @@ -1816,7 +1816,7 @@ unsigned char *base64decode(const void *b64_decode_this, int decode_this_many_by int decodedTextSize(char *input) { int i = 0; int result = 0, padding = 0; - int size = strlen(input); + const int size = strlen(input); for (i = 0; i < size; ++i) { if (input[i] == '=') { padding++; @@ -1831,8 +1831,8 @@ void decrypt_aes_128(char *in, const unsigned char *mykey) { AES_KEY key; unsigned char outdata[256] = {0}; AES_set_encrypt_key(mykey, 128, &key); - int newTotalSize = decodedTextSize(in); - int bytes_to_decode = strlen(in); + const int newTotalSize = decodedTextSize(in); + const int bytes_to_decode = strlen(in); unsigned char *encryptedText = base64decode(in, bytes_to_decode); char last[1024] = ""; struct ctr_state state; @@ -1929,7 +1929,7 @@ static void set_option(int c, char *value) { turn_params.no_tlsv1_2 = get_bool_value(value); break; case NE_TYPE_OPT: { - int ne = atoi(value); + const int ne = atoi(value); if ((ne < (int)NEV_MIN) || (ne > (int)NEV_MAX)) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "ERROR: wrong version of the network engine: %d\n", ne); } @@ -2797,7 +2797,7 @@ static int adminmain(int argc, char **argv) { exit(-1); } - int result = adminuser(user, realm, pwd, secret, origin, ct, &po, is_admin); + const int result = adminuser(user, realm, pwd, secret, origin, ct, &po, is_admin); disconnect_database(); @@ -3090,7 +3090,7 @@ int main(int argc, char **argv) { read_config_file(argc, argv, 2); { - unsigned long mfn = set_system_parameters(1); + const unsigned long mfn = set_system_parameters(1); print_features(mfn); } @@ -3226,7 +3226,7 @@ int main(int argc, char **argv) { if (!turn_params.listener.addrs_number) { TURN_LOG_FUNC(TURN_LOG_LEVEL_WARNING, "NO EXPLICIT LISTENER ADDRESS(ES) ARE CONFIGURED\n"); TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "===========Discovering listener addresses: =========\n"); - int maddrs = make_local_listeners_list(); + const int maddrs = make_local_listeners_list(); if ((maddrs < 1) || !turn_params.listener.addrs_number) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "%s: Cannot configure any meaningful IP listener address\n", __FUNCTION__); fprintf(stderr, "\n%s\n", Usage); @@ -3296,7 +3296,7 @@ int main(int argc, char **argv) { #else if (turn_params.turn_daemon) { #if !defined(TURN_HAS_DAEMON) - pid_t pid = fork(); + const pid_t pid = fork(); if (pid > 0) { exit(0); } @@ -3542,15 +3542,15 @@ static int ServerALPNCallback(SSL *ssl, const unsigned char **out, unsigned char UNUSED_ARG(ssl); UNUSED_ARG(arg); - unsigned char sa_len = (unsigned char)strlen(STUN_ALPN); - unsigned char ta_len = (unsigned char)strlen(TURN_ALPN); - unsigned char ha_len = (unsigned char)strlen(HTTP_ALPN); + const unsigned char sa_len = (unsigned char)strlen(STUN_ALPN); + const unsigned char ta_len = (unsigned char)strlen(TURN_ALPN); + const unsigned char ha_len = (unsigned char)strlen(HTTP_ALPN); int found_http = 0; const unsigned char *ptr = in; while (ptr < (in + inlen)) { - unsigned char current_len = *ptr; + const unsigned char current_len = *ptr; if (ptr + 1 + current_len > in + inlen) { break; } diff --git a/src/apps/relay/netengine.c b/src/apps/relay/netengine.c index 589a99b..06f8284 100644 --- a/src/apps/relay/netengine.c +++ b/src/apps/relay/netengine.c @@ -94,7 +94,7 @@ static void barrier_wait_func(const char *func, int line) { do { br = pthread_barrier_wait(&barrier); if ((br < 0) && (br != PTHREAD_BARRIER_SERIAL_THREAD)) { - int err = socket_errno(); + const int err = socket_errno(); perror("barrier wait"); printf("%s:%s:%d: %d\n", __FUNCTION__, func, line, err); } @@ -123,7 +123,7 @@ static band_limit_t allocate_bps(band_limit_t bps, int positive) { ret = bps; turn_params.bps_capacity_allocated += ret; } else if (turn_params.bps_capacity_allocated < turn_params.bps_capacity) { - band_limit_t reserve = turn_params.bps_capacity - turn_params.bps_capacity_allocated; + const band_limit_t reserve = turn_params.bps_capacity - turn_params.bps_capacity_allocated; if (reserve <= bps) { ret = reserve; turn_params.bps_capacity_allocated = turn_params.bps_capacity; @@ -441,7 +441,7 @@ static int handle_relay_message(relay_server_handle rs, struct message_to_relay static struct relay_server *get_relay_server(turnserver_id id) { struct relay_server *rs = NULL; if (id >= TURNSERVER_ID_BOUNDARY_BETWEEN_TCP_AND_UDP) { - size_t dest = id - TURNSERVER_ID_BOUNDARY_BETWEEN_TCP_AND_UDP; + const size_t dest = id - TURNSERVER_ID_BOUNDARY_BETWEEN_TCP_AND_UDP; if (dest >= get_real_udp_relay_servers_number()) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "%s: Too large UDP relay number: %d, total=%d\n", __FUNCTION__, (int)dest, (int)get_real_udp_relay_servers_number()); @@ -452,7 +452,7 @@ static struct relay_server *get_relay_server(turnserver_id id) { (int)get_real_udp_relay_servers_number()); } } else { - size_t dest = id; + const size_t dest = id; if (dest >= get_real_general_relay_servers_number()) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "%s: Too large general relay number: %d, total=%d\n", __FUNCTION__, (int)dest, (int)get_real_general_relay_servers_number()); @@ -476,7 +476,7 @@ void send_auth_message_to_auth_server(struct auth_message *am) { } else if (auth_message_counter < 1) { auth_message_counter = 1; } - authserver_id sn = auth_message_counter++; + const authserver_id sn = auth_message_counter++; TURN_MUTEX_UNLOCK(&auth_message_counter_mutex); struct evbuffer *output = bufferevent_get_output(authserver[sn].out_buf); @@ -530,7 +530,7 @@ static int send_socket_to_general_relay(ioa_engine_handle e, struct message_to_r struct relay_server *rdest = sm->relay_server; if (!rdest) { - size_t dest = (hash_int32(addr_get_port(&(sm->m.sm.nd.src_addr)))) % get_real_general_relay_servers_number(); + const size_t dest = (hash_int32(addr_get_port(&(sm->m.sm.nd.src_addr)))) % get_real_general_relay_servers_number(); rdest = general_relay_servers[dest]; } @@ -673,7 +673,7 @@ int send_session_cancellation_to_relay(turnsession_id sid) { memset(&sm, 0, sizeof(struct message_to_relay)); sm.t = RMT_CANCEL_SESSION; - turnserver_id id = (turnserver_id)(sid / TURN_SESSION_ID_FACTOR); + const turnserver_id id = (turnserver_id)(sid / TURN_SESSION_ID_FACTOR); struct relay_server *rs = get_relay_server(id); if (!rs) { @@ -887,7 +887,7 @@ static void listener_receive_message(struct bufferevent *bev, void *ptr) { int found = 0; for (i = 0; i < turn_params.listener.addrs_number; i++) { if (addr_eq_no_port(turn_params.listener.encaddrs[i], &mm.m.tc.origin)) { - int o_port = addr_get_port(&mm.m.tc.origin); + const int o_port = addr_get_port(&mm.m.tc.origin); if (turn_params.listener.addrs_number == turn_params.listener.services_number) { if (o_port == turn_params.listener_port) { if (turn_params.listener.udp_services && turn_params.listener.udp_services[i] && @@ -957,7 +957,7 @@ static ioa_engine_handle create_new_listener_engine(void) { } static void *run_udp_listener_thread(void *arg) { - static int always_true = 1; + static const int always_true = 1; ignore_sigpipe(); @@ -1138,14 +1138,14 @@ static void setup_socket_per_endpoint_udp_listener_servers(void) { /* Aux UDP servers */ for (i = 0; i < turn_params.aux_servers_list.size; i++) { - size_t index = i; + const int index = i; if (!turn_params.no_udp || !turn_params.no_dtls) { ioa_addr addr; char saddr[129]; addr_cpy(&addr, &turn_params.aux_servers_list.addrs[i]); - int port = (int)addr_get_port(&addr); + const int port = (int)addr_get_port(&addr); addr_to_string_no_port(&addr, (uint8_t *)saddr); turn_params.listener.aux_udp_services[index] = (dtls_listener_relay_server_type **)allocate_super_memory_engine( @@ -1170,7 +1170,7 @@ static void setup_socket_per_endpoint_udp_listener_servers(void) { /* Main servers */ for (i = 0; i < turn_params.listener.addrs_number; i++) { - int index = turn_params.rfc5780 ? i * 2 : i; + const int index = turn_params.rfc5780 ? i * 2 : i; /* UDP: */ if (!turn_params.no_udp) { @@ -1280,14 +1280,14 @@ static void setup_socket_per_thread_udp_listener_servers(void) { /* Aux UDP servers */ for (i = 0; i < turn_params.aux_servers_list.size; i++) { - int index = i; + const int index = i; if (!turn_params.no_udp || !turn_params.no_dtls) { ioa_addr addr; char saddr[129]; addr_cpy(&addr, &turn_params.aux_servers_list.addrs[i]); - int port = (int)addr_get_port(&addr); + const int port = (int)addr_get_port(&addr); addr_to_string_no_port(&addr, (uint8_t *)saddr); turn_params.listener.aux_udp_services[index] = (dtls_listener_relay_server_type **)allocate_super_memory_engine( @@ -1305,7 +1305,7 @@ static void setup_socket_per_thread_udp_listener_servers(void) { /* Main servers */ for (i = 0; i < turn_params.listener.addrs_number; i++) { - int index = turn_params.rfc5780 ? i * 2 : i; + const int index = turn_params.rfc5780 ? i * 2 : i; /* UDP: */ if (!turn_params.no_udp) { @@ -1382,14 +1382,14 @@ static void setup_socket_per_session_udp_listener_servers(void) { /* Aux UDP servers */ for (i = 0; i < turn_params.aux_servers_list.size; i++) { - int index = i; + const int index = i; if (!turn_params.no_udp || !turn_params.no_dtls) { ioa_addr addr; char saddr[129]; addr_cpy(&addr, &turn_params.aux_servers_list.addrs[i]); - int port = (int)addr_get_port(&addr); + const int port = (int)addr_get_port(&addr); addr_to_string_no_port(&addr, (uint8_t *)saddr); turn_params.listener.aux_udp_services[index] = (dtls_listener_relay_server_type **)allocate_super_memory_engine( @@ -1404,7 +1404,7 @@ static void setup_socket_per_session_udp_listener_servers(void) { /* Main servers */ for (i = 0; i < turn_params.listener.addrs_number; i++) { - int index = turn_params.rfc5780 ? i * 2 : i; + const int index = turn_params.rfc5780 ? i * 2 : i; /* UDP: */ if (!turn_params.no_udp) { @@ -1480,7 +1480,7 @@ static void setup_tcp_listener_servers(ioa_engine_handle e, struct relay_server ioa_addr addr; char saddr[129]; addr_cpy(&addr, &turn_params.aux_servers_list.addrs[i]); - int port = (int)addr_get_port(&addr); + const int port = (int)addr_get_port(&addr); addr_to_string_no_port(&addr, (uint8_t *)saddr); aux_tcp_services[i] = create_tls_listener_server(turn_params.listener_ifname, saddr, port, turn_params.verbose, e, @@ -1491,7 +1491,7 @@ static void setup_tcp_listener_servers(ioa_engine_handle e, struct relay_server /* Main servers */ for (i = 0; i < turn_params.listener.addrs_number; i++) { - int index = turn_params.rfc5780 ? i * 2 : i; + const int index = turn_params.rfc5780 ? i * 2 : i; /* TCP: */ if (!turn_params.no_tcp) { @@ -1538,7 +1538,7 @@ static int get_alt_addr(ioa_addr *addr, ioa_addr *alt_addr) { size_t index = 0xffff; size_t i = 0; int alt_port = -1; - int port = addr_get_port(addr); + const int port = addr_get_port(addr); if (port == turn_params.listener_port) { alt_port = get_alt_listener_port(); @@ -1562,7 +1562,7 @@ static int get_alt_addr(ioa_addr *addr, ioa_addr *alt_addr) { } if (index != 0xffff) { for (i = 0; i < turn_params.listener.addrs_number; i++) { - size_t ind = (index + i + 1) % turn_params.listener.addrs_number; + const size_t ind = (index + i + 1) % turn_params.listener.addrs_number; if (turn_params.listener.encaddrs && turn_params.listener.encaddrs[ind]) { ioa_addr *caddr = turn_params.listener.encaddrs[ind]; if (caddr->ss.sa_family == addr->ss.sa_family) { @@ -1684,14 +1684,14 @@ static void setup_relay_server(struct relay_server *rs, ioa_engine_handle e, int } static void *run_general_relay_thread(void *arg) { - static int always_true = 1; + static const int always_true = 1; struct relay_server *rs = (struct relay_server *)arg; - int udp_reuses_the_same_relay_server = (turn_params.general_relay_servers_number <= 1) || - (turn_params.net_engine_version == NEV_UDP_SOCKET_PER_THREAD) || - (turn_params.net_engine_version == NEV_UDP_SOCKET_PER_SESSION); + const int udp_reuses_the_same_relay_server = (turn_params.general_relay_servers_number <= 1) || + (turn_params.net_engine_version == NEV_UDP_SOCKET_PER_THREAD) || + (turn_params.net_engine_version == NEV_UDP_SOCKET_PER_SESSION); - int we_need_rfc5780 = udp_reuses_the_same_relay_server && turn_params.rfc5780; + const int we_need_rfc5780 = udp_reuses_the_same_relay_server && turn_params.rfc5780; ignore_sigpipe(); @@ -1742,7 +1742,7 @@ static void *run_auth_server_thread(void *arg) { struct auth_server *as = (struct auth_server *)arg; - authserver_id id = as->id; + const authserver_id id = as->id; if (id == 0) { @@ -1884,7 +1884,7 @@ void setup_server(void) { } { - int tot = get_real_general_relay_servers_number(); + const int tot = get_real_general_relay_servers_number(); if (tot) { int i; for (i = 0; i < tot; i++) { diff --git a/src/apps/relay/ns_ioalib_engine_impl.c b/src/apps/relay/ns_ioalib_engine_impl.c index 44f2917..85aa11c 100644 --- a/src/apps/relay/ns_ioalib_engine_impl.c +++ b/src/apps/relay/ns_ioalib_engine_impl.c @@ -143,8 +143,8 @@ static int is_socket_writeable(ioa_socket_handle s, size_t sz, const char *msg, struct evbuffer *evb = bufferevent_get_output(s->bev); if (evb) { - size_t bufsz = evbuffer_get_length(evb); - size_t newsz = bufsz + sz; + const size_t bufsz = evbuffer_get_length(evb); + const size_t newsz = bufsz + sz; switch (s->sat) { case TCP_CLIENT_DATA_SOCKET: @@ -641,9 +641,9 @@ int ioa_socket_check_bandwidth(ioa_socket_handle s, ioa_network_buffer_handle nb if (s && (s->e) && nbh && ((s->sat == CLIENT_SOCKET) || (s->sat == RELAY_SOCKET) || (s->sat == RELAY_RTCP_SOCKET)) && (s->session)) { - size_t sz = ioa_network_buffer_get_size(nbh); + const size_t sz = ioa_network_buffer_get_size(nbh); - band_limit_t max_bps = s->session->bps; + const band_limit_t max_bps = s->session->bps; if (max_bps < 1) { return 1; @@ -654,14 +654,14 @@ int ioa_socket_check_bandwidth(ioa_socket_handle s, ioa_network_buffer_handle nb if (s->sat == CLIENT_SOCKET) { uint8_t *buf = ioa_network_buffer_data(nbh); if (stun_is_command_message_str(buf, sz)) { - uint16_t method = stun_get_method_str(buf, sz); + const uint16_t method = stun_get_method_str(buf, sz); if ((method != STUN_METHOD_SEND) && (method != STUN_METHOD_DATA)) { traffic = &(s->control_traffic); } } } - band_limit_t bsz = (band_limit_t)sz; + const band_limit_t bsz = (band_limit_t)sz; if (s->jiffie != s->e->jiffie) { @@ -730,7 +730,7 @@ static int set_socket_ttl(ioa_socket_handle s, int ttl) { } if (s->current_ttl != ttl) { - int ret = set_raw_socket_ttl(s->fd, s->family, ttl); + const int ret = set_raw_socket_ttl(s->fd, s->family, ttl); s->current_ttl = ttl; return ret; } @@ -750,7 +750,7 @@ static int set_socket_tos(ioa_socket_handle s, int tos) { CORRECT_RAW_TOS(tos); if (s->current_tos != tos) { - int ret = set_raw_socket_tos(s->fd, s->family, tos); + const int ret = set_raw_socket_tos(s->fd, s->family, tos); s->current_tos = tos; return ret; } @@ -946,7 +946,7 @@ static int bind_ioa_socket(ioa_socket_handle s, const ioa_addr *local_addr, int if (s && s->fd >= 0 && s->e && local_addr) { - int res = addr_bind(s->fd, local_addr, reusable, 1, s->st); + const int res = addr_bind(s->fd, local_addr, reusable, 1, s->st); if (res >= 0) { s->bound = 1; addr_cpy(&(s->local_addr), local_addr); @@ -1793,15 +1793,15 @@ int ssl_read(evutil_socket_t fd, SSL *ssl, ioa_network_buffer_handle nbh, int ve } char *buffer = (char *)ioa_network_buffer_data(nbh); - int buf_size = (int)ioa_network_buffer_get_capacity_udp(); - int read_len = (int)ioa_network_buffer_get_size(nbh); + const int buf_size = (int)ioa_network_buffer_get_capacity_udp(); + const int read_len = (int)ioa_network_buffer_get_size(nbh); if (read_len < 1) { return -1; } char *new_buffer = buffer + buf_size; - int old_buffer_len = read_len; + const int old_buffer_len = read_len; int len = 0; @@ -1823,13 +1823,13 @@ int ssl_read(evutil_socket_t fd, SSL *ssl, ioa_network_buffer_handle nbh, int ve SSL_set0_rbio(ssl, rbio); #endif - int if1 = SSL_is_init_finished(ssl); + const int if1 = SSL_is_init_finished(ssl); do { len = SSL_read(ssl, new_buffer, buf_size); } while (len < 0 && socket_eintr()); - int if2 = SSL_is_init_finished(ssl); + const int if2 = SSL_is_init_finished(ssl); if (eve(verbose)) { TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "%s: after read: %d\n", __FUNCTION__, len); @@ -1883,7 +1883,7 @@ int ssl_read(evutil_socket_t fd, SSL *ssl, ioa_network_buffer_handle nbh, int ve ret = 0; break; case SSL_ERROR_SYSCALL: { - int err = socket_errno(); + const int err = socket_errno(); if (handle_socket_error()) { ret = 0; } else { @@ -1937,7 +1937,7 @@ static int socket_readerr(evutil_socket_t fd, ioa_addr *orig_addr) { TURN_LOG_FUNC(TURN_LOG_LEVEL_WARNING, "The socket_readerr is not implement in _MSC_VER"); #else uint8_t ecmsg[TURN_CMSG_SZ + 1]; - int flags = MSG_ERRQUEUE; + const int flags = MSG_ERRQUEUE; int len = 0; struct msghdr msg; @@ -1989,7 +1989,7 @@ int udp_recvfrom(evutil_socket_t fd, ioa_addr *orig_addr, const ioa_addr *like_a *errcode = 0; } - int slen = get_ioa_addr_len(like_addr); + const int slen = get_ioa_addr_len(like_addr); recv_ttl_t recv_ttl = TTL_DEFAULT; recv_tos_t recv_tos = TOS_DEFAULT; @@ -2037,7 +2037,7 @@ try_again: if ((len < 0) && (!(flags & MSG_ERRQUEUE))) { // Linux - int eflags = MSG_ERRQUEUE | MSG_DONTWAIT; + const int eflags = MSG_ERRQUEUE | MSG_DONTWAIT; uint32_t errcode1 = 0; udp_recvfrom(fd, orig_addr, like_addr, buffer, buf_size, ttl, tos, ecmsg, eflags, &errcode1); // try again... @@ -2053,8 +2053,8 @@ try_again: // Receive auxiliary data in msg for (cmsgh = CMSG_FIRSTHDR(&msg); cmsgh != NULL; cmsgh = CMSG_NXTHDR(&msg, cmsgh)) { - int l = cmsgh->cmsg_level; - int t = cmsgh->cmsg_type; + const int l = cmsgh->cmsg_level; + const int t = cmsgh->cmsg_type; switch (l) { case IPPROTO_IP: @@ -2142,7 +2142,7 @@ static TURN_TLS_TYPE check_tentative_tls(ioa_socket_raw fd) { if (len > 0 && ((size_t)len == sizeof(s))) { if ((s[0] == 22) && (s[1] == 3) && (s[5] == 1) && (s[9] == 3)) { - char max_supported = (char)(TURN_TLS_TOTAL - 2); + const char max_supported = (char)(TURN_TLS_TOTAL - 2); if (s[10] > max_supported) { ret = TURN_TLS_v1_2; /* compatibility mode */ } else { @@ -2229,8 +2229,8 @@ static ssize_t socket_parse_proxy_v1(ioa_socket_handle s, uint8_t *buf, size_t l tlen++; - int sport_int = atoi(sport); - int dport_int = atoi(dport); + const int sport_int = atoi(sport); + const int dport_int = atoi(dport); if ((sport_int < 0) || (0xFFFF < sport_int)) { return -1; } @@ -2283,18 +2283,18 @@ static ssize_t socket_parse_proxy_v2(ioa_socket_handle s, uint8_t *buf, size_t l } /* Check version */ - uint8_t version = buf[12] >> 4; + const uint8_t version = buf[12] >> 4; if (version != 2) { return -1; } /* Read data */ - uint8_t command = buf[12] & 0xF; - uint8_t family = buf[13] >> 4; - uint8_t proto = buf[13] & 0xF; - size_t plen = ((size_t)buf[14] << 8) | buf[15]; + const uint8_t command = buf[12] & 0xF; + const uint8_t family = buf[13] >> 4; + const uint8_t proto = buf[13] & 0xF; + const size_t plen = ((size_t)buf[14] << 8) | buf[15]; - size_t tlen = 16 + plen; + const size_t tlen = 16 + plen; if (len < tlen) { return 0; } @@ -2421,7 +2421,7 @@ static int socket_input_worker(ioa_socket_handle s) { if (s->st == TENTATIVE_TCP_SOCKET) { EVENT_DEL(s->read_event); #if TLS_SUPPORTED - TURN_TLS_TYPE tls_type = check_tentative_tls(s->fd); + const TURN_TLS_TYPE tls_type = check_tentative_tls(s->fd); if (tls_type) { s->st = TLS_SOCKET; if (s->ssl) { @@ -2460,7 +2460,7 @@ static int socket_input_worker(ioa_socket_handle s) { } else if (s->st == TENTATIVE_SCTP_SOCKET) { EVENT_DEL(s->read_event); #if TLS_SUPPORTED - TURN_TLS_TYPE tls_type = check_tentative_tls(s->fd); + const TURN_TLS_TYPE tls_type = check_tentative_tls(s->fd); if (tls_type) { s->st = TLS_SCTP_SOCKET; if (s->ssl) { @@ -2521,7 +2521,7 @@ try_start: } if (s->st == TCP_SOCKET_PROXY) { - ssize_t tlen = socket_parse_proxy(s, buf_elem->buf.buf, blen); + const ssize_t tlen = socket_parse_proxy(s, buf_elem->buf.buf, blen); blen = 0; if (tlen < 0) { s->tobeclosed = 1; @@ -2986,8 +2986,8 @@ static int ssl_send(ioa_socket_handle s, const char *buffer, int len, int verbos if (!wbio) { return -1; } - int fd = BIO_get_fd(wbio, 0); - int sfd = s->parent_s->fd; + const int fd = BIO_get_fd(wbio, 0); + const int sfd = s->parent_s->fd; if (sfd >= 0) { if (fd != sfd) { BIO_set_fd(wbio, sfd, BIO_NOCLOSE); @@ -2998,7 +2998,7 @@ static int ssl_send(ioa_socket_handle s, const char *buffer, int len, int verbos if (!wbio) { return -1; } - int fd = BIO_get_fd(wbio, 0); + const int fd = BIO_get_fd(wbio, 0); if (fd != s->fd) { BIO_set_fd(wbio, s->fd, BIO_NOCLOSE); } @@ -3055,14 +3055,14 @@ try_start: case SSL_ERROR_WANT_READ: return 0; case SSL_ERROR_SYSCALL: { - int err = socket_errno(); + const int err = socket_errno(); if (!handle_socket_error()) { if (s->st == DTLS_SOCKET) { if (is_connreset()) { if (try_again) { BIO *wbio = SSL_get_wbio(ssl); if (wbio) { - int fd = BIO_get_fd(wbio, 0); + const int fd = BIO_get_fd(wbio, 0); if (fd >= 0) { try_again = 0; TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "DTLS Socket, tring to recover write operation...\n"); @@ -3104,8 +3104,8 @@ static int send_ssl_backlog_buffers(ioa_socket_handle s) { if (s) { stun_buffer_list_elem *buf_elem = s->bufs.head; while (buf_elem) { - int rc = ssl_send(s, (char *)buf_elem->buf.buf + buf_elem->buf.offset - buf_elem->buf.coffset, - (size_t)buf_elem->buf.len, (s->e ? s->e->verbose : TURN_VERBOSE_NONE)); + const int rc = ssl_send(s, (char *)buf_elem->buf.buf + buf_elem->buf.offset - buf_elem->buf.coffset, + (size_t)buf_elem->buf.len, (s->e ? s->e->verbose : TURN_VERBOSE_NONE)); if (rc < 1) { break; } @@ -3157,7 +3157,7 @@ int udp_send(ioa_socket_handle s, const ioa_addr *dest_addr, const char *buffer, if (dest_addr) { - int slen = get_ioa_addr_len(dest_addr); + const int slen = get_ioa_addr_len(dest_addr); do { rc = sendto(fd, buffer, len, 0, (const struct sockaddr *)dest_addr, (socklen_t)slen); @@ -3275,7 +3275,7 @@ int send_data_from_ioa_socket_nbh(ioa_socket_handle s, ioa_addr *dest_addr, ioa_ if (ret < 0) { s->tobeclosed = 1; #if defined(EADDRNOTAVAIL) - int perr = socket_errno(); + const int perr = socket_errno(); #endif perror("udp send"); #if defined(EADDRNOTAVAIL) @@ -3921,7 +3921,7 @@ void *allocate_super_memory_region_func(super_memory_t *r, size_t size, const ch size_t *rsz = NULL; for (i = 0; i <= r->sm_chunk; ++i) { - size_t left = (size_t)r->sm_total_sz - r->sm_allocated[i]; + const size_t left = (size_t)r->sm_total_sz - r->sm_allocated[i]; if (left < size + sizeof(void *)) { continue; diff --git a/src/apps/relay/tls_listener.c b/src/apps/relay/tls_listener.c index 6aa5ebe..1f62479 100644 --- a/src/apps/relay/tls_listener.c +++ b/src/apps/relay/tls_listener.c @@ -109,7 +109,7 @@ static void server_input_handler(struct evconnlistener *l, evutil_socket_t fd, s server->sm.m.sm.can_resume = 1; server->sm.relay_server = server->relay_server; - int rc = server->connect_cb(server->e, &(server->sm)); + const int rc = server->connect_cb(server->e, &(server->sm)); if (rc < 0) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Cannot create tcp or tls session\n"); diff --git a/src/apps/relay/turn_admin_server.c b/src/apps/relay/turn_admin_server.c index 12294ae..2c75aea 100644 --- a/src/apps/relay/turn_admin_server.c +++ b/src/apps/relay/turn_admin_server.c @@ -586,7 +586,7 @@ static bool print_session(ur_map_key_type key, ur_map_value_type value, void *ar static void cancel_session(struct cli_session *cs, const char *ssid) { if (cs && cs->ts && ssid && *ssid) { - turnsession_id sid = strtoull(ssid, NULL, 10); + const turnsession_id sid = strtoull(ssid, NULL, 10); send_session_cancellation_to_relay(sid); } } @@ -956,7 +956,7 @@ static int run_cli_input(struct cli_session *cs, const char *buf0, unsigned int size_t sl = strlen(cmd); while (sl) { - char c = cmd[sl - 1]; + const char c = cmd[sl - 1]; if ((c == 10) || (c == 13)) { cmd[sl - 1] = 0; --sl; @@ -1112,7 +1112,7 @@ static void cli_socket_input_handler_bev(struct bufferevent *bev, void *arg) { if (cs->bev) { - int len = (int)bufferevent_read(cs->bev, buf.buf, STUN_BUFFER_SIZE - 1); + const int len = (int)bufferevent_read(cs->bev, buf.buf, STUN_BUFFER_SIZE - 1); if (len < 0) { close_cli_session(cs); return; @@ -1214,13 +1214,13 @@ static void web_admin_input_handler(ioa_socket_handle s, int event_type, ioa_net int to_be_closed = 0; - int buffer_size = (int)ioa_network_buffer_get_size(in_buffer->nbh); + const int buffer_size = (int)ioa_network_buffer_get_size(in_buffer->nbh); if (buffer_size >= UDP_STUN_BUFFER_SIZE) { TURN_LOG_FUNC(TURN_LOG_LEVEL_WARNING, "%s: request is too big: %d\n", __FUNCTION__, buffer_size); to_be_closed = 1; } else if (buffer_size > 0) { - SOCKET_TYPE st = get_ioa_socket_type(s); + const SOCKET_TYPE st = get_ioa_socket_type(s); if (is_stream_socket(st)) { if (is_http((char *)ioa_network_buffer_data(in_buffer->nbh), buffer_size)) { @@ -1635,7 +1635,7 @@ static void set_current_max_output_sessions(size_t value) { static void https_cancel_session(const char *ssid) { if (ssid && *ssid) { - turnsession_id sid = (turnsession_id)strtoull(ssid, NULL, 10); + const turnsession_id sid = (turnsession_id)strtoull(ssid, NULL, 10); send_session_cancellation_to_relay(sid); } } @@ -1704,7 +1704,7 @@ static void write_https_logon_page(ioa_socket_handle s) { int we_have_admin_users = 0; const turn_dbdriver_t *dbd = get_dbdriver(); if (dbd && dbd->list_admin_users) { - int ausers = dbd->list_admin_users(1); + const int ausers = dbd->list_admin_users(1); if (ausers > 0) { we_have_admin_users = 1; } @@ -2513,7 +2513,7 @@ static void write_ps_page(ioa_socket_handle s, const char *client_protocol, cons "addr (IPv4)Relay addr (IPv6)FingerprintsMobileTLS methodTLS " "cipherBPS (allocated)PacketsRatePeers\r\n"); - size_t total_sz = https_print_sessions(sb, client_protocol, user_pattern, max_sessions, cs); + const size_t total_sz = https_print_sessions(sb, client_protocol, user_pattern, max_sessions, cs); str_buffer_append(sb, "\r\n\r\n"); @@ -2535,7 +2535,7 @@ static size_t https_print_users(struct str_buffer *sb) { init_secrets_list(&realms); dbd->list_users((uint8_t *)current_eff_realm(), &users, &realms); - size_t sz = get_secrets_list_size(&users); + const size_t sz = get_secrets_list_size(&users); size_t i; for (i = 0; i < sz; ++i) { str_buffer_append(sb, ""); @@ -2659,7 +2659,7 @@ static void write_users_page(ioa_socket_handle s, const uint8_t *add_user, const str_buffer_append(sb, " "); str_buffer_append(sb, "\r\n"); - size_t total_sz = https_print_users(sb); + const size_t total_sz = https_print_users(sb); str_buffer_append(sb, "\r\n\r\n"); @@ -2681,7 +2681,7 @@ static size_t https_print_secrets(struct str_buffer *sb) { init_secrets_list(&realms); dbd->list_secrets((uint8_t *)current_eff_realm(), &secrets, &realms); - size_t sz = get_secrets_list_size(&secrets); + const size_t sz = get_secrets_list_size(&secrets); size_t i; for (i = 0; i < sz; ++i) { str_buffer_append(sb, ""); @@ -2792,7 +2792,7 @@ static void write_shared_secrets_page(ioa_socket_handle s, const char *add_secre str_buffer_append(sb, " "); str_buffer_append(sb, "\r\n"); - size_t total_sz = https_print_secrets(sb); + const size_t total_sz = https_print_secrets(sb); str_buffer_append(sb, "\r\n\r\n"); @@ -2814,7 +2814,7 @@ static size_t https_print_origins(struct str_buffer *sb) { init_secrets_list(&realms); dbd->list_origins((uint8_t *)current_eff_realm(), &origins, &realms); - size_t sz = get_secrets_list_size(&origins); + const size_t sz = get_secrets_list_size(&origins); size_t i; for (i = 0; i < sz; ++i) { str_buffer_append(sb, ""); @@ -2923,7 +2923,7 @@ static void write_origins_page(ioa_socket_handle s, const char *add_origin, cons } str_buffer_append(sb, "\r\n"); - size_t total_sz = https_print_origins(sb); + const size_t total_sz = https_print_origins(sb); str_buffer_append(sb, "\r\n\r\n"); @@ -2948,7 +2948,7 @@ static size_t https_print_oauth_keys(struct str_buffer *sb) { init_secrets_list(&realms); dbd->list_oauth_keys(&kids, &teas, &tss, <s, &realms); - size_t sz = get_secrets_list_size(&kids); + const size_t sz = get_secrets_list_size(&kids); size_t i; for (i = 0; i < sz; ++i) { str_buffer_append(sb, ""); @@ -3034,7 +3034,7 @@ static void write_https_oauth_show_keys(ioa_socket_handle s, const char *kid) { convert_oauth_key_data_raw(&key, &okd); char err_msg[1025] = "\0"; - size_t err_msg_size = sizeof(err_msg) - 1; + const size_t err_msg_size = sizeof(err_msg) - 1; oauth_key okey; memset(&okey, 0, sizeof(okey)); @@ -3206,7 +3206,7 @@ static void write_https_oauth_page(ioa_socket_handle s, const char *add_kid, con str_buffer_append(sb, " "); str_buffer_append(sb, "\r\n"); - size_t total_sz = https_print_oauth_keys(sb); + const size_t total_sz = https_print_oauth_keys(sb); str_buffer_append(sb, "\r\n\r\n"); @@ -3376,7 +3376,7 @@ static void handle_https(ioa_socket_handle s, ioa_network_buffer_handle nbh) { } else { TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "%s: HTTPS request, path %s\n", __FUNCTION__, hr->path); - AS_FORM form = get_form(hr->path); + const AS_FORM form = get_form(hr->path); switch (form) { case AS_FORM_PC: { @@ -3503,7 +3503,7 @@ static void handle_https(ioa_socket_handle s, ioa_network_buffer_handle nbh) { STRCPY(p, pwd); stun_produce_integrity_key_str(u, r, p, key, SHATYPE_DEFAULT); size_t i = 0; - size_t sz = get_hmackey_size(SHATYPE_DEFAULT); + const size_t sz = get_hmackey_size(SHATYPE_DEFAULT); int maxsz = (int)(sz * 2) + 1; char *s = skey; for (i = 0; (i < sz) && (maxsz > 2); i++) { @@ -3713,7 +3713,7 @@ static void handle_https(ioa_socket_handle s, ioa_network_buffer_handle nbh) { add_tea = get_http_header_value(hr, HR_ADD_OAUTH_TEA, ""); add_realm = get_http_header_value(hr, HR_ADD_OAUTH_REALM, ""); - int keys_ok = (add_ikm[0] != 0); + const int keys_ok = (add_ikm[0] != 0); if (!keys_ok) { msg = "You must enter the key value."; } else { diff --git a/src/apps/relay/turn_ports.c b/src/apps/relay/turn_ports.c index 41426d2..e5e0335 100644 --- a/src/apps/relay/turn_ports.c +++ b/src/apps/relay/turn_ports.c @@ -90,15 +90,15 @@ static int is_taken(uint32_t status) { static void turnports_randomize(turnports *tp) { if (tp) { - unsigned int size = (unsigned int)(tp->high - tp->low); + const unsigned int size = (unsigned int)(tp->high - tp->low); unsigned int i = 0; - unsigned int cycles = size * 10; + const unsigned int cycles = size * 10; for (i = 0; i < cycles; i++) { - uint16_t port1 = (uint16_t)(tp->low + (uint16_t)(((unsigned long)turn_random()) % ((unsigned long)size))); - uint16_t port2 = (uint16_t)(tp->low + (uint16_t)(((unsigned long)turn_random()) % ((unsigned long)size))); + const uint16_t port1 = (uint16_t)(tp->low + (uint16_t)(((unsigned long)turn_random()) % ((unsigned long)size))); + const uint16_t port2 = (uint16_t)(tp->low + (uint16_t)(((unsigned long)turn_random()) % ((unsigned long)size))); if (port1 != port2) { - uint32_t pos1 = tp->status[port1]; - uint32_t pos2 = tp->status[port2]; + const uint32_t pos1 = tp->status[port1]; + const uint32_t pos2 = tp->status[port2]; uint32_t tmp = tp->status[port1]; tp->status[port1] = tp->status[port2]; tp->status[port2] = tmp; @@ -156,7 +156,7 @@ uint16_t turnports_size(turnports *tp) { return 0; } else { TURN_MUTEX_LOCK(&tp->mutex); - uint16_t ret = (uint16_t)((tp->high - tp->low)); + const uint16_t ret = (uint16_t)((tp->high - tp->low)); TURN_MUTEX_UNLOCK(&tp->mutex); return ret; } @@ -177,7 +177,7 @@ int turnports_allocate(turnports *tp) { return -1; } - int position = (uint16_t)(tp->low & 0x0000FFFF); + const int position = (uint16_t)(tp->low & 0x0000FFFF); port = (int)tp->ports[position]; if (port < (int)(tp->range_start) || port > ((int)(tp->range_stop))) { @@ -206,7 +206,7 @@ int turnports_allocate(turnports *tp) { void turnports_release(turnports *tp, uint16_t port) { TURN_MUTEX_LOCK(&tp->mutex); if (tp && port >= tp->range_start && port <= tp->range_stop) { - uint16_t position = (uint16_t)(tp->high & 0x0000FFFF); + const uint16_t position = (uint16_t)(tp->high & 0x0000FFFF); if (is_taken(tp->status[port])) { tp->status[port] = tp->high; tp->ports[position] = port; @@ -217,24 +217,20 @@ void turnports_release(turnports *tp, uint16_t port) { } int turnports_allocate_even(turnports *tp, int allocate_rtcp, uint64_t *reservation_token) { - if (!tp) { - return -1; - } - - TURN_MUTEX_LOCK(&tp->mutex); - uint16_t size = turnports_size(tp); - if (size > 1) { - for (uint16_t i = 0; i < size; i++) { - int port = turnports_allocate(tp); - if (port & 0x00000001) { - turnports_release(tp, port); - } else { - if (!allocate_rtcp) { - TURN_MUTEX_UNLOCK(&tp->mutex); - return port; + if (tp) { + TURN_MUTEX_LOCK(&tp->mutex); + const uint16_t size = turnports_size(tp); + if (size > 1) { + uint16_t i = 0; + for (i = 0; i < size; i++) { + const int port = turnports_allocate(tp); + if (port & 0x00000001) { + turnports_release(tp, port); } else { - int rtcp_port = port + 1; - if ((rtcp_port > tp->range_stop) || !turnports_is_available(tp, rtcp_port)) { + const int rtcp_port = port + 1; + if (rtcp_port > tp->range_stop) { + turnports_release(tp, port); + } else if (!turnports_is_available(tp, rtcp_port)) { turnports_release(tp, port); } else { tp->status[port] = TPS_TAKEN_EVEN; @@ -253,6 +249,7 @@ int turnports_allocate_even(turnports *tp, int allocate_rtcp, uint64_t *reservat } } } + TURN_MUTEX_UNLOCK(&tp->mutex); return -1; @@ -263,7 +260,7 @@ int turnports_is_allocated(turnports *tp, uint16_t port) { return 0; } else { TURN_MUTEX_LOCK(&tp->mutex); - int ret = is_taken(tp->status[port]); + const int ret = is_taken(tp->status[port]); TURN_MUTEX_UNLOCK(&tp->mutex); return ret; } @@ -272,9 +269,9 @@ int turnports_is_allocated(turnports *tp, uint16_t port) { int turnports_is_available(turnports *tp, uint16_t port) { if (tp) { TURN_MUTEX_LOCK(&tp->mutex); - uint32_t status = tp->status[port]; + const uint32_t status = tp->status[port]; if ((status != TPS_OUT_OF_RANGE) && !is_taken(status)) { - uint16_t position = (uint16_t)(status & 0x0000FFFF); + const uint16_t position = (uint16_t)(status & 0x0000FFFF); if (tp->ports[position] == port) { TURN_MUTEX_UNLOCK(&tp->mutex); return 1; diff --git a/src/apps/relay/userdb.c b/src/apps/relay/userdb.c index 2269e2c..510c282 100644 --- a/src/apps/relay/userdb.c +++ b/src/apps/relay/userdb.c @@ -206,7 +206,7 @@ void get_realm_options_by_name(char *realm, realm_options_t *ro) { } int change_total_quota(char *realm, int value) { - int ret = value; + const int ret = value; lock_realms(); realm_params_t *rp = get_realm(realm); rp->options.perf_options.total_quota = value; @@ -215,7 +215,7 @@ int change_total_quota(char *realm, int value) { } int change_user_quota(char *realm, int value) { - int ret = value; + const int ret = value; lock_realms(); realm_params_t *rp = get_realm(realm); rp->options.perf_options.user_quota = value; @@ -413,7 +413,7 @@ int get_user_key(int in_oauth, int *out_oauth, int *max_session_time, uint8_t *u STUN_ATTRIBUTE_OAUTH_ACCESS_TOKEN); if (sar) { - int len = stun_attr_get_len(sar); + const int len = stun_attr_get_len(sar); const uint8_t *value = stun_attr_get_value(sar); *out_oauth = 1; @@ -427,7 +427,7 @@ int get_user_key(int in_oauth, int *out_oauth, int *max_session_time, uint8_t *u oauth_key_data_raw rawKey; memset(&rawKey, 0, sizeof(rawKey)); - int gres = (*(dbd->get_oauth_key))(usname, &rawKey); + const int gres = (*(dbd->get_oauth_key))(usname, &rawKey); if (gres < 0) { return ret; } @@ -448,7 +448,7 @@ int get_user_key(int in_oauth, int *out_oauth, int *max_session_time, uint8_t *u convert_oauth_key_data_raw(&rawKey, &okd); char err_msg[1025] = "\0"; - size_t err_msg_size = sizeof(err_msg) - 1; + const size_t err_msg_size = sizeof(err_msg) - 1; oauth_key okey; memset(&okey, 0, sizeof(okey)); @@ -502,11 +502,11 @@ int get_user_key(int in_oauth, int *out_oauth, int *max_session_time, uint8_t *u ioa_network_buffer_get_size(nbh), dot.enc_block.mac_key, pwdtmp, SHATYPE_DEFAULT) > 0) { - turn_time_t lifetime = (turn_time_t)(dot.enc_block.lifetime); + const turn_time_t lifetime = (turn_time_t)(dot.enc_block.lifetime); if (lifetime) { - turn_time_t ts = (turn_time_t)(dot.enc_block.timestamp >> 16); - turn_time_t to = ts + lifetime + OAUTH_TIME_DELTA; - turn_time_t ct = turn_time(); + const turn_time_t ts = (turn_time_t)(dot.enc_block.timestamp >> 16); + const turn_time_t to = ts + lifetime + OAUTH_TIME_DELTA; + const turn_time_t ct = turn_time(); if (!turn_time_before(ct, to)) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "oAuth token is too old\n"); return -1; @@ -535,7 +535,7 @@ int get_user_key(int in_oauth, int *out_oauth, int *max_session_time, uint8_t *u if (turn_params.use_auth_secret_with_timestamp) { - turn_time_t ctime = (turn_time_t)time(NULL); + const turn_time_t ctime = (turn_time_t)time(NULL); turn_time_t ts = 0; secrets_list_t sl; size_t sll = 0; @@ -562,7 +562,7 @@ int get_user_key(int in_oauth, int *out_oauth, int *max_session_time, uint8_t *u return -1; } - int sarlen = stun_attr_get_len(sar); + const int sarlen = stun_attr_get_len(sar); switch (sarlen) { case SHA1SIZEBYTES: hmac_len = SHA1SIZEBYTES; @@ -621,7 +621,7 @@ int get_user_key(int in_oauth, int *out_oauth, int *max_session_time, uint8_t *u ur_string_map_unlock(turn_params.default_users_db.ram_db.static_accounts); if (ret == 0) { - size_t sz = get_hmackey_size(SHATYPE_DEFAULT); + const size_t sz = get_hmackey_size(SHATYPE_DEFAULT); memcpy(key, ukey, sz); return 0; } @@ -730,7 +730,7 @@ int add_static_user_account(char *user) { return -1; } - size_t ulen = s - user; + const size_t ulen = s - user; // TODO: TURN usernames should be length limited by the RFC. // are user account names as well? If so, we can avoid allocating @@ -758,7 +758,7 @@ int add_static_user_account(char *user) { if (strstr(s, "0x") == s) { char *keysource = s + 2; - size_t sz = get_hmackey_size(SHATYPE_DEFAULT); + const size_t sz = get_hmackey_size(SHATYPE_DEFAULT); if (strlen(keysource) < sz * 2) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Wrong key format: %s\n", s); } @@ -968,7 +968,7 @@ int adminuser(uint8_t *user, uint8_t *realm, uint8_t *pwd, uint8_t *secret, uint { stun_produce_integrity_key_str(user, realm, pwd, key, SHATYPE_DEFAULT); - size_t sz = get_hmackey_size(SHATYPE_DEFAULT); + const size_t sz = get_hmackey_size(SHATYPE_DEFAULT); int maxsz = (int)(sz * 2) + 1; char *s = skey; for (size_t i = 0; (i < sz) && (maxsz > 2); i++) { diff --git a/src/apps/rfc5769/rfc5769check.c b/src/apps/rfc5769/rfc5769check.c index 7705d0e..81d398a 100644 --- a/src/apps/rfc5769/rfc5769check.c +++ b/src/apps/rfc5769/rfc5769check.c @@ -127,7 +127,7 @@ static int check_oauth(void) { convert_oauth_key_data_raw(&okdr, &okd); char err_msg[1025] = "\0"; - size_t err_msg_size = sizeof(err_msg) - 1; + const size_t err_msg_size = sizeof(err_msg) - 1; if (!convert_oauth_key_data(&okd, &key, err_msg, err_msg_size)) { fprintf(stderr, "%s\n", err_msg); @@ -358,11 +358,13 @@ int main(int argc, const char **argv) { if (memcmp(buf, reqltc, len) != 0) { printf("failure: wrong message content\n"); { - size_t const lines = 29; - size_t const cols = 4; - for (size_t line = 0; line < lines; line++) { - for (size_t col = 0; col < cols; col++) { - uint8_t c = buf[line * 4 + col]; + const size_t lines = 29; + size_t line = 0; + size_t col = 0; + const size_t cols = 4; + for (line = 0; line < lines; line++) { + for (col = 0; col < cols; col++) { + const uint8_t c = buf[line * 4 + col]; printf(" %2x", (int)c); } printf("\n"); diff --git a/src/apps/stunclient/stunclient.c b/src/apps/stunclient/stunclient.c index 58f8ffc..9ffa219 100644 --- a/src/apps/stunclient/stunclient.c +++ b/src/apps/stunclient/stunclient.c @@ -108,10 +108,10 @@ static int run_stunclient(const char *rip, int rport, int *port, bool *rfc5780, rpa.setResponsePort((uint16_t)response_port); try { req.addAttr(rpa); - } catch (turn::WrongStunAttrFormatException const &ex1) { + } catch (const turn::WrongStunAttrFormatException &ex1) { printf("Wrong rp attr format\n"); exit(-1); - } catch (turn::WrongStunBufferFormatException const &ex2) { + } catch (const turn::WrongStunBufferFormatException &ex2) { printf("Wrong stun buffer format (1)\n"); exit(-1); } catch (...) { @@ -125,10 +125,10 @@ static int run_stunclient(const char *rip, int rport, int *port, bool *rfc5780, cra.setChangePort(change_port); try { req.addAttr(cra); - } catch (turn::WrongStunAttrFormatException const &ex1) { + } catch (const turn::WrongStunAttrFormatException &ex1) { printf("Wrong cr attr format\n"); exit(-1); - } catch (turn::WrongStunBufferFormatException const &ex2) { + } catch (const turn::WrongStunBufferFormatException &ex2) { printf("Wrong stun buffer format (2)\n"); exit(-1); } catch (...) { @@ -141,10 +141,10 @@ static int run_stunclient(const char *rip, int rport, int *port, bool *rfc5780, pa.setPadding(1500); try { req.addAttr(pa); - } catch (turn::WrongStunAttrFormatException const &ex1) { + } catch (const turn::WrongStunAttrFormatException &ex1) { printf("Wrong p attr format\n"); exit(-1); - } catch (turn::WrongStunBufferFormatException const &ex2) { + } catch (const turn::WrongStunBufferFormatException &ex2) { printf("Wrong stun buffer format (3)\n"); exit(-1); } catch (...) { @@ -154,8 +154,8 @@ static int run_stunclient(const char *rip, int rport, int *port, bool *rfc5780, } { - int len = 0; - ssize_t slen = get_ioa_addr_len(&remote_addr); + const int len = 0; + const ssize_t slen = get_ioa_addr_len(&remote_addr); do { len = sendto(udp_fd, req.getRawBuffer(), req.getSize(), 0, (struct sockaddr *)&remote_addr, (socklen_t)slen); @@ -218,12 +218,12 @@ static int run_stunclient(const char *rip, int rport, int *port, bool *rfc5780, *rfc5780 = 1; printf("\n========================================\n"); printf("RFC 5780 response %d\n", ++counter); - ioa_addr other_addr; + const ioa_addr other_addr; turn::StunAttrAddr addr1(iter1); addr1.getAddr(other_addr); turn::StunAttrIterator iter2(res, STUN_ATTRIBUTE_RESPONSE_ORIGIN); if (!iter2.eof()) { - ioa_addr response_origin; + const ioa_addr response_origin; turn::StunAttrAddr addr2(iter2); addr2.getAddr(response_origin); addr_debug_print(1, &response_origin, "Response origin: "); diff --git a/src/apps/uclient/mainuclient.c b/src/apps/uclient/mainuclient.c index 5a37386..c693557 100644 --- a/src/apps/uclient/mainuclient.c +++ b/src/apps/uclient/mainuclient.c @@ -211,7 +211,7 @@ int main(int argc, char **argv) { convert_oauth_key_data_raw(&okdr_array[2], &okd_array[2]); char err_msg[1025] = "\0"; - size_t err_msg_size = sizeof(err_msg) - 1; + const size_t err_msg_size = sizeof(err_msg) - 1; if (!convert_oauth_key_data(&okd_array[0], &okey_array[0], err_msg, err_msg_size)) { fprintf(stderr, "%s\n", err_msg); diff --git a/src/apps/uclient/startuclient.c b/src/apps/uclient/startuclient.c index b6d997d..9400e48 100644 --- a/src/apps/uclient/startuclient.c +++ b/src/apps/uclient/startuclient.c @@ -92,11 +92,9 @@ static int get_allocate_address_family(ioa_addr *relay_addr) { static SSL *tls_connect(ioa_socket_raw fd, ioa_addr *remote_addr, bool *try_again, int connect_cycle) { - int ctxtype = (int)(((unsigned long)turn_random()) % root_tls_ctx_num); + const int ctxtype = (int)(((unsigned long)turn_random()) % root_tls_ctx_num); - SSL *ssl; - - ssl = SSL_new(root_tls_ctx[ctxtype]); + SSL *const ssl = SSL_new(root_tls_ctx[ctxtype]); SSL_set_alpn_protos(ssl, kALPNProtos, kALPNProtosLen); @@ -140,7 +138,7 @@ static SSL *tls_connect(ioa_socket_raw fd, ioa_addr *remote_addr, bool *try_agai do { rc = SSL_connect(ssl); } while (rc < 0 && socket_eintr()); - int orig_errno = socket_errno(); + const int orig_errno = socket_errno(); if (rc > 0) { TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "%s: client session connected with cipher %s, method=%s\n", __FUNCTION__, SSL_get_cipher(ssl), turn_get_ssl_method(ssl, NULL)); @@ -318,9 +316,9 @@ start_socket: int read_mobility_ticket(app_ur_conn_info *clnet_info, stun_buffer *message) { int ret = 0; if (clnet_info && message) { - stun_attr_ref s_mobile_id_sar = stun_attr_get_first_by_type(message, STUN_ATTRIBUTE_MOBILITY_TICKET); + const stun_attr_ref s_mobile_id_sar = stun_attr_get_first_by_type(message, STUN_ATTRIBUTE_MOBILITY_TICKET); if (s_mobile_id_sar) { - int smid_len = stun_attr_get_len(s_mobile_id_sar); + const int smid_len = stun_attr_get_len(s_mobile_id_sar); if (smid_len > 0 && (((size_t)smid_len) < sizeof(clnet_info->s_mobile_id))) { const uint8_t *smid_val = stun_attr_get_value(s_mobile_id_sar); if (smid_val) { @@ -341,11 +339,15 @@ int read_mobility_ticket(app_ur_conn_info *clnet_info, stun_buffer *message) { void add_origin(stun_buffer *message) { if (message && origin[0]) { - const char *some_origin = "https://carleon.gov:443"; - stun_attr_add(message, STUN_ATTRIBUTE_ORIGIN, some_origin, strlen(some_origin)); + { + const char *const some_origin = "https://carleon.gov:443"; + stun_attr_add(message, STUN_ATTRIBUTE_ORIGIN, some_origin, strlen(some_origin)); + } stun_attr_add(message, STUN_ATTRIBUTE_ORIGIN, origin, strlen(origin)); - some_origin = "ftp://uffrith.net"; - stun_attr_add(message, STUN_ATTRIBUTE_ORIGIN, some_origin, strlen(some_origin)); + { + const char *const some_origin = "ftp://uffrith.net"; + stun_attr_add(message, STUN_ATTRIBUTE_ORIGIN, some_origin, strlen(some_origin)); + } } } @@ -377,8 +379,8 @@ beg_allocate: reopen_socket = false; } - int af4 = dual_allocation || (af == STUN_ATTRIBUTE_REQUESTED_ADDRESS_FAMILY_VALUE_IPV4); - int af6 = dual_allocation || (af == STUN_ATTRIBUTE_REQUESTED_ADDRESS_FAMILY_VALUE_IPV6); + const int af4 = dual_allocation || (af == STUN_ATTRIBUTE_REQUESTED_ADDRESS_FAMILY_VALUE_IPV4); + const int af6 = dual_allocation || (af == STUN_ATTRIBUTE_REQUESTED_ADDRESS_FAMILY_VALUE_IPV6); uint64_t reservation_token = 0; char *rt = NULL; @@ -428,7 +430,7 @@ beg_allocate: while (!allocate_sent) { - int len = send_buffer(clnet_info, &request_message, 0, 0); + const int len = send_buffer(clnet_info, &request_message, 0, 0); if (len > 0) { if (verbose) { @@ -452,7 +454,7 @@ beg_allocate: bool allocate_received = false; while (!allocate_received) { - int len = recv_buffer(clnet_info, &response_message, 1, 0, NULL, &request_message); + const int len = recv_buffer(clnet_info, &response_message, 1, 0, NULL, &request_message); if (len > 0) { if (verbose) { @@ -480,7 +482,7 @@ beg_allocate: stun_attr_ref sar = stun_attr_get_first(&response_message); while (sar) { - int attr_type = stun_attr_get_type(sar); + const int attr_type = stun_attr_get_type(sar); if (attr_type == STUN_ATTRIBUTE_XOR_RELAYED_ADDRESS) { if (!stun_attr_get_addr(&response_message, sar, relay_addr, NULL)) { @@ -521,8 +523,9 @@ beg_allocate: } } - stun_attr_ref rt_sar = stun_attr_get_first_by_type(&response_message, STUN_ATTRIBUTE_RESERVATION_TOKEN); - uint64_t rtv = stun_attr_get_reservation_token_value(rt_sar); + const stun_attr_ref rt_sar = + stun_attr_get_first_by_type(&response_message, STUN_ATTRIBUTE_RESERVATION_TOKEN); + const uint64_t rtv = stun_attr_get_reservation_token_value(rt_sar); current_reservation_token = rtv; if (verbose) { TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "%s: rtv=%llu\n", __FUNCTION__, (long long unsigned int)rtv); @@ -599,10 +602,10 @@ beg_allocate: int fd = clnet_info->fd; SSL *ssl = clnet_info->ssl; - bool close_now = turn_random() % 2; + const bool close_now = turn_random() % 2; if (close_now) { - bool close_socket = (int)(turn_random() % 2); + const bool close_socket = (int)(turn_random() % 2); if (ssl && !close_socket) { SSL_shutdown(ssl); SSL_free(ssl); @@ -655,7 +658,7 @@ beg_allocate: } if (dual_allocation && !mobility) { - uint8_t rand = (uint8_t)turn_random(); + const uint8_t rand = (uint8_t)turn_random(); bool add_requested_family = rand & 0x01; bool use_ipv4 = rand & 0x02; @@ -680,7 +683,7 @@ beg_allocate: while (!refresh_sent) { - int len = send_buffer(clnet_info, &request_message, 0, 0); + const int len = send_buffer(clnet_info, &request_message, 0, 0); if (len > 0) { if (verbose) { @@ -775,7 +778,7 @@ beg_bind: while (!cb_sent) { - int len = send_buffer(clnet_info, &request_message, 0, 0); + const int len = send_buffer(clnet_info, &request_message, 0, 0); if (len > 0) { if (verbose) { TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "channel bind sent\n"); @@ -799,7 +802,7 @@ beg_bind: bool cb_received = false; while (!cb_received) { - int len = recv_buffer(clnet_info, &response_message, 1, 0, NULL, &request_message); + const int len = recv_buffer(clnet_info, &response_message, 1, 0, NULL, &request_message); if (len > 0) { if (verbose) { TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "cb response received: \n"); @@ -873,7 +876,7 @@ beg_cp: while (!cp_sent) { - int len = send_buffer(clnet_info, &request_message, 0, 0); + const int len = send_buffer(clnet_info, &request_message, 0, 0); if (len > 0) { if (verbose) { @@ -898,7 +901,7 @@ beg_cp: bool cp_received = false; while (!cp_received) { - int len = recv_buffer(clnet_info, &response_message, 1, 0, NULL, &request_message); + const int len = recv_buffer(clnet_info, &response_message, 1, 0, NULL, &request_message); if (len > 0) { if (verbose) { TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "cp response received: \n"); @@ -1038,7 +1041,7 @@ int start_connection(uint16_t clnet_remote_port0, const char *remote_address0, c } ioa_addr arbaddr; make_ioa_addr((const uint8_t *)sarbaddr, 333, &arbaddr); - int maxi = (unsigned short)turn_random() % EXTRA_CREATE_PERMS; + const int maxi = (unsigned short)turn_random() % EXTRA_CREATE_PERMS; for (int i = 0; i < maxi; i++) { uint16_t chni = 0; int port = (unsigned short)turn_random(); @@ -1046,7 +1049,7 @@ int start_connection(uint16_t clnet_remote_port0, const char *remote_address0, c port += 1024; } addr_set_port(&arbaddr, port); - uint8_t *u = (uint8_t *)&(arbaddr.s4.sin_addr); + uint8_t *const u = (uint8_t *)&(arbaddr.s4.sin_addr); u[(unsigned short)turn_random() % 4] = u[(unsigned short)turn_random() % 4] + 1; // char sss[128]; // addr_to_string(&arbaddr,(uint8_t*)sss); @@ -1071,13 +1074,13 @@ int start_connection(uint16_t clnet_remote_port0, const char *remote_address0, c } ioa_addr arbaddr[EXTRA_CREATE_PERMS]; make_ioa_addr((const uint8_t *)sarbaddr, 333, &arbaddr[0]); - int maxi = (unsigned short)turn_random() % EXTRA_CREATE_PERMS; + const int maxi = (unsigned short)turn_random() % EXTRA_CREATE_PERMS; for (int i = 0; i < maxi; i++) { if (i > 0) { addr_cpy(&arbaddr[i], &arbaddr[0]); } addr_set_port(&arbaddr[i], (unsigned short)turn_random()); - uint8_t *u = (uint8_t *)&(arbaddr[i].s4.sin_addr); + uint8_t *const u = (uint8_t *)&(arbaddr[i].s4.sin_addr); u[(unsigned short)turn_random() % 4] = u[(unsigned short)turn_random() % 4] + 1; // char sss[128]; // addr_to_string(&arbaddr[i],(uint8_t*)sss); @@ -1087,7 +1090,7 @@ int start_connection(uint16_t clnet_remote_port0, const char *remote_address0, c } } else { - bool const before = turn_random() % 2; + const bool before = turn_random() % 2; if (before) { if (turn_create_permission(verbose, clnet_info, &peer_addr, 1) < 0) { @@ -1111,13 +1114,13 @@ int start_connection(uint16_t clnet_remote_port0, const char *remote_address0, c } ioa_addr arbaddr[EXTRA_CREATE_PERMS]; make_ioa_addr((const uint8_t *)sarbaddr, 333, &arbaddr[0]); - int maxi = (unsigned short)turn_random() % EXTRA_CREATE_PERMS; + const int maxi = (unsigned short)turn_random() % EXTRA_CREATE_PERMS; for (int i = 0; i < maxi; i++) { if (i > 0) { addr_cpy(&arbaddr[i], &arbaddr[0]); } addr_set_port(&arbaddr[i], (unsigned short)turn_random()); - uint8_t *u = (uint8_t *)&(arbaddr[i].s4.sin_addr); + uint8_t *const u = (uint8_t *)&(arbaddr[i].s4.sin_addr); u[(unsigned short)turn_random() % 4] = u[(unsigned short)turn_random() % 4] + 1; // char sss[128]; // addr_to_string(&arbaddr,(uint8_t*)sss); @@ -1295,7 +1298,7 @@ int start_c2c_connection(uint16_t clnet_remote_port0, const char *remote_address } ioa_addr arbaddr; make_ioa_addr((const uint8_t *)sarbaddr, 333, &arbaddr); - int maxi = (unsigned short)turn_random() % EXTRA_CREATE_PERMS; + const int maxi = (unsigned short)turn_random() % EXTRA_CREATE_PERMS; for (int i = 0; i < maxi; i++) { uint16_t chni = 0; int port = (unsigned short)turn_random(); @@ -1303,7 +1306,7 @@ int start_c2c_connection(uint16_t clnet_remote_port0, const char *remote_address port += 1024; } addr_set_port(&arbaddr, port); - uint8_t *u = (uint8_t *)&(arbaddr.s4.sin_addr); + uint8_t *const u = (uint8_t *)&(arbaddr.s4.sin_addr); u[(unsigned short)turn_random() % 4] = u[(unsigned short)turn_random() % 4] + 1; // char sss[128]; // addr_to_string(&arbaddr,(uint8_t*)sss); @@ -1323,13 +1326,13 @@ int start_c2c_connection(uint16_t clnet_remote_port0, const char *remote_address } ioa_addr arbaddr[EXTRA_CREATE_PERMS]; make_ioa_addr((const uint8_t *)sarbaddr, 333, &arbaddr[0]); - int maxi = (unsigned short)turn_random() % EXTRA_CREATE_PERMS; + const int maxi = (unsigned short)turn_random() % EXTRA_CREATE_PERMS; for (int i = 0; i < maxi; i++) { if (i > 0) { addr_cpy(&arbaddr[i], &arbaddr[0]); } addr_set_port(&arbaddr[i], (unsigned short)turn_random()); - uint8_t *u = (uint8_t *)&(arbaddr[i].s4.sin_addr); + uint8_t *const u = (uint8_t *)&(arbaddr[i].s4.sin_addr); u[(unsigned short)turn_random() % 4] = u[(unsigned short)turn_random() % 4] + 1; // char sss[128]; // addr_to_string(&arbaddr[i],(uint8_t*)sss); @@ -1373,10 +1376,10 @@ int start_c2c_connection(uint16_t clnet_remote_port0, const char *remote_address } ioa_addr arbaddr; make_ioa_addr((const uint8_t *)sarbaddr, 333, &arbaddr); - int maxi = (unsigned short)turn_random() % EXTRA_CREATE_PERMS; + const int maxi = (unsigned short)turn_random() % EXTRA_CREATE_PERMS; for (int i = 0; i < maxi; i++) { addr_set_port(&arbaddr, (unsigned short)turn_random()); - uint8_t *u = (uint8_t *)&(arbaddr.s4.sin_addr); + uint8_t *const u = (uint8_t *)&(arbaddr.s4.sin_addr); u[(unsigned short)turn_random() % 4] = u[(unsigned short)turn_random() % 4] + 1; // char sss[128]; // addr_to_string(&arbaddr,(uint8_t*)sss); @@ -1491,7 +1494,7 @@ beg_cb: while (!cb_sent) { - int len = send_buffer(clnet_info, &request_message, 1, atc); + const int len = send_buffer(clnet_info, &request_message, 1, atc); if (len > 0) { if (verbose) { @@ -1519,7 +1522,7 @@ beg_cb: bool cb_received = false; while (!cb_received) { - int len = recv_buffer(clnet_info, &response_message, 1, 1, atc, &request_message); + const int len = recv_buffer(clnet_info, &response_message, 1, 1, atc, &request_message); if (len > 0) { if (verbose) { TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "connect bind response received: \n"); @@ -1585,7 +1588,7 @@ again: set_sock_buf_size(clnet_fd, (UR_CLIENT_SOCK_BUF_SIZE << 2)); ++elem->pinfo.tcp_conn_number; - int i = (int)(elem->pinfo.tcp_conn_number - 1); + const int i = (int)(elem->pinfo.tcp_conn_number - 1); elem->pinfo.tcp_conn = (app_tcp_conn_info **)realloc(elem->pinfo.tcp_conn, elem->pinfo.tcp_conn_number * sizeof(app_tcp_conn_info *)); elem->pinfo.tcp_conn[i] = (app_tcp_conn_info *)calloc(sizeof(app_tcp_conn_info), 1); @@ -1601,44 +1604,41 @@ again: addr_get_from_sock(clnet_fd, &(elem->pinfo.tcp_conn[i]->tcp_data_local_addr)); - { - int cycle = 0; - while (cycle++ < 1024) { - int err = 0; - if (addr_connect(clnet_fd, &(elem->pinfo.remote_addr), &err) < 0) { - if (err == EADDRINUSE) { - socket_closesocket(clnet_fd); - clnet_fd = - socket(elem->pinfo.remote_addr.ss.sa_family, CLIENT_STREAM_SOCKET_TYPE, CLIENT_STREAM_SOCKET_PROTOCOL); - if (clnet_fd < 0) { - perror("socket"); - exit(-1); - } - if (sock_bind_to_device(clnet_fd, client_ifname) < 0) { - TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "Cannot bind client socket to device %s\n", client_ifname); - } - set_sock_buf_size(clnet_fd, UR_CLIENT_SOCK_BUF_SIZE << 2); - - elem->pinfo.tcp_conn[i]->tcp_data_fd = clnet_fd; - - addr_cpy(&(elem->pinfo.tcp_conn[i]->tcp_data_local_addr), &(elem->pinfo.local_addr)); - - addr_set_port(&(elem->pinfo.tcp_conn[i]->tcp_data_local_addr), 0); - - addr_bind(clnet_fd, &(elem->pinfo.tcp_conn[i]->tcp_data_local_addr), 1, 1, TCP_SOCKET); - - addr_get_from_sock(clnet_fd, &(elem->pinfo.tcp_conn[i]->tcp_data_local_addr)); - - continue; - - } else { - perror("connect"); - TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "%s: cannot connect to remote addr\n", __FUNCTION__); + for (int cycle = 0; cycle < 1024; ++cycle) { + int err = 0; + if (addr_connect(clnet_fd, &(elem->pinfo.remote_addr), &err) < 0) { + if (err == EADDRINUSE) { + socket_closesocket(clnet_fd); + clnet_fd = + socket(elem->pinfo.remote_addr.ss.sa_family, CLIENT_STREAM_SOCKET_TYPE, CLIENT_STREAM_SOCKET_PROTOCOL); + if (clnet_fd < 0) { + perror("socket"); exit(-1); } + if (sock_bind_to_device(clnet_fd, client_ifname) < 0) { + TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "Cannot bind client socket to device %s\n", client_ifname); + } + set_sock_buf_size(clnet_fd, UR_CLIENT_SOCK_BUF_SIZE << 2); + + elem->pinfo.tcp_conn[i]->tcp_data_fd = clnet_fd; + + addr_cpy(&(elem->pinfo.tcp_conn[i]->tcp_data_local_addr), &(elem->pinfo.local_addr)); + + addr_set_port(&(elem->pinfo.tcp_conn[i]->tcp_data_local_addr), 0); + + addr_bind(clnet_fd, &(elem->pinfo.tcp_conn[i]->tcp_data_local_addr), 1, 1, TCP_SOCKET); + + addr_get_from_sock(clnet_fd, &(elem->pinfo.tcp_conn[i]->tcp_data_local_addr)); + + continue; + } else { - break; + perror("connect"); + TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "%s: cannot connect to remote addr\n", __FUNCTION__); + exit(-1); } + } else { + break; } } @@ -1662,7 +1662,7 @@ again: socket_set_nonblocking(clnet_fd); - struct event *ev = event_new(client_event_base, clnet_fd, EV_READ | EV_PERSIST, client_input_handler, elem); + struct event *const ev = event_new(client_event_base, clnet_fd, EV_READ | EV_PERSIST, client_input_handler, elem); event_add(ev, NULL); diff --git a/src/client/ns_turn_ioaddr.c b/src/client/ns_turn_ioaddr.c index 6bdb5dc..319eb1a 100644 --- a/src/client/ns_turn_ioaddr.c +++ b/src/client/ns_turn_ioaddr.c @@ -520,7 +520,7 @@ int ioa_addr_is_multicast(ioa_addr *addr) { const uint8_t *u = ((const uint8_t *)&(addr->s4.sin_addr)); return (u[0] > 223); } else if (addr->ss.sa_family == AF_INET6) { - uint8_t u = ((const uint8_t *)&(addr->s6.sin6_addr))[0]; + const uint8_t u = ((const uint8_t *)&(addr->s6.sin6_addr))[0]; return (u == 255); } } @@ -584,7 +584,7 @@ static size_t mcount = 0; static size_t msz = 0; void ioa_addr_add_mapping(ioa_addr *apub, ioa_addr *apriv) { - size_t new_size = msz + sizeof(ioa_addr *); + const size_t new_size = msz + sizeof(ioa_addr *); public_addrs = (ioa_addr **)realloc(public_addrs, new_size); private_addrs = (ioa_addr **)realloc(private_addrs, new_size); public_addrs[mcount] = (ioa_addr *)malloc(sizeof(ioa_addr)); diff --git a/src/client/ns_turn_msg.c b/src/client/ns_turn_msg.c index b02189e..d9e2ad8 100644 --- a/src/client/ns_turn_msg.c +++ b/src/client/ns_turn_msg.c @@ -175,11 +175,11 @@ bool stun_produce_integrity_key_str(const uint8_t *uname, const uint8_t *realm, ERR_clear_error(); UNUSED_ARG(shatype); - size_t ulen = strlen((const char *)uname); - size_t rlen = strlen((const char *)realm); - size_t plen = strlen((const char *)upwd); - size_t sz = ulen + 1 + rlen + 1 + plen + 1 + 10; - size_t strl = ulen + 1 + rlen + 1 + plen; + const size_t ulen = strlen((const char *)uname); + const size_t rlen = strlen((const char *)realm); + const size_t plen = strlen((const char *)upwd); + const size_t sz = ulen + 1 + rlen + 1 + plen + 1 + 10; + const size_t strl = ulen + 1 + rlen + 1 + plen; uint8_t *str = (uint8_t *)malloc(sz + 1); strncpy((char *)str, (const char *)uname, sz); @@ -347,7 +347,7 @@ int stun_get_command_message_len_str(const uint8_t *buf, size_t len) { } /* Validate the size the buffer claims to be */ - size_t bufLen = (size_t)(nswap16(((const uint16_t *)(buf))[1]) + STUN_HEADER_LENGTH); + const size_t bufLen = (size_t)(nswap16(((const uint16_t *)(buf))[1]) + STUN_HEADER_LENGTH); if (bufLen > len) { return -1; } @@ -375,7 +375,7 @@ uint16_t stun_get_method_str(const uint8_t *buf, size_t len) { return (uint16_t)-1; } - uint16_t tt = nswap16(((const uint16_t *)buf)[0]); + const uint16_t tt = nswap16(((const uint16_t *)buf)[0]); return (tt & 0x000F) | ((tt & 0x00E0) >> 1) | ((tt & 0x0E00) >> 2) | ((tt & 0x3000) >> 2); } @@ -398,7 +398,7 @@ bool stun_is_command_message_str(const uint8_t *buf, size_t blen) { if (!STUN_VALID_CHANNEL(nswap16(((const uint16_t *)buf)[0]))) { if ((((uint8_t)buf[0]) & ((uint8_t)(0xC0))) == 0) { if (nswap32(((const uint32_t *)(buf))[1]) == STUN_MAGIC_COOKIE) { - uint16_t len = nswap16(((const uint16_t *)(buf))[1]); + const uint16_t len = nswap16(((const uint16_t *)(buf))[1]); if ((len & 0x0003) == 0) { if ((size_t)(len + STUN_HEADER_LENGTH) == blen) { return true; @@ -416,7 +416,7 @@ bool old_stun_is_command_message_str(const uint8_t *buf, size_t blen, uint32_t * if (!STUN_VALID_CHANNEL(nswap16(((const uint16_t *)buf)[0]))) { if ((((uint8_t)buf[0]) & ((uint8_t)(0xC0))) == 0) { if (nswap32(((const uint32_t *)(buf))[1]) != STUN_MAGIC_COOKIE) { - uint16_t len = nswap16(((const uint16_t *)(buf))[1]); + const uint16_t len = nswap16(((const uint16_t *)(buf))[1]); if ((len & 0x0003) == 0) { if ((size_t)(len + STUN_HEADER_LENGTH) == blen) { *cookie = nswap32(((const uint32_t *)(buf))[1]); @@ -452,8 +452,8 @@ bool stun_is_command_message_full_check_str(const uint8_t *buf, size_t blen, int if (!fingerprint) { return !must_check_fingerprint; } - uint32_t crc32len = (uint32_t)((((const uint8_t *)fingerprint) - buf) - 4); - bool ret = (*fingerprint == nswap32(ns_crc32(buf, crc32len) ^ ((uint32_t)FINGERPRINT_XOR))); + const uint32_t crc32len = (uint32_t)((((const uint8_t *)fingerprint) - buf) - 4); + const bool ret = (*fingerprint == nswap32(ns_crc32(buf, crc32len) ^ ((uint32_t)FINGERPRINT_XOR))); if (ret && fingerprint_present) { *fingerprint_present = ret; } @@ -507,7 +507,7 @@ bool stun_is_error_response_str(const uint8_t *buf, size_t len, int *err_code, u bool stun_is_challenge_response_str(const uint8_t *buf, size_t len, int *err_code, uint8_t *err_msg, size_t err_msg_size, uint8_t *realm, uint8_t *nonce, uint8_t *server_name, bool *oauth) { - bool ret = stun_is_error_response_str(buf, len, err_code, err_msg, err_msg_size); + const bool ret = stun_is_error_response_str(buf, len, err_code, err_msg, err_msg_size); if (ret && (((*err_code) == 401) || ((*err_code) == 438))) { stun_attr_ref sar = stun_attr_get_first_by_type_str(buf, len, STUN_ATTRIBUTE_REALM); @@ -715,7 +715,7 @@ static void stun_init_error_response_common_str(uint8_t *buf, size_t *len, uint1 //"Manual" padding for compatibility with classic old stun: { - int rem = alen % 4; + const int rem = alen % 4; if (rem) { alen += (4 - rem); } @@ -771,7 +771,7 @@ bool stun_is_channel_message_str(const uint8_t *buf, size_t *blen, uint16_t *chn return false; } - uint16_t chn = nswap16(((const uint16_t *)(buf))[0]); + const uint16_t chn = nswap16(((const uint16_t *)(buf))[0]); if (!STUN_VALID_CHANNEL(chn)) { return false; } @@ -799,7 +799,7 @@ bool stun_is_channel_message_str(const uint8_t *buf, size_t *blen, uint16_t *chn } else if (datalen_header == 0) { return false; } else { - uint16_t diff = datalen_actual - datalen_header; + const uint16_t diff = datalen_actual - datalen_header; if (diff > 3) { return false; } @@ -837,9 +837,9 @@ static inline const char *findstr(const char *hay, size_t slen, const char *need const char *ret = NULL; if (hay && slen && needle) { - size_t nlen = strlen(needle); + const size_t nlen = strlen(needle); if (nlen <= slen) { - size_t smax = slen - nlen + 1; + const size_t smax = slen - nlen + 1; const char *sp = hay; for (size_t i = 0; i < smax; ++i) { if (sheadof(needle, sp + i, ignore_case)) { @@ -860,7 +860,7 @@ int is_http(const char *s, size_t blen) { const char *sp = findstr(s + 4, blen - 4, " HTTP/", false); if (sp) { sp += 6; - size_t diff_blen = sp - s; + const size_t diff_blen = sp - s; if (diff_blen + 4 <= blen) { sp = findstr(sp, blen - diff_blen, "\r\n\r\n", false); if (sp) { @@ -868,7 +868,7 @@ int is_http(const char *s, size_t blen) { const char *clheader = "content-length: "; const char *cl = findstr(s, sp - s, clheader, true); if (cl) { - unsigned long clen = strtoul(cl + strlen(clheader), NULL, 10); + const unsigned long clen = strtoul(cl + strlen(clheader), NULL, 10); if (clen > 0 && clen < (0x0FFFFFFF)) { ret_len += (int)clen; } @@ -904,7 +904,7 @@ int stun_get_message_len_str(uint8_t *buf, size_t blen, int padding, size_t *app // HTTP request ? { - int http_len = is_http(((char *)buf), blen); + const int http_len = is_http(((char *)buf), blen); if ((http_len > 0) && ((size_t)http_len <= blen)) { *app_len = (size_t)http_len; return http_len; @@ -913,7 +913,7 @@ int stun_get_message_len_str(uint8_t *buf, size_t blen, int padding, size_t *app /* STUN channel ? */ if (blen >= 4) { - uint16_t chn = nswap16(((const uint16_t *)(buf))[0]); + const uint16_t chn = nswap16(((const uint16_t *)(buf))[0]); if (STUN_VALID_CHANNEL(chn)) { uint16_t bret = (4 + (nswap16(((const uint16_t *)(buf))[1]))); @@ -1278,7 +1278,7 @@ int stun_attr_get_len(stun_attr_ref attr) { const uint8_t *stun_attr_get_value(stun_attr_ref attr) { if (attr) { - int len = (int)(nswap16(((const uint16_t *)attr)[1])); + const int len = (int)(nswap16(((const uint16_t *)attr)[1])); if (len < 1) { return NULL; } @@ -1289,11 +1289,11 @@ const uint8_t *stun_attr_get_value(stun_attr_ref attr) { int stun_get_requested_address_family(stun_attr_ref attr) { if (attr) { - int len = (int)(nswap16(((const uint16_t *)attr)[1])); + const int len = (int)(nswap16(((const uint16_t *)attr)[1])); if (len != 4) { return STUN_ATTRIBUTE_REQUESTED_ADDRESS_FAMILY_VALUE_INVALID; } - int val = ((const uint8_t *)attr)[4]; + const int val = ((const uint8_t *)attr)[4]; switch (val) { case STUN_ATTRIBUTE_REQUESTED_ADDRESS_FAMILY_VALUE_IPV4: case STUN_ATTRIBUTE_REQUESTED_ADDRESS_FAMILY_VALUE_IPV6: @@ -1309,7 +1309,7 @@ uint16_t stun_attr_get_channel_number(stun_attr_ref attr) { if (attr) { const uint8_t *value = stun_attr_get_value(attr); if (value && (stun_attr_get_len(attr) >= 2)) { - uint16_t cn = nswap16(((const uint16_t *)value)[0]); + const uint16_t cn = nswap16(((const uint16_t *)value)[0]); if (STUN_VALID_CHANNEL(cn)) { return cn; } @@ -1322,7 +1322,7 @@ band_limit_t stun_attr_get_bandwidth(stun_attr_ref attr) { if (attr) { const uint8_t *value = stun_attr_get_value(attr); if (value && (stun_attr_get_len(attr) >= 4)) { - uint32_t bps = nswap32(((const uint32_t *)value)[0]); + const uint32_t bps = nswap32(((const uint32_t *)value)[0]); return (band_limit_t)(bps << 7); } } @@ -1395,7 +1395,7 @@ static stun_attr_ref stun_attr_check_valid(stun_attr_ref attr, size_t remaining) remaining -= 4; /* Round to boundary */ - uint16_t rem4 = ((uint16_t)attrlen) & 0x0003; + const uint16_t rem4 = ((uint16_t)attrlen) & 0x0003; if (rem4) { attrlen = attrlen + 4 - (int)rem4; } @@ -1410,7 +1410,7 @@ static stun_attr_ref stun_attr_check_valid(stun_attr_ref attr, size_t remaining) } stun_attr_ref stun_attr_get_first_str(const uint8_t *buf, size_t len) { - int bufLen = stun_get_command_message_len_str(buf, len); + const int bufLen = stun_get_command_message_len_str(buf, len); if (bufLen > STUN_HEADER_LENGTH) { stun_attr_ref attr = (stun_attr_ref)(buf + STUN_HEADER_LENGTH); return stun_attr_check_valid(attr, bufLen - STUN_HEADER_LENGTH); @@ -1425,7 +1425,7 @@ stun_attr_ref stun_attr_get_next_str(const uint8_t *buf, size_t len, stun_attr_r } else { const uint8_t *end = buf + stun_get_command_message_len_str(buf, len); int attrlen = stun_attr_get_len(prev); - uint16_t rem4 = ((uint16_t)attrlen) & 0x0003; + const uint16_t rem4 = ((uint16_t)attrlen) & 0x0003; if (rem4) { attrlen = attrlen + 4 - (int)rem4; } @@ -1447,9 +1447,9 @@ bool stun_attr_add_str(uint8_t *buf, size_t *len, uint16_t attr, const uint8_t * alen = 0; avalue = tmp; } - int clen = stun_get_command_message_len_str(buf, *len); + const int clen = stun_get_command_message_len_str(buf, *len); int newlen = clen + 4 + alen; - int newlenrem4 = newlen & 0x00000003; + const int newlenrem4 = newlen & 0x00000003; int paddinglen = 0; if (newlenrem4) { paddinglen = 4 - newlenrem4; @@ -1519,7 +1519,7 @@ bool stun_attr_get_addr_str(const uint8_t *buf, size_t len, stun_attr_ref attr, addr_set_any(ca); addr_set_any(&public_addr); - int attr_type = stun_attr_get_type(attr); + const int attr_type = stun_attr_get_type(attr); if (attr_type < 0) { return false; } @@ -1546,7 +1546,7 @@ bool stun_attr_get_addr_str(const uint8_t *buf, size_t len, stun_attr_ref attr, map_addr_from_public_to_private(&public_addr, ca); if (default_addr && addr_any_no_port(ca) && !addr_any_no_port(default_addr)) { - int port = addr_get_port(ca); + const int port = addr_get_port(ca); addr_cpy(ca, default_addr); addr_set_port(ca, port); } @@ -1581,7 +1581,7 @@ bool stun_attr_add_channel_number_str(uint8_t *buf, size_t *len, uint16_t chnumb bool stun_attr_add_bandwidth_str(uint8_t *buf, size_t *len, band_limit_t bps0) { - uint32_t bps = (uint32_t)(band_limit_t)(bps0 >> 7); + const uint32_t bps = (uint32_t)(band_limit_t)(bps0 >> 7); uint32_t field = nswap32(bps); @@ -1602,7 +1602,7 @@ bool stun_attr_add_address_error_code(uint8_t *buf, size_t *len, int requested_a //"Manual" padding for compatibility with classic old stun: { - int rem = alen % 4; + const int rem = alen % 4; if (rem) { alen += (4 - rem); } @@ -1616,7 +1616,7 @@ uint16_t stun_attr_get_first_channel_number_str(const uint8_t *buf, size_t len) stun_attr_ref attr = stun_attr_get_first_str(buf, len); while (attr) { if (stun_attr_get_type(attr) == STUN_ATTRIBUTE_CHANNEL_NUMBER) { - uint16_t ret = stun_attr_get_channel_number(attr); + const uint16_t ret = stun_attr_get_channel_number(attr); if (STUN_VALID_CHANNEL(ret)) { return ret; } @@ -1693,7 +1693,7 @@ bool SASLprep(uint8_t *s) { uint8_t *strin = s; uint8_t *strout = s; for (;;) { - uint8_t c = *strin; + const uint8_t c = *strin; if (!c) { *strout = 0; break; @@ -1863,12 +1863,12 @@ int stun_check_message_integrity_by_key_str(turn_credential_type ct, uint8_t *bu return -1; }; - int orig_len = stun_get_command_message_len_str(buf, len); + const int orig_len = stun_get_command_message_len_str(buf, len); if (orig_len < 0) { return -1; } - int new_len = (int)((const uint8_t *)sar - buf) + 4 + shasize; + const int new_len = (int)((const uint8_t *)sar - buf) + 4 + shasize; if (new_len > orig_len) { return -1; } @@ -1980,7 +1980,7 @@ bool stun_attr_add_response_port_str(uint8_t *buf, size_t *len, uint16_t port) { } int stun_attr_get_padding_len_str(stun_attr_ref attr) { - int len = stun_attr_get_len(attr); + const int len = stun_attr_get_len(attr); if (len < 0) { return -1; } @@ -2194,7 +2194,7 @@ int my_EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, con if (out) { ptr = out + out_len; } - int ret = EVP_EncryptUpdate(ctx, ptr, &tmp_outl, in + out_len, inl - out_len); + const int ret = EVP_EncryptUpdate(ctx, ptr, &tmp_outl, in + out_len, inl - out_len); out_len += tmp_outl; if (ret < 1) { return ret; @@ -2214,7 +2214,7 @@ int my_EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, con if (out) { ptr = out + out_len; } - int ret = EVP_DecryptUpdate(ctx, ptr, &tmp_outl, in + out_len, inl - out_len); + const int ret = EVP_DecryptUpdate(ctx, ptr, &tmp_outl, in + out_len, inl - out_len); out_len += tmp_outl; if (ret < 1) { return ret; @@ -2286,7 +2286,7 @@ static bool encode_oauth_token_gcm(const uint8_t *server_name, encoded_oauth_tok } int outl = 0; - size_t sn_len = strlen((const char *)server_name); + const size_t sn_len = strlen((const char *)server_name); /* Provide any AAD data. This can be called zero or more times as * required @@ -2330,17 +2330,17 @@ static bool decode_oauth_token_gcm(const uint8_t *server_name, const encoded_oau memcpy(snl, (const unsigned char *)(etoken->token), 2); const unsigned char *csnl = snl; - uint16_t nonce_len = nswap16(*((const uint16_t *)csnl)); + const uint16_t nonce_len = nswap16(*((const uint16_t *)csnl)); dtoken->enc_block.nonce_length = nonce_len; - size_t min_encoded_field_size = 2 + 4 + 8 + nonce_len + 2 + OAUTH_GCM_TAG_SIZE + 1; + const size_t min_encoded_field_size = 2 + 4 + 8 + nonce_len + 2 + OAUTH_GCM_TAG_SIZE + 1; if (etoken->size < min_encoded_field_size) { OAUTH_ERROR("%s: token size too small: %d\n", __FUNCTION__, (int)etoken->size); return false; } const unsigned char *encoded_field = (const unsigned char *)(etoken->token + nonce_len + 2); - unsigned int encoded_field_size = (unsigned int)etoken->size - nonce_len - 2 - OAUTH_GCM_TAG_SIZE; + const unsigned int encoded_field_size = (unsigned int)etoken->size - nonce_len - 2 - OAUTH_GCM_TAG_SIZE; const unsigned char *nonce = ((const unsigned char *)etoken->token + 2); memcpy(dtoken->enc_block.nonce, nonce, nonce_len); @@ -2382,7 +2382,7 @@ static bool decode_oauth_token_gcm(const uint8_t *server_name, const encoded_oau EVP_CIPHER_CTX_ctrl(ctxp, EVP_CTRL_GCM_SET_TAG, OAUTH_GCM_TAG_SIZE, tag); int outl = 0; - size_t sn_len = strlen((const char *)server_name); + const size_t sn_len = strlen((const char *)server_name); /* Provide any AAD data. This can be called zero or more times as * required diff --git a/src/server/ns_turn_allocation.c b/src/server/ns_turn_allocation.c index 6817ff8..0a2748d 100644 --- a/src/server/ns_turn_allocation.c +++ b/src/server/ns_turn_allocation.c @@ -243,7 +243,7 @@ static turn_permission_info *get_from_turn_permission_hashtable(turn_permission_ return NULL; } - uint32_t index = addr_hash_no_port(addr) & (TURN_PERMISSION_HASHTABLE_SIZE - 1); + const uint32_t index = addr_hash_no_port(addr) & (TURN_PERMISSION_HASHTABLE_SIZE - 1); turn_permission_array *parray = &(map->table[index]); for (size_t i = 0; i < TURN_PERMISSION_ARRAY_SIZE; ++i) { @@ -297,7 +297,7 @@ void turn_channel_delete(ch_info *chn) { return; } - int port = addr_get_port(&(chn->peer_addr)); + const int port = addr_get_port(&(chn->peer_addr)); if (port < 1) { char s[129]; addr_to_string(&(chn->peer_addr), (uint8_t *)s); @@ -391,8 +391,8 @@ turn_permission_info *allocation_add_permission(allocation *a, const ioa_addr *a } turn_permission_hashtable *map = &(a->addr_to_perm); - uint32_t hash = addr_hash_no_port(addr); - size_t fds = (size_t)(hash & (TURN_PERMISSION_HASHTABLE_SIZE - 1)); + const uint32_t hash = addr_hash_no_port(addr); + const size_t fds = (size_t)(hash & (TURN_PERMISSION_HASHTABLE_SIZE - 1)); turn_permission_array *parray = &(map->table[fds]); diff --git a/src/server/ns_turn_maps.c b/src/server/ns_turn_maps.c index 0799225..b9d3458 100644 --- a/src/server/ns_turn_maps.c +++ b/src/server/ns_turn_maps.c @@ -147,7 +147,7 @@ bool ur_map_exist(const ur_map *map, ur_map_key_type key) { void ur_map_free(ur_map **map) { if (map && ur_map_valid(*map)) { { - static int khctest = 0; + static const int khctest = 0; if (khctest) { kh_clear(3, (*map)->h); } @@ -224,12 +224,12 @@ bool lm_map_put(lm_map *map, ur_map_key_type key, ur_map_value_type value) { return false; } - size_t index = (size_t)(key & (LM_MAP_HASH_SIZE - 1)); + const size_t index = (size_t)(key & (LM_MAP_HASH_SIZE - 1)); lm_map_array *a = &(map->table[index]); for (size_t i = 0; i < LM_MAP_ARRAY_SIZE; ++i) { - ur_map_key_type key0 = a->main_keys[i]; - ur_map_value_type value0 = a->main_values[i]; + const ur_map_key_type key0 = a->main_keys[i]; + const ur_map_value_type value0 = a->main_values[i]; if (key0 == key) { return value0 == value; @@ -242,7 +242,7 @@ bool lm_map_put(lm_map *map, ur_map_key_type key, ur_map_value_type value) { } } - size_t esz = a->extra_sz; + const size_t esz = a->extra_sz; if (esz && a->extra_keys && a->extra_values) { for (size_t i = 0; i < esz; ++i) { ur_map_key_type *keyp = a->extra_keys[i]; @@ -271,7 +271,7 @@ bool lm_map_put(lm_map *map, ur_map_key_type key, ur_map_value_type value) { } } - size_t old_sz = esz; + const size_t old_sz = esz; size_t old_sz_mem = esz * sizeof(ur_map_key_type *); a->extra_keys = (ur_map_key_type **)realloc(a->extra_keys, old_sz_mem + sizeof(ur_map_key_type *)); assert(a->extra_keys); @@ -294,11 +294,11 @@ bool lm_map_get(const lm_map *map, ur_map_key_type key, ur_map_value_type *value return false; } - size_t index = (size_t)(key & (LM_MAP_HASH_SIZE - 1)); + const size_t index = (size_t)(key & (LM_MAP_HASH_SIZE - 1)); const lm_map_array *a = &(map->table[index]); for (size_t i = 0; i < LM_MAP_ARRAY_SIZE; ++i) { - ur_map_key_type key0 = a->main_keys[i]; + const ur_map_key_type key0 = a->main_keys[i]; if ((key0 == key) && a->main_values[i]) { if (value) { *value = a->main_values[i]; @@ -307,7 +307,7 @@ bool lm_map_get(const lm_map *map, ur_map_key_type key, ur_map_value_type *value } } - size_t esz = a->extra_sz; + const size_t esz = a->extra_sz; if (esz && a->extra_keys && a->extra_values) { for (size_t i = 0; i < esz; ++i) { ur_map_key_type *keyp = a->extra_keys[i]; @@ -331,11 +331,11 @@ bool lm_map_del(lm_map *map, ur_map_key_type key, ur_map_del_func delfunc) { return false; } - size_t index = (size_t)(key & (LM_MAP_HASH_SIZE - 1)); + const size_t index = (size_t)(key & (LM_MAP_HASH_SIZE - 1)); lm_map_array *a = &(map->table[index]); for (size_t i = 0; i < LM_MAP_ARRAY_SIZE; ++i) { - ur_map_key_type key0 = a->main_keys[i]; + const ur_map_key_type key0 = a->main_keys[i]; if ((key0 == key) && a->main_values[i]) { if (delfunc) { @@ -347,7 +347,7 @@ bool lm_map_del(lm_map *map, ur_map_key_type key, ur_map_del_func delfunc) { } } - size_t esz = a->extra_sz; + const size_t esz = a->extra_sz; if (esz && a->extra_keys && a->extra_values) { for (size_t i = 0; i < esz; ++i) { ur_map_key_type *keyp = a->extra_keys[i]; @@ -374,7 +374,7 @@ void lm_map_clean(lm_map *map) { for (size_t j = 0; j < LM_MAP_HASH_SIZE; ++j) { lm_map_array *a = &(map->table[j]); - size_t esz = a->extra_sz; + const size_t esz = a->extra_sz; if (esz) { if (a->extra_keys) { for (size_t i = 0; i < esz; ++i) { @@ -420,7 +420,7 @@ size_t lm_map_size(const lm_map *map) { } } - size_t esz = a->extra_sz; + const size_t esz = a->extra_sz; if (esz && a->extra_values && a->extra_keys) { for (size_t j = 0; j < esz; ++j) { if (*(a->extra_keys[j]) && *(a->extra_values[j])) { @@ -449,7 +449,7 @@ bool lm_map_foreach(lm_map *map, foreachcb_type func) { } } - size_t esz = a->extra_sz; + const size_t esz = a->extra_sz; if (esz && a->extra_values && a->extra_keys) { for (size_t j = 0; j < esz; ++j) { if (*(a->extra_keys[j]) && *(a->extra_values[j])) { @@ -480,7 +480,7 @@ bool lm_map_foreach_arg(lm_map *map, foreachcb_arg_type func, void *arg) { } } - size_t esz = a->extra_sz; + const size_t esz = a->extra_sz; if (esz && a->extra_values && a->extra_keys) { for (size_t j = 0; j < esz; ++j) { if (*(a->extra_keys[j]) && *(a->extra_values[j])) { @@ -530,8 +530,8 @@ static void addr_list_add(addr_list_header *slh, const ioa_addr *key, ur_addr_ma } if (!elem) { - size_t old_sz = slh->extra_sz; - size_t old_sz_mem = old_sz * sizeof(addr_elem); + const size_t old_sz = slh->extra_sz; + const size_t old_sz_mem = old_sz * sizeof(addr_elem); slh->extra_list = (addr_elem *)realloc(slh->extra_list, old_sz_mem + sizeof(addr_elem)); assert(slh->extra_list); elem = &(slh->extra_list[old_sz]); diff --git a/src/server/ns_turn_maps_rtcp.c b/src/server/ns_turn_maps_rtcp.c index 8a0e1e7..af665fe 100644 --- a/src/server/ns_turn_maps_rtcp.c +++ b/src/server/ns_turn_maps_rtcp.c @@ -119,7 +119,7 @@ static bool rtcp_map_del(rtcp_map *map, rtcp_token_type token) { } TURN_MUTEX_LOCK(&map->mutex); - bool ret = ur_map_del(map->map, token, rtcp_alloc_free); + const bool ret = ur_map_del(map->map, token, rtcp_alloc_free); TURN_MUTEX_UNLOCK(&map->mutex); return ret; } @@ -203,7 +203,7 @@ bool rtcp_map_put(rtcp_map *map, rtcp_token_type token, ioa_socket_handle s) { value->t = turn_time() + RTCP_TIMEOUT; value->token = token; TURN_MUTEX_LOCK(&map->mutex); - bool ret = ur_map_put(map->map, token, (ur_map_value_type)value); + const bool ret = ur_map_put(map->map, token, (ur_map_value_type)value); // TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO,"%s: 111.111: ret=%d, token=%llu\n",__FUNCTION__,ret,token); TURN_MUTEX_UNLOCK(&map->mutex); if (!ret) { @@ -223,7 +223,7 @@ ioa_socket_handle rtcp_map_get(rtcp_map *map, rtcp_token_type token) { if (rtcp_map_valid(map)) { ur_map_value_type value; TURN_MUTEX_LOCK(&map->mutex); - int ret = ur_map_get(map->map, token, &value); + const int ret = ur_map_get(map->map, token, &value); if (ret) { rtcp_alloc_type *rval = (rtcp_alloc_type *)value; if (rval) { @@ -253,7 +253,7 @@ void rtcp_map_free(rtcp_map **map) { size_t rtcp_map_size(const rtcp_map *map) { if (rtcp_map_valid(map)) { TURN_MUTEX_LOCK(&map->mutex); - size_t ret = ur_map_size(map->map); + const size_t ret = ur_map_size(map->map); TURN_MUTEX_UNLOCK(&map->mutex); return ret; } else { diff --git a/src/server/ns_turn_server.c b/src/server/ns_turn_server.c index 4681a30..75216bf 100644 --- a/src/server/ns_turn_server.c +++ b/src/server/ns_turn_server.c @@ -265,7 +265,7 @@ static int is_rfc5780(turn_turnserver *server) { static int get_other_address(turn_turnserver *server, ts_ur_super_session *ss, ioa_addr *alt_addr) { if (is_rfc5780(server) && ss && ss->client_socket) { - int ret = server->alt_addr_cb(get_local_addr_from_ioa_socket(ss->client_socket), alt_addr); + const int ret = server->alt_addr_cb(get_local_addr_from_ioa_socket(ss->client_socket), alt_addr); return ret; } @@ -288,7 +288,7 @@ static int good_peer_addr(turn_turnserver *server, const char *realm, ioa_addr * if ((r)[0] && realm && realm[0] && strcmp((r), realm)) \ continue - turnserver_id server_id = (turnserver_id)(session_id / TURN_SESSION_ID_FACTOR); + const turnserver_id server_id = (turnserver_id)(session_id / TURN_SESSION_ID_FACTOR); if (server && peer_addr) { if (*(server->no_multicast_peers) && ioa_addr_is_multicast(peer_addr)) { return 0; @@ -440,7 +440,7 @@ struct tsi_arg { static bool turn_session_info_foreachcb(ur_map_key_type key, ur_map_value_type value, void *arg) { UNUSED_ARG(value); - int port = (int)key; + const int port = (int)key; struct tsi_arg *ta = (struct tsi_arg *)arg; if (port && ta && ta->tsi && ta->addr) { ioa_addr a; @@ -582,7 +582,7 @@ int turn_session_info_copy_from(struct turn_session_info *tsi, ts_ur_super_sessi { turn_permission_slot **slots = parray->extra_slots; if (slots) { - size_t sz = parray->extra_sz; + const size_t sz = parray->extra_sz; size_t j; for (j = 0; j < sz; ++j) { turn_permission_slot *slot = slots[j]; @@ -601,7 +601,7 @@ int turn_session_info_copy_from(struct turn_session_info *tsi, ts_ur_super_sessi tcp_connection_list *tcl = &(ss->alloc.tcs); if (tcl->elems) { size_t i; - size_t sz = tcl->sz; + const size_t sz = tcl->sz; for (i = 0; i < sz; ++i) { if (tcl->elems[i]) { tcp_connection *tc = tcl->elems[i]; @@ -831,7 +831,7 @@ static int turn_server_remove_all_from_ur_map_ss(ts_ur_super_session *ss, SOCKET if (!ss) { return 0; } else { - int ret = 0; + const int ret = 0; if (ss->client_socket) { clear_ioa_socket_session_if(ss->client_socket, ss); } @@ -1055,7 +1055,7 @@ static int handle_turn_allocate(turn_turnserver *server, ts_ur_super_session *ss stun_attr_get_first_str(ioa_network_buffer_data(in_buffer->nbh), ioa_network_buffer_get_size(in_buffer->nbh)); while (sar && (!(*err_code)) && (*ua_num < MAX_NUMBER_OF_UNKNOWN_ATTRS)) { - int attr_type = stun_attr_get_type(sar); + const int attr_type = stun_attr_get_type(sar); if (attr_type == STUN_ATTRIBUTE_USERNAME) { const uint8_t *value = stun_attr_get_value(sar); @@ -1114,7 +1114,7 @@ static int handle_turn_allocate(turn_turnserver *server, ts_ur_super_session *ss *err_code = 442; *reason = (const uint8_t *)"UDP Transport is not allowed by the TURN Server configuration"; } else if (ss->client_socket) { - SOCKET_TYPE cst = get_ioa_socket_type(ss->client_socket); + const SOCKET_TYPE cst = get_ioa_socket_type(ss->client_socket); if ((transport == STUN_ATTRIBUTE_TRANSPORT_TCP_VALUE) && !is_stream_socket(cst)) { *err_code = 400; *reason = (const uint8_t *)"Wrong Transport Data"; @@ -1163,7 +1163,7 @@ static int handle_turn_allocate(turn_turnserver *server, ts_ur_super_session *ss } } break; case STUN_ATTRIBUTE_RESERVATION_TOKEN: { - int len = stun_attr_get_len(sar); + const int len = stun_attr_get_len(sar); if (len != 8) { *err_code = 400; *reason = (const uint8_t *)"Wrong Format of Reservation Token"; @@ -1197,7 +1197,7 @@ static int handle_turn_allocate(turn_turnserver *server, ts_ur_super_session *ss *err_code = 400; *reason = (const uint8_t *)"Extra address family attribute can not be used in the request"; } else { - int af_req = stun_get_requested_address_family(sar); + const int af_req = stun_get_requested_address_family(sar); switch (af_req) { case STUN_ATTRIBUTE_REQUESTED_ADDRESS_FAMILY_VALUE_IPV4: if (attr_type == STUN_ATTRIBUTE_ADDITIONAL_ADDRESS_FAMILY) { @@ -1332,8 +1332,9 @@ static int handle_turn_allocate(turn_turnserver *server, ts_ur_super_session *ss } } if (!af4 && af6) { - int af6res = create_relay_connection(server, ss, lifetime, af6, transport, even_port, in_reservation_token, - &out_reservation_token, err_code, reason, tcp_peer_accept_connection); + const int af6res = + create_relay_connection(server, ss, lifetime, af6, transport, even_port, in_reservation_token, + &out_reservation_token, err_code, reason, tcp_peer_accept_connection); if (af6res < 0) { set_relay_session_failure(alloc, AF_INET6); if (!(*err_code)) { @@ -1341,8 +1342,9 @@ static int handle_turn_allocate(turn_turnserver *server, ts_ur_super_session *ss } } } else if (af4 && !af6) { - int af4res = create_relay_connection(server, ss, lifetime, af4, transport, even_port, in_reservation_token, - &out_reservation_token, err_code, reason, tcp_peer_accept_connection); + const int af4res = + create_relay_connection(server, ss, lifetime, af4, transport, even_port, in_reservation_token, + &out_reservation_token, err_code, reason, tcp_peer_accept_connection); if (af4res < 0) { set_relay_session_failure(alloc, AF_INET); if (!(*err_code)) { @@ -1353,7 +1355,7 @@ static int handle_turn_allocate(turn_turnserver *server, ts_ur_super_session *ss const uint8_t *reason4 = NULL; const uint8_t *reason6 = NULL; { - int af4res = + const int af4res = create_relay_connection(server, ss, lifetime, af4, transport, even_port, in_reservation_token, &out_reservation_token, &err_code4, &reason4, tcp_peer_accept_connection); if (af4res < 0) { @@ -1364,7 +1366,7 @@ static int handle_turn_allocate(turn_turnserver *server, ts_ur_super_session *ss } } { - int af6res = + const int af6res = create_relay_connection(server, ss, lifetime, af6, transport, even_port, in_reservation_token, &out_reservation_token, &err_code6, &reason6, tcp_peer_accept_connection); if (af6res < 0) { @@ -1518,7 +1520,7 @@ static int handle_turn_refresh(turn_turnserver *server, ts_ur_super_session *ss, int i; for (i = 0; i < ALLOC_PROTOCOLS_NUMBER; ++i) { if (a->relay_sessions[i].s && !ioa_socket_tobeclosed(a->relay_sessions[i].s)) { - int family = get_ioa_socket_address_family(a->relay_sessions[i].s); + const int family = get_ioa_socket_address_family(a->relay_sessions[i].s); if (AF_INET == family) { af4c = 1; } else if (AF_INET6 == family) { @@ -1543,7 +1545,7 @@ static int handle_turn_refresh(turn_turnserver *server, ts_ur_super_session *ss, stun_attr_ref sar = stun_attr_get_first_str(ioa_network_buffer_data(in_buffer->nbh), ioa_network_buffer_get_size(in_buffer->nbh)); while (sar && (!(*err_code)) && (*ua_num < MAX_NUMBER_OF_UNKNOWN_ATTRS)) { - int attr_type = stun_attr_get_type(sar); + const int attr_type = stun_attr_get_type(sar); switch (attr_type) { SKIP_ATTRIBUTES; case STUN_ATTRIBUTE_MOBILITY_TICKET: { @@ -1551,7 +1553,7 @@ static int handle_turn_refresh(turn_turnserver *server, ts_ur_super_session *ss, *err_code = 405; *reason = (const uint8_t *)"Mobility forbidden"; } else { - int smid_len = stun_attr_get_len(sar); + const int smid_len = stun_attr_get_len(sar); if (smid_len > 0 && (((size_t)smid_len) < sizeof(smid))) { const uint8_t *smid_val = stun_attr_get_value(sar); if (smid_val) { @@ -1589,7 +1591,7 @@ static int handle_turn_refresh(turn_turnserver *server, ts_ur_super_session *ss, case STUN_ATTRIBUTE_ADDITIONAL_ADDRESS_FAMILY: /* deprecated, for backward compatibility with older versions of TURN-bis */ case STUN_ATTRIBUTE_REQUESTED_ADDRESS_FAMILY: { - int af_req = stun_get_requested_address_family(sar); + const int af_req = stun_get_requested_address_family(sar); { int is_err = 0; switch (af_req) { @@ -1638,7 +1640,7 @@ static int handle_turn_refresh(turn_turnserver *server, ts_ur_super_session *ss, if (mid && smid[0]) { - turnserver_id tsid = ((0xFF00000000000000LL) & mid) >> 56; + const turnserver_id tsid = ((0xFF00000000000000LL) & mid) >> 56; if (tsid != server->id) { @@ -1893,9 +1895,9 @@ static void tcp_deliver_delayed_buffer(unsent_buffer *ub, ioa_socket_handle s, t break; } - uint32_t bytes = (uint32_t)ioa_network_buffer_get_size(nbh); + const uint32_t bytes = (uint32_t)ioa_network_buffer_get_size(nbh); - int ret = send_data_from_ioa_socket_nbh(s, NULL, nbh, TTL_IGNORE, TOS_IGNORE, NULL); + const int ret = send_data_from_ioa_socket_nbh(s, NULL, nbh, TTL_IGNORE, TOS_IGNORE, NULL); if (ret < 0) { set_ioa_socket_tobeclosed(s); } else { @@ -1933,14 +1935,14 @@ static void tcp_peer_input_handler(ioa_socket_handle s, int event_type, ioa_net_ ioa_network_buffer_handle nbh = in_buffer->nbh; in_buffer->nbh = NULL; - uint32_t bytes = (uint32_t)ioa_network_buffer_get_size(nbh); + const uint32_t bytes = (uint32_t)ioa_network_buffer_get_size(nbh); if (ss) { ++(ss->peer_received_packets); ss->peer_received_bytes += bytes; } - int ret = send_data_from_ioa_socket_nbh(tc->client_s, NULL, nbh, TTL_IGNORE, TOS_IGNORE, NULL); + const int ret = send_data_from_ioa_socket_nbh(tc->client_s, NULL, nbh, TTL_IGNORE, TOS_IGNORE, NULL); if (ret < 0) { set_ioa_socket_tobeclosed(s); } else if (ss) { @@ -1980,14 +1982,14 @@ static void tcp_client_input_handler_rfc6062data(ioa_socket_handle s, int event_ ioa_network_buffer_handle nbh = in_buffer->nbh; in_buffer->nbh = NULL; - uint32_t bytes = (uint32_t)ioa_network_buffer_get_size(nbh); + const uint32_t bytes = (uint32_t)ioa_network_buffer_get_size(nbh); if (ss) { ++(ss->received_packets); ss->received_bytes += bytes; } int skip = 0; - int ret = send_data_from_ioa_socket_nbh(tc->peer_s, NULL, nbh, TTL_IGNORE, TOS_IGNORE, &skip); + const int ret = send_data_from_ioa_socket_nbh(tc->peer_s, NULL, nbh, TTL_IGNORE, TOS_IGNORE, &skip); if (ret < 0) { set_ioa_socket_tobeclosed(s); } @@ -2291,7 +2293,7 @@ static int handle_turn_connect(turn_turnserver *server, ts_ur_super_session *ss, stun_attr_ref sar = stun_attr_get_first_str(ioa_network_buffer_data(in_buffer->nbh), ioa_network_buffer_get_size(in_buffer->nbh)); while (sar && (!(*err_code)) && (*ua_num < MAX_NUMBER_OF_UNKNOWN_ATTRS)) { - int attr_type = stun_attr_get_type(sar); + const int attr_type = stun_attr_get_type(sar); switch (attr_type) { SKIP_ATTRIBUTES; case STUN_ATTRIBUTE_XOR_PEER_ADDRESS: { @@ -2352,7 +2354,7 @@ static int handle_turn_connection_bind(turn_turnserver *server, ts_ur_super_sess allocation *a = get_allocation_ss(ss); - uint16_t method = STUN_METHOD_CONNECTION_BIND; + const uint16_t method = STUN_METHOD_CONNECTION_BIND; if (ss->to_be_closed) { @@ -2374,7 +2376,7 @@ static int handle_turn_connection_bind(turn_turnserver *server, ts_ur_super_sess stun_attr_ref sar = stun_attr_get_first_str(ioa_network_buffer_data(in_buffer->nbh), ioa_network_buffer_get_size(in_buffer->nbh)); while (sar && (!(*err_code)) && (*ua_num < MAX_NUMBER_OF_UNKNOWN_ATTRS)) { - int attr_type = stun_attr_get_type(sar); + const int attr_type = stun_attr_get_type(sar); switch (attr_type) { SKIP_ATTRIBUTES; case STUN_ATTRIBUTE_CONNECTION_ID: { @@ -2410,7 +2412,7 @@ static int handle_turn_connection_bind(turn_turnserver *server, ts_ur_super_sess } else { if (server->send_socket_to_relay) { - turnserver_id sid = (id & 0xFF000000) >> 24; + const turnserver_id sid = (id & 0xFF000000) >> 24; ioa_socket_handle s = ss->client_socket; if (s && !ioa_socket_tobeclosed(s)) { ioa_socket_handle new_s = detach_ioa_socket(s); @@ -2593,7 +2595,7 @@ static int handle_turn_channel_bind(turn_turnserver *server, ts_ur_super_session stun_attr_ref sar = stun_attr_get_first_str(ioa_network_buffer_data(in_buffer->nbh), ioa_network_buffer_get_size(in_buffer->nbh)); while (sar && (!(*err_code)) && (*ua_num < MAX_NUMBER_OF_UNKNOWN_ATTRS)) { - int attr_type = stun_attr_get_type(sar); + const int attr_type = stun_attr_get_type(sar); switch (attr_type) { SKIP_ATTRIBUTES; case STUN_ATTRIBUTE_CHANNEL_NUMBER: { @@ -2753,7 +2755,7 @@ static int handle_turn_binding(turn_turnserver *server, ts_ur_super_session *ss, int padding = 0; int response_port_present = 0; uint16_t response_port = 0; - SOCKET_TYPE st = get_ioa_socket_type(ss->client_socket); + const SOCKET_TYPE st = get_ioa_socket_type(ss->client_socket); int use_reflected_from = 0; if (!(ss->client_socket)) { @@ -2766,7 +2768,7 @@ static int handle_turn_binding(turn_turnserver *server, ts_ur_super_session *ss, stun_attr_ref sar = stun_attr_get_first_str(ioa_network_buffer_data(in_buffer->nbh), ioa_network_buffer_get_size(in_buffer->nbh)); while (sar && (!(*err_code)) && (*ua_num < MAX_NUMBER_OF_UNKNOWN_ATTRS)) { - int attr_type = stun_attr_get_type(sar); + const int attr_type = stun_attr_get_type(sar); switch (attr_type) { case OLD_STUN_ATTRIBUTE_PASSWORD: SKIP_ATTRIBUTES; @@ -2819,7 +2821,7 @@ static int handle_turn_binding(turn_turnserver *server, ts_ur_super_session *ss, *err_code = 400; *reason = (const uint8_t *)"Wrong request: applicable only to UDP protocol"; } else { - int rp = stun_attr_get_response_port_str(sar); + const int rp = stun_attr_get_response_port_str(sar); if (rp >= 0) { response_port_present = 1; response_port = (uint16_t)rp; @@ -2881,7 +2883,7 @@ static int handle_turn_binding(turn_turnserver *server, ts_ur_super_session *ss, if (change_port) { addr_cpy(response_origin, &other_address); } else { - int old_port = addr_get_port(response_origin); + const int old_port = addr_get_port(response_origin); addr_cpy(response_origin, &other_address); addr_set_port(response_origin, old_port); } @@ -2932,7 +2934,7 @@ static int handle_turn_send(turn_turnserver *server, ts_ur_super_session *ss, in ioa_addr peer_addr; const uint8_t *value = NULL; int len = -1; - int addr_found = 0; + const int addr_found = 0; int set_df = 0; addr_set_any(&peer_addr); @@ -2950,7 +2952,7 @@ static int handle_turn_send(turn_turnserver *server, ts_ur_super_session *ss, in stun_attr_ref sar = stun_attr_get_first_str(ioa_network_buffer_data(in_buffer->nbh), ioa_network_buffer_get_size(in_buffer->nbh)); while (sar && (!(*err_code)) && (*ua_num < MAX_NUMBER_OF_UNKNOWN_ATTRS)) { - int attr_type = stun_attr_get_type(sar); + const int attr_type = stun_attr_get_type(sar); switch (attr_type) { SKIP_ATTRIBUTES; case STUN_ATTRIBUTE_DONT_FRAGMENT: @@ -3007,7 +3009,7 @@ static int handle_turn_send(turn_turnserver *server, ts_ur_super_session *ss, in ioa_network_buffer_handle nbh = in_buffer->nbh; if (value && len > 0) { - uint16_t offset = (uint16_t)(value - ioa_network_buffer_data(nbh)); + const uint16_t offset = (uint16_t)(value - ioa_network_buffer_data(nbh)); ioa_network_buffer_add_offset_size(nbh, offset, 0, len); } else { len = 0; @@ -3088,7 +3090,7 @@ static int handle_turn_create_permission(turn_turnserver *server, ts_ur_super_se while (sar && (!(*err_code)) && (*ua_num < MAX_NUMBER_OF_UNKNOWN_ATTRS)) { - int attr_type = stun_attr_get_type(sar); + const int attr_type = stun_attr_get_type(sar); switch (attr_type) { @@ -3142,7 +3144,7 @@ static int handle_turn_create_permission(turn_turnserver *server, ts_ur_super_se while (sar) { - int attr_type = stun_attr_get_type(sar); + const int attr_type = stun_attr_get_type(sar); switch (attr_type) { @@ -3293,13 +3295,13 @@ static int check_stun_auth(turn_turnserver *server, ts_ur_super_session *ss, stu if (TURN_RANDOM_SIZE == 8) { for (i = 0; i < (NONCE_LENGTH_32BITS >> 1); i++) { uint8_t *s = ss->nonce + 8 * i; - uint64_t rand = (uint64_t)turn_random(); + const uint64_t rand = (uint64_t)turn_random(); snprintf((char *)s, NONCE_MAX_SIZE - 8 * i, "%08lx", (unsigned long)rand); } } else { for (i = 0; i < NONCE_LENGTH_32BITS; i++) { uint8_t *s = ss->nonce + 4 * i; - uint32_t rand = (uint32_t)turn_random(); + const uint32_t rand = (uint32_t)turn_random(); snprintf((char *)s, NONCE_MAX_SIZE - 4 * i, "%04x", (unsigned int)rand); } } @@ -3319,7 +3321,7 @@ static int check_stun_auth(turn_turnserver *server, ts_ur_super_session *ss, stu } { - int sarlen = stun_attr_get_len(sar); + const int sarlen = stun_attr_get_len(sar); switch (sarlen) { case SHA1SIZEBYTES: @@ -3541,7 +3543,7 @@ static int handle_turn_command(turn_turnserver *server, ts_ur_super_session *ss, uint16_t unknown_attrs[MAX_NUMBER_OF_UNKNOWN_ATTRS]; uint16_t ua_num = 0; - uint16_t method = + const uint16_t method = stun_get_method_str(ioa_network_buffer_data(in_buffer->nbh), ioa_network_buffer_get_size(in_buffer->nbh)); *resp_constructed = 0; @@ -3579,7 +3581,7 @@ static int handle_turn_command(turn_turnserver *server, ts_ur_super_session *ss, } if (!err_code) { - SOCKET_TYPE cst = get_ioa_socket_type(ss->client_socket); + const SOCKET_TYPE cst = get_ioa_socket_type(ss->client_socket); turn_server_addrs_list_t *asl = server->alternate_servers_list; if (((cst == UDP_SOCKET) || (cst == DTLS_SOCKET)) && server->self_udp_balance && server->aux_servers_list && @@ -3609,7 +3611,7 @@ static int handle_turn_command(turn_turnserver *server, ts_ur_super_session *ss, while (sar && !origin_found) { if (stun_attr_get_type(sar) == STUN_ATTRIBUTE_ORIGIN) { - int sarlen = stun_attr_get_len(sar); + const int sarlen = stun_attr_get_len(sar); if (sarlen > 0) { ++norigins; char *o = (char *)malloc(sarlen + 1); @@ -3665,7 +3667,7 @@ static int handle_turn_command(turn_turnserver *server, ts_ur_super_session *ss, while (sar && !origin_found) { if (stun_attr_get_type(sar) == STUN_ATTRIBUTE_ORIGIN) { - int sarlen = stun_attr_get_len(sar); + const int sarlen = stun_attr_get_len(sar); if (sarlen > 0) { char *o = (char *)malloc(sarlen + 1); memcpy(o, stun_attr_get_value(sar), sarlen); @@ -3817,7 +3819,7 @@ static int handle_turn_command(turn_turnserver *server, ts_ur_super_session *ss, ioa_network_buffer_get_size(in_buffer->nbh))) { no_response = 1; - int postpone = 0; + const int postpone = 0; if (!postpone && !err_code) { @@ -3930,7 +3932,7 @@ static int handle_old_stun_command(turn_turnserver *server, ts_ur_super_session uint16_t unknown_attrs[MAX_NUMBER_OF_UNKNOWN_ATTRS]; uint16_t ua_num = 0; - uint16_t method = + const uint16_t method = stun_get_method_str(ioa_network_buffer_data(in_buffer->nbh), ioa_network_buffer_get_size(in_buffer->nbh)); *resp_constructed = 0; @@ -3967,7 +3969,7 @@ static int handle_old_stun_command(turn_turnserver *server, ts_ur_super_session } { - size_t oldsz = strlen(get_version(server)); + const size_t oldsz = strlen(get_version(server)); size_t newsz = (((oldsz) >> 2) + 1) << 2; uint8_t software[120] = {0}; if (newsz > sizeof(software)) { @@ -4023,7 +4025,7 @@ static int handle_old_stun_command(turn_turnserver *server, ts_ur_super_session } { - size_t oldsz = strlen(get_version(server)); + const size_t oldsz = strlen(get_version(server)); size_t newsz = (((oldsz) >> 2) + 1) << 2; uint8_t software[120] = {0}; if (newsz > sizeof(software)) { @@ -4110,7 +4112,7 @@ int shutdown_client_connection(turn_turnserver *server, ts_ur_super_session *ss, return -1; } - SOCKET_TYPE socket_type = get_ioa_socket_type(ss->client_socket); + const SOCKET_TYPE socket_type = get_ioa_socket_type(ss->client_socket); turn_report_session_usage(ss, 1); dec_quota(ss); @@ -4251,7 +4253,7 @@ static int write_client_connection(turn_turnserver *server, ts_ur_super_session } int skip = 0; - int ret = send_data_from_ioa_socket_nbh(ss->client_socket, NULL, nbh, ttl, tos, &skip); + const int ret = send_data_from_ioa_socket_nbh(ss->client_socket, NULL, nbh, ttl, tos, &skip); if (!skip && ret > -1) { ++(ss->sent_packets); @@ -4295,7 +4297,7 @@ static void client_ss_allocation_timeout_handler(ioa_engine_handle e, void *arg) FUNCSTART; - int family = get_ioa_socket_address_family(rsession->s); + const int family = get_ioa_socket_address_family(rsession->s); set_allocation_family_invalid(a, family); @@ -4330,7 +4332,7 @@ static int create_relay_connection(turn_turnserver *server, ts_ur_super_session return -1; } - int family = get_ioa_socket_address_family(s); + const int family = get_ioa_socket_address_family(s); newelem = get_relay_session_ss(ss, family); @@ -4345,7 +4347,7 @@ static int create_relay_connection(turn_turnserver *server, ts_ur_super_session addr_debug_print(server->verbose, get_local_addr_from_ioa_socket(newelem->s), "Local relay addr (RTCP)"); } else { - int family = get_family(address_family, server->e, ss->client_socket); + const int family = get_family(address_family, server->e, ss->client_socket); newelem = get_relay_session_ss(ss, family); @@ -4354,8 +4356,9 @@ static int create_relay_connection(turn_turnserver *server, ts_ur_super_session memset(newelem, 0, sizeof(relay_endpoint_session)); newelem->s = NULL; - int res = create_relay_ioa_sockets(server->e, ss->client_socket, address_family, transport, even_port, - &(newelem->s), &rtcp_s, out_reservation_token, err_code, reason, acb, ss); + const int res = + create_relay_ioa_sockets(server->e, ss->client_socket, address_family, transport, even_port, &(newelem->s), + &rtcp_s, out_reservation_token, err_code, reason, acb, ss); if (res < 0) { if (!(*err_code)) { *err_code = 508; @@ -4461,7 +4464,7 @@ static int read_client_connection(turn_turnserver *server, ts_ur_super_session * return -1; } - int ret = (int)ioa_network_buffer_get_size(in_buffer->nbh); + const int ret = (int)ioa_network_buffer_get_size(in_buffer->nbh); if (ret < 0) { FUNCEND; return -1; @@ -4482,10 +4485,10 @@ static int read_client_connection(turn_turnserver *server, ts_ur_super_session * uint32_t old_stun_cookie = 0; size_t blen = ioa_network_buffer_get_size(in_buffer->nbh); - size_t orig_blen = blen; - SOCKET_TYPE st = get_ioa_socket_type(ss->client_socket); - SOCKET_APP_TYPE sat = get_ioa_socket_app_type(ss->client_socket); - int is_padding_mandatory = is_stream_socket(st); + const size_t orig_blen = blen; + const SOCKET_TYPE st = get_ioa_socket_type(ss->client_socket); + const SOCKET_APP_TYPE sat = get_ioa_socket_app_type(ss->client_socket); + const int is_padding_mandatory = is_stream_socket(st); if (sat == HTTP_CLIENT_SOCKET) { @@ -4530,7 +4533,7 @@ static int read_client_connection(turn_turnserver *server, ts_ur_super_session * ioa_network_buffer_handle nbh = ioa_network_buffer_allocate(server->e); int resp_constructed = 0; - uint16_t method = + const uint16_t method = stun_get_method_str(ioa_network_buffer_data(in_buffer->nbh), ioa_network_buffer_get_size(in_buffer->nbh)); handle_turn_command(server, ss, in_buffer, nbh, &resp_constructed, can_resume); @@ -4557,7 +4560,7 @@ static int read_client_connection(turn_turnserver *server, ts_ur_super_session * ioa_network_buffer_set_size(nbh, len); } - int ret = write_client_connection(server, ss, nbh, TTL_IGNORE, TOS_IGNORE); + const int ret = write_client_connection(server, ss, nbh, TTL_IGNORE, TOS_IGNORE); FUNCEND; return ret; @@ -4577,7 +4580,7 @@ static int read_client_connection(turn_turnserver *server, ts_ur_super_session * if (resp_constructed) { - int ret = write_client_connection(server, ss, nbh, TTL_IGNORE, TOS_IGNORE); + const int ret = write_client_connection(server, ss, nbh, TTL_IGNORE, TOS_IGNORE); FUNCEND; return ret; @@ -4586,7 +4589,7 @@ static int read_client_connection(turn_turnserver *server, ts_ur_super_session * return 0; } } else { - SOCKET_TYPE st = get_ioa_socket_type(ss->client_socket); + const SOCKET_TYPE st = get_ioa_socket_type(ss->client_socket); if (is_stream_socket(st)) { if (is_http((char *)ioa_network_buffer_data(in_buffer->nbh), ioa_network_buffer_get_size(in_buffer->nbh))) { @@ -4642,7 +4645,7 @@ static int read_client_connection(turn_turnserver *server, ts_ur_super_session * char *content = "HTTP not supported.\n"; /* Measure length of content */ - int content_length = strlen(content); + const int content_length = strlen(content); /* Construct full response */ char buffer[1024]; @@ -4780,9 +4783,9 @@ static void peer_input_handler(ioa_socket_handle s, int event_type, ioa_net_data return; } - int offset = STUN_CHANNEL_HEADER_LENGTH; + const int offset = STUN_CHANNEL_HEADER_LENGTH; - int ilen = + const int ilen = min((int)ioa_network_buffer_get_size(in_buffer->nbh), (int)(ioa_network_buffer_get_capacity_udp() - offset)); if (ilen < 0) { return; @@ -4819,8 +4822,8 @@ static void peer_input_handler(ioa_socket_handle s, int event_type, ioa_net_data ioa_network_buffer_header_init(nbh); - SOCKET_TYPE st = get_ioa_socket_type(ss->client_socket); - int do_padding = is_stream_socket(st); + const SOCKET_TYPE st = get_ioa_socket_type(ss->client_socket); + const int do_padding = is_stream_socket(st); stun_init_channel_message_str(chnum, ioa_network_buffer_data(nbh), &len, len, do_padding); ioa_network_buffer_set_size(nbh, len);