diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..a223255
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+.vscode/
+build/
+cmake-build-*
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..8774886
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,144 @@
+image: "git.mesalab.cn:7443/mesa_platform/build-env:master"
+variables:
+ GIT_STRATEGY: "clone"
+ BUILD_PADDING_PREFIX: /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX/
+ INSTALL_PREFIX: "/opt/MESA/"
+
+stages:
+- build
+
+.build_by_travis:
+ before_script:
+ - mkdir -p $BUILD_PADDING_PREFIX/$CI_PROJECT_NAMESPACE/
+ - ln -s $CI_PROJECT_DIR $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH
+ - cd $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH
+ - chmod +x ./ci/travis.sh
+ script:
+ - yum makecache fast
+ - ./ci/travis.sh
+ - cd build
+ tags:
+ - share
+
+branch_build_debug:
+ stage: build
+ extends: .build_by_travis
+ variables:
+ BUILD_TYPE: Debug
+ except:
+ - /^dev*.*$/i
+ - /^rel*.*$/i
+ - /^master.*$/i
+ - tags
+
+branch_build_release:
+ stage: build
+ variables:
+ BUILD_TYPE: RelWithDebInfo
+ extends: .build_by_travis
+ except:
+ - /^dev*.*$/i
+ - /^rel*.*$/i
+ - /^master.*$/i
+ - tags
+
+develop_build_debug:
+ stage: build
+ extends: .build_by_travis
+ variables:
+ BUILD_TYPE: Debug
+ PACKAGE: 1
+ artifacts:
+ name: "tcpdump_mesa-$CI_COMMIT_REF_NAME-debug"
+ paths:
+ - build/*.rpm
+ only:
+ - /^dev*.*$/i
+ - /^rel*.*$/i
+ - /^master.*$/i
+
+develop_build_release:
+ stage: build
+ extends: .build_by_travis
+ variables:
+ BUILD_TYPE: RelWithDebInfo
+ PACKAGE: 1
+ artifacts:
+ name: "tcpdump_mesa-$CI_COMMIT_REF_NAME-release"
+ paths:
+ - build/*.rpm
+ only:
+ - /^dev*.*$/i
+ - /^rel*.*$/i
+ - /^master.*$/i
+
+
+release_build_release:
+ stage: build
+ variables:
+ BUILD_TYPE: RelWithDebInfo
+ PACKAGE: 1
+ UPLOAD: 1
+ PULP3_REPO_NAME: platform-stable-x86_64.el7
+ PULP3_DIST_NAME: platform-stable-x86_64.el7
+ extends: .build_by_travis
+ artifacts:
+ name: "tcpdump_mesa-$CI_COMMIT_REF_NAME-release"
+ paths:
+ - build/*.rpm
+ only:
+ - tags
+ except:
+ - /^v[0-9].*-testing$/i
+
+release_build_release_devel:
+ stage: build
+ variables:
+ BUILD_TYPE: RelWithDebInfo
+ ENABLE_DEVEL_SWITCH: "ON"
+ PACKAGE: 1
+ UPLOAD: 1
+ PULP3_REPO_NAME: platform-stable-x86_64.el7
+ PULP3_DIST_NAME: platform-stable-x86_64.el7
+ extends: .build_by_travis
+ artifacts:
+ name: "tcpdump_mesa-$CI_COMMIT_REF_NAME-release"
+ paths:
+ - build/*.rpm
+ only:
+ - tags
+ except:
+ - /^v[0-9].*-testing$/i
+
+testing_build_release:
+ stage: build
+ variables:
+ BUILD_TYPE: RelWithDebInfo
+ PACKAGE: 1
+ UPLOAD: 1
+ PULP3_REPO_NAME: platform-testing-x86_64.el7
+ PULP3_DIST_NAME: platform-testing-x86_64.el7
+ extends: .build_by_travis
+ artifacts:
+ name: "tcpdump_mesa-$CI_COMMIT_REF_NAME-release"
+ paths:
+ - build/*.rpm
+ only:
+ - /^v[0-9].*-testing$/i
+
+testing_build_release_devel:
+ stage: build
+ variables:
+ BUILD_TYPE: RelWithDebInfo
+ ENABLE_DEVEL_SWITCH: "ON"
+ PACKAGE: 1
+ UPLOAD: 1
+ PULP3_REPO_NAME: platform-testing-x86_64.el7
+ PULP3_DIST_NAME: platform-testing-x86_64.el7
+ extends: .build_by_travis
+ artifacts:
+ name: "tcpdump_mesa-$CI_COMMIT_REF_NAME-release"
+ paths:
+ - build/*.rpm
+ only:
+ - /^v[0-9].*-testing$/i
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..b36c30d
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,22 @@
+cmake_minimum_required(VERSION 2.8)
+
+set(project_name tcpdump_mesa)
+
+project(${project_name})
+
+set(CMAKE_INSTALL_PREFIX /opt/MESA/)
+
+set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
+include(Version)
+
+set(CMAKE_MACOSX_RPATH 0)
+
+execute_process(COMMAND ../src/configure WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
+execute_process(COMMAND make CFLAGS+=-DGIT_VERSION=\\"${GIT_VERSION}\\" WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
+
+execute_process(COMMAND cp tcpdump tcpdump_mesa WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
+
+# install the minidump tools to target binary dir
+install(PROGRAMS ${CMAKE_BINARY_DIR}/tcpdump_mesa DESTINATION ./bin/ COMPONENT EXECUTABLE)
+
+include(Package)
\ No newline at end of file
diff --git a/autorelease.sh b/autorelease.sh
new file mode 100644
index 0000000..0d85dd4
--- /dev/null
+++ b/autorelease.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+if [ $# -lt 7 ] ; then
+ echo "USAGE: ./autorelease.sh [API_V4_URL] [PROJECT_URL]
+ [PROJECT_ID] [TOKEN]
+ [COMMIT_TAG] [JOB] [PROJECT_NAME] [COMMIT_REF_PROTECTED] [COMMIT_SHORT_SHA]"
+exit 1;
+fi
+
+CI_API_V4_URL=$1
+CI_PROJECT_URL=$2
+CI_PROJECT_ID=$3
+CI_TOKEN=$4
+CI_COMMIT_TAG=$5
+ARTIFACTS_JOB=$6
+CI_PROJECT_NAME=$7
+CI_COMMIT_SHORT_SHA=$8
+
+res=`echo -e "curl --header \"PRIVATE-TOKEN: $CI_TOKEN\" $CI_API_V4_URL/projects/$CI_PROJECT_ID/releases/$CI_COMMIT_TAG -o /dev/null -s -w %{http_code}"| /bin/bash`
+
+if [[ $res == "200" ]]; then
+ eval $(echo -e "curl --request POST --header \"PRIVATE-TOKEN: $CI_TOKEN\" \
+ --data name=\"$CI_PROJECT_NAME-$CI_COMMIT_TAG-$CI_COMMIT_SHORT_SHA-artifacts.zip\" \
+ --data url=\"$CI_PROJECT_URL/-/jobs/artifacts/$CI_COMMIT_TAG/download?job=$ARTIFACTS_JOB\"\
+ $CI_API_V4_URL/projects/$CI_PROJECT_ID/releases/$CI_COMMIT_TAG/assets/links")
+else
+ eval $(echo -e "curl --header 'Content-Type: application/json' --header \
+ \"PRIVATE-TOKEN: $CI_TOKEN\" --data '{ \"name\": \"$CI_COMMIT_TAG\", \
+ \"tag_name\": \"$CI_COMMIT_TAG\", \"description\": \"auto_release\",\
+ \"assets\": { \"links\": [{ \"name\": \
+ \"$CI_PROJECT_NAME-$CI_COMMIT_TAG-$CI_COMMIT_SHORT_SHA-artifacts.zip\", \"url\": \
+ \"$CI_PROJECT_URL/-/jobs/artifacts/$CI_COMMIT_TAG/download?job=$ARTIFACTS_JOB\"\
+ }] } }' --request POST $CI_API_V4_URL/projects/$CI_PROJECT_ID/releases/")
+fi
diff --git a/autorevision.sh b/autorevision.sh
new file mode 100644
index 0000000..3baa179
--- /dev/null
+++ b/autorevision.sh
@@ -0,0 +1,1268 @@
+#!/bin/sh
+
+# Copyright (c) 2012 - 2016 dak180 and contributors. See
+# https://opensource.org/licenses/mit-license.php or the included
+# COPYING.md for licence terms.
+#
+# autorevision - extracts metadata about the head version from your
+# repository.
+
+# Usage message.
+arUsage() {
+ cat > "/dev/stderr" << EOF
+usage: autorevision {-t output-type | -s symbol} [-o cache-file [-f] ] [-V]
+ Options include:
+ -t output-type = specify output type
+ -s symbol = specify symbol output
+ -o cache-file = specify cache file location
+ -f = force the use of cache data
+ -U = check for untracked files in svn
+ -V = emit version and exit
+ -? = help message
+
+The following are valid output types:
+ clojure = clojure file
+ c = C/C++ file
+ h = Header for use with c/c++
+ hpp = Alternate C++ header strings with namespace
+ ini = INI file
+ java = Java file
+ javaprop = Java properties file
+ js = javascript file
+ json = JSON file
+ lua = Lua file
+ m4 = m4 file
+ matlab = matlab file
+ octave = octave file
+ php = PHP file
+ pl = Perl file
+ py = Python file
+ rpm = rpm file
+ scheme = scheme file
+ sh = Bash sytax
+ swift = Swift file
+ tex = (La)TeX file
+ xcode = Header useful for populating info.plist files
+ cmake = CMake file
+
+
+The following are valid symbols:
+ VCS_TYPE
+ VCS_BASENAME
+ VCS_UUID
+ VCS_NUM
+ VCS_DATE
+ VCS_BRANCH
+ VCS_TAG
+ VCS_TICK
+ VCS_EXTRA
+ VCS_FULL_HASH
+ VCS_SHORT_HASH
+ VCS_WC_MODIFIED
+ VCS_ACTION_STAMP
+EOF
+ exit 1
+}
+
+# Config
+ARVERSION="&&ARVERSION&&"
+TARGETFILE="/dev/stdout"
+while getopts ":t:o:s:VfU" OPTION; do
+ case "${OPTION}" in
+ t)
+ AFILETYPE="${OPTARG}"
+ ;;
+ o)
+ CACHEFILE="${OPTARG}"
+ ;;
+ f)
+ CACHEFORCE="1"
+ ;;
+ s)
+ VAROUT="${OPTARG}"
+ ;;
+ U)
+ UNTRACKEDFILES="1"
+ ;;
+ V)
+ echo "autorevision ${ARVERSION}"
+ exit 0
+ ;;
+ ?)
+ # If an unknown flag is used (or -?):
+ arUsage
+ ;;
+ esac
+done
+
+if [ ! -z "${VAROUT}" ] && [ ! -z "${AFILETYPE}" ]; then
+ # If both -s and -t are specified:
+ echo "error: Improper argument combination." 1>&2
+ exit 1
+elif [ -z "${VAROUT}" ] && [ -z "${AFILETYPE}" ]; then
+ # If neither -s or -t are specified:
+ arUsage
+elif [ -z "${CACHEFILE}" ] && [ "${CACHEFORCE}" = "1" ]; then
+ # If -f is specified without -o:
+ arUsage
+elif [ ! -f "${CACHEFILE}" ] && [ "${CACHEFORCE}" = "1" ]; then
+ # If we are forced to use the cache but it does not exist.
+ echo "error: Cache forced but no cache found." 1>&2
+ exit 1
+fi
+
+# Make sure that the path we are given is one we can source
+# (dash, we are looking at you).
+if [ ! -z "${CACHEFILE}" ] && ! echo "${CACHEFILE}" | grep -q '^\.*/'; then
+ CACHEFILE="./${CACHEFILE}"
+fi
+
+GENERATED_HEADER="Generated by autorevision - do not hand-hack!"
+
+# Functions to extract data from different repo types.
+# For git repos
+# shellcheck disable=SC2039,SC2164,SC2155
+gitRepo() {
+ local oldPath="${PWD}"
+
+ cd "$(git rev-parse --show-toplevel)"
+
+ VCS_TYPE="git"
+
+ VCS_BASENAME="$(basename "${PWD}")"
+
+ VCS_UUID="$(git rev-list --max-parents=0 --date-order --reverse HEAD 2>/dev/null | sed -n 1p)"
+ if [ -z "${VCS_UUID}" ]; then
+ VCS_UUID="$(git rev-list --topo-order HEAD | tail -n 1)"
+ fi
+
+ # Is the working copy clean?
+ test -z "$(git status --untracked-files=normal --porcelain)"
+ VCS_WC_MODIFIED="${?}"
+
+ # Enumeration of changesets
+ VCS_NUM="$(git rev-list --count HEAD 2>/dev/null)"
+ if [ -z "${VCS_NUM}" ]; then
+ echo "warning: Counting the number of revisions may be slower due to an outdated git version less than 1.7.2.3. If something breaks, please update it." 1>&2
+ VCS_NUM="$(git rev-list HEAD | wc -l)"
+ fi
+
+ # This may be a git-svn remote. If so, report the Subversion revision.
+ if [ -z "$(git config svn-remote.svn.url 2>/dev/null)" ]; then
+ # The full revision hash
+ VCS_FULL_HASH="$(git rev-parse HEAD)"
+
+ # The short hash
+ VCS_SHORT_HASH="$(echo "${VCS_FULL_HASH}" | cut -b 1-7)"
+ else
+ # The git-svn revision number
+ VCS_FULL_HASH="$(git svn find-rev HEAD)"
+ VCS_SHORT_HASH="${VCS_FULL_HASH}"
+ fi
+
+ # Current branch
+ VCS_BRANCH="$(git rev-parse --symbolic-full-name --verify "$(git name-rev --name-only --no-undefined HEAD 2>/dev/null)" 2>/dev/null | sed -e 's:refs/heads/::' | sed -e 's:refs/::')"
+
+ # Cache the description
+ local DESCRIPTION="$(git describe --long --tags 2>/dev/null)"
+
+ # Current or last tag ancestor (empty if no tags)
+ VCS_TAG="$(echo "${DESCRIPTION}" | sed -e "s:-g${VCS_SHORT_HASH}\$::" -e 's:-[0-9]*$::')"
+
+ # Distance to last tag or an alias of VCS_NUM if there is no tag
+ if [ ! -z "${DESCRIPTION}" ]; then
+ VCS_TICK="$(echo "${DESCRIPTION}" | sed -e "s:${VCS_TAG}-::" -e "s:-g${VCS_SHORT_HASH}::")"
+ else
+ VCS_TICK="${VCS_NUM}"
+ fi
+
+ # Date of the current commit
+ VCS_DATE="$(TZ=UTC git show -s --date=iso-strict-local --pretty=format:%ad | sed -e 's|+00:00|Z|')"
+ if [ -z "${VCS_DATE}" ]; then
+ echo "warning: Action stamps require git version 2.7+." 1>&2
+ VCS_DATE="$(git log -1 --pretty=format:%ci | sed -e 's: :T:' -e 's: ::' -e 's|+00:00|Z|')"
+ local ASdis="1"
+ fi
+
+ # Action Stamp
+ if [ -z "${ASdis}" ]; then
+ VCS_ACTION_STAMP="${VCS_DATE}!$(git show -s --pretty=format:%cE)"
+ else
+ VCS_ACTION_STAMP=""
+ fi
+
+ cd "${oldPath}"
+}
+
+# For hg repos
+# shellcheck disable=SC2039,SC2164
+hgRepo() {
+ local oldPath="${PWD}"
+
+ cd "$(hg root)"
+
+ VCS_TYPE="hg"
+
+ VCS_BASENAME="$(basename "${PWD}")"
+
+ VCS_UUID="$(hg log -r "0" -l 1 --template '{node}\n')"
+
+ # Is the working copy clean?
+ test -z "$(hg status -duram)"
+ VCS_WC_MODIFIED="${?}"
+
+ # Enumeration of changesets
+ VCS_NUM="$(hg id -n | tr -d '+')"
+
+ # The full revision hash
+ VCS_FULL_HASH="$(hg log -r "${VCS_NUM}" -l 1 --template '{node}\n')"
+
+ # The short hash
+ VCS_SHORT_HASH="$(hg id -i | tr -d '+')"
+
+ # Current bookmark (bookmarks are roughly equivalent to git's branches)
+ # or branch if no bookmark
+ VCS_BRANCH="$(hg id -B | cut -d ' ' -f 1)"
+ # Fall back to the branch if there are no bookmarks
+ if [ -z "${VCS_BRANCH}" ]; then
+ VCS_BRANCH="$(hg id -b)"
+ fi
+
+ # Current or last tag ancestor (excluding auto tags, empty if no tags)
+ VCS_TAG="$(hg log -r "${VCS_NUM}" -l 1 --template '{latesttag}\n' 2>/dev/null | sed -e 's:qtip::' -e 's:tip::' -e 's:qbase::' -e 's:qparent::' -e "s:$(hg --config 'extensions.color=' --config 'extensions.mq=' --color never qtop 2>/dev/null)::" | cut -d ' ' -f 1)"
+
+ # Distance to last tag or an alias of VCS_NUM if there is no tag
+ if [ ! -z "${VCS_TAG}" ]; then
+ VCS_TICK="$(hg log -r "${VCS_NUM}" -l 1 --template '{latesttagdistance}\n' 2>/dev/null)"
+ else
+ VCS_TICK="${VCS_NUM}"
+ fi
+
+ # Date of the current commit
+ VCS_DATE="$(hg log -r "${VCS_NUM}" -l 1 --template '{date|isodatesec}\n' 2>/dev/null | sed -e 's: :T:' -e 's: ::' -e 's|+00:00|Z|')"
+
+ # Action Stamp
+ VCS_ACTION_STAMP="$(TZ=UTC hg log -r "${VCS_NUM}" -l 1 --template '{date|localdate|rfc3339date}\n' 2>/dev/null | sed -e 's|+00:00|Z|')!$(hg log -r "${VCS_NUM}" -l 1 --template '{author|email}\n' 2>/dev/null)"
+
+ cd "${oldPath}"
+}
+
+# For bzr repos
+# shellcheck disable=SC2039,SC2164
+bzrRepo() {
+ local oldPath="${PWD}"
+
+ cd "$(bzr root)"
+
+ VCS_TYPE="bzr"
+
+ VCS_BASENAME="$(basename "${PWD}")"
+
+ # Currently unimplemented because more investigation is needed.
+ VCS_UUID=""
+
+ # Is the working copy clean?
+ bzr version-info --custom --template='{clean}\n' | grep -q '1'
+ VCS_WC_MODIFIED="${?}"
+
+ # Enumeration of changesets
+ VCS_NUM="$(bzr revno)"
+
+ # The full revision hash
+ VCS_FULL_HASH="$(bzr version-info --custom --template='{revision_id}\n')"
+
+ # The short hash
+ VCS_SHORT_HASH="${VCS_NUM}"
+
+ # Nick of the current branch
+ VCS_BRANCH="$(bzr nick)"
+
+ # Current or last tag ancestor (excluding auto tags, empty if no tags)
+ VCS_TAG="$(bzr tags --sort=time | sed '/?$/d' | tail -n1 | cut -d ' ' -f1)"
+
+ # Distance to last tag or an alias of VCS_NUM if there is no tag
+ if [ ! -z "${VCS_TAG}" ]; then
+ VCS_TICK="$(bzr log --line -r "tag:${VCS_TAG}.." | tail -n +2 | wc -l | sed -e 's:^ *::')"
+ else
+ VCS_TICK="${VCS_NUM}"
+ fi
+
+ # Date of the current commit
+ VCS_DATE="$(bzr version-info --custom --template='{date}\n' | sed -e 's: :T:' -e 's: ::')"
+
+ # Action Stamp
+ # Currently unimplemented because more investigation is needed.
+ VCS_ACTION_STAMP=""
+
+ cd "${oldPath}"
+}
+
+# For svn repos
+# shellcheck disable=SC2039,SC2164,SC2155
+svnRepo() {
+ local oldPath="${PWD}"
+
+ VCS_TYPE="svn"
+
+ case "${PWD}" in
+ /*trunk*|/*branches*|/*tags*)
+ local fn="${PWD}"
+ while [ "$(basename "${fn}")" != 'trunk' ] && [ "$(basename "${fn}")" != 'branches' ] && [ "$(basename "${fn}")" != 'tags' ] && [ "$(basename "${fn}")" != '/' ]; do
+ local fn="$(dirname "${fn}")"
+ done
+ local fn="$(dirname "${fn}")"
+ if [ "${fn}" = '/' ]; then
+ VCS_BASENAME="$(basename "${PWD}")"
+ else
+ VCS_BASENAME="$(basename "${fn}")"
+ fi
+ ;;
+ *) VCS_BASENAME="$(basename "${PWD}")" ;;
+ esac
+
+ VCS_UUID="$(svn info --xml | sed -n -e 's:::' -e 's:::p')"
+
+ # Cache svnversion output
+ local SVNVERSION="$(svnversion)"
+
+ # Is the working copy clean?
+ echo "${SVNVERSION}" | grep -q "M"
+ case "${?}" in
+ 0)
+ VCS_WC_MODIFIED="1"
+ ;;
+ 1)
+ if [ ! -z "${UNTRACKEDFILES}" ]; then
+ # `svnversion` does not detect untracked files and `svn status` is really slow, so only run it if we really have to.
+ if [ -z "$(svn status)" ]; then
+ VCS_WC_MODIFIED="0"
+ else
+ VCS_WC_MODIFIED="1"
+ fi
+ else
+ VCS_WC_MODIFIED="0"
+ fi
+ ;;
+ esac
+
+ # Enumeration of changesets
+ VCS_NUM="$(echo "${SVNVERSION}" | cut -d : -f 1 | sed -e 's:M::' -e 's:S::' -e 's:P::')"
+
+ # The full revision hash
+ VCS_FULL_HASH="${SVNVERSION}"
+
+ # The short hash
+ VCS_SHORT_HASH="${VCS_NUM}"
+
+ # Current branch
+ case "${PWD}" in
+ /*trunk*|/*branches*|/*tags*)
+ local lastbase=""
+ local fn="${PWD}"
+ while :
+ do
+ base="$(basename "${fn}")"
+ if [ "${base}" = 'trunk' ]; then
+ VCS_BRANCH='trunk'
+ break
+ elif [ "${base}" = 'branches' ] || [ "${base}" = 'tags' ]; then
+ VCS_BRANCH="${lastbase}"
+ break
+ elif [ "${base}" = '/' ]; then
+ VCS_BRANCH=""
+ break
+ fi
+ local lastbase="${base}"
+ local fn="$(dirname "${fn}")"
+ done
+ ;;
+ *) VCS_BRANCH="" ;;
+ esac
+
+ # Current or last tag ancestor (empty if no tags). But "current
+ # tag" can't be extracted reliably because Subversion doesn't
+ # have tags the way other VCSes do.
+ VCS_TAG=""
+ VCS_TICK=""
+
+ # Date of the current commit
+ VCS_DATE="$(svn info --xml | sed -n -e 's:::' -e 's:::p')"
+
+ # Action Stamp
+ VCS_ACTION_STAMP="${VCS_DATE}!$(svn log --xml -l 1 -r "${VCS_SHORT_HASH}" | sed -n -e 's:::' -e 's:::p')"
+
+ cd "${oldPath}"
+}
+
+
+# Functions to output data in different formats.
+# For bash output
+shOutput() {
+ cat > "${TARGETFILE}" << EOF
+# ${GENERATED_HEADER}
+
+VCS_TYPE="${VCS_TYPE}"
+VCS_BASENAME="${VCS_BASENAME}"
+VCS_UUID="${VCS_UUID}"
+VCS_NUM="${VCS_NUM}"
+VCS_DATE="${VCS_DATE}"
+VCS_BRANCH="${VCS_BRANCH}"
+VCS_TAG="${VCS_TAG}"
+VCS_TICK="${VCS_TICK}"
+VCS_EXTRA="${VCS_EXTRA}"
+
+VCS_ACTION_STAMP="${VCS_ACTION_STAMP}"
+VCS_FULL_HASH="${VCS_FULL_HASH}"
+VCS_SHORT_HASH="${VCS_SHORT_HASH}"
+
+VCS_WC_MODIFIED="${VCS_WC_MODIFIED}"
+
+# end
+EOF
+}
+
+# For source C output
+cOutput() {
+ cat > "${TARGETFILE}" << EOF
+/* ${GENERATED_HEADER} */
+
+const char *VCS_TYPE = "${VCS_TYPE}";
+const char *VCS_BASENAME = "${VCS_BASENAME}";
+const char *VCS_UUID = "${VCS_UUID}";
+const int VCS_NUM = ${VCS_NUM};
+const char *VCS_DATE = "${VCS_DATE}";
+const char *VCS_BRANCH = "${VCS_BRANCH}";
+const char *VCS_TAG = "${VCS_TAG}";
+const int VCS_TICK = ${VCS_TICK};
+const char *VCS_EXTRA = "${VCS_EXTRA}";
+
+const char *VCS_ACTION_STAMP = "${VCS_ACTION_STAMP}";
+const char *VCS_FULL_HASH = "${VCS_FULL_HASH}";
+const char *VCS_SHORT_HASH = "${VCS_SHORT_HASH}";
+
+const int VCS_WC_MODIFIED = ${VCS_WC_MODIFIED};
+
+/* end */
+EOF
+}
+
+# For header output
+hOutput() {
+ cat > "${TARGETFILE}" << EOF
+/* ${GENERATED_HEADER} */
+#ifndef AUTOREVISION_H
+#define AUTOREVISION_H
+
+#define VCS_TYPE "${VCS_TYPE}"
+#define VCS_BASENAME "${VCS_BASENAME}"
+#define VCS_UUID "${VCS_UUID}"
+#define VCS_NUM ${VCS_NUM}
+#define VCS_DATE "${VCS_DATE}"
+#define VCS_BRANCH "${VCS_BRANCH}"
+#define VCS_TAG "${VCS_TAG}"
+#define VCS_TICK ${VCS_TICK}
+#define VCS_EXTRA "${VCS_EXTRA}"
+
+#define VCS_ACTION_STAMP "${VCS_ACTION_STAMP}"
+#define VCS_FULL_HASH "${VCS_FULL_HASH}"
+#define VCS_SHORT_HASH "${VCS_SHORT_HASH}"
+
+#define VCS_WC_MODIFIED ${VCS_WC_MODIFIED}
+
+#endif
+
+/* end */
+EOF
+}
+
+# A header output for use with xcode to populate info.plist strings
+xcodeOutput() {
+ cat > "${TARGETFILE}" << EOF
+/* ${GENERATED_HEADER} */
+#ifndef AUTOREVISION_H
+#define AUTOREVISION_H
+
+#define VCS_TYPE ${VCS_TYPE}
+#define VCS_BASENAME ${VCS_BASENAME}
+#define VCS_UUID ${VCS_UUID}
+#define VCS_NUM ${VCS_NUM}
+#define VCS_DATE ${VCS_DATE}
+#define VCS_BRANCH ${VCS_BRANCH}
+#define VCS_TAG ${VCS_TAG}
+#define VCS_TICK ${VCS_TICK}
+#define VCS_EXTRA ${VCS_EXTRA}
+
+#define VCS_ACTION_STAMP ${VCS_ACTION_STAMP}
+#define VCS_FULL_HASH ${VCS_FULL_HASH}
+#define VCS_SHORT_HASH ${VCS_SHORT_HASH}
+
+#define VCS_WC_MODIFIED ${VCS_WC_MODIFIED}
+
+#endif
+
+/* end */
+EOF
+}
+
+# For Swift output
+swiftOutput() {
+ case "${VCS_WC_MODIFIED}" in
+ 0) VCS_WC_MODIFIED="false" ;;
+ 1) VCS_WC_MODIFIED="true" ;;
+ esac
+ # For values that may not exist depending on the type of repo we
+ # have read from, set them to `nil` when they are empty.
+ if [ -z "${VCS_UUID}" ]; then
+ VCS_UUID="nil"
+ else
+ VCS_UUID="\"${VCS_UUID}\""
+ fi
+ if [ -z "${VCS_TAG}" ]; then
+ VCS_TAG="nil"
+ else
+ VCS_TAG="\"${VCS_TAG}\""
+ fi
+ : "${VCS_TICK:="nil"}"
+ if [ -z "${VCS_EXTRA}" ]; then
+ VCS_EXTRA="nil"
+ else
+ VCS_EXTRA="\"${VCS_EXTRA}\""
+ fi
+ if [ -z "${VCS_ACTION_STAMP}" ]; then
+ VCS_ACTION_STAMP="nil"
+ else
+ VCS_ACTION_STAMP="\"${VCS_ACTION_STAMP}\""
+ fi
+ cat > "${TARGETFILE}" << EOF
+/* ${GENERATED_HEADER} */
+
+let VCS_TYPE = "${VCS_TYPE}"
+let VCS_BASENAME = "${VCS_BASENAME}"
+let VCS_UUID: String? = ${VCS_UUID}
+let VCS_NUM: Int = ${VCS_NUM}
+let VCS_DATE = "${VCS_DATE}"
+let VCS_BRANCH: String = "${VCS_BRANCH}"
+let VCS_TAG: String? = ${VCS_TAG}
+let VCS_TICK: Int? = ${VCS_TICK}
+let VCS_EXTRA: String? = ${VCS_EXTRA}
+
+let VCS_ACTION_STAMP: String? = ${VCS_ACTION_STAMP}
+let VCS_FULL_HASH: String = "${VCS_FULL_HASH}"
+let VCS_SHORT_HASH: String = "${VCS_SHORT_HASH}"
+
+let VCS_WC_MODIFIED: Bool = ${VCS_WC_MODIFIED}
+
+/* end */
+EOF
+}
+
+# For Python output
+pyOutput() {
+ case "${VCS_WC_MODIFIED}" in
+ 0) VCS_WC_MODIFIED="False" ;;
+ 1) VCS_WC_MODIFIED="True" ;;
+ esac
+ cat > "${TARGETFILE}" << EOF
+# ${GENERATED_HEADER}
+
+VCS_TYPE = "${VCS_TYPE}"
+VCS_BASENAME = "${VCS_BASENAME}"
+VCS_UUID = "${VCS_UUID}"
+VCS_NUM = ${VCS_NUM}
+VCS_DATE = "${VCS_DATE}"
+VCS_BRANCH = "${VCS_BRANCH}"
+VCS_TAG = "${VCS_TAG}"
+VCS_TICK = ${VCS_TICK}
+VCS_EXTRA = "${VCS_EXTRA}"
+
+VCS_ACTION_STAMP = "${VCS_ACTION_STAMP}"
+VCS_FULL_HASH = "${VCS_FULL_HASH}"
+VCS_SHORT_HASH = "${VCS_SHORT_HASH}"
+
+VCS_WC_MODIFIED = ${VCS_WC_MODIFIED}
+
+# end
+EOF
+}
+
+# For Perl output
+plOutput() {
+ cat << EOF
+# ${GENERATED_HEADER}
+
+\$VCS_TYPE = '${VCS_TYPE}';
+\$VCS_BASENAME = '${VCS_BASENAME}';
+\$VCS_UUID = '${VCS_UUID}';
+\$VCS_NUM = ${VCS_NUM};
+\$VCS_DATE = '${VCS_DATE}';
+\$VCS_BRANCH = '${VCS_BRANCH}';
+\$VCS_TAG = '${VCS_TAG}';
+\$VCS_TICK = ${VCS_TICK};
+\$VCS_EXTRA = '${VCS_EXTRA}';
+
+\$VCS_ACTION_STAMP = '${VCS_ACTION_STAMP}';
+\$VCS_FULL_HASH = '${VCS_FULL_HASH}';
+\$VCS_SHORT_HASH = '${VCS_SHORT_HASH}';
+
+\$VCS_WC_MODIFIED = ${VCS_WC_MODIFIED};
+
+# end
+1;
+EOF
+}
+
+# For lua output
+luaOutput() {
+ case "${VCS_WC_MODIFIED}" in
+ 0) VCS_WC_MODIFIED="false" ;;
+ 1) VCS_WC_MODIFIED="true" ;;
+ esac
+ cat > "${TARGETFILE}" << EOF
+-- ${GENERATED_HEADER}
+
+VCS_TYPE = "${VCS_TYPE}"
+VCS_BASENAME = "${VCS_BASENAME}"
+VCS_UUID = "${VCS_UUID}"
+VCS_NUM = ${VCS_NUM}
+VCS_DATE = "${VCS_DATE}"
+VCS_BRANCH = "${VCS_BRANCH}"
+VCS_TAG = "${VCS_TAG}"
+VCS_TICK = ${VCS_TICK}
+VCS_EXTRA = "${VCS_EXTRA}"
+
+VCS_ACTION_STAMP = "${VCS_ACTION_STAMP}"
+VCS_FULL_HASH = "${VCS_FULL_HASH}"
+VCS_SHORT_HASH = "${VCS_SHORT_HASH}"
+
+VCS_WC_MODIFIED = ${VCS_WC_MODIFIED}
+
+-- end
+EOF
+}
+
+# For php output
+phpOutput() {
+ case "${VCS_WC_MODIFIED}" in
+ 0) VCS_WC_MODIFIED="false" ;;
+ 1) VCS_WC_MODIFIED="true" ;;
+ esac
+ cat > "${TARGETFILE}" << EOF
+ "${VCS_TYPE}",
+ "VCS_BASENAME" => "${VCS_BASENAME}",
+ "VCS_UUID" => "${VCS_UUID}",
+ "VCS_NUM" => ${VCS_NUM},
+ "VCS_DATE" => "${VCS_DATE}",
+ "VCS_BRANCH" => "${VCS_BRANCH}",
+ "VCS_TAG" => "${VCS_TAG}",
+ "VCS_TICK" => ${VCS_TICK},
+ "VCS_EXTRA" => "${VCS_EXTRA}",
+ "VCS_ACTION_STAMP" => "${VCS_ACTION_STAMP}",
+ "VCS_FULL_HASH" => "${VCS_FULL_HASH}",
+ "VCS_SHORT_HASH" => "${VCS_SHORT_HASH}",
+ "VCS_WC_MODIFIED" => ${VCS_WC_MODIFIED}
+);
+
+# end
+?>
+EOF
+}
+
+# For ini output
+iniOutput() {
+ case "${VCS_WC_MODIFIED}" in
+ 0) VCS_WC_MODIFIED="false" ;;
+ 1) VCS_WC_MODIFIED="true" ;;
+ esac
+ cat > "${TARGETFILE}" << EOF
+; ${GENERATED_HEADER}
+[VCS]
+VCS_TYPE = "${VCS_TYPE}"
+VCS_BASENAME = "${VCS_BASENAME}"
+VCS_UUID = "${VCS_UUID}"
+VCS_NUM = ${VCS_NUM}
+VCS_DATE = "${VCS_DATE}"
+VCS_BRANCH = "${VCS_BRANCH}"
+VCS_TAG = "${VCS_TAG}"
+VCS_TICK = ${VCS_TICK}
+VCS_EXTRA = "${VCS_EXTRA}"
+VCS_ACTION_STAMP = "${VCS_ACTION_STAMP}"
+VCS_FULL_HASH = "${VCS_FULL_HASH}"
+VCS_SHORT_HASH = "${VCS_SHORT_HASH}"
+VCS_WC_MODIFIED = ${VCS_WC_MODIFIED}
+; end
+EOF
+}
+
+# For javascript output
+jsOutput() {
+ case "${VCS_WC_MODIFIED}" in
+ 1) VCS_WC_MODIFIED="true" ;;
+ 0) VCS_WC_MODIFIED="false" ;;
+ esac
+ cat > "${TARGETFILE}" << EOF
+/** ${GENERATED_HEADER} */
+
+var autorevision = {
+ VCS_TYPE: "${VCS_TYPE}",
+ VCS_BASENAME: "${VCS_BASENAME}",
+ VCS_UUID: "${VCS_UUID}",
+ VCS_NUM: ${VCS_NUM},
+ VCS_DATE: "${VCS_DATE}",
+ VCS_BRANCH: "${VCS_BRANCH}",
+ VCS_TAG: "${VCS_TAG}",
+ VCS_TICK: ${VCS_TICK},
+ VCS_EXTRA: "${VCS_EXTRA}",
+
+ VCS_ACTION_STAMP: "${VCS_ACTION_STAMP}",
+ VCS_FULL_HASH: "${VCS_FULL_HASH}",
+ VCS_SHORT_HASH: "${VCS_SHORT_HASH}",
+
+ VCS_WC_MODIFIED: ${VCS_WC_MODIFIED}
+};
+
+/** Node.js compatibility */
+if (typeof module !== 'undefined') {
+ module.exports = autorevision;
+}
+
+/** end */
+EOF
+}
+
+# For JSON output
+jsonOutput() {
+ case "${VCS_WC_MODIFIED}" in
+ 1) VCS_WC_MODIFIED="true" ;;
+ 0) VCS_WC_MODIFIED="false" ;;
+ esac
+ cat > "${TARGETFILE}" << EOF
+{
+ "_comment": "${GENERATED_HEADER}",
+ "VCS_TYPE": "${VCS_TYPE}",
+ "VCS_BASENAME": "${VCS_BASENAME}",
+ "VCS_UUID": "${VCS_UUID}",
+ "VCS_NUM": ${VCS_NUM},
+ "VCS_DATE": "${VCS_DATE}",
+ "VCS_BRANCH":"${VCS_BRANCH}",
+ "VCS_TAG": "${VCS_TAG}",
+ "VCS_TICK": ${VCS_TICK},
+ "VCS_EXTRA": "${VCS_EXTRA}",
+
+ "VCS_ACTION_STAMP": "${VCS_ACTION_STAMP}",
+ "VCS_FULL_HASH": "${VCS_FULL_HASH}",
+ "VCS_SHORT_HASH": "${VCS_SHORT_HASH}",
+
+ "VCS_WC_MODIFIED": ${VCS_WC_MODIFIED}
+}
+EOF
+}
+
+# For Java output
+javaOutput() {
+ case "${VCS_WC_MODIFIED}" in
+ 1) VCS_WC_MODIFIED="true" ;;
+ 0) VCS_WC_MODIFIED="false" ;;
+ esac
+ cat > "${TARGETFILE}" << EOF
+/* ${GENERATED_HEADER} */
+
+public class autorevision {
+ public static final String VCS_TYPE = "${VCS_TYPE}";
+ public static final String VCS_BASENAME = "${VCS_BASENAME}";
+ public static final String VCS_UUID = "${VCS_UUID}";
+ public static final long VCS_NUM = ${VCS_NUM};
+ public static final String VCS_DATE = "${VCS_DATE}";
+ public static final String VCS_BRANCH = "${VCS_BRANCH}";
+ public static final String VCS_TAG = "${VCS_TAG}";
+ public static final long VCS_TICK = ${VCS_TICK};
+ public static final String VCS_EXTRA = "${VCS_EXTRA}";
+
+ public static final String VCS_ACTION_STAMP = "${VCS_ACTION_STAMP}";
+ public static final String VCS_FULL_HASH = "${VCS_FULL_HASH}";
+ public static final String VCS_SHORT_HASH = "${VCS_SHORT_HASH}";
+
+ public static final boolean VCS_WC_MODIFIED = ${VCS_WC_MODIFIED};
+}
+EOF
+}
+
+# For Java properties output
+javapropOutput() {
+ case "${VCS_WC_MODIFIED}" in
+ 1) VCS_WC_MODIFIED="true" ;;
+ 0) VCS_WC_MODIFIED="false" ;;
+ esac
+ cat > "${TARGETFILE}" << EOF
+# ${GENERATED_HEADER}
+
+VCS_TYPE=${VCS_TYPE}
+VCS_BASENAME=${VCS_BASENAME}
+VCS_UUID=${VCS_UUID}
+VCS_NUM=${VCS_NUM}
+VCS_DATE=${VCS_DATE}
+VCS_BRANCH=${VCS_BRANCH}
+VCS_TAG=${VCS_TAG}
+VCS_TICK=${VCS_TICK}
+VCS_EXTRA=${VCS_EXTRA}
+
+VCS_ACTION_STAMP=${VCS_ACTION_STAMP}
+VCS_FULL_HASH=${VCS_FULL_HASH}
+VCS_SHORT_HASH=${VCS_SHORT_HASH}
+
+VCS_WC_MODIFIED=${VCS_WC_MODIFIED}
+EOF
+}
+
+# For m4 output
+m4Output() {
+ cat > "${TARGETFILE}" << EOF
+dnl ${GENERATED_HEADER}
+define(\`VCS_TYPE', \`${VCS_TYPE}')dnl
+define(\`VCS_BASENAME', \`${VCS_BASENAME}')dnl
+define(\`VCS_UUID', \`${VCS_UUID}')dnl
+define(\`VCS_NUM', \`${VCS_NUM}')dnl
+define(\`VCS_DATE', \`${VCS_DATE}')dnl
+define(\`VCS_BRANCH', \`${VCS_BRANCH}')dnl
+define(\`VCS_TAG', \`${VCS_TAG}')dnl
+define(\`VCS_TICK', \`${VCS_TICK}')dnl
+define(\`VCS_EXTRA', \`${VCS_EXTRA}')dnl
+define(\`VCS_ACTIONSTAMP', \`${VCS_ACTION_STAMP}')dnl
+define(\`VCS_FULLHASH', \`${VCS_FULL_HASH}')dnl
+define(\`VCS_SHORTHASH', \`${VCS_SHORT_HASH}')dnl
+define(\`VCS_WC_MODIFIED', \`${VCS_WC_MODIFIED}')dnl
+EOF
+}
+
+# For (La)TeX output
+texOutput() {
+ case "${VCS_WC_MODIFIED}" in
+ 0) VCS_WC_MODIFIED="false" ;;
+ 1) VCS_WC_MODIFIED="true" ;;
+ esac
+ cat > "${TARGETFILE}" << EOF
+% ${GENERATED_HEADER}
+\def \vcsType {${VCS_TYPE}}
+\def \vcsBasename {${VCS_BASENAME}}
+\def \vcsUUID {${VCS_UUID}}
+\def \vcsNum {${VCS_NUM}}
+\def \vcsDate {${VCS_DATE}}
+\def \vcsBranch {${VCS_BRANCH}}
+\def \vcsTag {${VCS_TAG}}
+\def \vcsTick {${VCS_TICK}}
+\def \vcsExtra {${VCS_EXTRA}}
+\def \vcsACTIONSTAMP {${VCS_ACTION_STAMP}}
+\def \vcsFullHash {${VCS_FULL_HASH}}
+\def \vcsShortHash {${VCS_SHORT_HASH}}
+\def \vcsWCModified {${VCS_WC_MODIFIED}}
+\endinput
+EOF
+}
+
+# For scheme output
+schemeOutput() {
+ case "${VCS_WC_MODIFIED}" in
+ 0) VCS_WC_MODIFIED="#f" ;;
+ 1) VCS_WC_MODIFIED="#t" ;;
+ esac
+ cat > "${TARGETFILE}" << EOF
+;; ${GENERATED_HEADER}
+(define VCS_TYPE "${VCS_TYPE}")
+(define VCS_BASENAME "${VCS_BASENAME}")
+(define VCS_UUID "${VCS_UUID}")
+(define VCS_NUM ${VCS_NUM})
+(define VCS_DATE "${VCS_DATE}")
+(define VCS_BRANCH "${VCS_BRANCH}")
+(define VCS_TAG "${VCS_TAG}")
+(define VCS_TICK ${VCS_TICK})
+(define VCS_EXTRA "${VCS_EXTRA}")
+
+(define VCS_ACTION_STAMP "${VCS_ACTION_STAMP}")
+(define VCS_FULL_HASH "${VCS_FULL_HASH}")
+(define VCS_SHORT_HASH "${VCS_SHORT_HASH}")
+
+(define VCS_WC_MODIFIED ${VCS_WC_MODIFIED})
+;; end
+EOF
+}
+
+# For clojure output
+clojureOutput() {
+ case "${VCS_WC_MODIFIED}" in
+ 0) VCS_WC_MODIFIED="false" ;;
+ 1) VCS_WC_MODIFIED="true" ;;
+ esac
+ cat > "${TARGETFILE}" << EOF
+;; ${GENERATED_HEADER}
+(def VCS_TYPE "${VCS_TYPE}")
+(def VCS_BASENAME "${VCS_BASENAME}")
+(def VCS_UUID "${VCS_UUID}")
+(def VCS_NUM ${VCS_NUM})
+(def VCS_DATE "${VCS_DATE}")
+(def VCS_BRANCH "${VCS_BRANCH}")
+(def VCS_TAG "${VCS_TAG}")
+(def VCS_TICK ${VCS_TICK})
+(def VCS_EXTRA "${VCS_EXTRA}")
+
+(def VCS_ACTION_STAMP "${VCS_ACTION_STAMP}")
+(def VCS_FULL_HASH "${VCS_FULL_HASH}")
+(def VCS_SHORT_HASH "${VCS_SHORT_HASH}")
+
+(def VCS_WC_MODIFIED ${VCS_WC_MODIFIED})
+;; end
+EOF
+}
+
+# For rpm spec file output
+rpmOutput() {
+ cat > "${TARGETFILE}" << EOF
+# ${GENERATED_HEADER}
+$([ "${VCS_TYPE}" ] && echo "%define vcs_type ${VCS_TYPE}")
+$([ "${VCS_BASENAME}" ] && echo "%define vcs_basename ${VCS_BASENAME}")
+$([ "${VCS_UUID}" ] && echo "%define vcs_uuid ${VCS_UUID}")
+$([ "${VCS_NUM}" ] && echo "%define vcs_num ${VCS_NUM}")
+$([ "${VCS_DATE}" ] && echo "%define vcs_date ${VCS_DATE}")
+$([ "${VCS_BRANCH}" ] && echo "%define vcs_branch ${VCS_BRANCH}")
+$([ "${VCS_TAG}" ] && echo "%define vcs_tag ${VCS_TAG}")
+$([ "${VCS_TICK}" ] && echo "%define vcs_tick ${VCS_TICK}")
+$([ "${VCS_EXTRA}" ] && echo "%define vcs_extra ${VCS_EXTRA}")
+
+$([ "${VCS_ACTION_STAMP}" ] && echo "%define vcs_action_stamp ${VCS_ACTION_STAMP}")
+$([ "${VCS_FULL_HASH}" ] && echo "%define vcs_full_hash ${VCS_FULL_HASH}")
+$([ "${VCS_SHORT_HASH}" ] && echo "%define vcs_short_hash ${VCS_SHORT_HASH}")
+
+$([ "${VCS_WC_MODIFIED}" ] && echo "%define vcs_wc_modified ${VCS_WC_MODIFIED}")
+# end
+EOF
+}
+
+# shellcheck disable=SC2155,SC2039
+hppOutput() {
+ local NAMESPACE="$(echo "${VCS_BASENAME}" | sed -e 's:_::g' | tr '[:lower:]' '[:upper:]')"
+ cat > "${TARGETFILE}" << EOF
+/* ${GENERATED_HEADER} */
+
+#ifndef ${NAMESPACE}_AUTOREVISION_H
+#define ${NAMESPACE}_AUTOREVISION_H
+
+#include
+
+namespace $(echo "${NAMESPACE}" | tr '[:upper:]' '[:lower:]')
+{
+ const std::string VCS_TYPE = "${VCS_TYPE}";
+ const std::string VCS_BASENAME = "${VCS_BASENAME}";
+ const std::string VCS_UUID = "${VCS_UUID}";
+ const int VCS_NUM = ${VCS_NUM};
+ const std::string VCS_DATE = "${VCS_DATE}";
+ const std::string VCS_BRANCH = "${VCS_BRANCH}";
+ const std::string VCS_TAG = "${VCS_TAG}";
+ const int VCS_TICK = ${VCS_TICK};
+ const std::string VCS_EXTRA = "${VCS_EXTRA}";
+
+ const std::string VCS_ACTION_STAMP = "${VCS_ACTION_STAMP}";
+ const std::string VCS_FULL_HASH = "${VCS_FULL_HASH}";
+ const std::string VCS_SHORT_HASH = "${VCS_SHORT_HASH}";
+
+ const int VCS_WC_MODIFIED = ${VCS_WC_MODIFIED};
+}
+
+#endif
+
+/* end */
+EOF
+}
+
+matlabOutput() {
+ case "${VCS_WC_MODIFIED}" in
+ 0) VCS_WC_MODIFIED="FALSE" ;;
+ 1) VCS_WC_MODIFIED="TRUE" ;;
+ esac
+ cat > "${TARGETFILE}" << EOF
+% ${GENERATED_HEADER}
+
+VCS_TYPE = '${VCS_TYPE}';
+VCS_BASENAME = '${VCS_BASENAME}';
+VCS_UUID = '${VCS_UUID}';
+VCS_NUM = ${VCS_NUM};
+VCS_DATE = '${VCS_DATE}';
+VCS_BRANCH = '${VCS_BRANCH}';
+VCS_TAG = '${VCS_TAG}';
+VCS_TICK = ${VCS_TICK};
+VCS_EXTRA = '${VCS_EXTRA}';
+
+VCS_ACTION_STAMP = '${VCS_ACTION_STAMP}';
+VCS_FULL_HASH = '${VCS_FULL_HASH}';
+VCS_SHORT_HASH = '${VCS_SHORT_HASH}';
+
+VCS_WC_MODIFIED = ${VCS_WC_MODIFIED};
+
+% end
+EOF
+}
+
+octaveOutput() {
+ cat > "${TARGETFILE}" << EOF
+% ${GENERATED_HEADER}
+
+VCS_TYPE = '${VCS_TYPE}';
+VCS_BASENAME = '${VCS_BASENAME}';
+VCS_UUID = '${VCS_UUID}';
+VCS_NUM = ${VCS_NUM};
+VCS_DATE = '${VCS_DATE}';
+VCS_BRANCH = '${VCS_BRANCH}';
+VCS_TAG = '${VCS_TAG}';
+VCS_TICK = ${VCS_TICK};
+VCS_EXTRA = '${VCS_EXTRA}';
+
+VCS_ACTION_STAMP = '${VCS_ACTION_STAMP}';
+VCS_FULL_HASH = '${VCS_FULL_HASH}';
+VCS_SHORT_HASH = '${VCS_SHORT_HASH}';
+
+VCS_WC_MODIFIED = ${VCS_WC_MODIFIED};
+
+% end
+EOF
+}
+
+cmakeOutput() {
+ cat > "${TARGETFILE}" << EOF
+# ${GENERATED_HEADER}
+
+set(VCS_TYPE ${VCS_TYPE})
+set(VCS_BASENAME ${VCS_BASENAME})
+set(VCS_UUID ${VCS_UUID})
+set(VCS_NUM ${VCS_NUM})
+set(VCS_DATE ${VCS_DATE})
+set(VCS_BRANCH ${VCS_BRANCH})
+set(VCS_TAG ${VCS_TAG})
+set(VCS_TICK ${VCS_TICK})
+set(VCS_EXTRA ${VCS_EXTRA})
+
+set(VCS_ACTION_STAMP ${VCS_ACTION_STAMP})
+set(VCS_FULL_HASH ${VCS_FULL_HASH})
+set(VCS_SHORT_HASH ${VCS_SHORT_HASH})
+
+set(VCS_WC_MODIFIED ${VCS_WC_MODIFIED})
+
+# end
+EOF
+}
+
+
+# Helper functions
+# Count path segments
+# shellcheck disable=SC2039
+pathSegment() {
+ local pathz="${1}"
+ local depth="0"
+
+ if [ ! -z "${pathz}" ]; then
+ # Continue until we are at / or there are no path separators left.
+ while [ ! "${pathz}" = "/" ] && [ ! "${pathz}" = "$(echo "${pathz}" | sed -e 's:/::')" ]; do
+ pathz="$(dirname "${pathz}")"
+ depth="$((depth+1))"
+ done
+ fi
+ echo "${depth}"
+}
+
+# Largest of four numbers
+# shellcheck disable=SC2039
+multiCompare() {
+ local larger="${1}"
+ local numA="${2}"
+ local numB="${3}"
+ local numC="${4}"
+
+ [ "${numA}" -gt "${larger}" ] && larger="${numA}"
+ [ "${numB}" -gt "${larger}" ] && larger="${numB}"
+ [ "${numC}" -gt "${larger}" ] && larger="${numC}"
+ echo "${larger}"
+}
+
+# Test for repositories
+# shellcheck disable=SC2155,SC2039
+repoTest() {
+ REPONUM="0"
+ if [ ! -z "$(git rev-parse HEAD 2>/dev/null)" ]; then
+ local gitPath="$(git rev-parse --show-toplevel)"
+ local gitDepth="$(pathSegment "${gitPath}")"
+ REPONUM="$((REPONUM+1))"
+ else
+ local gitDepth="0"
+ fi
+ if [ ! -z "$(hg root 2>/dev/null)" ]; then
+ local hgPath="$(hg root 2>/dev/null)"
+ local hgDepth="$(pathSegment "${hgPath}")"
+ REPONUM="$((REPONUM+1))"
+ else
+ local hgDepth="0"
+ fi
+ if [ ! -z "$(bzr root 2>/dev/null)" ]; then
+ local bzrPath="$(bzr root 2>/dev/null)"
+ local bzrDepth="$(pathSegment "${bzrPath}")"
+ REPONUM="$((REPONUM+1))"
+ else
+ local bzrDepth="0"
+ fi
+ if [ ! -z "$(svn info 2>/dev/null)" ]; then
+ local stringz=""
+ local stringx=""
+ local svnPath="$(svn info --xml | sed -n -e "s:${stringz}::" -e "s:${stringx}::p")"
+ # An old enough svn will not be able give us a path; default
+ # to 1 for that case.
+ if [ -z "${svnPath}" ]; then
+ local svnDepth="1"
+ else
+ local svnDepth="$(pathSegment "${svnPath}")"
+ fi
+ REPONUM="$((REPONUM+1))"
+ else
+ local svnDepth="0"
+ fi
+
+ # Do not do more work then we have to.
+ if [ "${REPONUM}" = "0" ]; then
+ return
+ fi
+
+ # Figure out which repo is the deepest and use it.
+ local wonRepo="$(multiCompare "${gitDepth}" "${hgDepth}" "${bzrDepth}" "${svnDepth}")"
+ if [ "${wonRepo}" = "${gitDepth}" ]; then
+ gitRepo
+ elif [ "${wonRepo}" = "${hgDepth}" ]; then
+ hgRepo
+ elif [ "${wonRepo}" = "${bzrDepth}" ]; then
+ bzrRepo
+ elif [ "${wonRepo}" = "${svnDepth}" ]; then
+ svnRepo
+ fi
+}
+
+
+
+# Detect which repos we are in and gather data.
+# shellcheck source=/dev/null
+if [ -f "${CACHEFILE}" ] && [ "${CACHEFORCE}" = "1" ]; then
+ # When requested only read from the cache to populate our symbols.
+ . "${CACHEFILE}"
+else
+ # If a value is not set through the environment set VCS_EXTRA to nothing.
+ : "${VCS_EXTRA:=""}"
+ repoTest
+
+ if [ -f "${CACHEFILE}" ] && [ "${REPONUM}" = "0" ]; then
+ # We are not in a repo; try to use a previously generated cache to populate our symbols.
+ . "${CACHEFILE}"
+ # Do not overwrite the cache if we know we are not going to write anything new.
+ CACHEFORCE="1"
+ elif [ "${REPONUM}" = "0" ]; then
+ echo "error: No repo or cache detected." 1>&2
+ exit 1
+ fi
+fi
+
+
+# -s output is handled here.
+if [ ! -z "${VAROUT}" ]; then
+ if [ "${VAROUT}" = "VCS_TYPE" ]; then
+ echo "${VCS_TYPE}"
+ elif [ "${VAROUT}" = "VCS_BASENAME" ]; then
+ echo "${VCS_BASENAME}"
+ elif [ "${VAROUT}" = "VCS_NUM" ]; then
+ echo "${VCS_NUM}"
+ elif [ "${VAROUT}" = "VCS_DATE" ]; then
+ echo "${VCS_DATE}"
+ elif [ "${VAROUT}" = "VCS_BRANCH" ]; then
+ echo "${VCS_BRANCH}"
+ elif [ "${VAROUT}" = "VCS_TAG" ]; then
+ echo "${VCS_TAG}"
+ elif [ "${VAROUT}" = "VCS_TICK" ]; then
+ echo "${VCS_TICK}"
+ elif [ "${VAROUT}" = "VCS_FULL_HASH" ]; then
+ echo "${VCS_FULL_HASH}"
+ elif [ "${VAROUT}" = "VCS_SHORT_HASH" ]; then
+ echo "${VCS_SHORT_HASH}"
+ elif [ "${VAROUT}" = "VCS_WC_MODIFIED" ]; then
+ echo "${VCS_WC_MODIFIED}"
+ elif [ "${VAROUT}" = "VCS_ACTION_STAMP" ]; then
+ echo "${VCS_ACTION_STAMP}"
+ else
+ echo "error: Not a valid output symbol." 1>&2
+ exit 1
+ fi
+fi
+
+
+# Detect requested output type and use it.
+if [ ! -z "${AFILETYPE}" ]; then
+ if [ "${AFILETYPE}" = "c" ]; then
+ cOutput
+ elif [ "${AFILETYPE}" = "h" ]; then
+ hOutput
+ elif [ "${AFILETYPE}" = "xcode" ]; then
+ xcodeOutput
+ elif [ "${AFILETYPE}" = "swift" ]; then
+ swiftOutput
+ elif [ "${AFILETYPE}" = "sh" ]; then
+ shOutput
+ elif [ "${AFILETYPE}" = "py" ] || [ "${AFILETYPE}" = "python" ]; then
+ pyOutput
+ elif [ "${AFILETYPE}" = "pl" ] || [ "${AFILETYPE}" = "perl" ]; then
+ plOutput
+ elif [ "${AFILETYPE}" = "lua" ]; then
+ luaOutput
+ elif [ "${AFILETYPE}" = "php" ]; then
+ phpOutput
+ elif [ "${AFILETYPE}" = "ini" ]; then
+ iniOutput
+ elif [ "${AFILETYPE}" = "js" ]; then
+ jsOutput
+ elif [ "${AFILETYPE}" = "json" ]; then
+ jsonOutput
+ elif [ "${AFILETYPE}" = "java" ]; then
+ javaOutput
+ elif [ "${AFILETYPE}" = "javaprop" ]; then
+ javapropOutput
+ elif [ "${AFILETYPE}" = "tex" ]; then
+ texOutput
+ elif [ "${AFILETYPE}" = "m4" ]; then
+ m4Output
+ elif [ "${AFILETYPE}" = "scheme" ]; then
+ schemeOutput
+ elif [ "${AFILETYPE}" = "clojure" ]; then
+ clojureOutput
+ elif [ "${AFILETYPE}" = "rpm" ]; then
+ rpmOutput
+ elif [ "${AFILETYPE}" = "hpp" ]; then
+ hppOutput
+ elif [ "${AFILETYPE}" = "matlab" ]; then
+ matlabOutput
+ elif [ "${AFILETYPE}" = "octave" ]; then
+ octaveOutput
+ elif [ "${AFILETYPE}" = "cmake" ]; then
+ cmakeOutput
+ else
+ echo "error: Not a valid output type." 1>&2
+ exit 1
+ fi
+fi
+
+
+# If requested, make a cache file.
+if [ ! -z "${CACHEFILE}" ] && [ ! "${CACHEFORCE}" = "1" ]; then
+ TARGETFILE="${CACHEFILE}.tmp"
+ shOutput
+
+ # Check to see if there have been any actual changes.
+ if [ ! -f "${CACHEFILE}" ]; then
+ mv -f "${CACHEFILE}.tmp" "${CACHEFILE}"
+ elif cmp -s "${CACHEFILE}.tmp" "${CACHEFILE}"; then
+ rm -f "${CACHEFILE}.tmp"
+ else
+ mv -f "${CACHEFILE}.tmp" "${CACHEFILE}"
+ fi
+fi
diff --git a/ci/get-nprocessors.sh b/ci/get-nprocessors.sh
new file mode 100644
index 0000000..43635e7
--- /dev/null
+++ b/ci/get-nprocessors.sh
@@ -0,0 +1,48 @@
+#!/usr/bin/env bash
+# Copyright 2017 Google Inc.
+# All Rights Reserved.
+#
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# This file is typically sourced by another script.
+# if possible, ask for the precise number of processors,
+# otherwise take 2 processors as reasonable default; see
+# https://docs.travis-ci.com/user/speeding-up-the-build/#Makefile-optimization
+if [ -x /usr/bin/getconf ]; then
+ NPROCESSORS=$(/usr/bin/getconf _NPROCESSORS_ONLN)
+else
+ NPROCESSORS=2
+fi
+
+# as of 2017-09-04 Travis CI reports 32 processors, but GCC build
+# crashes if parallelized too much (maybe memory consumption problem),
+# so limit to 4 processors for the time being.
+if [ $NPROCESSORS -gt 4 ] ; then
+ echo "$0:Note: Limiting processors to use by make from $NPROCESSORS to 4."
+ NPROCESSORS=4
+fi
diff --git a/ci/perpare_pulp3_netrc.sh b/ci/perpare_pulp3_netrc.sh
new file mode 100644
index 0000000..8414bbb
--- /dev/null
+++ b/ci/perpare_pulp3_netrc.sh
@@ -0,0 +1,3 @@
+#!/usr/bin/env sh
+set -evx
+echo "machine ${PULP3_SERVER_URL}\nlogin ${PULP3_SERVER_LOGIN}\npassword ${PULP3_SERVER_PASSWORD}\n" > ~/.netrc
diff --git a/ci/travis.sh b/ci/travis.sh
new file mode 100644
index 0000000..4f07bdf
--- /dev/null
+++ b/ci/travis.sh
@@ -0,0 +1,65 @@
+#!/usr/bin/env sh
+set -evx
+
+chmod +x ci/get-nprocessors.sh
+. ci/get-nprocessors.sh
+
+# if possible, ask for the precise number of processors,
+# otherwise take 2 processors as reasonable default; see
+# https://docs.travis-ci.com/user/speeding-up-the-build/#Makefile-optimization
+if [ -x /usr/bin/getconf ]; then
+ NPROCESSORS=$(/usr/bin/getconf _NPROCESSORS_ONLN)
+else
+ NPROCESSORS=2
+fi
+
+# as of 2017-09-04 Travis CI reports 32 processors, but GCC build
+# crashes if parallelized too much (maybe memory consumption problem),
+# so limit to 4 processors for the time being.
+if [ $NPROCESSORS -gt 4 ] ; then
+ echo "$0:Note: Limiting processors to use by make from $NPROCESSORS to 4."
+ NPROCESSORS=4
+fi
+
+# Tell make to use the processors. No preceding '-' required.
+MAKEFLAGS="j${NPROCESSORS}"
+export MAKEFLAGS
+
+env | sort
+
+# Set default values to OFF for these variables if not specified.
+: "${NO_EXCEPTION:=OFF}"
+: "${NO_RTTI:=OFF}"
+: "${COMPILER_IS_GNUCXX:=OFF}"
+
+# Install dependency from YUM
+if [ -n "${INSTALL_DEPENDENCY_LIBRARY}" ]; then
+ yum install -y $INSTALL_DEPENDENCY_LIBRARY
+ source /etc/profile.d/framework.sh
+fi
+mkdir build || true
+cd build
+
+cmake3 -DCMAKE_CXX_FLAGS=$CXX_FLAGS \
+ -DCMAKE_BUILD_TYPE=$BUILD_TYPE \
+ -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \
+ -DENABLE_DEVEL=$ENABLE_DEVEL_SWITCH \
+ -DVERSION_DAILY_BUILD=$TESTING_VERSION_BUILD \
+ ..
+
+make
+
+if [ -n "${PACKAGE}" ]; then
+ make package
+fi
+
+if [ -n "${UPLOAD}" ]; then
+ cp ~/rpm_upload_tools.py ./
+ python3 rpm_upload_tools.py ${PULP3_REPO_NAME} ${PULP3_DIST_NAME} *.rpm
+fi
+
+#if [ -n "${UPLOAD_SYMBOL_FILES}" ]; then
+# rpm -i tfe*debuginfo*.rpm
+# cp /usr/lib/debug/opt/tsg/tfe/bin/tfe.debug /tmp/tfe.debuginfo.${CI_COMMIT_SHORT_SHA}
+# sentry-cli upload-dif -t elf /tmp/tfe.debuginfo.${CI_COMMIT_SHORT_SHA}
+#fi
diff --git a/cmake/FindSYSTEMD.cmake b/cmake/FindSYSTEMD.cmake
new file mode 100644
index 0000000..c7decde
--- /dev/null
+++ b/cmake/FindSYSTEMD.cmake
@@ -0,0 +1,39 @@
+# - Find SystemdDaemon
+# Find the systemd daemon library
+#
+# This module defines the following variables:
+# SYSTEMD_FOUND - True if library and include directory are found
+# If set to TRUE, the following are also defined:
+# SYSTEMD_INCLUDE_DIRS - The directory where to find the header file
+# SYSTEMD_LIBRARIES - Where to find the library file
+#
+# For conveniance, these variables are also set. They have the same values
+# than the variables above. The user can thus choose his/her prefered way
+# to write them.
+# SYSTEMD_LIBRARY
+# SYSTEMD_INCLUDE_DIR
+#
+# This file is in the public domain
+
+include(FindPkgConfig)
+pkg_check_modules(SYSTEMD libsystemd)
+
+if(NOT SYSTEMD_FOUND)
+ find_path(SYSTEMD_INCLUDE_DIRS NAMES systemd/sd-daemon.h
+ DOC "The Systemd include directory")
+
+ find_library(SYSTEMD_LIBRARIES NAMES systemd
+ DOC "The Systemd library")
+
+ # Use some standard module to handle the QUIETLY and REQUIRED arguments, and
+ # set SYSTEMD_FOUND to TRUE if these two variables are set.
+ include(FindPackageHandleStandardArgs)
+ find_package_handle_standard_args(SYSTEMD REQUIRED_VARS SYSTEMD_LIBRARIES SYSTEMD_INCLUDE_DIRS)
+
+ if(SYSTEMD_FOUND)
+ set(SYSTEMD_LIBRARY ${SYSTEMD_LIBRARIES})
+ set(SYSTEMD_INCLUDE_DIR ${SYSTEMD_INCLUDE_DIRS})
+ endif()
+endif()
+
+mark_as_advanced(SYSTEMD_INCLUDE_DIRS SYSTEMD_LIBRARIES)
\ No newline at end of file
diff --git a/cmake/Package.cmake b/cmake/Package.cmake
new file mode 100644
index 0000000..33da0c5
--- /dev/null
+++ b/cmake/Package.cmake
@@ -0,0 +1,64 @@
+if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+ set(MY_RPM_NAME_PREFIX "${project_name}-debug")
+else()
+ set(MY_RPM_NAME_PREFIX "${project_name}")
+endif()
+
+message(STATUS "Package: ${MY_RPM_NAME_PREFIX}")
+
+set(CPACK_PACKAGE_VECDOR "MESA")
+set(CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}")
+set(CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}")
+set(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}.${VERSION_BUILD}")
+set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
+set(CPACK_PACKAGE_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${VERSION_BUILD}")
+execute_process(COMMAND bash -c "echo -ne \"`uname -r | awk -F'.' '{print $5\".\"$6\".\"$7}'`\"" OUTPUT_VARIABLE SYSTEM_VERSION)
+
+execute_process(COMMAND sh changelog.sh ${CMAKE_BINARY_DIR} WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/cmake)
+SET(CPACK_RPM_CHANGELOG_FILE ${CMAKE_BINARY_DIR}/changelog.txt)
+
+# RPM Build
+set(CPACK_GENERATOR "RPM")
+set(CPACK_RPM_PACKAGE_VENDOR "MESA")
+set(CPACK_RPM_PACKAGE_AUTOREQPROV "yes")
+set(CPACK_RPM_PACKAGE_RELEASE_LIBRARY "on")
+set(CPACK_RPM_DEBUGINFO_PACKAGE "on")
+set(CPACK_RPM_PACKAGE_DEBUG 1)
+
+set(CPACK_RPM_COMPONENT_INSTALL ON)
+set(CPACK_COMPONENTS_IGNORE_GROUPS 1)
+set(CPACK_COMPONENTS_GROUPING ONE_PER_GROUP)
+set(CPACK_COMPONENT_HEADER_DISPLAY_NAME "develop")
+
+set(CPACK_COMPONENT_EXECUTABLE_REQUIRED TRUE)
+set(CPACK_RPM_EXECUTABLE_PACKAGE_NAME ${MY_RPM_NAME_PREFIX})
+set(CPACK_RPM_EXECUTABLE_FILE_NAME "${CPACK_RPM_EXECUTABLE_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${SYSTEM_VERSION}.rpm")
+set(CPACK_RPM_EXECUTABLE_DEBUGINFO_FILE_NAME "${CPACK_RPM_EXECUTABLE_PACKAGE_NAME}-debuginfo-${CPACK_PACKAGE_VERSION}-${SYSTEM_VERSION}.rpm")
+
+set(CPACK_COMPONENT_EXECUTABLE_GROUP "executable")
+set(CPACK_COMPONENT_LIBRARY_GROUP "executable")
+set(CPACK_COMPONENT_PROFILE_GROUP "executable")
+
+set(CPACK_COMPONENT_HEADER_REQUIRED TRUE)
+set(CPACK_RPM_HEADER_PACKAGE_NAME "${MY_RPM_NAME_PREFIX}-devel")
+set(CPACK_RPM_HEADER_FILE_NAME "${CPACK_RPM_HEADER_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${SYSTEM_VERSION}.rpm")
+set(CPACK_RPM_HEADER_DEBUGINFO_FILE_NAME "${CPACK_RPM_HEADER_PACKAGE_NAME}-debuginfo-${CPACK_PACKAGE_VERSION}-${SYSTEM_VERSION}.rpm")
+set(CPACK_COMPONENT_HEADER_GROUP "header")
+
+set(CPACK_RPM_HEADER_PACKAGE_REQUIRES_PRE ${CPACK_RPM_LIBRARY_PACKAGE_NAME})
+set(CPACK_RPM_HEADER_PACKAGE_CONFLICTS ${CPACK_RPM_HEADER_PACKAGE_NAME})
+
+set(CPACK_COMPONENTS_ALL LIBRARY HEADER EXECUTABLE PROFILE)
+
+set(CPACK_BUILD_SOURCE_DIRS "${CMAKE_SOURCE_DIR}")
+
+set(CPACK_RPM_PACKAGE_AUTOREQPROV "no")
+set(CPACK_RPM_PACKAGE_AUTOREQ "no")
+
+# Must uninstall the debug package before install release package
+set(CPACK_RPM_PACKAGE_CONFLICTS ${MY_RPM_NAME_PREFIX})
+
+# set(CPACK_STRIP_FILES TRUE)
+include(CPack)
+
+
diff --git a/cmake/Version.cmake b/cmake/Version.cmake
new file mode 100644
index 0000000..3722d0e
--- /dev/null
+++ b/cmake/Version.cmake
@@ -0,0 +1,49 @@
+
+# Using autorevision.sh to generate version information
+
+set(__SOURCE_AUTORESIVISION ${CMAKE_SOURCE_DIR}/autorevision.sh)
+set(__AUTORESIVISION ${CMAKE_BINARY_DIR}/autorevision.sh)
+set(__VERSION_CACHE ${CMAKE_BINARY_DIR}/version.txt)
+set(__VERSION_CONFIG ${CMAKE_BINARY_DIR}/version.cmake)
+
+file(COPY ${__SOURCE_AUTORESIVISION} DESTINATION ${CMAKE_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
+ WORLD_READ WORLD_EXECUTE)
+
+# execute autorevision.sh to generate version information
+execute_process(COMMAND ${__AUTORESIVISION} -t cmake -o ${__VERSION_CACHE}
+ OUTPUT_FILE ${__VERSION_CONFIG} ERROR_QUIET)
+include(${__VERSION_CONFIG})
+
+# extract major, minor, patch version from git tag
+string(REGEX REPLACE "^v([0-9]+)\\..*" "\\1" VERSION_MAJOR "${VCS_TAG}")
+string(REGEX REPLACE "^v[0-9]+\\.([0-9]+).*" "\\1" VERSION_MINOR "${VCS_TAG}")
+string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" VERSION_PATCH "${VCS_TAG}")
+
+if(NOT VERSION_MAJOR)
+ set(VERSION_MAJOR 1)
+endif()
+
+if(NOT VERSION_MINOR)
+ set(VERSION_MINOR 0)
+endif()
+
+if(NOT VERSION_PATCH)
+ set(VERSION_PATCH 0)
+endif()
+
+set(VERSION "${VERSION_MAJOR}_${VERSION_MINOR}_${VERSION_PATCH}")
+set(VERSION_BUILD "${VCS_SHORT_HASH}")
+
+# print information
+message(STATUS "Version: ${VERSION}-${VERSION_BUILD}")
+
+option(DEFINE_GIT_VERSION "Set DEFINE_GIT_VERSION to TRUE or FALSE" TRUE)
+
+if(DEFINE_GIT_VERSION)
+ set(GIT_VERSION
+ "${VERSION}-${CMAKE_BUILD_TYPE}-${VERSION_BUILD}-${VCS_BRANCH}-${VCS_TAG}-${VCS_DATE}")
+ string(REGEX REPLACE "[-:+/\\.]" "_" GIT_VERSION ${GIT_VERSION})
+
+ add_definitions(-DGIT_VERSION=${GIT_VERSION})
+endif()
diff --git a/cmake/changelog.sh b/cmake/changelog.sh
new file mode 100644
index 0000000..67f995f
--- /dev/null
+++ b/cmake/changelog.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+work_path=$1
+branch=`git status | grep branch | awk '{print $NF}'`
+git log --branches=$branch --no-merges --date=local --show-signature --pretty="* %ad %an %ae %nhash: %H%ncommit:%n%B" | awk -F"-" '{print "- "$0}' | sed 's/- \*/\*/g' | sed 's/- $//g' | sed 's/-/ -/g' | sed 's/[0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}//g' > $work_path/changelog.txt
diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000..817b05f
--- /dev/null
+++ b/readme.md
@@ -0,0 +1,59 @@
+
+
+ **TCPDUMP_MESA**
+
+fork from tcpdump for MESA sapp platform
+
+------
+
+```
+tcpdump version 4.8.1
+libpcap version 1.8.1
+OpenSSL 1.0.2k-fips 26 Jan 2017
+Usage: tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ]
+ [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
+ [ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ]
+ [ -Q in|out|inout ]
+ [ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ]
+ [ --immediate-mode ] [ -T type ] [ --version ] [ -V file ]
+ [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ]
+ [ -Z user ] [ expression ]
+----------------------------------------------------------------------------------------------.
+ The follow args is customized for tcpdump_mesa:
+ [ -a ] enable perceptive mode, can detect loss packet number.
+ [ -g greedy-seek ] enable greedy seek to most inner IP layer, for tunnel, embed protocol.
+ [ -k thread-id ] to assign sapp recv thread id, support multi-range, for example: 1,3,5,7.
+ [ -o offset ] to assign offset from MAC, for skip some low layer data, for example: vxlan=50, mac_in_mac=14.
+ [ -P port ] to assign sapp recv command port.
+ [ --vlan-as-mac-in-mac ] force VLAN to be analysed as MAC-IN-MAC format.
+```
+
+
+
+------
+
+ **2016-11-29 lijia**
+
+类似FTP方式, TCP连接传输命令, UDP连接传输实际捕包.
+
+1. 随机打开本端UDP未用端口, 默认12345, 如被占用, 顺序后延
+
+2. 与sapp建立TCP连接, 发送本端UDP监听端口
+
+3. 给sapp发送捕包控制命令, 传输BPF-filter过滤字符串
+
+4. 从UDP端口读取sapp捕获的数据包
+
+5. 调用tcpdump原版流程, 解析打印或写文件
+
+------
+
+ **2017-08-08 lijia**
+
+1. 增加指定线程号捕包功能
+
+------
+
+**2020-09-28** yangwei
+
+1. 优化greedy_seek模式行为,构造DLT_RAW类型的cbpf用于从IP头部开始匹配过滤规则
\ No newline at end of file
diff --git a/readme.txt b/readme.txt
deleted file mode 100644
index 120e131..0000000
--- a/readme.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
---------------------------------------------------------------
- 2016-11-29 lijia,
- 类似FTP方式, TCP连接传输命令, UDP连接传输实际捕包.
- 1-随机打开本端UDP未用端口, 默认12345, 如被占用, 顺序后延;
- 2-与sapp建立TCP连接, 发送本端UDP监听端口;
- 3-给sapp发送捕包控制命令, 传输BPF-filter过滤字符串,
-
- 4-从UDP端口读取sapp捕获的数据包;
- 5-调用tcpdump原版流程, 解析打印或写文件。
---------------------------------------------------------------
- 2017-08-08 lijia,
- 1-增加指定线程号捕包功能.
-*/
\ No newline at end of file
diff --git a/CHANGES b/src/CHANGES
similarity index 100%
rename from CHANGES
rename to src/CHANGES
diff --git a/CREDITS b/src/CREDITS
similarity index 100%
rename from CREDITS
rename to src/CREDITS
diff --git a/INSTALL.txt b/src/INSTALL.txt
similarity index 100%
rename from INSTALL.txt
rename to src/INSTALL.txt
diff --git a/LICENSE b/src/LICENSE
similarity index 100%
rename from LICENSE
rename to src/LICENSE
diff --git a/Makefile-devel-adds b/src/Makefile-devel-adds
similarity index 100%
rename from Makefile-devel-adds
rename to src/Makefile-devel-adds
diff --git a/Makefile.in b/src/Makefile.in
similarity index 100%
rename from Makefile.in
rename to src/Makefile.in
diff --git a/README.md b/src/README.md
similarity index 100%
rename from README.md
rename to src/README.md
diff --git a/Readme.Win32 b/src/Readme.Win32
similarity index 100%
rename from Readme.Win32
rename to src/Readme.Win32
diff --git a/VERSION b/src/VERSION
similarity index 100%
rename from VERSION
rename to src/VERSION
diff --git a/aclocal.m4 b/src/aclocal.m4
similarity index 100%
rename from aclocal.m4
rename to src/aclocal.m4
diff --git a/addrtoname.c b/src/addrtoname.c
similarity index 100%
rename from addrtoname.c
rename to src/addrtoname.c
diff --git a/addrtoname.h b/src/addrtoname.h
similarity index 100%
rename from addrtoname.h
rename to src/addrtoname.h
diff --git a/addrtostr.c b/src/addrtostr.c
similarity index 100%
rename from addrtostr.c
rename to src/addrtostr.c
diff --git a/addrtostr.h b/src/addrtostr.h
similarity index 100%
rename from addrtostr.h
rename to src/addrtostr.h
diff --git a/af.c b/src/af.c
similarity index 100%
rename from af.c
rename to src/af.c
diff --git a/af.h b/src/af.h
similarity index 100%
rename from af.h
rename to src/af.h
diff --git a/ah.h b/src/ah.h
similarity index 100%
rename from ah.h
rename to src/ah.h
diff --git a/appletalk.h b/src/appletalk.h
similarity index 100%
rename from appletalk.h
rename to src/appletalk.h
diff --git a/ascii_strcasecmp.c b/src/ascii_strcasecmp.c
similarity index 100%
rename from ascii_strcasecmp.c
rename to src/ascii_strcasecmp.c
diff --git a/ascii_strcasecmp.h b/src/ascii_strcasecmp.h
similarity index 100%
rename from ascii_strcasecmp.h
rename to src/ascii_strcasecmp.h
diff --git a/atime.awk b/src/atime.awk
similarity index 100%
rename from atime.awk
rename to src/atime.awk
diff --git a/atm.h b/src/atm.h
similarity index 100%
rename from atm.h
rename to src/atm.h
diff --git a/bpf_dump.c b/src/bpf_dump.c
similarity index 100%
rename from bpf_dump.c
rename to src/bpf_dump.c
diff --git a/chdlc.h b/src/chdlc.h
similarity index 100%
rename from chdlc.h
rename to src/chdlc.h
diff --git a/checksum.c b/src/checksum.c
similarity index 100%
rename from checksum.c
rename to src/checksum.c
diff --git a/config.guess b/src/config.guess
similarity index 100%
rename from config.guess
rename to src/config.guess
diff --git a/config.h.in b/src/config.h.in
similarity index 100%
rename from config.h.in
rename to src/config.h.in
diff --git a/config.sub b/src/config.sub
similarity index 100%
rename from config.sub
rename to src/config.sub
diff --git a/configure b/src/configure
old mode 100644
new mode 100755
similarity index 100%
rename from configure
rename to src/configure
diff --git a/configure.in b/src/configure.in
similarity index 100%
rename from configure.in
rename to src/configure.in
diff --git a/cpack.c b/src/cpack.c
similarity index 100%
rename from cpack.c
rename to src/cpack.c
diff --git a/cpack.h b/src/cpack.h
similarity index 100%
rename from cpack.h
rename to src/cpack.h
diff --git a/ether.h b/src/ether.h
similarity index 100%
rename from ether.h
rename to src/ether.h
diff --git a/ethertype.h b/src/ethertype.h
similarity index 100%
rename from ethertype.h
rename to src/ethertype.h
diff --git a/extract.h b/src/extract.h
similarity index 100%
rename from extract.h
rename to src/extract.h
diff --git a/getopt_long.h b/src/getopt_long.h
similarity index 100%
rename from getopt_long.h
rename to src/getopt_long.h
diff --git a/gmpls.c b/src/gmpls.c
similarity index 100%
rename from gmpls.c
rename to src/gmpls.c
diff --git a/gmpls.h b/src/gmpls.h
similarity index 100%
rename from gmpls.h
rename to src/gmpls.h
diff --git a/gmt2local.c b/src/gmt2local.c
similarity index 100%
rename from gmt2local.c
rename to src/gmt2local.c
diff --git a/gmt2local.h b/src/gmt2local.h
similarity index 100%
rename from gmt2local.h
rename to src/gmt2local.h
diff --git a/in_cksum.c b/src/in_cksum.c
similarity index 100%
rename from in_cksum.c
rename to src/in_cksum.c
diff --git a/install-sh b/src/install-sh
similarity index 100%
rename from install-sh
rename to src/install-sh
diff --git a/interface.h b/src/interface.h
similarity index 100%
rename from interface.h
rename to src/interface.h
diff --git a/ip.h b/src/ip.h
similarity index 100%
rename from ip.h
rename to src/ip.h
diff --git a/ip6.h b/src/ip6.h
similarity index 100%
rename from ip6.h
rename to src/ip6.h
diff --git a/ipproto.c b/src/ipproto.c
similarity index 100%
rename from ipproto.c
rename to src/ipproto.c
diff --git a/ipproto.h b/src/ipproto.h
similarity index 100%
rename from ipproto.h
rename to src/ipproto.h
diff --git a/l2vpn.c b/src/l2vpn.c
similarity index 100%
rename from l2vpn.c
rename to src/l2vpn.c
diff --git a/l2vpn.h b/src/l2vpn.h
similarity index 100%
rename from l2vpn.h
rename to src/l2vpn.h
diff --git a/lbl/os-osf4.h b/src/lbl/os-osf4.h
similarity index 100%
rename from lbl/os-osf4.h
rename to src/lbl/os-osf4.h
diff --git a/lbl/os-solaris2.h b/src/lbl/os-solaris2.h
similarity index 100%
rename from lbl/os-solaris2.h
rename to src/lbl/os-solaris2.h
diff --git a/lbl/os-sunos4.h b/src/lbl/os-sunos4.h
similarity index 100%
rename from lbl/os-sunos4.h
rename to src/lbl/os-sunos4.h
diff --git a/lbl/os-ultrix4.h b/src/lbl/os-ultrix4.h
similarity index 100%
rename from lbl/os-ultrix4.h
rename to src/lbl/os-ultrix4.h
diff --git a/llc.h b/src/llc.h
similarity index 100%
rename from llc.h
rename to src/llc.h
diff --git a/machdep.c b/src/machdep.c
similarity index 100%
rename from machdep.c
rename to src/machdep.c
diff --git a/machdep.h b/src/machdep.h
similarity index 100%
rename from machdep.h
rename to src/machdep.h
diff --git a/makemib b/src/makemib
similarity index 100%
rename from makemib
rename to src/makemib
diff --git a/mesa_net.h b/src/mesa_net.h
similarity index 100%
rename from mesa_net.h
rename to src/mesa_net.h
diff --git a/mesa_pkt_dump.h b/src/mesa_pkt_dump.h
similarity index 100%
rename from mesa_pkt_dump.h
rename to src/mesa_pkt_dump.h
diff --git a/mib.h b/src/mib.h
similarity index 100%
rename from mib.h
rename to src/mib.h
diff --git a/missing/datalinks.c b/src/missing/datalinks.c
similarity index 100%
rename from missing/datalinks.c
rename to src/missing/datalinks.c
diff --git a/missing/dlnames.c b/src/missing/dlnames.c
similarity index 100%
rename from missing/dlnames.c
rename to src/missing/dlnames.c
diff --git a/missing/getopt_long.c b/src/missing/getopt_long.c
similarity index 100%
rename from missing/getopt_long.c
rename to src/missing/getopt_long.c
diff --git a/missing/snprintf.c b/src/missing/snprintf.c
similarity index 100%
rename from missing/snprintf.c
rename to src/missing/snprintf.c
diff --git a/missing/strdup.c b/src/missing/strdup.c
similarity index 100%
rename from missing/strdup.c
rename to src/missing/strdup.c
diff --git a/missing/strlcat.c b/src/missing/strlcat.c
similarity index 100%
rename from missing/strlcat.c
rename to src/missing/strlcat.c
diff --git a/missing/strlcpy.c b/src/missing/strlcpy.c
similarity index 100%
rename from missing/strlcpy.c
rename to src/missing/strlcpy.c
diff --git a/missing/strsep.c b/src/missing/strsep.c
similarity index 100%
rename from missing/strsep.c
rename to src/missing/strsep.c
diff --git a/mkdep b/src/mkdep
similarity index 100%
rename from mkdep
rename to src/mkdep
diff --git a/mpls.h b/src/mpls.h
similarity index 100%
rename from mpls.h
rename to src/mpls.h
diff --git a/nameser.h b/src/nameser.h
similarity index 100%
rename from nameser.h
rename to src/nameser.h
diff --git a/net_common.c b/src/net_common.c
similarity index 100%
rename from net_common.c
rename to src/net_common.c
diff --git a/netdissect-stdinc.h b/src/netdissect-stdinc.h
similarity index 100%
rename from netdissect-stdinc.h
rename to src/netdissect-stdinc.h
diff --git a/netdissect.h b/src/netdissect.h
similarity index 100%
rename from netdissect.h
rename to src/netdissect.h
diff --git a/nfs.h b/src/nfs.h
similarity index 100%
rename from nfs.h
rename to src/nfs.h
diff --git a/nfsfh.h b/src/nfsfh.h
similarity index 100%
rename from nfsfh.h
rename to src/nfsfh.h
diff --git a/nlpid.c b/src/nlpid.c
similarity index 100%
rename from nlpid.c
rename to src/nlpid.c
diff --git a/nlpid.h b/src/nlpid.h
similarity index 100%
rename from nlpid.h
rename to src/nlpid.h
diff --git a/openflow.h b/src/openflow.h
similarity index 100%
rename from openflow.h
rename to src/openflow.h
diff --git a/ospf.h b/src/ospf.h
similarity index 100%
rename from ospf.h
rename to src/ospf.h
diff --git a/oui.c b/src/oui.c
similarity index 100%
rename from oui.c
rename to src/oui.c
diff --git a/oui.h b/src/oui.h
similarity index 100%
rename from oui.h
rename to src/oui.h
diff --git a/packetdat.awk b/src/packetdat.awk
similarity index 100%
rename from packetdat.awk
rename to src/packetdat.awk
diff --git a/parsenfsfh.c b/src/parsenfsfh.c
similarity index 100%
rename from parsenfsfh.c
rename to src/parsenfsfh.c
diff --git a/pcap-missing.h b/src/pcap-missing.h
similarity index 100%
rename from pcap-missing.h
rename to src/pcap-missing.h
diff --git a/pcap_dump_ftell.c b/src/pcap_dump_ftell.c
similarity index 100%
rename from pcap_dump_ftell.c
rename to src/pcap_dump_ftell.c
diff --git a/ppp.h b/src/ppp.h
similarity index 100%
rename from ppp.h
rename to src/ppp.h
diff --git a/print-802_11.c b/src/print-802_11.c
similarity index 100%
rename from print-802_11.c
rename to src/print-802_11.c
diff --git a/print-802_15_4.c b/src/print-802_15_4.c
similarity index 100%
rename from print-802_15_4.c
rename to src/print-802_15_4.c
diff --git a/print-ah.c b/src/print-ah.c
similarity index 100%
rename from print-ah.c
rename to src/print-ah.c
diff --git a/print-ahcp.c b/src/print-ahcp.c
similarity index 100%
rename from print-ahcp.c
rename to src/print-ahcp.c
diff --git a/print-aodv.c b/src/print-aodv.c
similarity index 100%
rename from print-aodv.c
rename to src/print-aodv.c
diff --git a/print-aoe.c b/src/print-aoe.c
similarity index 100%
rename from print-aoe.c
rename to src/print-aoe.c
diff --git a/print-ap1394.c b/src/print-ap1394.c
similarity index 100%
rename from print-ap1394.c
rename to src/print-ap1394.c
diff --git a/print-arcnet.c b/src/print-arcnet.c
similarity index 100%
rename from print-arcnet.c
rename to src/print-arcnet.c
diff --git a/print-arp.c b/src/print-arp.c
similarity index 100%
rename from print-arp.c
rename to src/print-arp.c
diff --git a/print-ascii.c b/src/print-ascii.c
similarity index 100%
rename from print-ascii.c
rename to src/print-ascii.c
diff --git a/print-atalk.c b/src/print-atalk.c
similarity index 100%
rename from print-atalk.c
rename to src/print-atalk.c
diff --git a/print-atm.c b/src/print-atm.c
similarity index 100%
rename from print-atm.c
rename to src/print-atm.c
diff --git a/print-babel.c b/src/print-babel.c
similarity index 100%
rename from print-babel.c
rename to src/print-babel.c
diff --git a/print-beep.c b/src/print-beep.c
similarity index 100%
rename from print-beep.c
rename to src/print-beep.c
diff --git a/print-bfd.c b/src/print-bfd.c
similarity index 100%
rename from print-bfd.c
rename to src/print-bfd.c
diff --git a/print-bgp.c b/src/print-bgp.c
similarity index 100%
rename from print-bgp.c
rename to src/print-bgp.c
diff --git a/print-bootp.c b/src/print-bootp.c
similarity index 100%
rename from print-bootp.c
rename to src/print-bootp.c
diff --git a/print-bt.c b/src/print-bt.c
similarity index 100%
rename from print-bt.c
rename to src/print-bt.c
diff --git a/print-calm-fast.c b/src/print-calm-fast.c
similarity index 100%
rename from print-calm-fast.c
rename to src/print-calm-fast.c
diff --git a/print-carp.c b/src/print-carp.c
similarity index 100%
rename from print-carp.c
rename to src/print-carp.c
diff --git a/print-cdp.c b/src/print-cdp.c
similarity index 100%
rename from print-cdp.c
rename to src/print-cdp.c
diff --git a/print-cfm.c b/src/print-cfm.c
similarity index 100%
rename from print-cfm.c
rename to src/print-cfm.c
diff --git a/print-chdlc.c b/src/print-chdlc.c
similarity index 100%
rename from print-chdlc.c
rename to src/print-chdlc.c
diff --git a/print-cip.c b/src/print-cip.c
similarity index 100%
rename from print-cip.c
rename to src/print-cip.c
diff --git a/print-cnfp.c b/src/print-cnfp.c
similarity index 100%
rename from print-cnfp.c
rename to src/print-cnfp.c
diff --git a/print-dccp.c b/src/print-dccp.c
similarity index 100%
rename from print-dccp.c
rename to src/print-dccp.c
diff --git a/print-decnet.c b/src/print-decnet.c
similarity index 100%
rename from print-decnet.c
rename to src/print-decnet.c
diff --git a/print-dhcp6.c b/src/print-dhcp6.c
similarity index 100%
rename from print-dhcp6.c
rename to src/print-dhcp6.c
diff --git a/print-domain.c b/src/print-domain.c
similarity index 100%
rename from print-domain.c
rename to src/print-domain.c
diff --git a/print-dtp.c b/src/print-dtp.c
similarity index 100%
rename from print-dtp.c
rename to src/print-dtp.c
diff --git a/print-dvmrp.c b/src/print-dvmrp.c
similarity index 100%
rename from print-dvmrp.c
rename to src/print-dvmrp.c
diff --git a/print-eap.c b/src/print-eap.c
similarity index 100%
rename from print-eap.c
rename to src/print-eap.c
diff --git a/print-egp.c b/src/print-egp.c
similarity index 100%
rename from print-egp.c
rename to src/print-egp.c
diff --git a/print-eigrp.c b/src/print-eigrp.c
similarity index 100%
rename from print-eigrp.c
rename to src/print-eigrp.c
diff --git a/print-enc.c b/src/print-enc.c
similarity index 100%
rename from print-enc.c
rename to src/print-enc.c
diff --git a/print-esp.c b/src/print-esp.c
similarity index 100%
rename from print-esp.c
rename to src/print-esp.c
diff --git a/print-ether.c b/src/print-ether.c
similarity index 100%
rename from print-ether.c
rename to src/print-ether.c
diff --git a/print-fddi.c b/src/print-fddi.c
similarity index 100%
rename from print-fddi.c
rename to src/print-fddi.c
diff --git a/print-forces.c b/src/print-forces.c
similarity index 100%
rename from print-forces.c
rename to src/print-forces.c
diff --git a/print-fr.c b/src/print-fr.c
similarity index 100%
rename from print-fr.c
rename to src/print-fr.c
diff --git a/print-frag6.c b/src/print-frag6.c
similarity index 100%
rename from print-frag6.c
rename to src/print-frag6.c
diff --git a/print-ftp.c b/src/print-ftp.c
similarity index 100%
rename from print-ftp.c
rename to src/print-ftp.c
diff --git a/print-geneve.c b/src/print-geneve.c
similarity index 100%
rename from print-geneve.c
rename to src/print-geneve.c
diff --git a/print-geonet.c b/src/print-geonet.c
similarity index 100%
rename from print-geonet.c
rename to src/print-geonet.c
diff --git a/print-gre.c b/src/print-gre.c
similarity index 100%
rename from print-gre.c
rename to src/print-gre.c
diff --git a/print-hncp.c b/src/print-hncp.c
similarity index 100%
rename from print-hncp.c
rename to src/print-hncp.c
diff --git a/print-hsrp.c b/src/print-hsrp.c
similarity index 100%
rename from print-hsrp.c
rename to src/print-hsrp.c
diff --git a/print-http.c b/src/print-http.c
similarity index 100%
rename from print-http.c
rename to src/print-http.c
diff --git a/print-icmp.c b/src/print-icmp.c
similarity index 100%
rename from print-icmp.c
rename to src/print-icmp.c
diff --git a/print-icmp6.c b/src/print-icmp6.c
similarity index 100%
rename from print-icmp6.c
rename to src/print-icmp6.c
diff --git a/print-igmp.c b/src/print-igmp.c
similarity index 100%
rename from print-igmp.c
rename to src/print-igmp.c
diff --git a/print-igrp.c b/src/print-igrp.c
similarity index 100%
rename from print-igrp.c
rename to src/print-igrp.c
diff --git a/print-ip.c b/src/print-ip.c
similarity index 100%
rename from print-ip.c
rename to src/print-ip.c
diff --git a/print-ip6.c b/src/print-ip6.c
similarity index 100%
rename from print-ip6.c
rename to src/print-ip6.c
diff --git a/print-ip6opts.c b/src/print-ip6opts.c
similarity index 100%
rename from print-ip6opts.c
rename to src/print-ip6opts.c
diff --git a/print-ipcomp.c b/src/print-ipcomp.c
similarity index 100%
rename from print-ipcomp.c
rename to src/print-ipcomp.c
diff --git a/print-ipfc.c b/src/print-ipfc.c
similarity index 100%
rename from print-ipfc.c
rename to src/print-ipfc.c
diff --git a/print-ipnet.c b/src/print-ipnet.c
similarity index 100%
rename from print-ipnet.c
rename to src/print-ipnet.c
diff --git a/print-ipx.c b/src/print-ipx.c
similarity index 100%
rename from print-ipx.c
rename to src/print-ipx.c
diff --git a/print-isakmp.c b/src/print-isakmp.c
similarity index 100%
rename from print-isakmp.c
rename to src/print-isakmp.c
diff --git a/print-isoclns.c b/src/print-isoclns.c
similarity index 100%
rename from print-isoclns.c
rename to src/print-isoclns.c
diff --git a/print-juniper.c b/src/print-juniper.c
similarity index 100%
rename from print-juniper.c
rename to src/print-juniper.c
diff --git a/print-krb.c b/src/print-krb.c
similarity index 100%
rename from print-krb.c
rename to src/print-krb.c
diff --git a/print-l2tp.c b/src/print-l2tp.c
similarity index 100%
rename from print-l2tp.c
rename to src/print-l2tp.c
diff --git a/print-lane.c b/src/print-lane.c
similarity index 100%
rename from print-lane.c
rename to src/print-lane.c
diff --git a/print-ldp.c b/src/print-ldp.c
similarity index 100%
rename from print-ldp.c
rename to src/print-ldp.c
diff --git a/print-lisp.c b/src/print-lisp.c
similarity index 100%
rename from print-lisp.c
rename to src/print-lisp.c
diff --git a/print-llc.c b/src/print-llc.c
similarity index 100%
rename from print-llc.c
rename to src/print-llc.c
diff --git a/print-lldp.c b/src/print-lldp.c
similarity index 100%
rename from print-lldp.c
rename to src/print-lldp.c
diff --git a/print-lmp.c b/src/print-lmp.c
similarity index 100%
rename from print-lmp.c
rename to src/print-lmp.c
diff --git a/print-loopback.c b/src/print-loopback.c
similarity index 100%
rename from print-loopback.c
rename to src/print-loopback.c
diff --git a/print-lspping.c b/src/print-lspping.c
similarity index 100%
rename from print-lspping.c
rename to src/print-lspping.c
diff --git a/print-lwapp.c b/src/print-lwapp.c
similarity index 100%
rename from print-lwapp.c
rename to src/print-lwapp.c
diff --git a/print-lwres.c b/src/print-lwres.c
similarity index 100%
rename from print-lwres.c
rename to src/print-lwres.c
diff --git a/print-m3ua.c b/src/print-m3ua.c
similarity index 100%
rename from print-m3ua.c
rename to src/print-m3ua.c
diff --git a/print-medsa.c b/src/print-medsa.c
similarity index 100%
rename from print-medsa.c
rename to src/print-medsa.c
diff --git a/print-mobile.c b/src/print-mobile.c
similarity index 100%
rename from print-mobile.c
rename to src/print-mobile.c
diff --git a/print-mobility.c b/src/print-mobility.c
similarity index 100%
rename from print-mobility.c
rename to src/print-mobility.c
diff --git a/print-mpcp.c b/src/print-mpcp.c
similarity index 100%
rename from print-mpcp.c
rename to src/print-mpcp.c
diff --git a/print-mpls.c b/src/print-mpls.c
similarity index 100%
rename from print-mpls.c
rename to src/print-mpls.c
diff --git a/print-mptcp.c b/src/print-mptcp.c
similarity index 100%
rename from print-mptcp.c
rename to src/print-mptcp.c
diff --git a/print-msdp.c b/src/print-msdp.c
similarity index 100%
rename from print-msdp.c
rename to src/print-msdp.c
diff --git a/print-msnlb.c b/src/print-msnlb.c
similarity index 100%
rename from print-msnlb.c
rename to src/print-msnlb.c
diff --git a/print-nflog.c b/src/print-nflog.c
similarity index 100%
rename from print-nflog.c
rename to src/print-nflog.c
diff --git a/print-nfs.c b/src/print-nfs.c
similarity index 100%
rename from print-nfs.c
rename to src/print-nfs.c
diff --git a/print-nsh.c b/src/print-nsh.c
similarity index 100%
rename from print-nsh.c
rename to src/print-nsh.c
diff --git a/print-ntp.c b/src/print-ntp.c
similarity index 100%
rename from print-ntp.c
rename to src/print-ntp.c
diff --git a/print-null.c b/src/print-null.c
similarity index 100%
rename from print-null.c
rename to src/print-null.c
diff --git a/print-olsr.c b/src/print-olsr.c
similarity index 100%
rename from print-olsr.c
rename to src/print-olsr.c
diff --git a/print-openflow-1.0.c b/src/print-openflow-1.0.c
similarity index 100%
rename from print-openflow-1.0.c
rename to src/print-openflow-1.0.c
diff --git a/print-openflow.c b/src/print-openflow.c
similarity index 100%
rename from print-openflow.c
rename to src/print-openflow.c
diff --git a/print-ospf.c b/src/print-ospf.c
similarity index 100%
rename from print-ospf.c
rename to src/print-ospf.c
diff --git a/print-ospf6.c b/src/print-ospf6.c
similarity index 100%
rename from print-ospf6.c
rename to src/print-ospf6.c
diff --git a/print-otv.c b/src/print-otv.c
similarity index 100%
rename from print-otv.c
rename to src/print-otv.c
diff --git a/print-pflog.c b/src/print-pflog.c
similarity index 100%
rename from print-pflog.c
rename to src/print-pflog.c
diff --git a/print-pgm.c b/src/print-pgm.c
similarity index 100%
rename from print-pgm.c
rename to src/print-pgm.c
diff --git a/print-pim.c b/src/print-pim.c
similarity index 100%
rename from print-pim.c
rename to src/print-pim.c
diff --git a/print-pktap.c b/src/print-pktap.c
similarity index 100%
rename from print-pktap.c
rename to src/print-pktap.c
diff --git a/print-ppi.c b/src/print-ppi.c
similarity index 100%
rename from print-ppi.c
rename to src/print-ppi.c
diff --git a/print-ppp.c b/src/print-ppp.c
similarity index 100%
rename from print-ppp.c
rename to src/print-ppp.c
diff --git a/print-pppoe.c b/src/print-pppoe.c
similarity index 100%
rename from print-pppoe.c
rename to src/print-pppoe.c
diff --git a/print-pptp.c b/src/print-pptp.c
similarity index 100%
rename from print-pptp.c
rename to src/print-pptp.c
diff --git a/print-radius.c b/src/print-radius.c
similarity index 100%
rename from print-radius.c
rename to src/print-radius.c
diff --git a/print-raw.c b/src/print-raw.c
similarity index 100%
rename from print-raw.c
rename to src/print-raw.c
diff --git a/print-resp.c b/src/print-resp.c
similarity index 100%
rename from print-resp.c
rename to src/print-resp.c
diff --git a/print-rip.c b/src/print-rip.c
similarity index 100%
rename from print-rip.c
rename to src/print-rip.c
diff --git a/print-ripng.c b/src/print-ripng.c
similarity index 100%
rename from print-ripng.c
rename to src/print-ripng.c
diff --git a/print-rpki-rtr.c b/src/print-rpki-rtr.c
similarity index 100%
rename from print-rpki-rtr.c
rename to src/print-rpki-rtr.c
diff --git a/print-rrcp.c b/src/print-rrcp.c
similarity index 100%
rename from print-rrcp.c
rename to src/print-rrcp.c
diff --git a/print-rsvp.c b/src/print-rsvp.c
similarity index 100%
rename from print-rsvp.c
rename to src/print-rsvp.c
diff --git a/print-rt6.c b/src/print-rt6.c
similarity index 100%
rename from print-rt6.c
rename to src/print-rt6.c
diff --git a/print-rtsp.c b/src/print-rtsp.c
similarity index 100%
rename from print-rtsp.c
rename to src/print-rtsp.c
diff --git a/print-rx.c b/src/print-rx.c
similarity index 100%
rename from print-rx.c
rename to src/print-rx.c
diff --git a/print-sctp.c b/src/print-sctp.c
similarity index 100%
rename from print-sctp.c
rename to src/print-sctp.c
diff --git a/print-sflow.c b/src/print-sflow.c
similarity index 100%
rename from print-sflow.c
rename to src/print-sflow.c
diff --git a/print-sip.c b/src/print-sip.c
similarity index 100%
rename from print-sip.c
rename to src/print-sip.c
diff --git a/print-sl.c b/src/print-sl.c
similarity index 100%
rename from print-sl.c
rename to src/print-sl.c
diff --git a/print-sll.c b/src/print-sll.c
similarity index 100%
rename from print-sll.c
rename to src/print-sll.c
diff --git a/print-slow.c b/src/print-slow.c
similarity index 100%
rename from print-slow.c
rename to src/print-slow.c
diff --git a/print-smb.c b/src/print-smb.c
similarity index 100%
rename from print-smb.c
rename to src/print-smb.c
diff --git a/print-smtp.c b/src/print-smtp.c
similarity index 100%
rename from print-smtp.c
rename to src/print-smtp.c
diff --git a/print-snmp.c b/src/print-snmp.c
similarity index 100%
rename from print-snmp.c
rename to src/print-snmp.c
diff --git a/print-stp.c b/src/print-stp.c
similarity index 100%
rename from print-stp.c
rename to src/print-stp.c
diff --git a/print-sunatm.c b/src/print-sunatm.c
similarity index 100%
rename from print-sunatm.c
rename to src/print-sunatm.c
diff --git a/print-sunrpc.c b/src/print-sunrpc.c
similarity index 100%
rename from print-sunrpc.c
rename to src/print-sunrpc.c
diff --git a/print-symantec.c b/src/print-symantec.c
similarity index 100%
rename from print-symantec.c
rename to src/print-symantec.c
diff --git a/print-syslog.c b/src/print-syslog.c
similarity index 100%
rename from print-syslog.c
rename to src/print-syslog.c
diff --git a/print-tcp.c b/src/print-tcp.c
similarity index 100%
rename from print-tcp.c
rename to src/print-tcp.c
diff --git a/print-telnet.c b/src/print-telnet.c
similarity index 100%
rename from print-telnet.c
rename to src/print-telnet.c
diff --git a/print-tftp.c b/src/print-tftp.c
similarity index 100%
rename from print-tftp.c
rename to src/print-tftp.c
diff --git a/print-timed.c b/src/print-timed.c
similarity index 100%
rename from print-timed.c
rename to src/print-timed.c
diff --git a/print-tipc.c b/src/print-tipc.c
similarity index 100%
rename from print-tipc.c
rename to src/print-tipc.c
diff --git a/print-token.c b/src/print-token.c
similarity index 100%
rename from print-token.c
rename to src/print-token.c
diff --git a/print-udld.c b/src/print-udld.c
similarity index 100%
rename from print-udld.c
rename to src/print-udld.c
diff --git a/print-udp.c b/src/print-udp.c
similarity index 100%
rename from print-udp.c
rename to src/print-udp.c
diff --git a/print-usb.c b/src/print-usb.c
similarity index 100%
rename from print-usb.c
rename to src/print-usb.c
diff --git a/print-vjc.c b/src/print-vjc.c
similarity index 100%
rename from print-vjc.c
rename to src/print-vjc.c
diff --git a/print-vqp.c b/src/print-vqp.c
similarity index 100%
rename from print-vqp.c
rename to src/print-vqp.c
diff --git a/print-vrrp.c b/src/print-vrrp.c
similarity index 100%
rename from print-vrrp.c
rename to src/print-vrrp.c
diff --git a/print-vtp.c b/src/print-vtp.c
similarity index 100%
rename from print-vtp.c
rename to src/print-vtp.c
diff --git a/print-vxlan-gpe.c b/src/print-vxlan-gpe.c
similarity index 100%
rename from print-vxlan-gpe.c
rename to src/print-vxlan-gpe.c
diff --git a/print-vxlan.c b/src/print-vxlan.c
similarity index 100%
rename from print-vxlan.c
rename to src/print-vxlan.c
diff --git a/print-wb.c b/src/print-wb.c
similarity index 100%
rename from print-wb.c
rename to src/print-wb.c
diff --git a/print-zephyr.c b/src/print-zephyr.c
similarity index 100%
rename from print-zephyr.c
rename to src/print-zephyr.c
diff --git a/print-zeromq.c b/src/print-zeromq.c
similarity index 100%
rename from print-zeromq.c
rename to src/print-zeromq.c
diff --git a/print.c b/src/print.c
similarity index 100%
rename from print.c
rename to src/print.c
diff --git a/print.h b/src/print.h
similarity index 100%
rename from print.h
rename to src/print.h
diff --git a/rpc_auth.h b/src/rpc_auth.h
similarity index 100%
rename from rpc_auth.h
rename to src/rpc_auth.h
diff --git a/rpc_msg.h b/src/rpc_msg.h
similarity index 100%
rename from rpc_msg.h
rename to src/rpc_msg.h
diff --git a/rpl.h b/src/rpl.h
similarity index 100%
rename from rpl.h
rename to src/rpl.h
diff --git a/send-ack.awk b/src/send-ack.awk
similarity index 100%
rename from send-ack.awk
rename to src/send-ack.awk
diff --git a/setsignal.c b/src/setsignal.c
similarity index 100%
rename from setsignal.c
rename to src/setsignal.c
diff --git a/setsignal.h b/src/setsignal.h
similarity index 100%
rename from setsignal.h
rename to src/setsignal.h
diff --git a/signature.c b/src/signature.c
similarity index 100%
rename from signature.c
rename to src/signature.c
diff --git a/signature.h b/src/signature.h
similarity index 100%
rename from signature.h
rename to src/signature.h
diff --git a/slcompress.h b/src/slcompress.h
similarity index 100%
rename from slcompress.h
rename to src/slcompress.h
diff --git a/smb.h b/src/smb.h
similarity index 100%
rename from smb.h
rename to src/smb.h
diff --git a/smbutil.c b/src/smbutil.c
similarity index 100%
rename from smbutil.c
rename to src/smbutil.c
diff --git a/stime.awk b/src/stime.awk
similarity index 100%
rename from stime.awk
rename to src/stime.awk
diff --git a/stream_base.h b/src/stream_base.h
similarity index 100%
rename from stream_base.h
rename to src/stream_base.h
diff --git a/strtoaddr.c b/src/strtoaddr.c
similarity index 100%
rename from strtoaddr.c
rename to src/strtoaddr.c
diff --git a/strtoaddr.h b/src/strtoaddr.h
similarity index 100%
rename from strtoaddr.h
rename to src/strtoaddr.h
diff --git a/tcp.h b/src/tcp.h
similarity index 100%
rename from tcp.h
rename to src/tcp.h
diff --git a/tcpdump.1.in b/src/tcpdump.1.in
similarity index 100%
rename from tcpdump.1.in
rename to src/tcpdump.1.in
diff --git a/tcpdump.c b/src/tcpdump.c
similarity index 97%
rename from tcpdump.c
rename to src/tcpdump.c
index ae20036..8029e28 100644
--- a/tcpdump.c
+++ b/src/tcpdump.c
@@ -44,7 +44,6 @@
#define MESA_DUMP (1)
#if MESA_DUMP
#include "mesa_pkt_dump.h"
-const int tcpdump_mesa_version_VERSION_20181114 = 20181114;
int tcpdump_data_offset = 0; /* 鐢ㄤ簬璺宠繃鏌愪簺搴曞眰鏁版嵁, 濡倂xlan, 鍙互鐩存帴鑾峰彇鎴栬缃繃婊ゆ潯浠剁湅vxlan鐨勫唴灞傛暟鎹寘鍐呭 */
unsigned char tcpdump_thread_index_array[64]; /* 寮鍚崟鍖呯嚎绋媔d鏁扮粍, 闈犻暱搴﹀喅瀹歩d鏁伴噺, 姣忎釜鍗1瀛楄妭, 鍛戒护琛岃緭鍏ユ敮鎸侀楀彿鍒嗛殧 */
int tcpdump_thread_index_array_num = 0;
@@ -151,6 +150,12 @@ The Regents of the University of California. All rights reserved.\n";
#include "print.h"
+#ifdef GIT_VERSION
+const char *tcpdump_mesa_version = (const char *)GIT_VERSION;
+#else
+const char *tcpdump_mesa_version = "GIT_VERSION_UNKNOWN";
+#endif
+
#ifndef PATH_MAX
#define PATH_MAX 1024
#endif
@@ -986,7 +991,7 @@ static int pkt_dump_recv_ack(int connfd)
*/
static void *detect_sapp_alive_thread(void *arg)
{
- int tcp_cmd_fd = (int)arg;
+ int tcp_cmd_fd = (int)(long)arg;
int ret;
char nouse_buf[1500];
@@ -1156,7 +1161,7 @@ static int MESA_dump_start(unsigned short udp_rcv_port, unsigned short sapp_cmd_
exit(1);
}
- pthread_create(&pid, NULL, detect_sapp_alive_thread, (void *)tcp_cmd_fd);
+ pthread_create(&pid, NULL, detect_sapp_alive_thread, (void *)(long)tcp_cmd_fd);
return tcp_cmd_fd;
}
@@ -1272,6 +1277,7 @@ static void MESA_dump(pcap_handler callback, u_char *pcap_userdata, char *filter
/* 濡傛灉鏈-g鍙傛暟, 涓斿啓浜-w, 鍗抽渶瑕佷繚瀛樺師濮嬪寘鍒版枃浠, 鍒欎笉杩涜seek鎿嶄綔,
鍙槸鍦ㄦ病鏈-w 鍙傛暟鏃, 璁﹖cpdump鑳芥墦鍗板嚭鍖呯殑淇℃伅, 鎵嶈繘琛宻eek鎿嶄綔.
*/
+ #if 0
if((greedy_seek_flag != 0) && (dump_to_file_flag == 0)){
inner_pkt_len = MESA_dump_seek_to_inner(pkt_buf, pkt_len);
if(inner_pkt_len < 0){
@@ -1283,6 +1289,10 @@ static void MESA_dump(pcap_handler callback, u_char *pcap_userdata, char *filter
phony_pcap_hdr.caplen = pkt_len;
phony_pcap_hdr.len = pkt_len;
}
+ #else
+ phony_pcap_hdr.caplen = pkt_len;
+ phony_pcap_hdr.len = pkt_len;
+ #endif
gettimeofday(&phony_pcap_hdr.ts, NULL);
callback(pcap_userdata, &phony_pcap_hdr, pkt_buf); /* NOTE: 鍒峰睆妯″紡璋冪敤print_packet(); 鎹曞寘妯″紡璋冪敤: dump_packet() */
@@ -1305,7 +1315,6 @@ done:
#endif
static struct bpf_program fcode; /* lijia modify, 鍋氫负鍏ㄥ眬鍙橀噺, 鍏朵粬鍑芥暟涓皟鐢 */
-
int
main(int argc, char **argv)
{
@@ -2274,6 +2283,15 @@ main(int argc, char **argv)
if (pcap_setfilter(pd, &fcode) < 0)
error("%s", pcap_geterr(pd));
}
+ else
+ {
+ pcap_freecode(&fcode);
+ if(pcap_compile_nopcap(Oflag, DLT_RAW, &fcode, cmdbuf, 0, netmask) < 0){
+ printf("Compile pcap filter %s error\n", cmdbuf);
+ return -1;
+ }
+ }
+
#else
if (pcap_setfilter(pd, &fcode) < 0)
error("%s", pcap_geterr(pd));
@@ -2948,20 +2966,45 @@ dump_packet(u_char *user, const struct pcap_pkthdr *h, const u_char *sp)
static void
MESA_dump_packet(u_char *user, const struct pcap_pkthdr *h, const u_char *raw_pkt)
{
- char modify_pkt_buf[2048];
+ //char modify_pkt_buf[2048];
int inner_pkt_len;
++packets_captured;
++infodelay;
- memcpy(modify_pkt_buf, raw_pkt, h->caplen >= 2048? 2048:h->caplen);
- inner_pkt_len = MESA_dump_seek_to_inner(modify_pkt_buf, h->caplen);
- if(inner_pkt_len < 0){
- return;
+ //memcpy(modify_pkt_buf, raw_pkt, h->caplen >= 2048? 2048:h->caplen);
+ //inner_pkt_len = MESA_dump_seek_to_inner(modify_pkt_buf, h->caplen);
+ //if(inner_pkt_len < 0){
+ // return;
+ //}
+ struct mesa_ip4_hdr *ip4hdr_greedy;
+ struct mesa_ip6_hdr *ip6hdr_greedy;
+ const unsigned char *inner_iphdr = NULL;
+ ip4hdr_greedy = (struct mesa_ip4_hdr *)MESA_net_jump_to_layer_greedy(raw_pkt, ADDR_TYPE_MAC, __ADDR_TYPE_IP_PAIR_V4);
+ if(ip4hdr_greedy)
+ {
+ inner_iphdr = (const unsigned char *)ip4hdr_greedy;
+ inner_pkt_len = h->caplen - ((const u_char *)ip4hdr_greedy - raw_pkt) ;
}
+ else
+ {
+ ip6hdr_greedy = (struct mesa_ip6_hdr *)MESA_net_jump_to_layer_greedy(raw_pkt, ADDR_TYPE_MAC, __ADDR_TYPE_IP_PAIR_V6);
+ if(ip6hdr_greedy)
+ {
+ inner_iphdr = (const unsigned char *)ip6hdr_greedy;
+ inner_pkt_len = h->caplen - ((const u_char *)ip6hdr_greedy - raw_pkt);
+ }
+ else
+ {
+ return;
+ }
+
+ }
+
+
if(has_bpf_filter_flag != 0){
if(0 == bpf_filter(fcode.bf_insns,
- (const unsigned char *)modify_pkt_buf, inner_pkt_len, inner_pkt_len)){
+ (const unsigned char *)inner_iphdr, inner_pkt_len, inner_pkt_len)){
return;
}
}
@@ -2999,6 +3042,7 @@ MESA_dump_print_packet(u_char *user, const struct pcap_pkthdr *h, const u_char *
{
int inner_pkt_len;
+#if 0
/* 姝ゅ嚱鏁颁粎鐢ㄤ簬tcpdump灞忓箷鎵撳嵃, 鐩存帴淇敼pkt鍘熷鍖, 閬垮厤鍐峜opy涓娆, 鑺傜害鐐笴PU */
inner_pkt_len = MESA_dump_seek_to_inner(pkt, h->caplen);
if(inner_pkt_len < 0){
@@ -3015,7 +3059,41 @@ MESA_dump_print_packet(u_char *user, const struct pcap_pkthdr *h, const u_char *
/* 鏀逛负鏂扮殑淇敼鍚庣殑鏁版嵁鍖呴暱搴 */
((struct pcap_pkthdr *)h)->caplen = (unsigned int)inner_pkt_len;
((struct pcap_pkthdr *)h)->len = (unsigned int)inner_pkt_len;
+#else
+ struct mesa_ip4_hdr *ip4hdr_greedy;
+ struct mesa_ip6_hdr *ip6hdr_greedy;
+ const unsigned char *inner_iphdr = NULL;
+ ip4hdr_greedy = (struct mesa_ip4_hdr *)MESA_net_jump_to_layer_greedy(pkt, ADDR_TYPE_MAC, __ADDR_TYPE_IP_PAIR_V4);
+ if(ip4hdr_greedy)
+ {
+ inner_iphdr = (const unsigned char *)ip4hdr_greedy;
+ inner_pkt_len = h->caplen - ((const unsigned char *)ip4hdr_greedy - pkt);
+ }
+ else
+ {
+ ip6hdr_greedy = (struct mesa_ip6_hdr *)MESA_net_jump_to_layer_greedy(pkt, ADDR_TYPE_MAC, __ADDR_TYPE_IP_PAIR_V6);
+ if(ip6hdr_greedy)
+ {
+ inner_iphdr = (const unsigned char *)ip6hdr_greedy;
+ inner_pkt_len = h->caplen - ((const unsigned char *)ip6hdr_greedy - pkt);
+ }
+ else
+ {
+ return;
+ }
+
+ }
+ if (has_bpf_filter_flag != 0)
+ {
+ if (0 == bpf_filter(fcode.bf_insns,
+ (const unsigned char *)inner_iphdr, inner_pkt_len, inner_pkt_len))
+ {
+ return;
+ }
+ }
+
+#endif
print_packet(user, h, pkt);
}
@@ -3150,7 +3228,7 @@ print_usage(void)
(void)fprintf(stderr,
"----------------------------------------------------------------------------------------------.\n");
(void)fprintf(stderr,
-"\t\tThe follow args is customized for tcpdump_mesa(%d):\n", tcpdump_mesa_version_VERSION_20181114);
+"\t\tThe follow args is customized for tcpdump_mesa(%s):\n", tcpdump_mesa_version);
(void)fprintf(stderr,
"\t\t[ -a ] enable perceptive mode, can detect loss packet number.\n");
(void)fprintf(stderr,
diff --git a/tests/02-sunrise-sunset-esp.pcap b/src/tests/02-sunrise-sunset-esp.pcap
similarity index 100%
rename from tests/02-sunrise-sunset-esp.pcap
rename to src/tests/02-sunrise-sunset-esp.pcap
diff --git a/tests/08-sunrise-sunset-aes.pcap b/src/tests/08-sunrise-sunset-aes.pcap
similarity index 100%
rename from tests/08-sunrise-sunset-aes.pcap
rename to src/tests/08-sunrise-sunset-aes.pcap
diff --git a/tests/08-sunrise-sunset-esp2.pcap b/src/tests/08-sunrise-sunset-esp2.pcap
similarity index 100%
rename from tests/08-sunrise-sunset-esp2.pcap
rename to src/tests/08-sunrise-sunset-esp2.pcap
diff --git a/tests/3560_CDP.pcap b/src/tests/3560_CDP.pcap
similarity index 100%
rename from tests/3560_CDP.pcap
rename to src/tests/3560_CDP.pcap
diff --git a/tests/802.1D_spanning_tree.pcap b/src/tests/802.1D_spanning_tree.pcap
similarity index 100%
rename from tests/802.1D_spanning_tree.pcap
rename to src/tests/802.1D_spanning_tree.pcap
diff --git a/tests/802.1w_rapid_STP.pcap b/src/tests/802.1w_rapid_STP.pcap
similarity index 100%
rename from tests/802.1w_rapid_STP.pcap
rename to src/tests/802.1w_rapid_STP.pcap
diff --git a/tests/AoE_Linux.pcap b/src/tests/AoE_Linux.pcap
similarity index 100%
rename from tests/AoE_Linux.pcap
rename to src/tests/AoE_Linux.pcap
diff --git a/tests/DECnet_Phone.pcap b/src/tests/DECnet_Phone.pcap
similarity index 100%
rename from tests/DECnet_Phone.pcap
rename to src/tests/DECnet_Phone.pcap
diff --git a/tests/DTP.pcap b/src/tests/DTP.pcap
similarity index 100%
rename from tests/DTP.pcap
rename to src/tests/DTP.pcap
diff --git a/tests/EIGRP_adjacency.pcap b/src/tests/EIGRP_adjacency.pcap
similarity index 100%
rename from tests/EIGRP_adjacency.pcap
rename to src/tests/EIGRP_adjacency.pcap
diff --git a/tests/EIGRP_goodbye.pcap b/src/tests/EIGRP_goodbye.pcap
similarity index 100%
rename from tests/EIGRP_goodbye.pcap
rename to src/tests/EIGRP_goodbye.pcap
diff --git a/tests/EIGRP_subnet_down.pcap b/src/tests/EIGRP_subnet_down.pcap
similarity index 100%
rename from tests/EIGRP_subnet_down.pcap
rename to src/tests/EIGRP_subnet_down.pcap
diff --git a/tests/EIGRP_subnet_up.pcap b/src/tests/EIGRP_subnet_up.pcap
similarity index 100%
rename from tests/EIGRP_subnet_up.pcap
rename to src/tests/EIGRP_subnet_up.pcap
diff --git a/tests/HDLC.pcap b/src/tests/HDLC.pcap
similarity index 100%
rename from tests/HDLC.pcap
rename to src/tests/HDLC.pcap
diff --git a/tests/HSRP_coup.pcap b/src/tests/HSRP_coup.pcap
similarity index 100%
rename from tests/HSRP_coup.pcap
rename to src/tests/HSRP_coup.pcap
diff --git a/tests/HSRP_election.pcap b/src/tests/HSRP_election.pcap
similarity index 100%
rename from tests/HSRP_election.pcap
rename to src/tests/HSRP_election.pcap
diff --git a/tests/HSRP_failover.pcap b/src/tests/HSRP_failover.pcap
similarity index 100%
rename from tests/HSRP_failover.pcap
rename to src/tests/HSRP_failover.pcap
diff --git a/tests/IGMP_V1.pcap b/src/tests/IGMP_V1.pcap
similarity index 100%
rename from tests/IGMP_V1.pcap
rename to src/tests/IGMP_V1.pcap
diff --git a/tests/IGMP_V2.pcap b/src/tests/IGMP_V2.pcap
similarity index 100%
rename from tests/IGMP_V2.pcap
rename to src/tests/IGMP_V2.pcap
diff --git a/tests/ISAKMP_sa_setup.pcap b/src/tests/ISAKMP_sa_setup.pcap
similarity index 100%
rename from tests/ISAKMP_sa_setup.pcap
rename to src/tests/ISAKMP_sa_setup.pcap
diff --git a/tests/ISIS_external_lsp.pcap b/src/tests/ISIS_external_lsp.pcap
similarity index 100%
rename from tests/ISIS_external_lsp.pcap
rename to src/tests/ISIS_external_lsp.pcap
diff --git a/tests/ISIS_level1_adjacency.pcap b/src/tests/ISIS_level1_adjacency.pcap
similarity index 100%
rename from tests/ISIS_level1_adjacency.pcap
rename to src/tests/ISIS_level1_adjacency.pcap
diff --git a/tests/ISIS_level2_adjacency.pcap b/src/tests/ISIS_level2_adjacency.pcap
similarity index 100%
rename from tests/ISIS_level2_adjacency.pcap
rename to src/tests/ISIS_level2_adjacency.pcap
diff --git a/tests/ISIS_p2p_adjacency.pcap b/src/tests/ISIS_p2p_adjacency.pcap
similarity index 100%
rename from tests/ISIS_p2p_adjacency.pcap
rename to src/tests/ISIS_p2p_adjacency.pcap
diff --git a/tests/LACP.pcap b/src/tests/LACP.pcap
similarity index 100%
rename from tests/LACP.pcap
rename to src/tests/LACP.pcap
diff --git a/tests/LLDP_and_CDP.pcap b/src/tests/LLDP_and_CDP.pcap
similarity index 100%
rename from tests/LLDP_and_CDP.pcap
rename to src/tests/LLDP_and_CDP.pcap
diff --git a/tests/MSTP_Intra-Region_BPDUs.pcap b/src/tests/MSTP_Intra-Region_BPDUs.pcap
similarity index 100%
rename from tests/MSTP_Intra-Region_BPDUs.pcap
rename to src/tests/MSTP_Intra-Region_BPDUs.pcap
diff --git a/tests/OLSRv1_HNA_sgw_1.out b/src/tests/OLSRv1_HNA_sgw_1.out
similarity index 100%
rename from tests/OLSRv1_HNA_sgw_1.out
rename to src/tests/OLSRv1_HNA_sgw_1.out
diff --git a/tests/OLSRv1_HNA_sgw_1.pcap b/src/tests/OLSRv1_HNA_sgw_1.pcap
similarity index 100%
rename from tests/OLSRv1_HNA_sgw_1.pcap
rename to src/tests/OLSRv1_HNA_sgw_1.pcap
diff --git a/tests/OSPFv3_NBMA_adjacencies.pcap b/src/tests/OSPFv3_NBMA_adjacencies.pcap
similarity index 100%
rename from tests/OSPFv3_NBMA_adjacencies.pcap
rename to src/tests/OSPFv3_NBMA_adjacencies.pcap
diff --git a/tests/OSPFv3_broadcast_adjacency.pcap b/src/tests/OSPFv3_broadcast_adjacency.pcap
similarity index 100%
rename from tests/OSPFv3_broadcast_adjacency.pcap
rename to src/tests/OSPFv3_broadcast_adjacency.pcap
diff --git a/tests/OSPFv3_multipoint_adjacencies.pcap b/src/tests/OSPFv3_multipoint_adjacencies.pcap
similarity index 100%
rename from tests/OSPFv3_multipoint_adjacencies.pcap
rename to src/tests/OSPFv3_multipoint_adjacencies.pcap
diff --git a/tests/OSPFv3_with_AH.pcap b/src/tests/OSPFv3_with_AH.pcap
similarity index 100%
rename from tests/OSPFv3_with_AH.pcap
rename to src/tests/OSPFv3_with_AH.pcap
diff --git a/tests/PIM-DM_pruning.pcap b/src/tests/PIM-DM_pruning.pcap
similarity index 100%
rename from tests/PIM-DM_pruning.pcap
rename to src/tests/PIM-DM_pruning.pcap
diff --git a/tests/PIM-SM_join_prune.pcap b/src/tests/PIM-SM_join_prune.pcap
similarity index 100%
rename from tests/PIM-SM_join_prune.pcap
rename to src/tests/PIM-SM_join_prune.pcap
diff --git a/tests/PIM_register_register-stop.pcap b/src/tests/PIM_register_register-stop.pcap
similarity index 100%
rename from tests/PIM_register_register-stop.pcap
rename to src/tests/PIM_register_register-stop.pcap
diff --git a/tests/PIMv2_bootstrap.pcap b/src/tests/PIMv2_bootstrap.pcap
similarity index 100%
rename from tests/PIMv2_bootstrap.pcap
rename to src/tests/PIMv2_bootstrap.pcap
diff --git a/tests/PIMv2_hellos.pcap b/src/tests/PIMv2_hellos.pcap
similarity index 100%
rename from tests/PIMv2_hellos.pcap
rename to src/tests/PIMv2_hellos.pcap
diff --git a/tests/QinQpacket.out b/src/tests/QinQpacket.out
similarity index 100%
rename from tests/QinQpacket.out
rename to src/tests/QinQpacket.out
diff --git a/tests/QinQpacket.pcap b/src/tests/QinQpacket.pcap
similarity index 100%
rename from tests/QinQpacket.pcap
rename to src/tests/QinQpacket.pcap
diff --git a/tests/QinQpacketv.out b/src/tests/QinQpacketv.out
similarity index 100%
rename from tests/QinQpacketv.out
rename to src/tests/QinQpacketv.out
diff --git a/tests/RADIUS-RFC4675.pcap b/src/tests/RADIUS-RFC4675.pcap
similarity index 100%
rename from tests/RADIUS-RFC4675.pcap
rename to src/tests/RADIUS-RFC4675.pcap
diff --git a/tests/RADIUS-RFC5176.pcap b/src/tests/RADIUS-RFC5176.pcap
similarity index 100%
rename from tests/RADIUS-RFC5176.pcap
rename to src/tests/RADIUS-RFC5176.pcap
diff --git a/tests/RADIUS-port1700.pcap b/src/tests/RADIUS-port1700.pcap
similarity index 100%
rename from tests/RADIUS-port1700.pcap
rename to src/tests/RADIUS-port1700.pcap
diff --git a/tests/RADIUS.pcap b/src/tests/RADIUS.pcap
similarity index 100%
rename from tests/RADIUS.pcap
rename to src/tests/RADIUS.pcap
diff --git a/tests/TESTLIST b/src/tests/TESTLIST
similarity index 100%
rename from tests/TESTLIST
rename to src/tests/TESTLIST
diff --git a/tests/TESTonce b/src/tests/TESTonce
similarity index 100%
rename from tests/TESTonce
rename to src/tests/TESTonce
diff --git a/tests/TESTrun.sh b/src/tests/TESTrun.sh
similarity index 100%
rename from tests/TESTrun.sh
rename to src/tests/TESTrun.sh
diff --git a/tests/UDLD.pcap b/src/tests/UDLD.pcap
similarity index 100%
rename from tests/UDLD.pcap
rename to src/tests/UDLD.pcap
diff --git a/tests/ahcp-vv.out b/src/tests/ahcp-vv.out
similarity index 100%
rename from tests/ahcp-vv.out
rename to src/tests/ahcp-vv.out
diff --git a/tests/ahcp.pcap b/src/tests/ahcp.pcap
similarity index 100%
rename from tests/ahcp.pcap
rename to src/tests/ahcp.pcap
diff --git a/tests/aoe_1-v.out b/src/tests/aoe_1-v.out
similarity index 100%
rename from tests/aoe_1-v.out
rename to src/tests/aoe_1-v.out
diff --git a/tests/aoe_1.out b/src/tests/aoe_1.out
similarity index 100%
rename from tests/aoe_1.out
rename to src/tests/aoe_1.out
diff --git a/tests/babel.pcap b/src/tests/babel.pcap
similarity index 100%
rename from tests/babel.pcap
rename to src/tests/babel.pcap
diff --git a/tests/babel1.out b/src/tests/babel1.out
similarity index 100%
rename from tests/babel1.out
rename to src/tests/babel1.out
diff --git a/tests/babel1v.out b/src/tests/babel1v.out
similarity index 100%
rename from tests/babel1v.out
rename to src/tests/babel1v.out
diff --git a/tests/babel_auth.out b/src/tests/babel_auth.out
similarity index 100%
rename from tests/babel_auth.out
rename to src/tests/babel_auth.out
diff --git a/tests/babel_auth.pcap b/src/tests/babel_auth.pcap
similarity index 100%
rename from tests/babel_auth.pcap
rename to src/tests/babel_auth.pcap
diff --git a/tests/babel_pad1.out b/src/tests/babel_pad1.out
similarity index 100%
rename from tests/babel_pad1.out
rename to src/tests/babel_pad1.out
diff --git a/tests/babel_pad1.pcap b/src/tests/babel_pad1.pcap
similarity index 100%
rename from tests/babel_pad1.pcap
rename to src/tests/babel_pad1.pcap
diff --git a/tests/babel_rtt.out b/src/tests/babel_rtt.out
similarity index 100%
rename from tests/babel_rtt.out
rename to src/tests/babel_rtt.out
diff --git a/tests/babel_rtt.pcap b/src/tests/babel_rtt.pcap
similarity index 100%
rename from tests/babel_rtt.pcap
rename to src/tests/babel_rtt.pcap
diff --git a/tests/bgp-aigp.out b/src/tests/bgp-aigp.out
similarity index 100%
rename from tests/bgp-aigp.out
rename to src/tests/bgp-aigp.out
diff --git a/tests/bgp-aigp.pcap b/src/tests/bgp-aigp.pcap
similarity index 100%
rename from tests/bgp-aigp.pcap
rename to src/tests/bgp-aigp.pcap
diff --git a/tests/bgp-infinite-loop.pcap b/src/tests/bgp-infinite-loop.pcap
similarity index 100%
rename from tests/bgp-infinite-loop.pcap
rename to src/tests/bgp-infinite-loop.pcap
diff --git a/tests/bgp_infloop-v.out b/src/tests/bgp_infloop-v.out
similarity index 100%
rename from tests/bgp_infloop-v.out
rename to src/tests/bgp_infloop-v.out
diff --git a/tests/bgp_vpn_attrset.out b/src/tests/bgp_vpn_attrset.out
similarity index 100%
rename from tests/bgp_vpn_attrset.out
rename to src/tests/bgp_vpn_attrset.out
diff --git a/tests/bgp_vpn_attrset.pcap b/src/tests/bgp_vpn_attrset.pcap
similarity index 100%
rename from tests/bgp_vpn_attrset.pcap
rename to src/tests/bgp_vpn_attrset.pcap
diff --git a/tests/cdp-v.out b/src/tests/cdp-v.out
similarity index 100%
rename from tests/cdp-v.out
rename to src/tests/cdp-v.out
diff --git a/tests/chdlc-slarp-short.pcap b/src/tests/chdlc-slarp-short.pcap
similarity index 100%
rename from tests/chdlc-slarp-short.pcap
rename to src/tests/chdlc-slarp-short.pcap
diff --git a/tests/chdlc-slarp.pcap b/src/tests/chdlc-slarp.pcap
similarity index 100%
rename from tests/chdlc-slarp.pcap
rename to src/tests/chdlc-slarp.pcap
diff --git a/tests/crypto.sh b/src/tests/crypto.sh
similarity index 100%
rename from tests/crypto.sh
rename to src/tests/crypto.sh
diff --git a/tests/cve-2014-8767-OLSR.out b/src/tests/cve-2014-8767-OLSR.out
similarity index 100%
rename from tests/cve-2014-8767-OLSR.out
rename to src/tests/cve-2014-8767-OLSR.out
diff --git a/tests/cve-2014-8767-OLSR.pcap b/src/tests/cve-2014-8767-OLSR.pcap
similarity index 100%
rename from tests/cve-2014-8767-OLSR.pcap
rename to src/tests/cve-2014-8767-OLSR.pcap
diff --git a/tests/cve-2014-8768-Geonet.out b/src/tests/cve-2014-8768-Geonet.out
similarity index 100%
rename from tests/cve-2014-8768-Geonet.out
rename to src/tests/cve-2014-8768-Geonet.out
diff --git a/tests/cve-2014-8768-Geonet.pcap b/src/tests/cve-2014-8768-Geonet.pcap
similarity index 100%
rename from tests/cve-2014-8768-Geonet.pcap
rename to src/tests/cve-2014-8768-Geonet.pcap
diff --git a/tests/cve-2014-8769-AODV.out b/src/tests/cve-2014-8769-AODV.out
similarity index 100%
rename from tests/cve-2014-8769-AODV.out
rename to src/tests/cve-2014-8769-AODV.out
diff --git a/tests/cve-2014-8769-AODV.pcap b/src/tests/cve-2014-8769-AODV.pcap
similarity index 100%
rename from tests/cve-2014-8769-AODV.pcap
rename to src/tests/cve-2014-8769-AODV.pcap
diff --git a/tests/cve2015-0261-crash.out b/src/tests/cve2015-0261-crash.out
similarity index 100%
rename from tests/cve2015-0261-crash.out
rename to src/tests/cve2015-0261-crash.out
diff --git a/tests/cve2015-0261-crash.pcap b/src/tests/cve2015-0261-crash.pcap
similarity index 100%
rename from tests/cve2015-0261-crash.pcap
rename to src/tests/cve2015-0261-crash.pcap
diff --git a/tests/cve2015-0261-ipv6.out b/src/tests/cve2015-0261-ipv6.out
similarity index 100%
rename from tests/cve2015-0261-ipv6.out
rename to src/tests/cve2015-0261-ipv6.out
diff --git a/tests/cve2015-0261-ipv6.pcap b/src/tests/cve2015-0261-ipv6.pcap
similarity index 100%
rename from tests/cve2015-0261-ipv6.pcap
rename to src/tests/cve2015-0261-ipv6.pcap
diff --git a/tests/dcb_ets.out b/src/tests/dcb_ets.out
similarity index 100%
rename from tests/dcb_ets.out
rename to src/tests/dcb_ets.out
diff --git a/tests/dcb_ets.pcap b/src/tests/dcb_ets.pcap
similarity index 100%
rename from tests/dcb_ets.pcap
rename to src/tests/dcb_ets.pcap
diff --git a/tests/dcb_pfc.out b/src/tests/dcb_pfc.out
similarity index 100%
rename from tests/dcb_pfc.out
rename to src/tests/dcb_pfc.out
diff --git a/tests/dcb_pfc.pcap b/src/tests/dcb_pfc.pcap
similarity index 100%
rename from tests/dcb_pfc.pcap
rename to src/tests/dcb_pfc.pcap
diff --git a/tests/dcb_qcn.out b/src/tests/dcb_qcn.out
similarity index 100%
rename from tests/dcb_qcn.out
rename to src/tests/dcb_qcn.out
diff --git a/tests/dcb_qcn.pcap b/src/tests/dcb_qcn.pcap
similarity index 100%
rename from tests/dcb_qcn.pcap
rename to src/tests/dcb_qcn.pcap
diff --git a/tests/dccp_partial_csum_v4_longer.out b/src/tests/dccp_partial_csum_v4_longer.out
similarity index 100%
rename from tests/dccp_partial_csum_v4_longer.out
rename to src/tests/dccp_partial_csum_v4_longer.out
diff --git a/tests/dccp_partial_csum_v4_longer.pcap b/src/tests/dccp_partial_csum_v4_longer.pcap
similarity index 100%
rename from tests/dccp_partial_csum_v4_longer.pcap
rename to src/tests/dccp_partial_csum_v4_longer.pcap
diff --git a/tests/dccp_partial_csum_v4_simple.out b/src/tests/dccp_partial_csum_v4_simple.out
similarity index 100%
rename from tests/dccp_partial_csum_v4_simple.out
rename to src/tests/dccp_partial_csum_v4_simple.out
diff --git a/tests/dccp_partial_csum_v4_simple.pcap b/src/tests/dccp_partial_csum_v4_simple.pcap
similarity index 100%
rename from tests/dccp_partial_csum_v4_simple.pcap
rename to src/tests/dccp_partial_csum_v4_simple.pcap
diff --git a/tests/dccp_partial_csum_v6_longer.out b/src/tests/dccp_partial_csum_v6_longer.out
similarity index 100%
rename from tests/dccp_partial_csum_v6_longer.out
rename to src/tests/dccp_partial_csum_v6_longer.out
diff --git a/tests/dccp_partial_csum_v6_longer.pcap b/src/tests/dccp_partial_csum_v6_longer.pcap
similarity index 100%
rename from tests/dccp_partial_csum_v6_longer.pcap
rename to src/tests/dccp_partial_csum_v6_longer.pcap
diff --git a/tests/dccp_partial_csum_v6_simple.out b/src/tests/dccp_partial_csum_v6_simple.out
similarity index 100%
rename from tests/dccp_partial_csum_v6_simple.out
rename to src/tests/dccp_partial_csum_v6_simple.out
diff --git a/tests/dccp_partial_csum_v6_simple.pcap b/src/tests/dccp_partial_csum_v6_simple.pcap
similarity index 100%
rename from tests/dccp_partial_csum_v6_simple.pcap
rename to src/tests/dccp_partial_csum_v6_simple.pcap
diff --git a/tests/decnet.out b/src/tests/decnet.out
similarity index 100%
rename from tests/decnet.out
rename to src/tests/decnet.out
diff --git a/tests/dhcp-rfc3004-v.out b/src/tests/dhcp-rfc3004-v.out
similarity index 100%
rename from tests/dhcp-rfc3004-v.out
rename to src/tests/dhcp-rfc3004-v.out
diff --git a/tests/dhcp-rfc3004.pcap b/src/tests/dhcp-rfc3004.pcap
similarity index 100%
rename from tests/dhcp-rfc3004.pcap
rename to src/tests/dhcp-rfc3004.pcap
diff --git a/tests/dhcp-rfc5859-v.out b/src/tests/dhcp-rfc5859-v.out
similarity index 100%
rename from tests/dhcp-rfc5859-v.out
rename to src/tests/dhcp-rfc5859-v.out
diff --git a/tests/dhcp-rfc5859.pcap b/src/tests/dhcp-rfc5859.pcap
similarity index 100%
rename from tests/dhcp-rfc5859.pcap
rename to src/tests/dhcp-rfc5859.pcap
diff --git a/tests/dhcpv6-AFTR-Name-RFC6334.out b/src/tests/dhcpv6-AFTR-Name-RFC6334.out
similarity index 100%
rename from tests/dhcpv6-AFTR-Name-RFC6334.out
rename to src/tests/dhcpv6-AFTR-Name-RFC6334.out
diff --git a/tests/dhcpv6-AFTR-Name-RFC6334.pcap b/src/tests/dhcpv6-AFTR-Name-RFC6334.pcap
similarity index 100%
rename from tests/dhcpv6-AFTR-Name-RFC6334.pcap
rename to src/tests/dhcpv6-AFTR-Name-RFC6334.pcap
diff --git a/tests/dhcpv6-domain-list.out b/src/tests/dhcpv6-domain-list.out
similarity index 100%
rename from tests/dhcpv6-domain-list.out
rename to src/tests/dhcpv6-domain-list.out
diff --git a/tests/dhcpv6-domain-list.pcap b/src/tests/dhcpv6-domain-list.pcap
similarity index 100%
rename from tests/dhcpv6-domain-list.pcap
rename to src/tests/dhcpv6-domain-list.pcap
diff --git a/tests/dhcpv6-ia-na.out b/src/tests/dhcpv6-ia-na.out
similarity index 100%
rename from tests/dhcpv6-ia-na.out
rename to src/tests/dhcpv6-ia-na.out
diff --git a/tests/dhcpv6-ia-na.pcap b/src/tests/dhcpv6-ia-na.pcap
similarity index 100%
rename from tests/dhcpv6-ia-na.pcap
rename to src/tests/dhcpv6-ia-na.pcap
diff --git a/tests/dhcpv6-ia-pd.out b/src/tests/dhcpv6-ia-pd.out
similarity index 100%
rename from tests/dhcpv6-ia-pd.out
rename to src/tests/dhcpv6-ia-pd.out
diff --git a/tests/dhcpv6-ia-pd.pcap b/src/tests/dhcpv6-ia-pd.pcap
similarity index 100%
rename from tests/dhcpv6-ia-pd.pcap
rename to src/tests/dhcpv6-ia-pd.pcap
diff --git a/tests/dhcpv6-ia-ta.out b/src/tests/dhcpv6-ia-ta.out
similarity index 100%
rename from tests/dhcpv6-ia-ta.out
rename to src/tests/dhcpv6-ia-ta.out
diff --git a/tests/dhcpv6-ia-ta.pcap b/src/tests/dhcpv6-ia-ta.pcap
similarity index 100%
rename from tests/dhcpv6-ia-ta.pcap
rename to src/tests/dhcpv6-ia-ta.pcap
diff --git a/tests/dhcpv6-ntp-server.out b/src/tests/dhcpv6-ntp-server.out
similarity index 100%
rename from tests/dhcpv6-ntp-server.out
rename to src/tests/dhcpv6-ntp-server.out
diff --git a/tests/dhcpv6-ntp-server.pcap b/src/tests/dhcpv6-ntp-server.pcap
similarity index 100%
rename from tests/dhcpv6-ntp-server.pcap
rename to src/tests/dhcpv6-ntp-server.pcap
diff --git a/tests/dhcpv6-sip-server-d.out b/src/tests/dhcpv6-sip-server-d.out
similarity index 100%
rename from tests/dhcpv6-sip-server-d.out
rename to src/tests/dhcpv6-sip-server-d.out
diff --git a/tests/dhcpv6-sip-server-d.pcap b/src/tests/dhcpv6-sip-server-d.pcap
similarity index 100%
rename from tests/dhcpv6-sip-server-d.pcap
rename to src/tests/dhcpv6-sip-server-d.pcap
diff --git a/tests/dnssec-vv.out b/src/tests/dnssec-vv.out
similarity index 100%
rename from tests/dnssec-vv.out
rename to src/tests/dnssec-vv.out
diff --git a/tests/dnssec.pcap b/src/tests/dnssec.pcap
similarity index 100%
rename from tests/dnssec.pcap
rename to src/tests/dnssec.pcap
diff --git a/tests/dtp-v.out b/src/tests/dtp-v.out
similarity index 100%
rename from tests/dtp-v.out
rename to src/tests/dtp-v.out
diff --git a/tests/dvmrp.out b/src/tests/dvmrp.out
similarity index 100%
rename from tests/dvmrp.out
rename to src/tests/dvmrp.out
diff --git a/tests/e1000g.out b/src/tests/e1000g.out
similarity index 100%
rename from tests/e1000g.out
rename to src/tests/e1000g.out
diff --git a/tests/e1000g.pcap b/src/tests/e1000g.pcap
similarity index 100%
rename from tests/e1000g.pcap
rename to src/tests/e1000g.pcap
diff --git a/tests/eapon1.gdbinit b/src/tests/eapon1.gdbinit
similarity index 100%
rename from tests/eapon1.gdbinit
rename to src/tests/eapon1.gdbinit
diff --git a/tests/eapon1.out b/src/tests/eapon1.out
similarity index 100%
rename from tests/eapon1.out
rename to src/tests/eapon1.out
diff --git a/tests/eapon1.pcap b/src/tests/eapon1.pcap
similarity index 100%
rename from tests/eapon1.pcap
rename to src/tests/eapon1.pcap
diff --git a/tests/eigrp1-v.out b/src/tests/eigrp1-v.out
similarity index 100%
rename from tests/eigrp1-v.out
rename to src/tests/eigrp1-v.out
diff --git a/tests/eigrp2-v.out b/src/tests/eigrp2-v.out
similarity index 100%
rename from tests/eigrp2-v.out
rename to src/tests/eigrp2-v.out
diff --git a/tests/eigrp3-v.out b/src/tests/eigrp3-v.out
similarity index 100%
rename from tests/eigrp3-v.out
rename to src/tests/eigrp3-v.out
diff --git a/tests/eigrp4-v.out b/src/tests/eigrp4-v.out
similarity index 100%
rename from tests/eigrp4-v.out
rename to src/tests/eigrp4-v.out
diff --git a/tests/epgm_zmtp1.pcap b/src/tests/epgm_zmtp1.pcap
similarity index 100%
rename from tests/epgm_zmtp1.pcap
rename to src/tests/epgm_zmtp1.pcap
diff --git a/tests/epgm_zmtp1v.out b/src/tests/epgm_zmtp1v.out
similarity index 100%
rename from tests/epgm_zmtp1v.out
rename to src/tests/epgm_zmtp1v.out
diff --git a/tests/epgmv.out b/src/tests/epgmv.out
similarity index 100%
rename from tests/epgmv.out
rename to src/tests/epgmv.out
diff --git a/tests/esp-secrets.txt b/src/tests/esp-secrets.txt
similarity index 100%
rename from tests/esp-secrets.txt
rename to src/tests/esp-secrets.txt
diff --git a/tests/esp0.out b/src/tests/esp0.out
similarity index 100%
rename from tests/esp0.out
rename to src/tests/esp0.out
diff --git a/tests/esp1.gdbinit b/src/tests/esp1.gdbinit
similarity index 100%
rename from tests/esp1.gdbinit
rename to src/tests/esp1.gdbinit
diff --git a/tests/esp1.out b/src/tests/esp1.out
similarity index 100%
rename from tests/esp1.out
rename to src/tests/esp1.out
diff --git a/tests/esp2.gdbinit b/src/tests/esp2.gdbinit
similarity index 100%
rename from tests/esp2.gdbinit
rename to src/tests/esp2.gdbinit
diff --git a/tests/esp2.out b/src/tests/esp2.out
similarity index 100%
rename from tests/esp2.out
rename to src/tests/esp2.out
diff --git a/tests/esp3.gdbinit b/src/tests/esp3.gdbinit
similarity index 100%
rename from tests/esp3.gdbinit
rename to src/tests/esp3.gdbinit
diff --git a/tests/esp4.gdbinit b/src/tests/esp4.gdbinit
similarity index 100%
rename from tests/esp4.gdbinit
rename to src/tests/esp4.gdbinit
diff --git a/tests/esp5.gdbinit b/src/tests/esp5.gdbinit
similarity index 100%
rename from tests/esp5.gdbinit
rename to src/tests/esp5.gdbinit
diff --git a/tests/esp5.out b/src/tests/esp5.out
similarity index 100%
rename from tests/esp5.out
rename to src/tests/esp5.out
diff --git a/tests/espudp1.out b/src/tests/espudp1.out
similarity index 100%
rename from tests/espudp1.out
rename to src/tests/espudp1.out
diff --git a/tests/espudp1.pcap b/src/tests/espudp1.pcap
similarity index 100%
rename from tests/espudp1.pcap
rename to src/tests/espudp1.pcap
diff --git a/tests/evb.out b/src/tests/evb.out
similarity index 100%
rename from tests/evb.out
rename to src/tests/evb.out
diff --git a/tests/evb.pcap b/src/tests/evb.pcap
similarity index 100%
rename from tests/evb.pcap
rename to src/tests/evb.pcap
diff --git a/tests/failure-outputs.txt b/src/tests/failure-outputs.txt
similarity index 100%
rename from tests/failure-outputs.txt
rename to src/tests/failure-outputs.txt
diff --git a/tests/forces1.out b/src/tests/forces1.out
similarity index 100%
rename from tests/forces1.out
rename to src/tests/forces1.out
diff --git a/tests/forces1.pcap b/src/tests/forces1.pcap
similarity index 100%
rename from tests/forces1.pcap
rename to src/tests/forces1.pcap
diff --git a/tests/forces1vvv.out b/src/tests/forces1vvv.out
similarity index 100%
rename from tests/forces1vvv.out
rename to src/tests/forces1vvv.out
diff --git a/tests/forces1vvvv.out b/src/tests/forces1vvvv.out
similarity index 100%
rename from tests/forces1vvvv.out
rename to src/tests/forces1vvvv.out
diff --git a/tests/forces2.pcap b/src/tests/forces2.pcap
similarity index 100%
rename from tests/forces2.pcap
rename to src/tests/forces2.pcap
diff --git a/tests/forces2v.out b/src/tests/forces2v.out
similarity index 100%
rename from tests/forces2v.out
rename to src/tests/forces2v.out
diff --git a/tests/forces2vv.out b/src/tests/forces2vv.out
similarity index 100%
rename from tests/forces2vv.out
rename to src/tests/forces2vv.out
diff --git a/tests/forces2vvv.out b/src/tests/forces2vvv.out
similarity index 100%
rename from tests/forces2vvv.out
rename to src/tests/forces2vvv.out
diff --git a/tests/forces3.pcap b/src/tests/forces3.pcap
similarity index 100%
rename from tests/forces3.pcap
rename to src/tests/forces3.pcap
diff --git a/tests/forces3vvv.out b/src/tests/forces3vvv.out
similarity index 100%
rename from tests/forces3vvv.out
rename to src/tests/forces3vvv.out
diff --git a/tests/geneve-tcp.out b/src/tests/geneve-tcp.out
similarity index 100%
rename from tests/geneve-tcp.out
rename to src/tests/geneve-tcp.out
diff --git a/tests/geneve-vni.out b/src/tests/geneve-vni.out
similarity index 100%
rename from tests/geneve-vni.out
rename to src/tests/geneve-vni.out
diff --git a/tests/geneve-vv.out b/src/tests/geneve-vv.out
similarity index 100%
rename from tests/geneve-vv.out
rename to src/tests/geneve-vv.out
diff --git a/tests/geneve.pcap b/src/tests/geneve.pcap
similarity index 100%
rename from tests/geneve.pcap
rename to src/tests/geneve.pcap
diff --git a/tests/geonet_and_calm_fast.out b/src/tests/geonet_and_calm_fast.out
similarity index 100%
rename from tests/geonet_and_calm_fast.out
rename to src/tests/geonet_and_calm_fast.out
diff --git a/tests/geonet_and_calm_fast.pcap b/src/tests/geonet_and_calm_fast.pcap
similarity index 100%
rename from tests/geonet_and_calm_fast.pcap
rename to src/tests/geonet_and_calm_fast.pcap
diff --git a/tests/hdlc1.out b/src/tests/hdlc1.out
similarity index 100%
rename from tests/hdlc1.out
rename to src/tests/hdlc1.out
diff --git a/tests/hdlc2.out b/src/tests/hdlc2.out
similarity index 100%
rename from tests/hdlc2.out
rename to src/tests/hdlc2.out
diff --git a/tests/hdlc3.out b/src/tests/hdlc3.out
similarity index 100%
rename from tests/hdlc3.out
rename to src/tests/hdlc3.out
diff --git a/tests/hdlc4.out b/src/tests/hdlc4.out
similarity index 100%
rename from tests/hdlc4.out
rename to src/tests/hdlc4.out
diff --git a/tests/hdlc_slarp.pcap b/src/tests/hdlc_slarp.pcap
similarity index 100%
rename from tests/hdlc_slarp.pcap
rename to src/tests/hdlc_slarp.pcap
diff --git a/tests/hncp.out b/src/tests/hncp.out
similarity index 100%
rename from tests/hncp.out
rename to src/tests/hncp.out
diff --git a/tests/hncp.pcap b/src/tests/hncp.pcap
similarity index 100%
rename from tests/hncp.pcap
rename to src/tests/hncp.pcap
diff --git a/tests/hsrp_1-v.out b/src/tests/hsrp_1-v.out
similarity index 100%
rename from tests/hsrp_1-v.out
rename to src/tests/hsrp_1-v.out
diff --git a/tests/hsrp_1.out b/src/tests/hsrp_1.out
similarity index 100%
rename from tests/hsrp_1.out
rename to src/tests/hsrp_1.out
diff --git a/tests/hsrp_2-v.out b/src/tests/hsrp_2-v.out
similarity index 100%
rename from tests/hsrp_2-v.out
rename to src/tests/hsrp_2-v.out
diff --git a/tests/hsrp_3-v.out b/src/tests/hsrp_3-v.out
similarity index 100%
rename from tests/hsrp_3-v.out
rename to src/tests/hsrp_3-v.out
diff --git a/tests/icmpv6.out b/src/tests/icmpv6.out
similarity index 100%
rename from tests/icmpv6.out
rename to src/tests/icmpv6.out
diff --git a/tests/icmpv6.pcap b/src/tests/icmpv6.pcap
similarity index 100%
rename from tests/icmpv6.pcap
rename to src/tests/icmpv6.pcap
diff --git a/tests/icmpv6_opt24-v.out b/src/tests/icmpv6_opt24-v.out
similarity index 100%
rename from tests/icmpv6_opt24-v.out
rename to src/tests/icmpv6_opt24-v.out
diff --git a/tests/icmpv6_opt24.pcap b/src/tests/icmpv6_opt24.pcap
similarity index 100%
rename from tests/icmpv6_opt24.pcap
rename to src/tests/icmpv6_opt24.pcap
diff --git a/tests/ieee802.11_exthdr.out b/src/tests/ieee802.11_exthdr.out
similarity index 100%
rename from tests/ieee802.11_exthdr.out
rename to src/tests/ieee802.11_exthdr.out
diff --git a/tests/ieee802.11_exthdr.pcap b/src/tests/ieee802.11_exthdr.pcap
similarity index 100%
rename from tests/ieee802.11_exthdr.pcap
rename to src/tests/ieee802.11_exthdr.pcap
diff --git a/tests/ieee802.11_rx-stbc.out b/src/tests/ieee802.11_rx-stbc.out
similarity index 100%
rename from tests/ieee802.11_rx-stbc.out
rename to src/tests/ieee802.11_rx-stbc.out
diff --git a/tests/ieee802.11_rx-stbc.pcap b/src/tests/ieee802.11_rx-stbc.pcap
similarity index 100%
rename from tests/ieee802.11_rx-stbc.pcap
rename to src/tests/ieee802.11_rx-stbc.pcap
diff --git a/tests/igmpv1.out b/src/tests/igmpv1.out
similarity index 100%
rename from tests/igmpv1.out
rename to src/tests/igmpv1.out
diff --git a/tests/igmpv2.out b/src/tests/igmpv2.out
similarity index 100%
rename from tests/igmpv2.out
rename to src/tests/igmpv2.out
diff --git a/tests/igmpv3-queries.out b/src/tests/igmpv3-queries.out
similarity index 100%
rename from tests/igmpv3-queries.out
rename to src/tests/igmpv3-queries.out
diff --git a/tests/igmpv3-queries.pcap b/src/tests/igmpv3-queries.pcap
similarity index 100%
rename from tests/igmpv3-queries.pcap
rename to src/tests/igmpv3-queries.pcap
diff --git a/tests/ikev2four.out b/src/tests/ikev2four.out
similarity index 100%
rename from tests/ikev2four.out
rename to src/tests/ikev2four.out
diff --git a/tests/ikev2four.pcap b/src/tests/ikev2four.pcap
similarity index 100%
rename from tests/ikev2four.pcap
rename to src/tests/ikev2four.pcap
diff --git a/tests/ikev2fourv.out b/src/tests/ikev2fourv.out
similarity index 100%
rename from tests/ikev2fourv.out
rename to src/tests/ikev2fourv.out
diff --git a/tests/ikev2fourv4.out b/src/tests/ikev2fourv4.out
similarity index 100%
rename from tests/ikev2fourv4.out
rename to src/tests/ikev2fourv4.out
diff --git a/tests/ikev2pI2-secrets.txt b/src/tests/ikev2pI2-secrets.txt
similarity index 100%
rename from tests/ikev2pI2-secrets.txt
rename to src/tests/ikev2pI2-secrets.txt
diff --git a/tests/ikev2pI2.out b/src/tests/ikev2pI2.out
similarity index 100%
rename from tests/ikev2pI2.out
rename to src/tests/ikev2pI2.out
diff --git a/tests/ikev2pI2.pcap b/src/tests/ikev2pI2.pcap
similarity index 100%
rename from tests/ikev2pI2.pcap
rename to src/tests/ikev2pI2.pcap
diff --git a/tests/ipv6-bad-version.out b/src/tests/ipv6-bad-version.out
similarity index 100%
rename from tests/ipv6-bad-version.out
rename to src/tests/ipv6-bad-version.out
diff --git a/tests/ipv6-bad-version.pcap b/src/tests/ipv6-bad-version.pcap
similarity index 100%
rename from tests/ipv6-bad-version.pcap
rename to src/tests/ipv6-bad-version.pcap
diff --git a/tests/ipv6-routing-header.out b/src/tests/ipv6-routing-header.out
similarity index 100%
rename from tests/ipv6-routing-header.out
rename to src/tests/ipv6-routing-header.out
diff --git a/tests/ipv6-routing-header.pcap b/src/tests/ipv6-routing-header.pcap
similarity index 100%
rename from tests/ipv6-routing-header.pcap
rename to src/tests/ipv6-routing-header.pcap
diff --git a/tests/isakmp-delete-segfault.pcap b/src/tests/isakmp-delete-segfault.pcap
similarity index 100%
rename from tests/isakmp-delete-segfault.pcap
rename to src/tests/isakmp-delete-segfault.pcap
diff --git a/tests/isakmp-identification-segfault.pcap b/src/tests/isakmp-identification-segfault.pcap
similarity index 100%
rename from tests/isakmp-identification-segfault.pcap
rename to src/tests/isakmp-identification-segfault.pcap
diff --git a/tests/isakmp-pointer-loop.pcap b/src/tests/isakmp-pointer-loop.pcap
similarity index 100%
rename from tests/isakmp-pointer-loop.pcap
rename to src/tests/isakmp-pointer-loop.pcap
diff --git a/tests/isakmp1.out b/src/tests/isakmp1.out
similarity index 100%
rename from tests/isakmp1.out
rename to src/tests/isakmp1.out
diff --git a/tests/isakmp2.out b/src/tests/isakmp2.out
similarity index 100%
rename from tests/isakmp2.out
rename to src/tests/isakmp2.out
diff --git a/tests/isakmp3.out b/src/tests/isakmp3.out
similarity index 100%
rename from tests/isakmp3.out
rename to src/tests/isakmp3.out
diff --git a/tests/isakmp4.out b/src/tests/isakmp4.out
similarity index 100%
rename from tests/isakmp4.out
rename to src/tests/isakmp4.out
diff --git a/tests/isakmp4500.pcap b/src/tests/isakmp4500.pcap
similarity index 100%
rename from tests/isakmp4500.pcap
rename to src/tests/isakmp4500.pcap
diff --git a/tests/isakmp5-v.out b/src/tests/isakmp5-v.out
similarity index 100%
rename from tests/isakmp5-v.out
rename to src/tests/isakmp5-v.out
diff --git a/tests/isis-infinite-loop.pcap b/src/tests/isis-infinite-loop.pcap
similarity index 100%
rename from tests/isis-infinite-loop.pcap
rename to src/tests/isis-infinite-loop.pcap
diff --git a/tests/isis_1-v.out b/src/tests/isis_1-v.out
similarity index 100%
rename from tests/isis_1-v.out
rename to src/tests/isis_1-v.out
diff --git a/tests/isis_1.out b/src/tests/isis_1.out
similarity index 100%
rename from tests/isis_1.out
rename to src/tests/isis_1.out
diff --git a/tests/isis_2-v.out b/src/tests/isis_2-v.out
similarity index 100%
rename from tests/isis_2-v.out
rename to src/tests/isis_2-v.out
diff --git a/tests/isis_3-v.out b/src/tests/isis_3-v.out
similarity index 100%
rename from tests/isis_3-v.out
rename to src/tests/isis_3-v.out
diff --git a/tests/isis_4-v.out b/src/tests/isis_4-v.out
similarity index 100%
rename from tests/isis_4-v.out
rename to src/tests/isis_4-v.out
diff --git a/tests/isis_infloop-v.out b/src/tests/isis_infloop-v.out
similarity index 100%
rename from tests/isis_infloop-v.out
rename to src/tests/isis_infloop-v.out
diff --git a/tests/isis_poi.out b/src/tests/isis_poi.out
similarity index 100%
rename from tests/isis_poi.out
rename to src/tests/isis_poi.out
diff --git a/tests/isis_poi.pcap b/src/tests/isis_poi.pcap
similarity index 100%
rename from tests/isis_poi.pcap
rename to src/tests/isis_poi.pcap
diff --git a/tests/isis_poi2.out b/src/tests/isis_poi2.out
similarity index 100%
rename from tests/isis_poi2.out
rename to src/tests/isis_poi2.out
diff --git a/tests/isis_poi2.pcap b/src/tests/isis_poi2.pcap
similarity index 100%
rename from tests/isis_poi2.pcap
rename to src/tests/isis_poi2.pcap
diff --git a/tests/isup.out b/src/tests/isup.out
similarity index 100%
rename from tests/isup.out
rename to src/tests/isup.out
diff --git a/tests/isup.pcap b/src/tests/isup.pcap
similarity index 100%
rename from tests/isup.pcap
rename to src/tests/isup.pcap
diff --git a/tests/isupvv.out b/src/tests/isupvv.out
similarity index 100%
rename from tests/isupvv.out
rename to src/tests/isupvv.out
diff --git a/tests/kday1.out b/src/tests/kday1.out
similarity index 100%
rename from tests/kday1.out
rename to src/tests/kday1.out
diff --git a/tests/kday1.pcap b/src/tests/kday1.pcap
similarity index 100%
rename from tests/kday1.pcap
rename to src/tests/kday1.pcap
diff --git a/tests/kday2.out b/src/tests/kday2.out
similarity index 100%
rename from tests/kday2.out
rename to src/tests/kday2.out
diff --git a/tests/kday2.pcap b/src/tests/kday2.pcap
similarity index 100%
rename from tests/kday2.pcap
rename to src/tests/kday2.pcap
diff --git a/tests/kday3.out b/src/tests/kday3.out
similarity index 100%
rename from tests/kday3.out
rename to src/tests/kday3.out
diff --git a/tests/kday3.pcap b/src/tests/kday3.pcap
similarity index 100%
rename from tests/kday3.pcap
rename to src/tests/kday3.pcap
diff --git a/tests/kday4.out b/src/tests/kday4.out
similarity index 100%
rename from tests/kday4.out
rename to src/tests/kday4.out
diff --git a/tests/kday4.pcap b/src/tests/kday4.pcap
similarity index 100%
rename from tests/kday4.pcap
rename to src/tests/kday4.pcap
diff --git a/tests/kday5.out b/src/tests/kday5.out
similarity index 100%
rename from tests/kday5.out
rename to src/tests/kday5.out
diff --git a/tests/kday5.pcap b/src/tests/kday5.pcap
similarity index 100%
rename from tests/kday5.pcap
rename to src/tests/kday5.pcap
diff --git a/tests/kday6.out b/src/tests/kday6.out
similarity index 100%
rename from tests/kday6.out
rename to src/tests/kday6.out
diff --git a/tests/kday6.pcap b/src/tests/kday6.pcap
similarity index 100%
rename from tests/kday6.pcap
rename to src/tests/kday6.pcap
diff --git a/tests/kday7.out b/src/tests/kday7.out
similarity index 100%
rename from tests/kday7.out
rename to src/tests/kday7.out
diff --git a/tests/kday7.pcap b/src/tests/kday7.pcap
similarity index 100%
rename from tests/kday7.pcap
rename to src/tests/kday7.pcap
diff --git a/tests/kday8.out b/src/tests/kday8.out
similarity index 100%
rename from tests/kday8.out
rename to src/tests/kday8.out
diff --git a/tests/kday8.pcap b/src/tests/kday8.pcap
similarity index 100%
rename from tests/kday8.pcap
rename to src/tests/kday8.pcap
diff --git a/tests/lacp-ev.out b/src/tests/lacp-ev.out
similarity index 100%
rename from tests/lacp-ev.out
rename to src/tests/lacp-ev.out
diff --git a/tests/ldp-infinite-loop.pcap b/src/tests/ldp-infinite-loop.pcap
similarity index 100%
rename from tests/ldp-infinite-loop.pcap
rename to src/tests/ldp-infinite-loop.pcap
diff --git a/tests/ldp_infloop.out b/src/tests/ldp_infloop.out
similarity index 100%
rename from tests/ldp_infloop.out
rename to src/tests/ldp_infloop.out
diff --git a/tests/lisp_eid_notify.out b/src/tests/lisp_eid_notify.out
similarity index 100%
rename from tests/lisp_eid_notify.out
rename to src/tests/lisp_eid_notify.out
diff --git a/tests/lisp_eid_notify.pcap b/src/tests/lisp_eid_notify.pcap
similarity index 100%
rename from tests/lisp_eid_notify.pcap
rename to src/tests/lisp_eid_notify.pcap
diff --git a/tests/lisp_eid_register.out b/src/tests/lisp_eid_register.out
similarity index 100%
rename from tests/lisp_eid_register.out
rename to src/tests/lisp_eid_register.out
diff --git a/tests/lisp_eid_register.pcap b/src/tests/lisp_eid_register.pcap
similarity index 100%
rename from tests/lisp_eid_register.pcap
rename to src/tests/lisp_eid_register.pcap
diff --git a/tests/lisp_ipv6.out b/src/tests/lisp_ipv6.out
similarity index 100%
rename from tests/lisp_ipv6.out
rename to src/tests/lisp_ipv6.out
diff --git a/tests/lisp_ipv6.pcap b/src/tests/lisp_ipv6.pcap
similarity index 100%
rename from tests/lisp_ipv6.pcap
rename to src/tests/lisp_ipv6.pcap
diff --git a/tests/lldp_cdp-ev.out b/src/tests/lldp_cdp-ev.out
similarity index 100%
rename from tests/lldp_cdp-ev.out
rename to src/tests/lldp_cdp-ev.out
diff --git a/tests/lmp-v.out b/src/tests/lmp-v.out
similarity index 100%
rename from tests/lmp-v.out
rename to src/tests/lmp-v.out
diff --git a/tests/lmp-v.sh b/src/tests/lmp-v.sh
similarity index 100%
rename from tests/lmp-v.sh
rename to src/tests/lmp-v.sh
diff --git a/tests/lmp.out b/src/tests/lmp.out
similarity index 100%
rename from tests/lmp.out
rename to src/tests/lmp.out
diff --git a/tests/lmp.pcap b/src/tests/lmp.pcap
similarity index 100%
rename from tests/lmp.pcap
rename to src/tests/lmp.pcap
diff --git a/tests/loopback.out b/src/tests/loopback.out
similarity index 100%
rename from tests/loopback.out
rename to src/tests/loopback.out
diff --git a/tests/loopback.pcap b/src/tests/loopback.pcap
similarity index 100%
rename from tests/loopback.pcap
rename to src/tests/loopback.pcap
diff --git a/tests/lspping-fec-ldp-v.out b/src/tests/lspping-fec-ldp-v.out
similarity index 100%
rename from tests/lspping-fec-ldp-v.out
rename to src/tests/lspping-fec-ldp-v.out
diff --git a/tests/lspping-fec-ldp-vv.out b/src/tests/lspping-fec-ldp-vv.out
similarity index 100%
rename from tests/lspping-fec-ldp-vv.out
rename to src/tests/lspping-fec-ldp-vv.out
diff --git a/tests/lspping-fec-ldp.out b/src/tests/lspping-fec-ldp.out
similarity index 100%
rename from tests/lspping-fec-ldp.out
rename to src/tests/lspping-fec-ldp.out
diff --git a/tests/lspping-fec-ldp.pcap b/src/tests/lspping-fec-ldp.pcap
similarity index 100%
rename from tests/lspping-fec-ldp.pcap
rename to src/tests/lspping-fec-ldp.pcap
diff --git a/tests/lspping-fec-rsvp-v.out b/src/tests/lspping-fec-rsvp-v.out
similarity index 100%
rename from tests/lspping-fec-rsvp-v.out
rename to src/tests/lspping-fec-rsvp-v.out
diff --git a/tests/lspping-fec-rsvp-vv.out b/src/tests/lspping-fec-rsvp-vv.out
similarity index 100%
rename from tests/lspping-fec-rsvp-vv.out
rename to src/tests/lspping-fec-rsvp-vv.out
diff --git a/tests/lspping-fec-rsvp.out b/src/tests/lspping-fec-rsvp.out
similarity index 100%
rename from tests/lspping-fec-rsvp.out
rename to src/tests/lspping-fec-rsvp.out
diff --git a/tests/lspping-fec-rsvp.pcap b/src/tests/lspping-fec-rsvp.pcap
similarity index 100%
rename from tests/lspping-fec-rsvp.pcap
rename to src/tests/lspping-fec-rsvp.pcap
diff --git a/tests/medsa-e.out b/src/tests/medsa-e.out
similarity index 100%
rename from tests/medsa-e.out
rename to src/tests/medsa-e.out
diff --git a/tests/medsa.out b/src/tests/medsa.out
similarity index 100%
rename from tests/medsa.out
rename to src/tests/medsa.out
diff --git a/tests/medsa.pcap b/src/tests/medsa.pcap
similarity index 100%
rename from tests/medsa.pcap
rename to src/tests/medsa.pcap
diff --git a/tests/mpbgp-linklocal-nexthop.out b/src/tests/mpbgp-linklocal-nexthop.out
similarity index 100%
rename from tests/mpbgp-linklocal-nexthop.out
rename to src/tests/mpbgp-linklocal-nexthop.out
diff --git a/tests/mpbgp-linklocal-nexthop.pcap b/src/tests/mpbgp-linklocal-nexthop.pcap
similarity index 100%
rename from tests/mpbgp-linklocal-nexthop.pcap
rename to src/tests/mpbgp-linklocal-nexthop.pcap
diff --git a/tests/mpls-ldp-hello.out b/src/tests/mpls-ldp-hello.out
similarity index 100%
rename from tests/mpls-ldp-hello.out
rename to src/tests/mpls-ldp-hello.out
diff --git a/tests/mpls-ldp-hello.pcap b/src/tests/mpls-ldp-hello.pcap
similarity index 100%
rename from tests/mpls-ldp-hello.pcap
rename to src/tests/mpls-ldp-hello.pcap
diff --git a/tests/mpls-traceroute-v.out b/src/tests/mpls-traceroute-v.out
similarity index 100%
rename from tests/mpls-traceroute-v.out
rename to src/tests/mpls-traceroute-v.out
diff --git a/tests/mpls-traceroute.out b/src/tests/mpls-traceroute.out
similarity index 100%
rename from tests/mpls-traceroute.out
rename to src/tests/mpls-traceroute.out
diff --git a/tests/mpls-traceroute.pcap b/src/tests/mpls-traceroute.pcap
similarity index 100%
rename from tests/mpls-traceroute.pcap
rename to src/tests/mpls-traceroute.pcap
diff --git a/tests/mptcp-fclose.out b/src/tests/mptcp-fclose.out
similarity index 100%
rename from tests/mptcp-fclose.out
rename to src/tests/mptcp-fclose.out
diff --git a/tests/mptcp-fclose.pcap b/src/tests/mptcp-fclose.pcap
similarity index 100%
rename from tests/mptcp-fclose.pcap
rename to src/tests/mptcp-fclose.pcap
diff --git a/tests/mptcp.out b/src/tests/mptcp.out
similarity index 100%
rename from tests/mptcp.out
rename to src/tests/mptcp.out
diff --git a/tests/mptcp.pcap b/src/tests/mptcp.pcap
similarity index 100%
rename from tests/mptcp.pcap
rename to src/tests/mptcp.pcap
diff --git a/tests/mrinfo_query.pcap b/src/tests/mrinfo_query.pcap
similarity index 100%
rename from tests/mrinfo_query.pcap
rename to src/tests/mrinfo_query.pcap
diff --git a/tests/msnlb.out b/src/tests/msnlb.out
similarity index 100%
rename from tests/msnlb.out
rename to src/tests/msnlb.out
diff --git a/tests/msnlb.pcap b/src/tests/msnlb.pcap
similarity index 100%
rename from tests/msnlb.pcap
rename to src/tests/msnlb.pcap
diff --git a/tests/msnlb2.out b/src/tests/msnlb2.out
similarity index 100%
rename from tests/msnlb2.out
rename to src/tests/msnlb2.out
diff --git a/tests/msnlb2.pcap b/src/tests/msnlb2.pcap
similarity index 100%
rename from tests/msnlb2.pcap
rename to src/tests/msnlb2.pcap
diff --git a/tests/mstp-v.out b/src/tests/mstp-v.out
similarity index 100%
rename from tests/mstp-v.out
rename to src/tests/mstp-v.out
diff --git a/tests/mtrace.out b/src/tests/mtrace.out
similarity index 100%
rename from tests/mtrace.out
rename to src/tests/mtrace.out
diff --git a/tests/mtrace.pcap b/src/tests/mtrace.pcap
similarity index 100%
rename from tests/mtrace.pcap
rename to src/tests/mtrace.pcap
diff --git a/tests/nflog-e.out b/src/tests/nflog-e.out
similarity index 100%
rename from tests/nflog-e.out
rename to src/tests/nflog-e.out
diff --git a/tests/nflog-e.sh b/src/tests/nflog-e.sh
similarity index 100%
rename from tests/nflog-e.sh
rename to src/tests/nflog-e.sh
diff --git a/tests/nflog.pcap b/src/tests/nflog.pcap
similarity index 100%
rename from tests/nflog.pcap
rename to src/tests/nflog.pcap
diff --git a/tests/nsh-over-vxlan-gpe-v.out b/src/tests/nsh-over-vxlan-gpe-v.out
similarity index 100%
rename from tests/nsh-over-vxlan-gpe-v.out
rename to src/tests/nsh-over-vxlan-gpe-v.out
diff --git a/tests/nsh-over-vxlan-gpe-vv.out b/src/tests/nsh-over-vxlan-gpe-vv.out
similarity index 100%
rename from tests/nsh-over-vxlan-gpe-vv.out
rename to src/tests/nsh-over-vxlan-gpe-vv.out
diff --git a/tests/nsh-over-vxlan-gpe-vvv.out b/src/tests/nsh-over-vxlan-gpe-vvv.out
similarity index 100%
rename from tests/nsh-over-vxlan-gpe-vvv.out
rename to src/tests/nsh-over-vxlan-gpe-vvv.out
diff --git a/tests/nsh-over-vxlan-gpe.out b/src/tests/nsh-over-vxlan-gpe.out
similarity index 100%
rename from tests/nsh-over-vxlan-gpe.out
rename to src/tests/nsh-over-vxlan-gpe.out
diff --git a/tests/nsh-over-vxlan-gpe.pcap b/src/tests/nsh-over-vxlan-gpe.pcap
similarity index 100%
rename from tests/nsh-over-vxlan-gpe.pcap
rename to src/tests/nsh-over-vxlan-gpe.pcap
diff --git a/tests/of10_7050q-v.out b/src/tests/of10_7050q-v.out
similarity index 100%
rename from tests/of10_7050q-v.out
rename to src/tests/of10_7050q-v.out
diff --git a/tests/of10_7050q.pcap b/src/tests/of10_7050q.pcap
similarity index 100%
rename from tests/of10_7050q.pcap
rename to src/tests/of10_7050q.pcap
diff --git a/tests/of10_7050sx_bsn-vv.out b/src/tests/of10_7050sx_bsn-vv.out
similarity index 100%
rename from tests/of10_7050sx_bsn-vv.out
rename to src/tests/of10_7050sx_bsn-vv.out
diff --git a/tests/of10_7050sx_bsn.pcap b/src/tests/of10_7050sx_bsn.pcap
similarity index 100%
rename from tests/of10_7050sx_bsn.pcap
rename to src/tests/of10_7050sx_bsn.pcap
diff --git a/tests/of10_p3295-vv.out b/src/tests/of10_p3295-vv.out
similarity index 100%
rename from tests/of10_p3295-vv.out
rename to src/tests/of10_p3295-vv.out
diff --git a/tests/of10_p3295.pcap b/src/tests/of10_p3295.pcap
similarity index 100%
rename from tests/of10_p3295.pcap
rename to src/tests/of10_p3295.pcap
diff --git a/tests/of10_pf5240-vv.out b/src/tests/of10_pf5240-vv.out
similarity index 100%
rename from tests/of10_pf5240-vv.out
rename to src/tests/of10_pf5240-vv.out
diff --git a/tests/of10_pf5240.pcap b/src/tests/of10_pf5240.pcap
similarity index 100%
rename from tests/of10_pf5240.pcap
rename to src/tests/of10_pf5240.pcap
diff --git a/tests/of10_s4810-vvvv.out b/src/tests/of10_s4810-vvvv.out
similarity index 100%
rename from tests/of10_s4810-vvvv.out
rename to src/tests/of10_s4810-vvvv.out
diff --git a/tests/of10_s4810.pcap b/src/tests/of10_s4810.pcap
similarity index 100%
rename from tests/of10_s4810.pcap
rename to src/tests/of10_s4810.pcap
diff --git a/tests/ospf-gmpls.out b/src/tests/ospf-gmpls.out
similarity index 100%
rename from tests/ospf-gmpls.out
rename to src/tests/ospf-gmpls.out
diff --git a/tests/ospf-gmpls.pcap b/src/tests/ospf-gmpls.pcap
similarity index 100%
rename from tests/ospf-gmpls.pcap
rename to src/tests/ospf-gmpls.pcap
diff --git a/tests/ospf3_ah-vv.out b/src/tests/ospf3_ah-vv.out
similarity index 100%
rename from tests/ospf3_ah-vv.out
rename to src/tests/ospf3_ah-vv.out
diff --git a/tests/ospf3_auth-vv.out b/src/tests/ospf3_auth-vv.out
similarity index 100%
rename from tests/ospf3_auth-vv.out
rename to src/tests/ospf3_auth-vv.out
diff --git a/tests/ospf3_auth.pcap b/src/tests/ospf3_auth.pcap
similarity index 100%
rename from tests/ospf3_auth.pcap
rename to src/tests/ospf3_auth.pcap
diff --git a/tests/ospf3_bc-vv.out b/src/tests/ospf3_bc-vv.out
similarity index 100%
rename from tests/ospf3_bc-vv.out
rename to src/tests/ospf3_bc-vv.out
diff --git a/tests/ospf3_mp-vv.out b/src/tests/ospf3_mp-vv.out
similarity index 100%
rename from tests/ospf3_mp-vv.out
rename to src/tests/ospf3_mp-vv.out
diff --git a/tests/ospf3_nbma-vv.out b/src/tests/ospf3_nbma-vv.out
similarity index 100%
rename from tests/ospf3_nbma-vv.out
rename to src/tests/ospf3_nbma-vv.out
diff --git a/tests/pcap-invalid-version-1.out b/src/tests/pcap-invalid-version-1.out
similarity index 100%
rename from tests/pcap-invalid-version-1.out
rename to src/tests/pcap-invalid-version-1.out
diff --git a/tests/pcap-invalid-version-1.pcap b/src/tests/pcap-invalid-version-1.pcap
similarity index 100%
rename from tests/pcap-invalid-version-1.pcap
rename to src/tests/pcap-invalid-version-1.pcap
diff --git a/tests/pcap-invalid-version-2.out b/src/tests/pcap-invalid-version-2.out
similarity index 100%
rename from tests/pcap-invalid-version-2.out
rename to src/tests/pcap-invalid-version-2.out
diff --git a/tests/pcap-invalid-version-2.pcap b/src/tests/pcap-invalid-version-2.pcap
similarity index 100%
rename from tests/pcap-invalid-version-2.pcap
rename to src/tests/pcap-invalid-version-2.pcap
diff --git a/tests/pcap-ng-invalid-vers-1.out b/src/tests/pcap-ng-invalid-vers-1.out
similarity index 100%
rename from tests/pcap-ng-invalid-vers-1.out
rename to src/tests/pcap-ng-invalid-vers-1.out
diff --git a/tests/pcap-ng-invalid-vers-1.pcap b/src/tests/pcap-ng-invalid-vers-1.pcap
similarity index 100%
rename from tests/pcap-ng-invalid-vers-1.pcap
rename to src/tests/pcap-ng-invalid-vers-1.pcap
diff --git a/tests/pcap-ng-invalid-vers-2.out b/src/tests/pcap-ng-invalid-vers-2.out
similarity index 100%
rename from tests/pcap-ng-invalid-vers-2.out
rename to src/tests/pcap-ng-invalid-vers-2.out
diff --git a/tests/pcap-ng-invalid-vers-2.pcap b/src/tests/pcap-ng-invalid-vers-2.pcap
similarity index 100%
rename from tests/pcap-ng-invalid-vers-2.pcap
rename to src/tests/pcap-ng-invalid-vers-2.pcap
diff --git a/tests/pgm_zmtp1.pcap b/src/tests/pgm_zmtp1.pcap
similarity index 100%
rename from tests/pgm_zmtp1.pcap
rename to src/tests/pgm_zmtp1.pcap
diff --git a/tests/pgm_zmtp1v.out b/src/tests/pgm_zmtp1v.out
similarity index 100%
rename from tests/pgm_zmtp1v.out
rename to src/tests/pgm_zmtp1v.out
diff --git a/tests/pgmv.out b/src/tests/pgmv.out
similarity index 100%
rename from tests/pgmv.out
rename to src/tests/pgmv.out
diff --git a/tests/pimv2_bootstrap-v.out b/src/tests/pimv2_bootstrap-v.out
similarity index 100%
rename from tests/pimv2_bootstrap-v.out
rename to src/tests/pimv2_bootstrap-v.out
diff --git a/tests/pimv2_dm-v.out b/src/tests/pimv2_dm-v.out
similarity index 100%
rename from tests/pimv2_dm-v.out
rename to src/tests/pimv2_dm-v.out
diff --git a/tests/pimv2_hellos-v.out b/src/tests/pimv2_hellos-v.out
similarity index 100%
rename from tests/pimv2_hellos-v.out
rename to src/tests/pimv2_hellos-v.out
diff --git a/tests/pimv2_register-v.out b/src/tests/pimv2_register-v.out
similarity index 100%
rename from tests/pimv2_register-v.out
rename to src/tests/pimv2_register-v.out
diff --git a/tests/pimv2_sm-v.out b/src/tests/pimv2_sm-v.out
similarity index 100%
rename from tests/pimv2_sm-v.out
rename to src/tests/pimv2_sm-v.out
diff --git a/tests/pppoe.out b/src/tests/pppoe.out
similarity index 100%
rename from tests/pppoe.out
rename to src/tests/pppoe.out
diff --git a/tests/pppoe.pcap b/src/tests/pppoe.pcap
similarity index 100%
rename from tests/pppoe.pcap
rename to src/tests/pppoe.pcap
diff --git a/tests/pppoes.out b/src/tests/pppoes.out
similarity index 100%
rename from tests/pppoes.out
rename to src/tests/pppoes.out
diff --git a/tests/pppoes.pcap b/src/tests/pppoes.pcap
similarity index 100%
rename from tests/pppoes.pcap
rename to src/tests/pppoes.pcap
diff --git a/tests/pppoes_id.out b/src/tests/pppoes_id.out
similarity index 100%
rename from tests/pppoes_id.out
rename to src/tests/pppoes_id.out
diff --git a/tests/print-A.out b/src/tests/print-A.out
similarity index 100%
rename from tests/print-A.out
rename to src/tests/print-A.out
diff --git a/tests/print-AA.out b/src/tests/print-AA.out
similarity index 100%
rename from tests/print-AA.out
rename to src/tests/print-AA.out
diff --git a/tests/print-capX.out b/src/tests/print-capX.out
similarity index 100%
rename from tests/print-capX.out
rename to src/tests/print-capX.out
diff --git a/tests/print-capXX.out b/src/tests/print-capXX.out
similarity index 100%
rename from tests/print-capXX.out
rename to src/tests/print-capXX.out
diff --git a/tests/print-flags.pcap b/src/tests/print-flags.pcap
similarity index 100%
rename from tests/print-flags.pcap
rename to src/tests/print-flags.pcap
diff --git a/tests/print-x.out b/src/tests/print-x.out
similarity index 100%
rename from tests/print-x.out
rename to src/tests/print-x.out
diff --git a/tests/print-xx.out b/src/tests/print-xx.out
similarity index 100%
rename from tests/print-xx.out
rename to src/tests/print-xx.out
diff --git a/tests/radius-port1700-v.out b/src/tests/radius-port1700-v.out
similarity index 100%
rename from tests/radius-port1700-v.out
rename to src/tests/radius-port1700-v.out
diff --git a/tests/radius-rfc4675-v.out b/src/tests/radius-rfc4675-v.out
similarity index 100%
rename from tests/radius-rfc4675-v.out
rename to src/tests/radius-rfc4675-v.out
diff --git a/tests/radius-rfc5176-v.out b/src/tests/radius-rfc5176-v.out
similarity index 100%
rename from tests/radius-rfc5176-v.out
rename to src/tests/radius-rfc5176-v.out
diff --git a/tests/radius-v.out b/src/tests/radius-v.out
similarity index 100%
rename from tests/radius-v.out
rename to src/tests/radius-v.out
diff --git a/tests/resp_1.out b/src/tests/resp_1.out
similarity index 100%
rename from tests/resp_1.out
rename to src/tests/resp_1.out
diff --git a/tests/resp_1_benchmark.pcap b/src/tests/resp_1_benchmark.pcap
similarity index 100%
rename from tests/resp_1_benchmark.pcap
rename to src/tests/resp_1_benchmark.pcap
diff --git a/tests/resp_2.out b/src/tests/resp_2.out
similarity index 100%
rename from tests/resp_2.out
rename to src/tests/resp_2.out
diff --git a/tests/resp_2_inline.pcap b/src/tests/resp_2_inline.pcap
similarity index 100%
rename from tests/resp_2_inline.pcap
rename to src/tests/resp_2_inline.pcap
diff --git a/tests/resp_3.out b/src/tests/resp_3.out
similarity index 100%
rename from tests/resp_3.out
rename to src/tests/resp_3.out
diff --git a/tests/resp_3_malicious.pcap b/src/tests/resp_3_malicious.pcap
similarity index 100%
rename from tests/resp_3_malicious.pcap
rename to src/tests/resp_3_malicious.pcap
diff --git a/tests/ripv1v2.out b/src/tests/ripv1v2.out
similarity index 100%
rename from tests/ripv1v2.out
rename to src/tests/ripv1v2.out
diff --git a/tests/ripv1v2.pcap b/src/tests/ripv1v2.pcap
similarity index 100%
rename from tests/ripv1v2.pcap
rename to src/tests/ripv1v2.pcap
diff --git a/tests/ripv2_auth.out b/src/tests/ripv2_auth.out
similarity index 100%
rename from tests/ripv2_auth.out
rename to src/tests/ripv2_auth.out
diff --git a/tests/ripv2_auth.pcap b/src/tests/ripv2_auth.pcap
similarity index 100%
rename from tests/ripv2_auth.pcap
rename to src/tests/ripv2_auth.pcap
diff --git a/tests/rpl-14-dao.pcap b/src/tests/rpl-14-dao.pcap
similarity index 100%
rename from tests/rpl-14-dao.pcap
rename to src/tests/rpl-14-dao.pcap
diff --git a/tests/rpl-14-daovvv.out b/src/tests/rpl-14-daovvv.out
similarity index 100%
rename from tests/rpl-14-daovvv.out
rename to src/tests/rpl-14-daovvv.out
diff --git a/tests/rpl-19-pickdag.out b/src/tests/rpl-19-pickdag.out
similarity index 100%
rename from tests/rpl-19-pickdag.out
rename to src/tests/rpl-19-pickdag.out
diff --git a/tests/rpl-19-pickdag.pcap b/src/tests/rpl-19-pickdag.pcap
similarity index 100%
rename from tests/rpl-19-pickdag.pcap
rename to src/tests/rpl-19-pickdag.pcap
diff --git a/tests/rpl-19-pickdagvvv.out b/src/tests/rpl-19-pickdagvvv.out
similarity index 100%
rename from tests/rpl-19-pickdagvvv.out
rename to src/tests/rpl-19-pickdagvvv.out
diff --git a/tests/rpl-26-senddaoack.pcap b/src/tests/rpl-26-senddaoack.pcap
similarity index 100%
rename from tests/rpl-26-senddaoack.pcap
rename to src/tests/rpl-26-senddaoack.pcap
diff --git a/tests/rpl-26-senddaovv.out b/src/tests/rpl-26-senddaovv.out
similarity index 100%
rename from tests/rpl-26-senddaovv.out
rename to src/tests/rpl-26-senddaovv.out
diff --git a/tests/rpvst-v.out b/src/tests/rpvst-v.out
similarity index 100%
rename from tests/rpvst-v.out
rename to src/tests/rpvst-v.out
diff --git a/tests/rpvstp-trunk-native-vid5.pcap b/src/tests/rpvstp-trunk-native-vid5.pcap
similarity index 100%
rename from tests/rpvstp-trunk-native-vid5.pcap
rename to src/tests/rpvstp-trunk-native-vid5.pcap
diff --git a/tests/rstp-v.out b/src/tests/rstp-v.out
similarity index 100%
rename from tests/rstp-v.out
rename to src/tests/rstp-v.out
diff --git a/tests/rsvp-infinite-loop.pcap b/src/tests/rsvp-infinite-loop.pcap
similarity index 100%
rename from tests/rsvp-infinite-loop.pcap
rename to src/tests/rsvp-infinite-loop.pcap
diff --git a/tests/rsvp_infloop-v.out b/src/tests/rsvp_infloop-v.out
similarity index 100%
rename from tests/rsvp_infloop-v.out
rename to src/tests/rsvp_infloop-v.out
diff --git a/tests/sflow_multiple_counter_30_pdus-nv.out b/src/tests/sflow_multiple_counter_30_pdus-nv.out
similarity index 100%
rename from tests/sflow_multiple_counter_30_pdus-nv.out
rename to src/tests/sflow_multiple_counter_30_pdus-nv.out
diff --git a/tests/sflow_multiple_counter_30_pdus.out b/src/tests/sflow_multiple_counter_30_pdus.out
similarity index 100%
rename from tests/sflow_multiple_counter_30_pdus.out
rename to src/tests/sflow_multiple_counter_30_pdus.out
diff --git a/tests/sflow_multiple_counter_30_pdus.pcap b/src/tests/sflow_multiple_counter_30_pdus.pcap
similarity index 100%
rename from tests/sflow_multiple_counter_30_pdus.pcap
rename to src/tests/sflow_multiple_counter_30_pdus.pcap
diff --git a/tests/spb.out b/src/tests/spb.out
similarity index 100%
rename from tests/spb.out
rename to src/tests/spb.out
diff --git a/tests/spb.pcap b/src/tests/spb.pcap
similarity index 100%
rename from tests/spb.pcap
rename to src/tests/spb.pcap
diff --git a/tests/spb_bpduv4.out b/src/tests/spb_bpduv4.out
similarity index 100%
rename from tests/spb_bpduv4.out
rename to src/tests/spb_bpduv4.out
diff --git a/tests/spb_bpduv4.pcap b/src/tests/spb_bpduv4.pcap
similarity index 100%
rename from tests/spb_bpduv4.pcap
rename to src/tests/spb_bpduv4.pcap
diff --git a/tests/stp-v.out b/src/tests/stp-v.out
similarity index 100%
rename from tests/stp-v.out
rename to src/tests/stp-v.out
diff --git a/tests/syslog-v.out b/src/tests/syslog-v.out
similarity index 100%
rename from tests/syslog-v.out
rename to src/tests/syslog-v.out
diff --git a/tests/syslog_udp.pcap b/src/tests/syslog_udp.pcap
similarity index 100%
rename from tests/syslog_udp.pcap
rename to src/tests/syslog_udp.pcap
diff --git a/tests/tfo-5c1fa7f9ae91.pcap b/src/tests/tfo-5c1fa7f9ae91.pcap
similarity index 100%
rename from tests/tfo-5c1fa7f9ae91.pcap
rename to src/tests/tfo-5c1fa7f9ae91.pcap
diff --git a/tests/tfo.out b/src/tests/tfo.out
similarity index 100%
rename from tests/tfo.out
rename to src/tests/tfo.out
diff --git a/tests/udld-v.out b/src/tests/udld-v.out
similarity index 100%
rename from tests/udld-v.out
rename to src/tests/udld-v.out
diff --git a/tests/unaligned-nfs-1.out b/src/tests/unaligned-nfs-1.out
similarity index 100%
rename from tests/unaligned-nfs-1.out
rename to src/tests/unaligned-nfs-1.out
diff --git a/tests/unaligned-nfs-1.pcap b/src/tests/unaligned-nfs-1.pcap
similarity index 100%
rename from tests/unaligned-nfs-1.pcap
rename to src/tests/unaligned-nfs-1.pcap
diff --git a/tests/vrrp-v.out b/src/tests/vrrp-v.out
similarity index 100%
rename from tests/vrrp-v.out
rename to src/tests/vrrp-v.out
diff --git a/tests/vrrp.out b/src/tests/vrrp.out
similarity index 100%
rename from tests/vrrp.out
rename to src/tests/vrrp.out
diff --git a/tests/vrrp.pcap b/src/tests/vrrp.pcap
similarity index 100%
rename from tests/vrrp.pcap
rename to src/tests/vrrp.pcap
diff --git a/tests/vxlan.out b/src/tests/vxlan.out
similarity index 100%
rename from tests/vxlan.out
rename to src/tests/vxlan.out
diff --git a/tests/vxlan.pcap b/src/tests/vxlan.pcap
similarity index 100%
rename from tests/vxlan.pcap
rename to src/tests/vxlan.pcap
diff --git a/tests/zmtp1.out b/src/tests/zmtp1.out
similarity index 100%
rename from tests/zmtp1.out
rename to src/tests/zmtp1.out
diff --git a/tests/zmtp1.pcap b/src/tests/zmtp1.pcap
similarity index 100%
rename from tests/zmtp1.pcap
rename to src/tests/zmtp1.pcap
diff --git a/timeval-operations.h b/src/timeval-operations.h
similarity index 100%
rename from timeval-operations.h
rename to src/timeval-operations.h
diff --git a/udp.h b/src/udp.h
similarity index 100%
rename from udp.h
rename to src/udp.h
diff --git a/util-print.c b/src/util-print.c
similarity index 100%
rename from util-print.c
rename to src/util-print.c
diff --git a/util.c b/src/util.c
similarity index 100%
rename from util.c
rename to src/util.c
diff --git a/vfprintf.c b/src/vfprintf.c
similarity index 100%
rename from vfprintf.c
rename to src/vfprintf.c
diff --git a/win32/prj/GNUmakefile b/src/win32/prj/GNUmakefile
similarity index 100%
rename from win32/prj/GNUmakefile
rename to src/win32/prj/GNUmakefile
diff --git a/win32/prj/WinDump.dsp b/src/win32/prj/WinDump.dsp
similarity index 100%
rename from win32/prj/WinDump.dsp
rename to src/win32/prj/WinDump.dsp
diff --git a/win32/prj/WinDump.dsw b/src/win32/prj/WinDump.dsw
similarity index 100%
rename from win32/prj/WinDump.dsw
rename to src/win32/prj/WinDump.dsw