140266059SGregory Neil Shapiro /* 25dd76dd0SGregory Neil Shapiro * Copyright (c) 2000-2002 Proofpoint, Inc. and its suppliers. 340266059SGregory Neil Shapiro * All rights reserved. 440266059SGregory Neil Shapiro * 540266059SGregory Neil Shapiro * By using this file, you agree to the terms and conditions set 640266059SGregory Neil Shapiro * forth in the LICENSE file which can be found at the top level of 740266059SGregory Neil Shapiro * the sendmail distribution. 840266059SGregory Neil Shapiro * 940266059SGregory Neil Shapiro */ 1040266059SGregory Neil Shapiro 1140266059SGregory Neil Shapiro #include <sendmail.h> 124313cc83SGregory Neil Shapiro SM_RCSID("@(#)$Id: cf.c,v 8.20 2013-11-22 20:51:50 ca Exp $") 1340266059SGregory Neil Shapiro #include <sendmail/pathnames.h> 1440266059SGregory Neil Shapiro 1540266059SGregory Neil Shapiro /* 1640266059SGregory Neil Shapiro ** GETCFNAME -- return the name of the .cf file to use. 1740266059SGregory Neil Shapiro ** 1840266059SGregory Neil Shapiro ** Some systems (e.g., NeXT) determine this dynamically. 1940266059SGregory Neil Shapiro ** 2040266059SGregory Neil Shapiro ** For others: returns submit.cf or sendmail.cf depending 2140266059SGregory Neil Shapiro ** on the modes. 2240266059SGregory Neil Shapiro ** 2340266059SGregory Neil Shapiro ** Parameters: 2440266059SGregory Neil Shapiro ** opmode -- operation mode. 2540266059SGregory Neil Shapiro ** submitmode -- submit mode. 2640266059SGregory Neil Shapiro ** cftype -- may request a certain cf file. 2740266059SGregory Neil Shapiro ** conffile -- if set, return it. 2840266059SGregory Neil Shapiro ** 2940266059SGregory Neil Shapiro ** Returns: 3040266059SGregory Neil Shapiro ** name of .cf file. 3140266059SGregory Neil Shapiro */ 3240266059SGregory Neil Shapiro 3340266059SGregory Neil Shapiro char * 3440266059SGregory Neil Shapiro getcfname(opmode, submitmode, cftype, conffile) 3540266059SGregory Neil Shapiro int opmode; 3640266059SGregory Neil Shapiro int submitmode; 3740266059SGregory Neil Shapiro int cftype; 3840266059SGregory Neil Shapiro char *conffile; 3940266059SGregory Neil Shapiro { 4013bd1963SGregory Neil Shapiro #if NETINFO 4113bd1963SGregory Neil Shapiro char *cflocation; 425b0945b5SGregory Neil Shapiro #endif 4340266059SGregory Neil Shapiro 4440266059SGregory Neil Shapiro if (conffile != NULL) 4540266059SGregory Neil Shapiro return conffile; 4640266059SGregory Neil Shapiro 4740266059SGregory Neil Shapiro if (cftype == SM_GET_SUBMIT_CF || 4840266059SGregory Neil Shapiro ((submitmode != SUBMIT_UNKNOWN || 4940266059SGregory Neil Shapiro opmode == MD_DELIVER || 5040266059SGregory Neil Shapiro opmode == MD_ARPAFTP || 5140266059SGregory Neil Shapiro opmode == MD_SMTP) && 5240266059SGregory Neil Shapiro cftype != SM_GET_SENDMAIL_CF)) 5340266059SGregory Neil Shapiro { 5440266059SGregory Neil Shapiro struct stat sbuf; 5594c01205SGregory Neil Shapiro static char cf[MAXPATHLEN]; 5640266059SGregory Neil Shapiro 5713bd1963SGregory Neil Shapiro #if NETINFO 5813bd1963SGregory Neil Shapiro cflocation = ni_propval("/locations", NULL, "sendmail", 5913bd1963SGregory Neil Shapiro "submit.cf", '\0'); 6013bd1963SGregory Neil Shapiro if (cflocation != NULL) 6113bd1963SGregory Neil Shapiro (void) sm_strlcpy(cf, cflocation, sizeof cf); 6213bd1963SGregory Neil Shapiro else 6313bd1963SGregory Neil Shapiro #endif /* NETINFO */ 64*2fb4f839SGregory Neil Shapiro /* "else" in #if code above */ 65*2fb4f839SGregory Neil Shapiro { 6640266059SGregory Neil Shapiro (void) sm_strlcpyn(cf, sizeof cf, 2, _DIR_SENDMAILCF, 6740266059SGregory Neil Shapiro "submit.cf"); 68*2fb4f839SGregory Neil Shapiro } 6940266059SGregory Neil Shapiro if (cftype == SM_GET_SUBMIT_CF || stat(cf, &sbuf) == 0) 7040266059SGregory Neil Shapiro return cf; 7140266059SGregory Neil Shapiro } 7213bd1963SGregory Neil Shapiro #if NETINFO 7313bd1963SGregory Neil Shapiro cflocation = ni_propval("/locations", NULL, "sendmail", 7413bd1963SGregory Neil Shapiro "sendmail.cf", '\0'); 7513bd1963SGregory Neil Shapiro if (cflocation != NULL) 7613bd1963SGregory Neil Shapiro return cflocation; 775b0945b5SGregory Neil Shapiro #endif 7840266059SGregory Neil Shapiro return _PATH_SENDMAILCF; 7940266059SGregory Neil Shapiro } 80