diff -Naur nagios-plugins-1.4.5-orig/plugins/check_hpjd.c nagios-plugins-1.4.5/plugins/check_hpjd.c --- nagios-plugins-1.4.5-orig/plugins/check_hpjd.c 2006-10-18 20:25:16.000000000 -0400 +++ nagios-plugins-1.4.5/plugins/check_hpjd.c 2007-02-15 12:31:34.000000000 -0500 @@ -64,6 +64,11 @@ #define ONLINE 0 #define OFFLINE 1 +#define JAONLINE 1 +#define JAOFFLINE 0 + +#define JETDIRECT 0 +#define JETREADY 1 int process_arguments (int, char **); int validate_arguments (void); @@ -71,6 +76,7 @@ void print_usage (void); char *community = NULL; +char *jd_type = JETDIRECT; // default to JetDirect type char *address = NULL; int @@ -245,8 +251,8 @@ result = STATE_WARNING; strcpy (errmsg, _("Out of Paper")); } - else if (line_status == OFFLINE) { - if (strcmp (errmsg, "POWERSAVE ON") != 0) { + else if ((line_status == OFFLINE && jd_type == JETDIRECT) || (line_status == JAOFFLINE && jd_type == JETREADY)) { + if ((strcmp (errmsg, "POWERSAVE ON") != 0) || (strcmp (errmsg, "Sleep mode on") != 0)) { result = STATE_WARNING; strcpy (errmsg, _("Printer Offline")); } @@ -317,6 +323,7 @@ /* {"critical", required_argument,0,'c'}, */ /* {"warning", required_argument,0,'w'}, */ /* {"port", required_argument,0,'P'}, */ + {"jetready", no_argument, 0, 'A'}, {"version", no_argument, 0, 'V'}, {"help", no_argument, 0, 'h'}, {0, 0, 0, 0} @@ -327,7 +334,7 @@ while (1) { - c = getopt_long (argc, argv, "+hVH:C:", longopts, &option); + c = getopt_long (argc, argv, "+hVAH:C:", longopts, &option); if (c == -1 || c == EOF || c == 1) break; @@ -344,6 +351,9 @@ case 'C': /* community */ community = strscpy (community, optarg); break; + case 'A': /* change jd type */ + jd_type = JETREADY; + break; case 'V': /* version */ print_revision (progname, revision); exit (STATE_OK); @@ -400,6 +410,8 @@ printf (_(UT_HELP_VRSN)); + printf (" %s\n", "-A, --jetready"); + printf (" %s", _("Change logic from assuming JetDirect to JetReady support")); printf (" %s\n", "-C, --community=STRING"); printf (" %s", _("The SNMP community name ")); printf (_("(default=%s)"), DEFAULT_COMMUNITY); @@ -413,5 +425,5 @@ print_usage (void) { printf (_("Usage:")); - printf ("%s -H host [-C community]\n", progname); + printf ("%s -H host [-a] [-C community]\n", progname); }