diff options
author | ume <ume@FreeBSD.org> | 2005-12-21 01:35:41 +0800 |
---|---|---|
committer | ume <ume@FreeBSD.org> | 2005-12-21 01:35:41 +0800 |
commit | 9cef6eb07589368f7cbd5f9c27d6b534d8dd4388 (patch) | |
tree | 9c0ac7f5e4ebc15fbeebb4da1ffb73ae8e8729fb /mail | |
parent | 49819824a3b5f9e724ebc4ae059507f2c3b4db6e (diff) | |
download | freebsd-ports-gnome-9cef6eb07589368f7cbd5f9c27d6b534d8dd4388.tar.gz freebsd-ports-gnome-9cef6eb07589368f7cbd5f9c27d6b534d8dd4388.tar.zst freebsd-ports-gnome-9cef6eb07589368f7cbd5f9c27d6b534d8dd4388.zip |
Update to 2.3.1.
Diffstat (limited to 'mail')
-rw-r--r-- | mail/cyrus-imapd23/Makefile | 5 | ||||
-rw-r--r-- | mail/cyrus-imapd23/distinfo | 6 | ||||
-rw-r--r-- | mail/cyrus-imapd23/files/drac_auth.patch | 294 | ||||
-rw-r--r-- | mail/cyrus-imapd23/files/patch-imap::Makefile.in | 27 | ||||
-rw-r--r-- | mail/cyrus-imapd23/files/patch-man::Makefile.in | 9 | ||||
-rw-r--r-- | mail/cyrus-imapd24/Makefile | 5 | ||||
-rw-r--r-- | mail/cyrus-imapd24/distinfo | 6 | ||||
-rw-r--r-- | mail/cyrus-imapd24/files/drac_auth.patch | 294 | ||||
-rw-r--r-- | mail/cyrus-imapd24/files/patch-imap::Makefile.in | 27 | ||||
-rw-r--r-- | mail/cyrus-imapd24/files/patch-man::Makefile.in | 9 |
10 files changed, 10 insertions, 672 deletions
diff --git a/mail/cyrus-imapd23/Makefile b/mail/cyrus-imapd23/Makefile index a2ca02cc2138..6b88245b489d 100644 --- a/mail/cyrus-imapd23/Makefile +++ b/mail/cyrus-imapd23/Makefile @@ -6,7 +6,7 @@ # PORTNAME= cyrus-imapd -PORTVERSION= 2.3.0 +PORTVERSION= 2.3.1 #PORTREVISION= 0 CATEGORIES= mail ipv6 MASTER_SITES= ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/ \ @@ -181,8 +181,7 @@ CONFIGURE_ARGS+=--enable-netscapehack .endif .if defined(WITH_DRAC) -#EXTRA_PATCHES+= ${WRKSRC}/contrib/drac_auth.patch -EXTRA_PATCHES+= ${FILESDIR}/drac_auth.patch +EXTRA_PATCHES+= ${WRKSRC}/contrib/drac_auth.patch EXTRA_PATCHES+= ${FILESDIR}/extra-patch-cmulocal::berkdb.m4 \ ${FILESDIR}/extra-patch-cmulocal::ucdsnmp.m4 \ ${FILESDIR}/extra-patch-configure.in diff --git a/mail/cyrus-imapd23/distinfo b/mail/cyrus-imapd23/distinfo index 8878e6d2791a..e4ac443a55df 100644 --- a/mail/cyrus-imapd23/distinfo +++ b/mail/cyrus-imapd23/distinfo @@ -1,3 +1,3 @@ -MD5 (cyrus-imapd-2.3.0.tar.gz) = db628d09f65567ffaed0e8e276ff70ed -SHA256 (cyrus-imapd-2.3.0.tar.gz) = add45a75b1f04df3cd0ccfe85ad361aa4c3a240c4fa23143bee39ef8873a49f4 -SIZE (cyrus-imapd-2.3.0.tar.gz) = 2209689 +MD5 (cyrus-imapd-2.3.1.tar.gz) = cde15876d5c953bba9ad9f7811aff695 +SHA256 (cyrus-imapd-2.3.1.tar.gz) = 79f95ed36160056f5ca60fad312fda8c6c95eafeab44f49b360b4a02790f156c +SIZE (cyrus-imapd-2.3.1.tar.gz) = 2212999 diff --git a/mail/cyrus-imapd23/files/drac_auth.patch b/mail/cyrus-imapd23/files/drac_auth.patch deleted file mode 100644 index 7369bb39839a..000000000000 --- a/mail/cyrus-imapd23/files/drac_auth.patch +++ /dev/null @@ -1,294 +0,0 @@ -Index: configure.in -diff -u configure.in.orig configure.in ---- configure.in.orig Wed Apr 13 05:05:20 2005 -+++ configure.in Sat Dec 10 16:16:15 2005 -@@ -1003,6 +1003,19 @@ - SNMP_SUBDIRS="" - AC_SUBST(SNMP_SUBDIRS) - -+dnl -+dnl Test for DRAC -+dnl -+DRACLIBS= -+AC_ARG_WITH(drac, [ --with-drac=DIR use DRAC library in <DIR> [no] ], -+ if test -d "$withval"; then -+ LDFLAGS="$LDFLAGS -L${withval}" -+ AC_CHECK_LIB(drac, dracauth, -+ AC_DEFINE(DRAC_AUTH,[],[Build DRAC support?]) -+ DRACLIBS="-ldrac") -+ fi) -+AC_SUBST(DRACLIBS) -+ - CMU_LIBWRAP - CMU_UCDSNMP - -Index: imap/Makefile.in -diff -u imap/Makefile.in.orig imap/Makefile.in ---- imap/Makefile.in.orig Fri Nov 18 00:46:14 2005 -+++ imap/Makefile.in Sat Dec 10 16:17:44 2005 -@@ -66,6 +66,7 @@ - SIEVE_LIBS = @SIEVE_LIBS@ - IMAP_COM_ERR_LIBS = @IMAP_COM_ERR_LIBS@ - LIB_WRAP = @LIB_WRAP@ -+DRAC_LIBS = @DRACLIBS@ - LIBS = $(IMAP_LIBS) $(IMAP_COM_ERR_LIBS) - DEPLIBS = ../lib/libcyrus.a ../lib/libcyrus_min.a @DEPLIBS@ - -@@ -202,17 +203,17 @@ - imapd: xversion $(IMAPDOBJS) mutex_fake.o libimap.a $(DEPLIBS) $(SERVICE) - $(CC) $(LDFLAGS) -o imapd \ - $(SERVICE) $(IMAPDOBJS) mutex_fake.o \ -- libimap.a $(DEPLIBS) $(LIBS) $(LIB_WRAP) -+ libimap.a $(DEPLIBS) $(LIBS) $(LIB_WRAP) $(DRAC_LIBS) - - imapd.pure: $(IMAPDOBJS) mutex_fake.o libimap.a $(DEPLIBS) $(SERVICE) - $(PURIFY) $(PUREOPT) $(CC) $(LDFLAGS) -o imapd.pure \ - $(SERVICE) $(IMAPDOBJS) mutex_fake.o libimap.a \ -- $(DEPLIBS) $(LIBS) $(LIB_WRAP) -+ $(DEPLIBS) $(LIBS) $(LIB_WRAP) $(DRAC_LIBS) - - imapd.quant: $(IMAPDOBJS) mutex_fake.o libimap.a $(DEPLIBS) $(SERVICE) - $(QUANTIFY) $(QUANTOPT) $(CC) $(LDFLAGS) -o imapd.quant \ - $(SERVICE) $(IMAPDOBJS) mutex_fake.o libimap.a \ -- $(DEPLIBS) $(LIBS) $(LIB_WRAP) -+ $(DEPLIBS) $(LIBS) $(LIB_WRAP) $(DRAC_LIBS) $(DRAC_LIBS) - - mupdate: mupdate.o mupdate-slave.o mupdate-client.o mutex_pthread.o tls.o \ - libimap.a $(DEPLIBS) -@@ -230,7 +231,7 @@ - pop3d: pop3d.o proxy.o backend.o tls.o mutex_fake.o libimap.a \ - $(DEPLIBS) $(SERVICE) - $(CC) $(LDFLAGS) -o pop3d pop3d.o proxy.o backend.o tls.o $(SERVICE) \ -- mutex_fake.o libimap.a $(DEPLIBS) $(LIBS) $(LIB_WRAP) -+ mutex_fake.o libimap.a $(DEPLIBS) $(LIBS) $(LIB_WRAP) $(DRAC_LIBS) - - nntpd: nntpd.o proxy.o backend.o index.o smtpclient.o spool.o tls.o \ - mutex_fake.o nntp_err.o libimap.a $(DEPLIBS) $(SERVICE) -Index: imap/imapd.c -diff -u -p imap/imapd.c.orig imap/imapd.c ---- imap/imapd.c.orig Tue Nov 22 04:48:36 2005 -+++ imap/imapd.c Sat Dec 10 16:16:16 2005 -@@ -172,6 +172,18 @@ static struct proxy_context imapd_proxyc - 1, 1, &imapd_authstate, &imapd_userisadmin, &imapd_userisproxyadmin - }; - -+#ifdef DRAC_AUTH -+static struct { -+ int interval; /* dracd "ping" interval; 0 = disabled */ -+ unsigned long clientaddr; -+ struct prot_waitevent *event; -+} drac; -+ -+extern int dracconn(char *server, char **errmsg); -+extern int dracsend(unsigned long userip, char **errmsg); -+extern int dracdisc(char **errmsg); -+#endif /* DRAC_AUTH */ -+ - /* current sub-user state */ - static struct mailbox mboxstruct; - static struct mailbox *imapd_mailbox; -@@ -637,6 +649,23 @@ int service_init(int argc, char **argv, - idle_init(); - } - -+#ifdef DRAC_AUTH -+ /* setup for sending DRAC "pings" */ -+ drac.event = NULL; -+ drac.interval = config_getint(IMAPOPT_DRACINTERVAL); -+ if (drac.interval < 0) drac.interval = 0; -+ if (drac.interval) { -+ char *err; -+ -+ if (dracconn((char*) config_getstring(IMAPOPT_DRACHOST), &err) != 0) { -+ /* disable DRAC */ -+ drac.interval = 0; -+ syslog(LOG_ERR, "dracconn: %s", err); -+ syslog(LOG_ERR, "DRAC notifications disabled"); -+ } -+ } -+#endif /* DRAC_AUTH */ -+ - /* create connection to the SNMP listener, if available. */ - snmp_connect(); /* ignore return code */ - snmp_set_str(SERVER_NAME_VERSION,CYRUS_VERSION); -@@ -741,6 +770,15 @@ int service_main(int argc __attribute__( - imapd_haveaddr = 1; - } - } -+ -+#ifdef DRAC_AUTH -+ if (((struct sockaddr *)&imapd_remoteaddr)->sa_family == AF_INET) -+ drac.clientaddr = ((struct sockaddr_in *)&imapd_remoteaddr)->sin_addr.s_addr; -+ else -+ drac.clientaddr = 0; -+ } else { -+ drac.clientaddr = 0; -+#endif /* DRAC_AUTH */ - } - - /* create the SASL connection */ -@@ -783,6 +821,11 @@ int service_main(int argc __attribute__( - prot_flush(imapd_out); - snmp_increment(ACTIVE_CONNECTIONS, -1); - -+#ifdef DRAC_AUTH -+ if (drac.event) prot_removewaitevent(imapd_in, drac.event); -+ drac.event = NULL; -+#endif /* DRAC_AUTH */ -+ - /* cleanup */ - imapd_reset(); - -@@ -873,6 +916,10 @@ void shut_down(int code) - - cyrus_done(); - -+#ifdef DRAC_AUTH -+ if (drac.interval) (void) dracdisc((char **)NULL); -+#endif /* DRAC_AUTH */ -+ - exit(code); - } - -@@ -932,6 +979,35 @@ static void imapd_check(struct backend * - } - } - -+#ifdef DRAC_AUTH -+/* -+ * Ping dracd every 'drac.interval' minutes -+ * to let it know that we are still connected -+ */ -+struct prot_waitevent *drac_ping(struct protstream *s, -+ struct prot_waitevent *ev, void *rock) -+{ -+ char *err; -+ static int nfailure = 0; -+ -+ if (dracsend(drac.clientaddr, &err) != 0) { -+ syslog(LOG_ERR, "dracsend: %s", err); -+ if (++nfailure >= 3) { -+ /* can't contact dracd for 3 consecutive tries - disable DRAC */ -+ prot_removewaitevent(s, ev); -+ drac.event = NULL; -+ syslog(LOG_ERR, "DRAC notifications disabled"); -+ return NULL; -+ } -+ } -+ else -+ nfailure = 0; -+ -+ ev->mark = time(NULL) + (drac.interval * 60); -+ return ev; -+} -+#endif /* DRAC_AUTH */ -+ - /* - * Top-level command loop parsing - */ -@@ -2030,6 +2106,11 @@ void cmd_login(char *tag, char *user) - - prot_printf(imapd_out, "%s OK %s\r\n", tag, reply); - -+#ifdef DRAC_AUTH -+ if (drac.interval && drac.clientaddr) -+ drac.event = prot_addwaitevent(imapd_in, 0 /* now */, drac_ping, NULL); -+#endif /* DRAC_AUTH */ -+ - /* Create telemetry log */ - imapd_logfd = telemetry_log(imapd_userid, imapd_in, imapd_out, 0); - -@@ -2178,6 +2259,11 @@ cmd_authenticate(char *tag, char *authty - - prot_setsasl(imapd_in, imapd_saslconn); - prot_setsasl(imapd_out, imapd_saslconn); -+ -+#ifdef DRAC_AUTH -+ if (drac.interval && drac.clientaddr) -+ drac.event = prot_addwaitevent(imapd_in, 0 /* now */, drac_ping, NULL); -+#endif /* DRAC_AUTH */ - - /* Create telemetry log */ - imapd_logfd = telemetry_log(imapd_userid, imapd_in, imapd_out, 0); -Index: imap/pop3d.c -diff -u -p imap/pop3d.c.orig imap/pop3d.c ---- imap/pop3d.c.orig Sat Jun 4 08:07:46 2005 -+++ imap/pop3d.c Sat Dec 10 16:16:16 2005 -@@ -103,6 +103,10 @@ extern char *optarg; - extern int opterr; - - -+#ifdef DRAC_AUTH -+static int drac_enabled; -+extern int dracauth(char *server, unsigned long userip, char **errmsg); -+#endif /* DRAC_AUTH */ - - #ifdef HAVE_SSL - static SSL *tls_conn; -@@ -507,6 +511,10 @@ int service_main(int argc __attribute__( - prot_settimeout(popd_in, timeout*60); - prot_setflushonread(popd_in, popd_out); - -+#ifdef DRAC_AUTH -+ drac_enabled = (config_getint(IMAPOPT_DRACINTERVAL) > 0); -+#endif /* DRAC_AUTH */ -+ - if (kflag) kpop(); - - /* we were connected on pop3s port so we should do -@@ -1636,6 +1644,21 @@ int openinbox(void) - popd_mailbox = &mboxstruct; - proc_register("pop3d", popd_clienthost, popd_userid, - popd_mailbox->name); -+ -+#ifdef DRAC_AUTH -+ if (drac_enabled && -+ ((struct sockaddr *)&popd_remoteaddr)->sa_family == AF_INET) { -+ char *err; -+ -+ if (dracauth((char*) config_getstring(IMAPOPT_DRACHOST), -+ ((struct sockaddr_in *)&popd_remoteaddr)->sin_addr.s_addr, &err) != 0) { -+ /* disable DRAC */ -+ drac_enabled = 0; -+ syslog(LOG_ERR, "dracauth: %s", err); -+ syslog(LOG_ERR, "DRAC notifications disabled"); -+ } -+ } -+#endif /* DRAC_AUTH */ - } - - /* Create telemetry log */ -Index: imap/version.c -diff -u -p imap/version.c.orig imap/version.c ---- imap/version.c.orig Thu Feb 17 06:06:19 2005 -+++ imap/version.c Sat Dec 10 16:16:16 2005 -@@ -151,6 +151,10 @@ void id_response(struct protstream *pout - snprintf(env_buf + strlen(env_buf), MAXIDVALUELEN - strlen(env_buf), - "; %s", SIEVE_VERSION); - #endif -+#ifdef DRAC_AUTH -+ snprintf(env_buf + strlen(env_buf), MAXIDVALUELEN - strlen(env_buf), -+ "; DRAC"); -+#endif - #ifdef HAVE_LIBWRAP - snprintf(env_buf + strlen(env_buf), MAXIDVALUELEN - strlen(env_buf), - "; TCP Wrappers"); -Index: lib/imapoptions -diff -u lib/imapoptions.orig lib/imapoptions ---- lib/imapoptions.orig Fri Nov 18 00:46:29 2005 -+++ lib/imapoptions Sat Dec 10 16:19:44 2005 -@@ -195,6 +195,14 @@ - { "deleteright", "c", STRING } - /* The right that a user needs to delete a mailbox. */ - -+{ "dracinterval", 5, INT } -+/* If nonzero, enables the use of DRAC (Dynamic Relay Authorization -+ Control) by the pop3d and imapd daemons. Also sets the interval -+ (in minutes) between re-authorization requests made by imapd. */ -+ -+{ "drachost", "localhost", STRING } -+/* Hostname of the RPC dracd server. */ -+ - { "duplicate_db", "berkeley-nosync", STRINGLIST("berkeley", "berkeley-nosync", "skiplist") } - /* The cyrusdb backend to use for the duplicate delivery suppression - and sieve. */ diff --git a/mail/cyrus-imapd23/files/patch-imap::Makefile.in b/mail/cyrus-imapd23/files/patch-imap::Makefile.in index cbc2f0d00243..163deb2807c3 100644 --- a/mail/cyrus-imapd23/files/patch-imap::Makefile.in +++ b/mail/cyrus-imapd23/files/patch-imap::Makefile.in @@ -31,30 +31,3 @@ diff -u imap/Makefile.in.orig imap/Makefile.in pop3d: pop3d.o proxy.o backend.o tls.o mutex_fake.o libimap.a \ $(DEPLIBS) $(SERVICE) -@@ -247,10 +247,11 @@ - $(DEPLIBS) $(LIBS) $(LIB_WRAP) - - sync_server: sync_server.o sync_support.o sync_commit.o \ -- imapparse.o tls.o libimap.a mutex_fake.o $(DEPLIBS) $(SERVICE) -+ imapparse.o tls.o libimap.a mutex_fake.o mboxkey.o \ -+ $(DEPLIBS) $(SERVICE) - $(CC) $(LDFLAGS) -o \ - sync_server sync_server.o sync_support.o sync_commit.o \ -- imapparse.o tls.o $(SERVICE) libimap.a mutex_fake.o \ -+ imapparse.o tls.o $(SERVICE) libimap.a mutex_fake.o mboxkey.o \ - $(DEPLIBS) $(LIBS) $(LIB_WRAP) - - ### Command Line Utilities -@@ -336,10 +337,10 @@ - backend.o tls.o imapparse.o libimap.a mutex_fake.o $(DEPLIBS) $(LIBS) - - sync_reset: sync_reset.o sync_support.o sync_commit.o \ -- libimap.a mutex_fake.o $(DEPLIBS) -+ libimap.a mutex_fake.o mboxkey.o $(DEPLIBS) - $(CC) $(LDFLAGS) -o \ - sync_reset sync_reset.o sync_support.o sync_commit.o \ -- libimap.a mutex_fake.o $(DEPLIBS) $(LIBS) -+ libimap.a mutex_fake.o mboxkey.o $(DEPLIBS) $(LIBS) - - ### Other Misc Targets - diff --git a/mail/cyrus-imapd23/files/patch-man::Makefile.in b/mail/cyrus-imapd23/files/patch-man::Makefile.in index 853e6ec5bd35..1b0061897d43 100644 --- a/mail/cyrus-imapd23/files/patch-man::Makefile.in +++ b/mail/cyrus-imapd23/files/patch-man::Makefile.in @@ -10,15 +10,6 @@ diff -u man/Makefile.in.orig man/Makefile.in mandir = @mandir@ -@@ -68,7 +69,7 @@ - $(srcdir)/notifyd.8 $(srcdir)/chk_cyrus.8 $(srcdir)/mbexamine.8 \ - $(srcdir)/nntpd.8 $(srcdir)/fetchnews.8 $(srcdir)/smmapd.8 \ - $(srcdir)/sync_client.8 $(srcdir)/sync_server.8 $(srcdir)/sync_reset.8 \ -- $(srcdir)/unexpunge.8 -+ $(srcdir)/unexpunge.8 $(srcdir)/make_md5.8 - - all: $(MAN1) $(MAN3) $(MAN5) $(MAN8) - @@ -95,7 +96,7 @@ done for file in $(MAN8); \ diff --git a/mail/cyrus-imapd24/Makefile b/mail/cyrus-imapd24/Makefile index a2ca02cc2138..6b88245b489d 100644 --- a/mail/cyrus-imapd24/Makefile +++ b/mail/cyrus-imapd24/Makefile @@ -6,7 +6,7 @@ # PORTNAME= cyrus-imapd -PORTVERSION= 2.3.0 +PORTVERSION= 2.3.1 #PORTREVISION= 0 CATEGORIES= mail ipv6 MASTER_SITES= ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/ \ @@ -181,8 +181,7 @@ CONFIGURE_ARGS+=--enable-netscapehack .endif .if defined(WITH_DRAC) -#EXTRA_PATCHES+= ${WRKSRC}/contrib/drac_auth.patch -EXTRA_PATCHES+= ${FILESDIR}/drac_auth.patch +EXTRA_PATCHES+= ${WRKSRC}/contrib/drac_auth.patch EXTRA_PATCHES+= ${FILESDIR}/extra-patch-cmulocal::berkdb.m4 \ ${FILESDIR}/extra-patch-cmulocal::ucdsnmp.m4 \ ${FILESDIR}/extra-patch-configure.in diff --git a/mail/cyrus-imapd24/distinfo b/mail/cyrus-imapd24/distinfo index 8878e6d2791a..e4ac443a55df 100644 --- a/mail/cyrus-imapd24/distinfo +++ b/mail/cyrus-imapd24/distinfo @@ -1,3 +1,3 @@ -MD5 (cyrus-imapd-2.3.0.tar.gz) = db628d09f65567ffaed0e8e276ff70ed -SHA256 (cyrus-imapd-2.3.0.tar.gz) = add45a75b1f04df3cd0ccfe85ad361aa4c3a240c4fa23143bee39ef8873a49f4 -SIZE (cyrus-imapd-2.3.0.tar.gz) = 2209689 +MD5 (cyrus-imapd-2.3.1.tar.gz) = cde15876d5c953bba9ad9f7811aff695 +SHA256 (cyrus-imapd-2.3.1.tar.gz) = 79f95ed36160056f5ca60fad312fda8c6c95eafeab44f49b360b4a02790f156c +SIZE (cyrus-imapd-2.3.1.tar.gz) = 2212999 diff --git a/mail/cyrus-imapd24/files/drac_auth.patch b/mail/cyrus-imapd24/files/drac_auth.patch deleted file mode 100644 index 7369bb39839a..000000000000 --- a/mail/cyrus-imapd24/files/drac_auth.patch +++ /dev/null @@ -1,294 +0,0 @@ -Index: configure.in -diff -u configure.in.orig configure.in ---- configure.in.orig Wed Apr 13 05:05:20 2005 -+++ configure.in Sat Dec 10 16:16:15 2005 -@@ -1003,6 +1003,19 @@ - SNMP_SUBDIRS="" - AC_SUBST(SNMP_SUBDIRS) - -+dnl -+dnl Test for DRAC -+dnl -+DRACLIBS= -+AC_ARG_WITH(drac, [ --with-drac=DIR use DRAC library in <DIR> [no] ], -+ if test -d "$withval"; then -+ LDFLAGS="$LDFLAGS -L${withval}" -+ AC_CHECK_LIB(drac, dracauth, -+ AC_DEFINE(DRAC_AUTH,[],[Build DRAC support?]) -+ DRACLIBS="-ldrac") -+ fi) -+AC_SUBST(DRACLIBS) -+ - CMU_LIBWRAP - CMU_UCDSNMP - -Index: imap/Makefile.in -diff -u imap/Makefile.in.orig imap/Makefile.in ---- imap/Makefile.in.orig Fri Nov 18 00:46:14 2005 -+++ imap/Makefile.in Sat Dec 10 16:17:44 2005 -@@ -66,6 +66,7 @@ - SIEVE_LIBS = @SIEVE_LIBS@ - IMAP_COM_ERR_LIBS = @IMAP_COM_ERR_LIBS@ - LIB_WRAP = @LIB_WRAP@ -+DRAC_LIBS = @DRACLIBS@ - LIBS = $(IMAP_LIBS) $(IMAP_COM_ERR_LIBS) - DEPLIBS = ../lib/libcyrus.a ../lib/libcyrus_min.a @DEPLIBS@ - -@@ -202,17 +203,17 @@ - imapd: xversion $(IMAPDOBJS) mutex_fake.o libimap.a $(DEPLIBS) $(SERVICE) - $(CC) $(LDFLAGS) -o imapd \ - $(SERVICE) $(IMAPDOBJS) mutex_fake.o \ -- libimap.a $(DEPLIBS) $(LIBS) $(LIB_WRAP) -+ libimap.a $(DEPLIBS) $(LIBS) $(LIB_WRAP) $(DRAC_LIBS) - - imapd.pure: $(IMAPDOBJS) mutex_fake.o libimap.a $(DEPLIBS) $(SERVICE) - $(PURIFY) $(PUREOPT) $(CC) $(LDFLAGS) -o imapd.pure \ - $(SERVICE) $(IMAPDOBJS) mutex_fake.o libimap.a \ -- $(DEPLIBS) $(LIBS) $(LIB_WRAP) -+ $(DEPLIBS) $(LIBS) $(LIB_WRAP) $(DRAC_LIBS) - - imapd.quant: $(IMAPDOBJS) mutex_fake.o libimap.a $(DEPLIBS) $(SERVICE) - $(QUANTIFY) $(QUANTOPT) $(CC) $(LDFLAGS) -o imapd.quant \ - $(SERVICE) $(IMAPDOBJS) mutex_fake.o libimap.a \ -- $(DEPLIBS) $(LIBS) $(LIB_WRAP) -+ $(DEPLIBS) $(LIBS) $(LIB_WRAP) $(DRAC_LIBS) $(DRAC_LIBS) - - mupdate: mupdate.o mupdate-slave.o mupdate-client.o mutex_pthread.o tls.o \ - libimap.a $(DEPLIBS) -@@ -230,7 +231,7 @@ - pop3d: pop3d.o proxy.o backend.o tls.o mutex_fake.o libimap.a \ - $(DEPLIBS) $(SERVICE) - $(CC) $(LDFLAGS) -o pop3d pop3d.o proxy.o backend.o tls.o $(SERVICE) \ -- mutex_fake.o libimap.a $(DEPLIBS) $(LIBS) $(LIB_WRAP) -+ mutex_fake.o libimap.a $(DEPLIBS) $(LIBS) $(LIB_WRAP) $(DRAC_LIBS) - - nntpd: nntpd.o proxy.o backend.o index.o smtpclient.o spool.o tls.o \ - mutex_fake.o nntp_err.o libimap.a $(DEPLIBS) $(SERVICE) -Index: imap/imapd.c -diff -u -p imap/imapd.c.orig imap/imapd.c ---- imap/imapd.c.orig Tue Nov 22 04:48:36 2005 -+++ imap/imapd.c Sat Dec 10 16:16:16 2005 -@@ -172,6 +172,18 @@ static struct proxy_context imapd_proxyc - 1, 1, &imapd_authstate, &imapd_userisadmin, &imapd_userisproxyadmin - }; - -+#ifdef DRAC_AUTH -+static struct { -+ int interval; /* dracd "ping" interval; 0 = disabled */ -+ unsigned long clientaddr; -+ struct prot_waitevent *event; -+} drac; -+ -+extern int dracconn(char *server, char **errmsg); -+extern int dracsend(unsigned long userip, char **errmsg); -+extern int dracdisc(char **errmsg); -+#endif /* DRAC_AUTH */ -+ - /* current sub-user state */ - static struct mailbox mboxstruct; - static struct mailbox *imapd_mailbox; -@@ -637,6 +649,23 @@ int service_init(int argc, char **argv, - idle_init(); - } - -+#ifdef DRAC_AUTH -+ /* setup for sending DRAC "pings" */ -+ drac.event = NULL; -+ drac.interval = config_getint(IMAPOPT_DRACINTERVAL); -+ if (drac.interval < 0) drac.interval = 0; -+ if (drac.interval) { -+ char *err; -+ -+ if (dracconn((char*) config_getstring(IMAPOPT_DRACHOST), &err) != 0) { -+ /* disable DRAC */ -+ drac.interval = 0; -+ syslog(LOG_ERR, "dracconn: %s", err); -+ syslog(LOG_ERR, "DRAC notifications disabled"); -+ } -+ } -+#endif /* DRAC_AUTH */ -+ - /* create connection to the SNMP listener, if available. */ - snmp_connect(); /* ignore return code */ - snmp_set_str(SERVER_NAME_VERSION,CYRUS_VERSION); -@@ -741,6 +770,15 @@ int service_main(int argc __attribute__( - imapd_haveaddr = 1; - } - } -+ -+#ifdef DRAC_AUTH -+ if (((struct sockaddr *)&imapd_remoteaddr)->sa_family == AF_INET) -+ drac.clientaddr = ((struct sockaddr_in *)&imapd_remoteaddr)->sin_addr.s_addr; -+ else -+ drac.clientaddr = 0; -+ } else { -+ drac.clientaddr = 0; -+#endif /* DRAC_AUTH */ - } - - /* create the SASL connection */ -@@ -783,6 +821,11 @@ int service_main(int argc __attribute__( - prot_flush(imapd_out); - snmp_increment(ACTIVE_CONNECTIONS, -1); - -+#ifdef DRAC_AUTH -+ if (drac.event) prot_removewaitevent(imapd_in, drac.event); -+ drac.event = NULL; -+#endif /* DRAC_AUTH */ -+ - /* cleanup */ - imapd_reset(); - -@@ -873,6 +916,10 @@ void shut_down(int code) - - cyrus_done(); - -+#ifdef DRAC_AUTH -+ if (drac.interval) (void) dracdisc((char **)NULL); -+#endif /* DRAC_AUTH */ -+ - exit(code); - } - -@@ -932,6 +979,35 @@ static void imapd_check(struct backend * - } - } - -+#ifdef DRAC_AUTH -+/* -+ * Ping dracd every 'drac.interval' minutes -+ * to let it know that we are still connected -+ */ -+struct prot_waitevent *drac_ping(struct protstream *s, -+ struct prot_waitevent *ev, void *rock) -+{ -+ char *err; -+ static int nfailure = 0; -+ -+ if (dracsend(drac.clientaddr, &err) != 0) { -+ syslog(LOG_ERR, "dracsend: %s", err); -+ if (++nfailure >= 3) { -+ /* can't contact dracd for 3 consecutive tries - disable DRAC */ -+ prot_removewaitevent(s, ev); -+ drac.event = NULL; -+ syslog(LOG_ERR, "DRAC notifications disabled"); -+ return NULL; -+ } -+ } -+ else -+ nfailure = 0; -+ -+ ev->mark = time(NULL) + (drac.interval * 60); -+ return ev; -+} -+#endif /* DRAC_AUTH */ -+ - /* - * Top-level command loop parsing - */ -@@ -2030,6 +2106,11 @@ void cmd_login(char *tag, char *user) - - prot_printf(imapd_out, "%s OK %s\r\n", tag, reply); - -+#ifdef DRAC_AUTH -+ if (drac.interval && drac.clientaddr) -+ drac.event = prot_addwaitevent(imapd_in, 0 /* now */, drac_ping, NULL); -+#endif /* DRAC_AUTH */ -+ - /* Create telemetry log */ - imapd_logfd = telemetry_log(imapd_userid, imapd_in, imapd_out, 0); - -@@ -2178,6 +2259,11 @@ cmd_authenticate(char *tag, char *authty - - prot_setsasl(imapd_in, imapd_saslconn); - prot_setsasl(imapd_out, imapd_saslconn); -+ -+#ifdef DRAC_AUTH -+ if (drac.interval && drac.clientaddr) -+ drac.event = prot_addwaitevent(imapd_in, 0 /* now */, drac_ping, NULL); -+#endif /* DRAC_AUTH */ - - /* Create telemetry log */ - imapd_logfd = telemetry_log(imapd_userid, imapd_in, imapd_out, 0); -Index: imap/pop3d.c -diff -u -p imap/pop3d.c.orig imap/pop3d.c ---- imap/pop3d.c.orig Sat Jun 4 08:07:46 2005 -+++ imap/pop3d.c Sat Dec 10 16:16:16 2005 -@@ -103,6 +103,10 @@ extern char *optarg; - extern int opterr; - - -+#ifdef DRAC_AUTH -+static int drac_enabled; -+extern int dracauth(char *server, unsigned long userip, char **errmsg); -+#endif /* DRAC_AUTH */ - - #ifdef HAVE_SSL - static SSL *tls_conn; -@@ -507,6 +511,10 @@ int service_main(int argc __attribute__( - prot_settimeout(popd_in, timeout*60); - prot_setflushonread(popd_in, popd_out); - -+#ifdef DRAC_AUTH -+ drac_enabled = (config_getint(IMAPOPT_DRACINTERVAL) > 0); -+#endif /* DRAC_AUTH */ -+ - if (kflag) kpop(); - - /* we were connected on pop3s port so we should do -@@ -1636,6 +1644,21 @@ int openinbox(void) - popd_mailbox = &mboxstruct; - proc_register("pop3d", popd_clienthost, popd_userid, - popd_mailbox->name); -+ -+#ifdef DRAC_AUTH -+ if (drac_enabled && -+ ((struct sockaddr *)&popd_remoteaddr)->sa_family == AF_INET) { -+ char *err; -+ -+ if (dracauth((char*) config_getstring(IMAPOPT_DRACHOST), -+ ((struct sockaddr_in *)&popd_remoteaddr)->sin_addr.s_addr, &err) != 0) { -+ /* disable DRAC */ -+ drac_enabled = 0; -+ syslog(LOG_ERR, "dracauth: %s", err); -+ syslog(LOG_ERR, "DRAC notifications disabled"); -+ } -+ } -+#endif /* DRAC_AUTH */ - } - - /* Create telemetry log */ -Index: imap/version.c -diff -u -p imap/version.c.orig imap/version.c ---- imap/version.c.orig Thu Feb 17 06:06:19 2005 -+++ imap/version.c Sat Dec 10 16:16:16 2005 -@@ -151,6 +151,10 @@ void id_response(struct protstream *pout - snprintf(env_buf + strlen(env_buf), MAXIDVALUELEN - strlen(env_buf), - "; %s", SIEVE_VERSION); - #endif -+#ifdef DRAC_AUTH -+ snprintf(env_buf + strlen(env_buf), MAXIDVALUELEN - strlen(env_buf), -+ "; DRAC"); -+#endif - #ifdef HAVE_LIBWRAP - snprintf(env_buf + strlen(env_buf), MAXIDVALUELEN - strlen(env_buf), - "; TCP Wrappers"); -Index: lib/imapoptions -diff -u lib/imapoptions.orig lib/imapoptions ---- lib/imapoptions.orig Fri Nov 18 00:46:29 2005 -+++ lib/imapoptions Sat Dec 10 16:19:44 2005 -@@ -195,6 +195,14 @@ - { "deleteright", "c", STRING } - /* The right that a user needs to delete a mailbox. */ - -+{ "dracinterval", 5, INT } -+/* If nonzero, enables the use of DRAC (Dynamic Relay Authorization -+ Control) by the pop3d and imapd daemons. Also sets the interval -+ (in minutes) between re-authorization requests made by imapd. */ -+ -+{ "drachost", "localhost", STRING } -+/* Hostname of the RPC dracd server. */ -+ - { "duplicate_db", "berkeley-nosync", STRINGLIST("berkeley", "berkeley-nosync", "skiplist") } - /* The cyrusdb backend to use for the duplicate delivery suppression - and sieve. */ diff --git a/mail/cyrus-imapd24/files/patch-imap::Makefile.in b/mail/cyrus-imapd24/files/patch-imap::Makefile.in index cbc2f0d00243..163deb2807c3 100644 --- a/mail/cyrus-imapd24/files/patch-imap::Makefile.in +++ b/mail/cyrus-imapd24/files/patch-imap::Makefile.in @@ -31,30 +31,3 @@ diff -u imap/Makefile.in.orig imap/Makefile.in pop3d: pop3d.o proxy.o backend.o tls.o mutex_fake.o libimap.a \ $(DEPLIBS) $(SERVICE) -@@ -247,10 +247,11 @@ - $(DEPLIBS) $(LIBS) $(LIB_WRAP) - - sync_server: sync_server.o sync_support.o sync_commit.o \ -- imapparse.o tls.o libimap.a mutex_fake.o $(DEPLIBS) $(SERVICE) -+ imapparse.o tls.o libimap.a mutex_fake.o mboxkey.o \ -+ $(DEPLIBS) $(SERVICE) - $(CC) $(LDFLAGS) -o \ - sync_server sync_server.o sync_support.o sync_commit.o \ -- imapparse.o tls.o $(SERVICE) libimap.a mutex_fake.o \ -+ imapparse.o tls.o $(SERVICE) libimap.a mutex_fake.o mboxkey.o \ - $(DEPLIBS) $(LIBS) $(LIB_WRAP) - - ### Command Line Utilities -@@ -336,10 +337,10 @@ - backend.o tls.o imapparse.o libimap.a mutex_fake.o $(DEPLIBS) $(LIBS) - - sync_reset: sync_reset.o sync_support.o sync_commit.o \ -- libimap.a mutex_fake.o $(DEPLIBS) -+ libimap.a mutex_fake.o mboxkey.o $(DEPLIBS) - $(CC) $(LDFLAGS) -o \ - sync_reset sync_reset.o sync_support.o sync_commit.o \ -- libimap.a mutex_fake.o $(DEPLIBS) $(LIBS) -+ libimap.a mutex_fake.o mboxkey.o $(DEPLIBS) $(LIBS) - - ### Other Misc Targets - diff --git a/mail/cyrus-imapd24/files/patch-man::Makefile.in b/mail/cyrus-imapd24/files/patch-man::Makefile.in index 853e6ec5bd35..1b0061897d43 100644 --- a/mail/cyrus-imapd24/files/patch-man::Makefile.in +++ b/mail/cyrus-imapd24/files/patch-man::Makefile.in @@ -10,15 +10,6 @@ diff -u man/Makefile.in.orig man/Makefile.in mandir = @mandir@ -@@ -68,7 +69,7 @@ - $(srcdir)/notifyd.8 $(srcdir)/chk_cyrus.8 $(srcdir)/mbexamine.8 \ - $(srcdir)/nntpd.8 $(srcdir)/fetchnews.8 $(srcdir)/smmapd.8 \ - $(srcdir)/sync_client.8 $(srcdir)/sync_server.8 $(srcdir)/sync_reset.8 \ -- $(srcdir)/unexpunge.8 -+ $(srcdir)/unexpunge.8 $(srcdir)/make_md5.8 - - all: $(MAN1) $(MAN3) $(MAN5) $(MAN8) - @@ -95,7 +96,7 @@ done for file in $(MAN8); \ |