diff options
author | ume <ume@FreeBSD.org> | 2001-05-07 19:11:27 +0800 |
---|---|---|
committer | ume <ume@FreeBSD.org> | 2001-05-07 19:11:27 +0800 |
commit | 73082d9f680660d2d6d0262c5320772c74829bea (patch) | |
tree | 9b0e7f66357b6a96f4cf61e0c10a2c4686af108f /mail/cyrus-imapd22/files | |
parent | 520f07cd6354b4e1dbc54f06f696f68b9901db5e (diff) | |
download | freebsd-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-dh | 85 |
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); |