You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ji...@apache.org on 2013/04/15 14:38:00 UTC
svn commit: r1467975 - in /httpd/httpd/branches/2.4.x: ./ STATUS
include/ap_mmn.h include/util_filter.h server/util_filter.c
Author: jim
Date: Mon Apr 15 12:37:59 2013
New Revision: 1467975
URL: http://svn.apache.org/r1467975
Log:
Merge r1458456 from trunk:
Useful extensions...
Reviewed/backported by: jim
Modified:
httpd/httpd/branches/2.4.x/ (props changed)
httpd/httpd/branches/2.4.x/STATUS
httpd/httpd/branches/2.4.x/include/ap_mmn.h
httpd/httpd/branches/2.4.x/include/util_filter.h
httpd/httpd/branches/2.4.x/server/util_filter.c
Propchange: httpd/httpd/branches/2.4.x/
------------------------------------------------------------------------------
Merged /httpd/httpd/trunk:r1458456
Modified: httpd/httpd/branches/2.4.x/STATUS
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/STATUS?rev=1467975&r1=1467974&r2=1467975&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/STATUS (original)
+++ httpd/httpd/branches/2.4.x/STATUS Mon Apr 15 12:37:59 2013
@@ -90,11 +90,6 @@ RELEASE SHOWSTOPPERS:
PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
[ start all new proposals below, under PATCHES PROPOSED. ]
- * util_filter: Add in ap_remove_input|output_filter_byhandle()
- trunk patch: http://svn.apache.org/viewvc?view=revision&revision=1458456
- 2.4.x patch: trunk patch works modulo ap_mmn.h
- +1: jim, rjung, covener
-
* cache_storage: remove useless test + update function name in debug log +
skip as soon as we know headers do not match
trunk patch: http://svn.apache.org/viewvc?view=revision&revision=1452281
Modified: httpd/httpd/branches/2.4.x/include/ap_mmn.h
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/include/ap_mmn.h?rev=1467975&r1=1467974&r2=1467975&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/include/ap_mmn.h (original)
+++ httpd/httpd/branches/2.4.x/include/ap_mmn.h Mon Apr 15 12:37:59 2013
@@ -401,6 +401,7 @@
* 20120211.9 (2.4.4-dev) Add fgrab() to ap_slotmem_provider_t.
* 20120211.10 (2.4.4-dev) Add in bal_persist field to proxy_server_conf
* 20120211.11 (2.4.4-dev) Add ap_bin2hex()
+ * 20120211.12 (2.4.5-dev) Add ap_remove_input|output_filter_byhandle()
*/
#define MODULE_MAGIC_COOKIE 0x41503234UL /* "AP24" */
@@ -408,7 +409,7 @@
#ifndef MODULE_MAGIC_NUMBER_MAJOR
#define MODULE_MAGIC_NUMBER_MAJOR 20120211
#endif
-#define MODULE_MAGIC_NUMBER_MINOR 11 /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 12 /* 0...n */
/**
* Determine if the server's current MODULE_MAGIC_NUMBER is at least a
Modified: httpd/httpd/branches/2.4.x/include/util_filter.h
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/include/util_filter.h?rev=1467975&r1=1467974&r2=1467975&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/include/util_filter.h (original)
+++ httpd/httpd/branches/2.4.x/include/util_filter.h Mon Apr 15 12:37:59 2013
@@ -486,6 +486,25 @@ AP_DECLARE(void) ap_remove_input_filter(
AP_DECLARE(void) ap_remove_output_filter(ap_filter_t *f);
+/**
+ * Remove an input filter from either the request or connection stack
+ * it is associated with.
+ * @param next The filter stack to search
+ * @param handle The filter handle (name) to remove
+ * @return APR_SUCCESS on removal or error
+ */
+AP_DECLARE(apr_status_t) ap_remove_input_filter_byhandle(ap_filter_t *next,
+ const char *handle);
+/**
+ * Remove an output filter from either the request or connection stack
+ * it is associated with.
+ * @param next The filter stack to search
+ * @param handle The filter handle (name) to remove
+ * @return APR_SUCCESS on removal or error
+ */
+AP_DECLARE(apr_status_t) ap_remove_output_filter_byhandle(ap_filter_t *next,
+ const char *handle);
+
/* The next two filters are for abstraction purposes only. They could be
* done away with, but that would require that we break modules if we ever
* want to change our filter registration method. The basic idea, is that
Modified: httpd/httpd/branches/2.4.x/server/util_filter.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/server/util_filter.c?rev=1467975&r1=1467974&r2=1467975&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/server/util_filter.c (original)
+++ httpd/httpd/branches/2.4.x/server/util_filter.c Mon Apr 15 12:37:59 2013
@@ -479,6 +479,63 @@ AP_DECLARE(void) ap_remove_output_filter
&f->c->output_filters);
}
+AP_DECLARE(apr_status_t) ap_remove_input_filter_byhandle(ap_filter_t *next,
+ const char *handle)
+{
+ ap_filter_t *found = NULL;
+ ap_filter_rec_t *filter;
+
+ if (!handle) {
+ return APR_EINVAL;
+ }
+ filter = ap_get_input_filter_handle(handle);
+ if (!filter) {
+ return APR_NOTFOUND;
+ }
+
+ while (next) {
+ if (next->frec == filter) {
+ found = next;
+ break;
+ }
+ next = next->next;
+ }
+ if (found) {
+ ap_remove_input_filter(found);
+ return APR_SUCCESS;
+ }
+ return APR_NOTFOUND;
+}
+
+AP_DECLARE(apr_status_t) ap_remove_output_filter_byhandle(ap_filter_t *next,
+ const char *handle)
+{
+ ap_filter_t *found = NULL;
+ ap_filter_rec_t *filter;
+
+ if (!handle) {
+ return APR_EINVAL;
+ }
+ filter = ap_get_output_filter_handle(handle);
+ if (!filter) {
+ return APR_NOTFOUND;
+ }
+
+ while (next) {
+ if (next->frec == filter) {
+ found = next;
+ break;
+ }
+ next = next->next;
+ }
+ if (found) {
+ ap_remove_output_filter(found);
+ return APR_SUCCESS;
+ }
+ return APR_NOTFOUND;
+}
+
+
/*
* Read data from the next filter in the filter stack. Data should be
* modified in the bucket brigade that is passed in. The core allocates the