summaryrefslogtreecommitdiff
path: root/mail/imap-uw/files/patch-ai
diff options
context:
space:
mode:
authorAnders Nordby <anders@FreeBSD.org>2009-01-19 01:17:14 +0000
committerAnders Nordby <anders@FreeBSD.org>2009-01-19 01:17:14 +0000
commit1ef00cf0dd1cca633503b37a80488f91288f0c3f (patch)
treea3fbca8919e5d3cd68703d87f6944e05a3a0fffc /mail/imap-uw/files/patch-ai
parent- Update to 0.10.0 (diff)
Update to 2007e.
Remove FORBIDDEN, as the security issues should be OK now. PR: 130617 Submitted by: Martin Matuska <mm@FreeBSD.org>
Notes
Notes: svn path=/head/; revision=226408
Diffstat (limited to '')
-rw-r--r--mail/imap-uw/files/patch-ai192
1 files changed, 89 insertions, 103 deletions
diff --git a/mail/imap-uw/files/patch-ai b/mail/imap-uw/files/patch-ai
index cc5e0a3df96f..a1dc32829b12 100644
--- a/mail/imap-uw/files/patch-ai
+++ b/mail/imap-uw/files/patch-ai
@@ -1,103 +1,89 @@
-*** src/imapd/imapd.c.orig Wed Jul 11 22:08:16 2007
---- src/imapd/imapd.c Mon Jul 23 17:48:56 2007
-***************
-*** 38,43 ****
---- 38,48 ----
- #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 */
-
-***************
-*** 203,208 ****
---- 208,219 ----
-
- /* 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 = "389"; /* edit number of this server */
- char *logout = "Logout"; /* syslogreason for logout */
- char *goodbye = NIL; /* bye reason */
-***************
-*** 277,283 ****
- msg_string_next, /* get next byte in string structure */
- msg_string_setpos /* set position in string structure */
- };
-!
- /* Main program */
-
- int main (int argc,char *argv[])
---- 288,337 ----
- 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[])
-***************
-*** 1501,1506 ****
---- 1555,1563 ----
- lasterror ());
- return;
- }
-+ #ifdef DRAC_AUTH
-+ drac_auth();
-+ #endif /* DRAC_AUTH */
- /* change in number of messages? */
- if (existsquelled || (nmsgs != stream->nmsgs)) {
- PSOUT ("* ");
+--- src/imapd/imapd.c.orig 2008-11-18 19:46:59.000000000 +0100
++++ src/imapd/imapd.c 2009-01-16 10:23:02.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 */
+
+@@ -207,6 +212,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 = "404"; /* edit number of this server */
+ char *logout = "Logout"; /* syslogreason for logout */
+ char *goodbye = NIL; /* bye reason */
+@@ -283,7 +294,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[])
+@@ -1525,6 +1579,9 @@
+ lasterror ());
+ return;
+ }
++ #ifdef DRAC_AUTH
++ drac_auth();
++ #endif /* DRAC_AUTH */
+ /* change in number of messages? */
+ if (existsquelled || (nmsgs != stream->nmsgs)) {
+ PSOUT ("* ");