[dovecot-cvs] dovecot/src/login-common client-common.c, 1.4, 1.5 ssl-proxy-openssl.c, 1.45, 1.46 ssl-proxy.c, 1.8, 1.9 ssl-proxy.h, 1.7, 1.8

cras at dovecot.org cras at dovecot.org
Wed Aug 16 15:16:27 EEST 2006


Update of /var/lib/cvs/dovecot/src/login-common
In directory talvi:/tmp/cvs-serv13383

Modified Files:
	client-common.c ssl-proxy-openssl.c ssl-proxy.c ssl-proxy.h 
Log Message:
If SSL/TLS handshake didn't finish, show "TLS handshaking" instead of "TLS"
in logout line.



Index: client-common.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/login-common/client-common.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- client-common.c	13 Jan 2006 20:26:39 -0000	1.4
+++ client-common.c	16 Aug 2006 12:16:25 -0000	1.5
@@ -5,6 +5,7 @@
 #include "str.h"
 #include "str-sanitize.h"
 #include "var-expand.h"
+#include "ssl-proxy.h"
 #include "client-common.h"
 
 #include <stdlib.h>
@@ -43,8 +44,13 @@
 	tab[7].value = my_pid;
 	tab[8].value = client->auth_mech_name == NULL ? NULL :
 		str_sanitize(client->auth_mech_name, MAX_MECH_NAME);
-	tab[9].value = client->tls ? "TLS" :
-		client->secured ? "secured" : NULL;
+	if (!client->tls) {
+		tab[9].value = client->secured ? "secured" : NULL;
+	} else {
+		tab[9].value = client->proxy != NULL &&
+			ssl_proxy_is_handshaked(client->proxy) ? "TLS" :
+			"TLS handshaking";
+	}
 
 	return tab;
 }

Index: ssl-proxy-openssl.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/login-common/ssl-proxy-openssl.c,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -d -r1.45 -r1.46
--- ssl-proxy-openssl.c	7 Aug 2006 15:01:54 -0000	1.45
+++ ssl-proxy-openssl.c	16 Aug 2006 12:16:25 -0000	1.46
@@ -530,6 +530,11 @@
 	return *name == '\0' ? NULL : name;
 }
 
+bool ssl_proxy_is_handshaked(struct ssl_proxy *proxy)
+{
+	return proxy->handshaked;
+}
+
 void ssl_proxy_free(struct ssl_proxy *proxy)
 {
 	ssl_proxy_unref(proxy);

Index: ssl-proxy.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/login-common/ssl-proxy.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- ssl-proxy.c	6 Aug 2006 20:05:36 -0000	1.8
+++ ssl-proxy.c	16 Aug 2006 12:16:25 -0000	1.9
@@ -26,6 +26,11 @@
 	return NULL;
 }
 
+bool ssl_proxy_is_handshaked(struct ssl_proxy *proxy __attr_unused__)
+{
+	return FALSE;
+}
+
 void ssl_proxy_free(struct ssl_proxy *proxy __attr_unused__) {}
 
 unsigned int ssl_proxy_get_count(void)

Index: ssl-proxy.h
===================================================================
RCS file: /var/lib/cvs/dovecot/src/login-common/ssl-proxy.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- ssl-proxy.h	6 Aug 2006 20:05:36 -0000	1.7
+++ ssl-proxy.h	16 Aug 2006 12:16:25 -0000	1.8
@@ -12,6 +12,7 @@
 int ssl_proxy_new(int fd, struct ip_addr *ip, struct ssl_proxy **proxy_r);
 bool ssl_proxy_has_valid_client_cert(struct ssl_proxy *proxy);
 const char *ssl_proxy_get_peer_name(struct ssl_proxy *proxy);
+bool ssl_proxy_is_handshaked(struct ssl_proxy *proxy);
 void ssl_proxy_free(struct ssl_proxy *proxy);
 
 /* Return number of active SSL proxies */



More information about the dovecot-cvs mailing list