X-Git-Url: https://git.sommitrealweird.co.uk/twirssi-net-twitter-lite.git/blobdiff_plain/ed4dc7bc324f52c0d89f2c9040b4a410d5571ec0..e7f88ffa156056068113ba9db9cc67cf9e41dd5f:/twirssi.pl diff --git a/twirssi.pl b/twirssi.pl index 2c9c787..92f60b6 100644 --- a/twirssi.pl +++ b/twirssi.pl @@ -11,7 +11,7 @@ $Data::Dumper::Indent = 1; use vars qw($VERSION %IRSSI); -$VERSION = "2.2.5"; +$VERSION = "2.2.6beta"; my ($REV) = '$Rev: 687 $' =~ /(\d+)/; %IRSSI = ( authors => 'Dan Boger', @@ -38,6 +38,7 @@ my %tweet_cache; my %id_map; my $failwhale = 0; my $first_call = 1; +my $child_pid; my %irssi_to_mirc_colors = ( '%k' => '01', @@ -504,7 +505,9 @@ sub cmd_login { return; } - if ( my $timeout = Irssi::settings_get_int("twitter_timeout") and $twit->can('ua')) { + if ( my $timeout = Irssi::settings_get_int("twitter_timeout") + and $twit->can('ua') ) + { $twit->ua->timeout($timeout); } @@ -547,6 +550,13 @@ sub cmd_login { return 1; } else { ¬ice("Login failed"); + if ( not Irssi::settings_get_bool("twirssi_avoid_ssl") ) { + ¬ice( + "It's possible you're missing one of the modules required for " + . "SSL logins. Try setting twirssi_avoid_ssl to on. See " + . "http://cpansearch.perl.org/src/GAAS/libwww-perl-5.831/README.SSL " + . "for the detailed requirements." ); + } } } @@ -774,13 +784,13 @@ sub get_updates { my ( $fh, $filename ) = File::Temp::tempfile(); binmode( $fh, ":utf8" ); - my $pid = fork(); + $child_pid = fork(); - if ($pid) { # parent + if ($child_pid) { # parent Irssi::timeout_add_once( 5000, 'monitor_child', [ "$filename.done", 0 ] ); - Irssi::pidwait_add($pid); - } elsif ( defined $pid ) { # child + Irssi::pidwait_add($child_pid); + } elsif ( defined $child_pid ) { # child close STDIN; close STDOUT; close STDERR; @@ -1221,6 +1231,9 @@ sub monitor_child { } $last_poll = $new_last_poll; + # make sure the pid is removed from the waitpid list + Irssi::pidwait_remove($child_pid); + # save id_map hash if ( keys %id_map and my $file = @@ -1520,7 +1533,7 @@ Irssi::settings_add_str( "twirssi", "twirssi_replies_store", ".irssi/scripts/twirssi.json" ); Irssi::settings_add_int( "twirssi", "twitter_friends_poll", 600 ); -Irssi::settings_add_int( "twirssi", "twitter_timeout", 30 ); +Irssi::settings_add_int( "twirssi", "twitter_timeout", 30 ); Irssi::settings_add_bool( "twirssi", "twirssi_upgrade_beta", 0 ); Irssi::settings_add_bool( "twirssi", "tweet_to_away", 0 ); @@ -1592,11 +1605,22 @@ if ($window) { Irssi::command_bind( "twirssi_version", sub { - ¬ice("Twirssi v$VERSION (r$REV); " - . "Net::Twitter v$Net::Twitter::VERSION. " + ¬ice( + "Twirssi v$VERSION (r$REV); " + . ( + $Net::Twitter::VERSION + ? "Net::Twitter v$Net::Twitter::VERSION. " + : "" + ) + . ( + $Net::Identica::VERSION + ? "Net::Identica v$Net::Identica::VERSION. " + : "" + ) . "JSON in use: " . JSON::Any::handler() - . ". See details at http://twirssi.com/" ); + . ". See details at http://twirssi.com/" + ); } ); Irssi::command_bind(