summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/utils_cmd.c21
-rw-r--r--lib/utils_cmd.h12
2 files changed, 17 insertions, 16 deletions
diff --git a/lib/utils_cmd.c b/lib/utils_cmd.c
index 795840d3..2dc5deb0 100644
--- a/lib/utils_cmd.c
+++ b/lib/utils_cmd.c
@@ -70,7 +70,7 @@ extern char **environ;
70static int _cmd_open (char *const *, int *, int *) 70static int _cmd_open (char *const *, int *, int *)
71 __attribute__ ((__nonnull__ (1, 2, 3))); 71 __attribute__ ((__nonnull__ (1, 2, 3)));
72 72
73static int _cmd_fetch_output (int, output *, int) 73static int _cmd_fetch_output (int, cmd_output *, int)
74 __attribute__ ((__nonnull__ (2))); 74 __attribute__ ((__nonnull__ (2)));
75 75
76static int _cmd_close (int); 76static int _cmd_close (int);
@@ -196,7 +196,7 @@ _cmd_close (int fd)
196 196
197 197
198static int 198static int
199_cmd_fetch_output (int fd, output * op, int flags) 199_cmd_fetch_output (int fd, cmd_output * op, int flags)
200{ 200{
201 size_t len = 0, i = 0, lineno = 0; 201 size_t len = 0, i = 0, lineno = 0;
202 size_t rsf = 6, ary_size = 0; /* rsf = right shift factor, dec'ed uncond once */ 202 size_t rsf = 6, ary_size = 0; /* rsf = right shift factor, dec'ed uncond once */
@@ -267,9 +267,8 @@ _cmd_fetch_output (int fd, output * op, int flags)
267 267
268 268
269int 269int
270cmd_run (const char *cmdstring, output * out, output * err, int flags) 270cmd_run (const char *cmdstring, cmd_output * out, cmd_output * err, int flags)
271{ 271{
272 int fd, pfd_out[2], pfd_err[2];
273 int i = 0, argc; 272 int i = 0, argc;
274 size_t cmdlen; 273 size_t cmdlen;
275 char **argv = NULL; 274 char **argv = NULL;
@@ -281,9 +280,9 @@ cmd_run (const char *cmdstring, output * out, output * err, int flags)
281 280
282 /* initialize the structs */ 281 /* initialize the structs */
283 if (out) 282 if (out)
284 memset (out, 0, sizeof (output)); 283 memset (out, 0, sizeof (cmd_output));
285 if (err) 284 if (err)
286 memset (err, 0, sizeof (output)); 285 memset (err, 0, sizeof (cmd_output));
287 286
288 /* make copy of command string so strtok() doesn't silently modify it */ 287 /* make copy of command string so strtok() doesn't silently modify it */
289 /* (the calling program may want to access it later) */ 288 /* (the calling program may want to access it later) */
@@ -342,15 +341,15 @@ cmd_run (const char *cmdstring, output * out, output * err, int flags)
342} 341}
343 342
344int 343int
345cmd_run_array (char *const *argv, output * out, output * err, int flags) 344cmd_run_array (char *const *argv, cmd_output * out, cmd_output * err, int flags)
346{ 345{
347 int fd, pfd_out[2], pfd_err[2]; 346 int fd, pfd_out[2], pfd_err[2];
348 347
349 /* initialize the structs */ 348 /* initialize the structs */
350 if (out) 349 if (out)
351 memset (out, 0, sizeof (output)); 350 memset (out, 0, sizeof (cmd_output));
352 if (err) 351 if (err)
353 memset (err, 0, sizeof (output)); 352 memset (err, 0, sizeof (cmd_output));
354 353
355 if ((fd = _cmd_open (argv, pfd_out, pfd_err)) == -1) 354 if ((fd = _cmd_open (argv, pfd_out, pfd_err)) == -1)
356 die (STATE_UNKNOWN, _("Could not open pipe: %s\n"), argv[0]); 355 die (STATE_UNKNOWN, _("Could not open pipe: %s\n"), argv[0]);
@@ -364,11 +363,11 @@ cmd_run_array (char *const *argv, output * out, output * err, int flags)
364} 363}
365 364
366int 365int
367cmd_file_read ( char *filename, output *out, int flags) 366cmd_file_read ( char *filename, cmd_output *out, int flags)
368{ 367{
369 int fd; 368 int fd;
370 if(out) 369 if(out)
371 memset (out, 0, sizeof(output)); 370 memset (out, 0, sizeof(cmd_output));
372 371
373 if ((fd = open(filename, O_RDONLY)) == -1) { 372 if ((fd = open(filename, O_RDONLY)) == -1) {
374 die( STATE_UNKNOWN, _("Error opening %s: %s"), filename, strerror(errno) ); 373 die( STATE_UNKNOWN, _("Error opening %s: %s"), filename, strerror(errno) );
diff --git a/lib/utils_cmd.h b/lib/utils_cmd.h
index 6f3aeb81..b37c7712 100644
--- a/lib/utils_cmd.h
+++ b/lib/utils_cmd.h
@@ -7,8 +7,10 @@
7 * 7 *
8 */ 8 */
9 9
10#include <sys/types.h>
11
10/** types **/ 12/** types **/
11struct output 13struct cmd_output
12{ 14{
13 char *buf; /* output buffer */ 15 char *buf; /* output buffer */
14 size_t buflen; /* output buffer content length */ 16 size_t buflen; /* output buffer content length */
@@ -17,12 +19,12 @@ struct output
17 size_t lines; /* lines of output */ 19 size_t lines; /* lines of output */
18}; 20};
19 21
20typedef struct output output; 22typedef struct cmd_output cmd_output;
21 23
22/** prototypes **/ 24/** prototypes **/
23int cmd_run (const char *, output *, output *, int); 25int cmd_run (const char *, cmd_output *, cmd_output *, int);
24int cmd_run_array (char *const *, output *, output *, int); 26int cmd_run_array (char *const *, cmd_output *, cmd_output *, int);
25int cmd_file_read (char *, output *, int); 27int cmd_file_read (char *, cmd_output *, int);
26 28
27/* only multi-threaded plugins need to bother with this */ 29/* only multi-threaded plugins need to bother with this */
28void cmd_init (void); 30void cmd_init (void);