summaryrefslogtreecommitdiffstats
path: root/plugins/check_ldap.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/check_ldap.c')
-rw-r--r--plugins/check_ldap.c59
1 files changed, 13 insertions, 46 deletions
diff --git a/plugins/check_ldap.c b/plugins/check_ldap.c
index d3f0615..213dc4a 100644
--- a/plugins/check_ldap.c
+++ b/plugins/check_ldap.c
@@ -34,7 +34,6 @@
34#define UNKNOWN -1 34#define UNKNOWN -1
35 35
36int process_arguments (int, char **); 36int process_arguments (int, char **);
37int call_getopt (int, char **);
38int validate_arguments (void); 37int validate_arguments (void);
39static void print_help (void); 38static void print_help (void);
40static void print_usage (void); 39static void print_usage (void);
@@ -124,35 +123,10 @@ process_arguments (int argc, char **argv)
124{ 123{
125 int c; 124 int c;
126 125
127 if (argc < 2)
128 return ERROR;
129
130 for (c = 1; c < argc; c++) {
131 if (strcmp ("-to", argv[c]) == 0)
132 strcpy (argv[c], "-t");
133 }
134
135 c = 0;
136 while (c += (call_getopt (argc - c, &argv[c]))) {
137 if (argc <= c)
138 break;
139 if (ld_host[0] == 0) {
140 strncpy (ld_host, argv[c], sizeof (ld_host) - 1);
141 ld_host[sizeof (ld_host) - 1] = 0;
142 }
143 }
144
145 return c;
146}
147
148int
149call_getopt (int argc, char **argv)
150{
151 int c, i = 1;
152#ifdef HAVE_GETOPT_H 126#ifdef HAVE_GETOPT_H
153 int option_index = 0; 127 int option_index = 0;
154 /* initialize the long option struct */ 128 /* initialize the long option struct */
155 static struct option long_options[] = { 129 static struct option longopts[] = {
156 {"help", no_argument, 0, 'h'}, 130 {"help", no_argument, 0, 'h'},
157 {"version", no_argument, 0, 'V'}, 131 {"version", no_argument, 0, 'V'},
158 {"timeout", required_argument, 0, 't'}, 132 {"timeout", required_argument, 0, 't'},
@@ -168,15 +142,17 @@ call_getopt (int argc, char **argv)
168 }; 142 };
169#endif 143#endif
170 144
171 for (c = 1; c < argc; c++) 145 if (argc < 2)
146 return ERROR;
147
148 for (c = 1; c < argc; c++) {
172 if (strcmp ("-to", argv[c]) == 0) 149 if (strcmp ("-to", argv[c]) == 0)
173 strcpy (argv[c], "-t"); 150 strcpy (argv[c], "-t");
151 }
174 152
175 while (1) { 153 while (1) {
176#ifdef HAVE_GETOPT_H 154#ifdef HAVE_GETOPT_H
177 c = 155 c = getopt_long (argc, argv, "hVt:c:w:H:b:p:a:D:P:", longopts, &option_index);
178 getopt_long (argc, argv, "+hVt:c:w:H:b:p:a:D:P:", long_options,
179 &option_index);
180#else 156#else
181 c = getopt (argc, argv, "+?hVt:c:w:H:b:p:a:D:P:"); 157 c = getopt (argc, argv, "+?hVt:c:w:H:b:p:a:D:P:");
182#endif 158#endif
@@ -184,20 +160,6 @@ call_getopt (int argc, char **argv)
184 if (c == -1 || c == EOF) 160 if (c == -1 || c == EOF)
185 break; 161 break;
186 162
187 i++;
188 switch (c) {
189 case 't':
190 case 'c':
191 case 'w':
192 case 'H':
193 case 'b':
194 case 'p':
195 case 'a':
196 case 'D':
197 case 'P':
198 i++;
199 }
200
201 switch (c) { 163 switch (c) {
202 case 'h': /* help */ 164 case 'h': /* help */
203 print_help (); 165 print_help ();
@@ -239,7 +201,12 @@ call_getopt (int argc, char **argv)
239 break; 201 break;
240 } 202 }
241 } 203 }
242 return i; 204
205 if (ld_host[0] == 0) {
206 asprintf (&ld_host, "%s", argv[c]);
207 }
208
209 return validate_arguments ();
243} 210}
244 211
245int 212int