// This plugin checks for clients that talk before we sent a response

exports.register = function() {
    var plugin = this;

    plugin.load_config();

    plugin.register_hook('data', 'early_talker');
};

exports.load_config = function () {
    var plugin = this;
    // config/early_talker.pause is in milliseconds
    plugin.pause = plugin.config.get('early_talker.pause', function () {
        plugin.load_config();
    });
};

exports.early_talker = function(next, connection) {
    var plugin = this;
    if (!plugin.pause      ) { return next(); } // config set to 0
    if (connection.relaying) { return next(); } // Don't pause AUTH/RELAY clients

    setTimeout(function () {
        if (!connection.early_talker) { return next(); }
        next(DENYDISCONNECT, "You talk too soon");
    }, plugin.pause);
};

@@ -600,32 +600,17 @@
 ying) %7B 
-return next(); %7D
+ 
  // Don'
@@ -635,16 +635,205 @@
  clients
+%0A        if (connection.early_talker) %7B%0A            connection.results.add(plugin,%0A                    %7B skip: 'an early talking relaying client?!'%7D);%0A        %7D%0A        return next();%0A    %7D
 %0A%0A    se

move return out of timeout