Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:9559 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 10848 invoked by uid 1010); 26 Apr 2004 02:12:54 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 10784 invoked from network); 26 Apr 2004 02:12:53 -0000 Received: from unknown (HELO utopia.in.force-elite.com) (216.255.199.145) by pb1.pair.com with SMTP; 26 Apr 2004 02:12:53 -0000 X-AuthUser: chip@force-elite.com Received: from [172.31.200.1] (206.127.79.51:61204) by utopia.in.force-elite.com with [XMail 1.17 (Linux/Ix86) ESMTP Server] id for from ; Mon, 26 Apr 2004 02:12:50 -0000 To: internals@lists.php.net Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-ZgXZeRY5A3wLk7VPgWF7" Message-ID: <1082945636.31797.4.camel@powah.cc.force-elite.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Sun, 25 Apr 2004 20:13:56 -0600 Subject: [PATCH] Repost - Adding Output Filters w/ Apache2 Handler SAPI From: chip@force-elite.com (Paul Querna) --=-ZgXZeRY5A3wLk7VPgWF7 Content-Type: multipart/mixed; boundary="=-wtoBtgEaRA8IYk0dJu4A" --=-wtoBtgEaRA8IYk0dJu4A Content-Type: text/plain Content-Transfer-Encoding: quoted-printable I added two new functions for handling output filters in the Apache2Handler SAPI: bool apache_add_output_filter(string filter_name) - Attempts to add the named filter to the Filter Chain. array apache_get_output_filters() - Returns an array of all Active Output filters for this request The ability to add an output filter is very helpful in the apache 2model. For example with this I was able to add an XSLT output filter that I use in other areas to render XML generated from PHP to HTML. The attached patches are for both PHP4 CVS and PHP5 CVS. They are also online at: http://force-elite.com/~chip/patches/php-src/apache2-filters/ I posted this patches last Monday, but received 0 replies. Are the patches acceptable, is there anything to change, or are there any comments? Thanks, -Paul Querna --=-wtoBtgEaRA8IYk0dJu4A Content-Disposition: attachment; filename=php4-CVS-apache2-filters.patch Content-Type: text/x-patch; name=php4-CVS-apache2-filters.patch; charset=UTF-8 Content-Transfer-Encoding: base64 SW5kZXg6IHNhcGkvYXBhY2hlMmhhbmRsZXIvcGhwX2Z1bmN0aW9ucy5jDQo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpS Q1MgZmlsZTogL3JlcG9zaXRvcnkvcGhwLXNyYy9zYXBpL2FwYWNoZTJoYW5kbGVyL3BocF9mdW5j dGlvbnMuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMS4yLjEwDQpkaWZmIC11IC1yMS4xLjIu MTAgcGhwX2Z1bmN0aW9ucy5jDQotLS0gc2FwaS9hcGFjaGUyaGFuZGxlci9waHBfZnVuY3Rpb25z LmMgMTEgTm92IDIwMDMgMjA6MDQ6MTkgLTAwMDAgICAgICAxLjEuMi4xMA0KKysrIHNhcGkvYXBh Y2hlMmhhbmRsZXIvcGhwX2Z1bmN0aW9ucy5jIDIwIEFwciAyMDA0IDA1OjIyOjAzIC0wMDAwDQpA QCAtMjA3LDYgKzIwNyw2NSBAQA0KIH0NCiAvKiB9fX0gKi8NCg0KKy8qIHt7eyBwcm90byBhcnJh eSBhcGFjaGVfZ2V0X291dHB1dF9maWx0ZXJzKCkNCisgICBHZXQgQWxsIEFjdGl2ZSBPdXRwdXQg ZmlsdGVycyAqLw0KK1BIUF9GVU5DVElPTihhcGFjaGVfZ2V0X291dHB1dF9maWx0ZXJzKQ0KK3sN CisgICAgICAgIGFwX2ZpbHRlcl90KiBmZjsNCisgICAgICAgIHBocF9zdHJ1Y3QgKmN0eDsNCisN CisgICAgICAgIGlmIChaRU5EX05VTV9BUkdTKCkgIT0gMCkgew0KKyAgICAgICAgICAgICAgICBX Uk9OR19QQVJBTV9DT1VOVDsNCisgICAgICAgIH0NCisNCisgICAgICAgIGlmKGFycmF5X2luaXQo cmV0dXJuX3ZhbHVlKSAhPSBTVUNDRVNTKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgICAgICBS RVRVUk5fTlVMTCgpOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgY3R4ID0gU0coc2VydmVyX2Nv bnRleHQpOw0KKw0KKyAgICAgICAgZmYgPSBjdHgtPnItPm91dHB1dF9maWx0ZXJzOw0KKw0KKyAg ICAgICAgZG8gew0KKyAgICAgICAgICAgICAgICBhZGRfbmV4dF9pbmRleF9zdHJpbmcocmV0dXJu X3ZhbHVlLCBmZi0+ZnJlYy0+bmFtZSwgMSk7DQorICAgICAgICAgICAgICAgIGZmID0gZmYtPm5l eHQgOw0KKyAgICAgICAgfSB3aGlsZSAoZmYpOw0KKw0KK30NCisvKiB9fX0gKi8NCisNCisvKiB7 e3sgcHJvdG8gYm9vbCBhcGFjaGVfYWRkX291dHB1dF9maWx0ZXIoc3RyaW5nIGZpbHRlcl9uYW1l KQ0KKyAgIEFkZCBhbiBvdXRwdXQgZmlsdGVyIHRvIHRoaXMgcmVxdWVzdCAqLw0KK1BIUF9GVU5D VElPTihhcGFjaGVfYWRkX291dHB1dF9maWx0ZXIpDQorew0KKyAgICAgICAgcGhwX3N0cnVjdCAq Y3R4Ow0KKyAgICAgICAgaW50IGFyZ19jb3VudCA9IFpFTkRfTlVNX0FSR1MoKTsNCisgICAgICAg IHp2YWwgKipmaWx0ZXJfbmFtZTsNCisgICAgICAgIGFwX2ZpbHRlcl9yZWNfdCogYXBfZmlsdGVy Ow0KKw0KKyAgICAgICAgaWYgKGFyZ19jb3VudCAhPSAxIHx8DQorICAgICAgICAgICAgICAgIHpl bmRfZ2V0X3BhcmFtZXRlcnNfZXgoYXJnX2NvdW50LCAmZmlsdGVyX25hbWUpID09IEZBSUxVUkUp IHsNCisgICAgICAgICAgICAgICAgV1JPTkdfUEFSQU1fQ09VTlQ7DQorICAgICAgICB9DQorDQor ICAgICAgICBjdHggPSBTRyhzZXJ2ZXJfY29udGV4dCk7DQorDQorICAgICAgICBjb252ZXJ0X3Rv X3N0cmluZ19leChmaWx0ZXJfbmFtZSk7DQorDQorICAgICAgICBhcF9maWx0ZXIgPSBhcF9nZXRf b3V0cHV0X2ZpbHRlcl9oYW5kbGUoWl9TVFJWQUxfUFAoZmlsdGVyX25hbWUpKTsNCisNCisgICAg ICAgIC8qIHJlcXVlc3RlZCBvdXRwdXQgZmlsdGVyIHdhcyBub3QgZm91bmQgKi8NCisgICAgICAg IGlmKGFwX2ZpbHRlciA9PSBOVUxMKSB7DQorICAgICAgICAgICAgICAgIFJFVFVSTl9GQUxTRTsN CisgICAgICAgIH0NCisgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICAgICBhcF9hZGRfb3V0 cHV0X2ZpbHRlcl9oYW5kbGUoYXBfZmlsdGVyLCBOVUxMLCBjdHgtPnIsIGN0eC0+ci0+Y29ubmVj dGlvbik7DQorICAgICAgICAgICAgICAgIFJFVFVSTl9UUlVFOw0KKyAgICAgICAgfQ0KK30NCisv KiB9fX0gKi8NCisNCiAvKiB7e3sgcHJvdG8gc3RyaW5nIGFwYWNoZV9ub3RlKHN0cmluZyBub3Rl X25hbWUgWywgc3RyaW5nIG5vdGVfdmFsdWVdKQ0KICAgIEdldCBhbmQgc2V0IEFwYWNoZSByZXF1 ZXN0IG5vdGVzICovDQogUEhQX0ZVTkNUSU9OKGFwYWNoZV9ub3RlKQ0KQEAgLTQ2MSw2ICs1MjAs OCBAQA0KICAgICAgICBQSFBfRkUoYXBhY2hlX3Jlc3BvbnNlX2hlYWRlcnMsIE5VTEwpDQogICAg ICAgIFBIUF9GRShhcGFjaGVfc2V0ZW52LCBOVUxMKQ0KICAgICAgICBQSFBfRkUoYXBhY2hlX2dl dGVudiwgTlVMTCkNCisgICAgICAgUEhQX0ZFKGFwYWNoZV9nZXRfb3V0cHV0X2ZpbHRlcnMsIE5V TEwpDQorICAgICAgIFBIUF9GRShhcGFjaGVfYWRkX291dHB1dF9maWx0ZXIsIE5VTEwpDQogICAg ICAgIFBIUF9GRShhcGFjaGVfbm90ZSwgTlVMTCkNCiAgICAgICAgUEhQX0ZFKGFwYWNoZV9nZXRf dmVyc2lvbiwgTlVMTCkNCiAgICAgICAgUEhQX0ZFKGFwYWNoZV9nZXRfbW9kdWxlcywgTlVMTCkN Cg0K --=-wtoBtgEaRA8IYk0dJu4A Content-Disposition: attachment; filename=php5-HEAD-apache2-filters.patch Content-Type: text/x-patch; name=php5-HEAD-apache2-filters.patch; charset=UTF-8 Content-Transfer-Encoding: base64 SW5kZXg6IHNhcGkvYXBhY2hlMmhhbmRsZXIvcGhwX2Z1bmN0aW9ucy5jDQo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpS Q1MgZmlsZTogL3JlcG9zaXRvcnkvcGhwLXNyYy9zYXBpL2FwYWNoZTJoYW5kbGVyL3BocF9mdW5j dGlvbnMuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTMNCmRpZmYgLXUgLXIxLjEzIHBocF9m dW5jdGlvbnMuYw0KLS0tIHNhcGkvYXBhY2hlMmhhbmRsZXIvcGhwX2Z1bmN0aW9ucy5jIDggSmFu IDIwMDQgMDg6MTg6MDUgLTAwMDAgICAgICAgMS4xMw0KKysrIHNhcGkvYXBhY2hlMmhhbmRsZXIv cGhwX2Z1bmN0aW9ucy5jIDIwIEFwciAyMDA0IDA1OjAwOjU5IC0wMDAwDQpAQCAtMjA5LDYgKzIw OSw2NSBAQA0KIH0NCiAvKiB9fX0gKi8NCg0KKy8qIHt7eyBwcm90byBhcnJheSBhcGFjaGVfZ2V0 X291dHB1dF9maWx0ZXJzKCkNCisgICBHZXQgQWxsIEFjdGl2ZSBPdXRwdXQgZmlsdGVycyAqLw0K K1BIUF9GVU5DVElPTihhcGFjaGVfZ2V0X291dHB1dF9maWx0ZXJzKQ0KK3sNCisgICAgICAgYXBf ZmlsdGVyX3QqIGZmOw0KKyAgICAgICBwaHBfc3RydWN0ICpjdHg7DQorDQorICAgICAgIGlmICha RU5EX05VTV9BUkdTKCkgIT0gMCkgew0KKyAgICAgICAgICAgICAgIFdST05HX1BBUkFNX0NPVU5U Ow0KKyAgICAgICB9DQorDQorICAgICAgIGlmKGFycmF5X2luaXQocmV0dXJuX3ZhbHVlKSAhPSBT VUNDRVNTKQ0KKyAgICAgICB7DQorICAgICAgICAgICAgICAgUkVUVVJOX05VTEwoKTsNCisgICAg ICAgfQ0KKw0KKyAgICAgICBjdHggPSBTRyhzZXJ2ZXJfY29udGV4dCk7DQorDQorICAgICAgIGZm ID0gY3R4LT5yLT5vdXRwdXRfZmlsdGVyczsNCisNCisgICAgICAgZG8gew0KKyAgICAgICAgICAg ICAgIGFkZF9uZXh0X2luZGV4X3N0cmluZyhyZXR1cm5fdmFsdWUsIGZmLT5mcmVjLT5uYW1lLCAx KTsNCisgICAgICAgICAgICAgICBmZiA9IGZmLT5uZXh0IDsNCisgICAgICAgfSB3aGlsZSAoZmYp Ow0KKw0KK30NCisvKiB9fX0gKi8NCisNCisvKiB7e3sgcHJvdG8gYm9vbCBhcGFjaGVfYWRkX291 dHB1dF9maWx0ZXIoc3RyaW5nIGZpbHRlcl9uYW1lKQ0KKyAgIEFkZCBhbiBvdXRwdXQgZmlsdGVy IHRvIHRoaXMgcmVxdWVzdCAqLw0KK1BIUF9GVU5DVElPTihhcGFjaGVfYWRkX291dHB1dF9maWx0 ZXIpDQorew0KKyAgICAgICBwaHBfc3RydWN0ICpjdHg7DQorICAgICAgIGludCBhcmdfY291bnQg PSBaRU5EX05VTV9BUkdTKCk7DQorICAgICAgIHp2YWwgKipmaWx0ZXJfbmFtZTsNCisgICAgICAg YXBfZmlsdGVyX3JlY190KiBhcF9maWx0ZXI7DQorDQorICAgICAgIGlmIChhcmdfY291bnQgIT0g MSB8fA0KKyAgICAgICAgICAgICAgIHplbmRfZ2V0X3BhcmFtZXRlcnNfZXgoYXJnX2NvdW50LCAm ZmlsdGVyX25hbWUpID09IEZBSUxVUkUpIHsNCisgICAgICAgICAgICAgICBXUk9OR19QQVJBTV9D T1VOVDsNCisgICAgICAgfQ0KKw0KKyAgICAgICBjdHggPSBTRyhzZXJ2ZXJfY29udGV4dCk7DQor DQorICAgICAgIGNvbnZlcnRfdG9fc3RyaW5nX2V4KGZpbHRlcl9uYW1lKTsNCisNCisgICAgICAg IGFwX2ZpbHRlciA9IGFwX2dldF9vdXRwdXRfZmlsdGVyX2hhbmRsZShaX1NUUlZBTF9QUChmaWx0 ZXJfbmFtZSkpOw0KKw0KKyAgICAgICAgLyogcmVxdWVzdGVkIG91dHB1dCBmaWx0ZXIgd2FzIG5v dCBmb3VuZCAqLw0KKyAgICAgICBpZihhcF9maWx0ZXIgPT0gTlVMTCkgew0KKyAgICAgICAgICAg ICAgIFJFVFVSTl9GQUxTRTsNCisgICAgICAgfQ0KKyAgICAgICBlbHNlIHsNCisgICAgICAgICAg ICAgICBhcF9hZGRfb3V0cHV0X2ZpbHRlcl9oYW5kbGUoYXBfZmlsdGVyLCBOVUxMLCBjdHgtPnIs IGN0eC0+ci0+Y29ubmVjdGlvbik7DQorICAgICAgICAgICAgICAgUkVUVVJOX1RSVUU7DQorICAg ICAgIH0NCit9DQorLyogfX19ICovDQorDQogLyoge3t7IHByb3RvIHN0cmluZyBhcGFjaGVfbm90 ZShzdHJpbmcgbm90ZV9uYW1lIFssIHN0cmluZyBub3RlX3ZhbHVlXSkNCiAgICBHZXQgYW5kIHNl dCBBcGFjaGUgcmVxdWVzdCBub3RlcyAqLw0KIFBIUF9GVU5DVElPTihhcGFjaGVfbm90ZSkNCkBA IC00NTksNiArNTE4LDggQEANCiBzdGF0aWMgZnVuY3Rpb25fZW50cnkgYXBhY2hlX2Z1bmN0aW9u c1tdID0gew0KICAgICAgICBQSFBfRkUoYXBhY2hlX2xvb2t1cF91cmksIE5VTEwpDQogICAgICAg IFBIUF9GRSh2aXJ0dWFsLCBOVUxMKQ0KKyAgICAgICBQSFBfRkUoYXBhY2hlX2dldF9vdXRwdXRf ZmlsdGVycywgTlVMTCkNCisgICAgICAgUEhQX0ZFKGFwYWNoZV9hZGRfb3V0cHV0X2ZpbHRlciwg TlVMTCkNCiAgICAgICAgUEhQX0ZFKGFwYWNoZV9yZXF1ZXN0X2hlYWRlcnMsIE5VTEwpDQogICAg ICAgIFBIUF9GRShhcGFjaGVfcmVzcG9uc2VfaGVhZGVycywgTlVMTCkNCiAgICAgICAgUEhQX0ZF KGFwYWNoZV9zZXRlbnYsIE5VTEwpDQoNCg== --=-wtoBtgEaRA8IYk0dJu4A-- --=-ZgXZeRY5A3wLk7VPgWF7 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD8DBQBAjHBk94h19kJyHwARApbhAKCv+D7Io2SM4gh0dFq5ldJMTh1U1QCeNyTa Uq9X6HMX5WDbx7uFwdDW6hU= =6cEY -----END PGP SIGNATURE----- --=-ZgXZeRY5A3wLk7VPgWF7--