What Eric and Zakir said
Adding radix support to constraints

This allows us to lookup an index -> ip address much faster
(16 seconds for ~3.7 billion addresses with sparse blacklist,
vs 65 sec before radix array).

Setting the PREFIX_LEN to /20, as this appears to give a good tradeoff
between radix population time (<1ms), runtime (16s), and memory footprint (4MB).
add blacklist_lookup_index proto
constraints stores network order; we want to return host order
have cyclic use blacklist_lookup_index
Support multiple cyclic groups for smaller subnets

We will choose the first one in the list that is large enough to support
the number of hosts chosen. This speeds up scanning small networks considerably:
e.g. /16s can be scanned in <200ms (+ cooldown)
demote spurious log_infos to log_debug
Merge branch 'fast-whitelist' of github.com:zmap/zmap
Convert plain Makefile into cmake

The package can be configured with 4 different options:

-DWITH_REDIS=ON

Enable support for Redis DB

-DWITH_JSON=ON

Enable support for JSON based output

-DENABLE_DEVELOPMENT=ON

Enable all warnings and make them fatal

-DENABLE_HARDENING=ON

Compile and link with some hardening

Use the new system by creating a build directory and change into that.
And then call the following

cmake -DWITH_REDIS=OFF -DWITH_JSON=ON -DENABLE_DEVELOPMENT=ON -DENABLE_HARDENING=ON /path/to/source/dir/
make
make DESTDIR="/..." install

Signed-off-by: Justin Lecher <jlec@gentoo.org>

Merged by David Adrian
- Remove src/Makefile
- Updated .gitignore for CMake
Finish moving zmap to CMake

- Generalize libjson support in CMakeLists
- Remove zopt.h, zopt.c from the repository
Initial import of filter parser

Current runs as its own program, partially implemented.
Commiting for the sake of sharing access / backup.
Still needs a lot of work.
Move filter files into src/

- Makefile still needs work, is not compiling
Mildly working build process with argument parsing
Add support for holding an index instead of fieldname
Incredibly hacky evaluate implementation
Drop packets that don't pass the filter in recv
change INSTALL to document cmake
I care more about users than attacking governments

I'll bet the users would agree with this default as well. Arguably,
this shouldn't even be an option???
testing on 32-bit system
Use a union in fieldset->value

Instead of unreliably casting uint64_t's to (void *)