summaryrefslogtreecommitdiff
path: root/pop3d.c
diff options
context:
space:
mode:
authorSunil Nimmagadda <sunil@esdenera.com>2017-01-09 15:30:35 +0500
committerSunil Nimmagadda <sunil@esdenera.com>2017-01-09 15:30:35 +0500
commit44593728dbb10317a8ec0ca60e1ca7bbb8989d98 (patch)
treea68852b6a7cb9b9800abee51a2782874df02d763 /pop3d.c
parentcccc2eb125674423d902d77a4abd6e30fd0ace67 (diff)
Provide an option to specify cert/key on commandline.
While here, document new options and fix mandoc lint warnings.
Diffstat (limited to 'pop3d.c')
-rw-r--r--pop3d.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/pop3d.c b/pop3d.c
index f16b0cd..e24f24b 100644
--- a/pop3d.c
+++ b/pop3d.c
@@ -38,6 +38,8 @@
#define MBOX_PATH "/var/mail/%u"
#define MAILDIR_PATH "~/Maildir"
#define POP3D_USER "_pop3d"
+#define CERTFILE "/etc/ssl/server.crt"
+#define KEYFILE "/etc/ssl/private/server.key"
static void authenticate(struct imsgev *, struct imsg *);
static void pop3e_imsgev(struct imsgev *, int , struct imsg *);
@@ -56,13 +58,20 @@ main(int argc, char *argv[])
struct passwd *pw;
struct event ev_sigint, ev_sigterm, ev_sighup, ev_sigchld;
const char *path = NULL, *mtype_str = "mbox";
+ const char *cert = CERTFILE, *key = KEYFILE;
int ch, d = 0, pair[2];
- while ((ch = getopt(argc, argv, "dp:t:")) != -1) {
+ while ((ch = getopt(argc, argv, "c:dk:p:t:")) != -1) {
switch (ch) {
+ case 'c':
+ cert = optarg;
+ break;
case 'd':
d = 1;
break;
+ case 'k':
+ key = optarg;
+ break;
case 'p':
path = optarg;
break;
@@ -101,7 +110,7 @@ main(int argc, char *argv[])
if ((pw = getpwnam(POP3D_USER)) == NULL)
fatalx("main: getpwnam " POP3D_USER);
- pop3_main(pair, pw);
+ pop3_main(pair, pw, cert, key);
close(pair[1]);
setproctitle("[priv]");
logit(LOG_INFO, "pop3d ready; type:%s, path:%s", mtype_str, mpath);
@@ -233,7 +242,8 @@ usage(void)
{
extern char *__progname;
- fprintf(stderr, "usage: %s [-d] [-p path] [-t type]\n", __progname);
+ fprintf(stderr, "usage: %s [-c certfile] [-d] "
+ "[-k keyfile] [-p path] [-t type]\n", __progname);
exit(EXIT_FAILURE);
}