[dovecot-cvs] dovecot/src/auth passdb-vpopmail.c,1.6,1.7

cras at procontrol.fi cras at procontrol.fi
Tue Jun 15 05:44:07 EEST 2004


Update of /home/cvs/dovecot/src/auth
In directory talvi:/tmp/cvs-serv28125

Modified Files:
	passdb-vpopmail.c 
Log Message:
Added support for vpopmail pop-before-smtp relay



Index: passdb-vpopmail.c
===================================================================
RCS file: /home/cvs/dovecot/src/auth/passdb-vpopmail.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- passdb-vpopmail.c	31 May 2004 18:57:25 -0000	1.6
+++ passdb-vpopmail.c	15 Jun 2004 02:44:05 -0000	1.7
@@ -14,6 +14,8 @@
 
 #include "userdb-vpopmail.h"
 
+#include <stdlib.h>
+
 static void
 vpopmail_verify_plain(struct auth_request *request, const char *password,
 		      verify_plain_callback_t *callback)
@@ -55,6 +57,25 @@
 		return;
 	}
 
+#ifdef HAVE_VPOPMAIL_OPEN_SMTP_RELAY
+	if (strcmp(request->protocol, "POP3") == 0 ||
+	    strcmp(request->protocol, "IMAP") == 0) {
+		const char *host = net_ip2addr(&request->remote_ip);
+		if (host != NULL) {
+			/* use putenv() directly rather than env_put() which
+			   would leak memory every time we got here. use a
+			   static buffer for putenv() as SUSv2 requirements
+			   would otherwise corrupt our environment later. */
+			static char ip_env[256];
+
+			i_snprintf(ip_env, sizeof(ip_env),
+				   "TCPREMOTEIP=%s", host);
+			putenv(ip_env);
+			open_smtp_relay();
+		}
+	}
+#endif
+
 	callback(PASSDB_RESULT_OK, request);
 }
 



More information about the dovecot-cvs mailing list