Added RubyDNS to Gemfile and core/loader.rb.
Started basic DNS extension. Currently does nothing.
Implemented basic nameserver and configured it to run on BeEF startup.
It's worth noting that RubyDNS currently displays a lot of messy
output. This needs to be addressed before moving any further.
Fixed thread issue that occasionally caused BeEF to stop immediately.
While using sleep() to fix thread complications is never a great
solution, it gets the job done for now.
Changed output format for RubyDNS to be "BeEF-compliant".
RubyDNS's logger now uses BeEF's print-related functions. Debug
messages regarding queries can be enabled using --verbose.
Resolved DNS thread issue using EM::next_tick() instead of sleep().
Made BeEF::Extension::DNS::DNS into a singleton object.
This ensures that all modules/extensions that add new RR's
refer to a single server instance.
Added new definition for Logger#warn.
Demoted UPSTREAM from constant to local variable. Minimizes scope.
Overrode RubyDNS::Transaction.respond! to use debug logger instead.
Now all RubyDNS output is properly disabled unless --verbose is given.
Added DNS database model to load resource records from.
Now modules/extensions can dynamically add new RR's. However, changes
don't take effect until BeEF restarts (fix incoming).
New DNS entries can now be added dynamically without a server restart.
Database is checked every five seconds and adds new rules if there
were any changes.
Documented run_server() and add_rule().
Began implementing new method of adding rules without periodic timer.
Also added improved documentation for add_rule() and remove_rule().
Marked add_rule() and remove_rule() as critical sections.
Mutual exclusion is imperative here since other modules/extenions may
be simultaneously adding/removing rules, thus putting the value of
@next_id at risk of becoming inconsistent.
Removed parse_response() since it's no longer needed.
Added database support when adding/removing rules.
Needed to add 'sourcify' as a dependency in order to store code blocks
in the database.
Updated README to mention rubydns and sourcify dependencies.
Removed load_rules() and parse_type() since they're unused.
Removed RubyDNS::Server#rules attribute accessor since it's unused.