Skip to content

Commit 53a838d

Browse files
authored
Merge pull request #40 from firehol/ipv6-support
Add IPv6 support with --ipv4/-4 and --ipv6/-6 flags
2 parents 74556b5 + 6452175 commit 53a838d

File tree

90 files changed

+5400
-624
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+5400
-624
lines changed

.github/workflows/sync-wiki.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Sync wiki
2+
3+
on:
4+
push:
5+
branches: [master]
6+
paths:
7+
- 'wiki/**'
8+
9+
jobs:
10+
sync:
11+
runs-on: ubuntu-latest
12+
permissions:
13+
contents: write
14+
steps:
15+
- name: Checkout repo
16+
uses: actions/checkout@v4
17+
18+
- name: Checkout wiki
19+
uses: actions/checkout@v4
20+
with:
21+
repository: ${{ github.repository }}.wiki
22+
path: wiki-repo
23+
token: ${{ secrets.GITHUB_TOKEN }}
24+
25+
- name: Sync wiki files
26+
run: |
27+
cp wiki/*.md wiki-repo/
28+
cd wiki-repo
29+
git config user.name "github-actions[bot]"
30+
git config user.email "github-actions[bot]@users.noreply.github.com"
31+
git add -A
32+
if git diff --cached --quiet; then
33+
echo "No wiki changes to sync"
34+
else
35+
git commit -m "Sync wiki from repo"
36+
git push
37+
fi

CMakeLists.txt

Lines changed: 59 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,65 @@
1-
cmake_minimum_required(VERSION 3.3)
1+
cmake_minimum_required(VERSION 3.10)
22
project(iprange C)
33

4-
find_package (Threads)
4+
find_package(Threads REQUIRED)
55

6-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wformat-signedness -Werror=format-security")
6+
include(CheckTypeSize)
7+
check_type_size("__uint128_t" UINT128_SIZE LANGUAGE C)
8+
if(NOT HAVE_UINT128_SIZE)
9+
message(FATAL_ERROR "Compiler does not support __uint128_t, required for IPv6")
10+
endif()
711

8-
set(SOURCE_FILES
9-
src/iprange.c src/ipset.c src/ipset.h src/iprange.h src/ipset_binary.c src/ipset_binary.h src/ipset_load.c src/ipset_load.h src/ipset_reduce.c src/ipset_print.c src/ipset_print.h src/ipset_optimize.c src/ipset_optimize.h src/ipset_reduce.h src/ipset_diff.c src/ipset_diff.h src/ipset_common.c src/ipset_common.h src/ipset_exclude.c src/ipset_exclude.h src/ipset_merge.c src/ipset_merge.h src/ipset_copy.c src/ipset_copy.h src/ipset_combine.c src/ipset_combine.h)
12+
# Generate config.h with the defines the source expects
13+
include(CheckIncludeFile)
14+
check_include_file(inttypes.h HAVE_INTTYPES_H)
15+
check_include_file(stdint.h HAVE_STDINT_H)
1016

11-
include_directories(AFTER ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/src)
12-
add_definitions("-DHAVE_CONFIG_H")
17+
configure_file(
18+
${CMAKE_CURRENT_SOURCE_DIR}/cmake/config.h.in
19+
${CMAKE_CURRENT_BINARY_DIR}/config.h
20+
)
1321

14-
add_executable(iprange_git ${SOURCE_FILES})
22+
set(SOURCES
23+
src/iprange.c
24+
src/iprange6_main.c
25+
src/ipset.c
26+
src/ipset6.c
27+
src/ipset6_binary.c
28+
src/ipset6_combine.c
29+
src/ipset6_common.c
30+
src/ipset6_copy.c
31+
src/ipset6_diff.c
32+
src/ipset6_dns.c
33+
src/ipset6_exclude.c
34+
src/ipset6_load.c
35+
src/ipset6_merge.c
36+
src/ipset6_optimize.c
37+
src/ipset6_print.c
38+
src/ipset_binary.c
39+
src/ipset_combine.c
40+
src/ipset_common.c
41+
src/ipset_copy.c
42+
src/ipset_diff.c
43+
src/ipset_dns.c
44+
src/ipset_exclude.c
45+
src/ipset_load.c
46+
src/ipset_merge.c
47+
src/ipset_optimize.c
48+
src/ipset_print.c
49+
src/ipset_reduce.c
50+
)
51+
52+
add_executable(iprange ${SOURCES})
53+
target_include_directories(iprange PRIVATE
54+
${CMAKE_CURRENT_BINARY_DIR}
55+
${CMAKE_CURRENT_SOURCE_DIR}/src
56+
)
57+
target_compile_definitions(iprange PRIVATE
58+
HAVE_CONFIG_H
59+
COMPARE_WITH_COMMON=1
60+
VERSION="${PROJECT_VERSION}"
61+
)
62+
target_compile_options(iprange PRIVATE
63+
-Wall -Wextra -Wformat-signedness -Werror=format-security
64+
)
65+
target_link_libraries(iprange Threads::Threads)

Makefile.am

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,27 @@ endif
3333
iprange_SOURCES = \
3434
src/iprange.c \
3535
src/iprange.h \
36+
src/iprange6.h \
37+
src/iprange6_main.c \
3638
src/ipset.c \
3739
src/ipset.h \
40+
src/ipset6.c \
41+
src/ipset6.h \
42+
src/ipset6_binary.c \
43+
src/ipset6_binary.h \
44+
src/ipset6_combine.c \
45+
src/ipset6_common.c \
46+
src/ipset6_copy.c \
47+
src/ipset6_diff.c \
48+
src/ipset6_dns.c \
49+
src/ipset6_dns.h \
50+
src/ipset6_exclude.c \
51+
src/ipset6_load.c \
52+
src/ipset6_load.h \
53+
src/ipset6_merge.c \
54+
src/ipset6_optimize.c \
55+
src/ipset6_print.c \
56+
src/ipset6_print.h \
3857
src/ipset_binary.c \
3958
src/ipset_binary.h \
4059
src/ipset_combine.c \
@@ -45,6 +64,8 @@ iprange_SOURCES = \
4564
src/ipset_copy.h \
4665
src/ipset_diff.c \
4766
src/ipset_diff.h \
67+
src/ipset_dns.c \
68+
src/ipset_dns.h \
4869
src/ipset_exclude.c \
4970
src/ipset_exclude.h \
5071
src/ipset_load.c \
@@ -61,12 +82,26 @@ iprange_SOURCES = \
6182

6283
VPATH_LOCAL_OBJECTS = \
6384
src/iprange.$(OBJEXT) \
85+
src/iprange6_main.$(OBJEXT) \
6486
src/ipset.$(OBJEXT) \
87+
src/ipset6.$(OBJEXT) \
88+
src/ipset6_binary.$(OBJEXT) \
89+
src/ipset6_combine.$(OBJEXT) \
90+
src/ipset6_common.$(OBJEXT) \
91+
src/ipset6_copy.$(OBJEXT) \
92+
src/ipset6_diff.$(OBJEXT) \
93+
src/ipset6_dns.$(OBJEXT) \
94+
src/ipset6_exclude.$(OBJEXT) \
95+
src/ipset6_load.$(OBJEXT) \
96+
src/ipset6_merge.$(OBJEXT) \
97+
src/ipset6_optimize.$(OBJEXT) \
98+
src/ipset6_print.$(OBJEXT) \
6599
src/ipset_binary.$(OBJEXT) \
66100
src/ipset_combine.$(OBJEXT) \
67101
src/ipset_common.$(OBJEXT) \
68102
src/ipset_copy.$(OBJEXT) \
69103
src/ipset_diff.$(OBJEXT) \
104+
src/ipset_dns.$(OBJEXT) \
70105
src/ipset_exclude.$(OBJEXT) \
71106
src/ipset_load.$(OBJEXT) \
72107
src/ipset_merge.$(OBJEXT) \

0 commit comments

Comments
 (0)