Просмотр исходного кода

Fix check_ldap overriding the port when --ssl was specified after -p

Thomas Guyot-Sionnest 15 лет назад
Родитель
Сommit
a2a279e262
2 измененных файлов с 8 добавлено и 3 удалено
  1. 2 1
      NEWS
  2. 6 2
      plugins/check_ldap.c

+ 2 - 1
NEWS

@@ -8,7 +8,8 @@ This file documents the major additions and syntax changes between releases.
 	FIXES
 	Fix check_disk free space calculation if blocksizes differ within a disk group (Bekar - #2973603)
 	check_disk_smb now handles NT_STATUS_ACCESS_DENIED properly (Debian #601696) 
-	Make check_snmp work more like v1.4.14 with regard to using special values (Timeticks, STRING) as numeric thresholds.
+	Make check_snmp work more like v1.4.14 with regard to using special values (Timeticks, STRING) as numeric thresholds
+	Fix check_ldap overriding the port when --ssl was specified after -p
 
 1.4.15 27th July 2010
 	ENHANCEMENTS

+ 6 - 2
plugins/check_ldap.c

@@ -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 ();
 }