diff options
Diffstat (limited to 'netcon/docker-test')
65 files changed, 2714 insertions, 0 deletions
diff --git a/netcon/docker-test/_results/FAIL.httpd-2.4.16-1.fc23.x86_64.txt b/netcon/docker-test/_results/FAIL.httpd-2.4.16-1.fc23.x86_64.txt new file mode 100644 index 00000000..d65ad568 --- /dev/null +++ b/netcon/docker-test/_results/FAIL.httpd-2.4.16-1.fc23.x86_64.txt @@ -0,0 +1 @@ +Test: md5 sum did not match! diff --git a/netcon/docker-test/_results/FAIL.nginx-1.8.0-13.fc23.x86_64.txt b/netcon/docker-test/_results/FAIL.nginx-1.8.0-13.fc23.x86_64.txt new file mode 100644 index 00000000..d65ad568 --- /dev/null +++ b/netcon/docker-test/_results/FAIL.nginx-1.8.0-13.fc23.x86_64.txt @@ -0,0 +1 @@ +Test: md5 sum did not match! diff --git a/netcon/docker-test/_results/FAIL.nginx-1.8.0-14.fc23.x86_64.txt b/netcon/docker-test/_results/FAIL.nginx-1.8.0-14.fc23.x86_64.txt new file mode 100644 index 00000000..d65ad568 --- /dev/null +++ b/netcon/docker-test/_results/FAIL.nginx-1.8.0-14.fc23.x86_64.txt @@ -0,0 +1 @@ +Test: md5 sum did not match! diff --git a/netcon/docker-test/_results/FAIL.nodejs-0.10.36-4.fc23.txt b/netcon/docker-test/_results/FAIL.nodejs-0.10.36-4.fc23.txt new file mode 100644 index 00000000..81615d90 --- /dev/null +++ b/netcon/docker-test/_results/FAIL.nodejs-0.10.36-4.fc23.txt @@ -0,0 +1 @@ +Test: nodejs server did NOT respond! diff --git a/netcon/docker-test/_results/OK.redis-3.0.4-1.fc23.x86_64.txt b/netcon/docker-test/_results/OK.redis-3.0.4-1.fc23.x86_64.txt new file mode 100644 index 00000000..7cb05a71 --- /dev/null +++ b/netcon/docker-test/_results/OK.redis-3.0.4-1.fc23.x86_64.txt @@ -0,0 +1 @@ +Test: redis-server responded! diff --git a/netcon/docker-test/build.sh b/netcon/docker-test/build.sh new file mode 100755 index 00000000..4eaa246c --- /dev/null +++ b/netcon/docker-test/build.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +echo "*** Building Zerotier-One, libraries, and test/monitor images..." + +./build_zt.sh +./build_tests.sh + +echo "*** Done"
\ No newline at end of file diff --git a/netcon/docker-test/build_single_image.sh b/netcon/docker-test/build_single_image.sh new file mode 100755 index 00000000..a76be2ed --- /dev/null +++ b/netcon/docker-test/build_single_image.sh @@ -0,0 +1,32 @@ +# Builds a test docker image + +test_name=${PWD##*/} +echo 'Building dockerfiles for test: ' "$test_name" +touch "$test_name".name + +# Docker won't allow the inclusion of files outside of the build directory +cp ../../*.conf . +cp ../../zerotier-one zerotier-one +cp ../../zerotier-cli zerotier-cli +cp ../../zerotier-intercept zerotier-intercept +cp ../../libzerotierintercept.so.1.0 libzerotierintercept.so.1.0 +cp ../../liblwip.so liblwip.so +cp ../../netcon_identity.public netcon_identity.public +cp ../../netcon_identity.secret netcon_identity.secret +cp ../../monitor_identity.public monitor_identity.public +cp ../../monitor_identity.secret monitor_identity.secret + +docker build --tag="$test_name" -f netcon_dockerfile . +docker build --tag="$test_name"_monitor -f monitor_dockerfile . + +rm -f zerotier-one +rm -f zerotier-cli +rm -f zerotier-intercept +rm -f libzerotierintercept.so.1.0 +rm -f liblwip.so +rm -f netcon_identity.public +rm -f netcon_identity.secret +rm -f monitor_identity.public +rm -f monitor_identity.secret +rm -f *.conf +rm -f *.name
\ No newline at end of file diff --git a/netcon/docker-test/build_tests.sh b/netcon/docker-test/build_tests.sh new file mode 100755 index 00000000..b8ab7c5c --- /dev/null +++ b/netcon/docker-test/build_tests.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# Merely BUILDS test images + +# Remove previous test results +rm _results/*.txt + +# How long we shall wait for each test to conclude +export netcon_test_wait_time=60s + +export image_build_script=build_single_image.sh + +# Iterate over all depth=2 (relatively-speaking) directories and perform each test +find . -mindepth 2 -maxdepth 2 -type d | while read testdir; do + echo "*** Building: '$testdir'..." + rm _results/*.tmp + + # Stage scripts + cp $image_build_script $testdir/$image_build_script + cd $testdir + + # Build test docker images + ./$image_build_script + rm $image_build_script + + cd ../../ +done
\ No newline at end of file diff --git a/netcon/docker-test/build_zt.sh b/netcon/docker-test/build_zt.sh new file mode 100755 index 00000000..189a1e0d --- /dev/null +++ b/netcon/docker-test/build_zt.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# Builds Zerotier-One and libraries required for Network Containers, then +# copies the binaries into the test directory. + +cd ../../ + +make clean +make +cd netcon +make -f make-intercept.mk lib +rm *.o +rm liblwip.so +make -f make-liblwip.mk + +cd docker-test + +cp ../../zerotier-one zerotier-one +cp ../../zerotier-cli zerotier-cli + +cp ../liblwip.so liblwip.so +cp ../libzerotierintercept.so.1.0 libzerotierintercept.so.1.0 +cp ../zerotier-intercept zerotier-intercept + diff --git a/netcon/docker-test/e5cd7a9e1c5311ab.conf b/netcon/docker-test/e5cd7a9e1c5311ab.conf new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/netcon/docker-test/e5cd7a9e1c5311ab.conf diff --git a/netcon/docker-test/httpd/httpd-2.4.16-1.fc23.x86_64/httpd-2.4.16-1.fc23.x86_64.name b/netcon/docker-test/httpd/httpd-2.4.16-1.fc23.x86_64/httpd-2.4.16-1.fc23.x86_64.name new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/netcon/docker-test/httpd/httpd-2.4.16-1.fc23.x86_64/httpd-2.4.16-1.fc23.x86_64.name diff --git a/netcon/docker-test/httpd/httpd-2.4.16-1.fc23.x86_64/monitor_dockerfile b/netcon/docker-test/httpd/httpd-2.4.16-1.fc23.x86_64/monitor_dockerfile new file mode 100644 index 00000000..e8f803cd --- /dev/null +++ b/netcon/docker-test/httpd/httpd-2.4.16-1.fc23.x86_64/monitor_dockerfile @@ -0,0 +1,23 @@ +# ZT Network Containers Test Monitor +FROM fedora:23 +MAINTAINER https://www.zerotier.com/ + +EXPOSE 9993/udp + +# Install LWIP library used by service +ADD liblwip.so /var/lib/zerotier-one/liblwip.so + +# Add ZT files +RUN mkdir -p /var/lib/zerotier-one/networks.d +ADD monitor_identity.public /var/lib/zerotier-one/identity.public +ADD monitor_identity.secret /var/lib/zerotier-one/identity.secret +ADD *.conf /var/lib/zerotier-one/networks.d/ +ADD *.conf / +ADD *.name / +ADD zerotier-one / +ADD zerotier-cli / + +# Start ZeroTier-One +ADD monitor_entrypoint.sh /monitor_entrypoint.sh +RUN chmod -v +x /monitor_entrypoint.sh +CMD ["./monitor_entrypoint.sh"] diff --git a/netcon/docker-test/httpd/httpd-2.4.16-1.fc23.x86_64/monitor_entrypoint.sh b/netcon/docker-test/httpd/httpd-2.4.16-1.fc23.x86_64/monitor_entrypoint.sh new file mode 100644 index 00000000..52470efd --- /dev/null +++ b/netcon/docker-test/httpd/httpd-2.4.16-1.fc23.x86_64/monitor_entrypoint.sh @@ -0,0 +1,80 @@ +#!/bin/bash + +export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/ + + +# --- Test Parameters --- +test_namefile=$(ls *.name) +test_name="${test_namefile%.*}" # test network id +nwconf=$(ls *.conf) # blank test network config file +nwid="${nwconf%.*}" # test network id +netcon_wait_time=35 # wait for test container to come online +app_timeout_time=25 # app-specific timeout +file_path=/opt/results/ # test result output file path (fs shared between host and containers) +file_base="$test_name".txt # test result output file +fail=FAIL. # appended to result file in event of failure +ok=OK. # appended to result file in event of success +tmp_ext=.tmp # temporary filetype used for sharing test data between containers +address_file="$file_path$test_name"_addr"$tmp_ext" # file shared between host and containers for sharing address (optional) +bigfile_name=bigfile # large, random test transfer file +rx_md5sumfile="$file_path"rx_"$bigfile_name"_md5sum"$tmp_ext" +tx_md5sumfile="$file_path"tx_"$bigfile_name"_md5sum"$tmp_ext" + + +# --- Network Config --- +echo '*** ZeroTier Network Containers Test Monitor' +chown -R daemon /var/lib/zerotier-one +chgrp -R daemon /var/lib/zerotier-one +su daemon -s /bin/bash -c '/zerotier-one -d -U -p9993 >>/tmp/zerotier-one.out 2>&1' +virtip4="" +while [ -z "$virtip4" ]; do + sleep 0.2 + virtip4=`/zerotier-cli listnetworks | grep -F $nwid | cut -d ' ' -f 9 | sed 's/,/\n/g' | grep -F '.' | cut -d / -f 1` +done +echo '*** Starting Test...' +echo '*** Up and running at' $virtip4 ' on network: ' $nwid +echo '*** Sleeping for (' "$netcon_wait_time" 's ) while we wait for the Network Container to come online...' +sleep "$netcon_wait_time"s +ncvirtip=$(<$address_file) + + +# --- Test section --- +echo '*** Curling from intercepted server at' $ncvirtip +rm -rf "$file_path"*."$file_base" +touch "$bigfile_name" + +# Perform test +# curl --connect-timeout "$app_timeout_time" -v -o "$file_path$file_base" http://"$ncvirtip"/index.html +# Large transfer test +curl --connect-timeout "$app_timeout_time" -v -o "$bigfile_name" http://"$ncvirtip"/"$bigfile_name" + +# Check md5 +md5sum < "$bigfile_name" >> "$rx_md5sumfile" +rx_md5sum=$(<$rx_md5sumfile) +tx_md5sum=$(<$tx_md5sumfile) + +echo '*** Comparing md5: ' "$rx_md5sum" ' and ' "$tx_md5sum" + +if [ "$rx_md5sum" != "$tx_md5sum" ]; +then + echo 'MD5 FAIL' + touch "$file_path$fail$test_name.txt" + printf 'Test: md5 sum did not match!\n' >> "$file_path$fail$test_name.txt" +else + echo 'MD5 OK' + touch "$file_path$ok$test_name.txt" + printf 'Test: md5 sum ok!\n' >> "$file_path$ok$test_name.txt" + cat "$rx_md5sumfile" >> "$file_path$ok$test_name.txt" + cat "$tx_md5sumfile" >> "$file_path$ok$test_name.txt" +fi + + + + + + + + + + + diff --git a/netcon/docker-test/httpd/httpd-2.4.16-1.fc23.x86_64/netcon_dockerfile b/netcon/docker-test/httpd/httpd-2.4.16-1.fc23.x86_64/netcon_dockerfile new file mode 100644 index 00000000..3de8ed3f --- /dev/null +++ b/netcon/docker-test/httpd/httpd-2.4.16-1.fc23.x86_64/netcon_dockerfile @@ -0,0 +1,39 @@ +# ZT Network Containers Test +FROM fedora:23 +MAINTAINER https://www.zerotier.com/ + +# Install apps +RUN yum -y update +RUN yum -y install httpd-2.4.16-1.fc23.x86_64 +RUN yum clean all + +EXPOSE 9993/udp 80/udp + +# Install LWIP library used by service +ADD liblwip.so /var/lib/zerotier-one/liblwip.so + +# Install syscall intercept library +ADD zerotier-intercept / +ADD libzerotierintercept.so.1.0 / +RUN cp libzerotierintercept.so.1.0 lib/libzerotierintercept.so.1.0 +RUN cp libzerotierintercept.so.1.0 /lib/libzerotierintercept.so.1.0 +RUN ln -sf /lib/libzerotierintercept.so.1.0 /lib/libzerotierintercept +RUN /usr/bin/install -c zerotier-intercept /usr/bin + +# Add ZT files +RUN mkdir -p /var/lib/zerotier-one/networks.d +ADD netcon_identity.public /var/lib/zerotier-one/identity.public +ADD netcon_identity.secret /var/lib/zerotier-one/identity.secret +ADD *.conf /var/lib/zerotier-one/networks.d/ +ADD *.conf / +ADD *.name / + +ADD zerotier-one / +ADD zerotier-cli / + +# Install test scripts +ADD netcon_entrypoint.sh /netcon_entrypoint.sh +RUN chmod -v +x /netcon_entrypoint.sh + +# Start ZeroTier-One +CMD ["./netcon_entrypoint.sh"] diff --git a/netcon/docker-test/httpd/httpd-2.4.16-1.fc23.x86_64/netcon_entrypoint.sh b/netcon/docker-test/httpd/httpd-2.4.16-1.fc23.x86_64/netcon_entrypoint.sh new file mode 100644 index 00000000..1c5dcbd1 --- /dev/null +++ b/netcon/docker-test/httpd/httpd-2.4.16-1.fc23.x86_64/netcon_entrypoint.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/ + + +# --- Test Parameters --- +test_namefile=$(ls *.name) +test_name="${test_namefile%.*}" # test network id +nwconf=$(ls *.conf) # blank test network config file +nwid="${nwconf%.*}" # test network id +file_path=/opt/results/ # test result output file path (fs shared between host and containers) +file_base="$test_name".txt # test result output file +tmp_ext=.tmp # temporary filetype used for sharing test data between containers +address_file="$file_path$test_name"_addr"$tmp_ext" # file shared between host and containers for sharing address (optional) +bigfile_name=bigfile +bigfile_size=10M # size of file we want to use for the test +tx_md5sumfile="$file_path"tx_"$bigfile_name"_md5sum"$tmp_ext" + +# --- Network Config --- +echo '*** ZeroTier Network Containers Test: ' "$test_name" +chown -R daemon /var/lib/zerotier-one +chgrp -R daemon /var/lib/zerotier-one +su daemon -s /bin/bash -c '/zerotier-one -d -U -p9993 >>/tmp/zerotier-one.out 2>&1' +virtip4="" +while [ -z "$virtip4" ]; do + sleep 0.2 + virtip4=`/zerotier-cli listnetworks | grep -F $nwid | cut -d ' ' -f 9 | sed 's/,/\n/g' | grep -F '.' | cut -d / -f 1` + dev=`/zerotier-cli listnetworks | grep -F "" | cut -d ' ' -f 8 | cut -d "_" -f 2 | sed "s/^<dev>//" | tr '\n' '\0'` +done +echo '--- Up and running at' $virtip4 ' on network: ' $nwid +echo '*** Writing address to ' "$address_file" +echo $virtip4 > "$address_file" + +export ZT_NC_NWID=$dev + +# --- Test section --- +# Generate large random file for transfer test, share md5sum for monitor container to check +echo '*** Generating ' "$bigfile_size" ' file' +dd if=/dev/urandom of=/var/www/html/"$bigfile_name" bs="$bigfile_size" count=1 +#md5sum /var/www/html/"$bigfile_name" >> "$tx_md5sumfile" +md5sum < /var/www/html/"$bigfile_name" >> "$tx_md5sumfile" +echo '*** Wrote MD5 sum to ' "$tx_md5sumfile" + +echo '*** Starting application...' +sleep 0.5 +rm -rf /run/httpd/* /tmp/httpd* +zerotier-intercept /usr/sbin/httpd -D FOREGROUND >>/tmp/apache.out 2>&1 diff --git a/netcon/docker-test/httpd/httpd-2.4.17-3.fc23.x86_64/httpd-2.4.17-3.fc23.x86_64.name b/netcon/docker-test/httpd/httpd-2.4.17-3.fc23.x86_64/httpd-2.4.17-3.fc23.x86_64.name new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/netcon/docker-test/httpd/httpd-2.4.17-3.fc23.x86_64/httpd-2.4.17-3.fc23.x86_64.name diff --git a/netcon/docker-test/httpd/httpd-2.4.17-3.fc23.x86_64/monitor_dockerfile b/netcon/docker-test/httpd/httpd-2.4.17-3.fc23.x86_64/monitor_dockerfile new file mode 100644 index 00000000..e8f803cd --- /dev/null +++ b/netcon/docker-test/httpd/httpd-2.4.17-3.fc23.x86_64/monitor_dockerfile @@ -0,0 +1,23 @@ +# ZT Network Containers Test Monitor +FROM fedora:23 +MAINTAINER https://www.zerotier.com/ + +EXPOSE 9993/udp + +# Install LWIP library used by service +ADD liblwip.so /var/lib/zerotier-one/liblwip.so + +# Add ZT files +RUN mkdir -p /var/lib/zerotier-one/networks.d +ADD monitor_identity.public /var/lib/zerotier-one/identity.public +ADD monitor_identity.secret /var/lib/zerotier-one/identity.secret +ADD *.conf /var/lib/zerotier-one/networks.d/ +ADD *.conf / +ADD *.name / +ADD zerotier-one / +ADD zerotier-cli / + +# Start ZeroTier-One +ADD monitor_entrypoint.sh /monitor_entrypoint.sh +RUN chmod -v +x /monitor_entrypoint.sh +CMD ["./monitor_entrypoint.sh"] diff --git a/netcon/docker-test/httpd/httpd-2.4.17-3.fc23.x86_64/monitor_entrypoint.sh b/netcon/docker-test/httpd/httpd-2.4.17-3.fc23.x86_64/monitor_entrypoint.sh new file mode 100644 index 00000000..52470efd --- /dev/null +++ b/netcon/docker-test/httpd/httpd-2.4.17-3.fc23.x86_64/monitor_entrypoint.sh @@ -0,0 +1,80 @@ +#!/bin/bash + +export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/ + + +# --- Test Parameters --- +test_namefile=$(ls *.name) +test_name="${test_namefile%.*}" # test network id +nwconf=$(ls *.conf) # blank test network config file +nwid="${nwconf%.*}" # test network id +netcon_wait_time=35 # wait for test container to come online +app_timeout_time=25 # app-specific timeout +file_path=/opt/results/ # test result output file path (fs shared between host and containers) +file_base="$test_name".txt # test result output file +fail=FAIL. # appended to result file in event of failure +ok=OK. # appended to result file in event of success +tmp_ext=.tmp # temporary filetype used for sharing test data between containers +address_file="$file_path$test_name"_addr"$tmp_ext" # file shared between host and containers for sharing address (optional) +bigfile_name=bigfile # large, random test transfer file +rx_md5sumfile="$file_path"rx_"$bigfile_name"_md5sum"$tmp_ext" +tx_md5sumfile="$file_path"tx_"$bigfile_name"_md5sum"$tmp_ext" + + +# --- Network Config --- +echo '*** ZeroTier Network Containers Test Monitor' +chown -R daemon /var/lib/zerotier-one +chgrp -R daemon /var/lib/zerotier-one +su daemon -s /bin/bash -c '/zerotier-one -d -U -p9993 >>/tmp/zerotier-one.out 2>&1' +virtip4="" +while [ -z "$virtip4" ]; do + sleep 0.2 + virtip4=`/zerotier-cli listnetworks | grep -F $nwid | cut -d ' ' -f 9 | sed 's/,/\n/g' | grep -F '.' | cut -d / -f 1` +done +echo '*** Starting Test...' +echo '*** Up and running at' $virtip4 ' on network: ' $nwid +echo '*** Sleeping for (' "$netcon_wait_time" 's ) while we wait for the Network Container to come online...' +sleep "$netcon_wait_time"s +ncvirtip=$(<$address_file) + + +# --- Test section --- +echo '*** Curling from intercepted server at' $ncvirtip +rm -rf "$file_path"*."$file_base" +touch "$bigfile_name" + +# Perform test +# curl --connect-timeout "$app_timeout_time" -v -o "$file_path$file_base" http://"$ncvirtip"/index.html +# Large transfer test +curl --connect-timeout "$app_timeout_time" -v -o "$bigfile_name" http://"$ncvirtip"/"$bigfile_name" + +# Check md5 +md5sum < "$bigfile_name" >> "$rx_md5sumfile" +rx_md5sum=$(<$rx_md5sumfile) +tx_md5sum=$(<$tx_md5sumfile) + +echo '*** Comparing md5: ' "$rx_md5sum" ' and ' "$tx_md5sum" + +if [ "$rx_md5sum" != "$tx_md5sum" ]; +then + echo 'MD5 FAIL' + touch "$file_path$fail$test_name.txt" + printf 'Test: md5 sum did not match!\n' >> "$file_path$fail$test_name.txt" +else + echo 'MD5 OK' + touch "$file_path$ok$test_name.txt" + printf 'Test: md5 sum ok!\n' >> "$file_path$ok$test_name.txt" + cat "$rx_md5sumfile" >> "$file_path$ok$test_name.txt" + cat "$tx_md5sumfile" >> "$file_path$ok$test_name.txt" +fi + + + + + + + + + + + diff --git a/netcon/docker-test/httpd/httpd-2.4.17-3.fc23.x86_64/netcon_dockerfile b/netcon/docker-test/httpd/httpd-2.4.17-3.fc23.x86_64/netcon_dockerfile new file mode 100644 index 00000000..3a17acdd --- /dev/null +++ b/netcon/docker-test/httpd/httpd-2.4.17-3.fc23.x86_64/netcon_dockerfile @@ -0,0 +1,39 @@ +# ZT Network Containers Test +FROM fedora:23 +MAINTAINER https://www.zerotier.com/ + +# Install apps +RUN yum -y update +RUN yum -y install httpd-2.4.17-3.fc23.x86_64 +RUN yum clean all + +EXPOSE 9993/udp 80/udp + +# Install LWIP library used by service +ADD liblwip.so /var/lib/zerotier-one/liblwip.so + +# Install syscall intercept library +ADD zerotier-intercept / +ADD libzerotierintercept.so.1.0 / +RUN cp libzerotierintercept.so.1.0 lib/libzerotierintercept.so.1.0 +RUN cp libzerotierintercept.so.1.0 /lib/libzerotierintercept.so.1.0 +RUN ln -sf /lib/libzerotierintercept.so.1.0 /lib/libzerotierintercept +RUN /usr/bin/install -c zerotier-intercept /usr/bin + +# Add ZT files +RUN mkdir -p /var/lib/zerotier-one/networks.d +ADD netcon_identity.public /var/lib/zerotier-one/identity.public +ADD netcon_identity.secret /var/lib/zerotier-one/identity.secret +ADD *.conf /var/lib/zerotier-one/networks.d/ +ADD *.conf / +ADD *.name / + +ADD zerotier-one / +ADD zerotier-cli / + +# Install test scripts +ADD netcon_entrypoint.sh /netcon_entrypoint.sh +RUN chmod -v +x /netcon_entrypoint.sh + +# Start ZeroTier-One +CMD ["./netcon_entrypoint.sh"] diff --git a/netcon/docker-test/httpd/httpd-2.4.17-3.fc23.x86_64/netcon_entrypoint.sh b/netcon/docker-test/httpd/httpd-2.4.17-3.fc23.x86_64/netcon_entrypoint.sh new file mode 100644 index 00000000..44f8db12 --- /dev/null +++ b/netcon/docker-test/httpd/httpd-2.4.17-3.fc23.x86_64/netcon_entrypoint.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/ + + +# --- Test Parameters --- +test_namefile=$(ls *.name) +test_name="${test_namefile%.*}" # test network id +nwconf=$(ls *.conf) # blank test network config file +nwid="${nwconf%.*}" # test network id +file_path=/opt/results/ # test result output file path (fs shared between host and containers) +file_base="$test_name".txt # test result output file +tmp_ext=.tmp # temporary filetype used for sharing test data between containers +address_file="$file_path$test_name"_addr"$tmp_ext" # file shared between host and containers for sharing address (optional) +bigfile_name=bigfile +bigfile_size=10M # size of file we want to use for the test +tx_md5sumfile="$file_path"tx_"$bigfile_name"_md5sum"$tmp_ext" + + +# --- Network Config --- +echo '*** ZeroTier Network Containers Test: ' "$test_name" +chown -R daemon /var/lib/zerotier-one +chgrp -R daemon /var/lib/zerotier-one +su daemon -s /bin/bash -c '/zerotier-one -d -U -p9993 >>/tmp/zerotier-one.out 2>&1' +virtip4="" +while [ -z "$virtip4" ]; do + sleep 0.2 + virtip4=`/zerotier-cli listnetworks | grep -F $nwid | cut -d ' ' -f 9 | sed 's/,/\n/g' | grep -F '.' | cut -d / -f 1` + dev=`/zerotier-cli listnetworks | grep -F "" | cut -d ' ' -f 8 | cut -d "_" -f 2 | sed "s/^<dev>//" | tr '\n' '\0'` +done +echo '*** Up and running at' $virtip4 ' on network: ' $nwid +echo '*** Writing address to ' "$address_file" +echo $virtip4 > "$address_file" + +export ZT_NC_NWID=$dev + +# --- Test section --- +# Generate large random file for transfer test, share md5sum for monitor container to check +echo '*** Generating ' "$bigfile_size" ' file' +dd if=/dev/urandom of=/var/www/html/"$bigfile_name" bs="$bigfile_size" count=1 +#md5sum /var/www/html/"$bigfile_name" >> "$tx_md5sumfile" +md5sum < /var/www/html/"$bigfile_name" >> "$tx_md5sumfile" +echo '*** Wrote MD5 sum to ' "$tx_md5sumfile" + +echo '*** Starting application...' +sleep 0.5 +rm -rf /run/httpd/* /tmp/httpd* +zerotier-intercept /usr/sbin/httpd -D FOREGROUND >>/tmp/apache.out 2>&1 diff --git a/netcon/docker-test/httpd/httpd_demo/htdocs/ZeroTierIcon.png b/netcon/docker-test/httpd/httpd_demo/htdocs/ZeroTierIcon.png Binary files differnew file mode 100644 index 00000000..4d9641b3 --- /dev/null +++ b/netcon/docker-test/httpd/httpd_demo/htdocs/ZeroTierIcon.png diff --git a/netcon/docker-test/httpd/httpd_demo/htdocs/index.html b/netcon/docker-test/httpd/httpd_demo/htdocs/index.html new file mode 100644 index 00000000..017e4493 --- /dev/null +++ b/netcon/docker-test/httpd/httpd_demo/htdocs/index.html @@ -0,0 +1,69 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel="stylesheet" href="http://bootswatch.com/cosmo/bootstrap.min.css"> + <title>ZeroTier Network Containers Preview</title> +</head> +<body> + +<br><br> + +<div class="container-fluid"> + <div class="row"> + <div class="col-xs-1 col-xs-offset-1"><img src="ZeroTierIcon.png" style="width: 100%; height: 100%;"></div> + <div class="col-xs-9"> + <h1>ZeroTier Network Containers Preview</h1> + (a.k.a. super bleeding edge pre-alphe pre-release demo) + </div> + </div> +</div> + +<br> +<hr> +<br> + +<div class="container-fluid"><div class="row"><div class="col-xs-10 col-xs-offset-1 lead"> + +<p><b>This page is being served from a Docker container with its own private TCP/IP microservice.</b></p> + +<p> +It's connected to a virtual network, but if you "docker exec" into it and look around you won't find any special devices. No special privileges or configuration changes on the Docker host were needed. Everything is completely "stock" and completely self-contained. +</p> + +<p> +There's nothing special about the web server. It's just Apache. There's nothing special about the Linux image. It's based on a regular Fedora Docker base image. Other than Apache, the only thing this image contains is the ZeroTier network containers microservice and dynamic library. +</p> + +<p> +When Apache is run, our launcher script configures it to load a special dynamic library. This library intercepts calls to the Linux C networking API, redirecting network I/O to our private network stack microservice instead of the standard Linux kernel network path. This microservice takes care of the rest, automatically encapsulating traffic and sending it over the virtual network instead of the physical. +</p> + +<p> +It's a bit like how networking would work on a microkernel: modular, composable, portable, and independent. +</p> + +<p> +Network Containers allows a Docker (or LXC, CoreOS/rkt, runc, OpenVZ, SmartOS/Triton, <a target="_blank" href="https://github.com/p8952/bocker">bocker</a>, or even just bare metal Linux) system to connect to virtual networks without requiring <u>any</u> special permissions or special configuration on the host node. Processes inside the container don't even need to run with root permissions. It's 100% user-space, making it ideal for multi-tenant deployments or any other situation where modifying the configuration of the host node is impossible or just inconvenient. +</p> + +<p> +Once properly tuned and optimized, Network Containers also has the potential to be much faster than tun/tap or pcap based network overlays. It imposes only a single context switch from application/service to virtual network microservice as opposed to at least four for tun/tap and pcap-based solutions, since the latter require two trips through the kernel network stack. We believe it may be possible to approach or even equal the performance of VXLAN/IPSec or other fully kernel-mode configurations, but with the ease and total independence of a fully container-based solution. +</p> + +<p> +We created this container image to show you a preview of one of the projects we've been working on at ZeroTier. We still have a good deal of packaging, testing, and performance optimization work to do before Network Containers will be ready for a real public beta release. Follow the <a href="https://www.zerotier.com/blog">blog</a> or <a href="https://twitter.com/zerotier">@zerotier</a> for updates and announcements. +</p> + +<p> +P.S. If you want to use ZeroTier in Docker today, you can do it with the same ZeroTier One endpoint service you're using to access this network. The only catch is that you have to launch your containers with "--device=/dev/net/tun --cap-add=NET_ADMIN". Network Containers eliminates the need for these special options. +</p> + +</div></div></div> + +<hr> + +</body> +</html> diff --git a/netcon/docker-test/httpd/httpd_demo/httpd_demo.name b/netcon/docker-test/httpd/httpd_demo/httpd_demo.name new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/netcon/docker-test/httpd/httpd_demo/httpd_demo.name diff --git a/netcon/docker-test/httpd/httpd_demo/monitor_dockerfile b/netcon/docker-test/httpd/httpd_demo/monitor_dockerfile new file mode 100644 index 00000000..08f08ae1 --- /dev/null +++ b/netcon/docker-test/httpd/httpd_demo/monitor_dockerfile @@ -0,0 +1,25 @@ +# ZT Network Containers Test Monitor +FROM fedora:23 +MAINTAINER https://www.zerotier.com/ + +EXPOSE 9993/udp + +# Add ZT files +RUN mkdir -p /var/lib/zerotier-one/networks.d +ADD monitor_identity.public /var/lib/zerotier-one/identity.public +ADD monitor_identity.secret /var/lib/zerotier-one/identity.secret +ADD *.conf /var/lib/zerotier-one/networks.d/ +ADD *.conf / +ADD *.name / +ADD zerotier-one / +ADD zerotier-cli / + +# Install LWIP library used by service +ADD liblwip.so / +RUN mkdir -p ext/bin/lwip +RUN cp liblwip.so ext/bin/lwip/liblwip.so + +# Start ZeroTier-One +ADD monitor_entrypoint.sh /monitor_entrypoint.sh +RUN chmod -v +x /monitor_entrypoint.sh +CMD ["./monitor_entrypoint.sh"] diff --git a/netcon/docker-test/httpd/httpd_demo/monitor_entrypoint.sh b/netcon/docker-test/httpd/httpd_demo/monitor_entrypoint.sh new file mode 100644 index 00000000..79d4391d --- /dev/null +++ b/netcon/docker-test/httpd/httpd_demo/monitor_entrypoint.sh @@ -0,0 +1,86 @@ +#!/bin/bash + +export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/ + + +# --- Test Parameters --- +test_namefile=$(ls *.name) +test_name="${test_namefile%.*}" # test network id +nwconf=$(ls *.conf) # blank test network config file +nwid="${nwconf%.*}" # test network id +netcon_wait_time=25 # wait for test container to come online +app_timeout_time=15 # app-specific timeout +file_path=/opt/results/ # test result output file path (fs shared between host and containers) +file_base="$test_name".txt # test result output file +fail=FAIL. # appended to result file in event of failure +ok=OK. # appended to result file in event of success +tmp_ext=.tmp # temporary filetype used for sharing test data between containers +address_file="$file_path$test_name"_addr"$tmp_ext" # file shared between host and containers for sharing address (optional) +bigfile_name=bigfile # large, random test transfer file +rx_md5sumfile="$file_path"rx_"$bigfile_name"_md5sum"$tmp_ext" +tx_md5sumfile="$file_path"tx_"$bigfile_name"_md5sum"$tmp_ext" + + +# --- Network Config --- +echo '*** ZeroTier Network Containers Test Monitor' +chown -R daemon /var/lib/zerotier-one +chgrp -R daemon /var/lib/zerotier-one +su daemon -s /bin/bash -c '/zerotier-one -d -U -p9993 >>/tmp/zerotier-one.out 2>&1' +echo '*** Waiting for initial identity generation...' +while [ ! -s /var/lib/zerotier-one/identity.secret ]; do + sleep 0.2 +done +echo '*** Waiting for network config...' +virtip4="" +while [ ! -s /var/lib/zerotier-one/networks.d/"$nwconf" ]; do + sleep 0.2 +done +while [ -z "$virtip4" ]; do + sleep 0.2 + virtip4=`/zerotier-cli listnetworks | grep -F $nwid | cut -d ' ' -f 9 | sed 's/,/\n/g' | grep -F '.' | cut -d / -f 1` +done +echo '*** Starting Test...' +echo '*** Up and running at' $virtip4 ' on network: ' $nwid +echo '*** Sleeping for (' "$netcon_wait_time" 's ) while we wait for the Network Container to come online...' +sleep "$netcon_wait_time"s +ncvirtip=$(<$address_file) + + +# --- Test section --- +echo '*** Curling from intercepted server at' $ncvirtip +rm -rf "$file_path"*."$file_base" +touch "$bigfile_name" + +# Perform test +# curl --connect-timeout "$app_timeout_time" -v -o "$file_path$file_base" http://"$ncvirtip"/index.html +# Large transfer test +curl --connect-timeout "$app_timeout_time" -v -o "$bigfile_name" http://"$ncvirtip"/"$bigfile_name" + +# Check md5 +md5sum < "$bigfile_name" >> "$rx_md5sumfile" +rx_md5sum=$(<$rx_md5sumfile) +tx_md5sum=$(<$tx_md5sumfile) + +echo '*** Comparing md5: ' "$rx_md5sum" ' and ' "$tx_md5sum" + +if [ $rx_md5sum != $tx_md5sum ]; +then + echo 'MD5 FAIL' + touch "$file_path$fail$test_name.txt" + printf 'Test: md5 sum did not match!\n' >> "$file_path$fail$test_name.txt" +else + echo 'MD5 OK' + touch "$file_path$ok$test_name.txt" + printf 'Test: md5 sum ok!\n' >> "$file_path$ok$test_name.txt" +fi + + + + + + + + + + + diff --git a/netcon/docker-test/httpd/httpd_demo/netcon_dockerfile b/netcon/docker-test/httpd/httpd_demo/netcon_dockerfile new file mode 100644 index 00000000..be9d3f3f --- /dev/null +++ b/netcon/docker-test/httpd/httpd_demo/netcon_dockerfile @@ -0,0 +1,47 @@ +# ZT Network Containers Test +FROM fedora:23 +MAINTAINER https://www.zerotier.com/ + +# Install apps +RUN yum -y update +RUN yum -y install httpd-2.4.17-3.fc23.x86_64 +RUN yum clean all + +EXPOSE 9993/udp + +#include Apache +ADD htdocs/index.html / +ADD htdocs/ZeroTierIcon.png / +RUN mv index.html /var/www/html/index.html +RUN mv ZeroTierIcon.png /var/www/html/ZeroTierIcon.png + +# Install syscall intercept library +ADD zerotier-intercept / +ADD libzerotierintercept.so.1.0 / +RUN cp libzerotierintercept.so.1.0 lib/libzerotierintercept.so.1.0 +RUN cp libzerotierintercept.so.1.0 /lib/libzerotierintercept.so.1.0 +RUN ln -sf /lib/libzerotierintercept.so.1.0 /lib/libzerotierintercept +RUN /usr/bin/install -c zerotier-intercept /usr/bin + +# Add ZT files +RUN mkdir -p /var/lib/zerotier-one/networks.d +ADD netcon_identity.public /var/lib/zerotier-one/identity.public +ADD netcon_identity.secret /var/lib/zerotier-one/identity.secret +ADD *.conf /var/lib/zerotier-one/networks.d/ +ADD *.conf / +ADD *.name / + +ADD zerotier-one / +ADD zerotier-cli / + +# Install test scripts +ADD netcon_entrypoint.sh /netcon_entrypoint.sh +RUN chmod -v +x /netcon_entrypoint.sh + +# Install LWIP library used by service +ADD liblwip.so / +RUN mkdir -p ext/bin/lwip +RUN cp liblwip.so ext/bin/lwip/liblwip.so + +# Start ZeroTier-One +CMD ["./netcon_entrypoint.sh"] diff --git a/netcon/docker-test/httpd/httpd_demo/netcon_entrypoint.sh b/netcon/docker-test/httpd/httpd_demo/netcon_entrypoint.sh new file mode 100644 index 00000000..fd47cf38 --- /dev/null +++ b/netcon/docker-test/httpd/httpd_demo/netcon_entrypoint.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/ + + +# --- Test Parameters --- +test_namefile=$(ls *.name) +test_name="${test_namefile%.*}" # test network id +nwconf=$(ls *.conf) # blank test network config file +nwid="${nwconf%.*}" # test network id +file_path=/opt/results/ # test result output file path (fs shared between host and containers) +file_base="$test_name".txt # test result output file +tmp_ext=.tmp # temporary filetype used for sharing test data between containers +address_file="$file_path$test_name"_addr"$tmp_ext" # file shared between host and containers for sharing address (optional) +bigfile_name=bigfile +bigfile_size=10M # size of file we want to use for the test +tx_md5sumfile="$file_path"tx_"$bigfile_name"_md5sum"$tmp_ext" + + +# --- Network Config --- +echo '*** ZeroTier Network Containers Test: ' "$test_name" +chown -R daemon /var/lib/zerotier-one +chgrp -R daemon /var/lib/zerotier-one +su daemon -s /bin/bash -c '/zerotier-one -d -U -p9993 >>/tmp/zerotier-one.out 2>&1' +echo '*** Waiting for initial identity generation...' +while [ ! -s /var/lib/zerotier-one/identity.secret ]; do + sleep 0.2 +done +echo '*** Waiting for network config...' +virtip4="" +while [ ! -s /var/lib/zerotier-one/networks.d/"$nwconf" ]; do + sleep 0.2 +done +while [ -z "$virtip4" ]; do + sleep 0.2 + virtip4=`/zerotier-cli listnetworks | grep -F $nwid | cut -d ' ' -f 9 | sed 's/,/\n/g' | grep -F '.' | cut -d / -f 1` +done +echo '*** Up and running at' $virtip4 ' on network: ' $nwid +echo '*** Writing address to ' "$address_file" +echo $virtip4 > "$address_file" + + +# --- Test section --- +# Generate large random file for transfer test, share md5sum for monitor container to check +echo '*** Generating ' "$bigfile_size" ' file' +dd if=/dev/urandom of=/var/www/html/"$bigfile_name" bs="$bigfile_size" count=1 +#md5sum /var/www/html/"$bigfile_name" >> "$tx_md5sumfile" +md5sum < /var/www/html/"$bigfile_name" >> "$tx_md5sumfile" +echo '*** Wrote MD5 sum to ' "$tx_md5sumfile" + +echo '*** Starting application...' +sleep 0.5 +rm -rf /run/httpd/* /tmp/httpd* +zerotier-intercept /usr/sbin/httpd -D FOREGROUND >>/tmp/apache.out 2>&1 diff --git a/netcon/docker-test/monitor_identity.public b/netcon/docker-test/monitor_identity.public new file mode 100644 index 00000000..7ee33756 --- /dev/null +++ b/netcon/docker-test/monitor_identity.public @@ -0,0 +1 @@ +e5b0e7dc2a:0:f257ee08ad335ef87caf30598a5a17a758f193da58085b7b471c9cc48413585cba5e7830c23508907a2f991308a7ddc01912023cc454a7de80cdad68edebcc63
\ No newline at end of file diff --git a/netcon/docker-test/monitor_identity.secret b/netcon/docker-test/monitor_identity.secret new file mode 100644 index 00000000..05c10132 --- /dev/null +++ b/netcon/docker-test/monitor_identity.secret @@ -0,0 +1 @@ +e5b0e7dc2a:0:f257ee08ad335ef87caf30598a5a17a758f193da58085b7b471c9cc48413585cba5e7830c23508907a2f991308a7ddc01912023cc454a7de80cdad68edebcc63:21e5f68984b729acdaedd6c4c057d0a5447cefa66ec5de8d10982f77efc148e65ce954ee17604716398a91ab74563b0b25263f84b45cecd97fa1bc35d1ef2bd7
\ No newline at end of file diff --git a/netcon/docker-test/netcon_identity.public b/netcon/docker-test/netcon_identity.public new file mode 100644 index 00000000..36b8ec69 --- /dev/null +++ b/netcon/docker-test/netcon_identity.public @@ -0,0 +1 @@ +ba2488cd53:0:a8bd3d0febd1da023b11382f45df6d246be9407ac62dc32c0c60aa2b96d3df15aa303a0eb28297916f7bcdbcd73a960f404a202f336cd35103d837bce1fb896f
\ No newline at end of file diff --git a/netcon/docker-test/netcon_identity.secret b/netcon/docker-test/netcon_identity.secret new file mode 100644 index 00000000..6f06053e --- /dev/null +++ b/netcon/docker-test/netcon_identity.secret @@ -0,0 +1 @@ +ba2488cd53:0:a8bd3d0febd1da023b11382f45df6d246be9407ac62dc32c0c60aa2b96d3df15aa303a0eb28297916f7bcdbcd73a960f404a202f336cd35103d837bce1fb896f:07d0caef50f3c94897035a954cdc73dc391f77a267caa54d52d4841edbec24388d601d27522d415a943764f9c91b7870754c08b4e04780b29c7c69edade2f638
\ No newline at end of file diff --git a/netcon/docker-test/nginx/nginx-1.8.0-13.fc23.x86_64/monitor_dockerfile b/netcon/docker-test/nginx/nginx-1.8.0-13.fc23.x86_64/monitor_dockerfile new file mode 100644 index 00000000..e8f803cd --- /dev/null +++ b/netcon/docker-test/nginx/nginx-1.8.0-13.fc23.x86_64/monitor_dockerfile @@ -0,0 +1,23 @@ +# ZT Network Containers Test Monitor +FROM fedora:23 +MAINTAINER https://www.zerotier.com/ + +EXPOSE 9993/udp + +# Install LWIP library used by service +ADD liblwip.so /var/lib/zerotier-one/liblwip.so + +# Add ZT files +RUN mkdir -p /var/lib/zerotier-one/networks.d +ADD monitor_identity.public /var/lib/zerotier-one/identity.public +ADD monitor_identity.secret /var/lib/zerotier-one/identity.secret +ADD *.conf /var/lib/zerotier-one/networks.d/ +ADD *.conf / +ADD *.name / +ADD zerotier-one / +ADD zerotier-cli / + +# Start ZeroTier-One +ADD monitor_entrypoint.sh /monitor_entrypoint.sh +RUN chmod -v +x /monitor_entrypoint.sh +CMD ["./monitor_entrypoint.sh"] diff --git a/netcon/docker-test/nginx/nginx-1.8.0-13.fc23.x86_64/monitor_entrypoint.sh b/netcon/docker-test/nginx/nginx-1.8.0-13.fc23.x86_64/monitor_entrypoint.sh new file mode 100644 index 00000000..52470efd --- /dev/null +++ b/netcon/docker-test/nginx/nginx-1.8.0-13.fc23.x86_64/monitor_entrypoint.sh @@ -0,0 +1,80 @@ +#!/bin/bash + +export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/ + + +# --- Test Parameters --- +test_namefile=$(ls *.name) +test_name="${test_namefile%.*}" # test network id +nwconf=$(ls *.conf) # blank test network config file +nwid="${nwconf%.*}" # test network id +netcon_wait_time=35 # wait for test container to come online +app_timeout_time=25 # app-specific timeout +file_path=/opt/results/ # test result output file path (fs shared between host and containers) +file_base="$test_name".txt # test result output file +fail=FAIL. # appended to result file in event of failure +ok=OK. # appended to result file in event of success +tmp_ext=.tmp # temporary filetype used for sharing test data between containers +address_file="$file_path$test_name"_addr"$tmp_ext" # file shared between host and containers for sharing address (optional) +bigfile_name=bigfile # large, random test transfer file +rx_md5sumfile="$file_path"rx_"$bigfile_name"_md5sum"$tmp_ext" +tx_md5sumfile="$file_path"tx_"$bigfile_name"_md5sum"$tmp_ext" + + +# --- Network Config --- +echo '*** ZeroTier Network Containers Test Monitor' +chown -R daemon /var/lib/zerotier-one +chgrp -R daemon /var/lib/zerotier-one +su daemon -s /bin/bash -c '/zerotier-one -d -U -p9993 >>/tmp/zerotier-one.out 2>&1' +virtip4="" +while [ -z "$virtip4" ]; do + sleep 0.2 + virtip4=`/zerotier-cli listnetworks | grep -F $nwid | cut -d ' ' -f 9 | sed 's/,/\n/g' | grep -F '.' | cut -d / -f 1` +done +echo '*** Starting Test...' +echo '*** Up and running at' $virtip4 ' on network: ' $nwid +echo '*** Sleeping for (' "$netcon_wait_time" 's ) while we wait for the Network Container to come online...' +sleep "$netcon_wait_time"s +ncvirtip=$(<$address_file) + + +# --- Test section --- +echo '*** Curling from intercepted server at' $ncvirtip +rm -rf "$file_path"*."$file_base" +touch "$bigfile_name" + +# Perform test +# curl --connect-timeout "$app_timeout_time" -v -o "$file_path$file_base" http://"$ncvirtip"/index.html +# Large transfer test +curl --connect-timeout "$app_timeout_time" -v -o "$bigfile_name" http://"$ncvirtip"/"$bigfile_name" + +# Check md5 +md5sum < "$bigfile_name" >> "$rx_md5sumfile" +rx_md5sum=$(<$rx_md5sumfile) +tx_md5sum=$(<$tx_md5sumfile) + +echo '*** Comparing md5: ' "$rx_md5sum" ' and ' "$tx_md5sum" + +if [ "$rx_md5sum" != "$tx_md5sum" ]; +then + echo 'MD5 FAIL' + touch "$file_path$fail$test_name.txt" + printf 'Test: md5 sum did not match!\n' >> "$file_path$fail$test_name.txt" +else + echo 'MD5 OK' + touch "$file_path$ok$test_name.txt" + printf 'Test: md5 sum ok!\n' >> "$file_path$ok$test_name.txt" + cat "$rx_md5sumfile" >> "$file_path$ok$test_name.txt" + cat "$tx_md5sumfile" >> "$file_path$ok$test_name.txt" +fi + + + + + + + + + + + diff --git a/netcon/docker-test/nginx/nginx-1.8.0-13.fc23.x86_64/netcon_dockerfile b/netcon/docker-test/nginx/nginx-1.8.0-13.fc23.x86_64/netcon_dockerfile new file mode 100644 index 00000000..e7b4ad34 --- /dev/null +++ b/netcon/docker-test/nginx/nginx-1.8.0-13.fc23.x86_64/netcon_dockerfile @@ -0,0 +1,39 @@ +# ZT Network Containers Test +FROM fedora:23 +MAINTAINER https://www.zerotier.com/ + +# Install apps +RUN yum -y update +RUN yum -y install nginx-1:1.8.0-13.fc23.x86_64 +RUN yum clean all + +EXPOSE 9993/udp 80/udp + +# Install LWIP library used by service +ADD liblwip.so /var/lib/zerotier-one/liblwip.so + +# Install syscall intercept library +ADD zerotier-intercept / +ADD libzerotierintercept.so.1.0 / +RUN cp libzerotierintercept.so.1.0 lib/libzerotierintercept.so.1.0 +RUN cp libzerotierintercept.so.1.0 /lib/libzerotierintercept.so.1.0 +RUN ln -sf /lib/libzerotierintercept.so.1.0 /lib/libzerotierintercept +RUN /usr/bin/install -c zerotier-intercept /usr/bin + +# Add ZT files +RUN mkdir -p /var/lib/zerotier-one/networks.d +ADD netcon_identity.public /var/lib/zerotier-one/identity.public +ADD netcon_identity.secret /var/lib/zerotier-one/identity.secret +ADD *.conf /var/lib/zerotier-one/networks.d/ +ADD *.conf / +ADD *.name / + +ADD zerotier-one / +ADD zerotier-cli / + +# Install test scripts +ADD netcon_entrypoint.sh /netcon_entrypoint.sh +RUN chmod -v +x /netcon_entrypoint.sh + +# Start ZeroTier-One +CMD ["./netcon_entrypoint.sh"] diff --git a/netcon/docker-test/nginx/nginx-1.8.0-13.fc23.x86_64/netcon_entrypoint.sh b/netcon/docker-test/nginx/nginx-1.8.0-13.fc23.x86_64/netcon_entrypoint.sh new file mode 100644 index 00000000..12d0d998 --- /dev/null +++ b/netcon/docker-test/nginx/nginx-1.8.0-13.fc23.x86_64/netcon_entrypoint.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/ + + +# --- Test Parameters --- +test_namefile=$(ls *.name) +test_name="${test_namefile%.*}" # test network id +nwconf=$(ls *.conf) # blank test network config file +nwid="${nwconf%.*}" # test network id +file_path=/opt/results/ # test result output file path (fs shared between host and containers) +file_base="$test_name".txt # test result output file +tmp_ext=.tmp # temporary filetype used for sharing test data between containers +address_file="$file_path$test_name"_addr"$tmp_ext" # file shared between host and containers for sharing address (optional) +bigfile_name=bigfile +bigfile_size=10M # size of file we want to use for the test +tx_md5sumfile="$file_path"tx_"$bigfile_name"_md5sum"$tmp_ext" + + +# --- Network Config --- +echo '*** ZeroTier Network Containers Test: ' "$test_name" +chown -R daemon /var/lib/zerotier-one +chgrp -R daemon /var/lib/zerotier-one +su daemon -s /bin/bash -c '/zerotier-one -d -U -p9993 >>/tmp/zerotier-one.out 2>&1' +virtip4="" +while [ -z "$virtip4" ]; do + sleep 0.2 + virtip4=`/zerotier-cli listnetworks | grep -F $nwid | cut -d ' ' -f 9 | sed 's/,/\n/g' | grep -F '.' | cut -d / -f 1` + dev=`/zerotier-cli listnetworks | grep -F "" | cut -d ' ' -f 8 | cut -d "_" -f 2 | sed "s/^<dev>//" | tr '\n' '\0'` +done +echo '*** Up and running at' $virtip4 ' on network: ' $nwid +echo '*** Writing address to ' "$address_file" +echo $virtip4 > "$address_file" + +export ZT_NC_NWID=$dev + +# --- Test section --- +nginx_html_path=/usr/share/nginx/html/ +# Generate large random file for transfer test, share md5sum for monitor container to check +echo '*** Generating ' "$bigfile_size" ' file' +dd if=/dev/urandom of="$nginx_html_path$bigfile_name" bs="$bigfile_size" count=1 +#md5sum /var/www/html/"$bigfile_name" >> "$tx_md5sumfile" +md5sum < "$nginx_html_path$bigfile_name" >> "$tx_md5sumfile" +echo '*** Wrote MD5 sum to ' "$tx_md5sumfile" + +echo '*** Starting application...' +sleep 0.5 +zerotier-intercept nginx diff --git a/netcon/docker-test/nginx/nginx-1.8.0-13.fc23.x86_64/nginx-1.8.0-13.fc23.x86_64.name b/netcon/docker-test/nginx/nginx-1.8.0-13.fc23.x86_64/nginx-1.8.0-13.fc23.x86_64.name new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/netcon/docker-test/nginx/nginx-1.8.0-13.fc23.x86_64/nginx-1.8.0-13.fc23.x86_64.name diff --git a/netcon/docker-test/nginx/nginx-1.8.0-13.fc23.x86_64/trace.txt b/netcon/docker-test/nginx/nginx-1.8.0-13.fc23.x86_64/trace.txt new file mode 100644 index 00000000..b73e9fa6 --- /dev/null +++ b/netcon/docker-test/nginx/nginx-1.8.0-13.fc23.x86_64/trace.txt @@ -0,0 +1,943 @@ +27096 execve("/usr/bin/zerotier-intercept", ["zerotier-intercept", "nginx"], [/* 30 vars */]) = 0 +27096 brk(0) = 0x56046800c000 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe905081000 +27096 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) +27096 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 +27096 fstat(3, {st_mode=S_IFREG|0644, st_size=87726, ...}) = 0 +27096 mmap(NULL, 87726, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fe90506b000 +27096 close(3) = 0 +27096 open("/lib64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\316\0\0\0\0\0\0@\0\0\0\0\0\0\0 \231\2\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\33\0\32\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\fT\2\0\0\0\0\0\fT\2\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=172000, ...}) = 0 +27096 mmap(NULL, 2267936, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fe904c38000 +27096 mprotect(0x7fe904c5e000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7fe904e5d000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x25000) = 0x7fe904e5d000 +27096 close(3) = 0 +27096 open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\16\0\0\0\0\0\0@\0\0\0\0\0\0\0\220C\0\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0 \0\37\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\320 \0\0\0\0\0\0\320 \0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=19344, ...}) = 0 +27096 mmap(NULL, 2109712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fe904a34000 +27096 mprotect(0x7fe904a37000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7fe904c36000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7fe904c36000 +27096 close(3) = 0 +27096 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\6\2\0\0\0\0\0@\0\0\0\0\0\0\0\220\1 \0\0\0\0\0\0\0\0\0@\0008\0\n\0@\0J\0I\0\6\0\0\0\5\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0000\2\0\0\0\0\0\0000\2\0\0\0\0\0\0\10\0\0\0\0\0\0\0\3\0\0\0\4\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=2102288, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe90506a000 +27096 mmap(NULL, 3934784, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fe904673000 +27096 mprotect(0x7fe90482a000, 2097152, PROT_NONE) = 0 +27096 mmap(0x7fe904a2a000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b7000) = 0x7fe904a2a000 +27096 mmap(0x7fe904a30000, 14912, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fe904a30000 +27096 close(3) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe905069000 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe905068000 +27096 arch_prctl(ARCH_SET_FS, 0x7fe905069700) = 0 +27096 mprotect(0x7fe904a2a000, 16384, PROT_READ) = 0 +27096 mprotect(0x7fe904c36000, 4096, PROT_READ) = 0 +27096 mprotect(0x7fe904e5d000, 16384, PROT_READ) = 0 +27096 mprotect(0x560466b3f000, 16384, PROT_READ) = 0 +27096 mprotect(0x7fe905082000, 4096, PROT_READ) = 0 +27096 munmap(0x7fe90506b000, 87726) = 0 +27096 open("/dev/tty", O_RDWR|O_NONBLOCK) = 3 +27096 close(3) = 0 +27096 brk(0) = 0x56046800c000 +27096 brk(0x56046802d000) = 0x56046802d000 +27096 brk(0) = 0x56046802d000 +27096 open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3 +27096 fstat(3, {st_mode=S_IFREG|0644, st_size=110439344, ...}) = 0 +27096 mmap(NULL, 110439344, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fe8fdd20000 +27096 close(3) = 0 +27096 getuid() = 0 +27096 getgid() = 0 +27096 geteuid() = 0 +27096 getegid() = 0 +27096 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 +27096 brk(0) = 0x56046802d000 +27096 open("/proc/meminfo", O_RDONLY|O_CLOEXEC) = 3 +27096 fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe905080000 +27096 read(3, "MemTotal: 3120024 kB\nMemFree: 1575724 kB\nMemAvailable: 2880692 kB\nBuffers: 134544 kB\nCached: "..., 1024) = 1024 +27096 close(3) = 0 +27096 munmap(0x7fe905080000, 4096) = 0 +27096 rt_sigaction(SIGCHLD, {SIG_DFL, [], SA_RESTORER|SA_RESTART, 0x7fe9046a7b20}, {SIG_DFL, [], 0}, 8) = 0 +27096 rt_sigaction(SIGCHLD, {SIG_DFL, [], SA_RESTORER|SA_RESTART, 0x7fe9046a7b20}, {SIG_DFL, [], SA_RESTORER|SA_RESTART, 0x7fe9046a7b20}, 8) = 0 +27096 rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7fe9046a7b20}, {SIG_DFL, [], 0}, 8) = 0 +27096 rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7fe9046a7b20}, {SIG_DFL, [], SA_RESTORER, 0x7fe9046a7b20}, 8) = 0 +27096 rt_sigaction(SIGQUIT, {SIG_DFL, [], SA_RESTORER, 0x7fe9046a7b20}, {SIG_DFL, [], 0}, 8) = 0 +27096 rt_sigaction(SIGQUIT, {SIG_DFL, [], SA_RESTORER, 0x7fe9046a7b20}, {SIG_DFL, [], SA_RESTORER, 0x7fe9046a7b20}, 8) = 0 +27096 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 +27096 rt_sigaction(SIGQUIT, {SIG_IGN, [], SA_RESTORER, 0x7fe9046a7b20}, {SIG_DFL, [], SA_RESTORER, 0x7fe9046a7b20}, 8) = 0 +27096 uname({sysname="Linux", nodename="localhost.localdomain", ...}) = 0 +27096 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 +27096 open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = 3 +27096 fstat(3, {st_mode=S_IFREG|0644, st_size=26254, ...}) = 0 +27096 mmap(NULL, 26254, PROT_READ, MAP_SHARED, 3, 0) = 0x7fe90507a000 +27096 close(3) = 0 +27096 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 +27096 stat("/home/joseph/dev/zerotierone/netcon/docker-test/nginx/nginx-1.8.0-13.fc23.x86_64", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 +27096 stat(".", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 +27096 getpid() = 27096 +27096 getppid() = 27094 +27096 getpgrp() = 27094 +27096 rt_sigaction(SIGCHLD, {0x56046689c320, [], SA_RESTORER|SA_RESTART, 0x7fe9046a7b20}, {SIG_DFL, [], SA_RESTORER|SA_RESTART, 0x7fe9046a7b20}, 8) = 0 +27096 getrlimit(RLIMIT_NPROC, {rlim_cur=12104, rlim_max=12104}) = 0 +27096 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 +27096 open("/usr/bin/zerotier-intercept", O_RDONLY) = 3 +27096 ioctl(3, TCGETS, 0x7fffea086420) = -1 ENOTTY (Inappropriate ioctl for device) +27096 lseek(3, 0, SEEK_CUR) = 0 +27096 read(3, "#!/bin/sh\n# usage:\n# /usr/bin/intercept program <args>\n\nif [ $# = 0 ] ; then\n ", 80) = 80 +27096 lseek(3, 0, SEEK_SET) = 0 +27096 getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=4*1024}) = 0 +27096 fcntl(255, F_GETFD) = -1 EBADF (Bad file descriptor) +27096 dup2(3, 255) = 255 +27096 close(3) = 0 +27096 fcntl(255, F_SETFD, FD_CLOEXEC) = 0 +27096 fcntl(255, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE) +27096 fstat(255, {st_mode=S_IFREG|0755, st_size=982, ...}) = 0 +27096 lseek(255, 0, SEEK_CUR) = 0 +27096 read(255, "#!/bin/sh\n# usage:\n# /usr/bin/intercept program <args>\n\nif [ $# = 0 ] ; then\n echo \"$0: insufficient arguments\"\n exit\nfi\n\nca"..., 982) = 982 +27096 stat(".", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 +27096 stat("/usr/local/sbin/nginx", 0x7fffea085d10) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/bin/nginx", 0x7fffea085d10) = -1 ENOENT (No such file or directory) +27096 stat("/usr/sbin/nginx", {st_mode=S_IFREG|0755, st_size=1154208, ...}) = 0 +27096 stat("/usr/sbin/nginx", {st_mode=S_IFREG|0755, st_size=1154208, ...}) = 0 +27096 geteuid() = 0 +27096 getegid() = 0 +27096 getuid() = 0 +27096 getgid() = 0 +27096 access("/usr/sbin/nginx", X_OK) = 0 +27096 stat("/usr/sbin/nginx", {st_mode=S_IFREG|0755, st_size=1154208, ...}) = 0 +27096 geteuid() = 0 +27096 getegid() = 0 +27096 getuid() = 0 +27096 getgid() = 0 +27096 access("/usr/sbin/nginx", R_OK) = 0 +27096 stat("/usr/sbin/nginx", {st_mode=S_IFREG|0755, st_size=1154208, ...}) = 0 +27096 stat("/usr/sbin/nginx", {st_mode=S_IFREG|0755, st_size=1154208, ...}) = 0 +27096 geteuid() = 0 +27096 getegid() = 0 +27096 getuid() = 0 +27096 getgid() = 0 +27096 access("/usr/sbin/nginx", X_OK) = 0 +27096 stat("/usr/sbin/nginx", {st_mode=S_IFREG|0755, st_size=1154208, ...}) = 0 +27096 geteuid() = 0 +27096 getegid() = 0 +27096 getuid() = 0 +27096 getgid() = 0 +27096 access("/usr/sbin/nginx", R_OK) = 0 +27096 rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7fe9046a7b20}, {SIG_DFL, [], SA_RESTORER, 0x7fe9046a7b20}, 8) = 0 +27096 rt_sigaction(SIGQUIT, {SIG_DFL, [], SA_RESTORER, 0x7fe9046a7b20}, {SIG_IGN, [], SA_RESTORER, 0x7fe9046a7b20}, 8) = 0 +27096 rt_sigaction(SIGCHLD, {SIG_DFL, [], SA_RESTORER|SA_RESTART, 0x7fe9046a7b20}, {0x56046689c320, [], SA_RESTORER|SA_RESTART, 0x7fe9046a7b20}, 8) = 0 +27096 execve("/usr/sbin/nginx", ["nginx"], [/* 29 vars */]) = 0 +27096 brk(0) = 0x564360913000 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b82000 +27096 open("/lib/libzerotierintercept.so.1.0", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\23\0\0\0\0\0\0@\0\0\0\0\0\0\0X\360\0\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0 \0\35\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`A\0\0\0\0\0\0`A\0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=63576, ...}) = 0 +27096 mmap(NULL, 2118280, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8ca275d000 +27096 mprotect(0x7f8ca2762000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8ca2961000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0x7f8ca2961000 +27096 close(3) = 0 +27096 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) +27096 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 +27096 fstat(3, {st_mode=S_IFREG|0644, st_size=87726, ...}) = 0 +27096 mmap(NULL, 87726, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f8ca2b6c000 +27096 close(3) = 0 +27096 open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260`\0\0\0\0\0\0@\0\0\0\0\0\0\0p;\2\0\0\0\0\0\0\0\0\0@\0008\0\t\0@\0)\0(\0\6\0\0\0\5\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\370\1\0\0\0\0\0\0\370\1\0\0\0\0\0\0\10\0\0\0\0\0\0\0\3\0\0\0\4\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=148912, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b6b000 +27096 mmap(NULL, 2213040, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8ca2540000 +27096 mprotect(0x7f8ca2558000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8ca2757000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x7f8ca2757000 +27096 mmap(0x7f8ca2759000, 13488, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2759000 +27096 close(3) = 0 +27096 open("/lib64/libcrypt.so.1", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\r\0\0\0\0\0\0@\0\0\0\0\0\0\0\210\206\0\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0 \0\37\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\234g\0\0\0\0\0\0\234g\0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=36488, ...}) = 0 +27096 mmap(NULL, 2314784, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8ca230a000 +27096 mprotect(0x7f8ca2311000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8ca2510000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7f8ca2510000 +27096 mmap(0x7f8ca2512000, 184864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2512000 +27096 close(3) = 0 +27096 open("/lib64/libpcre.so.1", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\26\0\0\0\0\0\0@\0\0\0\0\0\0\0(\373\6\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\33\0\32\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\364\337\6\0\0\0\0\0\364\337\6\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=459240, ...}) = 0 +27096 mmap(NULL, 2552072, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8ca209a000 +27096 mprotect(0x7f8ca2108000, 2097152, PROT_NONE) = 0 +27096 mmap(0x7f8ca2308000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6e000) = 0x7f8ca2308000 +27096 close(3) = 0 +27096 open("/lib64/libssl.so.10", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\271\1\0\0\0\0\0@\0\0\0\0\0\0\0008\223\7\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\35\0\34\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0t\317\6\0\0\0\0\0t\317\6\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=498296, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b6a000 +27096 mmap(NULL, 2591344, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8ca1e21000 +27096 mprotect(0x7f8ca1e8e000, 2097152, PROT_NONE) = 0 +27096 mmap(0x7f8ca208e000, 49152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6d000) = 0x7f8ca208e000 +27096 close(3) = 0 +27096 open("/lib64/libcrypto.so.10", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\277\6\0\0\0\0\0@\0\0\0\0\0\0\0@\261$\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\35\0\34\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\304\2\"\0\0\0\0\0\304\2\"\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=2406528, ...}) = 0 +27096 mmap(NULL, 4506208, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8ca19d4000 +27096 mprotect(0x7f8ca1bf5000, 2097152, PROT_NONE) = 0 +27096 mmap(0x7f8ca1df5000, 163840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x221000) = 0x7f8ca1df5000 +27096 mmap(0x7f8ca1e1d000, 12896, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8ca1e1d000 +27096 close(3) = 0 +27096 open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\16\0\0\0\0\0\0@\0\0\0\0\0\0\0\220C\0\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0 \0\37\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\320 \0\0\0\0\0\0\320 \0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=19344, ...}) = 0 +27096 mmap(NULL, 2109712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8ca17d0000 +27096 mprotect(0x7f8ca17d3000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8ca19d2000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f8ca19d2000 +27096 close(3) = 0 +27096 open("/lib64/libz.so.1", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\"\0\0\0\0\0\0@\0\0\0\0\0\0\0\200V\1\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\34\0\33\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\354C\1\0\0\0\0\0\354C\1\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=89472, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b69000 +27096 mmap(NULL, 2183272, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8ca15ba000 +27096 mprotect(0x7f8ca15cf000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8ca17ce000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x7f8ca17ce000 +27096 close(3) = 0 +27096 open("/lib64/libxml2.so.2", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\344\2\0\0\0\0\0@\0\0\0\0\0\0\0\260\263\26\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\34\0\33\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0D\256\25\0\0\0\0\0D\256\25\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=1489584, ...}) = 0 +27096 mmap(NULL, 3561880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8ca1254000 +27096 mprotect(0x7f8ca13af000, 2097152, PROT_NONE) = 0 +27096 mmap(0x7f8ca15af000, 40960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15b000) = 0x7f8ca15af000 +27096 mmap(0x7f8ca15b9000, 2456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8ca15b9000 +27096 close(3) = 0 +27096 open("/lib64/libxslt.so.1", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\254\0\0\0\0\0\0@\0\0\0\0\0\0\0\250\345\3\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\35\0\34\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\354\302\3\0\0\0\0\0\354\302\3\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=257256, ...}) = 0 +27096 mmap(NULL, 2351336, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8ca1015000 +27096 mprotect(0x7f8ca1052000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8ca1251000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3c000) = 0x7f8ca1251000 +27096 mmap(0x7f8ca1253000, 232, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8ca1253000 +27096 close(3) = 0 +27096 open("/lib64/libexslt.so.0", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 =\0\0\0\0\0\0@\0\0\0\0\0\0\0\10N\1\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\34\0\33\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\304;\1\0\0\0\0\0\304;\1\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=87304, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b68000 +27096 mmap(NULL, 2180320, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8ca0e00000 +27096 mprotect(0x7f8ca0e14000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8ca1013000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13000) = 0x7f8ca1013000 +27096 close(3) = 0 +27096 open("/lib64/libgd.so.3", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\352\0\0\0\0\0\0@\0\0\0\0\0\0\0 \210\6\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\33\0\32\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0t5\4\0\0\0\0\0t5\4\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=429792, ...}) = 0 +27096 mmap(NULL, 2542192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8ca0b93000 +27096 mprotect(0x7f8ca0bd7000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8ca0dd6000, 151552, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x43000) = 0x7f8ca0dd6000 +27096 mmap(0x7f8ca0dfb000, 19056, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8ca0dfb000 +27096 close(3) = 0 +27096 open("/lib64/libGeoIP.so.1", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320o\0\0\0\0\0\0@\0\0\0\0\0\0\0\200\26\3\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\33\0\32\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\374\353\2\0\0\0\0\0\374\353\2\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=204096, ...}) = 0 +27096 mmap(NULL, 2298224, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8ca0961000 +27096 mprotect(0x7f8ca0990000, 2097152, PROT_NONE) = 0 +27096 mmap(0x7f8ca0b90000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2f000) = 0x7f8ca0b90000 +27096 close(3) = 0 +27096 open("/lib64/libprofiler.so.0", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0PX\0\0\0\0\0\0@\0\0\0\0\0\0\0(\2\1\0\0\0\0\0\0\0\0\0@\0008\0\10\0@\0\34\0\33\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\356\0\0\0\0\0\0\1\356\0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=67880, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b67000 +27096 mmap(NULL, 2180896, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8ca074c000 +27096 mprotect(0x7f8ca075b000, 2097152, PROT_NONE) = 0 +27096 mmap(0x7f8ca095b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf000) = 0x7f8ca095b000 +27096 mmap(0x7f8ca095d000, 14112, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8ca095d000 +27096 close(3) = 0 +27096 open("/lib64/libperl.so.5.22", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\3405\3\0\0\0\0\0@\0\0\0\0\0\0\0(S\36\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\37\0\36\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\34\244\35\0\0\0\0\0\34\244\35\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=1989352, ...}) = 0 +27096 mmap(NULL, 4077384, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8ca0368000 +27096 mprotect(0x7f8ca0543000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8ca0742000, 40960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1da000) = 0x7f8ca0742000 +27096 close(3) = 0 +27096 open("/lib64/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\2009\0\0\0\0\0\0@\0\0\0\0\0\0\0H\267\1\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0!\0 \0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0,e\1\0\0\0\0\0,e\1\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=114568, ...}) = 0 +27096 mmap(NULL, 2206280, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8ca014d000 +27096 mprotect(0x7f8ca0164000, 2097152, PROT_NONE) = 0 +27096 mmap(0x7f8ca0364000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x7f8ca0364000 +27096 mmap(0x7f8ca0366000, 6728, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8ca0366000 +27096 close(3) = 0 +27096 open("/lib64/libnsl.so.1", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240@\0\0\0\0\0\0@\0\0\0\0\0\0\0P\262\1\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0 \0\37\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0|\\\1\0\0\0\0\0|\\\1\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=113232, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b66000 +27096 mmap(NULL, 2198136, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9ff34000 +27096 mprotect(0x7f8c9ff4a000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8ca0149000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x7f8ca0149000 +27096 mmap(0x7f8ca014b000, 6776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8ca014b000 +27096 close(3) = 0 +27096 open("/lib64/libm.so.6", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0PU\0\0\0\0\0\0@\0\0\0\0\0\0\0 _\21\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0#\0\"\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\360\1\20\0\0\0\0\0\360\1\20\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=1140704, ...}) = 0 +27096 mmap(NULL, 3150104, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9fc32000 +27096 mprotect(0x7f8c9fd33000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8c9ff32000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x100000) = 0x7f8c9ff32000 +27096 close(3) = 0 +27096 open("/lib64/libutil.so.1", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\16\0\0\0\0\0\0@\0\0\0\0\0\0\0`0\0\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0 \0\37\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0X\33\0\0\0\0\0\0X\33\0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=14432, ...}) = 0 +27096 mmap(NULL, 2105616, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9fa2f000 +27096 mprotect(0x7f8c9fa31000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8c9fc30000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7f8c9fc30000 +27096 close(3) = 0 +27096 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\6\2\0\0\0\0\0@\0\0\0\0\0\0\0\220\1 \0\0\0\0\0\0\0\0\0@\0008\0\n\0@\0J\0I\0\6\0\0\0\5\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0000\2\0\0\0\0\0\0000\2\0\0\0\0\0\0\10\0\0\0\0\0\0\0\3\0\0\0\4\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=2102288, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b65000 +27096 mmap(NULL, 3934784, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9f66e000 +27096 mprotect(0x7f8c9f825000, 2097152, PROT_NONE) = 0 +27096 mmap(0x7f8c9fa25000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b7000) = 0x7f8c9fa25000 +27096 mmap(0x7f8c9fa2b000, 14912, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8c9fa2b000 +27096 close(3) = 0 +27096 open("/lib64/librt.so.1", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P!\0\0\0\0\0\0@\0\0\0\0\0\0\0(\240\0\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0$\0#\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0004c\0\0\0\0\0\0004c\0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=43304, ...}) = 0 +27096 mmap(NULL, 2128800, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9f466000 +27096 mprotect(0x7f8c9f46d000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8c9f66c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7f8c9f66c000 +27096 close(3) = 0 +27096 open("/lib64/libfreebl3.so", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0009\0\0\0\0\0\0@\0\0\0\0\0\0\0\30\242\7\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\35\0\34\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0le\7\0\0\0\0\0le\7\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=502104, ...}) = 0 +27096 mmap(NULL, 2606920, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9f1e9000 +27096 mprotect(0x7f8c9f260000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8c9f45f000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x76000) = 0x7f8c9f45f000 +27096 mmap(0x7f8c9f462000, 14152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8c9f462000 +27096 close(3) = 0 +27096 open("/lib64/libgssapi_krb5.so.2", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\300\0\0\0\0\0\0@\0\0\0\0\0\0\0\360\312\4\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\34\0\33\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\224\216\4\0\0\0\0\0\224\216\4\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=315888, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b64000 +27096 mmap(NULL, 2406528, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9ef9d000 +27096 mprotect(0x7f8c9efe6000, 2097152, PROT_NONE) = 0 +27096 mmap(0x7f8c9f1e6000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x49000) = 0x7f8c9f1e6000 +27096 close(3) = 0 +27096 open("/lib64/libkrb5.so.3", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360J\2\0\0\0\0\0@\0\0\0\0\0\0\0\30m\16\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\34\0\33\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\244L\r\0\0\0\0\0\244L\r\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=947224, ...}) = 0 +27096 mmap(NULL, 3032160, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9ecb8000 +27096 mprotect(0x7f8c9ed8d000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8c9ef8c000, 69632, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xd4000) = 0x7f8c9ef8c000 +27096 close(3) = 0 +27096 open("/lib64/libcom_err.so.2", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\25\0\0\0\0\0\0@\0\0\0\0\0\0\0\2004\0\0\0\0\0\0\0\0\0\0@\0008\0\10\0@\0\34\0\33\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0004&\0\0\0\0\0\0004&\0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=15232, ...}) = 0 +27096 mmap(NULL, 2109608, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9eab4000 +27096 mprotect(0x7f8c9eab7000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8c9ecb6000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f8c9ecb6000 +27096 close(3) = 0 +27096 open("/lib64/libk5crypto.so.3", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0pG\0\0\0\0\0\0@\0\0\0\0\0\0\0\340\33\3\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\34\0\33\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\334\357\2\0\0\0\0\0\334\357\2\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=205536, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b63000 +27096 mmap(NULL, 2301720, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9e882000 +27096 mprotect(0x7f8c9e8b1000, 2097152, PROT_NONE) = 0 +27096 mmap(0x7f8c9eab1000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2f000) = 0x7f8c9eab1000 +27096 close(3) = 0 +27096 open("/lib64/liblzma.so.5", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\00000\0\0\0\0\0\0@\0\0\0\0\0\0\0\350[\2\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\33\0\32\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0DD\2\0\0\0\0\0DD\2\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=156328, ...}) = 0 +27096 mmap(NULL, 2248712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9e65c000 +27096 mprotect(0x7f8c9e681000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8c9e880000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0x7f8c9e880000 +27096 mmap(0x7f8c9e881000, 8, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8c9e881000 +27096 close(3) = 0 +27096 open("/lib64/libgcrypt.so.20", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\211\0\0\0\0\0\0@\0\0\0\0\0\0\0\370i\16\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\34\0\33\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\264\257\r\0\0\0\0\0\264\257\r\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=946424, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b62000 +27096 mmap(NULL, 3031840, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9e377000 +27096 mprotect(0x7f8c9e452000, 2097152, PROT_NONE) = 0 +27096 mmap(0x7f8c9e652000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xdb000) = 0x7f8c9e652000 +27096 mmap(0x7f8c9e65b000, 800, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8c9e65b000 +27096 close(3) = 0 +27096 open("/lib64/libgpg-error.so.0", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@'\0\0\0\0\0\0@\0\0\0\0\0\0\0p*\1\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\34\0\33\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\34\20\1\0\0\0\0\0\34\20\1\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=78192, ...}) = 0 +27096 mmap(NULL, 2171000, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9e164000 +27096 mprotect(0x7f8c9e176000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8c9e375000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0x7f8c9e375000 +27096 close(3) = 0 +27096 open("/lib64/libjpeg.so.62", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220<\0\0\0\0\0\0@\0\0\0\0\0\0\0p\227\5\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\33\0\32\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0,h\5\0\0\0\0\0,h\5\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=368176, ...}) = 0 +27096 mmap(NULL, 2457608, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9df0b000 +27096 mprotect(0x7f8c9df62000, 2097152, PROT_NONE) = 0 +27096 mmap(0x7f8c9e162000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x57000) = 0x7f8c9e162000 +27096 mmap(0x7f8c9e163000, 8, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8c9e163000 +27096 close(3) = 0 +27096 open("/lib64/libpng16.so.16", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300T\0\0\0\0\0\0@\0\0\0\0\0\0\0x.\3\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\33\0\32\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0,\25\3\0\0\0\0\0,\25\3\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=210232, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b61000 +27096 mmap(NULL, 2301960, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9dcd8000 +27096 mprotect(0x7f8c9dd0a000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8c9df09000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x31000) = 0x7f8c9df09000 +27096 mmap(0x7f8c9df0a000, 8, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8c9df0a000 +27096 close(3) = 0 +27096 open("/lib64/libfreetype.so.6", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\354\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\273\n\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\32\0\31\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\254*\n\0\0\0\0\0\254*\n\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=704896, ...}) = 0 +27096 mmap(NULL, 2789384, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9da2e000 +27096 mprotect(0x7f8c9dad1000, 2097152, PROT_NONE) = 0 +27096 mmap(0x7f8c9dcd1000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xa3000) = 0x7f8c9dcd1000 +27096 mmap(0x7f8c9dcd7000, 8, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8c9dcd7000 +27096 close(3) = 0 +27096 open("/lib64/libfontconfig.so.1", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340m\0\0\0\0\0\0@\0\0\0\0\0\0\0\210K\4\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\33\0\32\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\315\3\0\0\0\0\0\4\315\3\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=283208, ...}) = 0 +27096 mmap(NULL, 2372648, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9d7ea000 +27096 mprotect(0x7f8c9d827000, 2097152, PROT_NONE) = 0 +27096 mmap(0x7f8c9da27000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3d000) = 0x7f8c9da27000 +27096 close(3) = 0 +27096 open("/lib64/libXpm.so.4", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\3400\0\0\0\0\0\0@\0\0\0\0\0\0\0\230\26\1\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\33\0\32\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0,\6\1\0\0\0\0\0,\6\1\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=73048, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b60000 +27096 mmap(NULL, 2167088, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9d5d8000 +27096 mprotect(0x7f8c9d5e9000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8c9d7e8000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x10000) = 0x7f8c9d7e8000 +27096 close(3) = 0 +27096 open("/lib64/libX11.so.6", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\337\1\0\0\0\0\0@\0\0\0\0\0\0\0h\21\24\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\33\0\32\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\34\231\23\0\0\0\0\0\34\231\23\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=1316904, ...}) = 0 +27096 mmap(NULL, 3406072, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9d298000 +27096 mprotect(0x7f8c9d3d2000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8c9d5d1000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x139000) = 0x7f8c9d5d1000 +27096 close(3) = 0 +27096 open("/lib64/libvpx.so.2", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P:\0\0\0\0\0\0@\0\0\0\0\0\0\0\0H\30\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\34\0\33\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\\\321\27\0\0\0\0\0\\\321\27\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=1593088, ...}) = 0 +27096 mmap(NULL, 3678456, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9cf15000 +27096 mprotect(0x7f8c9d093000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8c9d292000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17d000) = 0x7f8c9d292000 +27096 mmap(0x7f8c9d295000, 8440, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8c9d295000 +27096 close(3) = 0 +27096 open("/lib64/libtiff.so.5", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\202\0\0\0\0\0\0@\0\0\0\0\0\0\0\300;\7\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\34\0\33\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0l\356\6\0\0\0\0\0l\356\6\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=475840, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b5f000 +27096 mmap(NULL, 2567024, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9cca2000 +27096 mprotect(0x7f8c9cd11000, 2097152, PROT_NONE) = 0 +27096 mmap(0x7f8c9cf11000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6f000) = 0x7f8c9cf11000 +27096 close(3) = 0 +27096 open("/lib64/libunwind.so.8", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\25\0\0\0\0\0\0@\0\0\0\0\0\0\0`\246\0\0\0\0\0\0\0\0\0\0@\0008\0\10\0@\0\27\0\26\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\233\0\0\0\0\0\0\340\233\0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=44064, ...}) = 0 +27096 mmap(NULL, 2198984, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9ca89000 +27096 mprotect(0x7f8c9ca93000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8c9cc92000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x9000) = 0x7f8c9cc92000 +27096 mmap(0x7f8c9cc94000, 56776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8c9cc94000 +27096 close(3) = 0 +27096 open("/lib64/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\237\10\0\0\0\0\0@\0\0\0\0\0\0\0\210\337\27\0\0\0\0\0\0\0\0\0@\0008\0\10\0@\0 \0\37\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\346\26\27\0\0\0\0\0\346\26\27\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=1566600, ...}) = 0 +27096 mmap(NULL, 3675328, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9c707000 +27096 mprotect(0x7f8c9c879000, 2097152, PROT_NONE) = 0 +27096 mmap(0x7f8c9ca79000, 49152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x172000) = 0x7f8c9ca79000 +27096 mmap(0x7f8c9ca85000, 13504, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8c9ca85000 +27096 close(3) = 0 +27096 open("/lib64/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360*\0\0\0\0\0\0@\0\0\0\0\0\0\0\20c\1\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\36\0\35\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\264R\1\0\0\0\0\0\264R\1\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=92816, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b5e000 +27096 mmap(NULL, 2188320, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9c4f0000 +27096 mprotect(0x7f8c9c506000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8c9c705000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x7f8c9c705000 +27096 close(3) = 0 +27096 open("/lib64/libkrb5support.so.0", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\3406\0\0\0\0\0\0@\0\0\0\0\0\0\0`\350\0\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\34\0\33\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\244\317\0\0\0\0\0\0\244\317\0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=61280, ...}) = 0 +27096 mmap(NULL, 2155208, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9c2e1000 +27096 mprotect(0x7f8c9c2ee000, 2097152, PROT_NONE) = 0 +27096 mmap(0x7f8c9c4ee000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xd000) = 0x7f8c9c4ee000 +27096 close(3) = 0 +27096 open("/lib64/libkeyutils.so.1", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\25\0\0\0\0\0\0@\0\0\0\0\0\0\0H4\0\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\33\0\32\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\214(\0\0\0\0\0\0\214(\0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=15112, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b5d000 +27096 mmap(NULL, 2109448, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9c0dd000 +27096 mprotect(0x7f8c9c0e0000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8c9c2df000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f8c9c2df000 +27096 mmap(0x7f8c9c2e0000, 8, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8c9c2e0000 +27096 close(3) = 0 +27096 open("/lib64/libbz2.so.1", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\27\0\0\0\0\0\0@\0\0\0\0\0\0\0\310\0\1\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\33\0\32\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0,\353\0\0\0\0\0\0,\353\0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=67464, ...}) = 0 +27096 mmap(NULL, 2161672, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9becd000 +27096 mprotect(0x7f8c9bedc000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8c9c0db000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe000) = 0x7f8c9c0db000 +27096 close(3) = 0 +27096 open("/lib64/libexpat.so.1", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0>\0\0\0\0\0\0@\0\0\0\0\0\0\0\220\234\2\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\32\0\31\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0La\2\0\0\0\0\0La\2\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=172816, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b5c000 +27096 mmap(NULL, 2265096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9bca3000 +27096 mprotect(0x7f8c9bcca000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8c9bec9000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x26000) = 0x7f8c9bec9000 +27096 mmap(0x7f8c9becc000, 8, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8c9becc000 +27096 close(3) = 0 +27096 open("/lib64/libxcb.so.1", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\233\0\0\0\0\0\0@\0\0\0\0\0\0\0@\26\2\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\33\0\32\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\304\1\2\0\0\0\0\0\304\1\2\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=138496, ...}) = 0 +27096 mmap(NULL, 2232488, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9ba81000 +27096 mprotect(0x7f8c9baa2000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8c9bca1000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x20000) = 0x7f8c9bca1000 +27096 close(3) = 0 +27096 open("/lib64/libjbig.so.2.1", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\20\0\0\0\0\0\0@\0\0\0\0\0\0\0\230\300\0\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\34\0\33\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\224\210\0\0\0\0\0\0\224\210\0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=51096, ...}) = 0 +27096 mmap(NULL, 2145256, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9b875000 +27096 mprotect(0x7f8c9b87e000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8c9ba7d000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0x7f8c9ba7d000 +27096 close(3) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b5b000 +27096 open("/lib64/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260b\0\0\0\0\0\0@\0\0\0\0\0\0\0X\16\2\0\0\0\0\0\0\0\0\0@\0008\0\10\0@\0\35\0\34\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0t\353\1\0\0\0\0\0t\353\1\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=136600, ...}) = 0 +27096 mmap(NULL, 2237248, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9b652000 +27096 mprotect(0x7f8c9b671000, 2097152, PROT_NONE) = 0 +27096 mmap(0x7f8c9b871000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1f000) = 0x7f8c9b871000 +27096 mmap(0x7f8c9b873000, 4928, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8c9b873000 +27096 close(3) = 0 +27096 open("/lib64/libXau.so.6", O_RDONLY|O_CLOEXEC) = 3 +27096 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\16\0\0\0\0\0\0@\0\0\0\0\0\0\0X4\0\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\32\0\31\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\354\37\0\0\0\0\0\0\354\37\0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(3, {st_mode=S_IFREG|0755, st_size=15064, ...}) = 0 +27096 mmap(NULL, 2109472, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8c9b44e000 +27096 mprotect(0x7f8c9b450000, 2097152, PROT_NONE) = 0 +27096 mmap(0x7f8c9b650000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f8c9b650000 +27096 mmap(0x7f8c9b651000, 32, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8c9b651000 +27096 close(3) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b5a000 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b59000 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b58000 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b57000 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b56000 +27096 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b54000 +27096 arch_prctl(ARCH_SET_FS, 0x7f8ca2b54840) = 0 +27096 mprotect(0x7f8c9fa25000, 16384, PROT_READ) = 0 +27096 mprotect(0x7f8c9b650000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8ca2757000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8ca2308000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8ca19d2000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8c9b871000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8c9ba7d000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8c9bca1000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8c9bec9000, 12288, PROT_READ) = 0 +27096 mprotect(0x7f8c9c0db000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8c9c2df000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8ca0364000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8c9c4ee000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8c9c705000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8c9ff32000, 4096, PROT_READ) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b53000 +27096 mprotect(0x7f8c9ca79000, 40960, PROT_READ) = 0 +27096 mprotect(0x7f8c9cc92000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8ca17ce000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8c9e162000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8c9cf11000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8c9d292000, 8192, PROT_READ) = 0 +27096 mprotect(0x7f8c9d5d1000, 12288, PROT_READ) = 0 +27096 mprotect(0x7f8c9d7e8000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8c9df09000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8c9dcd1000, 24576, PROT_READ) = 0 +27096 mprotect(0x7f8c9da27000, 8192, PROT_READ) = 0 +27096 mprotect(0x7f8c9e375000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8c9e652000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8c9e880000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8c9eab1000, 8192, PROT_READ) = 0 +27096 mprotect(0x7f8c9ecb6000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8c9ef8c000, 61440, PROT_READ) = 0 +27096 mprotect(0x7f8c9f1e6000, 8192, PROT_READ) = 0 +27096 mprotect(0x7f8c9f45f000, 8192, PROT_READ) = 0 +27096 mprotect(0x7f8c9f66c000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8c9fc30000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8ca0149000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8ca2510000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8ca0742000, 20480, PROT_READ) = 0 +27096 mprotect(0x7f8ca095b000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8ca0b90000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8ca0dd6000, 24576, PROT_READ) = 0 +27096 mprotect(0x7f8ca15af000, 32768, PROT_READ) = 0 +27096 mprotect(0x7f8ca1251000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8ca1013000, 4096, PROT_READ) = 0 +27096 mprotect(0x7f8ca1df5000, 110592, PROT_READ) = 0 +27096 mprotect(0x7f8ca208e000, 20480, PROT_READ) = 0 +27096 mprotect(0x7f8ca2961000, 4096, PROT_READ) = 0 +27096 mprotect(0x56435eb57000, 8192, PROT_READ) = 0 +27096 mprotect(0x7f8ca2b83000, 4096, PROT_READ) = 0 +27096 munmap(0x7f8ca2b6c000, 87726) = 0 +27096 set_tid_address(0x7f8ca2b54b10) = 27096 +27096 set_robust_list(0x7f8ca2b54b20, 24) = 0 +27096 rt_sigaction(SIGRTMIN, {0x7f8ca2545b50, [], SA_RESTORER|SA_SIGINFO, 0x7f8ca25509f0}, NULL, 8) = 0 +27096 rt_sigaction(SIGRT_1, {0x7f8ca2545be0, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7f8ca25509f0}, NULL, 8) = 0 +27096 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0 +27096 getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0 +27096 statfs("/sys/fs/selinux", 0x7ffff0926360) = -1 ENOENT (No such file or directory) +27096 statfs("/selinux", 0x7ffff0926360) = -1 ENOENT (No such file or directory) +27096 brk(0) = 0x564360913000 +27096 brk(0x564360934000) = 0x564360934000 +27096 open("/proc/filesystems", O_RDONLY) = 3 +27096 fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b81000 +27096 read(3, "nodev\tsysfs\nnodev\trootfs\nnodev\tramfs\nnodev\tbdev\nnodev\tproc\nnodev\tcpuset\nnodev\tcgroup\nnodev\ttmpfs\nnodev\tdevtmpfs\nnodev\tconfigfs\nn"..., 1024) = 312 +27096 read(3, "", 1024) = 0 +27096 close(3) = 0 +27096 munmap(0x7f8ca2b81000, 4096) = 0 +27096 access("/etc/selinux/config", F_OK) = 0 +27096 access("/etc/system-fips", F_OK) = -1 ENOENT (No such file or directory) +27096 rt_sigaction(SIGPROF, NULL, {SIG_DFL, [], 0}, 8) = 0 +27096 rt_sigaction(SIGPROF, {SIG_IGN, [], SA_RESTORER|SA_RESTART, 0x7f8ca25509f0}, NULL, 8) = 0 +27096 futex(0x7f8ca095c5a0, FUTEX_WAKE_PRIVATE, 2147483647) = 0 +27096 setitimer(ITIMER_PROF, {it_interval={0, 10000}, it_value={0, 10000}}, NULL) = 0 +27096 open("/proc/self/auxv", O_RDONLY) = 3 +27096 read(3, "!\0\0\0\0\0\0\0\0p\235\360\377\177\0\0", 16) = 16 +27096 open("/etc/localtime", O_RDONLY|O_CLOEXEC) = 4 +27096 fstat(4, {st_mode=S_IFREG|0644, st_size=2845, ...}) = 0 +27096 fstat(4, {st_mode=S_IFREG|0644, st_size=2845, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b81000 +27096 read(4, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\5\0\0\0\0\0\0\0\272\0\0\0\5\0\0\0\24\200\0\0\0\236\246H\240\237\273\25\220\240\206*\240\241\232\367\220\313\211\32\240\322#\364p\322a&\20\326\376t \330\200\255\220\332\376\321\240\333\300\220\20\334\336\263\240\335\251\254\220\336\276\225\240\337\211\216\220\340\236w\240\341ip\220\342~Y\240\343IR\220\344^;\240"..., 4096) = 2845 +27096 lseek(4, -1811, SEEK_CUR) = 1034 +27096 read(4, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\5\0\0\0\0\0\0\0\273\0\0\0\5\0\0\0\24\370\0\0\0\0\0\0\0\377\377\377\377^\4\32\300\377\377\377\377\236\246H\240\377\377\377\377\237\273\25\220\377\377\377\377\240\206*\240\377\377\377\377\241\232\367\220\377\377\377\377\313\211\32\240\377\377\377\377\322#\364p\377\377\377\377\322a&\20\377\377\377\377\326\376t \377\377\377\377"..., 4096) = 1811 +27096 close(4) = 0 +27096 munmap(0x7f8ca2b81000, 4096) = 0 +27096 write(2, "10:17:35 [pid= 27096] ", 23) = 23 +27096 write(2, "close(): SYMBOL NOT FOUND.\n", 27) = 27 +27096 open("/sys/devices/system/cpu/cpu0/tsc_freq_khz", O_RDONLY) = -1 ENOENT (No such file or directory) +27096 open("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq", O_RDONLY) = -1 ENOENT (No such file or directory) +27096 open("/proc/cpuinfo", O_RDONLY) = 4 +27096 read(4, "processor\t: 0\nvendor_id\t: GenuineIntel\ncpu family\t: 6\nmodel\t\t: 61\nmodel name\t: Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz\nstepping"..., 1023) = 1023 +27096 read(4, "u MHz\t\t: 2700.000\ncache size\t: 3072 KB\nphysical id\t: 0\nsiblings\t: 2\ncore id\t\t: 1\ncpu cores\t: 2\napicid\t\t: 1\ninitial apicid\t: 1\nfp"..., 1021) = 719 +27096 read(4, "", 1023) = 0 +27096 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2845, ...}) = 0 +27096 write(2, "10:17:35 [pid= 27096] ", 23) = 23 +27096 write(2, "close(): SYMBOL NOT FOUND.\n", 27) = 27 +27096 futex(0x7ffff0926444, FUTEX_WAKE, 1) = 0 +27096 futex(0x7ffff0926444, FUTEX_WAKE_PRIVATE, 1) = 0 +27096 access("/etc/system-fips", F_OK) = -1 ENOENT (No such file or directory) +27096 futex(0x7f8ca19d30c8, FUTEX_WAKE_PRIVATE, 2147483647) = 0 +27096 open("/var/log/nginx/error.log", O_WRONLY|O_CREAT|O_APPEND, 0644) = 5 +27096 open("/etc/pki/tls/openssl.cnf", O_RDONLY) = 6 +27096 fstat(6, {st_mode=S_IFREG|0644, st_size=10923, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b81000 +27096 read(6, "#\n# OpenSSL example configuration file.\n# This is mostly being used for generation of certificate requests.\n#\n\n# This definition"..., 4096) = 4096 +27096 read(6, "ancient versions of Netscape crash on BMPStrings or UTF8Strings.\nstring_mask = utf8only\n\n# req_extensions = v3_req # The extensi"..., 4096) = 4096 +27096 read(6, "gainst PKIX guidelines but some CAs do it and some software\n# requires this to avoid interpreting an end user certificate as a C"..., 4096) = 2731 +27096 read(6, "", 4096) = 0 +27096 close(6) = 0 +27096 munmap(0x7f8ca2b81000, 4096) = 0 +27096 brk(0) = 0x564360934000 +27096 brk(0x564360955000) = 0x564360955000 +27096 uname({sysname="Linux", nodename="localhost.localdomain", ...}) = 0 +27096 open("/sys/devices/system/cpu/online", O_RDONLY|O_CLOEXEC) = 6 +27096 read(6, "0-1\n", 8192) = 4 +27096 close(6) = 0 +27096 getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=4*1024}) = 0 +27096 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2845, ...}) = 0 +27096 uname({sysname="Linux", nodename="localhost.localdomain", ...}) = 0 +27096 open("/etc/nginx/nginx.conf", O_RDONLY) = 6 +27096 fstat(6, {st_mode=S_IFREG|0644, st_size=2324, ...}) = 0 +27096 pread(6, "# For more information on configuration, see:\n# * Official English Documentation: http://nginx.org/en/docs/\n# * Official Rus"..., 2324, 0) = 2324 +27096 geteuid() = 0 +27096 socket(PF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 7 +27096 connect(7, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) +27096 close(7) = 0 +27096 socket(PF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 7 +27096 connect(7, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) +27096 close(7) = 0 +27096 open("/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 7 +27096 fstat(7, {st_mode=S_IFREG|0644, st_size=1739, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b81000 +27096 read(7, "#\n# /etc/nsswitch.conf\n#\n# An example Name Service Switch config file. This file should be\n# sorted with the most-used services "..., 4096) = 1739 +27096 read(7, "", 4096) = 0 +27096 close(7) = 0 +27096 munmap(0x7f8ca2b81000, 4096) = 0 +27096 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 7 +27096 fstat(7, {st_mode=S_IFREG|0644, st_size=87726, ...}) = 0 +27096 mmap(NULL, 87726, PROT_READ, MAP_PRIVATE, 7, 0) = 0x7f8ca2b6c000 +27096 close(7) = 0 +27096 open("/lib64/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 7 +27096 read(7, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320!\0\0\0\0\0\0@\0\0\0\0\0\0\0\30\326\0\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0 \0\37\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\240\0\0\0\0\0\0\4\240\0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(7, {st_mode=S_IFREG|0755, st_size=56856, ...}) = 0 +27096 mmap(NULL, 2168600, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 7, 0) = 0x7f8c9b23c000 +27096 mprotect(0x7f8c9b247000, 2093056, PROT_NONE) = 0 +27096 mmap(0x7f8c9b446000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 7, 0xa000) = 0x7f8c9b446000 +27096 mmap(0x7f8c9b448000, 22296, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f8c9b448000 +27096 close(7) = 0 +27096 mprotect(0x7f8c9b446000, 4096, PROT_READ) = 0 +27096 munmap(0x7f8ca2b6c000, 87726) = 0 +27096 open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 7 +27096 fstat(7, {st_mode=S_IFREG|0644, st_size=2603, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b81000 +27096 read(7, "root:x:0:0:root:/root:/bin/bash\nbin:x:1:1:bin:/bin:/sbin/nologin\ndaemon:x:2:2:daemon:/sbin:/sbin/nologin\nadm:x:3:4:adm:/var/adm:"..., 4096) = 2603 +27096 close(7) = 0 +27096 munmap(0x7f8ca2b81000, 4096) = 0 +27096 socket(PF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 7 +27096 connect(7, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) +27096 close(7) = 0 +27096 socket(PF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 7 +27096 connect(7, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) +27096 close(7) = 0 +27096 open("/etc/group", O_RDONLY|O_CLOEXEC) = 7 +27096 fstat(7, {st_mode=S_IFREG|0644, st_size=1019, ...}) = 0 +27096 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8ca2b81000 +27096 read(7, "root:x:0:\nbin:x:1:\ndaemon:x:2:\nsys:x:3:\nadm:x:4:\ntty:x:5:\ndisk:x:6:\nlp:x:7:\nmem:x:8:\nkmem:x:9:\nwheel:x:10:joseph\ncdrom:x:11:\nmai"..., 4096) = 1019 +27096 close(7) = 0 +27096 munmap(0x7f8ca2b81000, 4096) = 0 +27096 epoll_create(100) = 7 +27096 close(7) = 0 +27096 brk(0) = 0x564360955000 +27096 brk(0x564360976000) = 0x564360976000 +27096 futex(0x7f8ca15b9688, FUTEX_WAKE_PRIVATE, 2147483647) = 0 +27096 open("/etc/nginx/mime.types", O_RDONLY) = 7 +27096 fstat(7, {st_mode=S_IFREG|0644, st_size=30634, ...}) = 0 +27096 pread(7, "types {\napplication/A2L\t\t\t\t\ta2l;\napplication/AML\t\t\t\t\taml;\napplication/andrew-inset\t\t\tez;\napplication/ATF\t\t\t\t\tatf;\napplication/AT"..., 4096, 0) = 4096 +27096 pread(7, "rql-results+xml\t\t\tsrx;\napplication/sql\t\t\t\t\tsql;\napplication/srgs\t\t\t\tgram;\napplication/srgs+xml\t\t\t\tgrxml;\napplication/sru+xml\t\t\t\t"..., 4081, 4096) = 4081 +27096 pread(7, ".ecowin.chart\t\t\tmag;\napplication/vnd.enliven\t\t\t\tnml;\napplication/vnd.epson.esf\t\t\tesf;\napplication/vnd.epson.msf\t\t\tmsf;\napplicati"..., 4081, 8177) = 4081 +27096 pread(7, "\tlbe;\napplication/vnd.lotus-1-2-3\t\t\t123 wk4 wk3 wk1;\napplication/vnd.lotus-approach\t\t\tapr vew;\napplication/vnd.lotus-freelance\t\t"..., 4041, 12258) = 4041 +27096 brk(0) = 0x564360976000 +27096 brk(0x564360999000) = 0x564360999000 +27096 pread(7, "n/vnd.oasis.opendocument.text-template\t\tott;\napplication/vnd.oasis.opendocument.text-web\t\t\toth;\napplication/vnd.olpc-sugar\t\t\txo;"..., 4086, 16299) = 4086 +27096 pread(7, "dy-inter model-inter;\napplication/vnd.vectorworks\t\t\tvwx;\napplication/vnd.vidsoft.vidconference\t\tvsc;\napplication/vnd.visio\t\t\t\tvs"..., 4093, 20385) = 4093 +27096 pread(7, "vnd.zbrush.pcx\t\t\t\tpcx;\nmessage/global\t\t\t\t\tu8msg;\nmessage/global-delivery-status\t\t\tu8dsn;\nmessage/global-disposition-notification"..., 4090, 24478) = 4090 +27096 pread(7, "ication/x-futuresplash\t\t\tspl;\napplication/x-gtar\t\t\t\tgtar;\napplication/x-hdf\t\t\t\thdf;\napplication/x-java-archive\t\t\tjar;\napplicatio"..., 2066, 28568) = 2066 +27096 close(7) = 0 +27096 stat("/etc/nginx/conf.d", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 +27096 open("/etc/nginx/conf.d", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 7 +27096 fstat(7, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 +27096 getdents(7, /* 2 entries */, 32768) = 48 +27096 getdents(7, /* 0 entries */, 32768) = 0 +27096 close(7) = 0 +27096 stat("/etc/nginx/default.d", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 +27096 open("/etc/nginx/default.d", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 7 +27096 fstat(7, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 +27096 getdents(7, /* 2 entries */, 32768) = 48 +27096 getdents(7, /* 0 entries */, 32768) = 0 +27096 close(7) = 0 +27096 brk(0) = 0x564360999000 +27096 brk(0x5643609c7000) = 0x5643609c7000 +27096 rt_sigaction(SIGFPE, {SIG_IGN, [FPE], SA_RESTORER|SA_RESTART, 0x7f8c9f6a2b20}, {SIG_DFL, [], 0}, 8) = 0 +27096 getuid() = 0 +27096 geteuid() = 0 +27096 getgid() = 0 +27096 getegid() = 0 +27096 open("/dev/urandom", O_RDONLY) = 7 +27096 read(7, "\233\260\37\177", 4) = 4 +27096 close(7) = 0 +27096 readlink("/proc/self/exe", "/usr/sbin/nginx", 4095) = 15 +27096 getuid() = 0 +27096 geteuid() = 0 +27096 getgid() = 0 +27096 getegid() = 0 +27096 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0 +27096 lseek(0, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek) +27096 ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0 +27096 lseek(1, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek) +27096 ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0 +27096 lseek(2, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek) +27096 open("/dev/null", O_RDONLY) = 7 +27096 ioctl(7, TCGETS, 0x7ffff09256c0) = -1 ENOTTY (Inappropriate ioctl for device) +27096 lseek(7, 0, SEEK_CUR) = 0 +27096 fcntl(7, F_SETFD, FD_CLOEXEC) = 0 +27096 fstat(7, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 3), ...}) = 0 +27096 getuid() = 0 +27096 geteuid() = 0 +27096 getgid() = 0 +27096 getegid() = 0 +27096 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 +27096 brk(0) = 0x5643609c7000 +27096 brk(0x5643609e8000) = 0x5643609e8000 +27096 stat("/usr/local/share/perl5/sitecustomize.pl", 0x5643609652f8) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/lib64/perl5/nginx.pmc", 0x7ffff0925250) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/lib64/perl5/nginx.pm", 0x7ffff0925180) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/share/perl5/nginx.pmc", 0x7ffff0925250) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/share/perl5/nginx.pm", 0x7ffff0925180) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/vendor_perl/nginx.pmc", 0x7ffff0925250) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/vendor_perl/nginx.pm", {st_mode=S_IFREG|0444, st_size=3302, ...}) = 0 +27096 open("/usr/lib64/perl5/vendor_perl/nginx.pm", O_RDONLY) = 8 +27096 ioctl(8, TCGETS, 0x7ffff0924f20) = -1 ENOTTY (Inappropriate ioctl for device) +27096 lseek(8, 0, SEEK_CUR) = 0 +27096 read(8, "package nginx;\n\nuse 5.006001;\nuse strict;\nuse warnings;\n\nrequire Exporter;\n\nour @ISA = qw(Exporter);\n\nour @EXPORT = qw(\n OK\n "..., 8192) = 3302 +27096 stat("/usr/local/lib64/perl5/strict.pmc", 0x7ffff0924be0) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/lib64/perl5/strict.pm", 0x7ffff0924b10) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/share/perl5/strict.pmc", 0x7ffff0924be0) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/share/perl5/strict.pm", 0x7ffff0924b10) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/vendor_perl/strict.pmc", 0x7ffff0924be0) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/vendor_perl/strict.pm", 0x7ffff0924b10) = -1 ENOENT (No such file or directory) +27096 stat("/usr/share/perl5/vendor_perl/strict.pmc", 0x7ffff0924be0) = -1 ENOENT (No such file or directory) +27096 stat("/usr/share/perl5/vendor_perl/strict.pm", 0x7ffff0924b10) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/strict.pmc", 0x7ffff0924be0) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/strict.pm", 0x7ffff0924b10) = -1 ENOENT (No such file or directory) +27096 stat("/usr/share/perl5/strict.pmc", 0x7ffff0924be0) = -1 ENOENT (No such file or directory) +27096 stat("/usr/share/perl5/strict.pm", {st_mode=S_IFREG|0644, st_size=4433, ...}) = 0 +27096 open("/usr/share/perl5/strict.pm", O_RDONLY) = 9 +27096 ioctl(9, TCGETS, 0x7ffff09248b0) = -1 ENOTTY (Inappropriate ioctl for device) +27096 lseek(9, 0, SEEK_CUR) = 0 +27096 read(9, "package strict;\n\n$strict::VERSION = \"1.09\";\n\n# Verify that we're called correctly so that strictures will work.\nunless ( __FILE_"..., 8192) = 4433 +27096 --- SIGPROF {si_signo=SIGPROF, si_code=SI_KERNEL, si_value={int=875903538, ptr=0x4354552034353a32}} --- +27096 lseek(9, 1513, SEEK_SET) = 1513 +27096 lseek(9, 0, SEEK_CUR) = 1513 +27096 close(9) = 0 +27096 stat("/usr/local/lib64/perl5/warnings.pmc", 0x7ffff0924be0) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/lib64/perl5/warnings.pm", 0x7ffff0924b10) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/share/perl5/warnings.pmc", 0x7ffff0924be0) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/share/perl5/warnings.pm", 0x7ffff0924b10) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/vendor_perl/warnings.pmc", 0x7ffff0924be0) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/vendor_perl/warnings.pm", 0x7ffff0924b10) = -1 ENOENT (No such file or directory) +27096 stat("/usr/share/perl5/vendor_perl/warnings.pmc", 0x7ffff0924be0) = -1 ENOENT (No such file or directory) +27096 stat("/usr/share/perl5/vendor_perl/warnings.pm", 0x7ffff0924b10) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/warnings.pmc", 0x7ffff0924be0) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/warnings.pm", 0x7ffff0924b10) = -1 ENOENT (No such file or directory) +27096 stat("/usr/share/perl5/warnings.pmc", 0x7ffff0924be0) = -1 ENOENT (No such file or directory) +27096 stat("/usr/share/perl5/warnings.pm", {st_mode=S_IFREG|0644, st_size=44835, ...}) = 0 +27096 open("/usr/share/perl5/warnings.pm", O_RDONLY) = 9 +27096 ioctl(9, TCGETS, 0x7ffff09248b0) = -1 ENOTTY (Inappropriate ioctl for device) +27096 lseek(9, 0, SEEK_CUR) = 0 +27096 read(9, "# -*- buffer-read-only: t -*-\n# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!\n# This file is built by regen/warnings.pl.\n# Any chang"..., 8192) = 8192 +27096 brk(0) = 0x5643609e8000 +27096 brk(0x564360a0a000) = 0x564360a0a000 +27096 read(9, "\\x00\\x00\\x00\\x00\\x00\", # [21..25]\n 'signal'\t\t\t\t=> \"\\x00\\x00\\x00\\x00\\x00\\x00\\x10\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\", # ["..., 8192) = 8192 +27096 read(9, " 'void'\t\t\t\t=> \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x08\\x00\\x00\\x00\\x00\\x00\", # [45]\n);\n\n# These are used by various thi"..., 8192) = 8192 +27096 brk(0) = 0x564360a0a000 +27096 brk(0x564360a2b000) = 0x564360a2b000 +27096 lseek(9, 21927, SEEK_SET) = 21927 +27096 lseek(9, 0, SEEK_CUR) = 21927 +27096 close(9) = 0 +27096 stat("/usr/local/lib64/perl5/constant.pmc", 0x7ffff0924be0) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/lib64/perl5/constant.pm", 0x7ffff0924b10) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/share/perl5/constant.pmc", 0x7ffff0924be0) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/share/perl5/constant.pm", 0x7ffff0924b10) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/vendor_perl/constant.pmc", 0x7ffff0924be0) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/vendor_perl/constant.pm", 0x7ffff0924b10) = -1 ENOENT (No such file or directory) +27096 stat("/usr/share/perl5/vendor_perl/constant.pmc", 0x7ffff0924be0) = -1 ENOENT (No such file or directory) +27096 stat("/usr/share/perl5/vendor_perl/constant.pm", {st_mode=S_IFREG|0644, st_size=14724, ...}) = 0 +27096 open("/usr/share/perl5/vendor_perl/constant.pm", O_RDONLY) = 9 +27096 ioctl(9, TCGETS, 0x7ffff09248b0) = -1 ENOTTY (Inappropriate ioctl for device) +27096 lseek(9, 0, SEEK_CUR) = 0 +27096 read(9, "package constant;\nuse 5.008;\nuse strict;\nuse warnings::register;\n\nour $VERSION = '1.33';\nour %declared;\n\n#======================"..., 8192) = 8192 +27096 stat("/usr/local/lib64/perl5/warnings/register.pmc", 0x7ffff0924570) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/lib64/perl5/warnings/register.pm", 0x7ffff09244a0) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/share/perl5/warnings/register.pmc", 0x7ffff0924570) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/share/perl5/warnings/register.pm", 0x7ffff09244a0) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/vendor_perl/warnings/register.pmc", 0x7ffff0924570) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/vendor_perl/warnings/register.pm", 0x7ffff09244a0) = -1 ENOENT (No such file or directory) +27096 stat("/usr/share/perl5/vendor_perl/warnings/register.pmc", 0x7ffff0924570) = -1 ENOENT (No such file or directory) +27096 stat("/usr/share/perl5/vendor_perl/warnings/register.pm", 0x7ffff09244a0) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/warnings/register.pmc", 0x7ffff0924570) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/warnings/register.pm", 0x7ffff09244a0) = -1 ENOENT (No such file or directory) +27096 stat("/usr/share/perl5/warnings/register.pmc", 0x7ffff0924570) = -1 ENOENT (No such file or directory) +27096 stat("/usr/share/perl5/warnings/register.pm", {st_mode=S_IFREG|0644, st_size=759, ...}) = 0 +27096 open("/usr/share/perl5/warnings/register.pm", O_RDONLY) = 10 +27096 ioctl(10, TCGETS, 0x7ffff0924240) = -1 ENOTTY (Inappropriate ioctl for device) +27096 lseek(10, 0, SEEK_CUR) = 0 +27096 read(10, "package warnings::register;\n\nour $VERSION = '1.04';\nrequire warnings;\n\n# left here as cruft in case other users were using this "..., 8192) = 759 +27096 lseek(10, 487, SEEK_SET) = 487 +27096 lseek(10, 0, SEEK_CUR) = 487 +27096 close(10) = 0 +27096 brk(0) = 0x564360a2b000 +27096 brk(0x564360a4c000) = 0x564360a4c000 +27096 brk(0) = 0x564360a4c000 +27096 brk(0) = 0x564360a4c000 +27096 brk(0x564360a49000) = 0x564360a49000 +27096 brk(0) = 0x564360a49000 +27096 brk(0) = 0x564360a49000 +27096 brk(0x564360a6c000) = 0x564360a6c000 +27096 brk(0) = 0x564360a6c000 +27096 brk(0x564360a8e000) = 0x564360a8e000 +27096 brk(0) = 0x564360a8e000 +27096 brk(0x564360ab0000) = 0x564360ab0000 +27096 brk(0) = 0x564360ab0000 +27096 brk(0x564360ad2000) = 0x564360ad2000 +27096 brk(0) = 0x564360ad2000 +27096 brk(0x564360af4000) = 0x564360af4000 +27096 brk(0) = 0x564360af4000 +27096 brk(0x564360b18000) = 0x564360b18000 +27096 lseek(9, 5736, SEEK_SET) = 5736 +27096 lseek(9, 0, SEEK_CUR) = 5736 +27096 close(9) = 0 +27096 lseek(8, 2923, SEEK_SET) = 2923 +27096 lseek(8, 0, SEEK_CUR) = 2923 +27096 close(8) = 0 +27096 stat("/usr/local/lib64/perl5/Exporter.pmc", 0x7ffff0925250) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/lib64/perl5/Exporter.pm", 0x7ffff0925180) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/share/perl5/Exporter.pmc", 0x7ffff0925250) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/share/perl5/Exporter.pm", 0x7ffff0925180) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/vendor_perl/Exporter.pmc", 0x7ffff0925250) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/vendor_perl/Exporter.pm", 0x7ffff0925180) = -1 ENOENT (No such file or directory) +27096 stat("/usr/share/perl5/vendor_perl/Exporter.pmc", 0x7ffff0925250) = -1 ENOENT (No such file or directory) +27096 stat("/usr/share/perl5/vendor_perl/Exporter.pm", {st_mode=S_IFREG|0644, st_size=18746, ...}) = 0 +27096 open("/usr/share/perl5/vendor_perl/Exporter.pm", O_RDONLY) = 8 +27096 ioctl(8, TCGETS, 0x7ffff0924f20) = -1 ENOTTY (Inappropriate ioctl for device) +27096 lseek(8, 0, SEEK_CUR) = 0 +27096 read(8, "package Exporter;\n\nrequire 5.006;\n\n# Be lean.\n#use strict;\n#no strict 'refs';\n\nour $Debug = 0;\nour $ExportLevel = 0;\nour $Verbos"..., 8192) = 8192 +27096 lseek(8, 2366, SEEK_SET) = 2366 +27096 lseek(8, 0, SEEK_CUR) = 2366 +27096 close(8) = 0 +27096 getuid() = 0 +27096 geteuid() = 0 +27096 getgid() = 0 +27096 getegid() = 0 +27096 stat("/usr/local/lib64/perl5/XSLoader.pmc", 0x7ffff0925250) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/lib64/perl5/XSLoader.pm", 0x7ffff0925180) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/share/perl5/XSLoader.pmc", 0x7ffff0925250) = -1 ENOENT (No such file or directory) +27096 stat("/usr/local/share/perl5/XSLoader.pm", 0x7ffff0925180) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/vendor_perl/XSLoader.pmc", 0x7ffff0925250) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/vendor_perl/XSLoader.pm", 0x7ffff0925180) = -1 ENOENT (No such file or directory) +27096 stat("/usr/share/perl5/vendor_perl/XSLoader.pmc", 0x7ffff0925250) = -1 ENOENT (No such file or directory) +27096 stat("/usr/share/perl5/vendor_perl/XSLoader.pm", 0x7ffff0925180) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/XSLoader.pmc", 0x7ffff0925250) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/XSLoader.pm", 0x7ffff0925180) = -1 ENOENT (No such file or directory) +27096 stat("/usr/share/perl5/XSLoader.pmc", 0x7ffff0925250) = -1 ENOENT (No such file or directory) +27096 stat("/usr/share/perl5/XSLoader.pm", {st_mode=S_IFREG|0644, st_size=10305, ...}) = 0 +27096 open("/usr/share/perl5/XSLoader.pm", O_RDONLY) = 8 +27096 ioctl(8, TCGETS, 0x7ffff0924f20) = -1 ENOTTY (Inappropriate ioctl for device) +27096 lseek(8, 0, SEEK_CUR) = 0 +27096 read(8, "# Generated from XSLoader.pm.PL (resolved %Config::Config value)\n\npackage XSLoader;\n\n$VERSION = \"0.20\";\n\n#use strict;\n\npackage D"..., 8192) = 8192 +27096 lseek(8, 2957, SEEK_SET) = 2957 +27096 lseek(8, 0, SEEK_CUR) = 2957 +27096 close(8) = 0 +27096 stat("/usr/lib64/perl5/vendor_perl/auto/nginx/nginx.bs", 0x5643609652f8) = -1 ENOENT (No such file or directory) +27096 stat("/usr/lib64/perl5/vendor_perl/auto/nginx/nginx.so", {st_mode=S_IFREG|0755, st_size=28056, ...}) = 0 +27096 open("/usr/lib64/perl5/vendor_perl/auto/nginx/nginx.so", O_RDONLY|O_CLOEXEC) = 8 +27096 read(8, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\25\0\0\0\0\0\0@\0\0\0\0\0\0\0\330f\0\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\33\0\32\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\324N\0\0\0\0\0\0\324N\0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0"..., 832) = 832 +27096 fstat(8, {st_mode=S_IFREG|0755, st_size=28056, ...}) = 0 +27096 mmap(NULL, 2122104, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 8, 0) = 0x7f8c9b035000 +27096 mprotect(0x7f8c9b03a000, 2097152, PROT_NONE) = 0 +27096 mmap(0x7f8c9b23a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 8, 0x5000) = 0x7f8c9b23a000 +27096 close(8) = 0 +27096 mprotect(0x7f8c9b23a000, 4096, PROT_READ) = 0 +27096 close(7) = 0 +27096 close(6) = 0 +27096 mkdir("/var/lib/nginx/tmp/client_body", 0700) = -1 EEXIST (File exists) +27096 stat("/var/lib/nginx/tmp/client_body", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0 +27096 mkdir("/var/lib/nginx/tmp/proxy", 0700) = -1 EEXIST (File exists) +27096 stat("/var/lib/nginx/tmp/proxy", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0 +27096 mkdir("/var/lib/nginx/tmp/fastcgi", 0700) = -1 EEXIST (File exists) +27096 stat("/var/lib/nginx/tmp/fastcgi", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0 +27096 mkdir("/var/lib/nginx/tmp/uwsgi", 0700) = -1 EEXIST (File exists) +27096 stat("/var/lib/nginx/tmp/uwsgi", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0 +27096 mkdir("/var/lib/nginx/tmp/scgi", 0700) = -1 EEXIST (File exists) +27096 stat("/var/lib/nginx/tmp/scgi", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0 +27096 open("/var/log/nginx/error.log", O_WRONLY|O_CREAT|O_APPEND, 0644) = 6 +27096 fcntl(6, F_SETFD, FD_CLOEXEC) = 0 +27096 open("/var/log/nginx/access.log", O_WRONLY|O_CREAT|O_APPEND, 0644) = 7 +27096 fcntl(7, F_SETFD, FD_CLOEXEC) = 0 +27096 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2845, ...}) = 0 +27096 write(2, "10:17:35 [pid= 27096] ", 23) = 23 +27096 write(2, "socket():\n", 10) = 10 +27096 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2845, ...}) = 0 +27096 write(2, "10:17:35 [pid= 27096] ", 23) = 23 +27096 write(2, "BAD service connection. exiting.\n", 33) = 33 +27096 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2845, ...}) = 0 +27096 write(2, "10:17:35 [pid= 27096] ", 23) = 23 +27096 write(2, "socket()=-1\n", 12) = 12 +27096 --- SIGPROF {si_signo=SIGPROF, si_code=SI_KERNEL, si_value={int=875903538, ptr=0x4354552034353a32}} --- +27096 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2845, ...}) = 0 +27096 write(2, "10:17:35 [pid= 27096] ", 23) = 23 +27096 write(2, "closing connections to service...\n", 34) = 34 +27096 exit_group(-1) = ? +27096 +++ exited with 255 +++ diff --git a/netcon/docker-test/nginx/nginx-1.8.0-14.fc23.x86_64/monitor_dockerfile b/netcon/docker-test/nginx/nginx-1.8.0-14.fc23.x86_64/monitor_dockerfile new file mode 100644 index 00000000..e8f803cd --- /dev/null +++ b/netcon/docker-test/nginx/nginx-1.8.0-14.fc23.x86_64/monitor_dockerfile @@ -0,0 +1,23 @@ +# ZT Network Containers Test Monitor +FROM fedora:23 +MAINTAINER https://www.zerotier.com/ + +EXPOSE 9993/udp + +# Install LWIP library used by service +ADD liblwip.so /var/lib/zerotier-one/liblwip.so + +# Add ZT files +RUN mkdir -p /var/lib/zerotier-one/networks.d +ADD monitor_identity.public /var/lib/zerotier-one/identity.public +ADD monitor_identity.secret /var/lib/zerotier-one/identity.secret +ADD *.conf /var/lib/zerotier-one/networks.d/ +ADD *.conf / +ADD *.name / +ADD zerotier-one / +ADD zerotier-cli / + +# Start ZeroTier-One +ADD monitor_entrypoint.sh /monitor_entrypoint.sh +RUN chmod -v +x /monitor_entrypoint.sh +CMD ["./monitor_entrypoint.sh"] diff --git a/netcon/docker-test/nginx/nginx-1.8.0-14.fc23.x86_64/monitor_entrypoint.sh b/netcon/docker-test/nginx/nginx-1.8.0-14.fc23.x86_64/monitor_entrypoint.sh new file mode 100644 index 00000000..52470efd --- /dev/null +++ b/netcon/docker-test/nginx/nginx-1.8.0-14.fc23.x86_64/monitor_entrypoint.sh @@ -0,0 +1,80 @@ +#!/bin/bash + +export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/ + + +# --- Test Parameters --- +test_namefile=$(ls *.name) +test_name="${test_namefile%.*}" # test network id +nwconf=$(ls *.conf) # blank test network config file +nwid="${nwconf%.*}" # test network id +netcon_wait_time=35 # wait for test container to come online +app_timeout_time=25 # app-specific timeout +file_path=/opt/results/ # test result output file path (fs shared between host and containers) +file_base="$test_name".txt # test result output file +fail=FAIL. # appended to result file in event of failure +ok=OK. # appended to result file in event of success +tmp_ext=.tmp # temporary filetype used for sharing test data between containers +address_file="$file_path$test_name"_addr"$tmp_ext" # file shared between host and containers for sharing address (optional) +bigfile_name=bigfile # large, random test transfer file +rx_md5sumfile="$file_path"rx_"$bigfile_name"_md5sum"$tmp_ext" +tx_md5sumfile="$file_path"tx_"$bigfile_name"_md5sum"$tmp_ext" + + +# --- Network Config --- +echo '*** ZeroTier Network Containers Test Monitor' +chown -R daemon /var/lib/zerotier-one +chgrp -R daemon /var/lib/zerotier-one +su daemon -s /bin/bash -c '/zerotier-one -d -U -p9993 >>/tmp/zerotier-one.out 2>&1' +virtip4="" +while [ -z "$virtip4" ]; do + sleep 0.2 + virtip4=`/zerotier-cli listnetworks | grep -F $nwid | cut -d ' ' -f 9 | sed 's/,/\n/g' | grep -F '.' | cut -d / -f 1` +done +echo '*** Starting Test...' +echo '*** Up and running at' $virtip4 ' on network: ' $nwid +echo '*** Sleeping for (' "$netcon_wait_time" 's ) while we wait for the Network Container to come online...' +sleep "$netcon_wait_time"s +ncvirtip=$(<$address_file) + + +# --- Test section --- +echo '*** Curling from intercepted server at' $ncvirtip +rm -rf "$file_path"*."$file_base" +touch "$bigfile_name" + +# Perform test +# curl --connect-timeout "$app_timeout_time" -v -o "$file_path$file_base" http://"$ncvirtip"/index.html +# Large transfer test +curl --connect-timeout "$app_timeout_time" -v -o "$bigfile_name" http://"$ncvirtip"/"$bigfile_name" + +# Check md5 +md5sum < "$bigfile_name" >> "$rx_md5sumfile" +rx_md5sum=$(<$rx_md5sumfile) +tx_md5sum=$(<$tx_md5sumfile) + +echo '*** Comparing md5: ' "$rx_md5sum" ' and ' "$tx_md5sum" + +if [ "$rx_md5sum" != "$tx_md5sum" ]; +then + echo 'MD5 FAIL' + touch "$file_path$fail$test_name.txt" + printf 'Test: md5 sum did not match!\n' >> "$file_path$fail$test_name.txt" +else + echo 'MD5 OK' + touch "$file_path$ok$test_name.txt" + printf 'Test: md5 sum ok!\n' >> "$file_path$ok$test_name.txt" + cat "$rx_md5sumfile" >> "$file_path$ok$test_name.txt" + cat "$tx_md5sumfile" >> "$file_path$ok$test_name.txt" +fi + + + + + + + + + + + diff --git a/netcon/docker-test/nginx/nginx-1.8.0-14.fc23.x86_64/netcon_dockerfile b/netcon/docker-test/nginx/nginx-1.8.0-14.fc23.x86_64/netcon_dockerfile new file mode 100644 index 00000000..1888071e --- /dev/null +++ b/netcon/docker-test/nginx/nginx-1.8.0-14.fc23.x86_64/netcon_dockerfile @@ -0,0 +1,39 @@ +# ZT Network Containers Test +FROM fedora:23 +MAINTAINER https://www.zerotier.com/ + +# Install apps +RUN yum -y update +RUN yum -y install nginx-1:1.8.0-14.fc23.x86_64 +RUN yum clean all + +EXPOSE 9993/udp 80/udp + +# Install LWIP library used by service +ADD liblwip.so /var/lib/zerotier-one/liblwip.so + +# Install syscall intercept library +ADD zerotier-intercept / +ADD libzerotierintercept.so.1.0 / +RUN cp libzerotierintercept.so.1.0 lib/libzerotierintercept.so.1.0 +RUN cp libzerotierintercept.so.1.0 /lib/libzerotierintercept.so.1.0 +RUN ln -sf /lib/libzerotierintercept.so.1.0 /lib/libzerotierintercept +RUN /usr/bin/install -c zerotier-intercept /usr/bin + +# Add ZT files +RUN mkdir -p /var/lib/zerotier-one/networks.d +ADD netcon_identity.public /var/lib/zerotier-one/identity.public +ADD netcon_identity.secret /var/lib/zerotier-one/identity.secret +ADD *.conf /var/lib/zerotier-one/networks.d/ +ADD *.conf / +ADD *.name / + +ADD zerotier-one / +ADD zerotier-cli / + +# Install test scripts +ADD netcon_entrypoint.sh /netcon_entrypoint.sh +RUN chmod -v +x /netcon_entrypoint.sh + +# Start ZeroTier-One +CMD ["./netcon_entrypoint.sh"] diff --git a/netcon/docker-test/nginx/nginx-1.8.0-14.fc23.x86_64/netcon_entrypoint.sh b/netcon/docker-test/nginx/nginx-1.8.0-14.fc23.x86_64/netcon_entrypoint.sh new file mode 100644 index 00000000..de7a00d9 --- /dev/null +++ b/netcon/docker-test/nginx/nginx-1.8.0-14.fc23.x86_64/netcon_entrypoint.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/ + + +# --- Test Parameters --- +test_namefile=$(ls *.name) +test_name="${test_namefile%.*}" # test network id +nwconf=$(ls *.conf) # blank test network config file +nwid="${nwconf%.*}" # test network id +file_path=/opt/results/ # test result output file path (fs shared between host and containers) +file_base="$test_name".txt # test result output file +tmp_ext=.tmp # temporary filetype used for sharing test data between containers +address_file="$file_path$test_name"_addr"$tmp_ext" # file shared between host and containers for sharing address (optional) +bigfile_name=bigfile +bigfile_size=10M # size of file we want to use for the test +tx_md5sumfile="$file_path"tx_"$bigfile_name"_md5sum"$tmp_ext" + + +# --- Network Config --- +echo '*** ZeroTier Network Containers Test: ' "$test_name" +chown -R daemon /var/lib/zerotier-one +chgrp -R daemon /var/lib/zerotier-one +su daemon -s /bin/bash -c '/zerotier-one -d -U -p9993 >>/tmp/zerotier-one.out 2>&1' +virtip4="" +while [ -z "$virtip4" ]; do + sleep 0.2 + virtip4=`/zerotier-cli listnetworks | grep -F $nwid | cut -d ' ' -f 9 | sed 's/,/\n/g' | grep -F '.' | cut -d / -f 1` + dev=`/zerotier-cli listnetworks | grep -F "" | cut -d ' ' -f 8 | cut -d "_" -f 2 | sed "s/^<dev>//" | tr '\n' '\0'` +done +echo '*** Up and running at' $virtip4 ' on network: ' $nwid +echo '*** Writing address to ' "$address_file" +echo $virtip4 > "$address_file" + +export ZT_NC_NWID=$dev + +# --- Test section --- +nginx_html_path=/usr/share/nginx/html/ +# Generate large random file for transfer test, share md5sum for monitor container to check +echo '*** Generating ' "$bigfile_size" ' file' +dd if=/dev/urandom of="$nginx_html_path$bigfile_name" bs="$bigfile_size" count=1 +#md5sum /var/www/html/"$bigfile_name" >> "$tx_md5sumfile" +md5sum < "$nginx_html_path$bigfile_name" >> "$tx_md5sumfile" +echo '*** Wrote MD5 sum to ' "$tx_md5sumfile" + +echo '*** Starting application...' +sleep 0.5 +zerotier-intercept nginx -p /var/www/html diff --git a/netcon/docker-test/nginx/nginx-1.8.0-14.fc23.x86_64/nginx-1.8.0-14.fc23.x86_64.name b/netcon/docker-test/nginx/nginx-1.8.0-14.fc23.x86_64/nginx-1.8.0-14.fc23.x86_64.name new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/netcon/docker-test/nginx/nginx-1.8.0-14.fc23.x86_64/nginx-1.8.0-14.fc23.x86_64.name diff --git a/netcon/docker-test/nodejs/nodejs-0.10.36-4.fc23/httpserver.js b/netcon/docker-test/nodejs/nodejs-0.10.36-4.fc23/httpserver.js new file mode 100644 index 00000000..b2401c50 --- /dev/null +++ b/netcon/docker-test/nodejs/nodejs-0.10.36-4.fc23/httpserver.js @@ -0,0 +1,7 @@ +var http = require('http'); +var server = http.createServer(function (request, response) { + response.writeHead(200, {"Content-Type": "text/plain"}); + response.end("welcome to the machine!\n"); +}); +server.listen(8080); +console.log("Server running!"); diff --git a/netcon/docker-test/nodejs/nodejs-0.10.36-4.fc23/monitor_dockerfile b/netcon/docker-test/nodejs/nodejs-0.10.36-4.fc23/monitor_dockerfile new file mode 100644 index 00000000..e8f803cd --- /dev/null +++ b/netcon/docker-test/nodejs/nodejs-0.10.36-4.fc23/monitor_dockerfile @@ -0,0 +1,23 @@ +# ZT Network Containers Test Monitor +FROM fedora:23 +MAINTAINER https://www.zerotier.com/ + +EXPOSE 9993/udp + +# Install LWIP library used by service +ADD liblwip.so /var/lib/zerotier-one/liblwip.so + +# Add ZT files +RUN mkdir -p /var/lib/zerotier-one/networks.d +ADD monitor_identity.public /var/lib/zerotier-one/identity.public +ADD monitor_identity.secret /var/lib/zerotier-one/identity.secret +ADD *.conf /var/lib/zerotier-one/networks.d/ +ADD *.conf / +ADD *.name / +ADD zerotier-one / +ADD zerotier-cli / + +# Start ZeroTier-One +ADD monitor_entrypoint.sh /monitor_entrypoint.sh +RUN chmod -v +x /monitor_entrypoint.sh +CMD ["./monitor_entrypoint.sh"] diff --git a/netcon/docker-test/nodejs/nodejs-0.10.36-4.fc23/monitor_entrypoint.sh b/netcon/docker-test/nodejs/nodejs-0.10.36-4.fc23/monitor_entrypoint.sh new file mode 100644 index 00000000..1701a467 --- /dev/null +++ b/netcon/docker-test/nodejs/nodejs-0.10.36-4.fc23/monitor_entrypoint.sh @@ -0,0 +1,57 @@ +#!/bin/bash + +export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/ + + +# --- Test Parameters --- +test_namefile=$(ls *.name) +test_name="${test_namefile%.*}" # test network id +nwconf=$(ls *.conf) # blank test network config file +nwid="${nwconf%.*}" # test network id +netcon_wait_time=25 # wait for test container to come online +app_timeout_time=15 # app-specific timeout +file_path=/opt/results/ # test result output file path (fs shared between host and containers) +file_base="$test_name".txt # test result output file +fail=FAIL. # appended to result file in event of failure +ok=OK. # appended to result file in event of success +tmp_ext=.tmp # temporary filetype used for sharing test data between containers +address_file="$file_path$test_name"_addr"$tmp_ext" # file shared between host and containers for sharing address (optional) + + +# --- Network Config --- +echo '*** ZeroTier Network Containers Test Monitor' +chown -R daemon /var/lib/zerotier-one +chgrp -R daemon /var/lib/zerotier-one +su daemon -s /bin/bash -c '/zerotier-one -d -U -p9993 >>/tmp/zerotier-one.out 2>&1' +virtip4="" +while [ -z "$virtip4" ]; do + sleep 0.2 + virtip4=`/zerotier-cli listnetworks | grep -F $nwid | cut -d ' ' -f 9 | sed 's/,/\n/g' | grep -F '.' | cut -d / -f 1` +done +echo '*** Starting Test...' +echo '*** Up and running at' $virtip4 ' on network: ' $nwid +echo '*** Sleeping for (' "$netcon_wait_time" 's ) while we wait for the Network Container to come online...' +sleep "$netcon_wait_time"s +ncvirtip=$(<$address_file) + + +# --- Test section --- +echo '*** Curling from intercepted server at' $ncvirtip +response_string=$(curl --connect-timeout "$app_timeout_time" -v http://"$ncvirtip":8080/) + +if [[ $response_string == *"welcome to the machine!"* ]] +then + echo 'NODEJS RESPONSE OK' + touch "$file_path$ok$test_name.txt" + printf 'Test: nodejs-server responded!\n' >> "$file_path$ok$test_name.txt" +else + echo 'NODEJS RESPONSE FAIL' + touch "$file_path$fail$test_name.txt" + printf 'Test: nodejs server did NOT respond!\n' >> "$file_path$fail$test_name.txt" +fi + + + + + + diff --git a/netcon/docker-test/nodejs/nodejs-0.10.36-4.fc23/netcon_dockerfile b/netcon/docker-test/nodejs/nodejs-0.10.36-4.fc23/netcon_dockerfile new file mode 100644 index 00000000..ea2abd68 --- /dev/null +++ b/netcon/docker-test/nodejs/nodejs-0.10.36-4.fc23/netcon_dockerfile @@ -0,0 +1,42 @@ +# ZT Network Containers Test +FROM fedora:23 +MAINTAINER https://www.zerotier.com/ + +# Install apps +RUN yum -y update +RUN yum -y install nodejs +RUN yum clean all + +EXPOSE 9993/udp 8080/udp + +# Install LWIP library used by service +ADD liblwip.so /var/lib/zerotier-one/liblwip.so + +# +ADD httpserver.js / + +# Install syscall intercept library +ADD zerotier-intercept / +ADD libzerotierintercept.so.1.0 / +RUN cp libzerotierintercept.so.1.0 lib/libzerotierintercept.so.1.0 +RUN cp libzerotierintercept.so.1.0 /lib/libzerotierintercept.so.1.0 +RUN ln -sf /lib/libzerotierintercept.so.1.0 /lib/libzerotierintercept +RUN /usr/bin/install -c zerotier-intercept /usr/bin + +# Add ZT files +RUN mkdir -p /var/lib/zerotier-one/networks.d +ADD netcon_identity.public /var/lib/zerotier-one/identity.public +ADD netcon_identity.secret /var/lib/zerotier-one/identity.secret +ADD *.conf /var/lib/zerotier-one/networks.d/ +ADD *.conf / +ADD *.name / + +ADD zerotier-one / +ADD zerotier-cli / + +# Install test scripts +ADD netcon_entrypoint.sh /netcon_entrypoint.sh +RUN chmod -v +x /netcon_entrypoint.sh + +# Start ZeroTier-One +CMD ["./netcon_entrypoint.sh"] diff --git a/netcon/docker-test/nodejs/nodejs-0.10.36-4.fc23/netcon_entrypoint.sh b/netcon/docker-test/nodejs/nodejs-0.10.36-4.fc23/netcon_entrypoint.sh new file mode 100644 index 00000000..a6e1b6c1 --- /dev/null +++ b/netcon/docker-test/nodejs/nodejs-0.10.36-4.fc23/netcon_entrypoint.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/ + + +# --- Test Parameters --- +test_namefile=$(ls *.name) +test_name="${test_namefile%.*}" # test network id +nwconf=$(ls *.conf) # blank test network config file +nwid="${nwconf%.*}" # test network id +file_path=/opt/results/ # test result output file path (fs shared between host and containers) +file_base="$test_name".txt # test result output file +tmp_ext=.tmp # temporary filetype used for sharing test data between containers +address_file="$file_path$test_name"_addr"$tmp_ext" # file shared between host and containers for sharing address (optional) + + +# --- Network Config --- +echo '*** ZeroTier Network Containers Test: ' "$test_name" +chown -R daemon /var/lib/zerotier-one +chgrp -R daemon /var/lib/zerotier-one +su daemon -s /bin/bash -c '/zerotier-one -d -U -p9993 >>/tmp/zerotier-one.out 2>&1' +virtip4="" +while [ -z "$virtip4" ]; do + sleep 0.2 + virtip4=`/zerotier-cli listnetworks | grep -F $nwid | cut -d ' ' -f 9 | sed 's/,/\n/g' | grep -F '.' | cut -d / -f 1` + dev=`/zerotier-cli listnetworks | grep -F "" | cut -d ' ' -f 8 | cut -d "_" -f 2 | sed "s/^<dev>//" | tr '\n' '\0'` +done +echo '*** Up and running at' $virtip4 ' on network: ' $nwid +echo '*** Writing address to ' "$address_file" +echo $virtip4 > "$address_file" + +export ZT_NC_NWID=$dev + +# --- Test section --- +echo '*** Starting application...' +sleep 0.5 +zerotier-intercept node httpserver.js
\ No newline at end of file diff --git a/netcon/docker-test/nodejs/nodejs-0.10.36-4.fc23/nodejs-0.10.36-4.fc23.name b/netcon/docker-test/nodejs/nodejs-0.10.36-4.fc23/nodejs-0.10.36-4.fc23.name new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/netcon/docker-test/nodejs/nodejs-0.10.36-4.fc23/nodejs-0.10.36-4.fc23.name diff --git a/netcon/docker-test/redis/redis-3.0.4-1.fc23.x86_64/hello.lua b/netcon/docker-test/redis/redis-3.0.4-1.fc23.x86_64/hello.lua new file mode 100644 index 00000000..59a2dea6 --- /dev/null +++ b/netcon/docker-test/redis/redis-3.0.4-1.fc23.x86_64/hello.lua @@ -0,0 +1,3 @@ +local msg = "welcome to the machine!" +redis.call("SET", "msg", msg) +return redis.call("GET", "msg") diff --git a/netcon/docker-test/redis/redis-3.0.4-1.fc23.x86_64/monitor_dockerfile b/netcon/docker-test/redis/redis-3.0.4-1.fc23.x86_64/monitor_dockerfile new file mode 100644 index 00000000..cbba716b --- /dev/null +++ b/netcon/docker-test/redis/redis-3.0.4-1.fc23.x86_64/monitor_dockerfile @@ -0,0 +1,27 @@ +# ZT Network Containers Test Monitor +FROM fedora:23 +MAINTAINER https://www.zerotier.com/ + +RUN yum -y install redis-3.0.4-1.fc23.x86_64 + +EXPOSE 9993/udp + +# Install LWIP library used by service +ADD liblwip.so /var/lib/zerotier-one/liblwip.so + +ADD hello.lua / + +# Add ZT files +RUN mkdir -p /var/lib/zerotier-one/networks.d +ADD monitor_identity.public /var/lib/zerotier-one/identity.public +ADD monitor_identity.secret /var/lib/zerotier-one/identity.secret +ADD *.conf /var/lib/zerotier-one/networks.d/ +ADD *.conf / +ADD *.name / +ADD zerotier-one / +ADD zerotier-cli / + +# Start ZeroTier-One +ADD monitor_entrypoint.sh /monitor_entrypoint.sh +RUN chmod -v +x /monitor_entrypoint.sh +CMD ["./monitor_entrypoint.sh"] diff --git a/netcon/docker-test/redis/redis-3.0.4-1.fc23.x86_64/monitor_entrypoint.sh b/netcon/docker-test/redis/redis-3.0.4-1.fc23.x86_64/monitor_entrypoint.sh new file mode 100644 index 00000000..087f50bb --- /dev/null +++ b/netcon/docker-test/redis/redis-3.0.4-1.fc23.x86_64/monitor_entrypoint.sh @@ -0,0 +1,56 @@ +#!/bin/bash + +export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/ + + +# --- Test Parameters --- +test_namefile=$(ls *.name) +test_name="${test_namefile%.*}" # test network id +nwconf=$(ls *.conf) # blank test network config file +nwid="${nwconf%.*}" # test network id +netcon_wait_time=25 # wait for test container to come online +app_timeout_time=15 # app-specific timeout +file_path=/opt/results/ # test result output file path (fs shared between host and containers) +file_base="$test_name".txt # test result output file +fail=FAIL. # appended to result file in event of failure +ok=OK. # appended to result file in event of success +tmp_ext=.tmp # temporary filetype used for sharing test data between containers +address_file="$file_path$test_name"_addr"$tmp_ext" # file shared between host and containers for sharing address (optional) + + +# --- Network Config --- +echo '*** ZeroTier Network Containers Test Monitor' +chown -R daemon /var/lib/zerotier-one +chgrp -R daemon /var/lib/zerotier-one +su daemon -s /bin/bash -c '/zerotier-one -d -U -p9993 >>/tmp/zerotier-one.out 2>&1' +virtip4="" +while [ -z "$virtip4" ]; do + sleep 0.2 + virtip4=`/zerotier-cli listnetworks | grep -F $nwid | cut -d ' ' -f 9 | sed 's/,/\n/g' | grep -F '.' | cut -d / -f 1` +done +echo '*** Starting Test...' +echo '*** Up and running at' $virtip4 ' on network: ' $nwid +echo '*** Sleeping for (' "$netcon_wait_time" 's ) while we wait for the Network Container to come online...' +sleep "$netcon_wait_time"s +ncvirtip=$(<$address_file) + + +# --- Test section --- +echo '*** Running lua script against redis host at' $ncvirtip +redis-cli -h $ncvirtip EVAL "$(cat hello.lua)" 0 > redis_response.txt +response_string=$(<redis_response.txt) + +if [[ $response_string == *"welcome to the machine!"* ]] +then + echo 'REDIS RESPONSE OK' + touch "$file_path$ok$test_name.txt" + printf 'Test: redis-server responded!\n' >> "$file_path$ok$test_name.txt" +else + echo 'REDIS RESPONSE FAIL' + touch "$file_path$fail$test_name.txt" + printf 'Test: redis server did NOT respond!\n' >> "$file_path$fail$test_name.txt" +fi + + + + diff --git a/netcon/docker-test/redis/redis-3.0.4-1.fc23.x86_64/netcon_dockerfile b/netcon/docker-test/redis/redis-3.0.4-1.fc23.x86_64/netcon_dockerfile new file mode 100644 index 00000000..e2eed9fa --- /dev/null +++ b/netcon/docker-test/redis/redis-3.0.4-1.fc23.x86_64/netcon_dockerfile @@ -0,0 +1,39 @@ +# ZT Network Containers Test +FROM fedora:23 +MAINTAINER https://www.zerotier.com/ + +# Install apps +RUN yum -y update +RUN yum -y install redis-3.0.4-1.fc23.x86_64 +RUN yum clean all + +EXPOSE 9993/udp 6379/udp + +# Install LWIP library used by service +ADD liblwip.so /var/lib/zerotier-one/liblwip.so + +# Install syscall intercept library +ADD zerotier-intercept / +ADD libzerotierintercept.so.1.0 / +RUN cp libzerotierintercept.so.1.0 lib/libzerotierintercept.so.1.0 +RUN cp libzerotierintercept.so.1.0 /lib/libzerotierintercept.so.1.0 +RUN ln -sf /lib/libzerotierintercept.so.1.0 /lib/libzerotierintercept +RUN /usr/bin/install -c zerotier-intercept /usr/bin + +# Add ZT files +RUN mkdir -p /var/lib/zerotier-one/networks.d +ADD netcon_identity.public /var/lib/zerotier-one/identity.public +ADD netcon_identity.secret /var/lib/zerotier-one/identity.secret +ADD *.conf /var/lib/zerotier-one/networks.d/ +ADD *.conf / +ADD *.name / + +ADD zerotier-one / +ADD zerotier-cli / + +# Install test scripts +ADD netcon_entrypoint.sh /netcon_entrypoint.sh +RUN chmod -v +x /netcon_entrypoint.sh + +# Start ZeroTier-One +CMD ["./netcon_entrypoint.sh"] diff --git a/netcon/docker-test/redis/redis-3.0.4-1.fc23.x86_64/netcon_entrypoint.sh b/netcon/docker-test/redis/redis-3.0.4-1.fc23.x86_64/netcon_entrypoint.sh new file mode 100644 index 00000000..8f7aefec --- /dev/null +++ b/netcon/docker-test/redis/redis-3.0.4-1.fc23.x86_64/netcon_entrypoint.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/ + + +# --- Test Parameters --- +test_namefile=$(ls *.name) +test_name="${test_namefile%.*}" # test network id +nwconf=$(ls *.conf) # blank test network config file +nwid="${nwconf%.*}" # test network id +file_path=/opt/results/ # test result output file path (fs shared between host and containers) +file_base="$test_name".txt # test result output file +tmp_ext=.tmp # temporary filetype used for sharing test data between containers +address_file="$file_path$test_name"_addr"$tmp_ext" # file shared between host and containers for sharing address (optional) + + +# --- Network Config --- +echo '*** ZeroTier Network Containers Test: ' "$test_name" +chown -R daemon /var/lib/zerotier-one +chgrp -R daemon /var/lib/zerotier-one +su daemon -s /bin/bash -c '/zerotier-one -d -U -p9993 >>/tmp/zerotier-one.out 2>&1' +virtip4="" +while [ -z "$virtip4" ]; do + sleep 0.2 + virtip4=`/zerotier-cli listnetworks | grep -F $nwid | cut -d ' ' -f 9 | sed 's/,/\n/g' | grep -F '.' | cut -d / -f 1` + dev=`/zerotier-cli listnetworks | grep -F "" | cut -d ' ' -f 8 | cut -d "_" -f 2 | sed "s/^<dev>//" | tr '\n' '\0'` +done +echo '*** Up and running at' $virtip4 ' on network: ' $nwid +echo '*** Writing address to ' "$address_file" +echo $virtip4 > "$address_file" + +export ZT_NC_NWID=$dev + +# --- Test section --- +echo '*** Starting application...' +sleep 0.5 +zerotier-intercept /usr/bin/redis-server --port 6379 diff --git a/netcon/docker-test/redis/redis-3.0.4-1.fc23.x86_64/redis-3.0.4-1.fc23.x86_64.name b/netcon/docker-test/redis/redis-3.0.4-1.fc23.x86_64/redis-3.0.4-1.fc23.x86_64.name new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/netcon/docker-test/redis/redis-3.0.4-1.fc23.x86_64/redis-3.0.4-1.fc23.x86_64.name diff --git a/netcon/docker-test/run_tests.sh b/netcon/docker-test/run_tests.sh new file mode 100755 index 00000000..cd0bc54c --- /dev/null +++ b/netcon/docker-test/run_tests.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +# Merely RUNS test images + +# Remove previous test results +rm _results/*.txt + +# How long we shall wait for each test to conclude +export netcon_test_wait_time=60s + +# Test structure, in later releases more complex multi-party scripts will be included +export test_script=two_party_test.sh + +# Iterate over all depth=2 (relatively-speaking) directories and perform each test +find . -mindepth 2 -maxdepth 2 -type d | while read testdir; do + echo "*** Testing: '$testdir'..." + rm _results/*.tmp + + # Stage scripts + cp $test_script $testdir/$test_script + cd $testdir + + # Run test + ./$test_script + rm $test_script + + cd ../../ +done
\ No newline at end of file diff --git a/netcon/docker-test/sshd/openssh-server-7.1p1-3.fc23.x86_64/monitor_dockerfile b/netcon/docker-test/sshd/openssh-server-7.1p1-3.fc23.x86_64/monitor_dockerfile new file mode 100644 index 00000000..e8f803cd --- /dev/null +++ b/netcon/docker-test/sshd/openssh-server-7.1p1-3.fc23.x86_64/monitor_dockerfile @@ -0,0 +1,23 @@ +# ZT Network Containers Test Monitor +FROM fedora:23 +MAINTAINER https://www.zerotier.com/ + +EXPOSE 9993/udp + +# Install LWIP library used by service +ADD liblwip.so /var/lib/zerotier-one/liblwip.so + +# Add ZT files +RUN mkdir -p /var/lib/zerotier-one/networks.d +ADD monitor_identity.public /var/lib/zerotier-one/identity.public +ADD monitor_identity.secret /var/lib/zerotier-one/identity.secret +ADD *.conf /var/lib/zerotier-one/networks.d/ +ADD *.conf / +ADD *.name / +ADD zerotier-one / +ADD zerotier-cli / + +# Start ZeroTier-One +ADD monitor_entrypoint.sh /monitor_entrypoint.sh +RUN chmod -v +x /monitor_entrypoint.sh +CMD ["./monitor_entrypoint.sh"] diff --git a/netcon/docker-test/sshd/openssh-server-7.1p1-3.fc23.x86_64/monitor_entrypoint.sh b/netcon/docker-test/sshd/openssh-server-7.1p1-3.fc23.x86_64/monitor_entrypoint.sh new file mode 100644 index 00000000..d617bd4a --- /dev/null +++ b/netcon/docker-test/sshd/openssh-server-7.1p1-3.fc23.x86_64/monitor_entrypoint.sh @@ -0,0 +1,57 @@ +#!/bin/bash + +export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/ + + +# --- Test Parameters --- +test_namefile=$(ls *.name) +test_name="${test_namefile%.*}" # test network id +nwconf=$(ls *.conf) # blank test network config file +nwid="${nwconf%.*}" # test network id +netcon_wait_time=25 # wait for test container to come online +app_timeout_time=15 # app-specific timeout +file_path=/opt/results/ # test result output file path (fs shared between host and containers) +file_base="$test_name".txt # test result output file +fail=FAIL. # appended to result file in event of failure +ok=OK. # appended to result file in event of success +tmp_ext=.tmp # temporary filetype used for sharing test data between containers +address_file="$file_path$test_name"_addr"$tmp_ext" # file shared between host and containers for sharing address (optional) +bigfile_name=bigfile # large, random test transfer file +rx_md5sumfile="$file_path"rx_"$bigfile_name"_md5sum"$tmp_ext" +tx_md5sumfile="$file_path"tx_"$bigfile_name"_md5sum"$tmp_ext" + + +# --- Network Config --- +echo '*** ZeroTier Network Containers Test Monitor' +chown -R daemon /var/lib/zerotier-one +chgrp -R daemon /var/lib/zerotier-one +su daemon -s /bin/bash -c '/zerotier-one -d -U -p9993 >>/tmp/zerotier-one.out 2>&1' +virtip4="" +while [ -z "$virtip4" ]; do + sleep 0.2 + virtip4=`/zerotier-cli listnetworks | grep -F $nwid | cut -d ' ' -f 9 | sed 's/,/\n/g' | grep -F '.' | cut -d / -f 1` +done +echo '*** Starting Test...' +echo '*** Up and running at' $virtip4 ' on network: ' $nwid +echo '*** Sleeping for (' "$netcon_wait_time" 's ) while we wait for the Network Container to come online...' +sleep "$netcon_wait_time"s +ncvirtip=$(<$address_file) + + +# --- Test section --- +echo '*** Copying file to intercepted server at' $ncvirtip +touch "$bigfile_name" + +# Check md5 +md5sum < "$bigfile_name" >> "$rx_md5sumfile" +tx_md5sum=$(<$tx_md5sumfile) + +# ... + + + + + + + + diff --git a/netcon/docker-test/sshd/openssh-server-7.1p1-3.fc23.x86_64/netcon_dockerfile b/netcon/docker-test/sshd/openssh-server-7.1p1-3.fc23.x86_64/netcon_dockerfile new file mode 100644 index 00000000..ddb0a6c4 --- /dev/null +++ b/netcon/docker-test/sshd/openssh-server-7.1p1-3.fc23.x86_64/netcon_dockerfile @@ -0,0 +1,39 @@ +# ZT Network Containers Test +FROM fedora:23 +MAINTAINER https://www.zerotier.com/ + +# Install apps +RUN yum -y update +RUN yum -y install openssh-server +RUN yum clean all + +EXPOSE 9993/udp + +# Install LWIP library used by service +ADD liblwip.so /var/lib/zerotier-one/liblwip.so + +# Install syscall intercept library +ADD zerotier-intercept / +ADD libzerotierintercept.so.1.0 / +RUN cp libzerotierintercept.so.1.0 lib/libzerotierintercept.so.1.0 +RUN cp libzerotierintercept.so.1.0 /lib/libzerotierintercept.so.1.0 +RUN ln -sf /lib/libzerotierintercept.so.1.0 /lib/libzerotierintercept +RUN /usr/bin/install -c zerotier-intercept /usr/bin + +# Add ZT files +RUN mkdir -p /var/lib/zerotier-one/networks.d +ADD netcon_identity.public /var/lib/zerotier-one/identity.public +ADD netcon_identity.secret /var/lib/zerotier-one/identity.secret +ADD *.conf /var/lib/zerotier-one/networks.d/ +ADD *.conf / +ADD *.name / + +ADD zerotier-one / +ADD zerotier-cli / + +# Install test scripts +ADD netcon_entrypoint.sh /netcon_entrypoint.sh +RUN chmod -v +x /netcon_entrypoint.sh + +# Start ZeroTier-One +CMD ["./netcon_entrypoint.sh"] diff --git a/netcon/docker-test/sshd/openssh-server-7.1p1-3.fc23.x86_64/netcon_entrypoint.sh b/netcon/docker-test/sshd/openssh-server-7.1p1-3.fc23.x86_64/netcon_entrypoint.sh new file mode 100644 index 00000000..9d8625aa --- /dev/null +++ b/netcon/docker-test/sshd/openssh-server-7.1p1-3.fc23.x86_64/netcon_entrypoint.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/ + + +# --- Test Parameters --- +test_namefile=$(ls *.name) +test_name="${test_namefile%.*}" # test network id +nwconf=$(ls *.conf) # blank test network config file +nwid="${nwconf%.*}" # test network id +file_path=/opt/results/ # test result output file path (fs shared between host and containers) +file_base="$test_name".txt # test result output file +tmp_ext=.tmp # temporary filetype used for sharing test data between containers +address_file="$file_path$test_name"_addr"$tmp_ext" # file shared between host and containers for sharing address (optional) +bigfile_name=bigfile +bigfile_size=10M # size of file we want to use for the test +tx_md5sumfile="$file_path"tx_"$bigfile_name"_md5sum"$tmp_ext" + + +# --- Network Config --- +echo '*** ZeroTier Network Containers Test: ' "$test_name" +chown -R daemon /var/lib/zerotier-one +chgrp -R daemon /var/lib/zerotier-one +./zerotier-one -d -U -p9993 +virtip4="" +while [ -z "$virtip4" ]; do + sleep 0.2 + virtip4=`/zerotier-cli listnetworks | grep -F $nwid | cut -d ' ' -f 9 | sed 's/,/\n/g' | grep -F '.' | cut -d / -f 1` + dev=`/zerotier-cli listnetworks | grep -F "" | cut -d ' ' -f 8 | cut -d "_" -f 2 | sed "s/^<dev>//" | tr '\n' '\0'` +done +echo '*** Up and running at' $virtip4 ' on network: ' $nwid +echo '*** Writing address to ' "$address_file" +echo $virtip4 > "$address_file" + +export ZT_NC_NWID=$dev + +# --- Test section --- +# Generate large random file for transfer test, share md5sum for monitor container to check +echo '*** Generating ' "$bigfile_size" ' file' +dd if=/dev/urandom of=/var/www/html/"$bigfile_name" bs="$bigfile_size" count=1 +#md5sum /var/www/html/"$bigfile_name" >> "$tx_md5sumfile" +md5sum < /var/www/html/"$bigfile_name" >> "$tx_md5sumfile" +echo '*** Wrote MD5 sum to ' "$tx_md5sumfile" + +echo '*** Starting application...' +sleep 0.5 + +# wait for rsa public key from monitor +#while [ ! -s "$file_path$rsa_public_key_file" ]; do +# sleep 0.2 +#done + +zerotier-intercept /usr/sbin/sshd diff --git a/netcon/docker-test/sshd/openssh-server-7.1p1-3.fc23.x86_64/openssh-server-7.1p1-3.fc23.x86_64.name b/netcon/docker-test/sshd/openssh-server-7.1p1-3.fc23.x86_64/openssh-server-7.1p1-3.fc23.x86_64.name new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/netcon/docker-test/sshd/openssh-server-7.1p1-3.fc23.x86_64/openssh-server-7.1p1-3.fc23.x86_64.name diff --git a/netcon/docker-test/test.sh b/netcon/docker-test/test.sh new file mode 100755 index 00000000..cda8e700 --- /dev/null +++ b/netcon/docker-test/test.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +# Runs test images + +echo "*** Running unit tests..." + +# Remove previous test results +rm _results/*.txt + +# How long we shall wait for each test to conclude +export netcon_test_wait_time=60s + +# Test structure, in later releases more complex multi-party scripts will be included +export test_script=two_party_test.sh + +# Iterate over all depth=2 (relatively-speaking) directories and perform each test +find . -mindepth 2 -maxdepth 2 -type d | while read testdir; do + echo "*** Testing: '$testdir'..." + rm _results/*.tmp + + # Stage scripts + cp $test_script $testdir/$test_script + cd $testdir + + # Run test + ./$test_script + rm $test_script + + cd ../../ +done + +echo "*** Done"
\ No newline at end of file diff --git a/netcon/docker-test/two_party_test.sh b/netcon/docker-test/two_party_test.sh new file mode 100755 index 00000000..164b0b2e --- /dev/null +++ b/netcon/docker-test/two_party_test.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# Runs test image and monitor image as daemons + +test_name=${PWD##*/} +echo 'Building dockerfiles for test: ' "$test_name" +touch "$test_name".name + +# Start netcon container to be tested +test_container=$(docker run -d -it -v $PWD/../../_results:/opt/results --device=/dev/net/tun "$test_name":latest) +monitor_container=$(docker run -d -it -v $PWD/../../_results:/opt/results --device=/dev/net/tun "$test_name"_monitor:latest) + +echo "waiting $netcon_test_wait_time for test to complete." +sleep $netcon_test_wait_time +docker stop $(docker ps -a -q) +docker rm $test_container +docker rm $monitor_container
\ No newline at end of file diff --git a/netcon/docker-test/zerotier-cli b/netcon/docker-test/zerotier-cli Binary files differnew file mode 100755 index 00000000..95e82b3d --- /dev/null +++ b/netcon/docker-test/zerotier-cli diff --git a/netcon/docker-test/zerotier-intercept b/netcon/docker-test/zerotier-intercept new file mode 100755 index 00000000..85e9fba1 --- /dev/null +++ b/netcon/docker-test/zerotier-intercept @@ -0,0 +1,54 @@ +#!/bin/sh +# usage: +# /usr/bin/intercept program <args> + +if [ $# = 0 ] ; then + echo "$0: insufficient arguments" + exit +fi + +case "$1" in + on) + if [ -z "$LD_PRELOAD" ] + then + export LD_PRELOAD="/lib/libzerotierintercept.so.1.0" + else + echo $LD_PRELOAD | grep -q "/lib/libzerotierintercept\.so.1.0" || \ + export LD_PRELOAD="/lib/libzerotierintercept.so $LD_PRELOAD" + fi + ;; + off) + export LD_PRELOAD=`echo -n $LD_PRELOAD | sed 's/\/lib\/libzerotierintercept.so.1.0 \?//'` + if [ -z "$LD_PRELOAD" ] + then + unset LD_PRELOAD + fi + ;; + show|sh) + echo "LD_PRELOAD=\"$LD_PRELOAD\"" + ;; + -h|-?) + echo "" + ;; + *) + if [ -z "$LD_PRELOAD" ] + then + export LD_PRELOAD="/lib/libzerotierintercept.so.1.0" + else + echo $LD_PRELOAD | grep -q "/lib/libzerotierintercept\.so.1.0" || \ + export LD_PRELOAD="/lib/libzerotierintercept.so.1.0 $LD_PRELOAD" + fi + + if [ $# = 0 ] + then + ${SHELL:-/bin/sh} + fi + + if [ $# -gt 0 ] + then + exec "$@" + fi + ;; +esac + +#EOF diff --git a/netcon/docker-test/zerotier-one b/netcon/docker-test/zerotier-one Binary files differnew file mode 100755 index 00000000..95e82b3d --- /dev/null +++ b/netcon/docker-test/zerotier-one |