From 93c5387180617568fdd55da84ac8e2dedc7f51e6 Mon Sep 17 00:00:00 2001 From: Haseeb Abdul Qadir Date: Fri, 21 May 2021 07:51:45 -0400 Subject: [PATCH] Avoid using bzero for the entire stun_buffer_list_elem and only init metadata On high traffic servers bzero -> memset takes a significant amount of time because each stun_buffer_list_elem can be ~64kb --- src/apps/relay/ns_ioalib_engine_impl.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/apps/relay/ns_ioalib_engine_impl.c b/src/apps/relay/ns_ioalib_engine_impl.c index 4640225..e979a54 100644 --- a/src/apps/relay/ns_ioalib_engine_impl.c +++ b/src/apps/relay/ns_ioalib_engine_impl.c @@ -297,15 +297,15 @@ static stun_buffer_list_elem *new_blist_elem(ioa_engine_handle e) if(!ret) { ret = (stun_buffer_list_elem *)malloc(sizeof(stun_buffer_list_elem)); - if (ret) { - ret->next = NULL; - } else { - TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "%s: Cannot allocate memory for STUN buffer!\n", __FUNCTION__); - } } if(ret) { - bzero(&ret->buf, sizeof(stun_buffer)); + ret->buf.len = 0; + ret->buf.offset = 0; + ret->buf.coffset = 0; + ret->next = NULL; + } else { + TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "%s: Cannot allocate memory for STUN buffer!\n", __FUNCTION__); } return ret;