]> arthur.barton.de Git - netatalk.git/blobdiff - etc/papd/main.c
remove bogus default ppd _PATH_PAPDPPDFILE, from Olaf Hering
[netatalk.git] / etc / papd / main.c
index 1060a2c2fdd417bfe92f7b22913b2c6222991274..6aabc126a118354f82f78169d88d680c4059923c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: main.c,v 1.18.6.2.2.2 2007-04-27 21:29:16 didg Exp $
+ * $Id: main.c,v 1.18.6.2.2.6 2009-01-21 04:07:05 didg Exp $
  *
  * Copyright (c) 1990,1995 Regents of The University of Michigan.
  * All Rights Reserved.  See COPYRIGHT.
 #include <sys/param.h>
 #include <sys/time.h>
 #include <sys/uio.h>
-#if defined( sun ) && defined( __svr4__ )
-#include </usr/ucbinclude/sys/file.h>
-#else /* sun && __svr4__ */
 #include <sys/file.h>
-#endif /* sun && __svr4__ */
 #include <sys/socket.h>
 #include <atalk/logger.h>
 
@@ -76,7 +72,6 @@ char *strchr (), *strrchr ();
 #include "uam_auth.h"
 #include "print_cups.h"
 
-#define _PATH_PAPDPPDFILE      ".ppd"
 
 #define PIPED_STATUS   "status: print spooler processing job"
 
@@ -205,7 +200,6 @@ int main( ac, av )
     defprinter.p_type = "LaserWriter";
     defprinter.p_zone = "*";
     memset(&defprinter.p_addr, 0, sizeof(defprinter.p_addr));
-    defprinter.p_ppdfile = _PATH_PAPDPPDFILE;
 #ifdef __svr4__
     defprinter.p_flags = P_PIPED;
     defprinter.p_printer = "/usr/bin/lp -T PS";
@@ -260,7 +254,7 @@ int main( ac, av )
 
     switch (server_lock("papd", pidfile, debug)) {
     case 0: /* open a couple things again in the child */
-      if ((c = open("/", O_RDONLY)) >= 0) {
+      if (!debug && (c = open("/", O_RDONLY)) >= 0) {
        dup2(c, 1);
        dup2(c, 2);
       }
@@ -287,7 +281,8 @@ int main( ac, av )
     openlog( p, LOG_PID );
 #else /* ultrix */
     set_processname(p);
-    syslog_setup(log_debug, logtype_default, logoption_ndelay|logoption_pid, logfacility_lpr );
+    syslog_setup(log_debug, logtype_default, logoption_ndelay | logoption_pid |
+               debug ? logoption_perror : 0, logfacility_lpr );
 #endif /* ultrix */
 
     LOG(log_info, logtype_papd, "restart (%s)", version );
@@ -310,7 +305,7 @@ int main( ac, av )
        }
                        
        if (( pr->p_atp = atp_open( ATADDR_ANYPORT, &pr->p_addr )) == NULL ) {
-           LOG(log_error, logtype_papd, "atp_open: %m" );
+           LOG(log_error, logtype_papd, "atp_open: %s", strerror(errno) );
            papd_exit( 1 );
        }
        if ( nbp_rgstr( atp_sockaddr( pr->p_atp ), pr->p_name, pr->p_type,
@@ -335,7 +330,7 @@ int main( ac, av )
     sigemptyset( &sv.sa_mask );
     sv.sa_flags = SA_RESTART;
     if ( sigaction( SIGTERM, &sv, 0 ) < 0 ) {
-       LOG(log_error, logtype_papd, "sigaction: %m" );
+       LOG(log_error, logtype_papd, "sigaction: %s", strerror(errno) );
        papd_exit( 1 );
     }
 
@@ -343,7 +338,7 @@ int main( ac, av )
     sigemptyset( &sv.sa_mask );
     sv.sa_flags = SA_RESTART;
     if ( sigaction( SIGCHLD, &sv, 0 ) < 0 ) {
-       LOG(log_error, logtype_papd, "sigaction: %m" );
+       LOG(log_error, logtype_papd, "sigaction: %s", strerror(errno) );
        papd_exit( 1 );
     }
 
@@ -364,7 +359,7 @@ int main( ac, av )
            if ( errno == EINTR ) {
                continue;
            }
-           LOG(log_error, logtype_papd, "select: %m" );
+           LOG(log_error, logtype_papd, "select: %s", strerror(errno) );
            papd_exit( 1 );
        }
 
@@ -388,7 +383,7 @@ int main( ac, av )
                atpb.atp_rreqdata = cbuf;
                atpb.atp_rreqdlen = sizeof( cbuf );
                if ( atp_rreq( pr->p_atp, &atpb ) < 0 ) {
-                   LOG(log_error, logtype_papd, "atp_rreq: %m" );
+                   LOG(log_error, logtype_papd, "atp_rreq: %s", strerror(errno) );
                    continue;
                }
 
@@ -433,7 +428,7 @@ int main( ac, av )
                     */
                    if (( atp = atp_open( ATADDR_ANYPORT, 
                                          &pr->p_addr)) == NULL ) {
-                       LOG(log_error, logtype_papd, "atp_open: %m" );
+                       LOG(log_error, logtype_papd, "atp_open: %s", strerror(errno) );
                        rbuf[ 2 ] = rbuf[ 3 ] = 0xff;  /* printer busy */
                        rbuf[ 4 ] = 0; /* FIXME is it right? */
                        err = 1;
@@ -452,7 +447,7 @@ int main( ac, av )
                     * This may error out if we lose a route, so we won't die().
                     */
                    if ( atp_sresp( pr->p_atp, &atpb ) < 0 ) {
-                       LOG(log_error, logtype_papd, "atp_sresp: %m" );
+                       LOG(log_error, logtype_papd, "atp_sresp: %s", strerror(errno) );
                        err = 1;
                    }
 
@@ -465,7 +460,7 @@ int main( ac, av )
 
                    switch ( c = fork()) {
                    case -1 :
-                       LOG(log_error, logtype_papd, "fork: %m" );
+                       LOG(log_error, logtype_papd, "fork: %s", strerror(errno) );
                         atp_close(atp);
                        continue;
 
@@ -475,13 +470,13 @@ int main( ac, av )
                        #ifndef HAVE_CUPS
                        if (( printer->p_flags & P_SPOOLED ) &&
                                chdir( printer->p_spool ) < 0 ) {
-                           LOG(log_error, logtype_papd, "chdir %s: %m", printer->p_spool );
+                           LOG(log_error, logtype_papd, "chdir %s: %s", printer->p_spool, strerror(errno) );
                            exit( 1 );
                        }
                        #else
                        if (( printer->p_flags & P_SPOOLED ) &&
                                chdir( SPOOLDIR ) < 0 ) {
-                           LOG(log_error, logtype_papd, "chdir %s: %m", SPOOLDIR );
+                           LOG(log_error, logtype_papd, "chdir %s: %s", SPOOLDIR, strerror(errno) );
                            exit( 1 );
                        }
 
@@ -491,7 +486,7 @@ int main( ac, av )
                        sigemptyset( &sv.sa_mask );
                        sv.sa_flags = SA_RESTART;
                        if ( sigaction( SIGTERM, &sv, 0 ) < 0 ) {
-                           LOG(log_error, logtype_papd, "sigaction: %m" );
+                           LOG(log_error, logtype_papd, "sigaction: %s", strerror(errno) );
                            exit( 1 );
                        }
 
@@ -529,7 +524,7 @@ int main( ac, av )
                     * This may error out if we lose a route, so we won't die().
                     */
                    if ( atp_sresp( pr->p_atp, &atpb ) < 0 ) {
-                       LOG(log_error, logtype_papd, "atp_sresp: %m" );
+                       LOG(log_error, logtype_papd, "atp_sresp: %s", strerror(errno) );
                    }
                    break;
 
@@ -554,7 +549,7 @@ int main( ac, av )
                 * This may error out if we lose a route, so we won't die().
                 */
                if ( atp_sresp( pr->p_atp, &atpb ) < 0 ) {
-                   LOG(log_error, logtype_papd, "atp_sresp: %m" );
+                   LOG(log_error, logtype_papd, "atp_sresp: %s", strerror(errno) );
                }
 #endif /* notdef */
            }
@@ -684,9 +679,7 @@ static void getprinters( cf )
        /*
         * Get PPD file.
         */
-       if (( p = pgetstr( "pd", &a )) == NULL ) {
-           pr->p_ppdfile = defprinter.p_ppdfile;
-       } else {
+       if (( p = pgetstr( "pd", &a ) )) {
            if (( pr->p_ppdfile = (char *)malloc( strlen( p ) + 1 )) == NULL ) {
                perror( "malloc" );
                exit( 1 );
@@ -825,15 +818,15 @@ int rprintcap( pr )
      * Check for ppd file, moved here because of cups_autoadd we cannot check at the usual location
      */
 
-    if ( pr->p_ppdfile == defprinter.p_ppdfile ) {
+    if ( pr->p_ppdfile == NULL ) {
        if ( (p = (char *) cups_get_printer_ppd ( pr->p_printer )) != NULL ) {
            if (( pr->p_ppdfile = (char *)malloc( strlen( p ) + 1 )) == NULL ) {
-               LOG(log_error, logtype_papd, "malloc: %m" );
+               LOG(log_error, logtype_papd, "malloc: %s", strerror(errno) );
                exit( 1 );
            }
            strcpy( pr->p_ppdfile, p );
            pr->p_flags |= P_CUPS_PPD;
-           /*LOG(log_info, logtype_papd, "PPD File for %s set to %s", pr->p_printer, pr->p_ppdfile );*/
+           LOG(log_info, logtype_papd, "PPD File for %s set to %s", pr->p_printer, pr->p_ppdfile );
        }
     }
 
@@ -863,7 +856,7 @@ int rprintcap( pr )
            pr->p_spool = defprinter.p_spool;
        } else {
            if (( pr->p_spool = (char *)malloc( strlen( p ) + 1 )) == NULL ) {
-               LOG(log_error, logtype_papd, "malloc: %m" );
+               LOG(log_error, logtype_papd, "malloc: %s", strerror(errno) );
                exit( 1 );
            }
            strcpy( pr->p_spool, p );
@@ -887,7 +880,7 @@ int rprintcap( pr )
            } else {
                if (( pr->p_role =
                        (char *)malloc( strlen( p ) + 1 )) == NULL ) {
-                   LOG(log_error, logtype_papd, "malloc: %m" );
+                   LOG(log_error, logtype_papd, "malloc: %s", strerror(errno) );
                    exit( 1 );
                }
                strcpy( pr->p_role, p );
@@ -913,7 +906,7 @@ int rprintcap( pr )
        if (( p = pgetstr( "pc", &a )) != NULL ) {
            if (( pr->p_pagecost_msg =
                    (char *)malloc( strlen( p ) + 1 )) == NULL ) {
-               LOG(log_error, logtype_papd, "malloc: %m" );
+               LOG(log_error, logtype_papd, "malloc: %s", strerror(errno) );
                exit( 1 );
            }
            strcpy( pr->p_pagecost_msg, p );
@@ -938,7 +931,7 @@ int rprintcap( pr )
            pr->p_lock = defprinter.p_lock;
        } else {
            if (( pr->p_lock = (char *)malloc( strlen( p ) + 1 )) == NULL ) {
-               LOG(log_error, logtype_papd, "malloc: %m" );
+               LOG(log_error, logtype_papd, "malloc: %s", strerror(errno) );
                exit( 1 );
            }
            strcpy( pr->p_lock, p );