Import sendmail 8.13.4 into a new contrib directory as the first step
[dragonfly.git] / contrib / sendmail-8.13.4 / libsmutil / cf.c
blobf313762f5577ab1b3595240a8ccab94fce84c2ab
1 /*
2 * Copyright (c) 2000-2002 Sendmail, Inc. and its suppliers.
3 * All rights reserved.
5 * By using this file, you agree to the terms and conditions set
6 * forth in the LICENSE file which can be found at the top level of
7 * the sendmail distribution.
9 */
11 #include <sendmail.h>
12 SM_RCSID("@(#)$Id: cf.c,v 8.19 2002/09/24 20:40:59 ca Exp $")
13 #include <sendmail/pathnames.h>
16 ** GETCFNAME -- return the name of the .cf file to use.
18 ** Some systems (e.g., NeXT) determine this dynamically.
20 ** For others: returns submit.cf or sendmail.cf depending
21 ** on the modes.
23 ** Parameters:
24 ** opmode -- operation mode.
25 ** submitmode -- submit mode.
26 ** cftype -- may request a certain cf file.
27 ** conffile -- if set, return it.
29 ** Returns:
30 ** name of .cf file.
33 char *
34 getcfname(opmode, submitmode, cftype, conffile)
35 int opmode;
36 int submitmode;
37 int cftype;
38 char *conffile;
40 #if NETINFO
41 char *cflocation;
42 #endif /* NETINFO */
44 if (conffile != NULL)
45 return conffile;
47 if (cftype == SM_GET_SUBMIT_CF ||
48 ((submitmode != SUBMIT_UNKNOWN ||
49 opmode == MD_DELIVER ||
50 opmode == MD_ARPAFTP ||
51 opmode == MD_SMTP) &&
52 cftype != SM_GET_SENDMAIL_CF))
54 struct stat sbuf;
55 static char cf[MAXPATHLEN];
57 #if NETINFO
58 cflocation = ni_propval("/locations", NULL, "sendmail",
59 "submit.cf", '\0');
60 if (cflocation != NULL)
61 (void) sm_strlcpy(cf, cflocation, sizeof cf);
62 else
63 #endif /* NETINFO */
64 (void) sm_strlcpyn(cf, sizeof cf, 2, _DIR_SENDMAILCF,
65 "submit.cf");
66 if (cftype == SM_GET_SUBMIT_CF || stat(cf, &sbuf) == 0)
67 return cf;
69 #if NETINFO
70 cflocation = ni_propval("/locations", NULL, "sendmail",
71 "sendmail.cf", '\0');
72 if (cflocation != NULL)
73 return cflocation;
74 #endif /* NETINFO */
75 return _PATH_SENDMAILCF;