summaryrefslogtreecommitdiffstats
path: root/lib/Net
diff options
context:
space:
mode:
authorLibravatarWilliam Heimbigner <william.heimbigner@gmail.com>2016-01-12 15:54:14 -0700
committerLibravatarWilliam Heimbigner <william.heimbigner@gmail.com>2016-01-12 15:54:14 -0700
commit5805d3c2ba935ffb3d6fa0dc53ba5debe2536eda (patch)
tree483968d4e91099f8ef0e8d126e2cbb837a423722 /lib/Net
parent3f75fd1d9273dd744e3d0ec98968401db7e3ae1a (diff)
Added the ability to do connection debugging in Net::IRC without doing full-blown debugging, and made use of that feature in meta.pl. Also fixed the debugging output of Net::IRC to print to STDERR regardless of what debug method is used
Diffstat (limited to 'lib/Net')
-rw-r--r--lib/Net/IRC.pm12
-rw-r--r--lib/Net/IRC/Connection.pm17
2 files changed, 26 insertions, 3 deletions
diff --git a/lib/Net/IRC.pm b/lib/Net/IRC.pm
index d46ae9e..4b93fe1 100644
--- a/lib/Net/IRC.pm
+++ b/lib/Net/IRC.pm
@@ -43,6 +43,7 @@ sub new {
'_connhash' => {},
'_error' => IO::Select->new(),
'_debug' => 0,
+ '_debugsock' => 0,
'_schedulequeue' => new Net::IRC::EventQueue(),
'_outputqueue' => new Net::IRC::EventQueue(),
'_read' => IO::Select->new(),
@@ -115,6 +116,17 @@ sub debug {
return $self->{_debug};
}
+# Sets or returns the socket debugging flag for this object.
+# Takes 1 optional arg: a new boolean value for the flag.
+sub debugsock {
+ my $self = shift;
+
+ if (@_) {
+ $self->{_debugsock} = $_[0];
+ }
+ return $self->{_debugsock};
+}
+
# Goes through one iteration of the main event loop. Useful for integrating
# other event-based systems (Tk, etc.) with Net::IRC.
# Takes no args.
diff --git a/lib/Net/IRC/Connection.pm b/lib/Net/IRC/Connection.pm
index f17bc68..65af574 100644
--- a/lib/Net/IRC/Connection.pm
+++ b/lib/Net/IRC/Connection.pm
@@ -63,6 +63,7 @@ sub new {
my $self = { # obvious defaults go here, rest are user-set
_debug => $_[0]->{_debug},
+ _debugsock => $_[0]->{_debugsock},
_port => 6667,
# Evals are for non-UNIX machines, just to make sure.
_username => eval { scalar getpwuid($>) } || $ENV{USER} || $ENV{LOGNAME} || "japh",
@@ -377,6 +378,16 @@ sub debug {
return $self->{_debug};
}
+# Sets or returns the socket debugging flag for this object.
+# Takes 1 optional arg: a new boolean value for the flag.
+sub debugsock {
+ my $self = shift;
+ if (@_) {
+ $self->{_debugsock} = $_[0];
+ }
+ return $self->{_debugsock};
+}
+
# Dequotes CTCP messages according to ctcp.spec. Nothing special.
# Then it breaks them into their component parts in a flexible, ircII-
@@ -868,7 +879,7 @@ sub parse {
$line =~ s/[\012\015]+$//;
next unless $line;
- print STDERR "<<< $line\n" if $self->{_debug};
+ print STDERR "<<< $line\n" if ($self->{_debug} || $self->{_debugsock});
$::lastline = $line; #this is so __WARN__ can print the last line received on IRC.
# Like the RFC says: "respond as quickly as possible..."
@@ -1396,8 +1407,8 @@ sub sl_real {
}
### DEBUG DEBUG DEBUG
- if ($self->{_debug}) {
- print ">>> $line\n";
+ if ($self->{_debug} || $self->{_debugsock}) {
+ print STDERR ">>> $line\n";
}
# RFC compliance can be kinda nice...