1
0
Fork 0
mirror of https://github.com/perlbot/perlbuut synced 2025-06-07 10:35:41 -04:00

Update with latest changes

This commit is contained in:
Ryan Voots 2019-01-23 23:56:53 -05:00
parent 2438d64025
commit b2c0569ddb
5 changed files with 47 additions and 21 deletions

View file

@ -2,36 +2,43 @@
set -e
set -u
set -x
ip netns delete evalserver >& /dev/null && echo "Removed old evalserver namespace" || echo "No evalserver namespace yet"
ip link delete evalserver-public type veth >& /dev/null && echo "Removed old evalserver veth device" || echo "No evalserver veth device yet"
ip link delete evals-public type veth >& /dev/null && echo "Removed old evalserver veth device" || echo "No evalserver veth device yet"
ip netns add evalserver
ip link add evalserver-private type veth peer name evalserver-public
ip link set evalserver-private netns evalserver
ip link add evals-private type veth peer name evals-public
ip link set evals-private netns evalserver
sleep 1
ip addr add 192.168.197.1/24 dev evalserver-public
ip link set evalserver-public up
ip addr add 192.168.197.1/24 dev evals-public
ip link set evals-public up
ip netns exec evalserver ip link set dev lo up
ip netns exec evalserver ip addr add 192.168.197.2/24 dev evalserver-private
ip netns exec evalserver ip link set evalserver-private up
ip netns exec evalserver ip addr add 192.168.197.2/24 dev evals-private
ip netns exec evalserver ip link set evals-private up
ip netns exec evalserver ip route add default via 192.168.197.1
iptables -N EVALSERVER-FORWARD || iptables -F EVALSERVER-FORWARD
iptables -t nat -N EVALSERVER-POST || iptables -t nat -F EVALSERVER-POST
iptables -N EVALSERVER-OUTPUT || iptables -F EVALSERVER-OUTPUT
iptables -t nat -N EVALSERVER-OUTPUT || iptables -t nat -F EVALSERVER-OUTPUT
iptables -A EVALSERVER-FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A EVALSERVER-FORWARD -i evalserver-public -d 192.168.32.1 -j ACCEPT
iptables -A EVALSERVER-FORWARD -i evalserver-public -d 192.168.197.0/24 -j ACCEPT
iptables -A EVALSERVER-FORWARD -i evalserver-public -d 192.168.0.0/16 -j REJECT
iptables -A EVALSERVER-FORWARD -i evalserver-public -d 10.0.0.0/8 -j REJECT
#iptables -A EVALSERVER-FORWARD -i evals-public -d 192.168.32.1 -j ACCEPT
iptables -A EVALSERVER-FORWARD -i evals-public -d 192.168.197.0/24 -j ACCEPT
iptables -A EVALSERVER-FORWARD -i evals-public -d 192.168.0.0/16 -j REJECT
iptables -A EVALSERVER-FORWARD -i evals-public -d 10.0.0.0/8 -j REJECT
#iptables -t nat -A EVALSERVER-POST -s 192.168.196.0/24 -d 192.168.196.0/24 -j ACCEPT
#iptables -t nat -A EVALSERVER-POST -s 192.168.196.0/24 -o evalserver-public -j MASQUERADE
iptables -t nat -A EVALSERVER-POST -s 192.168.197.0/24 -o evals-public
iptables -A EVALSERVER-OUTPUT -d 192.168.197.1/32 -p tcp -m tcp --dport 9040 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
iptables -t nat -A EVALSERVER-OUTPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -s 192.168.197.0/24 -d !192.168.197.0/24 --j REDIRECT --to-ports 9040
iptables -t filter -D FORWARD -j EVALSERVER-FORWARD || echo "No filter chain loaded"
#iptables -t nat -D POSTROUTING -j EVALSERVER-POST || echo "No nat chain loaded"
#iptables -t nat -A POSTROUTING -j EVALSERVER-POST
iptables -t filter -I FORWARD 1 -j EVALSERVER-FORWARD
iptables -t filter -I OUTPUT 1 -j EVALSERVER-OUTPUT

View file

@ -49,7 +49,7 @@ requires 'MooseX::Declare';
requires 'Function::Parameters';
requires 'Rand::MersenneTwister';
requires 'arybase';
# requires 'arybase'; # removed in 5.29
requires 'Errno';
requires 'JSON';
requires 'JSON::PP';
@ -147,3 +147,6 @@ requires 'Array::Utils';
requires 'DBD::SQLite';
requires 'Mojo::SQLite';
requires 'FFI::Platypus';
requires 'Perl6::Take';
requires 'List::AllUtils';
requires 'IRC::FromANSI::Tiny';

View file

@ -17,7 +17,7 @@ package
sub {
my( $said ) = @_;
my $ua = LWP::UserAgent->new( agent => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36" );
my $ua = LWP::UserAgent->new( agent => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko, really Perlbot) Chrome/45.0.2454.85 Safari/537.36" );
my $url;

View file

@ -52,13 +52,18 @@ sub command {
my $url = "";
if ($said->{body} =~ /-q\s+(.*?)\s*(?:#.*)?/i) #faq questions
if ($said->{body} =~ /-(q|s)\s+(.*?)\s*(?:#.*)?\s*$/i) #faq questions
{#http://perldoc.perl.org/search.html?q=foo+bar
my $trimmed = $1;
my ($oper, $trimmed) = ($1, $2);
$trimmed =~ s/^\s*(\S+)\s*$/$1/;
my $query = uri_encode($trimmed);
my $query = uri_encode($trimmed, {"encode_reserved" => 1});
$query =~ s/%20/+/g;
if ($oper eq 'q') {
$url = "https://perldoc.pl/search?no_redirect=1&q=".$query."#FAQ";
} else {
$url = "https://perldoc.pl/search?q=".$query;
}
# $url = makeashorterlink($url);
}
elsif ($said->{body} =~ /-f\s+(\S+)\s*/i) #functions, only use the first part of a multiword expression
@ -67,7 +72,7 @@ sub command {
my $func = $1;
$func =~ s/^\s*(.*)\s*$/$1/; #trim whitespace
$func = lc($func); #all functions are lowercase, except the exception below
#$func = lc($func); #all functions are lowercase, except the exception below
$func = "-X" if ($func eq "-x"); #only case where it isn't lowercase, its easier to test at this point

View file

@ -36,7 +36,7 @@ sub make_pastebin {
}
}
my @versions = ('', qw(1 2 3 4 5.0 5.1 5.2 5.3 5.4 5.5 5.6 5.6t 5.8 5.10 5.12 5.14 5.16 5.18 5.20 5.22 5.24 5.26 5.26t 5.28 all));
my @versions = ('', qw(1 2 3 4 5.0 5.1 5.2 5.3 5.4 5.5 5.6 5.6t 5.8 5.8.8 5.10 5.10.0 5.12 5.14 5.16 5.18 5.20 5.22 5.24 5.26 5.28 5.8t 5.10t 5.12t 5.14t 5.16t 5.18t 5.20t 5.22t 5.24t 5.26t 5.28 tall all));
sub new {
my( $class ) = @_;
@ -142,6 +142,17 @@ sub command {
$resultstr = make_pastebin($said->{channel}, $code);
}
# clean up the output of @INC and friends.
$resultstr =~ s|/home/ryan/perl5/perlbrew/perls/perlbot-blead-[^/]+|\$BLEAD|g;
$resultstr =~ s|/perl5/perlbrew/perls/perlbot-blead-[^/]+|\$BLEAD|g;
$resultstr =~ s|/home/ryan/perl5/perlbrew/perls|\$PERLS|g;
$resultstr =~ s|/perl5/perlbrew/perls|\$PERLS|g;
if ($type eq 'perl6' || $type eq 'bash') {
use IRC::FromANSI::Tiny;
$resultstr = IRC::FromANSI::Tiny::convert($resultstr);
}
$resultstr =~ s/^(\x00)+//g;