Skip to content

Commit bf43342

Browse files
authored
Add STUN component as submodule after re-factoring (#1960)
* Update Serializer and Deserializer * Add Stun component * Fix clang format * Fix warnings * Fix address copy length * Fix test case message length * Minor update * Add MAGIC check * Update padded len * Update comments * Add API test for convertStunErrorCodeTest * Remove unused variable
1 parent ec203eb commit bf43342

File tree

11 files changed

+306
-425
lines changed

11 files changed

+306
-425
lines changed

Diff for: CMake/Dependencies/libkvsstun-CMakeLists.txt

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
cmake_minimum_required(VERSION 3.6.3)
2+
3+
project(libkvsstun NONE)
4+
5+
include(ExternalProject)
6+
if (BUILD_STATIC_LIBS OR WIN32)
7+
set(LIBKVSSTUN_SHARED_LIBS OFF)
8+
else()
9+
set(LIBKVSSTUN_SHARED_LIBS ON)
10+
endif()
11+
12+
ExternalProject_Add(libkvsstun
13+
GIT_REPOSITORY https://github.com/awslabs/amazon-kinesis-video-streams-stun.git
14+
GIT_TAG 2fa9ed638239aa058a71db0d9430ab427e6e21a3
15+
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/build
16+
CMAKE_ARGS
17+
-DCMAKE_INSTALL_PREFIX=${OPEN_SRC_INSTALL_PREFIX}
18+
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
19+
-DBUILD_SHARED_LIBS=${LIBKVSSTUN_SHARED_LIBS}
20+
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
21+
BUILD_ALWAYS TRUE
22+
TEST_COMMAND ""
23+
)

Diff for: CMake/Utilities.cmake

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ function(build_dependency lib_name)
1414
mbedtls
1515
kvspic
1616
kvsCommonLws
17-
kvssdp)
17+
kvssdp
18+
kvsstun)
1819
list(FIND supported_libs ${lib_name} index)
1920
if(${index} EQUAL -1)
2021
message(WARNING "${lib_name} is not supported to build from source")

Diff for: CMakeLists.txt

+9
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,13 @@ if(BUILD_DEPENDENCIES)
222222

223223
build_dependency(kvssdp ${BUILD_ARGS})
224224

225+
set(BUILD_ARGS
226+
-DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS}
227+
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
228+
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS})
229+
230+
build_dependency(kvsstun ${BUILD_ARGS})
231+
225232
set(BUILD_ARGS
226233
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
227234
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS})
@@ -407,6 +414,7 @@ target_link_libraries(
407414
PRIVATE kvspicUtils
408415
kvspicState
409416
kvssdp
417+
kvsstun
410418
${CMAKE_THREAD_LIBS_INIT}
411419
${OPENSSL_SSL_LIBRARY}
412420
${OPENSSL_CRYPTO_LIBRARY}
@@ -429,6 +437,7 @@ target_link_libraries(
429437
kvsCommonLws
430438
${LIBWEBSOCKETS_LIBRARIES}
431439
kvssdp
440+
kvsstun
432441
PRIVATE kvspicUtils
433442
kvspicState
434443
${CMAKE_THREAD_LIBS_INIT}

Diff for: samples/CMakeLists.txt

+4-4
Original file line numberDiff line numberDiff line change
@@ -61,18 +61,18 @@ add_executable(
6161
kvsWebrtcClientMaster
6262
Common.c
6363
kvsWebRTCClientMaster.c)
64-
target_link_libraries(kvsWebrtcClientMaster kvsWebrtcClient kvsWebrtcSignalingClient ${EXTRA_DEPS} kvsCommonLws kvspicUtils websockets kvssdp)
64+
target_link_libraries(kvsWebrtcClientMaster kvsWebrtcClient kvsWebrtcSignalingClient ${EXTRA_DEPS} kvsCommonLws kvspicUtils websockets kvssdp kvsstun)
6565

6666
add_executable(
6767
kvsWebrtcClientViewer
6868
Common.c
6969
kvsWebRTCClientViewer.c)
70-
target_link_libraries(kvsWebrtcClientViewer kvsWebrtcClient kvsWebrtcSignalingClient ${EXTRA_DEPS} kvsCommonLws kvspicUtils websockets kvssdp)
70+
target_link_libraries(kvsWebrtcClientViewer kvsWebrtcClient kvsWebrtcSignalingClient ${EXTRA_DEPS} kvsCommonLws kvspicUtils websockets kvssdp kvsstun)
7171

7272
add_executable(
7373
discoverNatBehavior
7474
discoverNatBehavior.c)
75-
target_link_libraries(discoverNatBehavior kvsWebrtcClient ${EXTRA_DEPS} kvssdp)
75+
target_link_libraries(discoverNatBehavior kvsWebrtcClient ${EXTRA_DEPS} kvssdp kvsstun)
7676

7777
if(GST_FOUND)
7878
add_executable(
@@ -81,7 +81,7 @@ if(GST_FOUND)
8181
GstAudioVideoReceiver.c
8282
kvsWebRTCClientMasterGstSample.c
8383
)
84-
target_link_libraries(kvsWebrtcClientMasterGstSample kvsWebrtcClient kvsWebrtcSignalingClient ${EXTRA_DEPS} ${GST_SAMPLE_LIBRARIES} kvsCommonLws kvspicUtils websockets kvssdp)
84+
target_link_libraries(kvsWebrtcClientMasterGstSample kvsWebrtcClient kvsWebrtcSignalingClient ${EXTRA_DEPS} ${GST_SAMPLE_LIBRARIES} kvsCommonLws kvspicUtils websockets kvssdp kvsstun)
8585

8686
install(TARGETS kvsWebrtcClientMasterGstSample
8787
RUNTIME DESTINATION bin

Diff for: src/include/com/amazonaws/kinesis/video/webrtcclient/Include.h

+5
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,11 @@ extern "C" {
176176
#define STATUS_STUN_INVALID_ICE_CONTROL_ATTRIBUTE_LENGTH STATUS_STUN_BASE + 0x00000017
177177
#define STATUS_STUN_INVALID_CHANNEL_NUMBER_ATTRIBUTE_LENGTH STATUS_STUN_BASE + 0x00000018
178178
#define STATUS_STUN_INVALID_CHANGE_REQUEST_ATTRIBUTE_LENGTH STATUS_STUN_BASE + 0x00000019
179+
#define STATUS_STUN_INVALID_MESSAGE_LENGTH STATUS_STUN_BASE + 0x0000001A
180+
#define STATUS_STUN_INVALID_ATTRIBUTE_LENGTH STATUS_STUN_BASE + 0x0000001B
181+
#define STATUS_STUN_ATTRIBUTE_NOT_FOUND STATUS_STUN_BASE + 0x0000001C
182+
#define STATUS_STUN_NO_MORE_ATTRIBUTE_FOUND STATUS_STUN_BASE + 0x0000001D
183+
#define STATUS_STUN_UNKNOWN_ERROR STATUS_STUN_BASE + 0x0000001E
179184
/*!@} */
180185

181186
/////////////////////////////////////////////////////

Diff for: src/source/Include_i.h

+2
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ extern "C" {
2626
////////////////////////////////////////////////////
2727
#include <com/amazonaws/kinesis/video/webrtcclient/Include.h>
2828
#include "kvssdp/sdp_data_types.h"
29+
#include "kvsstun/stun_data_types.h"
2930

3031
#ifdef KVS_USE_OPENSSL
3132
#include <openssl/bio.h>
@@ -173,6 +174,7 @@ STATUS generateJSONSafeString(PCHAR, UINT32);
173174
#define KVS_CONVERT_TIMESCALE(pts, from_timescale, to_timescale) (pts * to_timescale / from_timescale)
174175

175176
STATUS convertSdpErrorCode(SdpResult_t sdpResult);
177+
STATUS convertStunErrorCode(StunResult_t sdpResult);
176178

177179
#ifdef __cplusplus
178180
}

0 commit comments

Comments
 (0)