SOURCES: lighttpd-branch.diff - update to r2145
glen
glen at pld-linux.org
Thu Apr 10 20:35:40 CEST 2008
Author: glen Date: Thu Apr 10 18:35:40 2008 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- update to r2145
---- Files affected:
SOURCES:
lighttpd-branch.diff (1.31 -> 1.32)
---- Diffs:
================================================================
Index: SOURCES/lighttpd-branch.diff
diff -u SOURCES/lighttpd-branch.diff:1.31 SOURCES/lighttpd-branch.diff:1.32
--- SOURCES/lighttpd-branch.diff:1.31 Thu Mar 6 11:35:03 2008
+++ SOURCES/lighttpd-branch.diff Thu Apr 10 20:35:34 2008
@@ -1,2760 +1,269 @@
Index: configure.in
===================================================================
-Index: src/configfile-glue.c
-===================================================================
---- src/configfile-glue.c (.../tags/lighttpd-1.4.18) (revision 2118)
-+++ src/configfile-glue.c (.../branches/lighttpd-1.4.x) (revision 2118)
-@@ -277,7 +277,7 @@
- }
- break;
- }
-- case COMP_HTTP_REMOTEIP: {
-+ case COMP_HTTP_REMOTE_IP: {
- char *nm_slash;
- /* handle remoteip limitations
- *
-@@ -341,11 +341,15 @@
- }
- break;
- }
-+ case COMP_HTTP_SCHEME:
-+ l = con->uri.scheme;
-+ break;
-+
- case COMP_HTTP_URL:
- l = con->uri.path;
- break;
-
-- case COMP_HTTP_QUERYSTRING:
-+ case COMP_HTTP_QUERY_STRING:
- l = con->uri.query;
- break;
-
-@@ -372,7 +376,7 @@
- }
- break;
- }
-- case COMP_HTTP_USERAGENT: {
-+ case COMP_HTTP_USER_AGENT: {
- data_string *ds;
- if (NULL != (ds = (data_string *)array_get_element(con->request.headers, "User-Agent"))) {
- l = ds->value;
-@@ -381,7 +385,17 @@
- }
- break;
- }
-+ case COMP_HTTP_REQUEST_METHOD: {
-+ const char *method = get_http_method_name(con->request.http_method);
-
-+ /* we only have the request method as const char but we need a buffer for comparing */
-+
-+ buffer_copy_string(srv->tmp_buf, method);
-+
-+ l = srv->tmp_buf;
-+
-+ break;
-+ }
- default:
- return COND_RESULT_FALSE;
- }
-Index: src/mod_cgi.c
-===================================================================
---- src/mod_cgi.c (.../tags/lighttpd-1.4.18) (revision 2118)
-+++ src/mod_cgi.c (.../branches/lighttpd-1.4.x) (revision 2118)
-@@ -1004,6 +1004,7 @@
- case -1:
- /* error */
- log_error_write(srv, __FILE__, __LINE__, "ss", "fork failed:", strerror(errno));
-+ return -1;
- break;
- default: {
- handler_ctx *hctx;
-@@ -1227,8 +1228,14 @@
- #if 0
- log_error_write(srv, __FILE__, __LINE__, "sd", "(debug) cgi exited fine, pid:", p->cgi_pid.ptr[ndx]);
- #endif
-+ } else if (WIFSIGNALED(status)) {
-+ /* FIXME: what if we killed the CGI script with a kill(..., SIGTERM) ?
-+ */
-+ if (WTERMSIG(status) != SIGTERM) {
-+ log_error_write(srv, __FILE__, __LINE__, "sd", "cleaning up CGI: process died with signal", WTERMSIG(status));
-+ }
- } else {
-- log_error_write(srv, __FILE__, __LINE__, "s", "cgi died ?");
-+ log_error_write(srv, __FILE__, __LINE__, "s", "cleaning up CGI: ended unexpectedly");
- }
+--- configure.in (.../tags/lighttpd-1.4.19) (revision 2145)
++++ configure.in (.../branches/lighttpd-1.4.x) (revision 2145)
+@@ -1,7 +1,7 @@
+ # -*- Autoconf -*-
+ # Process this file with autoconf to produce a configure script.
+ AC_PREREQ(2.57)
+-AC_INIT(lighttpd, 1.4.19, jan at kneschke.de)
++AC_INIT(lighttpd, 1.4.20, jan at kneschke.de)
+ AC_CONFIG_SRCDIR([src/server.c])
- cgi_pid_del(srv, p, p->cgi_pid.ptr[ndx]);
-Index: src/mod_secure_download.c
+ AC_CANONICAL_TARGET
+Index: src/configfile-glue.c
===================================================================
---- src/mod_secure_download.c (.../tags/lighttpd-1.4.18) (revision 2118)
-+++ src/mod_secure_download.c (.../branches/lighttpd-1.4.x) (revision 2118)
-@@ -245,7 +245,8 @@
- /* timed-out */
- if (srv->cur_ts - ts > p->conf.timeout ||
- srv->cur_ts - ts < -p->conf.timeout) {
-- con->http_status = 408;
-+ /* "Gone" as the url will never be valid again instead of "408 - Timeout" where the request may be repeated */
-+ con->http_status = 410;
-
- return HANDLER_FINISHED;
+--- src/configfile-glue.c (.../tags/lighttpd-1.4.19) (revision 2145)
++++ src/configfile-glue.c (.../branches/lighttpd-1.4.x) (revision 2145)
+@@ -529,7 +529,7 @@
+ int config_append_cond_match_buffer(connection *con, data_config *dc, buffer *buf, int n)
+ {
+ cond_cache_t *cache = &con->cond_cache[dc->context_ndx];
+- if (n > cache->patterncount) {
++ if (n >= cache->patterncount) {
+ return 0;
}
-Index: src/base.h
-===================================================================
---- src/base.h (.../tags/lighttpd-1.4.18) (revision 2118)
-+++ src/base.h (.../branches/lighttpd-1.4.x) (revision 2118)
-@@ -515,6 +515,7 @@
- #ifdef USE_OPENSSL
- SSL_CTX *ssl_ctx;
- #endif
-+ unsigned short is_proxy_ssl;
- } server_socket;
- typedef struct {
Index: src/connections.c
===================================================================
---- src/connections.c (.../tags/lighttpd-1.4.18) (revision 2118)
-+++ src/connections.c (.../branches/lighttpd-1.4.x) (revision 2118)
-@@ -394,10 +394,13 @@
- * 403 is from the response handler when noone else catched it
- *
- * */
-- if (con->uri.path->used &&
-+ if ((!con->http_status || con->http_status == 200) && con->uri.path->used &&
- con->uri.path->ptr[0] != '*') {
- response_header_insert(srv, con, CONST_STR_LEN("Allow"), CONST_STR_LEN("OPTIONS, GET, HEAD, POST"));
-
-+ con->response.transfer_encoding &= ~HTTP_TRANSFER_ENCODING_CHUNKED;
-+ con->parsed_response &= ~HTTP_CONTENT_LENGTH;
-+
- con->http_status = 200;
- con->file_finished = 1;
-
-@@ -498,9 +501,11 @@
- case 207:
- case 200: /* class: header + body */
- case 201:
-+ case 300:
- case 301:
- case 302:
- case 303:
-+ case 307:
- break;
-
- case 206: /* write_queue is already prepared */
-@@ -511,13 +516,13 @@
- default:
- /* disable chunked encoding again as we have no body */
- con->response.transfer_encoding &= ~HTTP_TRANSFER_ENCODING_CHUNKED;
-+ con->parsed_response &= ~HTTP_CONTENT_LENGTH;
- chunkqueue_reset(con->write_queue);
-
- con->file_finished = 1;
- break;
- }
-
--
- if (con->file_finished) {
- /* we have all the content and chunked encoding is not used, set a content-length */
-
-@@ -536,12 +541,16 @@
- if ((con->http_status >= 100 && con->http_status < 200) ||
- con->http_status == 204 ||
- con->http_status == 304) {
-+ data_string *ds;
- /* no Content-Body, no Content-Length */
-- } else if (qlen >= 0) {
-+ if (NULL != (ds = (data_string*) array_get_element(con->response.headers, "Content-Length"))) {
-+ buffer_reset(ds->value); // Headers with empty values are ignored for output
-+ }
-+ } else if (qlen > 0 || con->request.http_method != HTTP_METHOD_HEAD) {
- /* qlen = 0 is important for Redirects (301, ...) as they MAY have
- * a content. Browsers are waiting for a Content otherwise
- */
-- buffer_copy_off_t(srv->tmp_buf, chunkqueue_length(con->write_queue));
-+ buffer_copy_off_t(srv->tmp_buf, qlen);
-
- response_header_overwrite(srv, con, CONST_STR_LEN("Content-Length"), CONST_BUF_LEN(srv->tmp_buf));
+--- src/connections.c (.../tags/lighttpd-1.4.19) (revision 2145)
++++ src/connections.c (.../branches/lighttpd-1.4.x) (revision 2145)
+@@ -199,6 +199,7 @@
+
+ /* don't resize the buffer if we were in SSL_ERROR_WANT_* */
+
++ ERR_clear_error();
+ do {
+ if (!con->ssl_error_want_reuse_buffer) {
+ b = buffer_init();
+@@ -1668,21 +1669,51 @@
}
-@@ -582,6 +591,8 @@
- * a HEAD request has the same as a GET
- * without the content
- */
-+ con->file_finished = 1;
-+
- chunkqueue_reset(con->write_queue);
- con->response.transfer_encoding &= ~HTTP_TRANSFER_ENCODING_CHUNKED;
- }
-@@ -834,14 +845,8 @@
- con->plugin_ctx[pd->id] = NULL;
- }
-
--#if COND_RESULT_UNSET
-- for (i = srv->config_context->used - 1; i >= 0; i --) {
-- con->cond_cache[i].result = COND_RESULT_UNSET;
-- con->cond_cache[i].patterncount = 0;
-- }
--#else
-- memset(con->cond_cache, 0, sizeof(cond_cache_t) * srv->config_context->used);
--#endif
-+ /* The cond_cache gets reset in response.c */
-+// config_cond_cache_reset(srv, con);
-
#ifdef USE_OPENSSL
- if (con->ssl_error_want_reuse_buffer) {
-Index: src/array.h
-===================================================================
---- src/array.h (.../tags/lighttpd-1.4.18) (revision 2118)
-+++ src/array.h (.../branches/lighttpd-1.4.x) (revision 2118)
-@@ -86,10 +86,12 @@
- COMP_HTTP_URL,
- COMP_HTTP_HOST,
- COMP_HTTP_REFERER,
-- COMP_HTTP_USERAGENT,
-+ COMP_HTTP_USER_AGENT,
- COMP_HTTP_COOKIE,
-- COMP_HTTP_REMOTEIP,
-- COMP_HTTP_QUERYSTRING,
-+ COMP_HTTP_REMOTE_IP,
-+ COMP_HTTP_QUERY_STRING,
-+ COMP_HTTP_SCHEME,
-+ COMP_HTTP_REQUEST_METHOD,
-
- COMP_LAST_ELEMENT
- } comp_key_t;
-Index: src/mod_staticfile.c
-===================================================================
---- src/mod_staticfile.c (.../tags/lighttpd-1.4.18) (revision 2118)
-+++ src/mod_staticfile.c (.../branches/lighttpd-1.4.x) (revision 2118)
-@@ -352,7 +352,7 @@
- size_t k;
- int s_len;
- stat_cache_entry *sce = NULL;
-- buffer *mtime;
-+ buffer *mtime = NULL;
- data_string *ds;
- int allow_caching = 1;
-
-@@ -450,7 +450,9 @@
- }
- }
-
-- response_header_overwrite(srv, con, CONST_STR_LEN("Accept-Ranges"), CONST_STR_LEN("bytes"));
-+ if (con->conf.range_requests) {
-+ response_header_overwrite(srv, con, CONST_STR_LEN("Accept-Ranges"), CONST_STR_LEN("bytes"));
-+ }
-
- if (allow_caching) {
- if (p->conf.etags_used && con->etag_flags != 0 && !buffer_is_empty(sce->etag)) {
-@@ -483,8 +485,24 @@
- /* if the value is the same as our ETag, we do a Range-request,
- * otherwise a full 200 */
-
-- if (!buffer_is_equal(ds->value, con->physical.etag)) {
-+ if (ds->value->ptr[0] == '"') {
-+ /**
-+ * client wants a ETag
-+ */
-+ if (!con->physical.etag) {
-+ do_range_request = 0;
-+ } else if (!buffer_is_equal(ds->value, con->physical.etag)) {
-+ do_range_request = 0;
-+ }
-+ } else if (!mtime) {
-+ /**
-+ * we don't have a Last-Modified and can match the If-Range:
-+ *
-+ * sending all
-+ */
- do_range_request = 0;
-+ } else if (!buffer_is_equal(ds->value, mtime)) {
-+ do_range_request = 0;
- }
- }
-
-Index: src/fdevent_solaris_devpoll.c
-===================================================================
---- src/fdevent_solaris_devpoll.c (.../tags/lighttpd-1.4.18) (revision 2118)
-+++ src/fdevent_solaris_devpoll.c (.../branches/lighttpd-1.4.x) (revision 2118)
-@@ -67,7 +67,7 @@
- int ret;
-
- dopoll.dp_timeout = timeout_ms;
-- dopoll.dp_nfds = ev->maxfds;
-+ dopoll.dp_nfds = ev->maxfds - 1;
- dopoll.dp_fds = ev->devpollfds;
-
- ret = ioctl(ev->devpoll_fd, DP_POLL, &dopoll);
-Index: src/etag.c
-===================================================================
---- src/etag.c (.../tags/lighttpd-1.4.18) (revision 2118)
-+++ src/etag.c (.../branches/lighttpd-1.4.x) (revision 2118)
-@@ -1,5 +1,14 @@
- #include <string.h>
-+
-+#ifdef HAVE_CONFIG_H
-+#include "config.h"
-+#endif
-+
-+#if defined HAVE_STDINT_H
- #include <stdint.h>
-+#elif defined HAVE_INTTYPES_H
-+#include <inttypes.h>
-+#endif
-
- #include "buffer.h"
- #include "etag.h"
-Index: src/mod_scgi.c
-===================================================================
---- src/mod_scgi.c (.../tags/lighttpd-1.4.18) (revision 2118)
-+++ src/mod_scgi.c (.../branches/lighttpd-1.4.x) (revision 2118)
-@@ -1057,6 +1057,9 @@
- /* a local socket + self spawning */
- size_t pno;
-
-+ /* HACK: just to make sure the adaptive spawing is disabled */
-+ df->min_procs = df->max_procs;
-+
- if (df->min_procs > df->max_procs) df->max_procs = df->min_procs;
- if (df->max_load_per_proc < 1) df->max_load_per_proc = 0;
-
-@@ -2694,8 +2697,9 @@
- if (s_len < ct_len) continue;
-
- /* check extension in the form "/scgi_pattern" */
-- if (*(extension->key->ptr) == '/' && strncmp(fn->ptr, extension->key->ptr, ct_len) == 0) {
-- break;
-+ if (*(extension->key->ptr) == '/') {
-+ if (strncmp(fn->ptr, extension->key->ptr, ct_len) == 0)
-+ break;
- } else if (0 == strncmp(fn->ptr + s_len - ct_len, extension->key->ptr, ct_len)) {
- /* check extension in the form ".fcg" */
- break;
-Index: src/response.c
-===================================================================
---- src/response.c (.../tags/lighttpd-1.4.18) (revision 2118)
-+++ src/response.c (.../branches/lighttpd-1.4.x) (revision 2118)
-@@ -19,6 +19,7 @@
- #include "stat_cache.h"
- #include "chunk.h"
-
-+#include "configfile.h"
- #include "connections.h"
-
- #include "plugin.h"
-@@ -59,7 +60,8 @@
- ds = (data_string *)con->response.headers->data[i];
-
- if (ds->value->used && ds->key->used &&
-- 0 != strncmp(ds->key->ptr, "X-LIGHTTPD-", sizeof("X-LIGHTTPD-") - 1)) {
-+ 0 != strncmp(ds->key->ptr, "X-LIGHTTPD-", sizeof("X-LIGHTTPD-") - 1) &&
-+ 0 != strncmp(ds->key->ptr, "X-Sendfile", sizeof("X-Sendfile") - 1)) {
- if (buffer_is_equal_string(ds->key, CONST_STR_LEN("Date"))) have_date = 1;
- if (buffer_is_equal_string(ds->key, CONST_STR_LEN("Server"))) have_server = 1;
-
-@@ -149,6 +151,9 @@
- *
- * */
-
-+ config_cond_cache_reset(srv, con);
-+ config_setup_connection(srv, con); // Perhaps this could be removed at other places.
-+
- if (con->conf.log_condition_handling) {
- log_error_write(srv, __FILE__, __LINE__, "s", "run condition");
- }
-@@ -180,11 +185,13 @@
- buffer_copy_string_buffer(con->uri.authority, con->request.http_host);
- buffer_to_lower(con->uri.authority);
-
-+ config_patch_connection(srv, con, COMP_HTTP_SCHEME); /* Scheme: */
- config_patch_connection(srv, con, COMP_HTTP_HOST); /* Host: */
-- config_patch_connection(srv, con, COMP_HTTP_REMOTEIP); /* Client-IP */
-+ config_patch_connection(srv, con, COMP_HTTP_REMOTE_IP); /* Client-IP */
- config_patch_connection(srv, con, COMP_HTTP_REFERER); /* Referer: */
-- config_patch_connection(srv, con, COMP_HTTP_USERAGENT); /* User-Agent: */
-+ config_patch_connection(srv, con, COMP_HTTP_USER_AGENT);/* User-Agent: */
- config_patch_connection(srv, con, COMP_HTTP_COOKIE); /* Cookie: */
-+ config_patch_connection(srv, con, COMP_HTTP_REQUEST_METHOD); /* REQUEST_METHOD */
-
- /** their might be a fragment which has to be cut away */
- if (NULL != (qstr = strchr(con->request.uri->ptr, '#'))) {
-@@ -270,7 +277,7 @@
- */
-
- config_patch_connection(srv, con, COMP_HTTP_URL); /* HTTPurl */
-- config_patch_connection(srv, con, COMP_HTTP_QUERYSTRING); /* HTTPqs */
-+ config_patch_connection(srv, con, COMP_HTTP_QUERY_STRING); /* HTTPqs */
-
- /* do we have to downgrade to 1.0 ? */
- if (!con->conf.allow_http11) {
-@@ -547,17 +554,14 @@
- buffer_copy_string_buffer(srv->tmp_buf, con->physical.path);
-
- do {
-- struct stat st;
--
- if (slash) {
- buffer_copy_string_len(con->physical.path, srv->tmp_buf->ptr, slash - srv->tmp_buf->ptr);
- } else {
- buffer_copy_string_buffer(con->physical.path, srv->tmp_buf);
- }
-
-- if (0 == stat(con->physical.path->ptr, &(st)) &&
-- S_ISREG(st.st_mode)) {
-- found = 1;
-+ if (HANDLER_ERROR != stat_cache_get_entry(srv, con, con->physical.path, &sce)) {
-+ found = S_ISREG(sce->st.st_mode);
+ if (srv_sock->is_ssl) {
+- int ret;
++ int ret, ssl_r;
++ unsigned long err;
++ ERR_clear_error();
+ switch ((ret = SSL_shutdown(con->ssl))) {
+ case 1:
+ /* ok */
break;
- }
-
-@@ -589,6 +593,20 @@
- return HANDLER_FINISHED;
- }
-
-+#ifdef HAVE_LSTAT
-+ if ((sce->is_symlink != 0) && !con->conf.follow_symlink) {
-+ con->http_status = 403;
-+
-+ if (con->conf.log_request_handling) {
-+ log_error_write(srv, __FILE__, __LINE__, "s", "-- access denied due symlink restriction");
-+ log_error_write(srv, __FILE__, __LINE__, "sb", "Path :", con->physical.path);
-+ }
-+
-+ buffer_reset(con->physical.path);
-+ return HANDLER_FINISHED;
-+ };
-+#endif
+ case 0:
+- SSL_shutdown(con->ssl);
+- break;
++ ERR_clear_error();
++ if (-1 != (ret = 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;
+
- /* we have a PATHINFO */
- if (pathinfo) {
- buffer_copy_string(con->request.pathinfo, pathinfo);
-@@ -631,8 +649,14 @@
-
- /* if we are still here, no one wanted the file, status 403 is ok I think */
-
-- if (con->mode == DIRECT) {
-- con->http_status = 403;
-+ if (con->mode == DIRECT && con->http_status == 0) {
-+ switch (con->request.http_method) {
-+ case HTTP_METHOD_OPTIONS:
-+ con->http_status = 200;
-+ break;
-+ default:
-+ con->http_status = 403;
-+ }
-
- return HANDLER_FINISHED;
- }
-Index: src/mod_userdir.c
-===================================================================
---- src/mod_userdir.c (.../tags/lighttpd-1.4.18) (revision 2118)
-+++ src/mod_userdir.c (.../branches/lighttpd-1.4.x) (revision 2118)
-@@ -21,6 +21,7 @@
- array *include_user;
- buffer *path;
- buffer *basepath;
-+ unsigned short letterhomes;
- } plugin_config;
-
- typedef struct {
-@@ -87,6 +88,7 @@
- { "userdir.exclude-user", NULL, T_CONFIG_ARRAY, T_CONFIG_SCOPE_CONNECTION }, /* 1 */
- { "userdir.include-user", NULL, T_CONFIG_ARRAY, T_CONFIG_SCOPE_CONNECTION }, /* 2 */
- { "userdir.basepath", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_CONNECTION }, /* 3 */
-+ { "userdir.letterhomes", NULL, T_CONFIG_BOOLEAN,T_CONFIG_SCOPE_CONNECTION }, /* 4 */
- { NULL, NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET }
- };
-
-@@ -102,11 +104,13 @@
- s->include_user = array_init();
- s->path = buffer_init();
- s->basepath = buffer_init();
-+ s->letterhomes = 0;
-
- cv[0].destination = s->path;
- cv[1].destination = s->exclude_user;
- cv[2].destination = s->include_user;
- cv[3].destination = s->basepath;
-+ cv[4].destination = &(s->letterhomes);
-
- p->config_storage[i] = s;
-
-@@ -128,6 +132,7 @@
- PATCH(exclude_user);
- PATCH(include_user);
- PATCH(basepath);
-+ PATCH(letterhomes);
-
- /* skip the first, the global context */
- for (i = 1; i < srv->config_context->used; i++) {
-@@ -149,6 +154,8 @@
- PATCH(include_user);
- } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("userdir.basepath"))) {
- PATCH(basepath);
-+ } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("userdir.letterhomes"))) {
-+ PATCH(letterhomes);
- }
- }
- }
-@@ -253,6 +260,10 @@
-
- buffer_copy_string_buffer(p->temp_path, p->conf.basepath);
- BUFFER_APPEND_SLASH(p->temp_path);
-+ if (p->conf.letterhomes) {
-+ buffer_append_string_len(p->temp_path, p->username->ptr, 1);
-+ BUFFER_APPEND_SLASH(p->temp_path);
-+ }
- buffer_append_string_buffer(p->temp_path, p->username);
- }
- BUFFER_APPEND_SLASH(p->temp_path);
-Index: src/mod_proxy.c
-===================================================================
---- src/mod_proxy.c (.../tags/lighttpd-1.4.18) (revision 2118)
-+++ src/mod_proxy.c (.../branches/lighttpd-1.4.x) (revision 2118)
-@@ -1093,15 +1093,17 @@
- if (s_len < ct_len) continue;
-
- /* check extension in the form "/proxy_pattern" */
-- if (*(extension->key->ptr) == '/' && strncmp(fn->ptr, extension->key->ptr, ct_len) == 0) {
-- if (s_len > ct_len + 1) {
-- char *pi_offset;
-+ if (*(extension->key->ptr) == '/') {
-+ if (strncmp(fn->ptr, extension->key->ptr, ct_len) == 0) {
-+ if (s_len > ct_len + 1) {
-+ char *pi_offset;
-
-- if (0 != (pi_offset = strchr(fn->ptr + ct_len + 1, '/'))) {
-- path_info_offset = pi_offset - fn->ptr;
-+ if (0 != (pi_offset = strchr(fn->ptr + ct_len + 1, '/'))) {
-+ path_info_offset = pi_offset - fn->ptr;
++ switch ((ssl_r = 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 != (err = ERR_get_error())) {
++ do {
++ log_error_write(srv, __FILE__, __LINE__, "sdds", "SSL:",
++ ssl_r, ret,
++ ERR_error_string(err, NULL));
<<Diff was trimmed, longer than 597 lines>>
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/lighttpd-branch.diff?r1=1.31&r2=1.32&f=u
More information about the pld-cvs-commit
mailing list