Enable IPv6 95/235395/2 submit/tizen/20200604.101817
authorSeonah Moon <seonah1.moon@samsung.com>
Thu, 4 Jun 2020 07:55:45 +0000 (16:55 +0900)
committerSeonah Moon <seonah1.moon@samsung.com>
Thu, 4 Jun 2020 08:04:18 +0000 (17:04 +0900)
- Enable IPv6
- Add new option LWS_WITH_SO_BINDTODEVICE
  : If interface is specified, bind() function is used but it always
  makes error INVALID_ARGMENT. To avoid this error, use SO_BINDTODEVICE
  before calling bind() function.

Change-Id: I2a5495444a1f0910697316d1158192d2d3c519ff

CMakeLists.txt
packaging/libwebsockets.spec

index aba0e44dd1229fa9178fafb5fe5f7cec143b39f2..96651aa5be407f0fa31edb76c917d4a4df0e8ed8 100644 (file)
@@ -133,6 +133,8 @@ option(LWS_WITH_DEPRECATED_LWS_DLL "Migrate to lws_dll2 instead ASAP" OFF)
 option(LWS_WITH_SEQUENCER "lws_seq_t support" ON)
 option(LWS_WITH_EXTERNAL_POLL "Support external POLL integration using callback messages (not recommended)" OFF)
 option(LWS_WITH_LWS_DSH "Support lws_dsh_t Disordered Shared Heap" OFF)
+
+option(LWS_WITH_SO_BINDTODEVICE "Use SO_BINDTODEVICE option for socket" OFF)
 #
 # to use miniz, enable both LWS_WITH_ZLIB and LWS_WITH_MINIZ
 #
@@ -954,6 +956,9 @@ if (MSVC)
        add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE)
 endif(MSVC)
 
+if (LWS_WITH_SO_BINDTODEVICE)
+       add_definitions(-D_SO_BINDTODEVICE)
+endif()
 include_directories("${PROJECT_SOURCE_DIR}/lib")
 
 # Group headers and sources.
@@ -2750,7 +2755,7 @@ message(" LWS_HAVE_STAT32I64 = ${LWS_HAVE_STAT32I64}")
 message(" LWS_HAS_INTPTR_T = ${LWS_HAS_INTPTR_T}")
 message(" LWS_WITH_EXPORT_LWSTARGETS = ${LWS_WITH_EXPORT_LWSTARGETS}")
 message(" LWS_WITH_ABSTRACT = ${LWS_WITH_ABSTRACT}")
-
+message(" LWS_WITH_SO_BINDTODEVICE = ${LWS_WITH_SO_BINDTODEVICE}")
 message("---------------------------------------------------------------------")
 
 # These will be available to parent projects including libwebsockets using add_subdirectory()
index db851d7858f66956ee9abf2dd117de81459dc140..43430f99624bbe3c3bba34ab1ce26728feaed64f 100644 (file)
@@ -32,7 +32,12 @@ Development files needed for building websocket clients and servers
 
 %build
 
-%cmake -DLWS_WITH_SSL=On -DLWS_WITHOUT_TESTAPPS=ON -DLWS_WITH_SERVER_STATUS=ON
+%cmake -DLWS_WITH_SSL=On \
+       -DLWS_WITHOUT_TESTAPPS=ON \
+       -DLWS_WITH_SERVER_STATUS=ON \
+       -DLWS_IPV6=ON \
+       -DLWS_WITH_SO_BINDTODEVICE=ON \
+       .
 
 make %{?jobs:-j%jobs}