- handle nickserv passwords
authorAndreas Scherbaum <andreas@scherbaum.biz>
Mon, 13 Aug 2012 00:03:36 +0000 (02:03 +0200)
committerAndreas Scherbaum <andreas@scherbaum.biz>
Mon, 13 Aug 2012 00:03:36 +0000 (02:03 +0200)
docbot.pl
todo.txt

index 372518808892a054848c9b6d0a60c8d9c5f6e9ac..64d1c01d464402769f3a44912bc9bbcc6b4e17e2 100755 (executable)
--- a/docbot.pl
+++ b/docbot.pl
@@ -874,6 +874,10 @@ BEGIN {
                                 print_msg("nickname is: $nick_name, desired nickname is: " . $main::sessions{$session}{'nickname'} . ", issuing nick change", INFO);
                                 $irc->yield( nick => $main::sessions{$session}{'nickname'} );
                                 $main::sessions{$session}{'last_nick_change_attempt'} = time();
+                                my $password = config_get_key3('sessions', $session, 'password');
+                                if (defined($password) and length($password) > 0) {
+                                    $irc->yield( privmsg => 'nickserv', 'identify ' . $password );
+                                }
                             }
                         }
                     }
@@ -3790,6 +3794,18 @@ sub on_end_motd {
     print_msg("on_end_motd(session: $session)", DEBUG);
 
 
+    # auth the nickname
+    my $nickname = config_get_key3('sessions', $session, 'nickname');
+    my $password = config_get_key3('sessions', $session, 'password');
+    my $nickname_now = $irc->nick_name();
+    if (lc($nickname_now) eq lc($nickname)) {
+        if (defined($password) and length($password) > 0) {
+            print_msg("authenticating against nickserv, session: $session", DEBUG);
+            $irc->yield( privmsg => 'nickserv', 'identify ' . $password );
+        }
+    }
+
+
     $main::sessions{$session}{'past_motd'} = 1;
 }
 
index 0e7fec969a977c5a3af842722a026d0adb4b7ef3..510b34f0186272c861459a82f07f89f96bb77c5d 100644 (file)
--- a/todo.txt
+++ b/todo.txt
@@ -6,7 +6,6 @@
   - extra channel
 - track each channel message and see, if the bot was mentioned
 - Log::Log4perl?
-- nickserv handling (passwords)
 
 
 
@@ -29,3 +28,4 @@
 - predefine channels in the configuration which are not autojoined OK
 - allow a password for the ?join command OK
 - verify channel list from time to time, autojoin missing channels OK
+- nickserv handling (passwords) OK