From beffdd517f17da1f8b4299f512df0127ae4948ba Mon Sep 17 00:00:00 2001 From: mellor Date: Wed, 18 Nov 2009 14:51:19 +0000 Subject: [PATCH] make xcatd tolerant of syntax errors in plugins, fixed syntax error in conserver.pm git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@4611 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd --- perl-xCAT/xCAT/Client.pm | 2 +- xCAT-server/lib/xcat/plugins/conserver.pm | 1 + xCAT-server/sbin/xcatd | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/perl-xCAT/xCAT/Client.pm b/perl-xCAT/xCAT/Client.pm index 38bac9122..2f8937b99 100644 --- a/perl-xCAT/xCAT/Client.pm +++ b/perl-xCAT/xCAT/Client.pm @@ -197,7 +197,7 @@ sub scan_plugins { foreach (@plugins) { /.*\/([^\/]*).pm$/; my $modname = $1; - require "$_"; + unless (eval { require "$_" }) { print "Error loading module $_ ...skipping\n"; next;} no strict 'refs'; my $cmd_adds=${"xCAT_plugin::".$modname."::"}{handled_commands}->(); foreach (keys %$cmd_adds) { diff --git a/xCAT-server/lib/xcat/plugins/conserver.pm b/xCAT-server/lib/xcat/plugins/conserver.pm index ae5e86a68..431405c51 100644 --- a/xCAT-server/lib/xcat/plugins/conserver.pm +++ b/xCAT-server/lib/xcat/plugins/conserver.pm @@ -165,6 +165,7 @@ sub preprocess_request { my $rsp; $rsp->{data}->[0] = "In preprocess_request, request is " . Dumper(@requests); xCAT::MsgUtils->message("I", $rsp, $callback); + } } return \@requests; } diff --git a/xCAT-server/sbin/xcatd b/xCAT-server/sbin/xcatd index 1533fc5d2..381838dcd 100755 --- a/xCAT-server/sbin/xcatd +++ b/xCAT-server/sbin/xcatd @@ -433,7 +433,11 @@ sub scan_plugins { foreach (@plugins) { /.*\/([^\/]*).pm$/; my $modname = $1; - require "$_"; + unless ( eval { require "$_" }) { + xCAT::MsgUtils->message("S","Error loading module ".$_." ...skipping"); + + next; + } no strict 'refs'; my $cmd_adds=${"xCAT_plugin::".$modname."::"}{handled_commands}->(); foreach (keys %$cmd_adds) {