Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
7d2b6e4
Adding first test version of heiFIB-cpp to repository
HenriRebitzky May 3, 2025
0d0a371
Fixing major bugs in regard to packet handeling
HenriRebitzky May 18, 2025
a77663d
Adding very basic command line interface
HenriRebitzky May 18, 2025
8a34371
Adding missing imports
HenriRebitzky May 20, 2025
7cf9fff
Deleted incorrect import
HenriRebitzky May 20, 2025
ecb7c1c
Fixing issue with DNS and HTTP header preprocessing
HenriRebitzky May 28, 2025
c3cfb44
Swapping MD5 for SHA256, adding auto detect for dependencies, edit re…
HenriRebitzky May 31, 2025
27b34ad
Fixing bug in ReadMe
HenriRebitzky May 31, 2025
30d0a8c
Changed memory handling
HenriRebitzky Jun 2, 2025
4c79d6a
Changed readme to feature manual installation hint
HenriRebitzky Jun 2, 2025
c93bb02
Extra installation hint for Linux
HenriRebitzky Jun 2, 2025
63c430b
Deleting HTTP Protocol Type case since underlying PCPP definitioin is…
HenriRebitzky Jun 2, 2025
8576362
Allowing parallel LTO passes when building
HenriRebitzky Jun 2, 2025
2f262e0
Fixed max packet issue
HenriRebitzky Jun 3, 2025
65af14f
Added proper commenting to project
HenriRebitzky Jun 3, 2025
9494f87
Minor change to Readme and includes of transport clas
HenriRebitzky Jun 3, 2025
8492bce
Raising c++ standard to 20 for use of concepts in FIPExtractor::verify
HenriRebitzky Jun 4, 2025
20204f2
Fixing minor bug in main/packet classes and deleting unused code
HenriRebitzky Jun 7, 2025
7ff149c
Added building hint for macOS
HenriRebitzky Jun 9, 2025
3c5f0f9
Update pipeline
stefanDeveloper Jun 12, 2025
66710fc
Fix building of ppp
stefanDeveloper Jun 12, 2025
6563ab5
Update pipeline
stefanDeveloper Jun 12, 2025
5c81d0b
Fix linux build
stefanDeveloper Jun 12, 2025
a6767d4
Fix linux build
stefanDeveloper Jun 12, 2025
e4dd9b2
Fix macos
stefanDeveloper Jun 12, 2025
f4d0fb1
Fix windows
stefanDeveloper Jun 12, 2025
60064bc
Update pipeline
stefanDeveloper Jun 12, 2025
86370c4
Update macos build
stefanDeveloper Jun 12, 2025
6d3c960
Add cache to pipeline
stefanDeveloper Jun 12, 2025
c1a9f50
Check cache
stefanDeveloper Jun 12, 2025
90fb172
Update hash
stefanDeveloper Jun 12, 2025
251acc4
Update readme
stefanDeveloper Jun 12, 2025
defcf6c
Update cache
stefanDeveloper Jun 12, 2025
055dcfc
Fix linux cache
stefanDeveloper Jun 12, 2025
aa8ccb1
Update
stefanDeveloper Jun 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions .bumpversion.cfg

This file was deleted.

109 changes: 57 additions & 52 deletions .github/workflows/build_test_linux.yml
Original file line number Diff line number Diff line change
@@ -1,65 +1,70 @@
name: build_test_linux
name: Linux Build

on:
push:
branches:
- main
branches: [ main ]
pull_request:
branches:
- main
branches: [ main ]

jobs:
build_test_linux:
name: ${{ matrix.python-version }} on ${{ matrix.os }}
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest"]
python-version: ["pypy-3.9",
"pypy-3.8",
# "pypy-3.7",
"3.11",
"3.10",
"3.9",
"3.8",
# "3.7"
]
os: [ubuntu-latest]

env:
CMAKE_BUILD_TYPE: Release

steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Setup py-${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
# Caching improves build time, we use pythonLocation to cache everything including wheels to avoid building
# wheels at each build (pandas/Pypy is extremely time consuming)
# sed replacement is performed to rectify PyPy path which ends with /bin
# cache key takes into account the Python version of the runner to avoid version mismatch on updates.
- name: Get pip cache path
id: get-pip-path
run: |
id=$(echo ${{ env.pythonLocation }} | sed 's/\/bin//g')
echo "::set-output name=id::$id"
- name: Checkout code
uses: actions/checkout@v4

- name: Set up CMake
uses: lukka/get-cmake@v3.29.2

- name: Cache APT packages
uses: actions/cache@v4
with:
path: |
/var/cache/apt/archives
key: ${{ runner.os }}-apt-${{ hashFiles('**/CMakeLists.txt') }}
restore-keys: |
${{ runner.os }}-apt-${{ hashFiles('**/CMakeLists.txt') }}

- name: Pip cache
uses: actions/cache@v3
id: pip-cache
with:
path: ${{ steps.get-pip-path.outputs.id }}
key: ${{ steps.get-pip-path.outputs.id }}-${{ hashFiles('setup.py') }}-${{ hashFiles('requirements.txt') }}
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
build-essential \
libssl-dev \
libopencv-dev \
libpcap-dev \
libpthread-stubs0-dev \
git

- name: Install requirements
if: steps.pip-cache.outputs.cache-hit != 'true'
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
- name: Install precompiled PcapPlusPlus
run: |
curl -LO https://github.com/seladb/PcapPlusPlus/releases/download/v25.05/pcapplusplus-25.05-ubuntu-22.04-gcc-11.4.0-x86_64.tar.gz
tar -xzf pcapplusplus-25.05-ubuntu-22.04-gcc-11.4.0-x86_64.tar.gz
cd pcapplusplus-25.05-ubuntu-22.04-gcc-11.4.0-x86_64
sudo cp -r include/* /usr/local/include/
sudo cp -r lib/* /usr/local/lib/
sudo ldconfig

- name: Build
run: |
python -m pip install .
- name: Configure and Build
run: |
cd heiFIP/

- name: Test
if: startsWith(matrix.os, 'ubuntu') && !startsWith(matrix.python-version, '3.10')
run: |
python -m pytest tests.py
mkdir -p build && cd build

cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DUSE_MANUAL_PCAPPLUSPLUS=ON \
-DPcapPlusPlus_INCLUDE_DIRS="/usr/local/include/pcapplusplus/" \
-DPcapPlusPlus_LIBRARIES="/usr/local/lib/libCommon++.a;/usr/local/lib/libPacket++.a;/usr/local/lib/libPcap++.a" \
-DUSE_MANUAL_OPENSSL=ON \
-DOPENSSL_INCLUDE_DIR="/usr/include/openssl" \
-DOPENSSL_CRYPTO_LIBRARY="/usr/lib/x86_64-linux-gnu/libcrypto.a"

make -j$(nproc)
92 changes: 38 additions & 54 deletions .github/workflows/build_test_macos.yml
Original file line number Diff line number Diff line change
@@ -1,67 +1,51 @@
name: build_test_macos
name: MacOS Build

on:
push:
branches:
- main
branches: [ main ]
pull_request:
branches:
- main
branches: [ main ]

jobs:
build_test_macos:
name: ${{ matrix.python-version }} on ${{ matrix.os }}
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ["macos-12"]
python-version: ["pypy-3.9",
"pypy-3.8",
# "pypy-3.7",
# "3.11",
# Not available yet.
"3.10",
"3.9",
"3.8",
# "3.7"
]
os: [macos-latest]

env:
CMAKE_BUILD_TYPE: Release

steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Setup py-${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
# Caching improves build time, we use pythonLocation to cache everything including wheels to avoid building
# wheels at each build (pandas/Pypy is extremely time consuming)
# sed replacement is performed to rectify PyPy path which ends with /bin
# cache key takes into account the Python version of the runner to avoid version mismatch on updates.
- name: Get pip cache path
id: get-pip-path
run: |
id=$(echo ${{ env.pythonLocation }} | sed 's/\/bin//g')
echo "::set-output name=id::$id"
- name: Checkout code
uses: actions/checkout@v4

- name: Set up CMake
uses: lukka/get-cmake@v3.29.2

- name: Set up Homebrew cache
uses: actions/cache@v4
with:
path: |
/Users/runner/Library/Caches/Homebrew
/usr/local/Homebrew/Library/Taps
/usr/local/Cellar
key: ${{ runner.os }}-brew-${{ hashFiles('**/CMakeLists.txt') }}
restore-keys: |
${{ runner.os }}-brew-${{ hashFiles('**/CMakeLists.txt') }}

- name: Pip cache
uses: actions/cache@v3
id: pip-cache
with:
path: ${{ steps.get-pip-path.outputs.id }}
key: ${{ steps.get-pip-path.outputs.id }}-${{ hashFiles('setup.py') }}-${{ hashFiles('requirements.txt') }}
- name: Install dependencies
run: |
brew update
brew install openssl opencv libpcap cmake git pcapplusplus

- name: Install requirements
if: steps.pip-cache.outputs.cache-hit != 'true'
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
- name: Configure and Build
run: |
cd heiFIP/

- name: Build
run: |
python -m pip install .
mkdir -p build && cd build

- name: Test
# On other versions then 3.9, we test only. (without coverage generation)
if: startsWith(matrix.os, 'macos') && !startsWith(matrix.python-version, '3.9') && !startsWith(github.ref, 'refs/tags/')
run: |
python -m pytest tests.py
cmake .. \
-DCMAKE_BUILD_TYPE=Release

make
58 changes: 0 additions & 58 deletions .github/workflows/build_test_windows.yml

This file was deleted.

27 changes: 0 additions & 27 deletions .github/workflows/build_wheel_publish.yml

This file was deleted.

Loading
Loading