fail2ban.server.asyncserver module

class fail2ban.server.asyncserver.AsyncServer(transmitter)

Bases: dispatcher

Attributes:
addr

Methods

isActive()

accept

add_channel

bind

close

connect

create_socket

del_channel

handle_accept

handle_accepted

handle_close

handle_connect

handle_connect_event

handle_error

handle_expt

handle_expt_event

handle_read

handle_read_event

handle_write

handle_write_event

listen

log

log_info

readable

recv

send

set_reuse_addr

set_socket

start

stop

stop_communication

writable

close()
handle_accept()
isActive()
start(sock, force, timeout=None, use_poll=False)
stop()
stop_communication()
writable()
exception fail2ban.server.asyncserver.AsyncServerException

Bases: Exception

class fail2ban.server.asyncserver.RequestHandler(conn, transmitter)

Bases: async_chat

Attributes:
addr

Methods

LoadError

close_when_done()

automatically close this channel once the outgoing queue is empty

handle_error()

readable()

predicate for inclusion in the readable for select()

set_terminator(term)

Set the input delimiter.

writable()

predicate for inclusion in the writable for select()

accept

add_channel

bind

close

collect_incoming_data

connect

create_socket

del_channel

discard_buffers

found_terminator

get_terminator

handle_accept

handle_accepted

handle_close

handle_connect

handle_connect_event

handle_expt

handle_expt_event

handle_read

handle_read_event

handle_write

handle_write_event

initiate_send

listen

log

log_info

push

push_with_producer

recv

send

set_reuse_addr

set_socket

exception LoadError

Bases: Exception

collect_incoming_data(data)
found_terminator()
handle_close()
handle_error()
fail2ban.server.asyncserver.loop(active, timeout=None, use_poll=False, err_count=None)

Custom event loop implementation

Uses poll instead of loop to respect active flag, to avoid loop timeout mistake: different in poll and poll2 (sec vs ms), and to prevent sporadic errors like EBADF ‘Bad file descriptor’ etc. (see gh-161)