add netbeans project

This commit is contained in:
stubbfel
2015-08-19 22:10:07 +02:00
parent 8efecd4500
commit d88274f9b5
16 changed files with 1514 additions and 0 deletions

5
.dep.inc Normal file
View File

@@ -0,0 +1,5 @@
# This code depends on make tool being used
DEPFILES=$(wildcard $(addsuffix .d, ${OBJECTFILES}))
ifneq (${DEPFILES},)
include ${DEPFILES}
endif

128
Makefile Normal file
View File

@@ -0,0 +1,128 @@
#
# There exist several targets which are by default empty and which can be
# used for execution of your targets. These targets are usually executed
# before and after some main targets. They are:
#
# .build-pre: called before 'build' target
# .build-post: called after 'build' target
# .clean-pre: called before 'clean' target
# .clean-post: called after 'clean' target
# .clobber-pre: called before 'clobber' target
# .clobber-post: called after 'clobber' target
# .all-pre: called before 'all' target
# .all-post: called after 'all' target
# .help-pre: called before 'help' target
# .help-post: called after 'help' target
#
# Targets beginning with '.' are not intended to be called on their own.
#
# Main targets can be executed directly, and they are:
#
# build build a specific configuration
# clean remove built files from a configuration
# clobber remove all built files
# all build all configurations
# help print help mesage
#
# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
# .help-impl are implemented in nbproject/makefile-impl.mk.
#
# Available make variables:
#
# CND_BASEDIR base directory for relative paths
# CND_DISTDIR default top distribution directory (build artifacts)
# CND_BUILDDIR default top build directory (object files, ...)
# CONF name of current configuration
# CND_PLATFORM_${CONF} platform name (current configuration)
# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration)
# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration)
# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration)
# CND_PACKAGE_DIR_${CONF} directory of package (current configuration)
# CND_PACKAGE_NAME_${CONF} name of package (current configuration)
# CND_PACKAGE_PATH_${CONF} path to package (current configuration)
#
# NOCDDL
# Environment
MKDIR=mkdir
CP=cp
CCADMIN=CCadmin
# build
build: .build-post
.build-pre:
# Add your pre 'build' code here...
.build-post: .build-impl
# Add your post 'build' code here...
# clean
clean: .clean-post
.clean-pre:
# Add your pre 'clean' code here...
.clean-post: .clean-impl
# Add your post 'clean' code here...
# clobber
clobber: .clobber-post
.clobber-pre:
# Add your pre 'clobber' code here...
.clobber-post: .clobber-impl
# Add your post 'clobber' code here...
# all
all: .all-post
.all-pre:
# Add your pre 'all' code here...
.all-post: .all-impl
# Add your post 'all' code here...
# build tests
build-tests: .build-tests-post
.build-tests-pre:
# Add your pre 'build-tests' code here...
.build-tests-post: .build-tests-impl
# Add your post 'build-tests' code here...
# run tests
test: .test-post
.test-pre: build-tests
# Add your pre 'test' code here...
.test-post: .test-impl
# Add your post 'test' code here...
# help
help: .help-post
.help-pre:
# Add your pre 'help' code here...
.help-post: .help-impl
# Add your post 'help' code here...
# include project implementation makefile
include nbproject/Makefile-impl.mk
# include project make variables
include nbproject/Makefile-variables.mk

150
nbproject/Makefile-Debug.mk Normal file
View File

@@ -0,0 +1,150 @@
#
# Generated Makefile - do not edit!
#
# Edit the Makefile in the project folder instead (../Makefile). Each target
# has a -pre and a -post target defined where you can add customized code.
#
# This makefile implements configuration specific macros and targets.
# Environment
MKDIR=mkdir
CP=cp
GREP=grep
NM=nm
CCADMIN=CCadmin
RANLIB=ranlib
CC=gcc
CCC=g++
CXX=g++
FC=gfortran
AS=as
# Macros
CND_PLATFORM=GNU-Linux-x86
CND_DLIB_EXT=so
CND_CONF=Debug
CND_DISTDIR=dist
CND_BUILDDIR=build
# Include project Makefile
include Makefile
# Object Directory
OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}
# Object Files
OBJECTFILES= \
${OBJECTDIR}/src/main.o \
${OBJECTDIR}/src/map/natmap.o
# Test Directory
TESTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tests
# Test Files
TESTFILES= \
${TESTDIR}/TestFiles/f1
# C Compiler Flags
CFLAGS=
# CC Compiler Flags
CCFLAGS=
CXXFLAGS=
# Fortran Compiler Flags
FFLAGS=
# Assembler Flags
ASFLAGS=
# Link Libraries and Options
LDLIBSOPTIONS=-ltins -lpthread
# Build Targets
.build-conf: ${BUILD_SUBPROJECTS}
"${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat
${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat: ${OBJECTFILES}
${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat ${OBJECTFILES} ${LDLIBSOPTIONS}
${OBJECTDIR}/src/main.o: src/main.cpp
${MKDIR} -p ${OBJECTDIR}/src
${RM} "$@.d"
$(COMPILE.cc) -g -Wall -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/main.o src/main.cpp
${OBJECTDIR}/src/map/natmap.o: src/map/natmap.cpp
${MKDIR} -p ${OBJECTDIR}/src/map
${RM} "$@.d"
$(COMPILE.cc) -g -Wall -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/map/natmap.o src/map/natmap.cpp
# Subprojects
.build-subprojects:
# Build Test Targets
.build-tests-conf: .build-conf ${TESTFILES}
${TESTDIR}/TestFiles/f1: ${TESTDIR}/tests/nattest.o ${TESTDIR}/tests/nattestrunner.o ${OBJECTFILES:%.o=%_nomain.o}
${MKDIR} -p ${TESTDIR}/TestFiles
${LINK.cc} -o ${TESTDIR}/TestFiles/f1 $^ ${LDLIBSOPTIONS} `cppunit-config --libs`
${TESTDIR}/tests/nattest.o: tests/nattest.cpp
${MKDIR} -p ${TESTDIR}/tests
${RM} "$@.d"
$(COMPILE.cc) -g -Wall -I. -std=c++11 `cppunit-config --cflags` -MMD -MP -MF "$@.d" -o ${TESTDIR}/tests/nattest.o tests/nattest.cpp
${TESTDIR}/tests/nattestrunner.o: tests/nattestrunner.cpp
${MKDIR} -p ${TESTDIR}/tests
${RM} "$@.d"
$(COMPILE.cc) -g -Wall -I. -std=c++11 `cppunit-config --cflags` -MMD -MP -MF "$@.d" -o ${TESTDIR}/tests/nattestrunner.o tests/nattestrunner.cpp
${OBJECTDIR}/src/main_nomain.o: ${OBJECTDIR}/src/main.o src/main.cpp
${MKDIR} -p ${OBJECTDIR}/src
@NMOUTPUT=`${NM} ${OBJECTDIR}/src/main.o`; \
if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \
(echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \
(echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
then \
${RM} "$@.d";\
$(COMPILE.cc) -g -Wall -std=c++11 -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/main_nomain.o src/main.cpp;\
else \
${CP} ${OBJECTDIR}/src/main.o ${OBJECTDIR}/src/main_nomain.o;\
fi
${OBJECTDIR}/src/map/natmap_nomain.o: ${OBJECTDIR}/src/map/natmap.o src/map/natmap.cpp
${MKDIR} -p ${OBJECTDIR}/src/map
@NMOUTPUT=`${NM} ${OBJECTDIR}/src/map/natmap.o`; \
if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \
(echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \
(echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
then \
${RM} "$@.d";\
$(COMPILE.cc) -g -Wall -std=c++11 -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/map/natmap_nomain.o src/map/natmap.cpp;\
else \
${CP} ${OBJECTDIR}/src/map/natmap.o ${OBJECTDIR}/src/map/natmap_nomain.o;\
fi
# Run Test Targets
.test-conf:
@if [ "${TEST}" = "" ]; \
then \
${TESTDIR}/TestFiles/f1 || true; \
else \
./${TEST} || true; \
fi
# Clean Targets
.clean-conf: ${CLEAN_SUBPROJECTS}
${RM} -r ${CND_BUILDDIR}/${CND_CONF}
${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat
# Subprojects
.clean-subprojects:
# Enable dependency checking
.dep.inc: .depcheck-impl
include .dep.inc

View File

@@ -0,0 +1,150 @@
#
# Generated Makefile - do not edit!
#
# Edit the Makefile in the project folder instead (../Makefile). Each target
# has a -pre and a -post target defined where you can add customized code.
#
# This makefile implements configuration specific macros and targets.
# Environment
MKDIR=mkdir
CP=cp
GREP=grep
NM=nm
CCADMIN=CCadmin
RANLIB=ranlib
CC=gcc
CCC=g++
CXX=g++
FC=gfortran
AS=as
# Macros
CND_PLATFORM=GNU-Linux-x86
CND_DLIB_EXT=so
CND_CONF=Release
CND_DISTDIR=dist
CND_BUILDDIR=build
# Include project Makefile
include Makefile
# Object Directory
OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}
# Object Files
OBJECTFILES= \
${OBJECTDIR}/src/main.o \
${OBJECTDIR}/src/map/natmap.o
# Test Directory
TESTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tests
# Test Files
TESTFILES= \
${TESTDIR}/TestFiles/f1
# C Compiler Flags
CFLAGS=
# CC Compiler Flags
CCFLAGS=
CXXFLAGS=
# Fortran Compiler Flags
FFLAGS=
# Assembler Flags
ASFLAGS=
# Link Libraries and Options
LDLIBSOPTIONS=
# Build Targets
.build-conf: ${BUILD_SUBPROJECTS}
"${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat
${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat: ${OBJECTFILES}
${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat ${OBJECTFILES} ${LDLIBSOPTIONS}
${OBJECTDIR}/src/main.o: src/main.cpp
${MKDIR} -p ${OBJECTDIR}/src
${RM} "$@.d"
$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/main.o src/main.cpp
${OBJECTDIR}/src/map/natmap.o: src/map/natmap.cpp
${MKDIR} -p ${OBJECTDIR}/src/map
${RM} "$@.d"
$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/map/natmap.o src/map/natmap.cpp
# Subprojects
.build-subprojects:
# Build Test Targets
.build-tests-conf: .build-conf ${TESTFILES}
${TESTDIR}/TestFiles/f1: ${TESTDIR}/tests/nattest.o ${TESTDIR}/tests/nattestrunner.o ${OBJECTFILES:%.o=%_nomain.o}
${MKDIR} -p ${TESTDIR}/TestFiles
${LINK.cc} -o ${TESTDIR}/TestFiles/f1 $^ ${LDLIBSOPTIONS} `cppunit-config --libs`
${TESTDIR}/tests/nattest.o: tests/nattest.cpp
${MKDIR} -p ${TESTDIR}/tests
${RM} "$@.d"
$(COMPILE.cc) -O2 -I. `cppunit-config --cflags` -MMD -MP -MF "$@.d" -o ${TESTDIR}/tests/nattest.o tests/nattest.cpp
${TESTDIR}/tests/nattestrunner.o: tests/nattestrunner.cpp
${MKDIR} -p ${TESTDIR}/tests
${RM} "$@.d"
$(COMPILE.cc) -O2 -I. `cppunit-config --cflags` -MMD -MP -MF "$@.d" -o ${TESTDIR}/tests/nattestrunner.o tests/nattestrunner.cpp
${OBJECTDIR}/src/main_nomain.o: ${OBJECTDIR}/src/main.o src/main.cpp
${MKDIR} -p ${OBJECTDIR}/src
@NMOUTPUT=`${NM} ${OBJECTDIR}/src/main.o`; \
if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \
(echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \
(echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
then \
${RM} "$@.d";\
$(COMPILE.cc) -O2 -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/main_nomain.o src/main.cpp;\
else \
${CP} ${OBJECTDIR}/src/main.o ${OBJECTDIR}/src/main_nomain.o;\
fi
${OBJECTDIR}/src/map/natmap_nomain.o: ${OBJECTDIR}/src/map/natmap.o src/map/natmap.cpp
${MKDIR} -p ${OBJECTDIR}/src/map
@NMOUTPUT=`${NM} ${OBJECTDIR}/src/map/natmap.o`; \
if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \
(echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \
(echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
then \
${RM} "$@.d";\
$(COMPILE.cc) -O2 -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/map/natmap_nomain.o src/map/natmap.cpp;\
else \
${CP} ${OBJECTDIR}/src/map/natmap.o ${OBJECTDIR}/src/map/natmap_nomain.o;\
fi
# Run Test Targets
.test-conf:
@if [ "${TEST}" = "" ]; \
then \
${TESTDIR}/TestFiles/f1 || true; \
else \
./${TEST} || true; \
fi
# Clean Targets
.clean-conf: ${CLEAN_SUBPROJECTS}
${RM} -r ${CND_BUILDDIR}/${CND_CONF}
${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat
# Subprojects
.clean-subprojects:
# Enable dependency checking
.dep.inc: .depcheck-impl
include .dep.inc

View File

@@ -0,0 +1,150 @@
#
# Generated Makefile - do not edit!
#
# Edit the Makefile in the project folder instead (../Makefile). Each target
# has a -pre and a -post target defined where you can add customized code.
#
# This makefile implements configuration specific macros and targets.
# Environment
MKDIR=mkdir
CP=cp
GREP=grep
NM=nm
CCADMIN=CCadmin
RANLIB=ranlib
CC=gcc
CCC=g++
CXX=g++
FC=gfortran
AS=as
# Macros
CND_PLATFORM=GNU-Linux-x86
CND_DLIB_EXT=so
CND_CONF=Unitest
CND_DISTDIR=dist
CND_BUILDDIR=build
# Include project Makefile
include Makefile
# Object Directory
OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}
# Object Files
OBJECTFILES= \
${OBJECTDIR}/src/main.o \
${OBJECTDIR}/src/map/natmap.o
# Test Directory
TESTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tests
# Test Files
TESTFILES= \
${TESTDIR}/TestFiles/f1
# C Compiler Flags
CFLAGS=
# CC Compiler Flags
CCFLAGS=
CXXFLAGS=
# Fortran Compiler Flags
FFLAGS=
# Assembler Flags
ASFLAGS=
# Link Libraries and Options
LDLIBSOPTIONS=
# Build Targets
.build-conf: ${BUILD_SUBPROJECTS}
"${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat
${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat: ${OBJECTFILES}
${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat ${OBJECTFILES} ${LDLIBSOPTIONS}
${OBJECTDIR}/src/main.o: src/main.cpp
${MKDIR} -p ${OBJECTDIR}/src
${RM} "$@.d"
$(COMPILE.cc) -g -Itest -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/main.o src/main.cpp
${OBJECTDIR}/src/map/natmap.o: src/map/natmap.cpp
${MKDIR} -p ${OBJECTDIR}/src/map
${RM} "$@.d"
$(COMPILE.cc) -g -Itest -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/map/natmap.o src/map/natmap.cpp
# Subprojects
.build-subprojects:
# Build Test Targets
.build-tests-conf: .build-conf ${TESTFILES}
${TESTDIR}/TestFiles/f1: ${TESTDIR}/tests/nattest.o ${TESTDIR}/tests/nattestrunner.o ${OBJECTFILES:%.o=%_nomain.o}
${MKDIR} -p ${TESTDIR}/TestFiles
${LINK.cc} -o ${TESTDIR}/TestFiles/f1 $^ ${LDLIBSOPTIONS} `cppunit-config --libs`
${TESTDIR}/tests/nattest.o: tests/nattest.cpp
${MKDIR} -p ${TESTDIR}/tests
${RM} "$@.d"
$(COMPILE.cc) -g -Itest -I. -std=c++11 `cppunit-config --cflags` -MMD -MP -MF "$@.d" -o ${TESTDIR}/tests/nattest.o tests/nattest.cpp
${TESTDIR}/tests/nattestrunner.o: tests/nattestrunner.cpp
${MKDIR} -p ${TESTDIR}/tests
${RM} "$@.d"
$(COMPILE.cc) -g -Itest -I. -std=c++11 `cppunit-config --cflags` -MMD -MP -MF "$@.d" -o ${TESTDIR}/tests/nattestrunner.o tests/nattestrunner.cpp
${OBJECTDIR}/src/main_nomain.o: ${OBJECTDIR}/src/main.o src/main.cpp
${MKDIR} -p ${OBJECTDIR}/src
@NMOUTPUT=`${NM} ${OBJECTDIR}/src/main.o`; \
if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \
(echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \
(echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
then \
${RM} "$@.d";\
$(COMPILE.cc) -g -Itest -std=c++11 -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/main_nomain.o src/main.cpp;\
else \
${CP} ${OBJECTDIR}/src/main.o ${OBJECTDIR}/src/main_nomain.o;\
fi
${OBJECTDIR}/src/map/natmap_nomain.o: ${OBJECTDIR}/src/map/natmap.o src/map/natmap.cpp
${MKDIR} -p ${OBJECTDIR}/src/map
@NMOUTPUT=`${NM} ${OBJECTDIR}/src/map/natmap.o`; \
if (echo "$$NMOUTPUT" | ${GREP} '|main$$') || \
(echo "$$NMOUTPUT" | ${GREP} 'T main$$') || \
(echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
then \
${RM} "$@.d";\
$(COMPILE.cc) -g -Itest -std=c++11 -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/map/natmap_nomain.o src/map/natmap.cpp;\
else \
${CP} ${OBJECTDIR}/src/map/natmap.o ${OBJECTDIR}/src/map/natmap_nomain.o;\
fi
# Run Test Targets
.test-conf:
@if [ "${TEST}" = "" ]; \
then \
${TESTDIR}/TestFiles/f1 || true; \
else \
./${TEST} || true; \
fi
# Clean Targets
.clean-conf: ${CLEAN_SUBPROJECTS}
${RM} -r ${CND_BUILDDIR}/${CND_CONF}
${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat
# Subprojects
.clean-subprojects:
# Enable dependency checking
.dep.inc: .depcheck-impl
include .dep.inc

133
nbproject/Makefile-impl.mk Normal file
View File

@@ -0,0 +1,133 @@
#
# Generated Makefile - do not edit!
#
# Edit the Makefile in the project folder instead (../Makefile). Each target
# has a pre- and a post- target defined where you can add customization code.
#
# This makefile implements macros and targets common to all configurations.
#
# NOCDDL
# Building and Cleaning subprojects are done by default, but can be controlled with the SUB
# macro. If SUB=no, subprojects will not be built or cleaned. The following macro
# statements set BUILD_SUB-CONF and CLEAN_SUB-CONF to .build-reqprojects-conf
# and .clean-reqprojects-conf unless SUB has the value 'no'
SUB_no=NO
SUBPROJECTS=${SUB_${SUB}}
BUILD_SUBPROJECTS_=.build-subprojects
BUILD_SUBPROJECTS_NO=
BUILD_SUBPROJECTS=${BUILD_SUBPROJECTS_${SUBPROJECTS}}
CLEAN_SUBPROJECTS_=.clean-subprojects
CLEAN_SUBPROJECTS_NO=
CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}}
# Project Name
PROJECTNAME=1T1NAT
# Active Configuration
DEFAULTCONF=Debug
CONF=${DEFAULTCONF}
# All Configurations
ALLCONFS=Debug Release Unitest
# build
.build-impl: .build-pre .validate-impl .depcheck-impl
@#echo "=> Running $@... Configuration=$(CONF)"
"${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf
# clean
.clean-impl: .clean-pre .validate-impl .depcheck-impl
@#echo "=> Running $@... Configuration=$(CONF)"
"${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf
# clobber
.clobber-impl: .clobber-pre .depcheck-impl
@#echo "=> Running $@..."
for CONF in ${ALLCONFS}; \
do \
"${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf; \
done
# all
.all-impl: .all-pre .depcheck-impl
@#echo "=> Running $@..."
for CONF in ${ALLCONFS}; \
do \
"${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf; \
done
# build tests
.build-tests-impl: .build-impl .build-tests-pre
@#echo "=> Running $@... Configuration=$(CONF)"
"${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .build-tests-conf
# run tests
.test-impl: .build-tests-impl .test-pre
@#echo "=> Running $@... Configuration=$(CONF)"
"${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .test-conf
# dependency checking support
.depcheck-impl:
@echo "# This code depends on make tool being used" >.dep.inc
@if [ -n "${MAKE_VERSION}" ]; then \
echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES}))" >>.dep.inc; \
echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \
echo "include \$${DEPFILES}" >>.dep.inc; \
echo "endif" >>.dep.inc; \
else \
echo ".KEEP_STATE:" >>.dep.inc; \
echo ".KEEP_STATE_FILE:.make.state.\$${CONF}" >>.dep.inc; \
fi
# configuration validation
.validate-impl:
@if [ ! -f nbproject/Makefile-${CONF}.mk ]; \
then \
echo ""; \
echo "Error: can not find the makefile for configuration '${CONF}' in project ${PROJECTNAME}"; \
echo "See 'make help' for details."; \
echo "Current directory: " `pwd`; \
echo ""; \
fi
@if [ ! -f nbproject/Makefile-${CONF}.mk ]; \
then \
exit 1; \
fi
# help
.help-impl: .help-pre
@echo "This makefile supports the following configurations:"
@echo " ${ALLCONFS}"
@echo ""
@echo "and the following targets:"
@echo " build (default target)"
@echo " clean"
@echo " clobber"
@echo " all"
@echo " help"
@echo ""
@echo "Makefile Usage:"
@echo " make [CONF=<CONFIGURATION>] [SUB=no] build"
@echo " make [CONF=<CONFIGURATION>] [SUB=no] clean"
@echo " make [SUB=no] clobber"
@echo " make [SUB=no] all"
@echo " make help"
@echo ""
@echo "Target 'build' will build a specific configuration and, unless 'SUB=no',"
@echo " also build subprojects."
@echo "Target 'clean' will clean a specific configuration and, unless 'SUB=no',"
@echo " also clean subprojects."
@echo "Target 'clobber' will remove all built files from all configurations and,"
@echo " unless 'SUB=no', also from subprojects."
@echo "Target 'all' will will build all configurations and, unless 'SUB=no',"
@echo " also build subprojects."
@echo "Target 'help' prints this message."
@echo ""

View File

@@ -0,0 +1,43 @@
#
# Generated - do not edit!
#
# NOCDDL
#
CND_BASEDIR=`pwd`
CND_BUILDDIR=build
CND_DISTDIR=dist
# Debug configuration
CND_PLATFORM_Debug=GNU-Linux-x86
CND_ARTIFACT_DIR_Debug=dist/Debug/GNU-Linux-x86
CND_ARTIFACT_NAME_Debug=1t1nat
CND_ARTIFACT_PATH_Debug=dist/Debug/GNU-Linux-x86/1t1nat
CND_PACKAGE_DIR_Debug=dist/Debug/GNU-Linux-x86/package
CND_PACKAGE_NAME_Debug=1t1nat.tar
CND_PACKAGE_PATH_Debug=dist/Debug/GNU-Linux-x86/package/1t1nat.tar
# Release configuration
CND_PLATFORM_Release=GNU-Linux-x86
CND_ARTIFACT_DIR_Release=dist/Release/GNU-Linux-x86
CND_ARTIFACT_NAME_Release=1t1nat
CND_ARTIFACT_PATH_Release=dist/Release/GNU-Linux-x86/1t1nat
CND_PACKAGE_DIR_Release=dist/Release/GNU-Linux-x86/package
CND_PACKAGE_NAME_Release=1t1nat.tar
CND_PACKAGE_PATH_Release=dist/Release/GNU-Linux-x86/package/1t1nat.tar
# Unitest configuration
CND_PLATFORM_Unitest=GNU-Linux-x86
CND_ARTIFACT_DIR_Unitest=dist/Unitest/GNU-Linux-x86
CND_ARTIFACT_NAME_Unitest=1t1nat
CND_ARTIFACT_PATH_Unitest=dist/Unitest/GNU-Linux-x86/1t1nat
CND_PACKAGE_DIR_Unitest=dist/Unitest/GNU-Linux-x86/package
CND_PACKAGE_NAME_Unitest=1t1nat.tar
CND_PACKAGE_PATH_Unitest=dist/Unitest/GNU-Linux-x86/package/1t1nat.tar
#
# include compiler specific variables
#
# dmake command
ROOT:sh = test -f nbproject/private/Makefile-variables.mk || \
(mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk)
#
# gmake command
.PHONY: $(shell test -f nbproject/private/Makefile-variables.mk || (mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk))
#
include nbproject/private/Makefile-variables.mk

View File

@@ -0,0 +1,76 @@
#!/bin/bash -x
#
# Generated - do not edit!
#
# Macros
TOP=`pwd`
CND_PLATFORM=GNU-Linux-x86
CND_CONF=Debug
CND_DISTDIR=dist
CND_BUILDDIR=build
CND_DLIB_EXT=so
NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
TMPDIRNAME=tmp-packaging
OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat
OUTPUT_BASENAME=1t1nat
PACKAGE_TOP_DIR=1t1nat/
# Functions
function checkReturnCode
{
rc=$?
if [ $rc != 0 ]
then
exit $rc
fi
}
function makeDirectory
# $1 directory path
# $2 permission (optional)
{
mkdir -p "$1"
checkReturnCode
if [ "$2" != "" ]
then
chmod $2 "$1"
checkReturnCode
fi
}
function copyFileToTmpDir
# $1 from-file path
# $2 to-file path
# $3 permission
{
cp "$1" "$2"
checkReturnCode
if [ "$3" != "" ]
then
chmod $3 "$2"
checkReturnCode
fi
}
# Setup
cd "${TOP}"
mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
rm -rf ${NBTMPDIR}
mkdir -p ${NBTMPDIR}
# Copy files and create directories and links
cd "${TOP}"
makeDirectory "${NBTMPDIR}/1t1nat/bin"
copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
# Generate tar file
cd "${TOP}"
rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/1t1nat.tar
cd ${NBTMPDIR}
tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/1t1nat.tar *
checkReturnCode
# Cleanup
cd "${TOP}"
rm -rf ${NBTMPDIR}

View File

@@ -0,0 +1,76 @@
#!/bin/bash -x
#
# Generated - do not edit!
#
# Macros
TOP=`pwd`
CND_PLATFORM=GNU-Linux-x86
CND_CONF=Release
CND_DISTDIR=dist
CND_BUILDDIR=build
CND_DLIB_EXT=so
NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
TMPDIRNAME=tmp-packaging
OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat
OUTPUT_BASENAME=1t1nat
PACKAGE_TOP_DIR=1t1nat/
# Functions
function checkReturnCode
{
rc=$?
if [ $rc != 0 ]
then
exit $rc
fi
}
function makeDirectory
# $1 directory path
# $2 permission (optional)
{
mkdir -p "$1"
checkReturnCode
if [ "$2" != "" ]
then
chmod $2 "$1"
checkReturnCode
fi
}
function copyFileToTmpDir
# $1 from-file path
# $2 to-file path
# $3 permission
{
cp "$1" "$2"
checkReturnCode
if [ "$3" != "" ]
then
chmod $3 "$2"
checkReturnCode
fi
}
# Setup
cd "${TOP}"
mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
rm -rf ${NBTMPDIR}
mkdir -p ${NBTMPDIR}
# Copy files and create directories and links
cd "${TOP}"
makeDirectory "${NBTMPDIR}/1t1nat/bin"
copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
# Generate tar file
cd "${TOP}"
rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/1t1nat.tar
cd ${NBTMPDIR}
tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/1t1nat.tar *
checkReturnCode
# Cleanup
cd "${TOP}"
rm -rf ${NBTMPDIR}

View File

@@ -0,0 +1,76 @@
#!/bin/bash -x
#
# Generated - do not edit!
#
# Macros
TOP=`pwd`
CND_PLATFORM=GNU-Linux-x86
CND_CONF=Unitest
CND_DISTDIR=dist
CND_BUILDDIR=build
CND_DLIB_EXT=so
NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
TMPDIRNAME=tmp-packaging
OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat
OUTPUT_BASENAME=1t1nat
PACKAGE_TOP_DIR=1t1nat/
# Functions
function checkReturnCode
{
rc=$?
if [ $rc != 0 ]
then
exit $rc
fi
}
function makeDirectory
# $1 directory path
# $2 permission (optional)
{
mkdir -p "$1"
checkReturnCode
if [ "$2" != "" ]
then
chmod $2 "$1"
checkReturnCode
fi
}
function copyFileToTmpDir
# $1 from-file path
# $2 to-file path
# $3 permission
{
cp "$1" "$2"
checkReturnCode
if [ "$3" != "" ]
then
chmod $3 "$2"
checkReturnCode
fi
}
# Setup
cd "${TOP}"
mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
rm -rf ${NBTMPDIR}
mkdir -p ${NBTMPDIR}
# Copy files and create directories and links
cd "${TOP}"
makeDirectory "${NBTMPDIR}/1t1nat/bin"
copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
# Generate tar file
cd "${TOP}"
rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/1t1nat.tar
cd ${NBTMPDIR}
tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/1t1nat.tar *
checkReturnCode
# Cleanup
cd "${TOP}"
rm -rf ${NBTMPDIR}

View File

@@ -0,0 +1,194 @@
<?xml version="1.0" encoding="UTF-8"?>
<configurationDescriptor version="95">
<logicalFolder name="root" displayName="root" projectFiles="true" kind="ROOT">
<logicalFolder name="HeaderFiles"
displayName="Header Files"
projectFiles="true">
<logicalFolder name="map" displayName="map" projectFiles="true">
<itemPath>src/map/natmap.h</itemPath>
</logicalFolder>
</logicalFolder>
<logicalFolder name="ResourceFiles"
displayName="Resource Files"
projectFiles="true">
</logicalFolder>
<logicalFolder name="SourceFiles"
displayName="Source Files"
projectFiles="true">
<logicalFolder name="f1" displayName="map" projectFiles="true">
<itemPath>src/map/natmap.cpp</itemPath>
</logicalFolder>
<itemPath>src/main.cpp</itemPath>
</logicalFolder>
<logicalFolder name="TestFiles"
displayName="Test Files"
projectFiles="false"
kind="TEST_LOGICAL_FOLDER">
<logicalFolder name="f1" displayName="nattest" projectFiles="true" kind="TEST">
<itemPath>tests/nattest.cpp</itemPath>
<itemPath>tests/nattest.h</itemPath>
<itemPath>tests/nattestrunner.cpp</itemPath>
</logicalFolder>
</logicalFolder>
<logicalFolder name="ExternalFiles"
displayName="Important Files"
projectFiles="false"
kind="IMPORTANT_FILES_FOLDER">
<itemPath>Makefile</itemPath>
</logicalFolder>
</logicalFolder>
<projectmakefile>Makefile</projectmakefile>
<confs>
<conf name="Debug" type="1">
<toolsSet>
<compilerSet>default</compilerSet>
<dependencyChecking>true</dependencyChecking>
<rebuildPropChanged>false</rebuildPropChanged>
</toolsSet>
<compileType>
<ccTool>
<standard>8</standard>
<warningLevel>2</warningLevel>
</ccTool>
<linkerTool>
<linkerLibItems>
<linkerLibLibItem>tins</linkerLibLibItem>
<linkerLibLibItem>pthread</linkerLibLibItem>
</linkerLibItems>
</linkerTool>
</compileType>
<folder path="TestFiles/f1">
<cTool>
<incDir>
<pElem>.</pElem>
</incDir>
<commandLine>`cppunit-config --cflags`</commandLine>
</cTool>
<ccTool>
<incDir>
<pElem>.</pElem>
</incDir>
<commandLine>`cppunit-config --cflags`</commandLine>
</ccTool>
<linkerTool>
<output>${TESTDIR}/TestFiles/f1</output>
<linkerLibItems>
<linkerOptionItem>`cppunit-config --libs`</linkerOptionItem>
</linkerLibItems>
</linkerTool>
</folder>
<item path="src/main.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="src/map/natmap.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="src/map/natmap.h" ex="false" tool="3" flavor2="0">
</item>
<item path="tests/nattest.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="tests/nattest.h" ex="false" tool="3" flavor2="0">
</item>
<item path="tests/nattestrunner.cpp" ex="false" tool="1" flavor2="0">
</item>
</conf>
<conf name="Release" type="1">
<toolsSet>
<compilerSet>default</compilerSet>
<dependencyChecking>true</dependencyChecking>
<rebuildPropChanged>false</rebuildPropChanged>
</toolsSet>
<compileType>
<cTool>
<developmentMode>5</developmentMode>
</cTool>
<ccTool>
<developmentMode>5</developmentMode>
</ccTool>
<fortranCompilerTool>
<developmentMode>5</developmentMode>
</fortranCompilerTool>
<asmTool>
<developmentMode>5</developmentMode>
</asmTool>
</compileType>
<folder path="TestFiles/f1">
<cTool>
<incDir>
<pElem>.</pElem>
</incDir>
<commandLine>`cppunit-config --cflags`</commandLine>
</cTool>
<ccTool>
<incDir>
<pElem>.</pElem>
</incDir>
<commandLine>`cppunit-config --cflags`</commandLine>
</ccTool>
<linkerTool>
<output>${TESTDIR}/TestFiles/f1</output>
<linkerLibItems>
<linkerOptionItem>`cppunit-config --libs`</linkerOptionItem>
</linkerLibItems>
</linkerTool>
</folder>
<item path="src/main.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="src/map/natmap.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="src/map/natmap.h" ex="false" tool="3" flavor2="0">
</item>
<item path="tests/nattest.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="tests/nattest.h" ex="false" tool="3" flavor2="0">
</item>
<item path="tests/nattestrunner.cpp" ex="false" tool="1" flavor2="0">
</item>
</conf>
<conf name="Unitest" type="1">
<toolsSet>
<compilerSet>default</compilerSet>
<dependencyChecking>true</dependencyChecking>
<rebuildPropChanged>false</rebuildPropChanged>
</toolsSet>
<compileType>
<ccTool>
<standard>8</standard>
<incDir>
<pElem>test</pElem>
</incDir>
</ccTool>
</compileType>
<folder path="TestFiles/f1">
<cTool>
<incDir>
<pElem>.</pElem>
</incDir>
<commandLine>`cppunit-config --cflags`</commandLine>
</cTool>
<ccTool>
<incDir>
<pElem>.</pElem>
</incDir>
<commandLine>`cppunit-config --cflags`</commandLine>
</ccTool>
<linkerTool>
<output>${TESTDIR}/TestFiles/f1</output>
<linkerLibItems>
<linkerOptionItem>`cppunit-config --libs`</linkerOptionItem>
</linkerLibItems>
</linkerTool>
</folder>
<item path="src/main.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="src/map/natmap.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="src/map/natmap.h" ex="false" tool="3" flavor2="0">
</item>
<item path="tests/nattest.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="tests/nattest.h" ex="false" tool="3" flavor2="0">
</item>
<item path="tests/nattestrunner.cpp" ex="false" tool="1" flavor2="0">
</item>
</conf>
</confs>
</configurationDescriptor>

32
nbproject/project.xml Normal file
View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.cnd.makeproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/make-project/1">
<name>1T1NAT</name>
<c-extensions/>
<cpp-extensions>cpp</cpp-extensions>
<header-extensions>h</header-extensions>
<sourceEncoding>UTF-8</sourceEncoding>
<make-dep-projects/>
<sourceRootList/>
<confList>
<confElem>
<name>Debug</name>
<type>1</type>
</confElem>
<confElem>
<name>Release</name>
<type>1</type>
</confElem>
<confElem>
<name>Unitest</name>
<type>1</type>
</confElem>
</confList>
<formatting>
<project-formatting-style>false</project-formatting-style>
</formatting>
</data>
</configuration>
</project>

118
src/main.cpp Normal file
View File

@@ -0,0 +1,118 @@
#include <iostream>
#include <tins/tins.h>
#include <thread>
using namespace std;
using namespace Tins;
const IPv4Address calcAdress(const IPv4Address & ip)
{
IPv4Address incommingIp = IPv4Address(ip);
IPv4Address networkStartIp = IPv4Address("10.0.0.0");
IPv4Address subnetp = IPv4Address("255.255.240.0");
uint32_t ipInt = (incommingIp & ~subnetp) | networkStartIp;
IPv4Address result = IPv4Address(ipInt);
std::cout << "Destination address: " << incommingIp << std::endl;
std::cout << "new Destination address: " << result<< std::endl;
std::cout << "####"<< std::endl;
return result;
}
bool arpm(const PDU &pdu)
{
// Retrieve the ARP layer
const ARP &arp = pdu.rfind_pdu<ARP>();
std::cout << arp.opcode()<< std::endl;
if (arp.opcode() == ARP::REQUEST)
{
PacketSender sender;
const NetworkInterface iface("vboxnet0");
EthernetII req = ARP::make_arp_request(calcAdress(arp.target_ip_addr()),"10.0.3.42","08:00:27:d3:ef:1e");
sender.send(req, iface);
}
return true;
}
bool arpm2(const PDU &pdu)
{
// Retrieve the ARP layer
const ARP &arp = pdu.rfind_pdu<ARP>();
std::cout << arp.opcode()<< std::endl;
if (arp.opcode() == ARP::REPLY)
{
PacketSender sender;
const NetworkInterface iface("vboxnet1");
EthernetII rep = ARP::make_arp_reply("172.16.3.42","172.17.0.20","08:00:27:d3:ef:1e","08:00:27:29:f2:55");
sender.send(rep, iface);
} else if (arp.target_ip_addr().to_string() == "10.0.3.42")
{
PacketSender sender;
const NetworkInterface iface("vboxnet0");
EthernetII rep = ARP::make_arp_reply("10.0.0.20","10.0.3.42","08:00:27:29:f2:55","08:00:27:d3:ef:1e");
sender.send(rep, iface);
}
return true;
}
bool doo(PDU &some_pdu)
{
//PacketWriter writer("before.pcap", PacketWriter::ETH2);
//writer.write(some_pdu);
IP &ip = some_pdu.rfind_pdu<IP>();
ip.dst_addr(calcAdress(ip.dst_addr()));
ip.src_addr("10.0.3.42");
//writer = PacketWriter("after.pcap", PacketWriter::ETH2);
//writer.write(some_pdu);
PacketSender sender;
some_pdu.send(sender,"vboxnet0");
return true;
}
void test1()
{
SnifferConfiguration config;
config.set_promisc_mode(true);
config.set_immediate_mode(true);
//config.set_filter("ip src 192.168.0.100");
Sniffer sniffer("vboxnet1", config);
sniffer.sniff_loop(arpm);
}
void test2()
{
SnifferConfiguration config;
config.set_promisc_mode(true);
config.set_immediate_mode(true);
//config.set_filter("ip src 192.168.0.100");
Sniffer sniffer("vboxnet0", config);
sniffer.sniff_loop(arpm2);
}
void test3()
{
SnifferConfiguration config;
config.set_promisc_mode(true);
config.set_immediate_mode(true);
//config.set_filter("ip src 192.168.0.100");
Sniffer sniffer("vboxnet1", config);
sniffer.sniff_loop(doo);
}
int main()
{
thread t1(test1);
thread t2(test2);
thread t3(test3);
t1.join();
t2.join();
t3.join();
return 0;
}

76
tests/nattest.cpp Normal file
View File

@@ -0,0 +1,76 @@
/*
* File: nattest.cpp
* Author: dev
*
* Created on 19.08.2015, 21:39:53
*/
#include "nattest.h"
CPPUNIT_TEST_SUITE_REGISTRATION(nattest);
nattest::nattest() {
}
nattest::~nattest() {
}
void nattest::setUp() {
}
void nattest::tearDown() {
}
void nattest::testIpCalcEth0() {
Tins::IPv4Address expetedIp = deviceIpEth0;
Tins::IPv4Address resultIp = natMap.mapIPv4Address(deviceIpEth0, eth0Info);
CPPUNIT_ASSERT_EQUAL(expetedIp, resultIp);
expetedIp = Tins::IPv4Address("10.168.23.42");
resultIp = natMap.mapIPv4Address(deviceIpEth1, eth0Info);
CPPUNIT_ASSERT_EQUAL(expetedIp, resultIp);
expetedIp = Tins::IPv4Address("10.27.123.4");
resultIp = natMap.mapIPv4Address(deviceIpEth2, eth0Info);
CPPUNIT_ASSERT_EQUAL(expetedIp, resultIp);
}
void nattest::testIpCalcEth1() {
Tins::IPv4Address expetedIp = Tins::IPv4Address("192.168.23.40");
Tins::IPv4Address resultIp = natMap.mapIPv4Address(deviceIpEth0, eth1Info);
CPPUNIT_ASSERT_EQUAL(expetedIp, resultIp);
expetedIp = deviceIpEth1;
resultIp = natMap.mapIPv4Address(deviceIpEth1, eth1Info);
CPPUNIT_ASSERT_EQUAL(expetedIp, resultIp);
expetedIp = Tins::IPv4Address("192.168.23.4");
resultIp = natMap.mapIPv4Address(deviceIpEth2, eth1Info);
CPPUNIT_ASSERT_EQUAL(expetedIp, resultIp);
}
void nattest::testIpCalcEth2() {
Tins::IPv4Address expetedIp = Tins::IPv4Address("172.16.3.40");
Tins::IPv4Address resultIp = natMap.mapIPv4Address(deviceIpEth0, eth2Info);
CPPUNIT_ASSERT_EQUAL(expetedIp, resultIp);
expetedIp = Tins::IPv4Address("172.24.23.42");
resultIp = natMap.mapIPv4Address(deviceIpEth1, eth2Info);
CPPUNIT_ASSERT_EQUAL(expetedIp, resultIp);
expetedIp = deviceIpEth2;
resultIp = natMap.mapIPv4Address(deviceIpEth2, eth2Info);
CPPUNIT_ASSERT_EQUAL(expetedIp, resultIp);
}
void nattest::testTranslateIp() {
Tins::EthernetII eth = Tins::EthernetII() / Tins::IP() / Tins::TCP();
otonat::NatMap natMap = otonat::NatMap();
natMap.handlePdu(&eth);
}
void nattest::testNatInterfaces() {
CPPUNIT_ASSERT(!natMap.interfaces.empty());
}

70
tests/nattest.h Normal file
View File

@@ -0,0 +1,70 @@
/*
* File: nattest.h
* Author: dev
*
* Created on 19.08.2015, 21:39:53
*/
#ifndef NATTEST_H
#define NATTEST_H
#include <cppunit/extensions/HelperMacros.h>
#include "../src/map/natmap.h"
#include <tins/tins.h>
#include <vector>
class nattest : public CPPUNIT_NS::TestFixture {
CPPUNIT_TEST_SUITE(nattest);
CPPUNIT_TEST(testNatInterfaces);
CPPUNIT_TEST(testIpCalcEth0);
CPPUNIT_TEST(testIpCalcEth1);
CPPUNIT_TEST(testIpCalcEth2);
CPPUNIT_TEST(testTranslateIp);
CPPUNIT_TEST_SUITE_END();
public:
nattest();
virtual ~nattest();
void setUp();
void tearDown();
private:
otonat::NatMap natMap = otonat::NatMap();
Tins::IPv4Address deviceIpEth0 = Tins::IPv4Address("10.0.3.40");
Tins::IPv4Address deviceIpEth1 = Tins::IPv4Address("192.168.23.42");
Tins::IPv4Address deviceIpEth2 = Tins::IPv4Address("172.27.123.4");
Tins::NetworkInterface::Info eth0Info = {
.ip_addr = Tins::IPv4Address("10.0.0.2"),
.netmask = Tins::IPv4Address("255.0.0.0"),
.bcast_addr = Tins::IPv4Address("10.255.255.255"),
.hw_addr = Tins::HWAddress<6>("00:00:00:00:00:01"),
.is_up = true
};
Tins::NetworkInterface::Info eth1Info = {
.ip_addr = Tins::IPv4Address("192.168.23.42"),
.netmask = Tins::IPv4Address("255.255.255.0"),
.bcast_addr = Tins::IPv4Address("192.168.23.255"),
.hw_addr = Tins::HWAddress<6>("00:00:00:00:00:02"),
.is_up = true
};
Tins::NetworkInterface::Info eth2Info = {
.ip_addr = Tins::IPv4Address("172.16.47.11"),
.netmask = Tins::IPv4Address("255.240.0.0"),
.bcast_addr = Tins::IPv4Address("172.31.255.255"),
.hw_addr = Tins::HWAddress<6>("00:00:00:00:00:03"),
.is_up = true
};
void testNatInterfaces();
void testIpCalcEth0();
void testIpCalcEth1();
void testIpCalcEth2();
void testTranslateIp();
};
#endif /* NATTEST_H */

37
tests/nattestrunner.cpp Normal file
View File

@@ -0,0 +1,37 @@
/*
* File: nattestrunner.cpp
* Author: dev
*
* Created on 19.08.2015, 21:39:53
*/
#include <cppunit/BriefTestProgressListener.h>
#include <cppunit/CompilerOutputter.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/TestResult.h>
#include <cppunit/TestResultCollector.h>
#include <cppunit/TestRunner.h>
int main() {
// Create the event manager and test controller
CPPUNIT_NS::TestResult controller;
// Add a listener that colllects test result
CPPUNIT_NS::TestResultCollector result;
controller.addListener(&result);
// Add a listener that print dots as test run.
CPPUNIT_NS::BriefTestProgressListener progress;
controller.addListener(&progress);
// Add the top suite to the test runner
CPPUNIT_NS::TestRunner runner;
runner.addTest(CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest());
runner.run(controller);
// Print test in a compiler compatible format.
CPPUNIT_NS::CompilerOutputter outputter(&result, CPPUNIT_NS::stdCOut());
outputter.write();
return result.wasSuccessful() ? 0 : 1;
}