diff options
author | Rene Ladan <rene@FreeBSD.org> | 2019-01-16 10:55:55 +0000 |
---|---|---|
committer | Rene Ladan <rene@FreeBSD.org> | 2019-01-16 10:55:55 +0000 |
commit | 3548bba0f97dd2482acc1cefe52022e5fc5cf21f (patch) | |
tree | 1001aba0a8b8ee0e13c8d87def95bcb5541f1af4 /mail | |
parent | 39315a710b2ac331f0ecdaf9c3ce24393719dfa5 (diff) | |
download | ports-3548bba0f97dd2482acc1cefe52022e5fc5cf21f.tar.gz ports-3548bba0f97dd2482acc1cefe52022e5fc5cf21f.zip |
Notes
Diffstat (limited to 'mail')
-rw-r--r-- | mail/panda-imap/Makefile | 8 | ||||
-rw-r--r-- | mail/panda-imap/files/patch-src_imapd_Makefile | 6 | ||||
-rw-r--r-- | mail/panda-imap/files/patch-src_imapd_imapd.c | 89 | ||||
-rw-r--r-- | mail/panda-imap/files/patch-src_ipopd_Makefile | 6 | ||||
-rw-r--r-- | mail/panda-imap/files/patch-src_ipopd_ipop3d.c | 122 | ||||
-rw-r--r-- | mail/panda-imap/files/pkg-message.in | 8 |
6 files changed, 5 insertions, 234 deletions
diff --git a/mail/panda-imap/Makefile b/mail/panda-imap/Makefile index 906f64570609..67561e7da5a6 100644 --- a/mail/panda-imap/Makefile +++ b/mail/panda-imap/Makefile @@ -30,21 +30,15 @@ ALL_TARGET= bsf # This port must have the same SSL settings as mail/cclient, which it depends on # To make MBX format the default mailbox format, change the settings of cclient -OPTIONS_DEFINE= SSL SSL_AND_PLAINTEXT DRAC NETSCAPE_BRAIN_DAMAGE DOCS +OPTIONS_DEFINE= SSL SSL_AND_PLAINTEXT NETSCAPE_BRAIN_DAMAGE DOCS OPTIONS_DEFAULT= SSL OPTIONS_SUB= yes SSL_AND_PLAINTEXT_DESC= Allow plain text passwords and SSL -DRAC_DESC= Dynamically open MTA for relaying NETSCAPE_BRAIN_DAMAGE_DESC= See Makefile for documentation .include <bsd.port.options.mk> -.if ${PORT_OPTIONS:MDRAC} -BUILD_DEPENDS+= ${LOCALBASE}/lib/libdrac.a:mail/drac -MAKE_ARGS+= WITH_DRAC=yes -.endif - .if ! ${PORT_OPTIONS:MSSL} MAKE_ARGS+= SSLTYPE=none SSLDIR=${OPENSSLBASE} .else diff --git a/mail/panda-imap/files/patch-src_imapd_Makefile b/mail/panda-imap/files/patch-src_imapd_Makefile index ef72fc24c6aa..33e618ab2405 100644 --- a/mail/panda-imap/files/patch-src_imapd_Makefile +++ b/mail/panda-imap/files/patch-src_imapd_Makefile @@ -27,7 +27,7 @@ # Un-comment to enable the ESEARCH command. Unfortunately, the iOS4 Mail # client misinterprets the ESEARCH results due to an ambiguity in RFC 4731. -@@ -46,23 +48,21 @@ +@@ -46,23 +44,21 @@ # Get local definitions from c-client directory @@ -41,10 +41,6 @@ -DUSERALERTFILE=\"$(USERALERT)\" -DSHUTDOWNFILE=\"$(SHUTDOWN)\" -LDFLAGS = $(CCLIENTLIB) `cat $C/LDFLAGS` +LDFLAGS+= $(EXTRALDFLAGS) -L$(LOCALBASE)/lib -lc-client4 -+.if defined(WITH_DRAC) -+CFLAGS+= -DETC_DIR=\"$(PREFIX)/etc\" -DDRAC_AUTH -+LDFLAGS+= -ldrac -+.endif all: imapd diff --git a/mail/panda-imap/files/patch-src_imapd_imapd.c b/mail/panda-imap/files/patch-src_imapd_imapd.c deleted file mode 100644 index a6988d8ea9e3..000000000000 --- a/mail/panda-imap/files/patch-src_imapd_imapd.c +++ /dev/null @@ -1,89 +0,0 @@ ---- src/imapd/imapd.c.orig 2013-06-21 23:29:17.000000000 +0200 -+++ src/imapd/imapd.c 2014-11-23 22:59:07.000000000 +0100 -@@ -37,6 +37,11 @@ - #include "newsrc.h" - #include <sys/stat.h> - -+#ifdef DRAC_AUTH -+#include <netinet/in.h> -+#include <arpa/inet.h> -+#include <stdlib.h> -+#endif /* DRAC_AUTH */ - - #define CRLF PSOUT ("\015\012") /* primary output terpri */ - -@@ -214,6 +219,12 @@ - - /* Global storage */ - -+#ifdef DRAC_AUTH -+#define DRACTIMEOUT 10*60 /* check every 10 minutes */ -+time_t lastdrac = 0; /* time of last drac check */ -+extern char *getenv (); -+#endif /* DRAC_AUTH */ -+ - char *version = "417"; /* edit number of this server */ - char *logout = "Logout"; /* syslogreason for logout */ - char *goodbye = NIL; /* bye reason */ -@@ -294,7 +305,50 @@ - msg_string_next, /* get next byte in string structure */ - msg_string_setpos /* set position in string structure */ - }; -- -+ -+#ifdef DRAC_AUTH -+/* DRAC Authorization -+ */ -+void drac_auth () -+{ -+ if (time (0) > lastdrac + DRACTIMEOUT) -+ { -+ FILE *dracconf; -+ char host[100]; -+ char *drachost; -+ char *err; -+ char *p; -+ -+ if ( (dracconf = fopen(ETC_DIR "/dracd.host", "r")) == NULL) -+ { -+ syslog (LOG_INFO, "dracd: error opening %s/dracd.host config file",ETC_DIR); -+ exit(1); -+ } -+ -+ fgets(host, 100, dracconf); -+ p = strchr(host, '\n'); -+ if(p != NULL) -+ *p = '\0'; -+ fclose(dracconf); -+ -+ if( drachost = (host) ) -+ { -+ struct sockaddr_in sin; -+ int sinlen = sizeof (struct sockaddr_in); -+ char *client = getpeername (0,(struct sockaddr *) &sin,(void *) &sinlen) ? -+ "UNKNOWN" : inet_ntoa (sin.sin_addr); -+ -+ lastdrac = time(0); -+ -+ if (dracauth(drachost, inet_addr(client), &err) != 0) -+ syslog (LOG_INFO, err); -+ else -+ syslog (LOG_INFO, "dracd: authorized ip %s", client); -+ } -+ } -+} -+#endif /* DRAC_AUTH */ -+ - /* Main program */ - - int main (int argc,char *argv[]) -@@ -1613,6 +1667,9 @@ - lasterror ()); - return; - } -+ #ifdef DRAC_AUTH -+ drac_auth(); -+ #endif /* DRAC_AUTH */ - /* change in number of messages? */ - if (existsquelled || (nmsgs != stream->nmsgs)) { - PSOUT ("* "); diff --git a/mail/panda-imap/files/patch-src_ipopd_Makefile b/mail/panda-imap/files/patch-src_ipopd_Makefile index 2464eff218fd..a538cb910b16 100644 --- a/mail/panda-imap/files/patch-src_ipopd_Makefile +++ b/mail/panda-imap/files/patch-src_ipopd_Makefile @@ -1,6 +1,6 @@ --- src/ipopd/Makefile.orig Wed Oct 25 01:55:07 2000 +++ src/ipopd/Makefile Mon Oct 1 03:44:26 2001 -@@ -19,29 +19,25 @@ +@@ -19,29 +19,21 @@ C = ../c-client @@ -15,10 +15,6 @@ -LDFLAGS = $(CCLIENTLIB) `cat $C/LDFLAGS` +CFLAGS+= -DNFSKLUDGE -I$(LOCALBASE)/include/c-client +LDFLAGS+= -L$(LOCALBASE)/lib -lc-client4 -+.if defined(WITH_DRAC) -+CFLAGS+= -DDRAC_AUTH -DETC_DIR=\"$(PREFIX)/etc\" -+LDFLAGS+= -ldrac -+.endif ipopd: ipop2d ipop3d diff --git a/mail/panda-imap/files/patch-src_ipopd_ipop3d.c b/mail/panda-imap/files/patch-src_ipopd_ipop3d.c index a9f3715c6158..0b3fb92483ee 100644 --- a/mail/panda-imap/files/patch-src_ipopd_ipop3d.c +++ b/mail/panda-imap/files/patch-src_ipopd_ipop3d.c @@ -1,86 +1,6 @@ --- src/ipopd/ipop3d.c.orig 2008-06-04 20:18:34.000000000 +0200 +++ src/ipopd/ipop3d.c 2009-01-16 10:19:50.000000000 +0100 -@@ -34,6 +34,11 @@ - #include <time.h> - #include "c-client.h" - -+#ifdef DRAC_AUTH -+#include <netinet/in.h> -+#include <arpa/inet.h> -+#include <stdlib.h> -+#endif /* DRAC_AUTH */ - - #define CRLF PSOUT ("\015\012") /* primary output terpri */ - -@@ -59,6 +64,12 @@ - - /* Global storage */ - -+#ifdef DRAC_AUTH -+#define DRACTIMEOUT 10*60 /* check every 10 minutes */ -+time_t lastdrac = 0; /* time of last drac check */ -+extern char *getenv (); -+#endif /* DRAC_AUTH */ -+ - char *version = "104"; /* edit number of this server */ - short state = AUTHORIZATION; /* server state */ - short critical = NIL; /* non-zero if in critical code */ -@@ -100,7 +111,53 @@ - int mbxopen (char *mailbox); - long blat (char *text,long lines,unsigned long size,STRING *st); - void rset (); -- -+#ifdef DRAC_AUTH -+void drac_auth(); -+#endif /* DRAC_AUTH */ -+ -+#ifdef DRAC_AUTH -+/* DRAC Authorization -+ */ -+void drac_auth () -+{ -+ if (time (0) > lastdrac + DRACTIMEOUT) -+ { -+ FILE *dracconf; -+ char host[100]; -+ char *drachost; -+ char *err; -+ char *p; -+ -+ if ( (dracconf = fopen(ETC_DIR "/dracd.host", "r")) == NULL) -+ { -+ syslog (LOG_INFO, "dracd: error opening %s/dracd.host config file",ETC_DIR); -+ exit(1); -+ } -+ -+ fgets(host, 100, dracconf); -+ p = strchr(host, '\n'); -+ if(p != NULL) -+ *p = '\0'; -+ fclose(dracconf); -+ -+ if( drachost = (host) ) -+ { -+ struct sockaddr_in sin; -+ int sinlen = sizeof (struct sockaddr_in); -+ char *client = getpeername (0,(struct sockaddr *) &sin,(void *) &sinlen) ? -+ "UNKNOWN" : inet_ntoa (sin.sin_addr); -+ -+ lastdrac = time(0); -+ -+ if (dracauth(drachost, inet_addr(client), &err) != 0) -+ syslog (LOG_INFO, err); -+ else -+ syslog (LOG_INFO, "dracd: authorized ip %s", client); -+ } -+ } -+} -+#endif /* DRAC_AUTH */ -+ - /* Main program */ - - int main (int argc,char *argv[]) -@@ -113,7 +170,7 @@ +@@ -113,7 +113,7 @@ (((s = strrchr (argv[0],'/')) || (s = strrchr (argv[0],'\\'))) ? s+1 : argv[0]) : "ipop3d"; /* set service name before linkage */ @@ -89,43 +9,3 @@ #include "linkage.c" /* initialize server */ server_init (pgmname,"pop3","pop3s",clkint,kodint,hupint,trmint,NIL); -@@ -228,9 +285,13 @@ - syslog (LOG_INFO,"AUTHENTICATE %s failure host=%.80s",s, - tcp_clienthost ()); - } -- else if ((state = mbxopen ("INBOX")) == TRANSACTION) -+ else if ((state = mbxopen ("INBOX")) == TRANSACTION) { -+ #ifdef DRAC_AUTH -+ drac_auth(); -+ #endif /* DRAC_AUTH */ - syslog (LOG_INFO,"Auth user=%.80s host=%.80s nmsgs=%lu/%lu", - user,tcp_clienthost (),nmsgs,stream->nmsgs); -+ } - else syslog (LOG_INFO,"Auth user=%.80s host=%.80s no mailbox", - user,tcp_clienthost ()); - } -@@ -260,9 +321,13 @@ - PSOUT ("-ERR Missing APOP argument\015\012"); - else if (!(user = apop_login (challenge,s,t,argc,argv))) - PSOUT ("-ERR Bad APOP\015\012"); -- else if ((state = mbxopen ("INBOX")) == TRANSACTION) -+ else if ((state = mbxopen ("INBOX")) == TRANSACTION) { -+ #ifdef DRAC_AUTH -+ drac_auth(); -+ #endif /* DRAC_AUTH */ - syslog (LOG_INFO,"APOP user=%.80s host=%.80s nmsgs=%lu/%lu", - user,tcp_clienthost (),nmsgs,stream->nmsgs); -+ } - else syslog (LOG_INFO,"APOP user=%.80s host=%.80s no mailbox", - user,tcp_clienthost ()); - } -@@ -665,6 +730,9 @@ - /* attempt the login */ - if (server_login (user,pass,t,argc,argv)) { - int ret = mbxopen ("INBOX"); -+ #ifdef DRAC_AUTH -+ drac_auth(); -+ #endif /* DRAC_AUTH */ - if (ret == TRANSACTION) /* mailbox opened OK? */ - syslog (LOG_INFO,"%sLogin user=%.80s host=%.80s nmsgs=%lu/%lu", - t ? "Admin " : "",user,tcp_clienthost (),nmsgs,stream->nmsgs); diff --git a/mail/panda-imap/files/pkg-message.in b/mail/panda-imap/files/pkg-message.in index 62b3f7d2c277..83065b4546bb 100644 --- a/mail/panda-imap/files/pkg-message.in +++ b/mail/panda-imap/files/pkg-message.in @@ -31,13 +31,7 @@ dir accessed. WITHOUT_SSL - build without SSL/encryption support. WITH_SSL_AND_PLAINTEXT - build with SSL/encryption support, but allow non-encrypted logins. -%%DRAC%%================================================================================ -%%DRAC%%To have DRAC working, you must create ${PREFIX}/etc/dracd.host, containing -%%DRAC%%the hostname of the DRAC server: -%%DRAC%% -%%DRAC%%localhost -%%DRAC%%================================================================================ -%%SSL%% +%%SSL%%================================================================================ %%SSL%%To create and install a new SSL certificate for imapd and ipop3d, type \"make %%SSL%%cert\". Or install manually in ${PREFIX}/certs. %%SSL%% |