blechschmidt / massdns

A high-performance DNS stub resolver for bulk lookups and reconnaissance (subdomain enumeration)
GNU General Public License v3.0
3.1k stars 459 forks source link

Installation error #25

Closed h1hakz closed 6 years ago

h1hakz commented 6 years ago

HI,

I am getting the error below while compiling the file after cloning from git. Please help.

$ make mkdir -p bin cc -O3 -std=c11 -Wall -fstack-protector-strong *.c -o bin/massdns -ldl In file included from main.c:7: ./massdns.h:7:10: fatal error: 'sys/epoll.h' file not found

include <sys/epoll.h>

     ^~~~~~~~~~~~~

1 error generated. make: *** [all] Error 1

blechschmidt commented 6 years ago

What OS are you using? Currently, MassDNS only runs on Linux because it makes use of epoll for I/O event notification which is specific to Linux. Maybe version 0.2, making use of busy polling, works for you.

sa7mon commented 6 years ago

Had the same error trying to run it in MacOS. Apparently OSX doesn't have epoll but does have kqueue which is similar.

blechschmidt commented 6 years ago

I have added a nolinux target to the Makefile. It unsets some directives that cause massdns to be built with epoll support. I tested it on FreeBSD, which does not support epoll, and it appears to work. However, it is based on busy-wait polling. I might eventually implement kqueue support or switch to a multi-platform library like libuv. Now that I have added OS-specific preprocessor definitions, making use of the features of autotools or cmake would be appropriate as well, but don't expect any of this to happen soon.

Maybe you can test whether the latest commits fix the issue for your operating systems.

sa7mon commented 6 years ago

Thanks for doing that. I can now successfully run make nolinux and get a binary in the bin folder.

I tried running: ./bin/massdns -r lists/resolvers.txt -t AAAA -w results.txt test.txt as the readme suggest with only google.com in test.txt and it gave me: Error sending: Invalid argument. Is this user error?

blechschmidt commented 6 years ago

I am sorry. I fixed a copy and paste error in the last commit. Does this fix the error for you?

I have also removed the log output in case the "error" results from EAGAIN or EWOULDBLOCK for non-blocking sockets in another commit. Are your results fine or is results.txt empty?

sa7mon commented 6 years ago

Still get the same error and results.txt is empty

blechschmidt commented 6 years ago

Should have been fixed by 050c85bade02e471db7820df82d3b387721a2963. Can you confirm?

sa7mon commented 6 years ago

Nope, still getting the same issue. I've posted a recording here in case you'd like more insight into what's happening on my end.

blechschmidt commented 6 years ago

Unfortunately, I could not reproduce the issue on a Mac when compiling the newest commit. However, I was able to reproduce the issue with versions before 050c85bade02e471db7820df82d3b387721a2963. Would you mind posting the contents of your resolvers file and the exact command (including all parameters) you are using in order to start massdns? Is it possible that your resolver file contains IPv6 resolvers with IPv6 being disabled on your system?

sa7mon commented 6 years ago

Aha! It works. I'm fairly certain it was user error the last time. I think I pulled the updates but didn't re-make the binary.

Works perfectly now, thanks for dealing with me.

kirtiso commented 6 years ago

hello, can i install massdns on windows7????if yes then what is command for installing?

blechschmidt commented 6 years ago

In order to run it on Windows, install Cygwin including the gcc-core, git and make packages. Open the Cygwin terminal, clone the repository and build it using make nolinux.

I will close this issue now because the OP has not answered for more than three months. Given that I was able to compile massdns on Windows and Mac, I assume that it is fixed now.