# Below we forbid everything and only allow what we know, that's much easier
# than blocking about 500 different test files and bug report outputs.
/.*
/*
!/.cirrus.yml
!/.gitattributes
!/.github
!/.gitignore
!/.travis.yml
!/CHANGELOG
!/LICENSE
!/BRANCHES
!/Makefile
!/README
!/INSTALL
!/CONTRIBUTING
!/MAINTAINERS
!/ROADMAP
!/SUBVERS
!/VERDATE
!/VERSION
!/contrib
!/dev
!/doc
!/ebtree
!/examples
!/include
!/src
!/tests
!/debian
!/scripts
!/reg-tests
# Reject some generic files
*.o
*.a
*~
*.rej
*.orig
*.bak
# And reject some specific files
/contrib/halog/halog
/contrib/ip6range/ip6range
/contrib/iprange/iprange
/contrib/systemd/haproxy.service
/contrib/spoa_example/spoa
dev/base64/base64rev-gen
dev/flags/flags
dev/poll/poll
dev/tcploop/tcploop
dev/hpack/decode
dev/hpack/gen-rht
contrib/mod_defender/defender
contrib/modsecurity/modsecurity
/src/dlmalloc.c
/tests/test_hashes
