mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 20:42:59 +01:00
dce79f5c8e
46b025e00df40724175735eb5606ac73067cb3b8 test: add new python linter to check file names and permissions (windsok) 6f6bb3ebc7cb8e17a5dfc8ef55aa2d3f2dc6bdea test: fix file permissions on various scripts (windsok) Pull request description: Adds a new python linter test which tests for correct filenames and file permissions in the repository. Replaces the existing tests in the `test/lint/lint-filenames.sh` and `test/lint/lint-shebang.sh` linter tests, as well as adding some new and increased testing. This increased coverage is intended to catch issues such as in #21728 and https://github.com/bitcoin/bitcoin/pull/16807/files#r345547050 Summary of tests: * Checks every file in the repository against an allowed regexp to make sure only lowercase or uppercase alphanumerics (a-zA-Z0-9), underscores (_), hyphens (-), at (@) and dots (.) are used in repository filenames. * Checks only source files (*.cpp, *.h, *.py, *.sh) against a stricter allowed regexp to make sure only lowercase alphanumerics (a-z0-9), underscores (_), hyphens (-) and dots (.) are used in source code filenames. Additionally there is an exception regexp for directories or files which are excepted from matching this regexp (This should replicate the existing `test/lint/lint-filenames.sh` test) * Checks all files in the repository match an allowed executable or non-executable file permission octal. Additionally checks that for executable files, the file contains a shebang line. * Checks that for executable `.py` and `.sh` files, the shebang line used matches an allowable list of shebangs (This should replicate the existing `test/lint/lint-shebang.sh` test) * Checks every file that contains a shebang line to ensure it has an executable permission Additionally updates the permissions on various files to comply with the new tests. Fixes #21729 ACKs for top commit: practicalswift: cr re-ACK 46b025e00df40724175735eb5606ac73067cb3b8: patch still looks correct kiminuo: code review ACK 46b025e00df40724175735eb5606ac73067cb3b8 if `contrib/gitian-descriptors/assign_DISTNAME` permission change is deemed OK. laanwj: Code review ACK 46b025e00df40724175735eb5606ac73067cb3b8 Tree-SHA512: 1c8201a2cee0d9cbce15652b68cec9a6458a8b493fcd5392f98560aca0b1a12e668baab65a47100f116f626dadc3f591deb47f7368468c6a46c6c712c2533455
63 lines
2.6 KiB
Bash
Executable File
63 lines
2.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Copyright (c) 2017-2019 The Bitcoin Core developers
|
|
# Distributed under the MIT software license, see the accompanying
|
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
export LC_ALL=C
|
|
#network interface on which to limit traffic
|
|
IF="eth0"
|
|
#limit of the network interface in question
|
|
LINKCEIL="1gbit"
|
|
#limit outbound Dash protocol traffic to this rate
|
|
LIMIT="160kbit"
|
|
#defines the IPv4 address space for which you wish to disable rate limiting
|
|
LOCALNET_V4="192.168.0.0/16"
|
|
#defines the IPv6 address space for which you wish to disable rate limiting
|
|
LOCALNET_V6="fe80::/10"
|
|
|
|
#delete existing rules ('Error: Cannot delete qdisc with handle of zero.' means there weren't any.)
|
|
tc qdisc del dev ${IF} root
|
|
|
|
#add root class
|
|
tc qdisc add dev ${IF} root handle 1: htb default 10
|
|
|
|
#add parent class
|
|
tc class add dev ${IF} parent 1: classid 1:1 htb rate ${LINKCEIL} ceil ${LINKCEIL}
|
|
|
|
#add our two classes. one unlimited, another limited
|
|
tc class add dev ${IF} parent 1:1 classid 1:10 htb rate ${LINKCEIL} ceil ${LINKCEIL} prio 0
|
|
tc class add dev ${IF} parent 1:1 classid 1:11 htb rate ${LIMIT} ceil ${LIMIT} prio 1
|
|
|
|
#add handles to our classes so packets marked with <x> go into the class with "... handle <x> fw ..."
|
|
tc filter add dev ${IF} parent 1: protocol ip prio 1 handle 1 fw classid 1:10
|
|
tc filter add dev ${IF} parent 1: protocol ip prio 2 handle 2 fw classid 1:11
|
|
|
|
if [ -n "${LOCALNET_V6}" ] ; then
|
|
# v6 cannot have the same priority value as v4
|
|
tc filter add dev ${IF} parent 1: protocol ipv6 prio 3 handle 1 fw classid 1:10
|
|
tc filter add dev ${IF} parent 1: protocol ipv6 prio 4 handle 2 fw classid 1:11
|
|
fi
|
|
|
|
#delete any existing rules
|
|
#disable for now
|
|
#ret=0
|
|
#while [ $ret -eq 0 ]; do
|
|
# iptables -t mangle -D OUTPUT 1
|
|
# ret=$?
|
|
#done
|
|
|
|
#limit outgoing traffic to and from port 9999. but not when dealing with a host on the local network
|
|
# (defined by $LOCALNET_V4 and $LOCALNET_V6)
|
|
# --set-mark marks packages matching these criteria with the number "2" (v4)
|
|
# --set-mark marks packages matching these criteria with the number "4" (v6)
|
|
# these packets are filtered by the tc filter with "handle 2"
|
|
# this filter sends the packages into the 1:11 class, and this class is limited to ${LIMIT}
|
|
iptables -t mangle -A OUTPUT -p tcp -m tcp --dport 9999 ! -d ${LOCALNET_V4} -j MARK --set-mark 0x2
|
|
iptables -t mangle -A OUTPUT -p tcp -m tcp --sport 9999 ! -d ${LOCALNET_V4} -j MARK --set-mark 0x2
|
|
|
|
if [ -n "${LOCALNET_V6}" ] ; then
|
|
ip6tables -t mangle -A OUTPUT -p tcp -m tcp --dport 9999 ! -d ${LOCALNET_V6} -j MARK --set-mark 0x4
|
|
ip6tables -t mangle -A OUTPUT -p tcp -m tcp --sport 9999 ! -d ${LOCALNET_V6} -j MARK --set-mark 0x4
|
|
fi
|