1
0
Fork 0
mirror of https://github.com/perlbot/perlbuut synced 2025-06-07 17:05:43 -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 -e
set -u set -u
set -x
ip netns delete evalserver >& /dev/null && echo "Removed old evalserver namespace" || echo "No evalserver namespace yet" 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 netns add evalserver
ip link add evalserver-private type veth peer name evalserver-public ip link add evals-private type veth peer name evals-public
ip link set evalserver-private netns evalserver ip link set evals-private netns evalserver
sleep 1 sleep 1
ip addr add 192.168.197.1/24 dev evalserver-public ip addr add 192.168.197.1/24 dev evals-public
ip link set evalserver-public up ip link set evals-public up
ip netns exec evalserver ip link set dev lo 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 addr add 192.168.197.2/24 dev evals-private
ip netns exec evalserver ip link set evalserver-private up ip netns exec evalserver ip link set evals-private up
ip netns exec evalserver ip route add default via 192.168.197.1 ip netns exec evalserver ip route add default via 192.168.197.1
iptables -N EVALSERVER-FORWARD || iptables -F EVALSERVER-FORWARD iptables -N EVALSERVER-FORWARD || iptables -F EVALSERVER-FORWARD
iptables -t nat -N EVALSERVER-POST || iptables -t nat -F EVALSERVER-POST 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 -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 evals-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 evals-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 evals-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 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 -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 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 -D POSTROUTING -j EVALSERVER-POST || echo "No nat chain loaded"
#iptables -t nat -A POSTROUTING -j EVALSERVER-POST #iptables -t nat -A POSTROUTING -j EVALSERVER-POST
iptables -t filter -I FORWARD 1 -j EVALSERVER-FORWARD 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 'Function::Parameters';
requires 'Rand::MersenneTwister'; requires 'Rand::MersenneTwister';
requires 'arybase'; # requires 'arybase'; # removed in 5.29
requires 'Errno'; requires 'Errno';
requires 'JSON'; requires 'JSON';
requires 'JSON::PP'; requires 'JSON::PP';
@ -147,3 +147,6 @@ requires 'Array::Utils';
requires 'DBD::SQLite'; requires 'DBD::SQLite';
requires 'Mojo::SQLite'; requires 'Mojo::SQLite';
requires 'FFI::Platypus'; requires 'FFI::Platypus';
requires 'Perl6::Take';
requires 'List::AllUtils';
requires 'IRC::FromANSI::Tiny';

View file

@ -17,7 +17,7 @@ package
sub { sub {
my( $said ) = @_; 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; my $url;

View file

@ -52,13 +52,18 @@ sub command {
my $url = ""; 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 {#http://perldoc.perl.org/search.html?q=foo+bar
my $trimmed = $1; my ($oper, $trimmed) = ($1, $2);
$trimmed =~ s/^\s*(\S+)\s*$/$1/; $trimmed =~ s/^\s*(\S+)\s*$/$1/;
my $query = uri_encode($trimmed); my $query = uri_encode($trimmed, {"encode_reserved" => 1});
$query =~ s/%20/+/g; $query =~ s/%20/+/g;
$url = "https://perldoc.pl/search?q=".$query;
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); # $url = makeashorterlink($url);
} }
elsif ($said->{body} =~ /-f\s+(\S+)\s*/i) #functions, only use the first part of a multiword expression 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; my $func = $1;
$func =~ s/^\s*(.*)\s*$/$1/; #trim whitespace $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 $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 { sub new {
my( $class ) = @_; my( $class ) = @_;
@ -142,6 +142,17 @@ sub command {
$resultstr = make_pastebin($said->{channel}, $code); $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; $resultstr =~ s/^(\x00)+//g;