/*
 * pathnames.h - define default paths for pppd
 *
 * Copyright (c) 1999-2024 Paul Mackerras. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *
 * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO
 * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
 * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
 * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
 * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
 * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

/*
 * Paths are controlled by configure. Typically, one would pass the following options
 * to configure:
 *    ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
 *
 * Note that if the prefix variable do control all the other directory variables, e.g
 * sysconfdir is ${prefix}/etc. Setting prefix to /usr, you'll have to override
 * sysconfdir with /etc to avoid installing config files into /usr/etc.
 *
 * In addition, there are three explicit variables that has overrides via configure:
 * - PPPD_RUNTIME_DIR, set by --with-runtime-dir=<dir>
 * - PPPD_LOGFILE_DIR, set by --with-logfile-dir=<dir>
 * - PPPD_PLUGIN_DIR, set by --with-plugin-dir=<dir>
 */
#ifndef PPP_PATHNAMES_H
#define PPP_PATHNAMES_H

#include "pppdconf.h"

#ifdef HAVE_PATHS_H
#include <paths.h>
#endif /* HAVE_PATHS_H */

#ifndef _PATH_DEVNULL
#define _PATH_DEVNULL           "/dev/null"
#endif

#define PPP_DEVNULL             _PATH_DEVNULL

/*
 * PPPD_RUNTIME_DIR is set by passing --with-runtime-dir=<path> via configure
 *    the default value set by configure when option is absent is ${localstatedir}/run/pppd
 */
#ifdef PPPD_RUNTIME_DIR
#define PPP_PATH_VARRUN         PPPD_RUNTIME_DIR
#else
#define PPP_PATH_VARRUN         _PATH_VARRUN
#endif

/*
 * PPPD_LOGFILE_DIR is set by passing --with-logfile-dir=<path> via configure
 *    the default value set by configure when option is absent is ${localstatedir}/log/ppp
 */
#ifdef PPPD_LOGFILE_DIR
#define PPP_PATH_VARLOG         PPPD_LOGFILE_DIR
#else
#define PPP_PATH_VARLOG         _PATH_VARRUN "/log/ppp"
#endif

/*
 * PPPD_PLUGIN_DIR is set by passing --with-plugin-dir=<path> via configure
 *    the default value set by configure when option is absent is ${libdir}/pppd/${version}
 */
#ifdef PPPD_PLUGIN_DIR
#define PPP_PATH_PLUGIN         PPPD_PLUGIN_DIR
#endif /* PPPD_PLUGIN_DIR */

#define PPP_PATH_CONFDIR        SYSCONFDIR "/ppp"

#define PPP_PATH_UPAPFILE       PPP_PATH_CONFDIR "/pap-secrets"
#define PPP_PATH_CHAPFILE       PPP_PATH_CONFDIR "/chap-secrets"
#define PPP_PATH_SRPFILE        PPP_PATH_CONFDIR "/srp-secrets"

#ifdef PPP_WITH_EAPTLS
#define PPP_PATH_EAPTLSCLIFILE  PPP_PATH_CONFDIR "/eaptls-client"
#define PPP_PATH_EAPTLSSERVFILE PPP_PATH_CONFDIR "/eaptls-server"
#define PPP_PATH_OPENSSLCONFFILE PPP_PATH_CONFDIR "/openssl.cnf"
#endif /* PPP_WITH_EAPTLS */

#define PPP_PATH_SYSOPTIONS     PPP_PATH_CONFDIR "/options"
#define PPP_PATH_IPUP           PPP_PATH_CONFDIR "/ip-up"
#define PPP_PATH_IPDOWN         PPP_PATH_CONFDIR "/ip-down"
#define PPP_PATH_IPPREUP        PPP_PATH_CONFDIR "/ip-pre-up"
#define PPP_PATH_AUTHUP         PPP_PATH_CONFDIR "/auth-up"
#define PPP_PATH_AUTHDOWN       PPP_PATH_CONFDIR "/auth-down"
#define PPP_PATH_TTYOPT         PPP_PATH_CONFDIR "/options."
#define PPP_PATH_PEERFILES      PPP_PATH_CONFDIR "/peers/"
#define PPP_PATH_RESOLV         PPP_PATH_CONFDIR "/resolv.conf"

#define PPP_PATH_NET_INIT	PPP_PATH_CONFDIR "/net-init"
#define PPP_PATH_NET_PREUP	PPP_PATH_CONFDIR "/net-pre-up"
#define PPP_PATH_NET_DOWN	PPP_PATH_CONFDIR "/net-down"

#define PPP_PATH_CONNERRS       PPP_PATH_VARLOG  "/connect-errors"

#define PPP_PATH_USEROPT        ".ppprc"
#define PPP_PATH_PSEUDONYM	    ".ppp_pseudonym"

#ifdef PPP_WITH_IPV6CP
#define PPP_PATH_IPV6UP         PPP_PATH_CONFDIR "/ipv6-up"
#define PPP_PATH_IPV6DOWN       PPP_PATH_CONFDIR "/ipv6-down"
#endif

#define PPP_PATH_PPPDB          PPP_PATH_VARRUN  "/pppd2.tdb"

#ifdef __linux__
#define PPP_PATH_LOCKDIR        "/var/lock"
#else
#ifdef SVR4
#define PPP_PATH_LOCKDIR        "/var/spool/locks"
#else
#define PPP_PATH_LOCKDIR        "/var/spool/lock"
#endif
#endif


#endif /* PPP_PATHNAMES_H */
