From df2b9fa16ecfab111bec463f014c1fcc5b69d5a1 Mon Sep 17 00:00:00 2001 From: Elijah Perrault Date: Tue, 1 Feb 2011 22:01:33 -0700 Subject: [PATCH] This should fix a socket timeout issue. --- bin/auto | 7 +++++-- src/Parser/IRC.pm | 8 ++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/bin/auto b/bin/auto index de7d076..e64b61b 100755 --- a/bin/auto +++ b/bin/auto @@ -100,7 +100,8 @@ println <<'EOF'; EOF println "* ".NAME." (version ".VER.".".SVER.".".REV.RSTAGE.") is starting up..."; -our ($APID, %TIMERS); +our ($APID, %TIMERS, $SOCKTIMEOUT); +$SOCKTIMEOUT = 0; # Check for debug mode. our $DEBUG = 0; @@ -272,6 +273,8 @@ foreach my $cskey (keys %cservers) { API::IRC::nick($cskey, $cservers{$cskey}{'nick'}[0]); # Add to select. $SELECT->add($SOCKET{$cskey}); + # Set some other variables. + $Parser::IRC::got_001{$cskey} = 0; # Success! alog "** Successfully connected to server: ".$cskey; dbug "** Successfully connected to server: ".$cskey; @@ -316,7 +319,7 @@ while (1) { } } # Socket check. - foreach my $sock ($SELECT->can_read(1)) { + foreach my $sock ($SELECT->can_read($SOCKTIMEOUT)) { # Figure out what network is sending us data. my $sockid; foreach (keys %SOCKET) { diff --git a/src/Parser/IRC.pm b/src/Parser/IRC.pm index f3390ab..0c8691d 100644 --- a/src/Parser/IRC.pm +++ b/src/Parser/IRC.pm @@ -85,6 +85,14 @@ sub num001 my ($svr, @ex) = @_; $got_001{$svr} = 1; + my $stst = 1; + foreach (keys %got_001) { + if (!$got_001{$_}) { + $stst = 0; + last; + } + } + $Auto::SOCKTIMEOUT = 1 if $stst; # In case we don't get NICK from the server. if (defined $botnick{$svr}{newnick}) {