]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - modulemanager
Verify hostnames when installing contrib modules.
[user/henk/code/inspircd.git] / modulemanager
index 1be9f52f90d3249000f722e6402c95ac059077a2..ffd315da51a7b2ea8d45c400c88979db0f684493 100755 (executable)
@@ -2,9 +2,9 @@
 #
 # InspIRCd -- Internet Relay Chat Daemon
 #
-#   Copyright (C) 2012-2014, 2017-2020 Sadie Powell <sadie@witchery.services>
+#   Copyright (C) 2012-2014, 2017-2021 Sadie Powell <sadie@witchery.services>
 #   Copyright (C) 2012 Robby <robby@chatbelgie.be>
-#   Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
+#   Copyright (C) 2010 Daniel De Graaf <danieldg@inspircd.org>
 #   Copyright (C) 2008-2009 Robin Burchell <robin+git@viroteck.net>
 #
 # This file is part of InspIRCd.  InspIRCd is free software: you can
@@ -22,7 +22,6 @@
 
 
 BEGIN {
-       require 5.10.0;
        unless (eval "use LWP::Simple; 1") {
                die "Your system is missing the LWP::Simple Perl module!";
        }
@@ -31,7 +30,7 @@ BEGIN {
        }
 }
 
-use feature ':5.10';
+use v5.10.0;
 use strict;
 use warnings FATAL => qw(all);
 
@@ -65,7 +64,7 @@ sub parse_url {
        return if $url_seen{$src};
        $url_seen{$src}++;
 
-       my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 0 });
+       my $ua = LWP::UserAgent->new;
        my $response = $ua->get($src);
 
        unless ($response->is_success) {
@@ -100,14 +99,12 @@ sub parse_url {
                        $mod->{mask} = $1;
                } elsif (/^source (\S+)/) {
                        parse_url $1;
-               } else {
-                       print "Unknown line in $src: $_\n";
                }
        }
 }
 
 # hash of installed module versions from our mini-database, key (m_foobar) to version (00abacca..).
-my %mod_versions = read_config_file '.modulemanager';
+my %mod_versions = read_config_file "$RealDir/.modulemanager";
 
 # useless helper stub
 sub getmodversion {
@@ -116,7 +113,7 @@ sub getmodversion {
 }
 
 # read in external URL sources
-open SRC, 'sources.list' or die "Could not open sources.list: $!";
+open SRC, "$RealDir/sources.list" or die "Could not open sources.list: $!";
 while (<SRC>) {
        next if /^\s*#/;
        parse_url($_);
@@ -310,7 +307,7 @@ print "Processing changes...\n";
 for my $mod (keys %installed) {
        next if $todo{$mod};
        print "Uninstalling $mod $installed{$mod}\n";
-       unlink "src/modules/$mod.cpp";
+       unlink "$RealDir/src/modules/$mod.cpp";
 }
 
 my $count = scalar keys %todo;
@@ -330,11 +327,11 @@ for my $mod (sort keys %todo) {
        }
        $mod_versions{$mod} = $ver;
 
-       my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 0 });
+       my $ua = LWP::UserAgent->new;
        my $response = $ua->get($url);
 
        if ($response->is_success) {
-               open(MF, ">src/modules/$mod.cpp") or die "\nFilesystem not writable: $!";
+               open(MF, '>', "$RealDir/src/modules/$mod.cpp") or die "\nFilesystem not writable: $!";
                print MF $response->content;
                close(MF);
                print " - done\n";
@@ -344,6 +341,6 @@ for my $mod (sort keys %todo) {
 }
 
 # write database of installed versions
-write_config_file '.modulemanager', %mod_versions;
+write_config_file "$RealDir/.modulemanager", %mod_versions;
 
 print "Finished!\n";