summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRincewindsHat <12514511+RincewindsHat@users.noreply.github.com>2023-09-23 08:33:06 (GMT)
committerRincewindsHat <12514511+RincewindsHat@users.noreply.github.com>2023-09-23 08:33:06 (GMT)
commit4295decfbf06adfa1bf019d28e9044971607b2d6 (patch)
tree416ac41722c554dab36231440b0f2846375a8b82
parentbef0d0dd4ab04ac1189071526fae4031bec36b1d (diff)
downloadmonitoring-plugins-4295decfbf06adfa1bf019d28e9044971607b2d6.tar.gz
open_max is a library function now, it should be mp_open_maxrefs/pull/1924/head
-rw-r--r--lib/maxfd.c2
-rw-r--r--lib/maxfd.h2
-rw-r--r--lib/utils_cmd.c8
-rw-r--r--plugins/popen.c2
-rw-r--r--plugins/runcmd.c8
5 files changed, 11 insertions, 11 deletions
diff --git a/lib/maxfd.c b/lib/maxfd.c
index dcd4d3d..529b356 100644
--- a/lib/maxfd.c
+++ b/lib/maxfd.c
@@ -1,7 +1,7 @@
1#include "./maxfd.h" 1#include "./maxfd.h"
2#include <errno.h> 2#include <errno.h>
3 3
4long open_max (void) { 4long mp_open_max (void) {
5 long maxfd = 0L; 5 long maxfd = 0L;
6 /* Try sysconf(_SC_OPEN_MAX) first, as it can be higher than OPEN_MAX. 6 /* Try sysconf(_SC_OPEN_MAX) first, as it can be higher than OPEN_MAX.
7 * If that fails and the macro isn't defined, we fall back to an educated 7 * If that fails and the macro isn't defined, we fall back to an educated
diff --git a/lib/maxfd.h b/lib/maxfd.h
index 0d734c5..45218d0 100644
--- a/lib/maxfd.h
+++ b/lib/maxfd.h
@@ -4,6 +4,6 @@
4#define DEFAULT_MAXFD 256 /* fallback value if no max open files value is set */ 4#define DEFAULT_MAXFD 256 /* fallback value if no max open files value is set */
5#define MAXFD_LIMIT 8192 /* upper limit of open files */ 5#define MAXFD_LIMIT 8192 /* upper limit of open files */
6 6
7long open_max (void); 7long mp_open_max (void);
8 8
9#endif // _MAXFD_ 9#endif // _MAXFD_
diff --git a/lib/utils_cmd.c b/lib/utils_cmd.c
index 71da9d2..ef7053a 100644
--- a/lib/utils_cmd.c
+++ b/lib/utils_cmd.c
@@ -89,7 +89,7 @@ extern void die (int, const char *, ...)
89void 89void
90cmd_init (void) 90cmd_init (void)
91{ 91{
92 long maxfd = open_max(); 92 long maxfd = mp_open_max();
93 93
94 /* if maxfd is unnaturally high, we force it to a lower value 94 /* if maxfd is unnaturally high, we force it to a lower value
95 * ( e.g. on SunOS, when ulimit is set to unlimited: 2147483647 this would cause 95 * ( e.g. on SunOS, when ulimit is set to unlimited: 2147483647 this would cause
@@ -145,7 +145,7 @@ _cmd_open (char *const *argv, int *pfd, int *pfderr)
145 /* close all descriptors in _cmd_pids[] 145 /* close all descriptors in _cmd_pids[]
146 * This is executed in a separate address space (pure child), 146 * This is executed in a separate address space (pure child),
147 * so we don't have to worry about async safety */ 147 * so we don't have to worry about async safety */
148 long maxfd = open_max(); 148 long maxfd = mp_open_max();
149 for (i = 0; i < maxfd; i++) 149 for (i = 0; i < maxfd; i++)
150 if (_cmd_pids[i] > 0) 150 if (_cmd_pids[i] > 0)
151 close (i); 151 close (i);
@@ -172,7 +172,7 @@ _cmd_close (int fd)
172 pid_t pid; 172 pid_t pid;
173 173
174 /* make sure the provided fd was opened */ 174 /* make sure the provided fd was opened */
175 long maxfd = open_max(); 175 long maxfd = mp_open_max();
176 if (fd < 0 || fd > maxfd || !_cmd_pids || (pid = _cmd_pids[fd]) == 0) 176 if (fd < 0 || fd > maxfd || !_cmd_pids || (pid = _cmd_pids[fd]) == 0)
177 return -1; 177 return -1;
178 178
@@ -385,7 +385,7 @@ timeout_alarm_handler (int signo)
385 printf (_("%s - Plugin timed out after %d seconds\n"), 385 printf (_("%s - Plugin timed out after %d seconds\n"),
386 state_text(timeout_state), timeout_interval); 386 state_text(timeout_state), timeout_interval);
387 387
388 long maxfd = open_max(); 388 long maxfd = mp_open_max();
389 if(_cmd_pids) for(i = 0; i < maxfd; i++) { 389 if(_cmd_pids) for(i = 0; i < maxfd; i++) {
390 if(_cmd_pids[i] != 0) kill(_cmd_pids[i], SIGKILL); 390 if(_cmd_pids[i] != 0) kill(_cmd_pids[i], SIGKILL);
391 } 391 }
diff --git a/plugins/popen.c b/plugins/popen.c
index 7703afc..b395f14 100644
--- a/plugins/popen.c
+++ b/plugins/popen.c
@@ -178,7 +178,7 @@ spopen (const char *cmdstring)
178 } 178 }
179 argv[i] = NULL; 179 argv[i] = NULL;
180 180
181 long maxfd = open_max(); 181 long maxfd = mp_open_max();
182 182
183 if (childpid == NULL) { /* first time through */ 183 if (childpid == NULL) { /* first time through */
184 if ((childpid = calloc ((size_t)maxfd, sizeof (pid_t))) == NULL) 184 if ((childpid = calloc ((size_t)maxfd, sizeof (pid_t))) == NULL)
diff --git a/plugins/runcmd.c b/plugins/runcmd.c
index 9816142..bc0a497 100644
--- a/plugins/runcmd.c
+++ b/plugins/runcmd.c
@@ -88,7 +88,7 @@ extern void die (int, const char *, ...)
88 * through this api and thus achieve async-safeness throughout the api */ 88 * through this api and thus achieve async-safeness throughout the api */
89void np_runcmd_init(void) 89void np_runcmd_init(void)
90{ 90{
91 long maxfd = open_max(); 91 long maxfd = mp_open_max();
92 if(!np_pids) np_pids = calloc(maxfd, sizeof(pid_t)); 92 if(!np_pids) np_pids = calloc(maxfd, sizeof(pid_t));
93} 93}
94 94
@@ -191,7 +191,7 @@ np_runcmd_open(const char *cmdstring, int *pfd, int *pfderr)
191 /* close all descriptors in np_pids[] 191 /* close all descriptors in np_pids[]
192 * This is executed in a separate address space (pure child), 192 * This is executed in a separate address space (pure child),
193 * so we don't have to worry about async safety */ 193 * so we don't have to worry about async safety */
194 long maxfd = open_max(); 194 long maxfd = mp_open_max();
195 for (i = 0; i < maxfd; i++) 195 for (i = 0; i < maxfd; i++)
196 if(np_pids[i] > 0) 196 if(np_pids[i] > 0)
197 close (i); 197 close (i);
@@ -219,7 +219,7 @@ np_runcmd_close(int fd)
219 pid_t pid; 219 pid_t pid;
220 220
221 /* make sure this fd was opened by popen() */ 221 /* make sure this fd was opened by popen() */
222 long maxfd = open_max(); 222 long maxfd = mp_open_max();
223 if(fd < 0 || fd > maxfd || !np_pids || (pid = np_pids[fd]) == 0) 223 if(fd < 0 || fd > maxfd || !np_pids || (pid = np_pids[fd]) == 0)
224 return -1; 224 return -1;
225 225
@@ -243,7 +243,7 @@ runcmd_timeout_alarm_handler (int signo)
243 if (signo == SIGALRM) 243 if (signo == SIGALRM)
244 puts(_("CRITICAL - Plugin timed out while executing system call")); 244 puts(_("CRITICAL - Plugin timed out while executing system call"));
245 245
246 long maxfd = open_max(); 246 long maxfd = mp_open_max();
247 if(np_pids) for(i = 0; i < maxfd; i++) { 247 if(np_pids) for(i = 0; i < maxfd; i++) {
248 if(np_pids[i] != 0) kill(np_pids[i], SIGKILL); 248 if(np_pids[i] != 0) kill(np_pids[i], SIGKILL);
249 } 249 }