# # Shorewall -- /usr/share/shorewall/action.SetEvent # # Set an Event # # Parameters: # # Event - Must start with a letter and be composed of letters, digits, # '-', and '_'. # Action - Action to perform after setting the event. Default is ACCEPT # Src or Dest - 'src' (default) or 'dst'. Determines if the event is # associated with the source address (src) or destination # address (dst) # Disposition - Disposition for any event generated. # # For additional information, see https://shorewall.org/Events.html # DEFAULTS -,ACCEPT,src ?begin perl use Shorewall::Config; use Shorewall::Chains; use Shorewall::Rules; use strict; my ( $event, $action, $destination, $disposition ) = get_action_params( 4 ); require_capability 'RECENT_MATCH', 'Use of events', 's'; require_capability 'MARK_ANYWHERE', 'Use of events', 's'; fatal_error "An event name is required" unless supplied $event; fatal_error "Invalid event name ($event)" unless $event =~ /^[a-zA-z][-\w]*$/; fatal_error "Invalid Src or Dest ($destination)" unless $destination =~ /^(?:src|dst)$/; set_action_disposition( $disposition) if supplied $disposition; set_action_name_to_caller; if ( ( $targets{$action} || 0 ) & NATRULE ) { perl_action_helper( "${action}-", "" ); $action = 'ACCEPT'; } if ( $destination eq 'dst' ) { perl_action_helper( $action, '', '', "-m recent --name $event --set --rdest" ); } else { perl_action_helper( $action, '', '', "-m recent --name $event --set --rsource" ); } 1; ?end perl