[dovecot-cvs] dovecot/src/login-common ssl-proxy-openssl.c,1.13,1.14

cras at procontrol.fi cras at procontrol.fi
Mon May 19 13:57:04 EEST 2003


Update of /home/cvs/dovecot/src/login-common
In directory danu:/tmp/cvs-serv5893

Modified Files:
	ssl-proxy-openssl.c 
Log Message:
fixes



Index: ssl-proxy-openssl.c
===================================================================
RCS file: /home/cvs/dovecot/src/login-common/ssl-proxy-openssl.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- ssl-proxy-openssl.c	18 May 2003 16:37:05 -0000	1.13
+++ ssl-proxy-openssl.c	19 May 2003 09:57:02 -0000	1.14
@@ -106,6 +106,8 @@
 		return;
 	}
 
+	proxy->refcount++;
+
 	while (proxy->sslout_size < sizeof(proxy->sslout_buf) &&
 	       !proxy->destroyed) {
 		ret = net_receive(proxy->fd_plain,
@@ -121,6 +123,8 @@
 			ssl_write(proxy);
 		}
 	}
+
+	ssl_proxy_unref(proxy);
 }
 
 static void plain_write(void *context)
@@ -128,6 +132,8 @@
 	struct ssl_proxy *proxy = context;
 	ssize_t ret;
 
+	proxy->refcount++;
+
 	ret = net_transmit(proxy->fd_plain, proxy->plainout_buf,
 			   proxy->plainout_size);
 	if (ret < 0)
@@ -153,6 +159,7 @@
 		ssl_set_io(proxy, SSL_ADD_INPUT);
 	}
 
+	ssl_proxy_unref(proxy);
 }
 
 static const char *ssl_last_error(void)
@@ -354,6 +361,7 @@
 {
 	if (--proxy->refcount > 0)
 		return TRUE;
+	i_assert(proxy->refcount == 0);
 
 	hash_remove(ssl_proxies, proxy);
 



More information about the dovecot-cvs mailing list