Method: Netfilter::Log#process

Defined in:
lib/nflog.rb

#process(&callback) ⇒ Object

Processes logged packets, passing them through the provided callback.

Raises:



372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
# File 'lib/nflog.rb', line 372

def process(&callback)
    @callback = callback

    fd = Log.nflog_fd(@nflog_handle)
    raise LogError, "nfq_fd has failed" if fd < 0

    io = IO.new(fd)
    io.autoclose = false

    begin
        while data = io.sysread(4096)
            Log.nflog_handle_packet(@nflog_handle, data, data.size)
        end
    ensure
        io.close
    end
end