diff options
-rw-r--r-- | packages/lighttpd/lighttpd/mod_redirect.c.patch | 56 | ||||
-rw-r--r-- | packages/lighttpd/lighttpd_1.4.18.bb | 3 |
2 files changed, 58 insertions, 1 deletions
diff --git a/packages/lighttpd/lighttpd/mod_redirect.c.patch b/packages/lighttpd/lighttpd/mod_redirect.c.patch new file mode 100644 index 0000000000..7bbdf32082 --- /dev/null +++ b/packages/lighttpd/lighttpd/mod_redirect.c.patch @@ -0,0 +1,56 @@ +Backport support for url.redirect-code directive from 1.5 branch. + +diff -urN lighttpd-1.4.18.orig/src/mod_redirect.c lighttpd-1.4.18/src/mod_redirect.c +--- lighttpd-1.4.18.orig/src/mod_redirect.c 2007-04-10 09:52:58.000000000 +0200 ++++ lighttpd-1.4.18/src/mod_redirect.c 2008-06-11 17:38:50.000000000 +0200 +@@ -16,6 +16,8 @@ + typedef struct { + pcre_keyvalue_buffer *redirect; + data_config *context; /* to which apply me */ ++ ++ unsigned short redirect_code; + } plugin_config; + + typedef struct { +@@ -72,6 +74,7 @@ + + config_values_t cv[] = { + { "url.redirect", NULL, T_CONFIG_LOCAL, T_CONFIG_SCOPE_CONNECTION }, /* 0 */ ++ { "url.redirect-code", NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION }, /* 1 */ + { NULL, NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET } + }; + +@@ -90,6 +93,7 @@ + s->redirect = pcre_keyvalue_buffer_init(); + + cv[0].destination = s->redirect; ++ cv[1].destination = &(s->redirect_code); + + p->config_storage[i] = s; + ca = ((data_config *)srv->config_context->data[i])->value; +@@ -140,6 +144,7 @@ + plugin_config *s = p->config_storage[0]; + + p->conf.redirect = s->redirect; ++ p->conf.redirect_code = s->redirect_code; + p->conf.context = NULL; + + /* skip the first, the global context */ +@@ -157,6 +162,8 @@ + if (0 == strcmp(du->key->ptr, "url.redirect")) { + p->conf.redirect = s->redirect; + p->conf.context = dc; ++ } else if (0 == strcmp(du->key->ptr, "url.redirect-code")) { ++ p->conf.redirect_code = s->redirect_code; + } + } + } +@@ -250,7 +257,7 @@ + + response_header_insert(srv, con, CONST_STR_LEN("Location"), CONST_BUF_LEN(p->location)); + +- con->http_status = 301; ++ con->http_status = p->conf.redirect_code > 99 && p->conf.redirect_code < 1000 ? p->conf.redirect_code : 301; + con->file_finished = 1; + + return HANDLER_FINISHED; diff --git a/packages/lighttpd/lighttpd_1.4.18.bb b/packages/lighttpd/lighttpd_1.4.18.bb index 4a27c626e4..d5870ba5af 100644 --- a/packages/lighttpd/lighttpd_1.4.18.bb +++ b/packages/lighttpd/lighttpd_1.4.18.bb @@ -2,10 +2,11 @@ DESCRIPTION = "Web server" SECTION = "net" LICENSE = "BSD" DEPENDS = "libpcre" -PR = "r2" +PR = "r3" SRC_URI = "http://www.lighttpd.net/download/lighttpd-${PV}.tar.gz \ file://configure.in.patch;patch=1 \ + file://mod_redirect.c.patch;patch=1 \ file://src-server.c.patch;patch=1 \ file://index.html \ file://lighttpd.conf \ |