class FFWD::Tunnel::UDP

Attributes

log[R]

Public Class Methods

new(port, core, plugin, log, connection, args) click to toggle source
# File lib/ffwd/tunnel/udp.rb, line 34
def initialize port, core, plugin, log, connection, args
  @port = port
  @core = core
  @plugin = plugin
  @log = log
  @connection = connection
  @args = args

  @instance = nil

  starting do
    @instance = @connection.new(nil, self, @core, *@args)

    @plugin.udp @port do |handle, data|
      @instance.datasink = handle
      @instance.receive_data data
      @instance.datasink = nil
    end

    @log.info "Tunneling udp/#{@port}"
  end

  stopping do
    if @instance
      @instance.unbind
      @instance = nil
    end

    @log.info "Stopped tunnelling udp/#{@port}"
  end
end