summaryrefslogtreecommitdiff
path: root/contrib/sendmail/libmilter/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/sendmail/libmilter/main.c')
-rw-r--r--contrib/sendmail/libmilter/main.c241
1 files changed, 0 insertions, 241 deletions
diff --git a/contrib/sendmail/libmilter/main.c b/contrib/sendmail/libmilter/main.c
deleted file mode 100644
index 4e62c45fb1446..0000000000000
--- a/contrib/sendmail/libmilter/main.c
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * Copyright (c) 1999-2003 Sendmail, Inc. and its suppliers.
- * All rights reserved.
- *
- * By using this file, you agree to the terms and conditions set
- * forth in the LICENSE file which can be found at the top level of
- * the sendmail distribution.
- *
- */
-
-#include <sm/gen.h>
-SM_RCSID("@(#)$Id: main.c,v 8.64.2.10 2003/01/23 22:34:24 ca Exp $")
-
-#define _DEFINE 1
-#include "libmilter.h"
-#include <fcntl.h>
-#include <sys/stat.h>
-
-
-static smfiDesc_ptr smfi = NULL;
-
-/*
-** SMFI_REGISTER -- register a filter description
-**
-** Parameters:
-** smfilter -- description of filter to register
-**
-** Returns:
-** MI_SUCCESS/MI_FAILURE
-*/
-
-int
-smfi_register(smfilter)
- smfiDesc_str smfilter;
-{
- size_t len;
-
- if (smfi == NULL)
- {
- smfi = (smfiDesc_ptr) malloc(sizeof *smfi);
- if (smfi == NULL)
- return MI_FAILURE;
- }
- (void) memcpy(smfi, &smfilter, sizeof *smfi);
- if (smfilter.xxfi_name == NULL)
- smfilter.xxfi_name = "Unknown";
-
- len = strlen(smfilter.xxfi_name) + 1;
- smfi->xxfi_name = (char *) malloc(len);
- if (smfi->xxfi_name == NULL)
- return MI_FAILURE;
- (void) sm_strlcpy(smfi->xxfi_name, smfilter.xxfi_name, len);
-
- /* compare milter version with hard coded version */
- if (smfi->xxfi_version != SMFI_VERSION)
- {
- /* hard failure for now! */
- smi_log(SMI_LOG_ERR,
- "%s: smfi_register: version mismatch application: %d != milter: %d",
- smfi->xxfi_name, smfi->xxfi_version,
- (int) SMFI_VERSION);
-
- /* XXX how about smfi? */
- free(smfi->xxfi_name);
- return MI_FAILURE;
- }
-
- return MI_SUCCESS;
-}
-
-/*
-** SMFI_STOP -- stop milter
-**
-** Parameters:
-** none.
-**
-** Returns:
-** success.
-*/
-
-int
-smfi_stop()
-{
- mi_stop_milters(MILTER_STOP);
- return MI_SUCCESS;
-}
-
-/*
-** default values for some variables.
-** Most of these can be changed with the functions below.
-*/
-
-static int dbg = 0;
-static char *conn = NULL;
-static int timeout = MI_TIMEOUT;
-static int backlog = MI_SOMAXCONN;
-
-#if _FFR_SMFI_OPENSOCKET
-/*
-** SMFI_OPENSOCKET -- try the socket setup to make sure we'll be
-** able to start up
-**
-** Parameters:
-** None.
-**
-** Return:
-** MI_SUCCESS/MI_FAILURE
-*/
-
-int
-smfi_opensocket()
-{
- if (smfi == NULL || conn == NULL)
- return MI_FAILURE;
-
- return mi_opensocket(conn, backlog, dbg, smfi);
-}
-#endif /* _FFR_SMFI_OPENSOCKET */
-
-/*
-** SMFI_SETDBG -- set debug level.
-**
-** Parameters:
-** odbg -- new debug level.
-**
-** Returns:
-** MI_SUCCESS
-*/
-
-int
-smfi_setdbg(odbg)
- int odbg;
-{
- dbg = odbg;
- return MI_SUCCESS;
-}
-
-/*
-** SMFI_SETTIMEOUT -- set timeout (for read/write).
-**
-** Parameters:
-** otimeout -- new timeout.
-**
-** Returns:
-** MI_SUCCESS
-*/
-
-int
-smfi_settimeout(otimeout)
- int otimeout;
-{
- timeout = otimeout;
- return MI_SUCCESS;
-}
-
-/*
-** SMFI_SETCONN -- set connection information (socket description)
-**
-** Parameters:
-** oconn -- new connection information.
-**
-** Returns:
-** MI_SUCCESS/MI_FAILURE
-*/
-
-int
-smfi_setconn(oconn)
- char *oconn;
-{
- size_t l;
-
- if (oconn == NULL || *oconn == '\0')
- return MI_FAILURE;
- l = strlen(oconn) + 1;
- if ((conn = (char *) malloc(l)) == NULL)
- return MI_FAILURE;
- if (sm_strlcpy(conn, oconn, l) >= l)
- return MI_FAILURE;
- return MI_SUCCESS;
-}
-
-/*
-** SMFI_SETBACKLOG -- set backlog
-**
-** Parameters:
-** obacklog -- new backlog.
-**
-** Returns:
-** MI_SUCCESS/MI_FAILURE
-*/
-
-int
-smfi_setbacklog(obacklog)
- int obacklog;
-{
- if (obacklog <= 0)
- return MI_FAILURE;
- backlog = obacklog;
- return MI_SUCCESS;
-}
-
-
-/*
-** SMFI_MAIN -- setup milter connnection and start listener.
-**
-** Parameters:
-** none.
-**
-** Returns:
-** MI_SUCCESS/MI_FAILURE
-*/
-
-int
-smfi_main()
-{
- int r;
-
- (void) signal(SIGPIPE, SIG_IGN);
- if (conn == NULL)
- {
- smi_log(SMI_LOG_FATAL, "%s: missing connection information",
- smfi->xxfi_name);
- return MI_FAILURE;
- }
-
- (void) atexit(mi_clean_signals);
- if (mi_control_startup(smfi->xxfi_name) != MI_SUCCESS)
- {
- smi_log(SMI_LOG_FATAL,
- "%s: Couldn't start signal thread",
- smfi->xxfi_name);
- return MI_FAILURE;
- }
- r = MI_SUCCESS;
-
- /* Startup the listener */
- if (mi_listener(conn, dbg, smfi, timeout, backlog) != MI_SUCCESS)
- r = MI_FAILURE;
- return r;
-}
-