#include <fcntl.h>
#include <errno.h>
#include <ctype.h>
+#include <syslog.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <sys/wait.h>
}
int run_program(const char *command, const char *subsystem,
- char *result, size_t ressize, size_t *reslen, int log)
+ char *result, size_t ressize, size_t *reslen)
{
- int retval = 0;
int status;
int outpipe[2] = {-1, -1};
int errpipe[2] = {-1, -1};
char *argv[(sizeof(arg) / 2) + 1];
int devnull;
int i;
+ int retval = 0;
/* build argv from comand */
strlcpy(arg, command, sizeof(arg));
info("'%s'", command);
/* prepare pipes from child to parent */
- if (result || log) {
+ if (result != NULL || udev_log_priority >= LOG_INFO) {
if (pipe(outpipe) != 0) {
err("pipe failed: %s", strerror(errno));
return -1;
}
}
- if (log) {
+ if (udev_log_priority >= LOG_INFO) {
if (pipe(errpipe) != 0) {
err("pipe failed: %s", strerror(errno));
return -1;
close(errpipe[WRITE_END]);
}
execv(argv[0], argv);
- if ((errno == ENOENT) || (errno = ENOTDIR)) {
+ if (errno == ENOENT || errno == ENOTDIR) {
/* may be on a filesytem which is not mounted right now */
info("program '%s' not found", argv[0]);
} else {