From f0d8bcdb66a2655c9d7a310de076dcdc1cb7b4d4 Mon Sep 17 00:00:00 2001 From: Steve Schnepp Date: Wed, 7 Mar 2012 17:59:19 +0100 Subject: [PATCH] fix hang when asking for unknown commands --- tools/pmmn/bin/pmmn | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/tools/pmmn/bin/pmmn b/tools/pmmn/bin/pmmn index ce149228..bf9d9bcf 100755 --- a/tools/pmmn/bin/pmmn +++ b/tools/pmmn/bin/pmmn @@ -54,6 +54,7 @@ while(my $line = <>) { next; } elsif ($cmd eq "nodes") { print "$host\n"; + print "."; next; } elsif ($cmd eq "quit") { exit(0); @@ -67,19 +68,19 @@ while(my $line = <>) { } closedir(PLUGIN_DIR); next; - } elsif (-e $plugin_filename) { - my $arg_plugin; - if ($cmd eq "config") { - $arg_plugin = "config"; - } elsif ($cmd eq "fetch") { - $arg_plugin = ""; - } else { - # Ignore + } elsif ($cmd eq "config" || $cmd eq "alert" || $cmd eq "fetch") { + if (-d $plugin_filename || ! -x $plugin_filename) { + print "# Unknown plugin [$arg] for $cmd"; next; } + my $arg_plugin = ($cmd eq "fetch") ? "" : $cmd; system($plugin_filename, $arg_plugin); print "."; + next; } + + # Arriving here is not a good sign + print "# Unknown command. Try list, nodes, config, fetch, version, alert or quit"; } continue { #print " " x 4096; print "\n";