Commit Graph

94 Commits

Author SHA1 Message Date
Přemysl Eric Janouch 0e51b37411 Optimize and simplify the epoll poller
On my own machine (4096 max FD's), scanning localhost for all services,
there was no change to speak of.  On another one, though, with 65536
max FD's scanning localhost and another machine simultaneously for
a specific service, there was a dramatic speedup allowing much faster
scans, with userspace load dropping to about a quarter of a second.

As a bonus, it makes the code simpler.
2014-09-24 21:39:17 +02:00
Přemysl Eric Janouch 49e7f1798e Get rid of some memory holes on x86_64 2014-09-24 20:28:18 +02:00
Přemysl Eric Janouch 21cab71e75 Fix the epoll poller
Setting the fd to -1 broke poller_remove_from_dispatch().
2014-09-24 19:03:45 +02:00
Přemysl Eric Janouch 89edba14f0 Sort epoll_wait() output earlier 2014-09-24 19:00:09 +02:00
Přemysl Eric Janouch 50e27cf3d8 Order the results by port 2014-09-24 18:59:55 +02:00
Přemysl Eric Janouch 734931d84f Fix the hotspot
Valgrind seems to be quite happy with it now.
2014-09-24 01:02:09 +02:00
Přemysl Eric Janouch bdb3b9b959 Identified a hot-spot 2014-09-24 00:20:20 +02:00
Přemysl Eric Janouch 9df79e3637 Update the README 2014-09-24 00:11:44 +02:00
Přemysl Eric Janouch 53b717c454 Avoid spinning in a loop
This also helps reduce a lot of noice in strace.
2014-09-24 00:11:44 +02:00
Přemysl Eric Janouch eee873e373 Implement idle events 2014-09-24 00:11:44 +02:00
Přemysl Eric Janouch 19491375f3 Formatting
No idea how this happened.
2014-09-24 00:11:40 +02:00
Přemysl Eric Janouch 1f9f9b9a39 Simplify the plugin API 2014-09-23 22:59:01 +02:00
Přemysl Eric Janouch f9d6627456 Don't initialize the service before connecting 2014-09-23 21:12:40 +02:00
Přemysl Eric Janouch 0da95bf1c8 Fix str_append_data()
`void *' is more appropriate here.
2014-09-23 20:41:47 +02:00
Přemysl Eric Janouch 7ee3bbc86b Fix on_unit_ready()
Got it wrong and lighttpd doesn't have any mercy.
2014-09-23 20:41:47 +02:00
Přemysl Eric Janouch 903f7d128a Show some stats at the end 2014-09-21 03:55:58 +02:00
Přemysl Eric Janouch fa2780a40d Fix the TLS/SSL transport 2014-09-21 03:43:14 +02:00
Přemysl Eric Janouch aeb1012997 Group the output properly
Somehow I must have forgotten about transports at some point.
2014-09-21 03:29:36 +02:00
Přemysl Eric Janouch d18224cc65 Fix terminal output for multiple ports per service 2014-09-21 03:29:36 +02:00
Přemysl Eric Janouch 6542353dae Fix output of results for multiple services 2014-09-21 03:29:35 +02:00
Přemysl Eric Janouch 6c90cc85db Fix the IRC plugin, and not only that 2014-09-21 03:29:35 +02:00
Přemysl Eric Janouch e7d8b244a9 TLS transport: output some certificate information 2014-09-21 03:29:27 +02:00
Přemysl Eric Janouch d453a1226c HTTP: initialize `http_settings' statically 2014-09-21 01:12:15 +02:00
Přemysl Eric Janouch 82a125a3c3 Fix error message 2014-09-21 01:08:20 +02:00
Přemysl Eric Janouch 7a7c32aec0 Add a header guard
I've nearly forgotten what those are.
2014-09-21 01:06:47 +02:00
Přemysl Eric Janouch 49aceb664e Update the README 2014-09-21 01:02:22 +02:00
Přemysl Eric Janouch 47aaedd26a Implement the HTTP plugin
Ended up including Joyent's http-parser library.
2014-09-21 01:02:16 +02:00
Přemysl Eric Janouch 2b74a18833 Implement more of the services
- SSH: ready for action
 - IRC: ready for action
 - HTTP: needs some work
2014-09-20 22:03:55 +02:00
Přemysl Eric Janouch b9571ec01f Filter out any garbage in the scan output 2014-09-20 18:28:08 +02:00
Přemysl Eric Janouch 38a0077033 Generate a manpage
help2man should be enough so far.
2014-09-20 18:12:55 +02:00
Přemysl Eric Janouch 01c2bfa5a4 Fix timers
Fucking hell.  We're still having some event scheduling issues.
2014-09-20 01:59:41 +02:00
Přemysl Eric Janouch 97bcad8a03 Save a syscall per connection 2014-09-20 00:08:23 +02:00
Přemysl Eric Janouch 457eff90e3 Rework the poller
It's about time we stopped fucking ourselves in the butt.

The scanning should be much faster now.

Thanks to libuv for inspiration.
2014-09-19 23:44:00 +02:00
Přemysl Eric Janouch 6f1bc52711 Raise the file descriptor limit to the maximum 2014-09-19 09:20:14 +02:00
Přemysl Eric Janouch 4662e84995 First set of fixes
There are still some problems but at least it does something now.
2014-09-19 01:02:26 +02:00
Přemysl Eric Janouch 64fa986cd0 Implement the indicator etc. 2014-09-18 21:01:42 +02:00
Přemysl Eric Janouch 0a7ff1d638 Add regular tree-like output
This ended up rather nice.
2014-09-17 23:27:00 +02:00
Přemysl Eric Janouch 06785ea4e1 JSON output support
This was rather simple.
2014-09-17 23:22:02 +02:00
Přemysl Eric Janouch 7d3f0ca4c8 Even more stuff
Some reorganisation has taken place.
2014-09-14 22:45:12 +02:00
Přemysl Eric Janouch 215891a8ee More stuff
- renamed *_func to *_fn
 - some initial code for the indicator (needs curses)
 - moved option handler to utils
 - more work on unit generation & processing
2014-09-14 00:28:50 +02:00
Přemysl Eric Janouch 1bc2e22167 Stuff 2014-09-12 23:28:33 +02:00
Přemysl Eric Janouch a133946688 Write stubs for the plugins
Make them compile.
2014-09-11 08:10:33 +02:00
Přemysl Eric Janouch 241bc64a11 Random crystallisation
Don't worry, there will be better commit messages eventually.
2014-09-10 23:14:53 +02:00
Přemysl Eric Janouch b418bfe22c Initial commit
Nothing's working yet, only some supporting code has been put in place.
2014-09-08 21:40:01 +02:00