Code

Fix check_ldap overriding the port when --ssl was specified after -p
[nagiosplug.git] / plugins / check_ldap.c
index 400d74ad7655f38bdba16a722b7b76e5076ab625..726ffa64ff63f229dad8a5639edddf1aa5ecbe51 100644 (file)
@@ -58,7 +58,7 @@ char *ld_host = NULL;
 char *ld_base = NULL;
 char *ld_passwd = NULL;
 char *ld_binddn = NULL;
-int ld_port = DEFAULT_PORT;
+int ld_port = -1;
 #ifdef HAVE_LDAP_SET_OPTION
 int ld_protocol = DEFAULT_PROTOCOL;
 #endif
@@ -341,7 +341,8 @@ process_arguments (int argc, char **argv)
                case 'S':
                        if (! starttls) {
                                ssl_on_connect = TRUE;
-                               ld_port = LDAPS_PORT;
+                               if (ld_port == -1)
+                                       ld_port = LDAPS_PORT;
                        } else
                                usage_va(_("%s cannot be combined with %s"), "-S/--ssl", "-T/--starttls");
                        break;
@@ -364,6 +365,9 @@ process_arguments (int argc, char **argv)
        if (ld_base == NULL && argv[c])
                ld_base = strdup (argv[c++]);
 
+       if (ld_port == -1)
+               ld_port = DEFAULT_PORT;
+
        return validate_arguments ();
 }
 
@@ -396,12 +400,12 @@ print_help (void)
 
        print_usage ();
 
-       printf (_(UT_HELP_VRSN));
-       printf (_(UT_EXTRA_OPTS));
+       printf (UT_HELP_VRSN);
+       printf (UT_EXTRA_OPTS);
 
-       printf (_(UT_HOST_PORT), 'p', myport);
+       printf (UT_HOST_PORT, 'p', myport);
 
-       printf (_(UT_IPv46));
+       printf (UT_IPv46);
 
        printf (" %s\n", "-a [--attr]");
   printf ("    %s\n", _("ldap attribute to search (default: \"(objectclass=*)\""));
@@ -424,11 +428,11 @@ print_help (void)
   printf ("    (%s %d)\n", _("default protocol version:"), DEFAULT_PROTOCOL);
 #endif
 
-       printf (_(UT_WARN_CRIT));
+       printf (UT_WARN_CRIT);
 
-       printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT);
+       printf (UT_TIMEOUT, DEFAULT_SOCKET_TIMEOUT);
 
-       printf (_(UT_VERBOSE));
+       printf (UT_VERBOSE);
 
        printf ("\n");
        printf ("%s\n", _("Notes:"));
@@ -437,12 +441,8 @@ print_help (void)
        printf (" %s\n", _("'SSL on connect' will be used no matter how the plugin was called."));
        printf (" %s\n", _("This detection is deprecated, please use 'check_ldap' with the '--starttls' or '--ssl' flags"));
        printf (" %s\n", _("to define the behaviour explicitly instead."));
-#ifdef NP_EXTRA_OPTS
-       printf ("\n");
-       printf (_(UT_EXTRA_OPTS_NOTES));
-#endif
 
-       printf (_(UT_SUPPORT));
+       printf (UT_SUPPORT);
 }
 
 /* todo
@@ -453,7 +453,7 @@ print_help (void)
 void
 print_usage (void)
 {
-  printf (_("Usage:"));
+  printf ("%s\n", _("Usage:"));
        printf (" %s -H <host> -b <base_dn> [-p <port>] [-a <attr>] [-D <binddn>]",progname);
   printf ("\n       [-P <password>] [-w <warn_time>] [-c <crit_time>] [-t timeout]%s\n",
 #ifdef HAVE_LDAP_SET_OPTION