Skip to content

Commit 7e284ee

Browse files
authored
IPv4 only support
2 parents 8647b6e + 0cd2390 commit 7e284ee

3 files changed

Lines changed: 484 additions & 13 deletions

File tree

.github/workflows/tests.yml

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,21 @@ jobs:
4343
run: cd build ; .\Debug\enet_test.exe
4444
- name: Run unit tests with extra peers
4545
run: cd build ; .\Debug\enet_test_extra_peers.exe
46+
- name: Run unit tests with IPv4-only mode
47+
run: cd build ; .\Debug\enet_test_ipv4_only.exe
48+
49+
build-win-ipv4:
50+
name: Test Windows (IPv4-only)
51+
runs-on: windows-latest
52+
needs: [prep]
53+
steps:
54+
- uses: actions/checkout@v1
55+
- name: Run cmake generator with IPv4-only
56+
run: cmake -B build_ipv4 -DENET_TEST=1 -DENET_IPV4_ONLY=ON
57+
- name: Run Windows build (IPv4-only)
58+
run: cmake --build build_ipv4
59+
- name: Run unit tests (IPv4-only)
60+
run: cd build_ipv4 ; .\Debug\enet_test.exe
4661

4762
build-lin:
4863
name: Test Linux
@@ -58,6 +73,21 @@ jobs:
5873
run: build/enet_test
5974
- name: Test build on Linux with extra peers
6075
run: build/enet_test_extra_peers
76+
- name: Test build on Linux with IPv4-only mode
77+
run: build/enet_test_ipv4_only
78+
79+
build-lin-ipv4:
80+
name: Test Linux (IPv4-only)
81+
runs-on: ubuntu-latest
82+
needs: [prep]
83+
steps:
84+
- uses: actions/checkout@v1
85+
- name: Run cmake generator with IPv4-only
86+
run: cmake -B build_ipv4 -DENET_TEST=1 -DENET_IPV4_ONLY=ON
87+
- name: Run build on Linux (IPv4-only)
88+
run: cmake --build build_ipv4
89+
- name: Test build on Linux (IPv4-only)
90+
run: build_ipv4/enet_test
6191

6292
build-mac:
6393
name: Test macOS
@@ -77,18 +107,18 @@ jobs:
77107
done:
78108
name: Notify about status
79109
runs-on: ubuntu-latest
80-
needs: [build-mac, build-lin, build-win]
110+
needs: [build-mac, build-lin, build-win, build-lin-ipv4, build-win-ipv4]
81111
if: "always()"
82112
steps:
83113
- uses: inlife/actiord-action@v1
84-
if: ${{ contains(needs.build-mac.result, 'success') && contains(needs.build-lin.result, 'success') && contains(needs.build-win.result, 'success') }}
114+
if: ${{ contains(needs.build-mac.result, 'success') && contains(needs.build-lin.result, 'success') && contains(needs.build-win.result, 'success') && contains(needs.build-lin-ipv4.result, 'success') && contains(needs.build-win-ipv4.result, 'success') }}
85115
with:
86116
url: ${{ secrets.ACTIORD_URL }}
87117
icon: https://avatars1.githubusercontent.com/u/26773913?s=200&v=4
88118
state: succeeded
89119

90120
- uses: inlife/actiord-action@v1
91-
if: ${{ !(contains(needs.build-mac.result, 'success') && contains(needs.build-lin.result, 'success') && contains(needs.build-win.result, 'success')) }}
121+
if: ${{ !(contains(needs.build-mac.result, 'success') && contains(needs.build-lin.result, 'success') && contains(needs.build-win.result, 'success') && contains(needs.build-lin-ipv4.result, 'success') && contains(needs.build-win-ipv4.result, 'success')) }}
92122
with:
93123
url: ${{ secrets.ACTIORD_URL }}
94124
discord_token: ${{ secrets.DISCORD_TOKEN }}

CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,16 @@ option(ENET_STATIC "Build enet as a static library" ON)
88
option(ENET_SHARED "Build enet as a shared library" OFF)
99
option(ENET_TEST "Build enet tests" ON)
1010
option(ENET_USE_MORE_PEERS "Build enet with up to 65k peers support" OFF)
11+
option(ENET_IPV4_ONLY "Build enet with IPv4-only support (no IPv6)" OFF)
1112

1213
if (ENET_USE_MORE_PEERS)
1314
add_definitions(-DENET_USE_MORE_PEERS)
1415
endif()
1516

17+
if (ENET_IPV4_ONLY)
18+
add_definitions(-DENET_IPV4_ONLY)
19+
endif()
20+
1621
# -----------------------------
1722
# 2) Static library
1823
# -----------------------------
@@ -96,6 +101,11 @@ if(ENET_TEST)
96101
${CMAKE_CURRENT_SOURCE_DIR}/include
97102
${CMAKE_CURRENT_SOURCE_DIR}/test/units/include
98103
)
104+
105+
# Test with IPv4-only mode
106+
add_executable(enet_test_ipv4_only test/build.c)
107+
target_link_libraries(enet_test_ipv4_only PRIVATE enet_test_interface)
108+
target_compile_definitions(enet_test_ipv4_only PRIVATE ENET_IPV4_ONLY)
99109
endif()
100110

101111
# -----------------------------

0 commit comments

Comments
 (0)