[dovecot-cvs] dovecot/src/lib-auth auth-server-connection.c, 1.6, 1.7 auth-server-request.c, 1.12, 1.13

cras at dovecot.org cras at dovecot.org
Sun Aug 15 06:40:33 EEST 2004


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

Modified Files:
	auth-server-connection.c auth-server-request.c 
Log Message:
We never do blocking reads/writes to network anymore. Changed imap and pop3
processes to use a single I/O loop.

Not much tested yet, and currently LIST/LSUB may eat too much memory and
APPEND eats all CPU.



Index: auth-server-connection.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-auth/auth-server-connection.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- auth-server-connection.c	2 Jul 2004 22:03:37 -0000	1.6
+++ auth-server-connection.c	15 Aug 2004 03:40:31 -0000	1.7
@@ -194,7 +194,7 @@
 	}
 	conn->input = i_stream_create_file(fd, default_pool, MAX_INBUF_SIZE,
 					   FALSE);
-	conn->output = o_stream_create_file(fd, default_pool, MAX_OUTBUF_SIZE,
+	conn->output = o_stream_create_file(fd, default_pool, (size_t)-1,
 					    FALSE);
 	conn->requests = hash_create(default_pool, pool, 100, NULL, NULL);
 

Index: auth-server-request.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-auth/auth-server-request.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- auth-server-request.c	2 Jul 2004 22:03:37 -0000	1.12
+++ auth-server-request.c	15 Aug 2004 03:40:31 -0000	1.13
@@ -75,7 +75,7 @@
 	struct auth_client_request_new auth_request;
 	buffer_t *buf;
 	size_t size;
-	int ret;
+	ssize_t ret;
 
 	memset(&auth_request, 0, sizeof(auth_request));
 	auth_request.type = AUTH_CLIENT_REQUEST_NEW;
@@ -136,15 +136,19 @@
 				      const unsigned char *data, size_t size)
 {
 	struct auth_client_request_continue auth_request;
+        struct const_iovec iov[2];
 
 	/* send continued request to auth */
 	auth_request.type = AUTH_CLIENT_REQUEST_CONTINUE;
 	auth_request.id = request->id;
 	auth_request.data_size = size;
 
-	if (o_stream_send(conn->output, &auth_request,
-			  sizeof(auth_request)) < 0 ||
-	    o_stream_send(conn->output, data, size) < 0) {
+	iov[0].iov_base = &auth_request;
+	iov[0].iov_len = sizeof(auth_request);
+	iov[1].iov_base = data;
+	iov[1].iov_len = size;
+
+	if (o_stream_sendv(conn->output, iov, 2) < 0) {
 		errno = conn->output->stream_errno;
 		i_warning("Error sending continue request to auth server: %m");
 		auth_server_connection_destroy(conn, TRUE);



More information about the dovecot-cvs mailing list