diff --git a/centreon-plugins/apps/protocols/http/mode/responsetime.pm b/centreon-plugins/apps/protocols/http/mode/responsetime.pm index e8d56f2c2..8193506e7 100644 --- a/centreon-plugins/apps/protocols/http/mode/responsetime.pm +++ b/centreon-plugins/apps/protocols/http/mode/responsetime.pm @@ -1,36 +1,35 @@ ############################################################################### -# Copyright 2005-2015 CENTREON +# Copyright 2005-2013 MERETHIS # Centreon is developped by : Julien Mathis and Romain Le Merlus under # GPL Licence 2.0. -# -# This program is free software; you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free Software +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software # Foundation ; either version 2 of the License. -# +# # This program is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along with +# +# You should have received a copy of the GNU General Public License along with # this program; if not, see . -# -# Linking this program statically or dynamically with other modules is making a -# combined work based on this program. Thus, the terms and conditions of the GNU +# +# Linking this program statically or dynamically with other modules is making a +# combined work based on this program. Thus, the terms and conditions of the GNU # General Public License cover the whole combination. -# -# As a special exception, the copyright holders of this program give CENTREON -# permission to link this program with independent modules to produce an timeelapsedutable, -# regardless of the license terms of these independent modules, and to copy and -# distribute the resulting timeelapsedutable under terms of CENTREON choice, provided that -# CENTREON also meet, for each linked independent module, the terms and conditions -# of the license of that module. An independent module is a module which is not -# derived from this program. If you modify this program, you may extend this +# +# As a special exception, the copyright holders of this program give MERETHIS +# permission to link this program with independent modules to produce an timeelapsedutable, +# regardless of the license terms of these independent modules, and to copy and +# distribute the resulting timeelapsedutable under terms of MERETHIS choice, provided that +# MERETHIS also meet, for each linked independent module, the terms and conditions +# of the license of that module. An independent module is a module which is not +# derived from this program. If you modify this program, you may extend this # exception to your version of the program, but you are not obliged to do so. If you # do not wish to do so, delete this exception statement from your version. -# +# # For more information : contact@centreon.com -# Authors : Simon BOMM -# Mathieu Cinquin +# Author : Simon BOMM # # Based on De Bodt Lieven plugin #################################################################################### @@ -49,7 +48,7 @@ sub new { my $self = $class->SUPER::new(package => __PACKAGE__, %options); bless $self, $class; - $self->{version} = '1.1'; + $self->{version} = '1.0'; $options{options}->add_options(arguments => { "hostname:s" => { name => 'hostname' }, @@ -65,9 +64,6 @@ sub new { "critical:s" => { name => 'critical' }, "timeout:s" => { name => 'timeout', default => '3' }, "ssl:s" => { name => 'ssl', }, - "cert-file:s" => { name => 'cert_file' }, - "cert-pwd:s" => { name => 'cert_pwd' }, - "cert-pkcs12" => { name => 'cert_pkcs12' }, }); return $self; } @@ -98,10 +94,6 @@ sub check_options { $self->{output}->add_option_msg(short_msg => "You need to set --username= and --password= options when --credentials is used"); $self->{output}->option_exit(); } - if ((defined($self->{option_results}->{pkcs12})) && (!defined($self->{option_results}->{cert_file}) && !defined($self->{option_results}->{cert_pwd}))) { - $self->{output}->add_option_msg(short_msg => "You need to set --cert-file= and --cert-pwd= options when --pkcs12 is used"); - $self->{output}->option_exit(); - } } sub run { @@ -110,15 +102,15 @@ sub run { if (!defined($self->{option_results}->{port})) { $self->{option_results}->{port} = centreon::plugins::httplib::get_port($self); } - + my $timing0 = [gettimeofday]; - - my $webcontent = centreon::plugins::httplib::connect($self, connection_exit => 'critical'); + + my $webcontent = centreon::plugins::httplib::connect($self, connection_exit => 'critical'); my $timeelapsed = tv_interval ($timing0, [gettimeofday]); $self->{output}->output_add(long_msg => $webcontent); - + my $exit = $self->{perfdata}->threshold_check(value => $timeelapsed, threshold => [ { label => 'critical', exit_litteral => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]); $self->{output}->output_add(severity => $exit, @@ -194,18 +186,6 @@ Threshold warning in seconds (Webpage response time) Threshold critical in seconds (Webpage response time) -=item B<--cert-file> - -Specify certificate to send to the webserver - -=item B<--cert-pwd> - -Specify certificate's password - -=item B<--cert-pkcs12> - -Specify type of certificate (PKCS12) - =back =cut diff --git a/centreon-plugins/centreon/plugins/httplib.pm b/centreon-plugins/centreon/plugins/httplib.pm index 46e91d4de..d93e2afdc 100644 --- a/centreon-plugins/centreon/plugins/httplib.pm +++ b/centreon-plugins/centreon/plugins/httplib.pm @@ -1,36 +1,35 @@ ############################################################################### -# Copyright 2005-2015 CENTREON +# Copyright 2005-2013 MERETHIS # Centreon is developped by : Julien Mathis and Romain Le Merlus under # GPL Licence 2.0. -# -# This program is free software; you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free Software +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software # Foundation ; either version 2 of the License. -# +# # This program is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along with +# +# You should have received a copy of the GNU General Public License along with # this program; if not, see . -# -# Linking this program statically or dynamically with other modules is making a -# combined work based on this program. Thus, the terms and conditions of the GNU +# +# Linking this program statically or dynamically with other modules is making a +# combined work based on this program. Thus, the terms and conditions of the GNU # General Public License cover the whole combination. -# -# As a special exception, the copyright holders of this program give CENTREON -# permission to link this program with independent modules to produce an timeelapsedutable, -# regardless of the license terms of these independent modules, and to copy and -# distribute the resulting timeelapsedutable under terms of CENTREON choice, provided that -# CENTREON also meet, for each linked independent module, the terms and conditions -# of the license of that module. An independent module is a module which is not -# derived from this program. If you modify this program, you may extend this +# +# As a special exception, the copyright holders of this program give MERETHIS +# permission to link this program with independent modules to produce an timeelapsedutable, +# regardless of the license terms of these independent modules, and to copy and +# distribute the resulting timeelapsedutable under terms of MERETHIS choice, provided that +# MERETHIS also meet, for each linked independent module, the terms and conditions +# of the license of that module. An independent module is a module which is not +# derived from this program. If you modify this program, you may extend this # exception to your version of the program, but you are not obliged to do so. If you # do not wish to do so, delete this exception statement from your version. -# +# # For more information : contact@centreon.com -# Authors : Simon BOMM -# Mathieu Cinquin +# Author : Simon BOMM # # Based on De Bodt Lieven plugin #################################################################################### @@ -39,14 +38,13 @@ package centreon::plugins::httplib; use strict; use warnings; - use LWP::UserAgent; use HTTP::Cookies; use URI; sub get_port { my ($self, %options) = @_; - + my $cache_port = ''; if (defined($self->{option_results}->{port}) && $self->{option_results}->{port} ne '') { $cache_port = $self->{option_results}->{port}; @@ -54,7 +52,7 @@ sub get_port { $cache_port = 80 if ($self->{option_results}->{proto} eq 'http'); $cache_port = 443 if ($self->{option_results}->{proto} eq 'https'); } - + return $cache_port; } @@ -62,14 +60,14 @@ sub connect { my ($self, %options) = @_; my $method = defined($options{method}) ? $options{method} : 'GET'; my $connection_exit = defined($options{connection_exit}) ? $options{connection_exit} : 'unknown'; - + my $ua = LWP::UserAgent->new(keep_alive => 1, protocols_allowed => ['http', 'https'], timeout => $self->{option_results}->{timeout}, requests_redirectable => [ 'GET', 'HEAD', 'POST' ]); if (defined($options{cookies_file})) { $ua->cookie_jar(HTTP::Cookies->new(file => $options{cookies_file}, autosave => 1)); } - + my ($response, $content); my ($req, $url); if (defined($self->{option_results}->{port}) && $self->{option_results}->{port} =~ /^[0-9]+$/) { @@ -94,7 +92,7 @@ sub connect { } } } - + if ($method eq 'POST') { if (defined($content_type_forced)) { $req->content_type($content_type_forced); @@ -107,14 +105,14 @@ sub connect { $req->content_type('application/x-www-form-urlencoded'); $req->content($uri_post->query); } - } - + } + if (defined($self->{option_results}->{credentials}) && defined($self->{option_results}->{ntlm})) { $ua->credentials($self->{option_results}->{hostname} . ':' . $self->{option_results}->{port}, '', $self->{option_results}->{username}, $self->{option_results}->{password}); } elsif (defined($self->{option_results}->{credentials})) { $req->authorization_basic($self->{option_results}->{username}, $self->{option_results}->{password}); } - + if (defined($self->{option_results}->{proxyurl})) { $ua->proxy(['http', 'https'], $self->{option_results}->{proxyurl}); } @@ -126,27 +124,16 @@ sub connect { ); IO::Socket::SSL::set_default_context($context); } - - if (defined($self->{option_results}->{cert_pkcs12}) && $self->{option_results}->{cert_file} ne '' && $self->{option_results}->{cert_pwd} ne '') { - use Net::SSL; - $ENV{HTTPS_PKCS12_FILE} = $self->{option_results}->{cert_file}; - $ENV{HTTPS_PKCS12_PASSWORD} = $self->{option_results}->{cert_pwd}; - } - - if (defined($self->{option_results}->{cert_file}) && !defined($self->{option_results}->{cert_pkcs12})) { - use Net::SSL; - $ENV{HTTPS_CERT_FILE} = $self->{option_results}->{cert_file}; - } - + $response = $ua->request($req); if ($response->is_success) { $content = $response->content; return $content; } - + $self->{output}->output_add(severity => $connection_exit, - short_msg => $response->status_line); + short_msg => $response->status_line); $self->{output}->display(); $self->{output}->exit(); }