mirror of
https://github.com/ntop/n2n.git
synced 2024-11-01 05:07:57 +05:30
Basic C Code lint checker and shell checker (#859)
* Factor build packages out into a more maintainable list * Create a location for scripts to live * Provide a make target to return the source dir as close as reasonable to the original distributed state * Add a code lint step, checking the coding style * Change test harness as recommended by shellcheck * Ensure we actually have the linter tool installed * Use the correct directory for cmake to run the tests * Adjust for the older uncrustify in the current github ubuntu-latest * Make one file pass the linter * Integrate the lint with the existing test workflow * Add files with minimal changes needed to the linter * Add more files with minimal changes needed to the linter * Dont build binaries if we fail the lint test * Update the phony targets with the lint steps * Ensure the flake8 package is installed in the new lint workflow job * Use the makefile to drive the packages needed to install for linting * No need to add dependancies on lint, just rely on the workflow status to show failure * Update the scripts dir README to reflect current assumptions * Rename and briefly document the indent.sh script * Fix the ignore to ignore the right Makefile * Rename the test_harness script to make it clear it is a shell script * Provide a master lint make target and add a shell script lint tool * Elminate stray tabs * Drop include/auth.h from linter - there are inconsistant results with function definitions when using the current uncrustify rules
This commit is contained in:
parent
ae502d9181
commit
80b33cd1a9
39
.github/workflows/tests.yml
vendored
39
.github/workflows/tests.yml
vendored
@ -12,15 +12,31 @@ jobs:
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Install essential
|
||||
run: |
|
||||
sudo apt-get install flake8
|
||||
- name: Run minimal test set
|
||||
run: |
|
||||
./autogen.sh
|
||||
./configure
|
||||
make test
|
||||
make lint.python
|
||||
|
||||
lint:
|
||||
name: Code syntax
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Make the makefiles
|
||||
run: |
|
||||
./autogen.sh
|
||||
./configure
|
||||
|
||||
- name: Install essential
|
||||
run: |
|
||||
make build-dep
|
||||
|
||||
- name: Run the lint tools
|
||||
run: |
|
||||
make lint
|
||||
|
||||
test_linux:
|
||||
needs: smoketest
|
||||
@ -216,8 +232,9 @@ jobs:
|
||||
uses: codecov/codecov-action@v2
|
||||
|
||||
package_dpkg:
|
||||
needs: test_linux
|
||||
name: Package for Debian/Ubuntu
|
||||
needs:
|
||||
- test_linux
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: true
|
||||
@ -260,8 +277,9 @@ jobs:
|
||||
path: packages/debian/*.deb
|
||||
|
||||
package_rpm:
|
||||
needs: test_linux
|
||||
name: Package for Redhat/RPM
|
||||
needs:
|
||||
- test_linux
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
@ -296,8 +314,9 @@ jobs:
|
||||
path: rpmbuild/RPMS/x86_64/*.rpm
|
||||
|
||||
binaries_windows:
|
||||
needs: test_windows
|
||||
name: Binaries for Windows (x86_64-pc-mingw64)
|
||||
needs:
|
||||
- test_windows
|
||||
runs-on: windows-latest
|
||||
|
||||
steps:
|
||||
@ -321,8 +340,9 @@ jobs:
|
||||
path: binaries
|
||||
|
||||
binaries_macos:
|
||||
needs: test_macos
|
||||
name: Binaries for MacOS (x86_64-apple-darwin)
|
||||
needs:
|
||||
- test_macos
|
||||
runs-on: macos-latest
|
||||
|
||||
steps:
|
||||
@ -351,8 +371,9 @@ jobs:
|
||||
path: binaries
|
||||
|
||||
binaries_linux_crosscompile:
|
||||
needs: test_linux
|
||||
name: Binaries for linux
|
||||
needs:
|
||||
- test_linux
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: true
|
||||
|
7
.gitignore
vendored
7
.gitignore
vendored
@ -4,7 +4,7 @@
|
||||
configure
|
||||
configure.ac
|
||||
config.*
|
||||
./Makefile
|
||||
/Makefile
|
||||
tools/Makefile
|
||||
autom4te.cache
|
||||
edge
|
||||
@ -45,3 +45,8 @@ tests/*.out
|
||||
*.gcda
|
||||
*.gcov
|
||||
coverage/
|
||||
|
||||
# Files generated while running linting
|
||||
*.indent
|
||||
*.unc-backup.md5~
|
||||
*.unc-backup~
|
||||
|
@ -271,6 +271,6 @@ install(FILES ${PROJECT_BINARY_DIR}/doc/n2n.7.gz
|
||||
# TODO:
|
||||
# - Add the right dependancy so that the tests binaries get built first
|
||||
enable_testing()
|
||||
add_test(tests ${PROJECT_SOURCE_DIR}/tools/test_harness ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/tests)
|
||||
add_test(tests ${PROJECT_SOURCE_DIR}/scripts/test_harness.sh ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/tests)
|
||||
|
||||
endif(DEFINED UNIX)
|
||||
|
59
Makefile.in
59
Makefile.in
@ -83,7 +83,28 @@ N2N_LIB=libn2n.a
|
||||
N2N_OBJS=$(patsubst src/%.c, src/%.o, $(wildcard src/*.c))
|
||||
N2N_DEPS=$(wildcard include/*.h) $(wildcard src/*.c) Makefile
|
||||
|
||||
# As source files pass the linter, they can be added here (If all the source
|
||||
# is passing the linter tests, this can be refactored)
|
||||
LINT_CCODE=\
|
||||
include/edge_utils_win32.h \
|
||||
include/n2n_define.h \
|
||||
include/pearson.h \
|
||||
include/speck.h \
|
||||
src/edge_utils_win32.c \
|
||||
src/example_edge_embed_quick_edge_init.c \
|
||||
src/header_encryption.c \
|
||||
src/sn_selection.c \
|
||||
src/transform_cc20.c \
|
||||
src/tuntap_linux.c \
|
||||
src/wire.c \
|
||||
tools/tests-compress.c \
|
||||
tools/tests-elliptic.c \
|
||||
tools/tests-hashing.c \
|
||||
tools/tests-transform.c \
|
||||
tools/tests-wire.c \
|
||||
|
||||
export LDLIBS
|
||||
|
||||
LDLIBS+=-ln2n
|
||||
LDLIBS+=@N2N_LIBS@
|
||||
|
||||
@ -108,12 +129,26 @@ APPS+=example_sn_embed
|
||||
|
||||
DOCS=edge.8.gz supernode.1.gz n2n.7.gz
|
||||
|
||||
# This is the superset of all packages that might be needed during the build.
|
||||
# Mostly of use in automated build systems.
|
||||
BUILD_DEP:=\
|
||||
autoconf \
|
||||
build-essential \
|
||||
flake8 \
|
||||
gcovr \
|
||||
libcap-dev \
|
||||
libzstd-dev \
|
||||
shellcheck \
|
||||
uncrustify \
|
||||
|
||||
SUBDIRS+=tools
|
||||
|
||||
COVERAGEDIR?=coverage
|
||||
|
||||
.PHONY: $(SUBDIRS)
|
||||
.PHONY: steps build push all clean install test cover gcov build-dep
|
||||
.PHONY: steps build push all clean distclean install test cover gcov build-dep
|
||||
.PHONY: lint lint.python lint.ccode lint.shell
|
||||
|
||||
all: $(APPS) $(DOCS) $(SUBDIRS)
|
||||
|
||||
tools: $(N2N_LIB)
|
||||
@ -147,11 +182,19 @@ $(N2N_LIB): $(N2N_OBJS)
|
||||
win32/n2n_win32.a: win32
|
||||
|
||||
test: tools
|
||||
tools/test_harness
|
||||
scripts/test_harness.sh
|
||||
|
||||
lint: lint.python lint.ccode lint.shell
|
||||
|
||||
lint.python:
|
||||
flake8 scripts/n2nctl scripts/n2nhttpd
|
||||
|
||||
lint.ccode:
|
||||
scripts/indent.sh $(LINT_CCODE)
|
||||
|
||||
lint.shell:
|
||||
shellcheck scripts/*.sh
|
||||
|
||||
# To generate coverage information, run configure with
|
||||
# CFLAGS="-fprofile-arcs -ftest-coverage" LDFLAGS="--coverage"
|
||||
# and run the desired tests. Ensure that package gcovr is installed
|
||||
@ -168,11 +211,10 @@ gcov:
|
||||
gcov $(N2N_OBJS)
|
||||
$(MAKE) -C tools gcov
|
||||
|
||||
# This is the superset of all packages that might be needed.
|
||||
# It is a convinent target to use during development or from a CI/CD system
|
||||
# This is a convinent target to use during development or from a CI/CD system
|
||||
build-dep:
|
||||
ifeq ($(CONFIG_TARGET),generic)
|
||||
sudo apt install build-essential autoconf libcap-dev libzstd-dev gcovr flake8
|
||||
sudo apt install $(BUILD_DEP)
|
||||
else ifeq ($(CONFIG_TARGET),darwin)
|
||||
brew install automake gcovr
|
||||
else
|
||||
@ -184,6 +226,13 @@ clean:
|
||||
rm -f tests/*.out src/*.gcno src/*.gcda
|
||||
for dir in $(SUBDIRS); do $(MAKE) -C $$dir clean; done
|
||||
|
||||
distclean:
|
||||
rm -f tests/*.out src/*.gcno src/*.gcda src/*.indent src/*.unc-backup*
|
||||
rm -rf autom4te.cache/
|
||||
rm -f config.log config.status configure configure.ac Makefile tools/Makefile include/config.h include/config.h.in
|
||||
rm -f doc/edge.8.gz doc/n2n.7.gz doc/supernode.1.gz
|
||||
rm -f $(addprefix src/,$(APPS))
|
||||
|
||||
install: edge supernode edge.8.gz supernode.1.gz n2n.7.gz
|
||||
echo "MANDIR=$(MANDIR)"
|
||||
$(MKDIR) $(SBINDIR) $(MAN1DIR) $(MAN7DIR) $(MAN8DIR)
|
||||
|
@ -13,7 +13,13 @@ This shell script is used during development to help build on Windows
|
||||
systems. An example of how to use it is shown in
|
||||
the [Building document](Building.md)
|
||||
|
||||
## `tools/test_harness`
|
||||
## `scripts/indent.sh`
|
||||
|
||||
This shell script is a wrapper for the `uncrustify` C code style checker
|
||||
which checks or applies a set of rules to the code. It is used during
|
||||
the automated lint checks.
|
||||
|
||||
## `scripts/test_harness.sh`
|
||||
|
||||
This shell script is used to run automated tests during development.
|
||||
|
||||
|
@ -28,7 +28,7 @@ int bin_to_ascii (char *out, uint8_t *in, size_t in_len);
|
||||
|
||||
int ascii_to_bin (uint8_t *out, char *in);
|
||||
|
||||
int generate_private_key(n2n_private_public_key_t key, char *in);
|
||||
int generate_private_key (n2n_private_public_key_t key, char *in);
|
||||
|
||||
int generate_public_key (n2n_private_public_key_t pub, n2n_private_public_key_t prv);
|
||||
|
||||
|
@ -43,7 +43,7 @@ struct tunread_arg {
|
||||
};
|
||||
|
||||
extern HANDLE startTunReadThread (struct tunread_arg *arg);
|
||||
int get_best_interface_ip(n2n_edge_t * eee, dec_ip_str_t ip_addr);
|
||||
int get_best_interface_ip (n2n_edge_t * eee, dec_ip_str_t ip_addr);
|
||||
|
||||
|
||||
#endif /* WIN32 */
|
||||
|
@ -92,14 +92,14 @@
|
||||
|
||||
/* Federation name and indicators */
|
||||
#define FEDERATION_NAME "*Federation"
|
||||
enum federation{IS_NO_FEDERATION = 0,IS_FEDERATION = 1};
|
||||
enum federation {IS_NO_FEDERATION = 0,IS_FEDERATION = 1};
|
||||
|
||||
/* (un)purgeable community indicator (supernode) */
|
||||
#define COMMUNITY_UNPURGEABLE 0
|
||||
#define COMMUNITY_PURGEABLE 1
|
||||
|
||||
/* (un)purgeable supernode indicator */
|
||||
enum sn_purge{SN_PURGEABLE = 0, SN_UNPURGEABLE = 1};
|
||||
enum sn_purge {SN_PURGEABLE = 0, SN_UNPURGEABLE = 1};
|
||||
|
||||
/* Header encryption indicators */
|
||||
#define HEADER_ENCRYPTION_UNKNOWN 0
|
||||
@ -133,7 +133,7 @@ enum n2n_mgmt_type {
|
||||
/* which the socket explicitly is closed before reopening */
|
||||
|
||||
/* flag used in add_sn_to_list_by_mac_or_sock */
|
||||
enum skip_add{SN_ADD = 0, SN_ADD_SKIP = 1, SN_ADD_ADDED = 2};
|
||||
enum skip_add {SN_ADD = 0, SN_ADD_SKIP = 1, SN_ADD_ADDED = 2};
|
||||
|
||||
#define N2N_NETMASK_STR_SIZE 16 /* dotted decimal 12 numbers + 3 dots */
|
||||
#define N2N_MACNAMSIZ 18 /* AA:BB:CC:DD:EE:FF + NULL*/
|
||||
|
@ -33,4 +33,4 @@ uint32_t pearson_hash_32 (const uint8_t *in, size_t len);
|
||||
|
||||
uint16_t pearson_hash_16 (const uint8_t *in, size_t len);
|
||||
|
||||
void pearson_hash_init();
|
||||
void pearson_hash_init ();
|
||||
|
@ -47,7 +47,7 @@
|
||||
|
||||
#define u512 __m512i
|
||||
|
||||
#define SPECK_ALIGNED_CTX 64
|
||||
#define SPECK_ALIGNED_CTX 64
|
||||
|
||||
typedef struct {
|
||||
u512 rk[34];
|
||||
@ -63,7 +63,7 @@ typedef struct {
|
||||
|
||||
#define u256 __m256i
|
||||
|
||||
#define SPECK_ALIGNED_CTX 32
|
||||
#define SPECK_ALIGNED_CTX 32
|
||||
|
||||
typedef struct {
|
||||
u256 rk[34];
|
||||
@ -79,8 +79,8 @@ typedef struct {
|
||||
|
||||
#define u128 __m128i
|
||||
|
||||
#define SPECK_ALIGNED_CTX 16
|
||||
#define SPECK_CTX_BYVAL 1
|
||||
#define SPECK_ALIGNED_CTX 16
|
||||
#define SPECK_CTX_BYVAL 1
|
||||
|
||||
typedef struct {
|
||||
u128 rk[34];
|
||||
@ -117,7 +117,7 @@ typedef struct {
|
||||
|
||||
int speck_ctr (unsigned char *out, const unsigned char *in, unsigned long long inlen,
|
||||
const unsigned char *n,
|
||||
speck_context_t *ctx);
|
||||
speck_context_t *ctx);
|
||||
|
||||
int speck_init (speck_context_t **ctx, const unsigned char *k, int keysize);
|
||||
|
||||
|
9
scripts/README.md
Normal file
9
scripts/README.md
Normal file
@ -0,0 +1,9 @@
|
||||
This directory contains executables that are not compiled. Some of these may
|
||||
end up installed for use by end users, but many of them are for use during
|
||||
development, builds and tests.
|
||||
|
||||
Nothing in this directory should need compiling to use and they should be
|
||||
written such that they do not need configuring (e.g: they might probe several
|
||||
directories for their requirements)
|
||||
|
||||
See the [Scripts Documentation](../docs/Scripts.md) for further details
|
60
scripts/indent.sh
Executable file
60
scripts/indent.sh
Executable file
@ -0,0 +1,60 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Given one or more input source files, run a re-indenter on them.
|
||||
|
||||
help() {
|
||||
echo "Usage: scripts/indent [-i] [file...]"
|
||||
echo " -i modify file in place with reindent results"
|
||||
echo ""
|
||||
echo "By default, will output a diff and exitcode if changed are needed"
|
||||
echo "If modifying files, no exit code or diff is output"
|
||||
exit 1
|
||||
}
|
||||
|
||||
[ -z "$1" ] && help
|
||||
[ "$1" = "-h" ] && help
|
||||
|
||||
INPLACE=0
|
||||
if [ "$1" = "-i" ]; then
|
||||
shift
|
||||
INPLACE=1
|
||||
fi
|
||||
|
||||
## indentOneClang() {
|
||||
## rm -f "$1.indent"
|
||||
## clang-format "$1" >"$1.indent"
|
||||
## if [ $? -ne 0 ]; then
|
||||
## echo "Error while formatting \"$1\""
|
||||
## RESULT=1
|
||||
## return
|
||||
## fi
|
||||
## diff -u "$1" "$1.indent"
|
||||
## if [ $? -ne 0 ]; then
|
||||
## RESULT=1
|
||||
## fi
|
||||
## }
|
||||
|
||||
indentOne() {
|
||||
IFILE="$1"
|
||||
if [ "$INPLACE" -eq 0 ]; then
|
||||
OFILE="$1.indent"
|
||||
rm -f "$OFILE"
|
||||
else
|
||||
OFILE="$1"
|
||||
fi
|
||||
if ! uncrustify -c uncrustify.cfg -f "$IFILE" -o "$OFILE"; then
|
||||
echo "Error while formatting \"$1\""
|
||||
RESULT=1
|
||||
return
|
||||
fi
|
||||
if ! diff -u "$IFILE" "$OFILE"; then
|
||||
RESULT=1
|
||||
fi
|
||||
}
|
||||
|
||||
RESULT=0
|
||||
while [ -n "$1" ]; do
|
||||
indentOne "$1"
|
||||
shift
|
||||
done
|
||||
exit $RESULT
|
@ -20,11 +20,11 @@ TESTDATA=tests
|
||||
|
||||
# Confirm we have all the tools and data
|
||||
for i in $TESTS; do
|
||||
if [ ! -e $TOOLSDIR/$i ]; then
|
||||
if [ ! -e "$TOOLSDIR/$i" ]; then
|
||||
echo "Could not find test $TOOLSDIR/$i"
|
||||
exit 1
|
||||
fi
|
||||
if [ ! -e $TESTDATA/$i.expected ]; then
|
||||
if [ ! -e "$TESTDATA/$i.expected" ]; then
|
||||
echo "Could not find testdata $TESTDATA/$i.expected"
|
||||
exit 1
|
||||
fi
|
||||
@ -34,6 +34,6 @@ done
|
||||
set -e
|
||||
for i in $TESTS; do
|
||||
echo "$TOOLSDIR/$i >$TESTDATA/$i.out"
|
||||
$TOOLSDIR/$i >$TESTDATA/$i.out
|
||||
cmp $TESTDATA/$i.expected $TESTDATA/$i.out
|
||||
"$TOOLSDIR/$i" >"$TESTDATA/$i.out"
|
||||
cmp "$TESTDATA/$i.expected" "$TESTDATA/$i.out"
|
||||
done
|
@ -51,7 +51,7 @@ HANDLE startTunReadThread (struct tunread_arg *arg) {
|
||||
|
||||
|
||||
|
||||
int get_best_interface_ip(n2n_edge_t * eee, dec_ip_str_t ip_addr){
|
||||
int get_best_interface_ip (n2n_edge_t * eee, dec_ip_str_t ip_addr){
|
||||
DWORD interface_index = -1;
|
||||
DWORD dwRetVal = 0;
|
||||
PIP_ADAPTER_INFO pAdapterInfo = NULL, pAdapter = NULL;
|
||||
@ -62,15 +62,15 @@ int get_best_interface_ip(n2n_edge_t * eee, dec_ip_str_t ip_addr){
|
||||
if(dwRetVal != NO_ERROR) return -1;
|
||||
|
||||
pAdapterInfo = (PIP_ADAPTER_INFO)malloc(ulOutBufLen);
|
||||
if (pAdapterInfo == NULL) {
|
||||
if(pAdapterInfo == NULL) {
|
||||
traceEvent(TRACE_INFO, "Error allocating memory needed to call GetAdaptersInfo\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
dwRetVal = GetAdaptersInfo(pAdapterInfo, &ulOutBufLen);
|
||||
if(dwRetVal == ERROR_BUFFER_OVERFLOW){
|
||||
if(dwRetVal == ERROR_BUFFER_OVERFLOW) {
|
||||
pAdapterInfo = (PIP_ADAPTER_INFO)realloc(pAdapterInfo, ulOutBufLen);
|
||||
if (pAdapterInfo == NULL) {
|
||||
if(pAdapterInfo == NULL) {
|
||||
traceEvent(TRACE_INFO, "Error allocating memory needed to call GetAdaptersInfo\n");
|
||||
return -1;
|
||||
}
|
||||
@ -78,9 +78,9 @@ int get_best_interface_ip(n2n_edge_t * eee, dec_ip_str_t ip_addr){
|
||||
|
||||
dwRetVal = GetAdaptersInfo(pAdapterInfo, &ulOutBufLen);
|
||||
// hexdump((uint8_t*)pAdapterInfo, ulOutBufLen);
|
||||
if (dwRetVal == NO_ERROR) {
|
||||
for(pAdapter = pAdapterInfo; pAdapter != NULL; pAdapter = pAdapter->Next){
|
||||
if (pAdapter->Index != interface_index) continue;
|
||||
if(dwRetVal == NO_ERROR) {
|
||||
for(pAdapter = pAdapterInfo; pAdapter != NULL; pAdapter = pAdapter->Next) {
|
||||
if(pAdapter->Index != interface_index) continue;
|
||||
|
||||
traceEvent(TRACE_DEBUG, "Adapter Index: %ld\n", pAdapter->Index);
|
||||
traceEvent(TRACE_DEBUG, "Combo Index: %ld\n", pAdapter->ComboIndex);
|
||||
@ -96,11 +96,10 @@ int get_best_interface_ip(n2n_edge_t * eee, dec_ip_str_t ip_addr){
|
||||
traceEvent(TRACE_DEBUG, "Gateway: %s\n", pAdapter->GatewayList.IpAddress.String);
|
||||
strncpy(ip_addr, pAdapter->IpAddressList.IpAddress.String, sizeof(dec_ip_str_t)-1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
traceEvent(TRACE_WARNING, "GetAdaptersInfo failed with error: %d\n", dwRetVal);
|
||||
}
|
||||
if (pAdapterInfo != NULL){
|
||||
if(pAdapterInfo != NULL) {
|
||||
free(pAdapterInfo);
|
||||
pAdapterInfo = NULL;
|
||||
}
|
||||
|
@ -31,13 +31,13 @@ int main (int argc, char* argv[]) {
|
||||
char *my_mac_address = (char*)"DE:AD:BE:EF:01:10";
|
||||
char *my_ipv4_addr = (char*)"1.2.3.4";
|
||||
char *supernode = (char*)"7.8.9.10:1234";
|
||||
int keep_on_running = 1;
|
||||
int keep_on_running = 1;
|
||||
|
||||
/* Increase tracelevel to see what's happening */
|
||||
setTraceLevel(10);
|
||||
|
||||
/* Random seed */
|
||||
n2n_srand (n2n_seed());
|
||||
n2n_srand(n2n_seed());
|
||||
|
||||
/*
|
||||
NOTE
|
||||
|
@ -41,7 +41,7 @@ int packet_header_decrypt (uint8_t packet[], uint16_t packet_len,
|
||||
//extract header length (lower 2 bytes)
|
||||
uint32_t header_len = test_magic - magic;
|
||||
|
||||
if (header_len <= packet_len) {
|
||||
if(header_len <= packet_len) {
|
||||
// decrypt the complete header
|
||||
speck_ctr(&packet[16], &packet[16], header_len - 16, packet, (speck_context_t*)ctx);
|
||||
|
||||
@ -130,7 +130,7 @@ void packet_header_setup_key (const char *community_name,
|
||||
// for all other packets, same as static by default (changed by user/pw auth scheme
|
||||
// calling packet_header_change_dynamic_key later)
|
||||
|
||||
pearson_hash_128(key, (uint8_t*)community_name, N2N_COMMUNITY_SIZE);
|
||||
pearson_hash_128(key, (uint8_t*)community_name, N2N_COMMUNITY_SIZE);
|
||||
|
||||
if(!*ctx_static)
|
||||
*ctx_static = (he_context_t*)calloc(1, sizeof(speck_context_t));
|
||||
|
@ -159,7 +159,7 @@ SN_SELECTION_CRITERION_DATA_TYPE sn_selection_criterion_gather_data (n2n_sn_t *s
|
||||
extern char * sn_selection_criterion_str (selection_criterion_str_t out, peer_info_t *peer) {
|
||||
|
||||
if(NULL == out) {
|
||||
return NULL;
|
||||
return NULL;
|
||||
}
|
||||
memset(out, 0, SN_SELECTION_CRITERION_BUF_SIZE);
|
||||
|
||||
@ -169,15 +169,15 @@ extern char * sn_selection_criterion_str (selection_criterion_str_t out, peer_in
|
||||
if(peer->selection_criterion < (UINT32_MAX >> 2)) {
|
||||
|
||||
#ifndef SN_SELECTION_RTT
|
||||
int chars = snprintf(out, SN_SELECTION_CRITERION_BUF_SIZE, "load = %8d", peer->selection_criterion);
|
||||
int chars = snprintf(out, SN_SELECTION_CRITERION_BUF_SIZE, "load = %8d", peer->selection_criterion);
|
||||
#else
|
||||
int chars = snprintf(out, SN_SELECTION_CRITERION_BUF_SIZE, "rtt = %6d ms", peer->selection_criterion);
|
||||
int chars = snprintf(out, SN_SELECTION_CRITERION_BUF_SIZE, "rtt = %6d ms", peer->selection_criterion);
|
||||
#endif
|
||||
|
||||
/* this test is to make "-Wformat-truncation" less sad */
|
||||
if (chars > SN_SELECTION_CRITERION_BUF_SIZE) {
|
||||
traceEvent(TRACE_INFO, "selection_criterion buffer overflow");
|
||||
}
|
||||
/* this test is to make "-Wformat-truncation" less sad */
|
||||
if(chars > SN_SELECTION_CRITERION_BUF_SIZE) {
|
||||
traceEvent(TRACE_INFO, "selection_criterion buffer overflow");
|
||||
}
|
||||
}
|
||||
|
||||
return out;
|
||||
|
@ -101,7 +101,7 @@ static int transop_decode_cc20 (n2n_trans_op_t *arg,
|
||||
transop_cc20_t *priv = (transop_cc20_t *)arg->priv;
|
||||
|
||||
if(((in_len - CC20_PREAMBLE_SIZE) <= N2N_PKT_BUF_SIZE) /* cipher text fits in assembly */
|
||||
&& (in_len >= CC20_PREAMBLE_SIZE)) { /* has at least iv */
|
||||
&& (in_len >= CC20_PREAMBLE_SIZE)) { /* has at least iv */
|
||||
|
||||
traceEvent(TRACE_DEBUG, "decode_cc20 %lu bytes", in_len);
|
||||
|
||||
|
@ -48,7 +48,7 @@ static int setup_ifname (int fd, const char *ifname, const char *ipaddr,
|
||||
if(ioctl(fd, SIOCSIFADDR, &ifr) == -1) {
|
||||
traceEvent(TRACE_ERROR, "ioctl(SIOCSIFADDR) failed [%d]: %s", errno, strerror(errno));
|
||||
return -2;
|
||||
}
|
||||
}
|
||||
|
||||
// netmask
|
||||
if(netmask && (((struct sockaddr_in*)&ifr.ifr_addr)->sin_addr.s_addr != 0)) {
|
||||
|
@ -71,7 +71,7 @@ int decode_uint16 (uint16_t * out,
|
||||
size_t * rem,
|
||||
size_t * idx) {
|
||||
|
||||
if (*rem < 2) {
|
||||
if(*rem < 2) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -101,7 +101,7 @@ int decode_uint32 (uint32_t * out,
|
||||
size_t * rem,
|
||||
size_t * idx) {
|
||||
|
||||
if (*rem < 4) {
|
||||
if(*rem < 4) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -130,7 +130,7 @@ int decode_uint64 (uint64_t * out,
|
||||
size_t * rem,
|
||||
size_t * idx) {
|
||||
|
||||
if (*rem < 8) {
|
||||
if(*rem < 8) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -159,7 +159,7 @@ int decode_buf (uint8_t * out,
|
||||
size_t * rem,
|
||||
size_t * idx) {
|
||||
|
||||
if (*rem < bufsize) {
|
||||
if(*rem < bufsize) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -44,9 +44,10 @@ uint8_t PKT_CONTENT[]={
|
||||
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
|
||||
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
|
||||
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
|
||||
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 };
|
||||
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
|
||||
};
|
||||
|
||||
static void init_compression_for_benchmark(void) {
|
||||
static void init_compression_for_benchmark (void) {
|
||||
|
||||
if(lzo_init() != LZO_E_OK) {
|
||||
traceEvent(TRACE_ERROR, "LZO compression init error");
|
||||
@ -59,7 +60,7 @@ static void init_compression_for_benchmark(void) {
|
||||
}
|
||||
|
||||
|
||||
static void deinit_compression_for_benchmark(void) {
|
||||
static void deinit_compression_for_benchmark (void) {
|
||||
|
||||
// lzo1x does not require de-initialization. if it were required, this would be a good place
|
||||
|
||||
@ -68,27 +69,27 @@ static void deinit_compression_for_benchmark(void) {
|
||||
#endif
|
||||
}
|
||||
|
||||
void test_lzo1x() {
|
||||
void test_lzo1x () {
|
||||
char *test_name = "lzo1x";
|
||||
uint8_t compression_buffer[N2N_PKT_BUF_SIZE]; // size allows enough of a reserve required for compression
|
||||
lzo_uint compression_len = sizeof(compression_buffer);
|
||||
|
||||
if (lzo1x_1_compress(PKT_CONTENT, sizeof(PKT_CONTENT), compression_buffer, &compression_len, wrkmem) != LZO_E_OK) {
|
||||
if(lzo1x_1_compress(PKT_CONTENT, sizeof(PKT_CONTENT), compression_buffer, &compression_len, wrkmem) != LZO_E_OK) {
|
||||
fprintf(stderr, "%s: compression error\n", test_name);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
assert(compression_len == 47);
|
||||
|
||||
printf("%s: output size = 0x%"PRIx64"\n", test_name, compression_len);
|
||||
printf("%s: output size = 0x%" PRIx64 "\n", test_name, compression_len);
|
||||
fhexdump(0, compression_buffer, compression_len, stdout);
|
||||
|
||||
uint8_t deflation_buffer[N2N_PKT_BUF_SIZE];
|
||||
lzo_uint deflated_len;
|
||||
lzo1x_decompress (compression_buffer, compression_len, deflation_buffer, &deflated_len, NULL);
|
||||
lzo1x_decompress(compression_buffer, compression_len, deflation_buffer, &deflated_len, NULL);
|
||||
|
||||
assert(deflated_len == sizeof(PKT_CONTENT));
|
||||
if (memcmp(PKT_CONTENT, deflation_buffer, deflated_len)!=0) {
|
||||
if(memcmp(PKT_CONTENT, deflation_buffer, deflated_len)!=0) {
|
||||
fprintf(stderr, "%s: round-trip buffer mismatch\n", test_name);
|
||||
exit(1);
|
||||
}
|
||||
@ -97,7 +98,7 @@ void test_lzo1x() {
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
void test_zstd() {
|
||||
void test_zstd () {
|
||||
char *test_name = "zstd";
|
||||
|
||||
#ifdef N2N_HAVE_ZSTD
|
||||
@ -105,28 +106,28 @@ void test_zstd() {
|
||||
lzo_uint compression_len = sizeof(compression_buffer);
|
||||
|
||||
compression_len = N2N_PKT_BUF_SIZE;
|
||||
compression_len = ZSTD_compress(compression_buffer, compression_len, PKT_CONTENT, sizeof(PKT_CONTENT), ZSTD_COMPRESSION_LEVEL) ;
|
||||
compression_len = ZSTD_compress(compression_buffer, compression_len, PKT_CONTENT, sizeof(PKT_CONTENT), ZSTD_COMPRESSION_LEVEL);
|
||||
if(ZSTD_isError(compression_len)) {
|
||||
fprintf(stderr, "%s: compression error\n", test_name);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
assert(compression_len == 33);
|
||||
|
||||
printf("%s: output size = 0x%"PRIx64"\n", test_name, compression_len);
|
||||
|
||||
printf("%s: output size = 0x%" PRIx64 "\n", test_name, compression_len);
|
||||
fhexdump(0, compression_buffer, compression_len, stdout);
|
||||
|
||||
uint8_t deflation_buffer[N2N_PKT_BUF_SIZE];
|
||||
int64_t deflated_len = sizeof(deflation_buffer);
|
||||
deflated_len = (int32_t)ZSTD_decompress (deflation_buffer, deflated_len, compression_buffer, compression_len);
|
||||
deflated_len = (int32_t)ZSTD_decompress(deflation_buffer, deflated_len, compression_buffer, compression_len);
|
||||
if(ZSTD_isError(deflated_len)) {
|
||||
fprintf(stderr, "%s: decompression error '%s'\n",
|
||||
test_name, ZSTD_getErrorName(deflated_len));
|
||||
test_name, ZSTD_getErrorName(deflated_len));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
assert(deflated_len == sizeof(PKT_CONTENT));
|
||||
if (memcmp(PKT_CONTENT, deflation_buffer, deflated_len)!=0) {
|
||||
if(memcmp(PKT_CONTENT, deflation_buffer, deflated_len)!=0) {
|
||||
fprintf(stderr, "%s: round-trip buffer mismatch\n", test_name);
|
||||
exit(1);
|
||||
}
|
||||
@ -145,12 +146,12 @@ void test_zstd() {
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char * argv[]) {
|
||||
int main (int argc, char * argv[]) {
|
||||
|
||||
/* Also for compression (init moved here for ciphers get run before in case of lzo init error) */
|
||||
init_compression_for_benchmark();
|
||||
|
||||
printf("%s: input size = 0x%"PRIx64"\n", "original", sizeof(PKT_CONTENT));
|
||||
printf("%s: input size = 0x%" PRIx64 "\n", "original", sizeof(PKT_CONTENT));
|
||||
fhexdump(0, PKT_CONTENT, sizeof(PKT_CONTENT), stdout);
|
||||
printf("\n");
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
||||
#include "n2n.h"
|
||||
#include "hexdump.h"
|
||||
|
||||
void test_curve25519(unsigned char *pkt_input, unsigned char *key) {
|
||||
void test_curve25519 (unsigned char *pkt_input, unsigned char *key) {
|
||||
char *test_name = "curve25519";
|
||||
unsigned char pkt_output[32];
|
||||
|
||||
@ -32,7 +32,7 @@ void test_curve25519(unsigned char *pkt_input, unsigned char *key) {
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
int main(int argc, char * argv[]) {
|
||||
int main (int argc, char * argv[]) {
|
||||
char *test_name = "environment";
|
||||
|
||||
unsigned char key[32];
|
||||
@ -40,7 +40,7 @@ int main(int argc, char * argv[]) {
|
||||
|
||||
memset(pkt_input, 0, 31);
|
||||
pkt_input[31] = 9;
|
||||
|
||||
|
||||
memset(key, 0x55, 32);
|
||||
|
||||
printf("%s: input\n", test_name);
|
||||
|
@ -38,24 +38,25 @@ uint8_t PKT_CONTENT[]={
|
||||
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
|
||||
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
|
||||
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
|
||||
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 };
|
||||
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
|
||||
};
|
||||
|
||||
void test_pearson(void *buf, unsigned int bufsize) {
|
||||
void test_pearson (void *buf, unsigned int bufsize) {
|
||||
char *test_name = "pearson";
|
||||
|
||||
uint64_t hash = pearson_hash_64(buf, bufsize);
|
||||
|
||||
printf("%s: output = 0x%"PRIx64"\n", test_name, hash);
|
||||
printf("%s: output = 0x%" PRIx64 "\n", test_name, hash);
|
||||
|
||||
fprintf(stderr, "%s: tested\n", test_name);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
int main(int argc, char * argv[]) {
|
||||
int main (int argc, char * argv[]) {
|
||||
pearson_hash_init();
|
||||
|
||||
char *test_name = "environment";
|
||||
printf("%s: input size = 0x%"PRIx64"\n", test_name, sizeof(PKT_CONTENT));
|
||||
printf("%s: input size = 0x%" PRIx64 "\n", test_name, sizeof(PKT_CONTENT));
|
||||
fhexdump(0, PKT_CONTENT, sizeof(PKT_CONTENT), stdout);
|
||||
printf("\n");
|
||||
|
||||
|
@ -41,14 +41,15 @@ uint8_t PKT_CONTENT[]={
|
||||
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
|
||||
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
|
||||
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
|
||||
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 };
|
||||
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
|
||||
};
|
||||
|
||||
/* Prototypes */
|
||||
static ssize_t do_encode_packet( uint8_t * pktbuf, size_t bufsize, const n2n_community_t c );
|
||||
static void run_transop_benchmark(const char *op_name, n2n_trans_op_t *op_fn, n2n_edge_conf_t *conf, uint8_t *pktbuf);
|
||||
static ssize_t do_encode_packet ( uint8_t * pktbuf, size_t bufsize, const n2n_community_t c );
|
||||
static void run_transop_benchmark (const char *op_name, n2n_trans_op_t *op_fn, n2n_edge_conf_t *conf, uint8_t *pktbuf);
|
||||
|
||||
|
||||
int main(int argc, char * argv[]) {
|
||||
int main (int argc, char * argv[]) {
|
||||
uint8_t pktbuf[N2N_PKT_BUF_SIZE];
|
||||
n2n_trans_op_t transop_null, transop_tf;
|
||||
n2n_trans_op_t transop_aes;
|
||||
@ -65,7 +66,7 @@ int main(int argc, char * argv[]) {
|
||||
char *test_name = "environment";
|
||||
printf("%s: community_name = \"%s\"\n", test_name, conf.community_name);
|
||||
printf("%s: encrypt_key = \"%s\"\n", test_name, conf.encrypt_key);
|
||||
printf("%s: input size = 0x%"PRIx64"\n", test_name, sizeof(PKT_CONTENT));
|
||||
printf("%s: input size = 0x%" PRIx64 "\n", test_name, sizeof(PKT_CONTENT));
|
||||
fhexdump(0, PKT_CONTENT, sizeof(PKT_CONTENT), stdout);
|
||||
printf("\n");
|
||||
|
||||
@ -96,7 +97,7 @@ int main(int argc, char * argv[]) {
|
||||
|
||||
// --- cipher benchmark -------------------------------------------------------------------
|
||||
|
||||
static void run_transop_benchmark(const char *op_name, n2n_trans_op_t *op_fn, n2n_edge_conf_t *conf, uint8_t *pktbuf) {
|
||||
static void run_transop_benchmark (const char *op_name, n2n_trans_op_t *op_fn, n2n_edge_conf_t *conf, uint8_t *pktbuf) {
|
||||
n2n_common_t cmn;
|
||||
n2n_PACKET_t pkt;
|
||||
n2n_mac_t mac_buf;
|
||||
@ -107,13 +108,13 @@ static void run_transop_benchmark(const char *op_name, n2n_trans_op_t *op_fn, n2
|
||||
|
||||
// encryption
|
||||
memset(mac_buf, 0, sizeof(mac_buf));
|
||||
|
||||
|
||||
nw = do_encode_packet( pktbuf, N2N_PKT_BUF_SIZE, conf->community_name);
|
||||
nw += op_fn->fwd(op_fn,
|
||||
pktbuf+nw, N2N_PKT_BUF_SIZE-nw,
|
||||
PKT_CONTENT, sizeof(PKT_CONTENT), mac_buf);
|
||||
|
||||
printf("%s: output size = 0x%"PRIx64"\n", op_name, nw);
|
||||
pktbuf+nw, N2N_PKT_BUF_SIZE-nw,
|
||||
PKT_CONTENT, sizeof(PKT_CONTENT), mac_buf);
|
||||
|
||||
printf("%s: output size = 0x%" PRIx64 "\n", op_name, nw);
|
||||
fhexdump(0, pktbuf, nw, stdout);
|
||||
|
||||
// decrpytion
|
||||
@ -133,9 +134,9 @@ static void run_transop_benchmark(const char *op_name, n2n_trans_op_t *op_fn, n2
|
||||
}
|
||||
|
||||
|
||||
static ssize_t do_encode_packet( uint8_t * pktbuf, size_t bufsize, const n2n_community_t c )
|
||||
static ssize_t do_encode_packet ( uint8_t * pktbuf, size_t bufsize, const n2n_community_t c )
|
||||
{
|
||||
// FIXME: this is a parameter of the test environment
|
||||
// FIXME: this is a parameter of the test environment
|
||||
n2n_mac_t destMac={0,1,2,3,4,5};
|
||||
|
||||
n2n_common_t cmn;
|
||||
|
@ -21,21 +21,21 @@
|
||||
#include "n2n.h"
|
||||
#include "hexdump.h"
|
||||
|
||||
void init_ip_subnet(n2n_ip_subnet_t * d) {
|
||||
void init_ip_subnet (n2n_ip_subnet_t * d) {
|
||||
d->net_addr = 0x20212223;
|
||||
d->net_bitlen = 25;
|
||||
}
|
||||
|
||||
void print_ip_subnet(char *test_name, char *field, n2n_ip_subnet_t * d) {
|
||||
void print_ip_subnet (char *test_name, char *field, n2n_ip_subnet_t * d) {
|
||||
printf("%s: %s.net_addr = 0x%08x\n",
|
||||
test_name, field, d->net_addr);
|
||||
test_name, field, d->net_addr);
|
||||
printf("%s: %s.net_bitlen = %i\n",
|
||||
test_name, field, d->net_bitlen);
|
||||
test_name, field, d->net_bitlen);
|
||||
}
|
||||
|
||||
void init_mac(n2n_mac_t mac, const uint8_t o0, const uint8_t o1,
|
||||
const uint8_t o2, const uint8_t o3,
|
||||
const uint8_t o4, const uint8_t o5) {
|
||||
void init_mac (n2n_mac_t mac, const uint8_t o0, const uint8_t o1,
|
||||
const uint8_t o2, const uint8_t o3,
|
||||
const uint8_t o4, const uint8_t o5) {
|
||||
mac[0] = o0;
|
||||
mac[1] = o1;
|
||||
mac[2] = o2;
|
||||
@ -44,13 +44,13 @@ void init_mac(n2n_mac_t mac, const uint8_t o0, const uint8_t o1,
|
||||
mac[5] = o5;
|
||||
}
|
||||
|
||||
void print_mac(char *test_name, char *field, n2n_mac_t mac) {
|
||||
void print_mac (char *test_name, char *field, n2n_mac_t mac) {
|
||||
printf("%s: %s[] = %x:%x:%x:%x:%x:%x\n",
|
||||
test_name, field,
|
||||
mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
|
||||
test_name, field,
|
||||
mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
|
||||
}
|
||||
|
||||
void init_auth(n2n_auth_t *auth) {
|
||||
void init_auth (n2n_auth_t *auth) {
|
||||
auth->scheme = n2n_auth_simple_id;
|
||||
auth->token_size = 16;
|
||||
auth->token[0] = 0xfe;
|
||||
@ -59,13 +59,13 @@ void init_auth(n2n_auth_t *auth) {
|
||||
auth->token[15] = 0xfb;
|
||||
}
|
||||
|
||||
void print_auth(char *test_name, char *field, n2n_auth_t *auth) {
|
||||
void print_auth (char *test_name, char *field, n2n_auth_t *auth) {
|
||||
printf("%s: %s.scheme = %i\n", test_name, field, auth->scheme);
|
||||
printf("%s: %s.token_size = %i\n", test_name, field, auth->token_size);
|
||||
printf("%s: %s.token[0] = 0x%02x\n", test_name, field, auth->token[0]);
|
||||
}
|
||||
|
||||
void init_common(n2n_common_t *common, char *community) {
|
||||
void init_common (n2n_common_t *common, char *community) {
|
||||
memset( common, 0, sizeof(*common) );
|
||||
common->ttl = N2N_DEFAULT_TTL;
|
||||
common->flags = 0;
|
||||
@ -73,13 +73,13 @@ void init_common(n2n_common_t *common, char *community) {
|
||||
common->community[N2N_COMMUNITY_SIZE - 1] = '\0';
|
||||
}
|
||||
|
||||
void print_common(char *test_name, n2n_common_t *common) {
|
||||
void print_common (char *test_name, n2n_common_t *common) {
|
||||
printf("%s: common.ttl = %i\n", test_name, common->ttl);
|
||||
printf("%s: common.flags = %i\n", test_name, common->flags);
|
||||
printf("%s: common.community = \"%s\"\n", test_name, common->community);
|
||||
}
|
||||
|
||||
void test_REGISTER(n2n_common_t *common) {
|
||||
void test_REGISTER (n2n_common_t *common) {
|
||||
char *test_name = "REGISTER";
|
||||
|
||||
common->pc = n2n_register;
|
||||
@ -104,8 +104,8 @@ void test_REGISTER(n2n_common_t *common) {
|
||||
size_t idx = 0;
|
||||
size_t retval = encode_REGISTER( pktbuf, &idx, common, ®);
|
||||
|
||||
printf("%s: output retval = 0x%"PRIx64"\n", test_name, retval);
|
||||
printf("%s: output idx = 0x%"PRIx64"\n", test_name, idx);
|
||||
printf("%s: output retval = 0x%" PRIx64 "\n", test_name, retval);
|
||||
printf("%s: output idx = 0x%" PRIx64 "\n", test_name, idx);
|
||||
fhexdump(0, pktbuf, idx, stdout);
|
||||
|
||||
// TODO: decode_REGISTER() and print
|
||||
@ -114,7 +114,7 @@ void test_REGISTER(n2n_common_t *common) {
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
void test_REGISTER_SUPER(n2n_common_t *common) {
|
||||
void test_REGISTER_SUPER (n2n_common_t *common) {
|
||||
char *test_name = "REGISTER_SUPER";
|
||||
|
||||
common->pc = n2n_register_super;
|
||||
@ -136,15 +136,15 @@ void test_REGISTER_SUPER(n2n_common_t *common) {
|
||||
print_ip_subnet(test_name, "reg.dev_addr", ®.dev_addr);
|
||||
printf("%s: reg.dev_desc = \"%s\"\n", test_name, reg.dev_desc);
|
||||
print_auth(test_name, "reg.auth", ®.auth);
|
||||
printf("%s: reg.key_time = %"PRIi32"\n", test_name, reg.key_time);
|
||||
printf("%s: reg.key_time = %" PRIi32 "\n", test_name, reg.key_time);
|
||||
printf("\n");
|
||||
|
||||
uint8_t pktbuf[N2N_PKT_BUF_SIZE];
|
||||
size_t idx = 0;
|
||||
size_t retval = encode_REGISTER_SUPER( pktbuf, &idx, common, ®);
|
||||
|
||||
printf("%s: output retval = 0x%"PRIx64"\n", test_name, retval);
|
||||
printf("%s: output idx = 0x%"PRIx64"\n", test_name, idx);
|
||||
printf("%s: output retval = 0x%" PRIx64 "\n", test_name, retval);
|
||||
printf("%s: output idx = 0x%" PRIx64 "\n", test_name, idx);
|
||||
fhexdump(0, pktbuf, idx, stdout);
|
||||
|
||||
// TODO: decode_REGISTER_SUPER() and print
|
||||
@ -153,7 +153,7 @@ void test_REGISTER_SUPER(n2n_common_t *common) {
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
void test_UNREGISTER_SUPER(n2n_common_t *common) {
|
||||
void test_UNREGISTER_SUPER (n2n_common_t *common) {
|
||||
char *test_name = "UNREGISTER_SUPER";
|
||||
|
||||
common->pc = n2n_unregister_super;
|
||||
@ -173,8 +173,8 @@ void test_UNREGISTER_SUPER(n2n_common_t *common) {
|
||||
size_t idx = 0;
|
||||
size_t retval = encode_UNREGISTER_SUPER( pktbuf, &idx, common, &unreg);
|
||||
|
||||
printf("%s: output retval = 0x%"PRIx64"\n", test_name, retval);
|
||||
printf("%s: output idx = 0x%"PRIx64"\n", test_name, idx);
|
||||
printf("%s: output retval = 0x%" PRIx64 "\n", test_name, retval);
|
||||
printf("%s: output idx = 0x%" PRIx64 "\n", test_name, idx);
|
||||
fhexdump(0, pktbuf, idx, stdout);
|
||||
|
||||
// TODO: decode_UNREGISTER_SUPER() and print
|
||||
@ -183,7 +183,7 @@ void test_UNREGISTER_SUPER(n2n_common_t *common) {
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
int main(int argc, char * argv[]) {
|
||||
int main (int argc, char * argv[]) {
|
||||
char *test_name = "environment";
|
||||
|
||||
n2n_common_t common;
|
||||
|
34
uncrustify.cfg
Normal file
34
uncrustify.cfg
Normal file
@ -0,0 +1,34 @@
|
||||
# Initial rules taken from a quick discussion
|
||||
# (See https://github.com/ntop/n2n/commit/00159d0d012c6836fd972af1748833eeaf50fa22#commitcomment-57137247)
|
||||
|
||||
# 4 space indention (never use tabs)
|
||||
indent_columns = 4
|
||||
indent_with_tabs = 0
|
||||
indent_switch_case = 4
|
||||
|
||||
# space between name and bracket during function define
|
||||
sp_func_def_paren = force
|
||||
sp_func_proto_paren = force
|
||||
|
||||
# no space between name and bracket during call
|
||||
sp_func_call_paren = remove
|
||||
|
||||
# no space after if and while
|
||||
sp_before_sparen = remove
|
||||
#sp_while_paren_open = remove # only in newer uncrustify
|
||||
|
||||
# block-braces as seen above
|
||||
nl_if_brace = remove
|
||||
nl_brace_else = remove
|
||||
nl_elseif_brace = remove
|
||||
nl_else_brace = remove
|
||||
#nl_before_opening_brace_func_class_def = remove # only in newer uncrustify
|
||||
nl_for_brace = remove
|
||||
nl_while_brace = remove
|
||||
|
||||
# multi-line parameters with indentation under the opening bracket
|
||||
# looks like this is the default, but might be the following:
|
||||
#indent_func_call_param = false ?
|
||||
|
||||
# Want to keep var definition alignment
|
||||
#align_keep_extra_space = true
|
Loading…
Reference in New Issue
Block a user