commit ce12764a4bf253a3790df2689fc77c8c9c4020f0 Author: stubbfel Date: Mon Nov 21 01:02:46 2016 +0100 first classes diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..714f6c5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,67 @@ + +# Created by https://www.gitignore.io/api/c++,linux,codeblocks +# project +test +projectfiles + +### C++ ### +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app + + +### Linux ### +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + + +### CodeBlocks ### +# specific to CodeBlocks IDE +*.cbp +*.layout +*.depend + +# generated directories +bin/ +obj/ + diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..fd743ab --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "lib/libtins"] + path = lib/libtins + url = git@github.com:stubbfel/libtins.git diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..be1edef --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,25 @@ +cmake_minimum_required(VERSION 2.4.2) +if (CMAKE_VERSION VERSION_LESS "3.1") + set (CMAKE_CXX_FLAGS "--std=gnu++11 ${CMAKE_CXX_FLAGS}") +else () + set (CMAKE_CXX_STANDARD 11) +endif () + +project (1261nat) +SET(BUILD_SHARED_LIBS ON) +SET(LIBTINS_BUILD_SHARED OFF CACHE BOOL "test") +SET(LIBTINS_ENABLE_CXX11 ON CACHE BOOL "test2") +SET(LIBTINS_ENABLE_WPA2 OFF CACHE BOOL "test3") +SET(LIBTINS_ENABLE_DOT11 OFF CACHE BOOL "test4") +SET(HAVE_PCAP_IMMEDIATE_MODE ON CACHE BOOL "test5") +SET(LIBTINS_ENABLE_ACK_TRACKER OFF CACHE BOOL "test6") +SET(LIBTINS_ENABLE_WPA2_CALLBACKS OFF CACHE BOOL "test7") +SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/lib/src/libtins/cmake/Modules) +SET(PCAP_ROOT_DIR /usr/ CACHE PATH "test14") +SET(PCAP_LIBRARY /usr/lib64/libpcap.so CACHE FILEPATH "test14") +ADD_SUBDIRECTORY(lib/libtins) + +INCLUDE_DIRECTORIES(lib/libtins/include) +file(GLOB_RECURSE 1261nat_src_files "src/*.h" "src/*.cpp") +add_executable(1261nat ${1261nat_src_files} ) +target_link_libraries (1261nat tins) diff --git a/dev-utils/generate_codeblock_project.sh b/dev-utils/generate_codeblock_project.sh new file mode 100644 index 0000000..c38b08f --- /dev/null +++ b/dev-utils/generate_codeblock_project.sh @@ -0,0 +1,17 @@ +#!/bin/bash +CURRENT_DIR="$(pwd)" +cd "$(dirname "$0")" || exit +PROJECT_NAME="$(basename "$(dirname "$(pwd)")")" +PROJECT_PATH="../projectfiles/codeblock/$PROJECT_NAME" +mkdir -p "$PROJECT_PATH" +cd "$PROJECT_PATH" || exit +cmake ../../../ -G "CodeBlocks - Unix Makefiles" + +if [ -d "../../../test" ]; then + TEST_PROJECT_PATH="../test-$PROJECT_NAME" + mkdir -p "$TEST_PROJECT_PATH" + cd "$TEST_PROJECT_PATH" || exit + cmake ../../../test -G "CodeBlocks - Unix Makefiles" +fi + +cd $CURRENT_DIR || exit diff --git a/lib/libtins b/lib/libtins new file mode 160000 index 0000000..a61a361 --- /dev/null +++ b/lib/libtins @@ -0,0 +1 @@ +Subproject commit a61a361eb1f39248876abcd0e04dd5ee0436b4ae diff --git a/src/AbstractNetworkInterfaceCard.cpp b/src/AbstractNetworkInterfaceCard.cpp new file mode 100644 index 0000000..3db7708 --- /dev/null +++ b/src/AbstractNetworkInterfaceCard.cpp @@ -0,0 +1,11 @@ +#include "AbstractNetworkInterfaceCard.h" + +AbstractNetworkInterfaceCard::AbstractNetworkInterfaceCard() +{ + //ctor +} + +AbstractNetworkInterfaceCard::~AbstractNetworkInterfaceCard() +{ + //dtor +} diff --git a/src/AbstractNetworkInterfaceCard.h b/src/AbstractNetworkInterfaceCard.h new file mode 100644 index 0000000..d101b9c --- /dev/null +++ b/src/AbstractNetworkInterfaceCard.h @@ -0,0 +1,21 @@ +#ifndef ABSTRACTNETWORKINTERFACECARD_H +#define ABSTRACTNETWORKINTERFACECARD_H + +#include "AbstractPacketHandler_t.h" +#include "AbstractRouter_t.h" + +class AbstractNetworkInterfaceCard +{ + public: + void sendPacket(/*const Tins::Pdu & pdu*/); + void startListen(); + void stopListen(); + protected: + AbstractNetworkInterfaceCard(); + virtual ~AbstractNetworkInterfaceCard(); + private: + SPtrAbstractPacketHandlerList handlerList; + SPtrAbstractRouter router; +}; + +#endif // ABSTRACTNETWORKINTERFACECARD_H diff --git a/src/AbstractPacketHandler.cpp b/src/AbstractPacketHandler.cpp new file mode 100644 index 0000000..e6dac1a --- /dev/null +++ b/src/AbstractPacketHandler.cpp @@ -0,0 +1,11 @@ +#include "AbstractPacketHandler.h" + +AbstractPacketHandler::AbstractPacketHandler() +{ + //ctor +} + +AbstractPacketHandler::~AbstractPacketHandler() +{ + //dtor +} diff --git a/src/AbstractPacketHandler.h b/src/AbstractPacketHandler.h new file mode 100644 index 0000000..83cf6e5 --- /dev/null +++ b/src/AbstractPacketHandler.h @@ -0,0 +1,16 @@ +#ifndef ABSTRACTPACKETHANDLER_H +#define ABSTRACTPACKETHANDLER_H + + +class AbstractPacketHandler +{ + public: + + protected: + AbstractPacketHandler(); + virtual ~AbstractPacketHandler(); + + private: +}; + +#endif // ABSTRACTPACKETHANDLER_H diff --git a/src/AbstractPacketHandler_t.h b/src/AbstractPacketHandler_t.h new file mode 100644 index 0000000..634b5e7 --- /dev/null +++ b/src/AbstractPacketHandler_t.h @@ -0,0 +1,11 @@ +#ifndef ABSTRACTPACKETHANDLER_T_H_INCLUDED +#define ABSTRACTPACKETHANDLER_T_H_INCLUDED + +#include +#include + +class AbstractPacketHandler; +typedef std::shared_ptr SPtrAbstractPacketHandler; +typedef std::list SPtrAbstractPacketHandlerList; + +#endif // ABSTRACTPACKETHANDLER_T_H_INCLUDED diff --git a/src/AbstractRouter.cpp b/src/AbstractRouter.cpp new file mode 100644 index 0000000..8974e17 --- /dev/null +++ b/src/AbstractRouter.cpp @@ -0,0 +1,11 @@ +#include "AbstractRouter.h" + +AbstractRouter::AbstractRouter() +{ + //ctor +} + +AbstractRouter::~AbstractRouter() +{ + //dtor +} diff --git a/src/AbstractRouter.h b/src/AbstractRouter.h new file mode 100644 index 0000000..4e62c6e --- /dev/null +++ b/src/AbstractRouter.h @@ -0,0 +1,16 @@ +#ifndef ABSTRACTROUTER_H +#define ABSTRACTROUTER_H + + +class AbstractRouter +{ + public: + + protected: + AbstractRouter(); + virtual ~AbstractRouter(); + + private: +}; + +#endif // ABSTRACTROUTER_H diff --git a/src/AbstractRouter_t.h b/src/AbstractRouter_t.h new file mode 100644 index 0000000..6c746b2 --- /dev/null +++ b/src/AbstractRouter_t.h @@ -0,0 +1,9 @@ +#ifndef ABSTRACTROUTER_T_H_INCLUDED +#define ABSTRACTROUTER_T_H_INCLUDED + +#include + +class AbstractRouter; +typedef std::shared_ptr SPtrAbstractRouter; + +#endif // ABSTRACTROUTER_T_H_INCLUDED diff --git a/src/Main.cpp b/src/Main.cpp new file mode 100644 index 0000000..8714fab --- /dev/null +++ b/src/Main.cpp @@ -0,0 +1,8 @@ + #include + + int main(void) + { + printf("Hello, World\n"); + + return 0; + }