packages: lighttpd/branch.sh, lighttpd/lighttpd-branch.diff, lighttpd/light...

glen glen at pld-linux.org
Thu Dec 1 12:11:25 CET 2011


Author: glen                         Date: Thu Dec  1 11:11:25 2011 GMT
Module: packages                      Tag: HEAD
---- Log message:
- update branch diff:
  [mod_auth] Fix signedness error in http_auth (fixes #2370, CVE-2011-4362)
- rel 4

---- Files affected:
packages/lighttpd:
   branch.sh (1.20 -> 1.21) , lighttpd-branch.diff (1.69 -> 1.70) , lighttpd.spec (1.349 -> 1.350) 

---- Diffs:

================================================================
Index: packages/lighttpd/branch.sh
diff -u packages/lighttpd/branch.sh:1.20 packages/lighttpd/branch.sh:1.21
--- packages/lighttpd/branch.sh:1.20	Mon Feb  8 07:49:47 2010
+++ packages/lighttpd/branch.sh	Thu Dec  1 12:11:19 2011
@@ -1,7 +1,7 @@
 #!/bin/sh
 set -e
 svn=svn://svn.lighttpd.net/lighttpd
-tag=lighttpd-1.4.26
+tag=lighttpd-1.4.29
 branch=lighttpd-1.4.x
 out=lighttpd-branch.diff
 

================================================================
Index: packages/lighttpd/lighttpd-branch.diff
diff -u packages/lighttpd/lighttpd-branch.diff:1.69 packages/lighttpd/lighttpd-branch.diff:1.70
--- packages/lighttpd/lighttpd-branch.diff:1.69	Mon May 24 13:03:31 2010
+++ packages/lighttpd/lighttpd-branch.diff	Thu Dec  1 12:11:19 2011
@@ -1,249 +1,1932 @@
-# Revision 2724
+# Revision 2812
+Index: src/http_auth_digest.c
+===================================================================
+--- src/http_auth_digest.c	(.../tags/lighttpd-1.4.29)
++++ src/http_auth_digest.c	(.../branches/lighttpd-1.4.x)
+@@ -1,26 +0,0 @@
+-#include "buffer.h"
+-
+-#include "http_auth_digest.h"
+-
+-#include <string.h>
+-
+-#ifndef USE_OPENSSL
+-# include "md5.h"
+-
+-typedef li_MD5_CTX MD5_CTX;
+-#define MD5_Init li_MD5_Init
+-#define MD5_Update li_MD5_Update
+-#define MD5_Final li_MD5_Final
+-
+-#endif
+-
+-void CvtHex(IN HASH Bin, OUT HASHHEX Hex) {
+-	unsigned short i;
+-
+-	for (i = 0; i < HASHLEN; i++) {
+-		Hex[i*2] = int2hex((Bin[i] >> 4) & 0xf);
+-		Hex[i*2+1] = int2hex(Bin[i] & 0xf);
+-	}
+-	Hex[HASHHEXLEN] = '\0';
+-}
+-
+Index: src/http_auth_digest.h
+===================================================================
+--- src/http_auth_digest.h	(.../tags/lighttpd-1.4.29)
++++ src/http_auth_digest.h	(.../branches/lighttpd-1.4.x)
+@@ -1,24 +0,0 @@
+-#ifndef _DIGCALC_H_
+-#define _DIGCALC_H_
+-
+-#ifdef HAVE_CONFIG_H
+-# include "config.h"
+-#endif
+-
+-#define HASHLEN 16
+-typedef unsigned char HASH[HASHLEN];
+-#define HASHHEXLEN 32
+-typedef char HASHHEX[HASHHEXLEN+1];
+-#ifdef USE_OPENSSL
+-#define IN const
+-#else
+-#define IN
+-#endif
+-#define OUT
+-
+-void CvtHex(
+-    IN HASH Bin,
+-    OUT HASHHEX Hex
+-    );
+-
+-#endif
+Index: src/network_write.c
+===================================================================
+--- src/network_write.c	(.../tags/lighttpd-1.4.29)
++++ src/network_write.c	(.../branches/lighttpd-1.4.x)
+@@ -24,17 +24,16 @@
+ # include <sys/resource.h>
+ #endif
+ 
+-int network_write_chunkqueue_write(server *srv, connection *con, int fd, chunkqueue *cq) {
++int network_write_chunkqueue_write(server *srv, connection *con, int fd, chunkqueue *cq, off_t max_bytes) {
+ 	chunk *c;
+-	size_t chunks_written = 0;
+ 
+-	for(c = cq->first; c; c = c->next) {
++	for(c = cq->first; (max_bytes > 0) && (NULL != c); c = c->next) {
+ 		int chunk_finished = 0;
+ 
+ 		switch(c->type) {
+ 		case MEM_CHUNK: {
+ 			char * offset;
+-			size_t toSend;
++			off_t toSend;
+ 			ssize_t r;
+ 
+ 			if (c->mem->used == 0) {
+@@ -44,6 +43,8 @@
+ 
+ 			offset = c->mem->ptr + c->offset;
+ 			toSend = c->mem->used - 1 - c->offset;
++			if (toSend > max_bytes) toSend = max_bytes;
++
+ #ifdef __WIN32
+ 			if ((r = send(fd, offset, toSend, 0)) < 0) {
+ 				/* no error handling for windows... */
+@@ -72,6 +73,7 @@
+ 
+ 			c->offset += r;
+ 			cq->bytes_out += r;
++			max_bytes -= r;
+ 
+ 			if (c->offset == (off_t)c->mem->used - 1) {
+ 				chunk_finished = 1;
+@@ -85,7 +87,7 @@
+ #endif
+ 			ssize_t r;
+ 			off_t offset;
+-			size_t toSend;
++			off_t toSend;
+ 			stat_cache_entry *sce = NULL;
+ 			int ifd;
+ 
+@@ -98,6 +100,8 @@
+ 			offset = c->file.start + c->offset;
+ 			toSend = c->file.length - c->offset;
+ 
++			if (toSend > max_bytes) toSend = max_bytes;
++
+ 			if (offset > sce->st.st_size) {
+ 				log_error_write(srv, __FILE__, __LINE__, "sb", "file was shrinked:", c->file.name);
+ 
+@@ -181,6 +185,7 @@
+ 
+ 			c->offset += r;
+ 			cq->bytes_out += r;
++			max_bytes -= r;
+ 
+ 			if (c->offset == c->file.length) {
+ 				chunk_finished = 1;
+@@ -200,11 +205,9 @@
+ 
+ 			break;
+ 		}
+-
+-		chunks_written++;
+ 	}
+ 
+-	return chunks_written;
++	return 0;
+ }
+ 
+ #if 0
+Index: src/mod_secure_download.c
+===================================================================
+--- src/mod_secure_download.c	(.../tags/lighttpd-1.4.29)
++++ src/mod_secure_download.c	(.../branches/lighttpd-1.4.x)
+@@ -8,18 +8,8 @@
+ #include <stdlib.h>
+ #include <string.h>
+ 
+-#ifdef USE_OPENSSL
+-# include <openssl/md5.h>
+-#else
+-# include "md5.h"
++#include "md5.h"
+ 
+-typedef li_MD5_CTX MD5_CTX;
+-#define MD5_Init li_MD5_Init
+-#define MD5_Update li_MD5_Update
+-#define MD5_Final li_MD5_Final
+-
+-#endif
+-
+ #define HASHLEN 16
+ typedef unsigned char HASH[HASHLEN];
+ #define HASHHEXLEN 32
+@@ -200,7 +190,7 @@
+ 
+ URIHANDLER_FUNC(mod_secdownload_uri_handler) {
+ 	plugin_data *p = p_d;
+-	MD5_CTX Md5Ctx;
++	li_MD5_CTX Md5Ctx;
+ 	HASH HA1;
+ 	const char *rel_uri, *ts_str, *md5_str;
+ 	time_t ts = 0;
+@@ -266,9 +256,9 @@
+ 	buffer_append_string(p->md5, rel_uri);
+ 	buffer_append_string_len(p->md5, ts_str, 8);
+ 
+-	MD5_Init(&Md5Ctx);
+-	MD5_Update(&Md5Ctx, (unsigned char *)p->md5->ptr, p->md5->used - 1);
+-	MD5_Final(HA1, &Md5Ctx);
++	li_MD5_Init(&Md5Ctx);
++	li_MD5_Update(&Md5Ctx, (unsigned char *)p->md5->ptr, p->md5->used - 1);
++	li_MD5_Final(HA1, &Md5Ctx);
+ 
+ 	buffer_copy_string_hex(p->md5, (char *)HA1, 16);
+ 
+Index: src/base.h
+===================================================================
+--- src/base.h	(.../tags/lighttpd-1.4.29)
++++ src/base.h	(.../branches/lighttpd-1.4.x)
+@@ -277,6 +277,7 @@
+ 	buffer *ssl_cipher_list;
+ 	buffer *ssl_dh_file;
+ 	buffer *ssl_ec_curve;
++	unsigned short ssl_honor_cipher_order; /* determine SSL cipher in server-preferred order, not client-order */
+ 	unsigned short ssl_use_sslv2;
+ 	unsigned short ssl_use_sslv3;
+ 	unsigned short ssl_verifyclient;
+@@ -284,6 +285,7 @@
+ 	unsigned short ssl_verifyclient_depth;
+ 	buffer *ssl_verifyclient_username;
+ 	unsigned short ssl_verifyclient_export_cert;
++	unsigned short ssl_disable_client_renegotiation;
+ 
+ 	unsigned short use_ipv6, set_v6only; /* set_v6only is only a temporary option */
+ 	unsigned short defer_accept;
+@@ -437,6 +439,7 @@
+ # ifndef OPENSSL_NO_TLSEXT
+ 	buffer *tlsext_server_name;
+ # endif
++	unsigned int renegotiations; /* count of SSL_CB_HANDSHAKE_START */
+ #endif
+ 	/* etag handling */
+ 	etag_flags_t etag_flags;
+@@ -647,11 +650,9 @@
+ 
+ 	fdevent_handler_t event_handler;
+ 
+-	int (* network_backend_write)(struct server *srv, connection *con, int fd, chunkqueue *cq);
+-	int (* network_backend_read)(struct server *srv, connection *con, int fd, chunkqueue *cq);
++	int (* network_backend_write)(struct server *srv, connection *con, int fd, chunkqueue *cq, off_t max_bytes);
+ #ifdef USE_OPENSSL
+-	int (* network_ssl_backend_write)(struct server *srv, connection *con, SSL *ssl, chunkqueue *cq);
+-	int (* network_ssl_backend_read)(struct server *srv, connection *con, SSL *ssl, chunkqueue *cq);
++	int (* network_ssl_backend_write)(struct server *srv, connection *con, SSL *ssl, chunkqueue *cq, off_t max_bytes);
+ #endif
+ 
+ 	uid_t uid;
 Index: src/connections.c
 ===================================================================
---- src/connections.c	(.../tags/lighttpd-1.4.26)
+--- src/connections.c	(.../tags/lighttpd-1.4.29)
 +++ src/connections.c	(.../branches/lighttpd-1.4.x)
-@@ -82,6 +82,11 @@
+@@ -223,6 +223,12 @@
  
- 	if (-1 == con->ndx) return -1;
+ 		len = SSL_read(con->ssl, b->ptr + read_offset, toread);
  
-+	buffer_reset(con->uri.authority);
-+	buffer_reset(con->uri.path);
-+	buffer_reset(con->uri.query);
-+	buffer_reset(con->request.orig_uri);
++		if (con->renegotiations > 1 && con->conf.ssl_disable_client_renegotiation) {
++			connection_set_state(srv, con, CON_STATE_ERROR);
++			log_error_write(srv, __FILE__, __LINE__, "s", "SSL: renegotiation initiated by client");
++			return -1;
++		}
 +
- 	i = con->ndx;
+ 		if (len > 0) {
+ 			if (b->used > 0) b->used--;
+ 			b->used += len;
+@@ -445,6 +451,7 @@
+ 		default:
+ 			switch(con->http_status) {
+ 			case 400: /* bad request */
++			case 401: /* authorization required */
+ 			case 414: /* overload request header */
+ 			case 505: /* unknown protocol */
+ 			case 207: /* this was webdav */
+@@ -617,8 +624,9 @@
+ }
  
- 	/* not last element */
+ static int connection_handle_write(server *srv, connection *con) {
+-	switch(network_write_chunkqueue(srv, con, con->write_queue)) {
++	switch(network_write_chunkqueue(srv, con, con->write_queue, MAX_WRITE_LIMIT)) {
+ 	case 0:
++		con->write_request_ts = srv->cur_ts;
+ 		if (con->file_finished) {
+ 			connection_set_state(srv, con, CON_STATE_RESPONSE_END);
+ 			joblist_append(srv, con);
+@@ -635,6 +643,7 @@
+ 		joblist_append(srv, con);
+ 		break;
+ 	case 1:
++		con->write_request_ts = srv->cur_ts;
+ 		con->is_writable = 0;
+ 
+ 		/* not finished yet -> WRITE */
+@@ -1251,8 +1260,6 @@
+ 			log_error_write(srv, __FILE__, __LINE__, "ds",
+ 					con->fd,
+ 					"handle write failed.");
+-		} else if (con->state == CON_STATE_WRITE) {
+-			con->write_request_ts = srv->cur_ts;
+ 		}
+ 	}
+ 
+@@ -1352,6 +1359,7 @@
+ 				return NULL;
+ 			}
+ 
++			con->renegotiations = 0;
+ #ifndef OPENSSL_NO_TLSEXT
+ 			SSL_set_app_data(con->ssl, con);
+ #endif
+@@ -1667,8 +1675,6 @@
+ 							con->fd,
+ 							"handle write failed.");
+ 					connection_set_state(srv, con, CON_STATE_ERROR);
+-				} else if (con->state == CON_STATE_WRITE) {
+-					con->write_request_ts = srv->cur_ts;
+ 				}
+ 			}
+ 
+Index: src/mod_staticfile.c
+===================================================================
+--- src/mod_staticfile.c	(.../tags/lighttpd-1.4.29)
++++ src/mod_staticfile.c	(.../branches/lighttpd-1.4.x)
+@@ -26,6 +26,7 @@
+ typedef struct {
+ 	array *exclude_ext;
+ 	unsigned short etags_used;
++	unsigned short disable_pathinfo;
+ } plugin_config;
+ 
+ typedef struct {
+@@ -84,6 +85,7 @@
+ 	config_values_t cv[] = {
+ 		{ "static-file.exclude-extensions", NULL, T_CONFIG_ARRAY, T_CONFIG_SCOPE_CONNECTION },       /* 0 */
+ 		{ "static-file.etags",    NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 1 */
++		{ "static-file.disable-pathinfo", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 2 */
+ 		{ NULL,                         NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET }
+ 	};
+ 
+@@ -97,9 +99,11 @@
+ 		s = calloc(1, sizeof(plugin_config));
+ 		s->exclude_ext    = array_init();
+ 		s->etags_used     = 1;
++		s->disable_pathinfo = 0;
+ 
+ 		cv[0].destination = s->exclude_ext;
+ 		cv[1].destination = &(s->etags_used);
++		cv[2].destination = &(s->disable_pathinfo);
+ 
+ 		p->config_storage[i] = s;
+ 
+@@ -119,6 +123,7 @@
+ 
+ 	PATCH(exclude_ext);
+ 	PATCH(etags_used);
++	PATCH(disable_pathinfo);
+ 
+ 	/* skip the first, the global context */
+ 	for (i = 1; i < srv->config_context->used; i++) {
+@@ -136,7 +141,9 @@
+ 				PATCH(exclude_ext);
+ 			} else if (buffer_is_equal_string(du->key, CONST_STR_LEN("static-file.etags"))) {
+ 				PATCH(etags_used);
+-			} 
++			} else if (buffer_is_equal_string(du->key, CONST_STR_LEN("static-file.disable-pathinfo"))) {
++				PATCH(disable_pathinfo);
++			}
+ 		}
+ 	}
+ 
+@@ -350,7 +357,6 @@
+ URIHANDLER_FUNC(mod_staticfile_subrequest) {
+ 	plugin_data *p = p_d;
+ 	size_t k;
+-	int s_len;
+ 	stat_cache_entry *sce = NULL;
+ 	buffer *mtime = NULL;
+ 	data_string *ds;
+@@ -376,7 +382,12 @@
+ 
+ 	mod_staticfile_patch_connection(srv, con, p);
+ 
+-	s_len = con->uri.path->used - 1;
++	if (p->conf.disable_pathinfo && 0 != con->request.pathinfo->used) {
++		if (con->conf.log_request_handling) {
++			log_error_write(srv, __FILE__, __LINE__,  "s",  "-- NOT handling file as static file, pathinfo forbidden");
++		}
++		return HANDLER_GO_ON;
++	}
+ 
+ 	/* ignore certain extensions */
+ 	for (k = 0; k < p->conf.exclude_ext->used; k++) {
 Index: src/network.c
 ===================================================================
---- src/network.c	(.../tags/lighttpd-1.4.26)
+--- src/network.c	(.../tags/lighttpd-1.4.29)
 +++ src/network.c	(.../branches/lighttpd-1.4.x)
-@@ -82,6 +82,9 @@
- 	buffer_copy_string(con->tlsext_server_name, servername);
- 	buffer_to_lower(con->tlsext_server_name);
+@@ -27,6 +27,19 @@
+ # include <openssl/rand.h>
+ #endif
  
-+	/* Sometimes this is still set, confusing COMP_HTTP_HOST */
-+	buffer_reset(con->uri.authority);
++#ifdef USE_OPENSSL
++static void ssl_info_callback(const SSL *ssl, int where, int ret) {
++	UNUSED(ret);
 +
- 	config_cond_cache_reset(srv, con);
- 	config_setup_connection(srv, con);
++	if (0 != (where & SSL_CB_HANDSHAKE_START)) {
++		connection *con = SSL_get_app_data(ssl);
++		++con->renegotiations;
++	} else if (0 != (where & SSL_CB_HANDSHAKE_DONE)) {
++		ssl->s3->flags |= SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS;
++	}
++}
++#endif
++
+ static handler_t network_server_handle_fdevent(server *srv, void *context, int revents) {
+ 	server_socket *srv_socket = (server_socket *)context;
+ 	connection *con;
+@@ -480,9 +493,11 @@
+ 	network_backend_t backend;
+ 
+ #if OPENSSL_VERSION_NUMBER >= 0x0090800fL
++#ifndef OPENSSL_NO_ECDH
+ 	EC_KEY *ecdh;
+ 	int nid;
+ #endif
++#endif
+ 
+ #ifdef USE_OPENSSL
+ 	DH *dh;
+@@ -553,6 +568,11 @@
+ 	/* load SSL certificates */
+ 	for (i = 0; i < srv->config_context->used; i++) {
+ 		specific_config *s = srv->config_storage[i];
++#ifndef SSL_OP_NO_COMPRESSION
++# define SSL_OP_NO_COMPRESSION 0
++#endif
++		long ssloptions =
++			SSL_OP_ALL | SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION | SSL_OP_NO_COMPRESSION;
  
-@@ -525,7 +528,7 @@
+ 		if (buffer_is_empty(s->ssl_pemfile)) continue;
  
+@@ -586,6 +606,9 @@
+ 			return -1;
+ 		}
+ 
++		SSL_CTX_set_options(s->ssl_ctx, ssloptions);
++		SSL_CTX_set_info_callback(s->ssl_ctx, ssl_info_callback);
++
  		if (!s->ssl_use_sslv2) {
  			/* disable SSLv2 */
--			if (SSL_OP_NO_SSLv2 != SSL_CTX_set_options(s->ssl_ctx, SSL_OP_NO_SSLv2)) {
-+			if (!(SSL_OP_NO_SSLv2 & SSL_CTX_set_options(s->ssl_ctx, SSL_OP_NO_SSLv2))) {
- 				log_error_write(srv, __FILE__, __LINE__, "ss", "SSL:",
+ 			if (!(SSL_OP_NO_SSLv2 & SSL_CTX_set_options(s->ssl_ctx, SSL_OP_NO_SSLv2))) {
+@@ -611,6 +634,10 @@
  						ERR_error_string(ERR_get_error(), NULL));
  				return -1;
-Index: src/response.c
-===================================================================
---- src/response.c	(.../tags/lighttpd-1.4.26)
-+++ src/response.c	(.../branches/lighttpd-1.4.x)
-@@ -136,6 +136,8 @@
- 	X509 *xs;
- 	X509_NAME *xn;
- 	X509_NAME_ENTRY *xe;
-+	int i, nentries;
-+
- 	if (
- 		SSL_get_verify_result(con->ssl) != X509_V_OK
- 		|| !(xs = SSL_get_peer_certificate(con->ssl))
-@@ -144,7 +146,7 @@
- 	}
- 
- 	xn = X509_get_subject_name(xs);
--	for (int i = 0, nentries = X509_NAME_entry_count(xn); i < nentries; ++i) {
-+	for (i = 0, nentries = X509_NAME_entry_count(xn); i < nentries; ++i) {
- 		int xobjnid;
- 		const char * xobjsn;
- 		data_string *envds;
-@@ -581,7 +583,7 @@
- 			};
- #endif
- 			if (S_ISDIR(sce->st.st_mode)) {
--				if (con->physical.path->ptr[con->physical.path->used - 2] != '/') {
-+				if (con->uri.path->ptr[con->uri.path->used - 2] != '/') {
- 					/* redirect to .../ */
+ 			}
++
++			if (s->ssl_honor_cipher_order) {
++				SSL_CTX_set_options(s->ssl_ctx, SSL_OP_CIPHER_SERVER_PREFERENCE);
++			}
+ 		}
  
- 					http_response_redirect_to_directory(srv, con);
-Index: src/mod_proxy.c
-===================================================================
---- src/mod_proxy.c	(.../tags/lighttpd-1.4.26)
-+++ src/mod_proxy.c	(.../branches/lighttpd-1.4.x)
-@@ -349,6 +349,10 @@
- 		srv->cur_fds--;
+ 		/* Support for Diffie-Hellman key exchange */
+@@ -847,7 +874,7 @@
+ 	return 0;
+ }
+ 
+-int network_write_chunkqueue(server *srv, connection *con, chunkqueue *cq) {
++int network_write_chunkqueue(server *srv, connection *con, chunkqueue *cq, off_t max_bytes) {
+ 	int ret = -1;
+ 	off_t written = 0;
+ #ifdef TCP_CORK
+@@ -855,16 +882,34 @@
+ #endif
+ 	server_socket *srv_socket = con->srv_socket;
+ 
+-	if (con->conf.global_kbytes_per_second &&
+-	    *(con->conf.global_bytes_per_second_cnt_ptr) > con->conf.global_kbytes_per_second * 1024) {
+-		/* we reached the global traffic limit */
++	if (con->conf.global_kbytes_per_second) {
++		off_t limit = con->conf.global_kbytes_per_second * 1024 - *(con->conf.global_bytes_per_second_cnt_ptr);
++		if (limit <= 0) {
++			/* we reached the global traffic limit */
+ 
+-		con->traffic_limit_reached = 1;
+-		joblist_append(srv, con);
++			con->traffic_limit_reached = 1;
++			joblist_append(srv, con);
+ 
+-		return 1;
++			return 1;
++		} else {
++			if (max_bytes > limit) max_bytes = limit;
++		}
  	}
  
-+	if (hctx->host) {
-+		hctx->host->usage--;
++	if (con->conf.kbytes_per_second) {
++		off_t limit = con->conf.kbytes_per_second * 1024 - con->bytes_written_cur_second;
++		if (limit <= 0) {
++			/* we reached the traffic limit */
++
++			con->traffic_limit_reached = 1;
++			joblist_append(srv, con);
++
++			return 1;
++		} else {
++			if (max_bytes > limit) max_bytes = limit;
++		}
 +	}
 +
- 	handler_ctx_free(hctx);
- 	con->plugin_ctx[p->id] = NULL;
+ 	written = cq->bytes_out;
+ 
+ #ifdef TCP_CORK
+@@ -879,10 +924,10 @@
+ 
+ 	if (srv_socket->is_ssl) {
+ #ifdef USE_OPENSSL
+-		ret = srv->network_ssl_backend_write(srv, con, con->ssl, cq);
++		ret = srv->network_ssl_backend_write(srv, con, con->ssl, cq, max_bytes);
+ #endif
+ 	} else {
+-		ret = srv->network_backend_write(srv, con, con->fd, cq);
++		ret = srv->network_backend_write(srv, con, con->fd, cq, max_bytes);
+ 	}
+ 
+ 	if (ret >= 0) {
+@@ -903,12 +948,5 @@
+ 
+ 	*(con->conf.global_bytes_per_second_cnt_ptr) += written;
+ 
+-	if (con->conf.kbytes_per_second &&
+-	    (con->bytes_written_cur_second > con->conf.kbytes_per_second * 1024)) {
+-		/* we reached the traffic limit */
+-
+-		con->traffic_limit_reached = 1;
+-		joblist_append(srv, con);
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/lighttpd/branch.sh?r1=1.20&r2=1.21&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/lighttpd/lighttpd-branch.diff?r1=1.69&r2=1.70&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/lighttpd/lighttpd.spec?r1=1.349&r2=1.350&f=u



More information about the pld-cvs-commit mailing list