#include <sys/wait.h>
#include <errno.h>
+#include "vector.h"
+#include "structs.h"
+#include "debug.h"
+
#define PROGRAM_SIZE 100
#define FIELD_PROGRAM
}
return retval;
}
+
+extern int
+apply_format (char * string, char * cmd, struct path * pp)
+{
+ char * pos;
+ char * dst;
+ char * p;
+ int len;
+ int myfree;
+
+ if (!string)
+ return 1;
+
+ if (!cmd)
+ return 1;
+
+ dst = cmd;
+ p = dst;
+ pos = strchr(string, '%');
+ myfree = CALLOUT_MAX_SIZE;
+
+ if (!pos) {
+ strcpy(dst, string);
+ return 0;
+ }
+
+ len = (int) (pos - string) + 1;
+ myfree -= len;
+
+ if (myfree < 2)
+ return 1;
+
+ snprintf(p, len, "%s", string);
+ p += len - 1;
+ pos++;
+
+ switch (*pos) {
+ case 'n':
+ len = strlen(pp->dev) + 1;
+ myfree -= len;
+
+ if (myfree < 2)
+ return 1;
+
+ snprintf(p, len, "%s", pp->dev);
+ p += len - 1;
+ break;
+ case 'd':
+ len = strlen(pp->dev_t) + 1;
+ myfree -= len;
+
+ if (myfree < 2)
+ return 1;
+
+ snprintf(p, len, "%s", pp->dev_t);
+ p += len - 1;
+ break;
+ default:
+ break;
+ }
+ pos++;
+
+ if (!*pos)
+ return 0;
+
+ len = strlen(pos) + 1;
+ myfree -= len;
+
+ if (myfree < 2)
+ return 1;
+
+ snprintf(p, len, "%s", pos);
+ condlog(3, "reformated callout = %s", dst);
+ return 0;
+}
+
+#ifndef _CALLOUT_H
+#define _CALLOUT_H
+
int execute_program(char *, char *, int);
+int apply_format (char *, char *, struct path *);
+
+#endif /* _CALLOUT_H */
}
static int
-apply_format (char * string, char * cmd, struct path * pp)
-{
- char * pos;
- char * dst;
- char * p;
- int len;
- int myfree;
-
- if (!string)
- return 1;
-
- if (!cmd)
- return 1;
-
- dst = cmd;
- p = dst;
- pos = strchr(string, '%');
- myfree = CALLOUT_MAX_SIZE;
-
- if (!pos) {
- strcpy(dst, string);
- return 0;
- }
-
- len = (int) (pos - string) + 1;
- myfree -= len;
-
- if (myfree < 2)
- return 1;
-
- snprintf(p, len, "%s", string);
- p += len - 1;
- pos++;
-
- switch (*pos) {
- case 'n':
- len = strlen(pp->dev) + 1;
- myfree -= len;
-
- if (myfree < 2)
- return 1;
-
- snprintf(p, len, "%s", pp->dev);
- p += len - 1;
- break;
- case 'd':
- len = strlen(pp->dev_t) + 1;
- myfree -= len;
-
- if (myfree < 2)
- return 1;
-
- snprintf(p, len, "%s", pp->dev_t);
- p += len - 1;
- break;
- default:
- break;
- }
- pos++;
-
- if (!*pos)
- return 0;
-
- len = strlen(pos) + 1;
- myfree -= len;
-
- if (myfree < 2)
- return 1;
-
- snprintf(p, len, "%s", pos);
- condlog(3, "reformated callout = %s", dst);
- return 0;
-}
-
-static int
scsi_ioctl_pathinfo (struct path * pp, int mask)
{
if (mask & DI_SERIAL) {
#include <vector.h>
#include <memory.h>
#include <config.h>
-#include <callout.h>
#include <util.h>
#include <hwtable.h>
#include <defaults.h>
#include <structs.h>
+#include <callout.h>
#include <blacklist.h>
#include <structs_vec.h>
#include <dmparser.h>