use strict;
use warnings;
-use List::Util qw/max/;
-use Locale::Country qw/code2country/;
+use List::Util qw<max>;
+use Locale::Country qw<code2country>;
-use Xchat qw/:all/;
+use Xchat qw<:all>;
use lib get_info 'xchatdir';
use Xchat::XPI;
-use Xchat::XPI::Net qw/resolve whois/;
+use Xchat::XPI::Net qw<resolve whois>;
+use Xchat::XPI::Utils qw<save_context>;
our $VERSION = '0.02';
sub dig_print {
my $p = $_[0];
my ($context, $req) = @{$_[1]};
- my $oldctxt = get_context;
+ my $guard = save_context;
set_context $context;
if ($p) {
my @a = $p->answer;
} else {
output '*', 'Resolution failed for ' . $req->{host},
map {
- $_->mname . ' IN SOA ' . $_->rname . "\n",
+ $_->mname . ' IN SOA ' . $_->rname . "\n",
join ' ', 'serial:' . $_->serial, 'ref:' . $_->refresh,
'ret:' . $_->retry, 'exp:' . $_->expire,
'min:' . $_->minimum . "\n";
} else {
print $ph 'Request ' . $req->{host} . " timed out\n";
}
- set_context $oldctxt;
}
hook_command 'NETWHOIS', sub {
my $info = user_info $_;
my $req = parse_url($info ? $info->{host} : $_);
whois $req->{host}, \&netwhois_print, [ $context, $req ];
- }
- return EAT_ALL;
+ }
+ return EAT_ALL;
}, {
help_text => 'NETWHOIS <ip(s)/hostname(s)>, retrieve domain/ip information'
};
sub netwhois_print {
my $raw = $_[0];
my ($context, $req) = @{$_[1]};
- my $oldctxt = get_context;
+ my $guard = save_context;
set_context $context;
if ($raw) {
$raw =~ s/.*(Domain|inetnum)/$1/s;
} else {
output '*', 'No results for ' . $req->{host};
}
- set_context $oldctxt;
}
hook_command 'TLD', sub {
next unless $tld;
my $name = code2country $tld;
print $ph $tld . ' is ' . ($name ? $name : 'unknown') . "\n";
- }
+ }
return EAT_ALL;
}, {
help_text => 'TLD <hostname(s)>, give the TLD text representation of the hosts'
};
-$ph = new Xchat::XPI name => 'Networking tools',
- tag => 'Net',
- desc => 'DNS & Whois clients, TLD names',
- author => 'Vincent Pit (VPIT)',
- email => 'perl@profvince.com',
- url => 'http://www.profvince.com';
+$ph = Xchat::XPI->new(
+ name => 'Networking tools',
+ tag => 'Net',
+ desc => 'DNS & Whois clients, TLD names',
+ author => 'Vincent Pit (VPIT)',
+ email => 'perl@profvince.com',
+ url => 'http://www.profvince.com',
+);
1;