summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr.sbin/smtpd/authenticate.c41
-rw-r--r--usr.sbin/smtpd/smtpd.c6
-rw-r--r--usr.sbin/smtpd/smtpd.h5
-rw-r--r--usr.sbin/smtpd/smtpd/Makefile10
4 files changed, 52 insertions, 10 deletions
diff --git a/usr.sbin/smtpd/authenticate.c b/usr.sbin/smtpd/authenticate.c
new file mode 100644
index 00000000000..f439dde8b87
--- /dev/null
+++ b/usr.sbin/smtpd/authenticate.c
@@ -0,0 +1,41 @@
+/* $OpenBSD: authenticate.c,v 1.1 2009/08/07 19:02:55 gilles Exp $ */
+
+/*
+ * Copyright (c) 2009 Gilles Chehade <gilles@openbsd.org>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, 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.
+ */
+
+#include <sys/types.h>
+#include <sys/queue.h>
+#include <sys/tree.h>
+#include <sys/param.h>
+#include <sys/socket.h>
+
+#include <bsd_auth.h>
+#include <err.h>
+#include <event.h>
+#include <pwd.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "smtpd.h"
+
+int
+authenticate_user(char *username, char *password)
+{
+ return auth_userokay(username, NULL, "auth-smtp", password);
+}
diff --git a/usr.sbin/smtpd/smtpd.c b/usr.sbin/smtpd/smtpd.c
index 41f72e2a7ab..02bdf26240d 100644
--- a/usr.sbin/smtpd/smtpd.c
+++ b/usr.sbin/smtpd/smtpd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: smtpd.c,v 1.80 2009/08/06 16:46:57 gilles Exp $ */
+/* $OpenBSD: smtpd.c,v 1.81 2009/08/07 19:02:55 gilles Exp $ */
/*
* Copyright (c) 2008 Gilles Chehade <gilles@openbsd.org>
@@ -29,7 +29,6 @@
#include <sys/resource.h>
#include <sys/mman.h>
-#include <bsd_auth.h>
#include <err.h>
#include <errno.h>
#include <event.h>
@@ -574,8 +573,7 @@ parent_dispatch_smtp(int fd, short event, void *p)
IMSG_SIZE_CHECK(req);
- req->success = auth_userokay(req->user, NULL,
- "auth-smtp", req->pass);
+ req->success = authenticate_user(req->user, req->pass);
imsg_compose_event(iev, IMSG_PARENT_AUTHENTICATE, 0, 0,
-1, req, sizeof(*req));
diff --git a/usr.sbin/smtpd/smtpd.h b/usr.sbin/smtpd/smtpd.h
index 43d9a55495f..aac0017a85d 100644
--- a/usr.sbin/smtpd/smtpd.h
+++ b/usr.sbin/smtpd/smtpd.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: smtpd.h,v 1.134 2009/08/06 16:46:57 gilles Exp $ */
+/* $OpenBSD: smtpd.h,v 1.135 2009/08/07 19:02:55 gilles Exp $ */
/*
* Copyright (c) 2008 Gilles Chehade <gilles@openbsd.org>
@@ -741,6 +741,9 @@ int aliases_virtual_exist(struct smtpd *, struct path *);
int aliases_virtual_get(struct smtpd *, struct aliaseslist *, struct path *);
int alias_parse(struct alias *, char *);
+/* authenticate.c */
+int authenticate_user(char *, char *);
+
/* bounce.c */
void bounce_process(struct smtpd *, struct message *);
int bounce_session(struct smtpd *, int, struct message *);
diff --git a/usr.sbin/smtpd/smtpd/Makefile b/usr.sbin/smtpd/smtpd/Makefile
index f662500d88b..0bba5ba39ba 100644
--- a/usr.sbin/smtpd/smtpd/Makefile
+++ b/usr.sbin/smtpd/smtpd/Makefile
@@ -1,10 +1,10 @@
-# $OpenBSD: Makefile,v 1.9 2009/08/06 13:40:45 gilles Exp $
+# $OpenBSD: Makefile,v 1.10 2009/08/07 19:02:55 gilles Exp $
PROG= smtpd
-SRCS= parse.y log.c bounce.c config.c buffer.c imsg.c \
- smtpd.c lka.c mfa.c queue.c mta.c mda.c control.c \
- smtp.c smtp_session.c store.c \
- ssl.c ssl_privsep.c dns.c aliases.c forward.c \
+SRCS= parse.y authenticate.c log.c bounce.c config.c buffer.c \
+ imsg.c smtpd.c lka.c mfa.c queue.c mta.c mda.c control.c \
+ smtp.c smtp_session.c store.c \
+ ssl.c ssl_privsep.c dns.c aliases.c forward.c \
map.c runner.c util.c queue_shared.c ruleset.c
MAN= smtpd.8 smtpd.conf.5
BINDIR= /usr/sbin