/*
 * drivertab.c:
 *	define the available director, router, transport and lookup
 *	drivers for use by smail.
 *
 * #     #                                                   ###
 * #  #  #    ##    #####   #    #     #    #    #   ####    ###
 * #  #  #   #  #   #    #  ##   #     #    ##   #  #    #   ###
 * #  #  #  #    #  #    #  # #  #     #    # #  #  #         #
 * #  #  #  ######  #####   #  # #     #    #  # #  #  ###
 * #  #  #  #    #  #   #   #   ##     #    #   ##  #    #   ###
 *  ## ##   #    #  #    #  #    #     #    #    #   ####    ###
 *
 * THIS FILE IS GENERATED AUTOMATICALLY BY THE SCRIPT mkdrivtab.sh FROM
 * THE DRIVER CONFIGURATION FILE ../conf/driver/arpa-network
 *
 * YOU MUST MAKE CHANGES TO THE DRIVER CONF FILE AND REBUILD RATHER THAN
 * EDITING THIS FILE DIRECTLY.
 */

#include "defs.h"

#include <sys/types.h>
#include <stdio.h>

#include "smail.h"
#include "list.h"
#include "parse.h"
#include "addr.h"
#include "direct.h"
#include "route.h"
#include "transport.h"

extern struct addr *dtd_aliasinclude __P((struct director *, struct addr *, struct addr **, struct addr **, struct addr **, struct addr **));
extern char *dtb_aliasinclude __P((struct director *, struct attribute *));
extern void dtp_aliasinclude __P((FILE *, struct director *));
extern struct addr *dtd_forwardinclude __P((struct director *, struct addr *, struct addr **, struct addr **, struct addr **, struct addr **));
extern char *dtb_forwardinclude __P((struct director *, struct attribute *));
extern void dtp_forwardinclude __P((FILE *, struct director *));
extern struct addr *dtd_genericinclude __P((struct director *, struct addr *, struct addr **, struct addr **, struct addr **, struct addr **));
extern char *dtb_genericinclude __P((struct director *, struct attribute *));
extern void dtp_genericinclude __P((FILE *, struct director *));
extern struct addr *dtd_aliasfile __P((struct director *, struct addr *, struct addr **, struct addr **, struct addr **, struct addr **));
extern char *dtb_aliasfile __P((struct director *, struct attribute *));
extern void dtp_aliasfile __P((FILE *, struct director *));
extern struct addr *dtd_error __P((struct director *, struct addr *, struct addr **, struct addr **, struct addr **, struct addr **));
extern char *dtb_error __P((struct director *, struct attribute *));
extern void dtp_error __P((FILE *, struct director *));
extern struct addr *dtd_forwardfile __P((struct director *, struct addr *, struct addr **, struct addr **, struct addr **, struct addr **));
extern char *dtb_forwardfile __P((struct director *, struct attribute *));
extern void dtp_forwardfile __P((FILE *, struct director *));
extern struct addr *dtd_user __P((struct director *, struct addr *, struct addr **, struct addr **, struct addr **, struct addr **));
extern char *dtb_user __P((struct director *, struct attribute *));
extern void dtp_user __P((FILE *, struct director *));
extern struct addr *dtd_altuser __P((struct director *, struct addr *, struct addr **, struct addr **, struct addr **, struct addr **));
extern char *dtb_altuser __P((struct director *, struct attribute *));
extern void dtp_altuser __P((FILE *, struct director *));
extern struct addr *dtd_smartuser __P((struct director *, struct addr *, struct addr **, struct addr **, struct addr **, struct addr **));
extern char *dtb_smartuser __P((struct director *, struct attribute *));
extern void dtp_smartuser __P((FILE *, struct director *));
extern void rtd_pathalias __P((struct router *, struct addr *, struct addr **, struct addr **, struct addr **));
extern char *rtb_pathalias __P((struct router *, struct attribute *));
extern void rtp_pathalias __P((FILE *, struct router *));
extern void rtc_uuname __P((struct router *));
extern void rtd_uuname __P((struct router *, struct addr *, struct addr **, struct addr **, struct addr **));
extern void rtf_uuname __P((struct router *));
extern char *rtb_uuname __P((struct router *, struct attribute *));
extern void rtp_uuname __P((FILE *, struct router *));
extern void rtd_smarthost __P((struct router *, struct addr *, struct addr **, struct addr **, struct addr **));
extern char *rtb_smarthost __P((struct router *, struct attribute *));
extern void rtp_smarthost __P((FILE *, struct router *));
extern void rtd_reroute __P((struct router *, struct addr *, struct addr **, struct addr **, struct addr **));
extern char *rtb_reroute __P((struct router *, struct attribute *));
extern void rtp_reroute __P((FILE *, struct router *));
extern void rtd_rewrite __P((struct router *, struct addr *, struct addr **, struct addr **, struct addr **));
extern char *rtb_rewrite __P((struct router *, struct attribute *));
extern void rtp_rewrite __P((FILE *, struct router *));
extern void rtd_queryprogram __P((struct router *, struct addr *, struct addr **, struct addr **, struct addr **));
extern char *rtb_queryprogram __P((struct router *, struct attribute *));
extern void rtp_queryprogram __P((FILE *, struct router *));
extern void rtd_gethostbyname __P((struct router *, struct addr *, struct addr **, struct addr **, struct addr **));
extern char *rtb_gethostbyname __P((struct router *, struct attribute *));
extern void rtp_gethostbyname __P((FILE *, struct router *));
extern void rtd_gethostbyaddr __P((struct router *, struct addr *, struct addr **, struct addr **, struct addr **));
extern char *rtb_gethostbyaddr __P((struct router *, struct attribute *));
extern void rtp_gethostbyaddr __P((FILE *, struct router *));
extern void rtd_bind __P((struct router *, struct addr *, struct addr **, struct addr **, struct addr **));
extern char *rtb_bind __P((struct router *, struct attribute *));
extern void rtp_bind __P((FILE *, struct router *));
extern void tpd_pipe __P((struct addr *, struct addr **, struct addr **, struct addr **));
extern char *tpb_pipe __P((struct transport *, struct attribute *));
extern void tpp_pipe __P((FILE *, struct transport *));
extern void tpd_appendfile __P((struct addr *, struct addr **, struct addr **, struct addr **));
extern char *tpb_appendfile __P((struct transport *, struct attribute *));
extern void tpp_appendfile __P((FILE *, struct transport *));
extern void tpd_tcpsmtp __P((struct addr *, struct addr **, struct addr **, struct addr **));
extern char *tpb_tcpsmtp __P((struct transport *, struct attribute *));
extern void tpp_tcpsmtp __P((FILE *, struct transport *));
 
struct direct_driver direct_drivers[] = {
    { "aliasinclude", NULL, dtd_aliasinclude, NULL, dtb_aliasinclude, dtp_aliasinclude },
    { "forwardinclude", NULL, dtd_forwardinclude, NULL, dtb_forwardinclude, dtp_forwardinclude },
    { "genericinclude", NULL, dtd_genericinclude, NULL, dtb_genericinclude, dtp_genericinclude },
    { "aliasfile", NULL, dtd_aliasfile, NULL, dtb_aliasfile, dtp_aliasfile },
    { "error", NULL, dtd_error, NULL, dtb_error, dtp_error },
    { "forwardfile", NULL, dtd_forwardfile, NULL, dtb_forwardfile, dtp_forwardfile },
    { "user", NULL, dtd_user, NULL, dtb_user, dtp_user },
    { "altuser", NULL, dtd_altuser, NULL, dtb_altuser, dtp_altuser },
    { "smartuser", NULL, dtd_smartuser, NULL, dtb_smartuser, dtp_smartuser },
    { NULL,NULL, NULL, NULL, NULL, NULL },
}; 
 
struct route_driver route_drivers[] = {
    { "pathalias", NULL, rtd_pathalias, NULL, rtb_pathalias, rtp_pathalias },
    { "uuname", rtc_uuname, rtd_uuname, rtf_uuname, rtb_uuname, rtp_uuname },
    { "smarthost", NULL, rtd_smarthost, NULL, rtb_smarthost, rtp_smarthost },
    { "reroute", NULL, rtd_reroute, NULL, rtb_reroute, rtp_reroute },
    { "rewrite", NULL, rtd_rewrite, NULL, rtb_rewrite, rtp_rewrite },
    { "queryprogram", NULL, rtd_queryprogram, NULL, rtb_queryprogram, rtp_queryprogram },
    { "gethostbyname", NULL, rtd_gethostbyname, NULL, rtb_gethostbyname, rtp_gethostbyname },
    { "gethostbyaddr", NULL, rtd_gethostbyaddr, NULL, rtb_gethostbyaddr, rtp_gethostbyaddr },
    { "bind", NULL, rtd_bind, NULL, rtb_bind, rtp_bind },
    { NULL, NULL, NULL, NULL, NULL, NULL },
}; 
 
struct transport_driver transport_drivers[] = {
    { "pipe", NULL, tpd_pipe, NULL, tpb_pipe, tpp_pipe },
    { "appendfile", NULL, tpd_appendfile, NULL, tpb_appendfile, tpp_appendfile },
    { "tcpsmtp", NULL, tpd_tcpsmtp, NULL, tpb_tcpsmtp, tpp_tcpsmtp },
    { NULL, NULL, NULL, NULL, NULL, NULL },
}; 
 


syntax highlighted by Code2HTML, v. 0.9.1