This moves essentially identical ckqueue functions out of lpd.c and
lpq.c into common_source/common.c.
Builds without errors on i386. lpq and lpd work afterwards
Index: lpq.c
===================================================================
RCS file: /cvs/src/usr.sbin/lpr/lpq/lpq.c,v
retrieving revision 1.22
diff -u -p -r1.22 lpq.c
--- lpq.c 9 Feb 2015 23:00:14 -0000 1.22
+++ lpq.c 28 Feb 2016 15:30:21 -0000
@@ -64,7 +64,6 @@ int users; /* # of users in user arra
volatile sig_atomic_t gotintr;
-static int ckqueue(char *);
static __dead void usage(void);
int
@@ -146,32 +145,6 @@ main(int argc, char **argv)
} else
displayq(lflag);
exit(0);
-}
-
-/* XXX - could be common w/ lpd */
-static int
-ckqueue(char *cap)
-{
- struct dirent *d;
- DIR *dirp;
- char *spooldir;
-
- if (cgetstr(cap, "sd", &spooldir) >= 0) {
- dirp = opendir(spooldir);
- free(spooldir);
- } else
- dirp = opendir(_PATH_DEFSPOOL);
-
- if (dirp == NULL)
- return (-1);
- while ((d = readdir(dirp)) != NULL) {
- if (d->d_name[0] != 'c' || d->d_name[1] != 'f')
- continue; /* daemon control files only */
- closedir(dirp);
- return (1); /* found something */
- }
- closedir(dirp);
- return (0);
}
static __dead void
Index: common.c
===================================================================
RCS file: /cvs/src/usr.sbin/lpr/common_source/common.c,v
retrieving revision 1.40
diff -u -p -r1.40 common.c
--- common.c 12 Jan 2016 23:35:13 -0000 1.40
+++ common.c 28 Feb 2016 15:31:14 -0000
@@ -453,3 +453,32 @@ safe_open(const char *path, int flags, m
(void)fchmod(fd, mode);
return (fd);
}
+
+/*
+ * Make sure there's some work to do before forking off a child - lpd
+ * Check to see if anything in queue - lpq
+ */
+int
+ckqueue(char *cap)
+{
+ struct dirent *d;
+ DIR *dirp;
+ char *spooldir;
+
+ if (cgetstr(cap, "sd", &spooldir) >= 0) {
+ dirp = opendir(spooldir);
+ free(spooldir);
+ } else
+ dirp = opendir(_PATH_DEFSPOOL);
+
+ if (dirp == NULL)
+ return (-1);
+ while ((d = readdir(dirp)) != NULL) {
+ if (d->d_name[0] == 'c' && d->d_name[1] == 'f') {
+ closedir(dirp);
+ return (1); /* found a cf file */
+ }
+ }
+ closedir(dirp);
+ return (0);
+}
Index: lpd.c
===================================================================
RCS file: /cvs/src/usr.sbin/lpr/lpd/lpd.c,v
retrieving revision 1.63
diff -u -p -r1.63 lpd.c
--- lpd.c 19 Dec 2015 19:59:07 -0000 1.63
+++ lpd.c 28 Feb 2016 15:29:16 -0000
@@ -107,7 +107,6 @@ static void mcleanup(int);
static void doit(void);
static void startup(void);
static void chkhost(struct sockaddr *);
-static int ckqueue(char *);
static __dead void usage(void);
static int *socksetup(int, int, const char *);
@@ -593,35 +592,6 @@ startup(void)
free(buf);
}
}
-}
-
-/*
- * Make sure there's some work to do before forking off a child
- * XXX - could be common w/ lpq
- */
-static int
-ckqueue(char *cap)
-{
- struct dirent *d;
- DIR *dirp;
- char *spooldir;
-
- if (cgetstr(cap, "sd", &spooldir) >= 0) {
- dirp = opendir(spooldir);
- free(spooldir);
- } else
- dirp = opendir(_PATH_DEFSPOOL);
-
- if (dirp == NULL)
- return (-1);
- while ((d = readdir(dirp)) != NULL) {
- if (d->d_name[0] == 'c' && d->d_name[1] == 'f') {
- closedir(dirp);
- return (1); /* found a cf file */
- }
- }
- closedir(dirp);
- return (0);
}
/*
Index: lp.h
===================================================================
RCS file: /cvs/src/usr.sbin/lpr/common_source/lp.h,v
retrieving revision 1.20
diff -u -p -r1.20 lp.h
--- lp.h 12 Jan 2016 23:35:13 -0000 1.20
+++ lp.h 28 Feb 2016 15:33:44 -0000
@@ -126,6 +126,7 @@ int get_line(FILE *);
int getport(char *, int);
int getq(struct queue ***);
int safe_open(const char *, int, mode_t);
+int ckqueue(char *);
/* displayq.c */
void displayq(int);