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:
parent
2438d64025
commit
b2c0569ddb
5 changed files with 47 additions and 21 deletions
|
@ -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
|
||||||
|
|
5
cpanfile
5
cpanfile
|
@ -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';
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue