Return-Path: Delivered-To: apmail-httpd-test-dev-archive@httpd.apache.org Received: (qmail 67796 invoked by uid 500); 10 Aug 2003 22:03:47 -0000 Mailing-List: contact test-dev-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: test-dev@httpd.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list test-dev@httpd.apache.org Received: (qmail 67779 invoked from network); 10 Aug 2003 22:03:46 -0000 Date: Sun, 10 Aug 2003 23:24:04 +0200 From: Jacek Prucia To: test-dev@httpd.apache.org Subject: flood: responsescript patch Message-Id: <20030810232404.170938b6.jacek.prucia@acn.waw.pl> X-Mailer: Sylpheed version 0.9.2 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart_Sun__10_Aug_2003_23:24:04_+0200_0825c178" X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N --Multipart_Sun__10_Aug_2003_23:24:04_+0200_0825c178 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit This probably belongs in contrib/patches. It is a quick'n'dirty hack I did few days ago, to simulate applet making network connection. Basically it allows for something like this: http://www.example.com/ Such script get's whole response buffer (headers and the body). You can then just do about everything you want. Parse script (plain regexp, or HTML parser), check various elements, and (my case) simulate some dorky applet making connections to server where it came from. If everything is ok, then scrpt schould exit with zero. Any other exit code triggers error and stops processing (much like regexp failure). This patch just has one simple problem. If the job is fancy (like my applet connection), then it distorts response times, as apr_proc_wait is blocking. Because of that it doesn't seem like this code belongs in main trunk. How about contrib/patches? regards, Jacek Prucia --Multipart_Sun__10_Aug_2003_23:24:04_+0200_0825c178 Content-Type: text/plain; name="flood_responsescript.patch" Content-Disposition: attachment; filename="flood_responsescript.patch" Content-Transfer-Encoding: base64 ZGlmZiAtdXJOIGZsb29kLm9yaWcvY29uZmlnLmguaW4gZmxvb2QvY29uZmlnLmguaW4KLS0tIGZs b29kLm9yaWcvY29uZmlnLmguaW4JMjAwMy0wOC0wOSAyMzoyMzo1MS4wMDAwMDAwMDAgKzAyMDAK KysrIGZsb29kL2NvbmZpZy5oLmluCTIwMDMtMDgtMTAgMDk6MjU6MzguMDAwMDAwMDAwICswMjAw CkBAIC0yMyw2ICsyMyw3IEBACiAjZGVmaW5lIFhNTF9VUkxMSVNUX1BBWUxPQURfVEVNUExBVEUg InBheWxvYWR0ZW1wbGF0ZSIKICNkZWZpbmUgWE1MX1VSTExJU1RfUkVRVUVTVF9URU1QTEFURSAi cmVxdWVzdHRlbXBsYXRlIgogI2RlZmluZSBYTUxfVVJMTElTVF9SRVNQT05TRV9URU1QTEFURSAi cmVzcG9uc2V0ZW1wbGF0ZSIKKyNkZWZpbmUgWE1MX1VSTExJU1RfUkVTUE9OU0VfU0NSSVBUICJy ZXNwb25zZXNjcmlwdCIKICNkZWZpbmUgWE1MX1VSTExJU1RfUkVTUE9OU0VfTkFNRSAicmVzcG9u c2VuYW1lIgogI2RlZmluZSBYTUxfVVJMTElTVF9QUk9YWSAicHJveHkiCiAjZGVmaW5lIFhNTF9V UkxMSVNUX1BSRURFTEFZICJwcmVkZWxheSIKZGlmZiAtdXJOIGZsb29kLm9yaWcvZmxvb2Rfcm91 bmRfcm9iaW4uYyBmbG9vZC9mbG9vZF9yb3VuZF9yb2Jpbi5jCi0tLSBmbG9vZC5vcmlnL2Zsb29k X3JvdW5kX3JvYmluLmMJMjAwMy0wOC0wOSAwOTozMzoyNy4wMDAwMDAwMDAgKzAyMDAKKysrIGZs b29kL2Zsb29kX3JvdW5kX3JvYmluLmMJMjAwMy0wOC0xMCAwOTo0MToyMS4wMDAwMDAwMDAgKzAy MDAKQEAgLTYxLDYgKzYxLDcgQEAKICNpbmNsdWRlIDxhcHJfbGliLmg+CiAjaW5jbHVkZSA8YXBy X2hhc2guaD4KICNpbmNsdWRlIDxhcHJfYmFzZTY0Lmg+CisjaW5jbHVkZSA8YXByX3RocmVhZF9w cm9jLmg+CiAKICNpZiBBUFJfSEFWRV9TVFJJTkdTX0gKICNpbmNsdWRlIDxzdHJpbmdzLmg+ICAg IC8qIHN0cm5jYXNlY21wICovCkBAIC0xMTQsNiArMTE1LDcgQEAKICAgICBjaGFyICpwYXlsb2Fk dGVtcGxhdGU7CiAgICAgY2hhciAqcmVxdWVzdHRlbXBsYXRlOwogICAgIGNoYXIgKnJlc3BvbnNl dGVtcGxhdGU7CisgICAgY2hhciAqcmVzcG9uc2VzY3JpcHQ7CiAgICAgY2hhciAqcmVzcG9uc2Vu YW1lOwogICAgIGludCByZXNwb25zZWxlbjsKICAgICBjaGFyICp1c2VyOwpAQCAtNDk2LDYgKzQ5 OCwxMSBAQAogICAgICAgICAgICAgICAgIHVybC0+cmVzcG9uc2V0ZW1wbGF0ZSA9IChjaGFyKilh dHRyLT52YWx1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UgaWYgKHN0cm5jYXNl Y21wKGF0dHItPm5hbWUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX1VS TExJU1RfUkVTUE9OU0VfU0NSSVBULCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEZMT09EX1NUUkxFTl9NQVgpID09IDApIHsKKyAgICAgICAgICAgICAgICB1cmwtPnJlc3BvbnNl c2NyaXB0ID0gKGNoYXIqKWF0dHItPnZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAg ZWxzZSBpZiAoc3RybmNhc2VjbXAoYXR0ci0+bmFtZSwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBYTUxfVVJMTElTVF9SRVNQT05TRV9OQU1FLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRkxPT0RfU1RSTEVOX01BWCkgPT0gMCkgewogICAgICAgICAgICAgICAg IHVybC0+cmVzcG9uc2VuYW1lID0gKGNoYXIqKWF0dHItPnZhbHVlOwpAQCAtOTUyLDYgKzk1OSw4 NyBAQAogICAgICAgICAgICAgICAgICAgICAgcnAtPnVybFtycC0+Y3VycmVudF91cmxdLnJlc3Bv bnNlbGVuLCBuZXdWYWx1ZSk7CiAgICAgICAgIHJlZ2ZyZWUoJnJlKTsKICAgICB9CisgICAgaWYg KHJwLT51cmxbcnAtPmN1cnJlbnRfdXJsXS5yZXNwb25zZXNjcmlwdCkKKyAgICB7CisgICAgICAg IGludCBleGl0Y29kZSA9IDA7CisgICAgICAgIGFwcl9zaXplX3QgbmJ5dGVzOworICAgICAgICBh cHJfcHJvY190ICpwcm9jOworICAgICAgICBhcHJfcHJvY2F0dHJfdCAqcHJvY2F0dHI7CisKKyAg ICAgICAgY2hhciAqKmFyZ3M7CisgICAgICAgIGNvbnN0IGNoYXIgKnByb2duYW1lOworICAgICAg ICAKKworICAgICAgICBpZiAoYXByX3Byb2NhdHRyX2NyZWF0ZSgmcHJvY2F0dHIsIHJwLT5wb29s KSAhPSBBUFJfU1VDQ0VTUykgeworICAgICAgICAgICAgYXByX2ZpbGVfcHJpbnRmKGxvY2FsX3N0 ZGVyciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXByX3Byb2NhdHRyX2NyZWF0ZSBm YWlsZWQgZm9yICclcydcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnAtPnVybFty cC0+Y3VycmVudF91cmxdLnJlc3BvbnNlc2NyaXB0KTsKKyAgICAgICAgICAgIHJldHVybiBBUFJf RUdFTkVSQUw7CisgICAgICAgIH0KKworICAgICAgICBpZiAoYXByX3Byb2NhdHRyX2lvX3NldChw cm9jYXR0ciwgQVBSX0ZVTExfQkxPQ0ssIEFQUl9OT19QSVBFLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFQUl9OT19QSVBFKSAhPSBBUFJfU1VDQ0VTUykgeworICAgICAgICAg ICAgYXByX2ZpbGVfcHJpbnRmKGxvY2FsX3N0ZGVyciwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiYXByX3Byb2NhdHRyX2lvX3NldCBmYWlsZWQgZm9yICclcydcbiIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcnAtPnVybFtycC0+Y3VycmVudF91cmxdLnJlc3BvbnNlc2NyaXB0 KTsKKyAgICAgICAgICAgIHJldHVybiBBUFJfRUdFTkVSQUw7CisgICAgICAgIH0KKworICAgICAg ICBpZiAoYXByX3Byb2NhdHRyX2Vycm9yX2NoZWNrX3NldChwcm9jYXR0ciwgMSkpIHsKKyAgICAg ICAgICAgIGFwcl9maWxlX3ByaW50Zihsb2NhbF9zdGRlcnIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImFwcl9wcm9jYXR0cl9lcnJvcl9jaGVja19zZXQgZmFpbGVkIGZvciAnJXMnXG4i LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJwLT51cmxbcnAtPmN1cnJlbnRfdXJsXS5y ZXNwb25zZXNjcmlwdCk7CisgICAgICAgICAgICByZXR1cm4gQVBSX0VHRU5FUkFMOworICAgICAg ICB9CisKKyAgICAgICAgYXByX3Rva2VuaXplX3RvX2FyZ3YocnAtPnVybFtycC0+Y3VycmVudF91 cmxdLnJlc3BvbnNlc2NyaXB0LCAmYXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcnAtPnBvb2wpOworICAgICAgICBwcm9nbmFtZSA9IGFwcl9wc3RyZHVwKHJwLT5wb29sLCBh cmdzWzBdKTsKKworICAgICAgICBwcm9jID0gKGFwcl9wcm9jX3QgKilhcHJfcGNhbGxvYyhycC0+ cG9vbCwgc2l6ZW9mKCpwcm9jKSk7CisKKyAgICAgICAgLy8gY3JlYXRlcHJvYworICAgICAgICBp ZiAoYXByX3Byb2NfY3JlYXRlKHByb2MsIHByb2duYW1lLCAoY29uc3QgY2hhciAqIGNvbnN0ICop YXJncywgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2F0dHIsIHJw LT5wb29sKSAhPSBBUFJfU1VDQ0VTUykgeworICAgICAgICAgICAgYXByX2ZpbGVfcHJpbnRmKGxv Y2FsX3N0ZGVyciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2FuJ3Qgc3Bhd24gcG9z dHByb2Nlc3Mgc2NyaXB0ICclcydcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnAt PnVybFtycC0+Y3VycmVudF91cmxdLnJlc3BvbnNlc2NyaXB0KTsKKyAgICAgICAgICAgIHJldHVy biBBUFJfRUdFTkVSQUw7CisgICAgICAgIH0KKworICAgICAgICBpZiAoYXByX2ZpbGVfcGlwZV90 aW1lb3V0X3NldChwcm9jLT5pbiwgYXByX3RpbWVfZnJvbV9zZWMoMTApKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAhPSBBUFJfU1VDQ0VTUykgeworICAgICAgICAgICAgYXByX2Zp bGVfcHJpbnRmKGxvY2FsX3N0ZGVyciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXBy X2ZpbGVfcGlwZV90aW1lb3V0X3NldCBmYWlsZWQgZm9yICclcydcbiIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcnAtPnVybFtycC0+Y3VycmVudF91cmxdLnJlc3BvbnNlc2NyaXB0KTsK KyAgICAgICAgICAgIHJldHVybiBBUFJfRUdFTkVSQUw7CisgICAgICAgIH0KKworICAgICAgICBu Ynl0ZXMgPSBzdHJsZW4ocmVzcC0+cmJ1Zik7CisgICAgICAgIGlmIChhcHJfZmlsZV93cml0ZV9m dWxsKHByb2MtPmluLCByZXNwLT5yYnVmLCBuYnl0ZXMsIE5VTEwpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICE9IEFQUl9TVUNDRVNTKSB7CisgICAgICAgICAgICBhcHJfZmlsZV9w cmludGYobG9jYWxfc3RkZXJyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcHJfZmls ZV93cml0ZV9mdWxsIGZhaWxlZCBmb3IgJyVzJ1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBycC0+dXJsW3JwLT5jdXJyZW50X3VybF0ucmVzcG9uc2VzY3JpcHQpOworICAgICAgICAg ICAgcmV0dXJuIEFQUl9FR0VORVJBTDsKKyAgICAgICAgfQorICAgICAgICBhcHJfZmlsZV9jbG9z ZShwcm9jLT5pbik7CisKKyAgICAgICAgaWYgKGFwcl9wcm9jX3dhaXQocHJvYywgJmV4aXRjb2Rl LCBOVUxMLCBBUFJfV0FJVCkgIT0gQVBSX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIGFwcl9maWxl X3ByaW50Zihsb2NhbF9zdGRlcnIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFwcl9w cm9jX3dhaXQgZmFpbGVkIGZvciAnJXMnXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJwLT51cmxbcnAtPmN1cnJlbnRfdXJsXS5yZXNwb25zZXNjcmlwdCk7CisgICAgICAgICAgICBy ZXR1cm4gQVBSX0VHRU5FUkFMOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGV4aXRjb2RlICE9 IDApIHsKKyAgICAgICAgICAgIGFwcl9maWxlX3ByaW50Zihsb2NhbF9zdGRlcnIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIlBvc3Rwcm9jZXNzIHNjcmlwdCAnJXMnIGRvbmUgd2l0aCAn JWknIGV4aXQgY29kZVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBycC0+dXJsW3Jw LT5jdXJyZW50X3VybF0ucmVzcG9uc2VzY3JpcHQsIGV4aXRjb2RlKTsKKyAgICAgICAgICAgIHJl dHVybiBBUFJfRUdFTkVSQUw7CisgICAgICAgIH0KKworICAgIH0KIAogICAgIHJldHVybiBBUFJf U1VDQ0VTUzsKIH0K --Multipart_Sun__10_Aug_2003_23:24:04_+0200_0825c178--