diff options
Diffstat (limited to 'usr.sbin/lpr/lpd/recvjob.c')
-rw-r--r-- | usr.sbin/lpr/lpd/recvjob.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/usr.sbin/lpr/lpd/recvjob.c b/usr.sbin/lpr/lpd/recvjob.c index c610271..4d291c2 100644 --- a/usr.sbin/lpr/lpd/recvjob.c +++ b/usr.sbin/lpr/lpd/recvjob.c @@ -65,6 +65,7 @@ static const char rcsid[] = #include <string.h> #include "lp.h" #include "lp.local.h" +#include "ctlinfo.h" #include "extern.h" #include "pathnames.h" @@ -145,6 +146,7 @@ readjob(struct printer *pp) register int size; register char *cp; int cfcnt, dfcnt; + char *errmsg; char givenid[32], givenhost[MAXHOSTNAMELEN]; ack(); @@ -206,11 +208,12 @@ readjob(struct printer *pp) rcleanup(0); continue; } - if (link(tfname, cp) < 0) - frecverr("%s: link(%s): %s", pp->printer, - tfname, strerror(errno)); - (void) unlink(tfname); + errmsg = ctl_renametf(pp->printer, tfname); tfname[0] = '\0'; + if (errmsg != NULL) { + frecverr("%s: %s", pp->printer, errmsg); + /*NOTREACHED*/ + } cfcnt++; continue; |