aboutsummaryrefslogtreecommitdiffstats
path: root/mail/cyrus-imapd22/files
diff options
context:
space:
mode:
authorume <ume@FreeBSD.org>2001-05-07 19:11:27 +0800
committerume <ume@FreeBSD.org>2001-05-07 19:11:27 +0800
commit73082d9f680660d2d6d0262c5320772c74829bea (patch)
tree9b0e7f66357b6a96f4cf61e0c10a2c4686af108f /mail/cyrus-imapd22/files
parent520f07cd6354b4e1dbc54f06f696f68b9901db5e (diff)
downloadfreebsd-ports-gnome-73082d9f680660d2d6d0262c5320772c74829bea.tar.gz
freebsd-ports-gnome-73082d9f680660d2d6d0262c5320772c74829bea.tar.zst
freebsd-ports-gnome-73082d9f680660d2d6d0262c5320772c74829bea.zip
Fix a bug that imaps didn't work correctly.
This patch will be applied in next cyrus-imapd release. Reported by: Nick Sayer <nsayer@quack.kfu.com>
Diffstat (limited to 'mail/cyrus-imapd22/files')
-rw-r--r--mail/cyrus-imapd22/files/patch-dh85
1 files changed, 85 insertions, 0 deletions
diff --git a/mail/cyrus-imapd22/files/patch-dh b/mail/cyrus-imapd22/files/patch-dh
new file mode 100644
index 000000000000..23a4e67bcc2e
--- /dev/null
+++ b/mail/cyrus-imapd22/files/patch-dh
@@ -0,0 +1,85 @@
+Index: imap/imapd.c
+diff -u imap/imapd.c.orig imap/imapd.c
+--- imap/imapd.c.orig Mon May 7 02:45:36 2001
++++ imap/imapd.c Mon May 7 03:31:46 2001
+@@ -394,6 +394,9 @@
+ imapd_exists = -1;
+ }
+
++static int imaps = 0;
++static sasl_ssf_t extprops_ssf = 0;
++
+ /*
+ * run once when process is forked;
+ * MUST NOT exit directly; must return with non-zero error code
+@@ -401,6 +404,7 @@
+ int service_init(int argc, char **argv, char **envp)
+ {
+ int r;
++ int opt;
+
+ config_changeident("imapd");
+
+@@ -447,6 +451,26 @@
+ snmp_connect(); /* ignore return code */
+ snmp_set_str(SERVER_NAME_VERSION,CYRUS_VERSION);
+
++ while ((opt = getopt(argc, argv, "C:sp:")) != EOF) {
++ switch (opt) {
++ case 'C': /* alt config file - handled by service::main() */
++ break;
++ case 's': /* imaps (do starttls right away) */
++ imaps = 1;
++ if (!starttls_enabled()) {
++ syslog(LOG_ERR, "imaps: required OpenSSL options not present");
++ fatal("imaps: required OpenSSL options not present",
++ EC_CONFIG);
++ }
++ break;
++ case 'p': /* external protection */
++ extprops_ssf = atoi(optarg);
++ break;
++ default:
++ break;
++ }
++ }
++
+ return 0;
+ }
+
+@@ -455,8 +479,6 @@
+ */
+ int service_main(int argc, char **argv, char **envp)
+ {
+- int imaps = 0;
+- int opt;
+ socklen_t salen;
+ struct hostent *hp;
+ int timeout;
+@@ -478,25 +500,7 @@
+ #endif
+
+ memset(&extprops, 0, sizeof(sasl_external_properties_t));
+- while ((opt = getopt(argc, argv, "C:sp:")) != EOF) {
+- switch (opt) {
+- case 'C': /* alt config file - handled by service::main() */
+- break;
+- case 's': /* imaps (do starttls right away) */
+- imaps = 1;
+- if (!starttls_enabled()) {
+- syslog(LOG_ERR, "imaps: required OpenSSL options not present");
+- fatal("imaps: required OpenSSL options not present",
+- EC_CONFIG);
+- }
+- break;
+- case 'p': /* external protection */
+- extprops.ssf = atoi(optarg);
+- break;
+- default:
+- break;
+- }
+- }
++ extprops.ssf = extprops_ssf;
+
+ imapd_in = prot_new(0, 0);
+ imapd_out = prot_new(1, 1);