From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([69.77.167.62] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1JgDIe-00063s-Ab for garchives@archives.gentoo.org; Mon, 31 Mar 2008 06:15:20 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id CBDABE0486; Mon, 31 Mar 2008 06:15:19 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 55CDCE0486 for ; Mon, 31 Mar 2008 06:15:19 +0000 (UTC) Received: from stork.gentoo.org (stork.gentoo.org [64.127.104.133]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTP id C6BAD663C8 for ; Mon, 31 Mar 2008 06:15:18 +0000 (UTC) Received: from bangert by stork.gentoo.org with local (Exim 4.68) (envelope-from ) id 1JgDIb-0004By-RN for gentoo-commits@lists.gentoo.org; Mon, 31 Mar 2008 06:15:17 +0000 From: "Thilo Bangert (bangert)" To: gentoo-commits@lists.gentoo.org Reply-To: gentoo-dev@lists.gentoo.org, bangert@gentoo.org Subject: [gentoo-commits] gentoo-x86 commit in www-servers/lighttpd/files/1.4.19-r2: 03_all_lighttpd-1.4.11-errorlog-pipe.diff 04_all_lighttpd-1.4.13-deprecated-ldap-api.diff 05_all_lighttpd-1.4.19-force_lowercase_filenames_in_mod_userdir.diff 07_all_lighttpd-1.4.19-closing_foreign_ssl_connections-dos-taketwo.diff X-VCS-Repository: gentoo-x86 X-VCS-Files: 03_all_lighttpd-1.4.11-errorlog-pipe.diff 04_all_lighttpd-1.4.13-deprecated-ldap-api.diff 05_all_lighttpd-1.4.19-force_lowercase_filenames_in_mod_userdir.diff 07_all_lighttpd-1.4.19-closing_foreign_ssl_connections-dos-taketwo.diff X-VCS-Directories: www-servers/lighttpd/files/1.4.19-r2 X-VCS-Committer: bangert X-VCS-Committer-Name: Thilo Bangert Content-Type: text/plain; charset=utf8 Message-Id: Sender: Thilo Bangert Date: Mon, 31 Mar 2008 06:15:17 +0000 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: 2ec2a42c-5274-4f22-807c-cdd3bb369882 X-Archives-Hash: 6f481aefa5caff2945a451d3b6f7fbcb bangert 08/03/31 06:15:17 Added: 03_all_lighttpd-1.4.11-errorlog-pipe.diff 04_all_lighttpd-1.4.13-deprecated-ldap-api.diff 05_all_lighttpd-1.4.19-force_lowercase_filenames_= in_mod_userdir.diff 07_all_lighttpd-1.4.19-closing_foreign_ssl_connec= tions-dos-taketwo.diff Log: new patch for ssl issue in bug 214892 (Portage version: 2.1.4.4) (Unsigned Manifest commit) Revision Changes Path 1.1 www-servers/lighttpd/files/1.4.19-r2/03_all_lighttpd= -1.4.11-errorlog-pipe.diff file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/www-servers/lightt= pd/files/1.4.19-r2/03_all_lighttpd-1.4.11-errorlog-pipe.diff?rev=3D1.1&vi= ew=3Dmarkup plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/www-servers/lightt= pd/files/1.4.19-r2/03_all_lighttpd-1.4.11-errorlog-pipe.diff?rev=3D1.1&co= ntent-type=3Dtext/plain Index: 03_all_lighttpd-1.4.11-errorlog-pipe.diff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D diff -ur lighttpd-1.4.11.orig/src/base.h lighttpd-1.4.11/src/base.h --- lighttpd-1.4.11.orig/src/base.h 2006-01-13 06:51:04.000000000 -0800 +++ lighttpd-1.4.11/src/base.h 2006-12-17 18:01:39.000000000 -0800 @@ -505,7 +505,7 @@ =09 /* the errorlog */ int errorlog_fd; - enum { ERRORLOG_STDERR, ERRORLOG_FILE, ERRORLOG_SYSLOG } errorlog_mode; + enum { ERRORLOG_STDERR, ERRORLOG_FILE, ERRORLOG_SYSLOG, ERRORLOG_PIPE }= errorlog_mode; buffer *errorlog_buf; =09 fdevents *ev, *ev_ins; diff -ur lighttpd-1.4.11.orig/src/log.c lighttpd-1.4.11/src/log.c --- lighttpd-1.4.11.orig/src/log.c 2005-13-07 05:01:35.000000000 -0800 +++ lighttpd-1.4.11/src/log.c 2006-12-17 18:09:43.000000000 -0800 @@ -34,10 +34,11 @@ /**=20 * open the errorlog *=20 - * we have 3 possibilities: + * we have 4 possibilities: * - stderr (default) * - syslog=20 * - logfile + * - pipe *=20 * if the open failed, report to the user and die *=20 @@ -57,21 +58,81 @@ srv->errorlog_mode =3D ERRORLOG_SYSLOG; } else if (!buffer_is_empty(srv->srvconf.errorlog_file)) { const char *logfile =3D srv->srvconf.errorlog_file->ptr; - =09 - if (-1 =3D=3D (srv->errorlog_fd =3D open(logfile, O_APPEND | O_WRONLY = | O_CREAT | O_LARGEFILE, 0644))) { - log_error_write(srv, __FILE__, __LINE__, "SSSS",=20 - "opening errorlog '", logfile, - "' failed: ", strerror(errno)); - =09 + + if (logfile[0] =3D=3D '|') { +#ifdef HAVE_FORK + /* create write pipe and spawn process */ + + int to_log_fds[2]; + pid_t pid; + + if (pipe(to_log_fds)) { + log_error_write(srv, __FILE__, __LINE__, "ss", + "pipe failed: ", strerror(errno)); + return -1; + } + + /* fork, execve */ + switch (pid =3D fork()) { + case 0: + /* child */ + + close(STDIN_FILENO); + dup2(to_log_fds[0], STDIN_FILENO); + close(to_log_fds[0]); + /* not needed */ + close(to_log_fds[1]); + + /* we don't need the client socket */ + for (fd =3D 3; fd < 256; fd++) { + close(fd); + } + + /* exec the log-process (skip the | ) + * + */ + + execl("/bin/sh", "sh", "-c", logfile + 1, NULL); + =09 + log_error_write(srv, __FILE__, __LINE__, "sss", + "spawning log-process failed: ", + strerror(errno), logfile + 1); + + exit(-1); + break; + case -1: + /* error */ + log_error_write(srv, __FILE__, __LINE__, "ss", "fork failed:", strer= ror(errno)); + break; + default: + close(to_log_fds[0]); + + srv->errorlog_fd =3D to_log_fds[1]; + + break; + } + srv->errorlog_mode =3D ERRORLOG_PIPE; +#else + log_error_write(srv, __FILE__, __LINE__, "SSS", + "opening errorlog '", logfile,"' impossible"); return -1; - } +#endif + } else { + if (-1 =3D=3D (srv->errorlog_fd =3D open(logfile, O_APPEND | O_WRONLY= | O_CREAT | O_LARGEFILE, 0644))) { + log_error_write(srv, __FILE__, __LINE__, "SSSS", + "opening errorlog '", logfile, + "' failed: ", strerror(errno)); + =20 + return -1; + } + srv->errorlog_mode =3D ERRORLOG_FILE; + } #ifdef FD_CLOEXEC - /* close fd on exec (cgi) */ - fcntl(srv->errorlog_fd, F_SETFD, FD_CLOEXEC); + /* close fd on exec (cgi) */ + fcntl(srv->errorlog_fd, F_SETFD, FD_CLOEXEC); #endif - srv->errorlog_mode =3D ERRORLOG_FILE; - } -=09 + } + =20 log_error_write(srv, __FILE__, __LINE__, "s", "server started"); =09 #ifdef HAVE_VALGRIND_VALGRIND_H @@ -99,7 +160,7 @@ */ =20 int log_error_cycle(server *srv) { - /* only cycle if we are not in syslog-mode */ + /* only cycle if the error log is a file */ =09 if (srv->errorlog_mode =3D=3D ERRORLOG_FILE) { const char *logfile =3D srv->srvconf.errorlog_file->ptr; @@ -135,6 +196,7 @@ log_error_write(srv, __FILE__, __LINE__, "s", "server stopped"); =09 switch(srv->errorlog_mode) { + case ERRORLOG_PIPE: /* fall through */ case ERRORLOG_FILE: close(srv->errorlog_fd); break; @@ -154,6 +216,7 @@ va_list ap; =09 switch(srv->errorlog_mode) { + case ERRORLOG_PIPE: case ERRORLOG_FILE: case ERRORLOG_STDERR: /* cache the generated timestamp */ @@ -238,6 +301,7 @@ va_end(ap); =09 switch(srv->errorlog_mode) { + case ERRORLOG_PIPE: /* fall through */ case ERRORLOG_FILE: BUFFER_APPEND_STRING_CONST(srv->errorlog_buf, "\n"); write(srv->errorlog_fd, srv->errorlog_buf->ptr, srv->errorlog_buf->use= d - 1); diff -ur lighttpd-1.4.11.orig/src/mod_cgi.c lighttpd-1.4.11/src/mod_cgi.c --- lighttpd-1.4.11.orig/src/mod_cgi.c 2006-02-22 05:15:10.000000000 -080= 0 +++ lighttpd-1.4.11/src/mod_cgi.c 2006-12-17 18:01:39.000000000 -0800 @@ -750,7 +750,7 @@ * * we feed the stderr of the CGI to our errorlog, if possible */ - if (srv->errorlog_mode =3D=3D ERRORLOG_FILE) { + if ((srv->errorlog_mode =3D=3D ERRORLOG_FILE) || (srv->errorlog_mode =3D= =3D ERRORLOG_PIPE)) { close(STDERR_FILENO); dup2(srv->errorlog_fd, STDERR_FILENO); } diff -ur lighttpd-1.4.11.orig/src/mod_rrdtool.c lighttpd-1.4.11/src/mod_r= rdtool.c --- lighttpd-1.4.11.orig/src/mod_rrdtool.c 2005-08-21 15:52:24.000000000 = -0700 +++ lighttpd-1.4.11/src/mod_rrdtool.c 2006-12-17 18:01:39.000000000 -0800 @@ -134,7 +134,7 @@ =09 close(STDERR_FILENO); =09 - if (srv->errorlog_mode =3D=3D ERRORLOG_FILE) { + if ((srv->errorlog_mode =3D=3D ERRORLOG_FILE) || (srv->errorlog_mode =3D= =3D ERRORLOG_PIPE)) { dup2(srv->errorlog_fd, STDERR_FILENO); close(srv->errorlog_fd); } 1.1 www-servers/lighttpd/files/1.4.19-r2/04_all_lighttpd= -1.4.13-deprecated-ldap-api.diff file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/www-servers/lightt= pd/files/1.4.19-r2/04_all_lighttpd-1.4.13-deprecated-ldap-api.diff?rev=3D= 1.1&view=3Dmarkup plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/www-servers/lightt= pd/files/1.4.19-r2/04_all_lighttpd-1.4.13-deprecated-ldap-api.diff?rev=3D= 1.1&content-type=3Dtext/plain Index: 04_all_lighttpd-1.4.13-deprecated-ldap-api.diff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- lighttpd-1.4.13.old/src/Makefile.am 2006-10-09 12:19:34.000000000 -04= 00 +++ lighttpd-1.4.13/src/Makefile.am 2007-03-26 10:10:26.000000000 -0400 @@ -213,6 +213,7 @@ mod_auth_la_SOURCES =3D mod_auth.c http_auth_digest.c http_auth.c mod_auth_la_LDFLAGS =3D -module -export-dynamic -avoid-version -no-undef= ined mod_auth_la_LIBADD =3D $(CRYPT_LIB) $(LDAP_LIB) $(LBER_LIB) $(common_lib= add) +mod_auth_la_CFLAGS =3D -DLDAP_DEPRECATED =20 lib_LTLIBRARIES +=3D mod_rewrite.la mod_rewrite_la_SOURCES =3D mod_rewrite.c 1.1 www-servers/lighttpd/files/1.4.19-r2/05_all_lighttpd= -1.4.19-force_lowercase_filenames_in_mod_userdir.diff file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/www-servers/lightt= pd/files/1.4.19-r2/05_all_lighttpd-1.4.19-force_lowercase_filenames_in_mo= d_userdir.diff?rev=3D1.1&view=3Dmarkup plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/www-servers/lightt= pd/files/1.4.19-r2/05_all_lighttpd-1.4.19-force_lowercase_filenames_in_mo= d_userdir.diff?rev=3D1.1&content-type=3Dtext/plain Index: 05_all_lighttpd-1.4.19-force_lowercase_filenames_in_mod_userdir.di= ff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- lighttpd-1.4.19/src/mod_userdir.c 2008-03-10 22:45:29.000000000 +1100 +++ lighty-dev/src/mod_userdir.c 2008-03-12 17:44:43.000000000 +1100 @@ -286,6 +286,11 @@ =20 BUFFER_APPEND_SLASH(p->temp_path); buffer_append_string(p->temp_path, rel_url + 1); /* skip the / */ + + if (con->conf.force_lowercase_filenames) { + buffer_to_lower(p->temp_path); + } + buffer_copy_string_buffer(con->physical.path, p->temp_path); =20 buffer_reset(p->temp_path); 1.1 www-servers/lighttpd/files/1.4.19-r2/07_all_lighttpd= -1.4.19-closing_foreign_ssl_connections-dos-taketwo.diff file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/www-servers/lightt= pd/files/1.4.19-r2/07_all_lighttpd-1.4.19-closing_foreign_ssl_connections= -dos-taketwo.diff?rev=3D1.1&view=3Dmarkup plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/www-servers/lightt= pd/files/1.4.19-r2/07_all_lighttpd-1.4.19-closing_foreign_ssl_connections= -dos-taketwo.diff?rev=3D1.1&content-type=3Dtext/plain Index: 07_all_lighttpd-1.4.19-closing_foreign_ssl_connections-dos-taketwo= .diff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D diff -r ade3eead0e8d -r 82c24356bcd0 NEWS --- a/NEWS Fri Mar 28 16:30:14 2008 +0100 +++ b/NEWS Fri Mar 28 17:45:28 2008 +0100 @@ -8,6 +8,7 @@ * added support for If-Range: (#1346) * added support for matching $HTTP["scheme"] in configs * fixed initgroups() called after chroot (#1384) + * Fix #285 again: read error after SSL_shutdown (thx marton.illes@bala= bit.com) and clear the error queue before some other calls * fixed case-sensitive check for Auth-Method (#1456) * execute fcgi app without /bin/sh if used as argument to spawn-fcgi (= #1428) * fixed a bug that made /-prefixed extensions being handled also when diff -r ade3eead0e8d -r 82c24356bcd0 src/connections.c --- a/src/connections.c Fri Mar 28 16:30:14 2008 +0100 +++ b/src/connections.c Fri Mar 28 17:45:28 2008 +0100 @@ -199,6 +199,7 @@ =20 /* don't resize the buffer if we were in SSL_ERROR_WANT_* */ =20 + ERR_clear_error(); do { if (!con->ssl_error_want_reuse_buffer) { b =3D buffer_init(); @@ -1668,21 +1669,51 @@ } #ifdef USE_OPENSSL if (srv_sock->is_ssl) { - int ret; + int ret, ssl_r; + unsigned long err; + ERR_clear_error(); switch ((ret =3D SSL_shutdown(con->ssl))) { case 1: /* ok */ break; case 0: - SSL_shutdown(con->ssl); - break; + ERR_clear_error(); + if (-1 !=3D (ret =3D SSL_shutdown(con->ssl))) break; + + // fall through default: - log_error_write(srv, __FILE__, __LINE__, "sds", "SSL:", - SSL_get_error(con->ssl, ret), - ERR_error_string(ERR_get_error(), NULL)); - return -1; + + switch ((ssl_r =3D SSL_get_error(con->ssl, ret))) { + case SSL_ERROR_WANT_WRITE: + case SSL_ERROR_WANT_READ: + break; + case SSL_ERROR_SYSCALL: + /* perhaps we have error waiting in our error-queue */ + if (0 !=3D (err =3D ERR_get_error())) { + do { + log_error_write(srv, __FILE__, __LINE__, "sdds", "SSL:", + ssl_r, ret, + ERR_error_string(err, NULL)); + } while((err =3D ERR_get_error())); + } else { + log_error_write(srv, __FILE__, __LINE__, "sddds", "SSL (error):", + ssl_r, r, errno, + strerror(errno)); + } +=09 + break; + default: + while((err =3D ERR_get_error())) { + log_error_write(srv, __FILE__, __LINE__, "sdds", "SSL:", + ssl_r, ret, + ERR_error_string(err, NULL)); + } +=09 + break; + } } } + ERR_clear_error(); #endif =20 switch(con->mode) { diff -r ade3eead0e8d -r 82c24356bcd0 src/network_openssl.c --- a/src/network_openssl.c Fri Mar 28 16:30:14 2008 +0100 +++ b/src/network_openssl.c Fri Mar 28 17:45:28 2008 +0100 @@ -85,6 +85,7 @@ * */ =20 + ERR_clear_error(); if ((r =3D SSL_write(ssl, offset, toSend)) <=3D 0) { unsigned long err; =20 @@ -187,6 +188,7 @@ =20 close(ifd); =20 + ERR_clear_error(); if ((r =3D SSL_write(ssl, s, toSend)) <=3D 0) { unsigned long err; =20 --=20 gentoo-commits@lists.gentoo.org mailing list