Return-Path: Delivered-To: apmail-httpd-test-dev-archive@www.apache.org Received: (qmail 52590 invoked from network); 16 Oct 2003 15:46:40 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 16 Oct 2003 15:46:40 -0000 Received: (qmail 28340 invoked by uid 500); 16 Oct 2003 15:46:32 -0000 Delivered-To: apmail-httpd-test-dev-archive@httpd.apache.org Received: (qmail 28311 invoked by uid 500); 16 Oct 2003 15:46:32 -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 28270 invoked from network); 16 Oct 2003 15:46:31 -0000 Received: from unknown (HELO photon.poly.edu) (128.238.32.22) by daedalus.apache.org with SMTP; 16 Oct 2003 15:46:31 -0000 Received: from localhost (ntuttle@localhost) by photon.poly.edu (8.9.0/8.9.0) with ESMTP id LAA08649 for ; Thu, 16 Oct 2003 11:46:29 -0400 (EDT) Date: Thu, 16 Oct 2003 11:46:29 -0400 (EDT) From: Norman Tuttle To: test-dev@httpd.apache.org Subject: Changes to Flood code fix check_socket() SSL issue and make the code base more flexible for future code additions Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-959030623-1066319189=:5631" X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N ---559023410-959030623-1066319189=:5631 Content-Type: TEXT/PLAIN; charset=US-ASCII This modification to socket structures within Flood provides an in-place solution to make check_socket() work properly for ssl (could not have worked properly in the past for keepalive mode because check_socket() was ignoring the ssl_socket_t level. By putting all the transactions with sockets above the apr in a single structure, (a) I have eliminated this and similar errors stemming from confusion regarding sublayers of socket transactions, (b) paved the way for future additions to this socket structure which may be needed at various sublevels, and (c) eliminated multiple allocations of memory for a single transaction. An example of (b) which has been already added to this structure is a linkage with the request which is going out of the socket. This provides such information as the profile's pool and the request's method, and we use it as well to provide finer timing and time out capabilities at the socket level. This eliminated the need to explicitly add the method field to the socket structure (as it is already done in the request) which had been done to support the "HEAD" requests in the socket level, and also eliminates the need for a pool parameter to be passed to either the (ssl_) open_socket or check_socket functions since it is available through the request which is linked to the socket structure which is now passed to those "open" functions. flood_net.h now will import the structures from flood_net_ssl.h which contains the unified socket structure flood_socket_t. The files flood_net.c, flood_net_ssl.c, flood_socket_keepalive.c, and flood_socket_generic.c now utilize this new socket structure and contain the changes to implement it correctly. The linkage between the request and socket is set up in the open_socket() function (and now in the keepalive_begin_conn() function as well because it may not always call the open_socket() function but is has to link the request). Please examine the 6 attached diffs which outline these changes. -Norman Tuttle, Developer, OpenDemand Systems ntuttle@opendemand.com ---559023410-959030623-1066319189=:5631 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="floodneth.diff" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="floodneth.diff" LS0tIGZsb29kX25ldC5oCTIwMDMtMTAtMTUgMTU6Mjg6MzIuMDAwMDAwMDAw IC0wNDAwDQorKysgXGZsb29kLTEuMVxmbG9vZF9uZXQuaAkyMDAzLTA5LTA2 IDAwOjI3OjM4LjAwMDAwMDAwMCAtMDQwMA0KQEAgLTU3LDYgKzU3LDIyIEBA DQogI2lmbmRlZiBfX2Zsb29kX3NvY2tldF9oDQ0KICNkZWZpbmUgX19mbG9v ZF9zb2NrZXRfaA0NCiANDQotI2luY2x1ZGUgImZsb29kX25ldF9zc2wuaCIN DQorI2luY2x1ZGUgPGFwcl9uZXR3b3JrX2lvLmg+IC8qIGFwcl9zb2NrZXRf dCAqLw0NCisjaW5jbHVkZSA8YXByX3BvbGwuaD4gICAgICAgLyogYXByX3Bv bGxmZF90ICovDQ0KKyNpbmNsdWRlIDxhcHJfcG9vbHMuaD4gICAgICAvKiBh cHJfcG9vbF90ICovDQ0KKw0NCisjaW5jbHVkZSAiZmxvb2RfcHJvZmlsZS5o Ig0NCisNDQordHlwZWRlZiBzdHJ1Y3QgZmxvb2Rfc29ja2V0X3Qgew0NCisg ICAgYXByX3NvY2tldF90ICpzb2NrZXQ7DQ0KKyAgICBhcHJfcG9sbGZkX3Qg cmVhZF9wb2xsc2V0Ow0NCit9IGZsb29kX3NvY2tldF90Ow0NCisNDQorZmxv b2Rfc29ja2V0X3QqIG9wZW5fc29ja2V0KGFwcl9wb29sX3QgKnBvb2wsIHJl cXVlc3RfdCAqciwNDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFw cl9zdGF0dXNfdCAqc3RhdHVzKTsNDQordm9pZCBjbG9zZV9zb2NrZXQoZmxv b2Rfc29ja2V0X3QgKnMpOw0NCithcHJfc3RhdHVzX3Qgd3JpdGVfc29ja2V0 KGZsb29kX3NvY2tldF90ICpzLCByZXF1ZXN0X3QgKnIpOw0NCithcHJfc3Rh dHVzX3QgcmVhZF9zb2NrZXQoZmxvb2Rfc29ja2V0X3QgKnMsIGNoYXIgKmJ1 ZiwgaW50ICpidWZsZW4pOw0NCithcHJfc3RhdHVzX3QgY2hlY2tfc29ja2V0 KGZsb29kX3NvY2tldF90ICpzLCBhcHJfcG9vbF90ICpwb29sKTsNDQogDQ0K ICNlbmRpZiAgLyogX19mbG9vZF9zb2NrZXRfaCAqLw0NCg== ---559023410-959030623-1066319189=:5631 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="floodnetsslh.diff" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="floodnetsslh.diff" LS0tIGZsb29kX25ldF9zc2wuaAkyMDAzLTEwLTE1IDE2OjM0OjQxLjAwMDAw MDAwMCAtMDQwMA0KKysrIFxmbG9vZC0xLjFcZmxvb2RfbmV0X3NzbC5oCTIw MDMtMDktMDYgMDA6Mjc6MzguMDAwMDAwMDAwIC0wNDAwDQpAQCAtNTksNDQg KzU5LDE0IEBADQogDQ0KICNpbmNsdWRlIDxhcHJfbmV0d29ya19pby5oPiAv KiBhcHJfc29ja2V0X3QgKi8NDQogI2luY2x1ZGUgPGFwcl9wb29scy5oPiAg ICAgIC8qIGFwcl9wb29sX3QgKi8NDQotI2luY2x1ZGUgPGFwcl9wb2xsLmg+ ICAgICAgIC8qIGFwcl9wb2xsZmRfdCAqLw0NCi0jaW5jbHVkZSAiZmxvb2Rf cHJvZmlsZS5oIg0NCiANDQotI2lmIEZMT09EX0hBU19PUEVOU1NMDQ0KLQ0N Ci0jZGVmaW5lIE9QRU5TU0xfVEhSRUFEX0RFRklORVMNDQotI2luY2x1ZGUg PG9wZW5zc2wvc3NsLmg+DQ0KLSNpbmNsdWRlIDxvcGVuc3NsL2Vyci5oPg0N Ci0jaW5jbHVkZSA8b3BlbnNzbC9yYW5kLmg+DQ0KLQ0NCi0jZW5kaWYNDQot DQ0KLXR5cGVkZWYgc3RydWN0IGZsb29kX3NvY2tldF90IHsNDQotICAgIGFw cl9zb2NrZXRfdCAqc29ja2V0Ow0NCi0gICAgaW50IHdhbnRyZXNwb25zZTsg IC8qIEEgYm9vbGVhbiAqLw0NCi0gICAgaW50IHNzbDsgICAgICAgICAgIC8q IEEgYm9vbGVhbiAqLw0NCi0gICAgaW50IGF2YWlsYWJsZTsgICAgIC8qIHdh cyBib29sZWFuLCBub3cgYW4gZW51bSAqLw0NCi0gICAgYXByX3BvcnRfdCBw b3J0OyAgIC8qIDE2LWJpdCB1aW50LCBjb21wYXJlIGZvciBrZWVwYWxpdmUg Ki8NDQotICAgIGNoYXIgKmhvc3RuYW1lOyAgICAvKiBOZWVkZWQgdG8gY29t cGFyZSBmb3Iga2VlcGFsaXZlICovDQ0KLSAgICBhcHJfcG9sbGZkX3QgcmVh ZF9wb2xsc2V0Ow0NCi0gICAgcmVxdWVzdF90ICpyZXF1ZXN0OyAvKiBQb2lu dHMgdG8gdGhlIHJlcXVlc3Qgd2hpY2ggd2FzIHVzZWQgdG8gY3JlYXRlIHRo ZSBzb2NrZXQuICovDQ0KLSNpZiBGTE9PRF9IQVNfT1BFTlNTTA0NCi0gICAg U1NMX0NUWCAqc3NsX2NvbnRleHQ7DQ0KLSAgICBTU0wgKnNzbF9jb25uZWN0 aW9uOw0NCi0jZW5kaWYNDQotfSBmbG9vZF9zb2NrZXRfdDsNDQordHlwZWRl ZiBzdHJ1Y3Qgc3NsX3NvY2tldF90IHNzbF9zb2NrZXRfdDsNDQogDQ0KIGFw cl9zdGF0dXNfdCBzc2xfaW5pdF9zb2NrZXQoYXByX3Bvb2xfdCAqcG9vbCk7 DQ0KLWFwcl9zb2NrZXRfdCAqc3NsX29wZW5fc29ja2V0KGZsb29kX3NvY2tl dF90ICpzLCByZXF1ZXN0X3QgKnIsDQ0KK3NzbF9zb2NrZXRfdCogc3NsX29w ZW5fc29ja2V0KGFwcl9wb29sX3QgKnBvb2wsIHJlcXVlc3RfdCAqciwNDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXByX3N0YXR1c190ICpz dGF0dXMpOw0NCi12b2lkIHNzbF9jbG9zZV9zb2NrZXQoZmxvb2Rfc29ja2V0 X3QgKnMpOw0NCi1hcHJfc3RhdHVzX3Qgc3NsX3dyaXRlX3NvY2tldChmbG9v ZF9zb2NrZXRfdCAqcywgcmVxdWVzdF90ICpyKTsNDQotYXByX3N0YXR1c190 IHNzbF9yZWFkX3NvY2tldChmbG9vZF9zb2NrZXRfdCAqcywgY2hhciAqYnVm LCBpbnQgKmJ1Zmxlbik7DQ0KLWFwcl9zb2NrZXRfdCAqb3Blbl9zb2NrZXQo Zmxvb2Rfc29ja2V0X3QgKnMsIHJlcXVlc3RfdCAqciwNDQotICAgICAgICAg ICAgICAgICAgICAgICAgICBhcHJfc3RhdHVzX3QgKnN0YXR1cyk7DQ0KLXZv aWQgY2xvc2Vfc29ja2V0KGZsb29kX3NvY2tldF90ICpzKTsNDQotYXByX3N0 YXR1c190IHdyaXRlX3NvY2tldChmbG9vZF9zb2NrZXRfdCAqcywgcmVxdWVz dF90ICpyKTsNDQotYXByX3N0YXR1c190IHJlYWRfc29ja2V0KGZsb29kX3Nv Y2tldF90ICpzLCBjaGFyICpidWYsIGludCAqYnVmbGVuKTsNDQotYXByX3N0 YXR1c190IGNoZWNrX3NvY2tldChmbG9vZF9zb2NrZXRfdCAqcyk7DQ0KK3Zv aWQgc3NsX2Nsb3NlX3NvY2tldChzc2xfc29ja2V0X3QgKnMpOw0NCithcHJf c3RhdHVzX3Qgc3NsX3dyaXRlX3NvY2tldChzc2xfc29ja2V0X3QgKnMsIHJl cXVlc3RfdCAqcik7DQ0KK2Fwcl9zdGF0dXNfdCBzc2xfcmVhZF9zb2NrZXQo c3NsX3NvY2tldF90ICpzLCBjaGFyICpidWYsIGludCAqYnVmbGVuKTsNDQog DQ0KICNlbmRpZiAgLyogX19mbG9vZF9uZXRfc29ja2V0X2ggKi8NDQo= ---559023410-959030623-1066319189=:5631 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="floodnetc.diff" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="floodnetc.diff" LS0tIGZsb29kX25ldC5jCTIwMDMtMTAtMTUgMTk6MTU6MzAuMDAwMDAwMDAw IC0wNDAwDQorKysgXGZsb29kLTEuMVxmbG9vZF9uZXQuYwkyMDAzLTA5LTA5 IDA1OjQ5OjUwLjAwMDAwMDAwMCAtMDQwMA0KQEAgLTU5LDE2ICs1OSwxNyBA QA0KICNpbmNsdWRlICJmbG9vZF9uZXQuaCINDQogDQ0KIC8qIE9wZW4gdGhl IFRDUCBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgKi8NDQotYXByX3NvY2tl dF90KiBvcGVuX3NvY2tldChmbG9vZF9zb2NrZXRfdCAqcywgcmVxdWVzdF90 ICpyLA0NCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGFwcl9zdGF0dXNf dCAqc3RhdHVzKQ0NCitmbG9vZF9zb2NrZXRfdCogb3Blbl9zb2NrZXQoYXBy X3Bvb2xfdCAqcG9vbCwgcmVxdWVzdF90ICpyLA0NCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXByX3N0YXR1c190ICpzdGF0dXMpDQ0KIHsNDQot ICAgIGFwcl9wb29sX3QgKnBvb2wgPSByLT5wb29sOw0NCiAgICAgYXByX3N0 YXR1c190IHJ2ID0gMDsNDQogICAgIGFwcl9zb2NrYWRkcl90ICpkZXN0c2E7 DQ0KKyAgICBmbG9vZF9zb2NrZXRfdCogZnM7DQ0KKyAgICANDQorICAgIGZz ID0gYXByX3BhbGxvYyhwb29sLCBzaXplb2YoZmxvb2Rfc29ja2V0X3QpKTsN DQogDQ0KLSAgICBzLT5yZXF1ZXN0ID0gcjsgLyogTGluayB0aGUgcmVxdWVz dCBzdHJ1Y3R1cmUgdG8gdGhlIHNvY2tldC4gKi8NDQotICAgIGlmICgocnYg PSBhcHJfc29ja2FkZHJfaW5mb19nZXQoJmRlc3RzYSwgci0+cGFyc2VkX3Vy aS0+aG9zdG5hbWUsIEFQUl9JTkVULA0NCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByLT5wYXJzZWRfdXJpLT5wb3J0LCAwLCBwb29s KSkNDQorICAgIGlmICgocnYgPSBhcHJfc29ja2FkZHJfaW5mb19nZXQoJmRl c3RzYSwgci0+cGFyc2VkX3VyaS0+aG9zdG5hbWUsIEFQUl9JTkVULCANDQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgci0+cGFyc2Vk X3VyaS0+cG9ydCwgMCwgcG9vbCkpIA0NCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAhPSBBUFJfU1VDQ0VTUykgew0NCiAgICAgICAg IGlmIChzdGF0dXMpIHsNDQogICAgICAgICAgICAgKnN0YXR1cyA9IHJ2Ow0N CkBAIC03Niw3ICs3Nyw3IEBADQogICAgICAgICByZXR1cm4gTlVMTDsNDQog ICAgIH0NDQogDQ0KLSAgICBpZiAoKHJ2ID0gYXByX3NvY2tldF9jcmVhdGUo JnMtPnNvY2tldCwgQVBSX0lORVQsIFNPQ0tfU1RSRUFNLA0NCisgICAgaWYg KChydiA9IGFwcl9zb2NrZXRfY3JlYXRlKCZmcy0+c29ja2V0LCBBUFJfSU5F VCwgU09DS19TVFJFQU0sDQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQVBSX1BST1RPX1RDUCwgcG9vbCkpICE9IEFQUl9TVUNDRVNTKSB7 DQ0KICAgICAgICAgaWYgKHN0YXR1cykgew0NCiAgICAgICAgICAgICAqc3Rh dHVzID0gcnY7DQ0KQEAgLTg0LDEwICs4NSwxMCBAQA0KICAgICAgICAgcmV0 dXJuIE5VTEw7DQ0KICAgICB9DQ0KIA0NCi0gICAgaWYgKChydiA9IGFwcl9z b2NrZXRfY29ubmVjdChzLT5zb2NrZXQsIGRlc3RzYSkpICE9IEFQUl9TVUND RVNTKSB7DQ0KKyAgICBpZiAoKHJ2ID0gYXByX3NvY2tldF9jb25uZWN0KGZz LT5zb2NrZXQsIGRlc3RzYSkpICE9IEFQUl9TVUNDRVNTKSB7DQ0KICAgICAg ICAgaWYgKEFQUl9TVEFUVVNfSVNfRUlOUFJPR1JFU1MocnYpKSB7DQ0KICAg ICAgICAgICAgIC8qIEZJWE1FOiBIYW5kbGUgYmV0dGVyICovDQ0KLSAgICAg ICAgICAgIGNsb3NlX3NvY2tldChzKTsNDQorICAgICAgICAgICAgY2xvc2Vf c29ja2V0KGZzKTsNDQogICAgICAgICAgICAgaWYgKHN0YXR1cykgew0NCiAg ICAgICAgICAgICAgICAgKnN0YXR1cyA9IHJ2Ow0NCiAgICAgICAgICAgICB9 DQ0KQEAgLTk2LDE3ICs5NywxNyBAQA0KICAgICAgICAgZWxzZSBpZiAoQVBS X1NUQVRVU19JU19FQUdBSU4ocnYpKQ0NCiAgICAgICAgIHsNDQogICAgICAg ICAgICAgLyogV2UgaGF2ZSBydW4gb3V0IG9mIHBvcnRzIGF2YWlsYWJsZSBk dWUgdG8gVElNRV9XQUlUIGV4aGF1c3Rpb24uDQ0KLSAgICAgICAgICAgICAq IFNsZWVwIGZvciBmb3VyIG1pbnV0ZXMsIGFuZCB0cnkgYWdhaW4uDQ0KKyAg ICAgICAgICAgICAqIFNsZWVwIGZvciBmb3VyIG1pbnV0ZXMsIGFuZCB0cnkg YWdhaW4uIA0NCiAgICAgICAgICAgICAgKiBOb3RlOiBTb2xhcmlzIHJldHVy bnMgRUFERFJOT1RBVkFJTCwgTGludXggcmV0dXJucyBFQUdBSU4uDQ0KICAg ICAgICAgICAgICAqIFhYWDogVGhlbiBBUFInSVpFIFRISVMgQUxSRUFEWQ0N CiAgICAgICAgICAgICAgKi8NDQogICAgICAgICAgICAgYXByX3NsZWVwKDQg KiA2MCAqIEFQUl9VU0VDX1BFUl9TRUMpOw0NCi0gICAgICAgICAgICByZXR1 cm4gb3Blbl9zb2NrZXQocywgciwgc3RhdHVzKTsNDQorICAgICAgICAgICAg cmV0dXJuIG9wZW5fc29ja2V0KHBvb2wsIHIsIHN0YXR1cyk7DQ0KICAgICAg ICAgfQ0NCiAgICAgICAgIGVsc2UNDQogICAgICAgICB7DQ0KICAgICAgICAg ICAgIC8qIEZJWE1FOiBIYW5kbGUgKi8NDQotICAgICAgICAgICAgY2xvc2Vf c29ja2V0KHMpOw0NCisgICAgICAgICAgICBjbG9zZV9zb2NrZXQoZnMpOw0N CiAgICAgICAgICAgICBpZiAoc3RhdHVzKSB7DQ0KICAgICAgICAgICAgICAg ICAqc3RhdHVzID0gcnY7DQ0KICAgICAgICAgICAgIH0NDQpAQCAtMTE0LDEz ICsxMTUsMTMgQEANCiAgICAgICAgIH0NDQogICAgIH0NDQogDQ0KLSAgICBh cHJfc29ja2V0X29wdF9zZXQocy0+c29ja2V0LCBBUFJfU09fVElNRU9VVCwg TE9DQUxfU09DS0VUX1RJTUVPVVQpOw0NCi0gICAgcy0+cmVhZF9wb2xsc2V0 LmRlc2NfdHlwZSA9IEFQUl9QT0xMX1NPQ0tFVDsNDQotICAgIHMtPnJlYWRf cG9sbHNldC5kZXNjLnMgPSBzLT5zb2NrZXQ7DQ0KLSAgICBzLT5yZWFkX3Bv bGxzZXQucmVxZXZlbnRzID0gQVBSX1BPTExJTjsNDQotICAgIHMtPnJlYWRf cG9sbHNldC5wID0gcG9vbDsNDQotDQ0KLSAgICByZXR1cm4gcy0+c29ja2V0 Ow0NCisgICAgYXByX3NvY2tldF9vcHRfc2V0KGZzLT5zb2NrZXQsIEFQUl9T T19USU1FT1VULCBMT0NBTF9TT0NLRVRfVElNRU9VVCk7DQ0KKyAgICBmcy0+ cmVhZF9wb2xsc2V0LmRlc2NfdHlwZSA9IEFQUl9QT0xMX1NPQ0tFVDsNDQor ICAgIGZzLT5yZWFkX3BvbGxzZXQuZGVzYy5zID0gZnMtPnNvY2tldDsNDQor ICAgIGZzLT5yZWFkX3BvbGxzZXQucmVxZXZlbnRzID0gQVBSX1BPTExJTjsN DQorICAgIGZzLT5yZWFkX3BvbGxzZXQucCA9IHBvb2w7DQ0KKyAgICANDQor ICAgIHJldHVybiBmczsNDQogfQ0NCiANDQogLyogY2xvc2UgZG93biBUQ1Ag c29ja2V0ICovDQ0KQEAgLTE1NywyMCArMTU4LDIyIEBADQogICAgIHJldHVy biBlOw0NCiB9DQ0KIA0NCi1hcHJfc3RhdHVzX3QgY2hlY2tfc29ja2V0KGZs b29kX3NvY2tldF90ICpzKQ0NCithcHJfc3RhdHVzX3QgY2hlY2tfc29ja2V0 KGZsb29kX3NvY2tldF90ICpzLCBhcHJfcG9vbF90ICpwb29sKQ0NCiB7DQ0K KyAgICBhcHJfc3RhdHVzX3QgZTsNDQogICAgIGFwcl9pbnQzMl90IHNvY2tl dHNSZWFkOw0NCiAgICAgYXByX3BvbGxmZF90IHBvdXQ7DQ0KKyAgICBhcHJf aW50MTZfdCBldmVudDsNDQogDQ0KICAgICBwb3V0LmRlc2NfdHlwZSA9IEFQ Ul9QT0xMX1NPQ0tFVDsNDQogICAgIHBvdXQuZGVzYy5zID0gcy0+c29ja2V0 Ow0NCiAgICAgcG91dC5yZXFldmVudHMgPSBBUFJfUE9MTElOIHwgQVBSX1BP TExQUkkgfCBBUFJfUE9MTEVSUiB8IEFQUl9QT0xMSFVQIHwgQVBSX1BPTExO VkFMOw0NCi0gICAgcG91dC5wID0gcy0+cmVxdWVzdC0+cG9vbDsNDQotDQ0K LSAgICBhcHJfcG9sbCgmcG91dCwgMSwgJnNvY2tldHNSZWFkLCAxMDAwKTsN DQorICAgIHBvdXQucCA9IHBvb2w7DQ0KKyAgICANDQorICAgIGUgPSBhcHJf cG9sbCgmcG91dCwgMSwgJnNvY2tldHNSZWFkLCAxMDAwKTsNDQogICAgIGlm IChzb2NrZXRzUmVhZCAmJiBwb3V0LnJ0bmV2ZW50cykgew0NCiAgICAgICAg IHJldHVybiBBUFJfRUdFTkVSQUw7DQ0KICAgICB9DQ0KLQ0NCisgICAgDQ0K ICAgICByZXR1cm4gQVBSX1NVQ0NFU1M7DQ0KIH0NDQo= ---559023410-959030623-1066319189=:5631 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="floodnetsslc.diff" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="floodnetsslc.diff" LS0tIGZsb29kX25ldF9zc2wuYwkyMDAzLTEwLTE1IDE3OjA2OjUyLjAwMDAw MDAwMCAtMDQwMA0KKysrIFxmbG9vZC0xLjFcZmxvb2RfbmV0X3NzbC5jCTIw MDMtMTAtMDggMTk6MjU6MDIuMDAwMDAwMDAwIC0wNDAwDQpAQCAtNjgsMTMg KzY4LDI0IEBADQogDQ0KICNpZiBGTE9PRF9IQVNfT1BFTlNTTA0NCiANDQor I2RlZmluZSBPUEVOU1NMX1RIUkVBRF9ERUZJTkVTDQ0KKyNpbmNsdWRlIDxv cGVuc3NsL3NzbC5oPg0NCisjaW5jbHVkZSA8b3BlbnNzbC9lcnIuaD4NDQor I2luY2x1ZGUgPG9wZW5zc2wvcmFuZC5oPg0NCisNDQorc3RydWN0IHNzbF9z b2NrZXRfdCB7DQ0KKyAgICBTU0xfQ1RYICpzc2xfY29udGV4dDsNDQorICAg IFNTTCAqc3NsX2Nvbm5lY3Rpb247DQ0KKyAgICBmbG9vZF9zb2NrZXRfdCAq c29ja2V0Ow0NCit9Ow0NCisNDQogYXByX3Bvb2xfdCAqc3NsX3Bvb2w7DQ0K IA0NCiAjaWYgQVBSX0hBU19USFJFQURTDQ0KIGFwcl90aHJlYWRfbXV0ZXhf dCAqKnNzbF9sb2NrczsNDQogDQ0KLXR5cGVkZWYgc3RydWN0IENSWVBUT19k eW5sb2NrX3ZhbHVlIHsNDQotICAgIGFwcl90aHJlYWRfbXV0ZXhfdCAqbG9j azsNDQordHlwZWRlZiBzdHJ1Y3QgQ1JZUFRPX2R5bmxvY2tfdmFsdWUgeyAN DQorICAgIGFwcl90aHJlYWRfbXV0ZXhfdCAqbG9jazsgDQ0KIH0gQ1JZUFRP X2R5bmxvY2tfdmFsdWU7DQ0KIA0NCiBzdGF0aWMgQ1JZUFRPX2R5bmxvY2tf dmFsdWUgKnNzbF9keW5fY3JlYXRlKGNvbnN0IGNoYXIqIGZpbGUsIGludCBs aW5lKQ0NCkBAIC05MCw3ICsxMDEsNyBAQA0KICAgICByZXR1cm4gbDsNDQog fQ0NCiANDQotc3RhdGljIHZvaWQgc3NsX2R5bl9sb2NrKGludCBtb2RlLCBD UllQVE9fZHlubG9ja192YWx1ZSAqbCwgY29uc3QgY2hhciAqZmlsZSwNDQor c3RhdGljIHZvaWQgc3NsX2R5bl9sb2NrKGludCBtb2RlLCBDUllQVE9fZHlu bG9ja192YWx1ZSAqbCwgY29uc3QgY2hhciAqZmlsZSwgDQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnQgbGluZSkNDQogew0NCiAgICAgaWYgKG1v ZGUgJiBDUllQVE9fTE9DSykgew0NCkBAIC0xMjAsNyArMTMxLDcgQEANCiBz dGF0aWMgdW5zaWduZWQgbG9uZyBzc2xfaWQodm9pZCkNDQogew0NCiAgICAg LyogRklYTUU6IFRoaXMgaXMgbGFtZSBhbmQgbm90IHBvcnRhYmxlLiAtYWFy b24gKi8NDQotICAgIHJldHVybiAodW5zaWduZWQgbG9uZykgYXByX29zX3Ro cmVhZF9jdXJyZW50KCk7DQ0KKyAgICByZXR1cm4gKHVuc2lnbmVkIGxvbmcp IGFwcl9vc190aHJlYWRfY3VycmVudCgpOyANDQogfQ0NCiAjZW5kaWYNDQog DQ0KQEAgLTE5OSw0MiArMjEwLDQ2IEBADQogICAgIHJldHVybiBBUFJfU1VD Q0VTUzsNDQogfQ0NCiANDQotdm9pZCBzc2xfcmVhZF9zb2NrZXRfaGFuZHNo YWtlKGZsb29kX3NvY2tldF90ICpzKTsNDQordm9pZCBzc2xfcmVhZF9zb2Nr ZXRfaGFuZHNoYWtlKHNzbF9zb2NrZXRfdCAqcyk7DQ0KIA0NCi1hcHJfc29j a2V0X3QqIHNzbF9vcGVuX3NvY2tldChmbG9vZF9zb2NrZXRfdCAqcywgcmVx dWVzdF90ICpyLA0NCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh cHJfc3RhdHVzX3QgKnN0YXR1cykNDQorc3NsX3NvY2tldF90KiBzc2xfb3Bl bl9zb2NrZXQoYXByX3Bvb2xfdCAqcG9vbCwgcmVxdWVzdF90ICpyLA0NCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHJfc3RhdHVzX3QgKnN0 YXR1cykgDQ0KIHsNDQogICAgIGFwcl9vc19zb2NrX3Qgb3Nzb2NrOw0NCiAg ICAgaW50IGUsIHNzbEVycm9yOw0NCiANDQorICAgIHNzbF9zb2NrZXRfdCAq c3NsX3NvY2tldCA9IGFwcl9wY2FsbG9jKHBvb2wsIHNpemVvZihzc2xfc29j a2V0X3QpKTsNDQorDQ0KICAgICAvKiBPcGVuIG91ciBUQ1AtYmFzZWQgY29u bmVjdGlvbiAqLw0NCi0gICAgaWYgKCFvcGVuX3NvY2tldChzLCByLCBzdGF0 dXMpKQ0NCisgICAgc3NsX3NvY2tldC0+c29ja2V0ID0gb3Blbl9zb2NrZXQo cG9vbCwgciwgc3RhdHVzKTsNDQorICAgIA0NCisgICAgaWYgKCFzc2xfc29j a2V0LT5zb2NrZXQpDQ0KICAgICAgICAgcmV0dXJuIE5VTEw7DQ0KIA0NCiAg ICAgLyogR2V0IHRoZSBuYXRpdmUgT1Mgc29ja2V0LiAqLw0NCi0gICAgYXBy X29zX3NvY2tfZ2V0KCZvc3NvY2ssIHMtPnNvY2tldCk7DQ0KKyAgICBhcHJf b3Nfc29ja19nZXQoJm9zc29jaywgc3NsX3NvY2tldC0+c29ja2V0LT5zb2Nr ZXQpOw0NCiANDQogICAgIC8qIENyZWF0ZSBhIGxvY2FsIGNvbnRleHQgKi8N DQotICAgIHMtPnNzbF9jb250ZXh0ID0gU1NMX0NUWF9uZXcoU1NMdjIzX2Ns aWVudF9tZXRob2QoKSk7DQ0KLSAgICBTU0xfQ1RYX3NldF9vcHRpb25zKHMt PnNzbF9jb250ZXh0LCBTU0xfT1BfQUxMKTsNDQorICAgIHNzbF9zb2NrZXQt PnNzbF9jb250ZXh0ID0gU1NMX0NUWF9uZXcoU1NMdjIzX2NsaWVudF9tZXRo b2QoKSk7DQ0KKyAgICBTU0xfQ1RYX3NldF9vcHRpb25zKHNzbF9zb2NrZXQt PnNzbF9jb250ZXh0LCBTU0xfT1BfQUxMKTsNDQogI2lmZGVmIFNTTF9NT0RF X0FVVE9fUkVUUlkNDQogICAgIC8qIE5vdCBhbGwgT3BlblNTTCB2ZXJzaW9u cyBzdXBwb3J0IHRoaXMuICovDQ0KLSAgICBTU0xfQ1RYX3NldF9vcHRpb25z KHMtPnNzbF9jb250ZXh0LCBTU0xfTU9ERV9BVVRPX1JFVFJZKTsNDQorICAg IFNTTF9DVFhfc2V0X29wdGlvbnMoc3NsX3NvY2tldC0+c3NsX2NvbnRleHQs IFNTTF9NT0RFX0FVVE9fUkVUUlkpOw0NCiAjZW5kaWYNDQotICAgIC8qU1NM X0NUWF9zZXRfZGVmYXVsdF92ZXJpZnlfcGF0aHMocy0+c3NsX2NvbnRleHQp OyovDQ0KLSAgICBTU0xfQ1RYX2xvYWRfdmVyaWZ5X2xvY2F0aW9ucyhzLT5z c2xfY29udGV4dCwgTlVMTCwgQ0FQQVRIKTsNDQorICAgIC8qU1NMX0NUWF9z ZXRfZGVmYXVsdF92ZXJpZnlfcGF0aHMoc3NsX3NvY2tldC0+c3NsX2NvbnRl eHQpOyovDQ0KKyAgICBTU0xfQ1RYX2xvYWRfdmVyaWZ5X2xvY2F0aW9ucyhz c2xfc29ja2V0LT5zc2xfY29udGV4dCwgTlVMTCwgQ0FQQVRIKTsNDQogDQ0K ICAgICAvKiBJbml0aWFsaXplIHRoZSBTU0wgY29ubmVjdGlvbiAqLw0NCi0g ICAgc3NsX3NvY2tldC0+c3NsX2Nvbm5lY3Rpb24gPSBTU0xfbmV3KHMtPnNz bF9jb250ZXh0KTsNDQotICAgIFNTTF9zZXRfY29ubmVjdF9zdGF0ZShzLT5z c2xfY29ubmVjdGlvbik7DQ0KKyAgICBzc2xfc29ja2V0LT5zc2xfY29ubmVj dGlvbiA9IFNTTF9uZXcoc3NsX3NvY2tldC0+c3NsX2NvbnRleHQpOw0NCisg ICAgU1NMX3NldF9jb25uZWN0X3N0YXRlKHNzbF9zb2NrZXQtPnNzbF9jb25u ZWN0aW9uKTsNDQogDQ0KICAgICAvKiBTZXQgdGhlIGRlc2NyaXB0b3JzICov DQ0KLSAgICBTU0xfc2V0X2ZkKHMtPnNzbF9jb25uZWN0aW9uLCBvc3NvY2sp Ow0NCi0gICAgZSA9IFNTTF9jb25uZWN0KHMtPnNzbF9jb25uZWN0aW9uKTsN DQorICAgIFNTTF9zZXRfZmQoc3NsX3NvY2tldC0+c3NsX2Nvbm5lY3Rpb24s IG9zc29jayk7DQ0KKyAgICBlID0gU1NMX2Nvbm5lY3Qoc3NsX3NvY2tldC0+ c3NsX2Nvbm5lY3Rpb24pOw0NCiANDQogICAgIGlmIChlKQ0NCiAgICAgew0N Ci0gICAgICAgIHNzbEVycm9yID0gU1NMX2dldF9lcnJvcihzLT5zc2xfY29u bmVjdGlvbiwgZSk7DQ0KKyAgICAgICAgc3NsRXJyb3IgPSBTU0xfZ2V0X2Vy cm9yKHNzbF9zb2NrZXQtPnNzbF9jb25uZWN0aW9uLCBlKTsNDQogDQ0KICAg ICAgICAgc3dpdGNoIChzc2xFcnJvcikNDQogICAgICAgICB7DQ0KQEAgLTI0 NSwyMiArMjYwLDIyIEBADQogICAgICAgICAgICAgYnJlYWs7DQ0KICAgICAg ICAgZGVmYXVsdDoNDQogICAgICAgICAgICAgRVJSX3ByaW50X2Vycm9yc19m cChzdGRlcnIpOw0NCi0gICAgICAgICAgICByZXR1cm4gTlVMTDsNDQorICAg ICAgICAgICAgcmV0dXJuIE5VTEw7IA0NCiAgICAgICAgIH0NDQogICAgIH0N DQogDQ0KLSAgICByZXR1cm4gcy0+c29ja2V0Ow0NCisgICAgcmV0dXJuIHNz bF9zb2NrZXQ7DQ0KIH0NDQogDQ0KIC8qIGNsb3NlIGRvd24gVENQIHNvY2tl dCAqLw0NCi12b2lkIHNzbF9jbG9zZV9zb2NrZXQoZmxvb2Rfc29ja2V0X3Qg KnMpDQ0KK3ZvaWQgc3NsX2Nsb3NlX3NvY2tldChzc2xfc29ja2V0X3QgKnMp DQ0KIHsNDQogICAgIFNTTF9mcmVlKHMtPnNzbF9jb25uZWN0aW9uKTsNDQog ICAgIFNTTF9DVFhfZnJlZShzLT5zc2xfY29udGV4dCk7DQ0KLSAgICBjbG9z ZV9zb2NrZXQocyk7DQ0KKyAgICBjbG9zZV9zb2NrZXQocy0+c29ja2V0KTsN DQogfQ0NCiANDQotYXByX3N0YXR1c190IHNzbF9yZWFkX3NvY2tldChmbG9v ZF9zb2NrZXRfdCAqcywgY2hhciAqYnVmLCBpbnQgKmJ1ZmxlbikNDQorYXBy X3N0YXR1c190IHNzbF9yZWFkX3NvY2tldChzc2xfc29ja2V0X3QgKnMsIGNo YXIgKmJ1ZiwgaW50ICpidWZsZW4pDQ0KIHsNDQogICAgIGFwcl9zdGF0dXNf dCBlOw0NCiAgICAgaW50IHNzbEVycm9yOw0NCkBAIC0yNjgsNyArMjgzLDcg QEANCiANDQogICAgIC8qIFdhaXQgdW50aWwgdGhlcmUgaXMgc29tZXRoaW5n IHRvIHJlYWQuICovDQ0KICAgICBpZiAoU1NMX3BlbmRpbmcocy0+c3NsX2Nv bm5lY3Rpb24pIDwgKmJ1Zmxlbikgew0NCi0gICAgICAgIGUgPSBhcHJfcG9s bCgmcy0+cmVhZF9wb2xsc2V0LCAxLCAmc29ja2V0c1JlYWQsDQ0KKyAgICAg ICAgZSA9IGFwcl9wb2xsKCZzLT5zb2NrZXQtPnJlYWRfcG9sbHNldCwgMSwg JnNvY2tldHNSZWFkLA0NCiAgICAgICAgICAgICAgICAgICAgICBMT0NBTF9T T0NLRVRfVElNRU9VVCk7DQ0KIA0NCiAgICAgICAgIGlmIChzb2NrZXRzUmVh ZCAhPSAxKQ0NCkBAIC0yODcsMzQgKzMwMiwzNCBAQA0KICAgICAgICAgc3Ns X3JlYWRfc29ja2V0KHMsIGJ1ZiwgYnVmbGVuKTsNDQogICAgICAgICBicmVh azsNDQogICAgIGNhc2UgU1NMX0VSUk9SX1pFUk9fUkVUVVJOOiAvKiBQZWVy IGNsb3NlZCBjb25uZWN0aW9uLiAqLw0NCi0gICAgICAgIHJldHVybiBBUFJf RU9GOw0NCisgICAgICAgIHJldHVybiBBUFJfRU9GOyANDQogICAgIGNhc2Ug U1NMX0VSUk9SX1NZU0NBTEw6IC8qIExvb2sgYXQgZXJybm8uICovDQ0KICAg ICAgICAgaWYgKGVycm5vID09IDApDQ0KICAgICAgICAgICAgIHJldHVybiBB UFJfRU9GOw0NCi0gICAgICAgIC8qIENvbnRpbnVlIHRocm91Z2ggd2l0aCB0 aGUgZXJyb3IgY2FzZS4gKi8NDQorICAgICAgICAvKiBDb250aW51ZSB0aHJv dWdoIHdpdGggdGhlIGVycm9yIGNhc2UuICovICAgDQ0KICAgICBjYXNlIFNT TF9FUlJPUl9XQU5UX1dSSVRFOiAgLyogVGVjaG5pY2FsbHksIG5vdCBhbiBl cnJvci4gKi8NDQogICAgIGRlZmF1bHQ6DQ0KICAgICAgICAgRVJSX3ByaW50 X2Vycm9yc19mcChzdGRlcnIpOw0NCi0gICAgICAgIHJldHVybiBBUFJfRUdF TkVSQUw7DQ0KKyAgICAgICAgcmV0dXJuIEFQUl9FR0VORVJBTDsgDQ0KICAg ICB9DQ0KIA0NCiAgICAgcmV0dXJuIEFQUl9TVUNDRVNTOw0NCiB9DQ0KIA0N Ci12b2lkIHNzbF9yZWFkX3NvY2tldF9oYW5kc2hha2UoZmxvb2Rfc29ja2V0 X3QgKnMpDQ0KK3ZvaWQgc3NsX3JlYWRfc29ja2V0X2hhbmRzaGFrZShzc2xf c29ja2V0X3QgKnMpDQ0KIHsNDQogICAgIGNoYXIgYnVmWzFdOw0NCi0gICAg aW50IGJ1ZmxlbiA9IDE7DQ0KKyAgICBpbnQgYnVmbGVuID0gMTsgDQ0KICAg ICAvKiBXYWl0IHVudGlsIHRoZXJlIGlzIHNvbWV0aGluZyB0byByZWFkLiAq Lw0NCiAgICAgYXByX2ludDMyX3Qgc29ja2V0c1JlYWQ7DQ0KICAgICBhcHJf c3RhdHVzX3QgZTsNDQotICAgIGUgPSBhcHJfcG9sbCgmcy0+cmVhZF9wb2xs c2V0LCAxLCAmc29ja2V0c1JlYWQsDQ0KKyAgICBlID0gYXByX3BvbGwoJnMt PnNvY2tldC0+cmVhZF9wb2xsc2V0LCAxLCAmc29ja2V0c1JlYWQsDQ0KICAg ICAgICAgICAgICAgICAgTE9DQUxfU09DS0VUX1RJTUVPVVQpOw0NCiAgICAg ZSA9IFNTTF9yZWFkKHMtPnNzbF9jb25uZWN0aW9uLCBidWYsIGJ1Zmxlbik7 DQ0KIH0NDQogDQ0KIC8qIFdyaXRlIHRvIHRoZSBzb2NrZXQgKi8NDQotYXBy X3N0YXR1c190IHNzbF93cml0ZV9zb2NrZXQoZmxvb2Rfc29ja2V0X3QgKnMs IHJlcXVlc3RfdCAqcikNDQorYXByX3N0YXR1c190IHNzbF93cml0ZV9zb2Nr ZXQoc3NsX3NvY2tldF90ICpzLCByZXF1ZXN0X3QgKnIpDQ0KIHsNDQogICAg IGFwcl9zdGF0dXNfdCBlOw0NCiAgICAgaW50IHNzbEVycm9yOw0NCkBAIC0z MzUsMTAgKzM1MCwxMCBAQA0KICAgICAgICAgYnJlYWs7DQ0KICAgICBkZWZh dWx0Og0NCiAgICAgICAgIEVSUl9wcmludF9lcnJvcnNfZnAoc3RkZXJyKTsN DQotICAgICAgICByZXR1cm4gQVBSX0VHRU5FUkFMOw0NCisgICAgICAgIHJl dHVybiBBUFJfRUdFTkVSQUw7IA0NCiAgICAgfQ0NCiANDQotICAgIHJldHVy biBBUFJfU1VDQ0VTUzsNDQorICAgIHJldHVybiBBUFJfU1VDQ0VTUzsgICAg IA0NCiB9DQ0KIA0NCiAjZWxzZSAvKiBGTE9PRF9IQVNfT1BFTlNTTCAqLw0N CkBAIC0zNDgsMjIgKzM2MywyMiBAQA0KICAgICByZXR1cm4gQVBSX0VOT1RJ TVBMOw0NCiB9DQ0KIA0NCi1hcHJfc29ja2V0X3QqIHNzbF9vcGVuX3NvY2tl dChhcHJfcG9vbF90ICpwb29sLCByZXF1ZXN0X3QgKnIsDQ0KK3NzbF9zb2Nr ZXRfdCogc3NsX29wZW5fc29ja2V0KGFwcl9wb29sX3QgKnBvb2wsIHJlcXVl c3RfdCAqciwNDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBy X3N0YXR1c190ICpzdGF0dXMpDQ0KIHsNDQogICAgIHJldHVybiBOVUxMOw0N CiB9DQ0KIA0NCi12b2lkIHNzbF9jbG9zZV9zb2NrZXQoZmxvb2Rfc29ja2V0 X3QgKnMpDQ0KK3ZvaWQgc3NsX2Nsb3NlX3NvY2tldChzc2xfc29ja2V0X3Qg KnMpDQ0KIHsNDQogfQ0NCiANDQotYXByX3N0YXR1c190IHNzbF93cml0ZV9z b2NrZXQoZmxvb2Rfc29ja2V0X3QgKnMsIHJlcXVlc3RfdCAqcikNDQorYXBy X3N0YXR1c190IHNzbF93cml0ZV9zb2NrZXQoc3NsX3NvY2tldF90ICpzLCBy ZXF1ZXN0X3QgKnIpDQ0KIHsNDQogICAgIHJldHVybiBBUFJfRU5PVElNUEw7 DQ0KIH0NDQogDQ0KLWFwcl9zdGF0dXNfdCBzc2xfcmVhZF9zb2NrZXQoZmxv b2Rfc29ja2V0X3QgKnMsIGNoYXIgKmJ1ZiwgaW50ICpidWZsZW4pDQ0KK2Fw cl9zdGF0dXNfdCBzc2xfcmVhZF9zb2NrZXQoc3NsX3NvY2tldF90ICpzLCBj aGFyICpidWYsIGludCAqYnVmbGVuKQ0NCiB7DQ0KICAgICByZXR1cm4gQVBS X0VOT1RJTVBMOw0NCiB9DQ0K ---559023410-959030623-1066319189=:5631 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="floodsocketgenericc.diff" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="floodsocketgenericc.diff" LS0tIGZsb29kX3NvY2tldF9nZW5lcmljLmMJMjAwMy0xMC0xNSAxOToyMDox Ni4wMDAwMDAwMDAgLTA0MDANCisrKyBcZmxvb2QtMS4xXGZsb29kX3NvY2tl dF9nZW5lcmljLmMJMjAwMy0wOS0wNiAwMDoyNzozOC4wMDAwMDAwMDAgLTA0 MDANCkBAIC02NiwxNCArNjYsMjAgQEANCiAjaW5jbHVkZSAiZmxvb2RfbmV0 X3NzbC5oIg0NCiAjaW5jbHVkZSAiZmxvb2Rfc29ja2V0X2dlbmVyaWMuaCIN DQogDQ0KK3R5cGVkZWYgc3RydWN0IHsNDQorICAgIHZvaWQgKnM7DQ0KKyAg ICBpbnQgd2FudHJlc3BvbnNlOyAgIC8qIEEgYm9vbGVhbiAqLw0NCisgICAg aW50IHNzbDsgICAgICAgICAgICAvKiBBIGJvb2xlYW4gKi8NDQorfSBnZW5l cmljX3NvY2tldF90Ow0NCisNDQogYXByX3N0YXR1c190IGdlbmVyaWNfc29j a2V0X2luaXQoc29ja2V0X3QgKipzb2NrLCBhcHJfcG9vbF90ICpwb29sKQ0N CiB7DQ0KLSAgICBmbG9vZF9zb2NrZXRfdCAqbmV3X2dzb2NrOw0NCisgICAg Z2VuZXJpY19zb2NrZXRfdCAqbmV3X2dzb2NrOw0NCiANDQotICAgIG5ld19n c29jayA9IChmbG9vZF9zb2NrZXRfdCAqKWFwcl9wYWxsb2MocG9vbCwgc2l6 ZW9mKGZsb29kX3NvY2tldF90KSk7DQ0KKyAgICBuZXdfZ3NvY2sgPSAoZ2Vu ZXJpY19zb2NrZXRfdCAqKWFwcl9wYWxsb2MocG9vbCwgc2l6ZW9mKGdlbmVy aWNfc29ja2V0X3QpKTsNDQogICAgIGlmIChuZXdfZ3NvY2sgPT0gTlVMTCkN DQogICAgICAgICByZXR1cm4gQVBSX0VOT01FTTsNDQotICAgIG5ld19nc29j ay0+c29ja2V0ID0gTlVMTDsNDQorICAgIG5ld19nc29jay0+cyA9IE5VTEw7 DQ0KIA0NCiAgICAgKnNvY2sgPSBuZXdfZ3NvY2s7DQ0KICAgICByZXR1cm4g QVBSX1NVQ0NFU1M7DQ0KQEAgLTg1LDcgKzkxLDcgQEANCiBhcHJfc3RhdHVz X3QgZ2VuZXJpY19iZWdpbl9jb25uKHNvY2tldF90ICpzb2NrLCByZXF1ZXN0 X3QgKnJlcSwgYXByX3Bvb2xfdCAqcG9vbCkNDQogew0NCiAgICAgYXByX3N0 YXR1c190IHJ2Ow0NCi0gICAgZmxvb2Rfc29ja2V0X3QgKmdzb2NrID0gKGZs b29kX3NvY2tldF90ICopc29jazsNDQorICAgIGdlbmVyaWNfc29ja2V0X3Qg Kmdzb2NrID0gKGdlbmVyaWNfc29ja2V0X3QgKilzb2NrOw0NCiANDQogICAg IGlmIChzdHJjYXNlY21wKHJlcS0+cGFyc2VkX3VyaS0+c2NoZW1lLCAiaHR0 cHMiKSA9PSAwKSB7DQ0KICAgICAgICAgLyogSWYgd2UgZG9uJ3QgaGF2ZSBT U0wsIGVycm9yIG91dC4gKi8NDQpAQCAtMTAyLDExICsxMDgsMTEgQEANCiAg ICAgLyogVGhlIHJldHVybiB0eXBlcyBhcmUgbm90IGlkZW50aWNhbCwgc28g aXQgY2FuJ3QgYmUgYSB0ZXJuYXJ5DQ0KICAgICAgKiBvcGVyYXRpb24uICov DQ0KICAgICBpZiAoZ3NvY2stPnNzbCkNDQotICAgICAgICBzc2xfb3Blbl9z b2NrZXQoZ3NvY2ssIHJlcSwgJnJ2KTsNDQorICAgICAgICBnc29jay0+cyA9 IHNzbF9vcGVuX3NvY2tldChwb29sLCByZXEsICZydik7DQ0KICAgICBlbHNl DQ0KLSAgICAgICAgb3Blbl9zb2NrZXQoZ3NvY2ssIHJlcSwgJnJ2KTsNDQor ICAgICAgICBnc29jay0+cyA9IG9wZW5fc29ja2V0KHBvb2wsIHJlcSwgJnJ2 KTsNDQogDQ0KLSAgICBpZiAoZ3NvY2stPnNvY2tldCA9PSBOVUxMKQ0NCisg ICAgaWYgKGdzb2NrLT5zID09IE5VTEwpDQ0KICAgICAgICAgcmV0dXJuIHJ2 Ow0NCiANDQogICAgIHJlcS0+a2VlcGFsaXZlID0gMDsgLyogRklYTUU6IE1h eWJlIG1vdmUgdGhpcyBpbnRvIGZsb29kX3NvY2tldF90ICovDQ0KQEAgLTEx OCwxMCArMTI0LDEwIEBADQogICovDQ0KIGFwcl9zdGF0dXNfdCBnZW5lcmlj X3NlbmRfcmVxKHNvY2tldF90ICpzb2NrLCByZXF1ZXN0X3QgKnJlcSwgYXBy X3Bvb2xfdCAqcG9vbCkNDQogew0NCi0gICAgZmxvb2Rfc29ja2V0X3QgKmdz b2NrID0gKGZsb29kX3NvY2tldF90ICopc29jazsNDQorICAgIGdlbmVyaWNf c29ja2V0X3QgKmdzb2NrID0gKGdlbmVyaWNfc29ja2V0X3QgKilzb2NrOw0N CiAgICAgZ3NvY2stPndhbnRyZXNwb25zZSA9IHJlcS0+d2FudHJlc3BvbnNl Ow0NCi0gICAgcmV0dXJuIGdzb2NrLT5zc2wgPyBzc2xfd3JpdGVfc29ja2V0 KGdzb2NrLCByZXEpIDoNDQotICAgICAgICAgICAgICAgICAgICAgICAgd3Jp dGVfc29ja2V0KGdzb2NrLCByZXEpOw0NCisgICAgcmV0dXJuIGdzb2NrLT5z c2wgPyBzc2xfd3JpdGVfc29ja2V0KGdzb2NrLT5zLCByZXEpIDoNDQorICAg ICAgICAgICAgICAgICAgICAgICAgd3JpdGVfc29ja2V0KGdzb2NrLT5zLCBy ZXEpOw0NCiB9DQ0KIA0NCiAvKioNDQpAQCAtMTM0LDcgKzE0MCw3IEBADQog ICAgIHJlc3BvbnNlX3QgKm5ld19yZXNwOw0NCiAgICAgYXByX3N0YXR1c190 IHN0YXR1czsNDQogDQ0KLSAgICBmbG9vZF9zb2NrZXRfdCAqZ3NvY2sgPSAo Zmxvb2Rfc29ja2V0X3QgKilzb2NrOw0NCisgICAgZ2VuZXJpY19zb2NrZXRf dCAqZ3NvY2sgPSAoZ2VuZXJpY19zb2NrZXRfdCAqKXNvY2s7DQ0KIA0NCiAg ICAgbmV3X3Jlc3AgPSBhcHJfcGNhbGxvYyhwb29sLCBzaXplb2YocmVzcG9u c2VfdCkpOw0NCiAgICAgbmV3X3Jlc3AtPnJidWZ0eXBlID0gUE9PTDsNDQpA QCAtMTUyLDggKzE1OCw4IEBADQogICAgICAgICBkbw0NCiAgICAgICAgIHsN DQogICAgICAgICAgICAgaSA9IE1BWF9ET0NfTEVOR1RIIC0gMTsNDQotICAg ICAgICAgICAgc3RhdHVzID0gZ3NvY2stPnNzbCA/IHNzbF9yZWFkX3NvY2tl dChnc29jaywgYiwgJmkpDQ0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOiByZWFkX3NvY2tldChnc29jaywgYiwgJmkpOw0NCisgICAgICAg ICAgICBzdGF0dXMgPSBnc29jay0+c3NsID8gc3NsX3JlYWRfc29ja2V0KGdz b2NrLT5zLCBiLCAmaSkNDQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA6IHJlYWRfc29ja2V0KGdzb2NrLT5zLCBiLCAmaSk7DQ0KICAgICAg ICAgICAgIGlmIChuZXdfcmVzcC0+cmJ1ZnNpemUgKyBpID4gY3VycmVudGFs bG9jKQ0NCiAgICAgICAgICAgICB7DQ0KICAgICAgICAgICAgICAgICAvKiBZ b3UgY2FuIHRoaW5rIHdoeSB0aGlzIGFsd2F5cyB3b3JrLiAqLw0NCkBAIC0x NjMsNyArMTY5LDcgQEANCiAgICAgICAgICAgICAgICAgbWVtY3B5KG5ld19y ZXNwLT5yYnVmLCBvcCwgY3AgLSBvcCk7DQ0KICAgICAgICAgICAgICAgICBj cCA9IG5ld19yZXNwLT5yYnVmICsgKGNwIC0gb3ApOw0NCiAgICAgICAgICAg ICB9DQ0KLQ0NCisgICAgICAgICAgICANDQogICAgICAgICAgICAgbWVtY3B5 KGNwLCBiLCBpKTsNDQogICAgICAgICAgICAgbmV3X3Jlc3AtPnJidWZzaXpl ICs9IGk7DQ0KICAgICAgICAgICAgIGNwICs9IGk7DQ0KQEAgLTE3NSwxNSAr MTgxLDE1IEBADQogICAgICAgICAvKiBXZSBqdXN0IHdhbnQgdG8gc3RvcmUg dGhlIGZpcnN0IGNodW5rIHJlYWQuICovDQ0KICAgICAgICAgbmV3X3Jlc3At PnJidWZzaXplID0gTUFYX0RPQ19MRU5HVEggLSAxOw0NCiAgICAgICAgIG5l d19yZXNwLT5yYnVmID0gYXByX3BhbGxvYyhwb29sLCBuZXdfcmVzcC0+cmJ1 ZnNpemUpOw0NCi0gICAgICAgIHN0YXR1cyA9IGdzb2NrLT5zc2wgPyBzc2xf cmVhZF9zb2NrZXQoZ3NvY2ssIG5ld19yZXNwLT5yYnVmLA0NCisgICAgICAg IHN0YXR1cyA9IGdzb2NrLT5zc2wgPyBzc2xfcmVhZF9zb2NrZXQoZ3NvY2st PnMsIG5ld19yZXNwLT5yYnVmLCANDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZuZXdfcmVzcC0+cmJ1ZnNpemUp IDoNDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zb2Nr ZXQoZ3NvY2ssIG5ld19yZXNwLT5yYnVmLA0NCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZWFkX3NvY2tldChnc29jay0+cywgbmV3X3Jlc3At PnJidWYsIA0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmbmV3X3Jlc3AtPnJidWZzaXplKTsNDQogDQ0KICAgICAgICAg d2hpbGUgKHN0YXR1cyAhPSBBUFJfRU9GICYmIHN0YXR1cyAhPSBBUFJfVElN RVVQKSB7DQ0KICAgICAgICAgICAgIGkgPSBNQVhfRE9DX0xFTkdUSCAtIDE7 DQ0KLSAgICAgICAgICAgIHN0YXR1cyA9IGdzb2NrLT5zc2wgPyBzc2xfcmVh ZF9zb2NrZXQoZ3NvY2ssIGIsICZpKSA6DQ0KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZWFkX3NvY2tldChnc29jaywgYiwgJmkpOw0N CisgICAgICAgICAgICBzdGF0dXMgPSBnc29jay0+c3NsID8gc3NsX3JlYWRf c29ja2V0KGdzb2NrLT5zLCBiLCAmaSkgOg0NCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVhZF9zb2NrZXQoZ3NvY2stPnMsIGIsICZp KTsNDQogICAgICAgICB9DQ0KICAgICAgICAgaWYgKHN0YXR1cyAhPSBBUFJf U1VDQ0VTUyAmJiBzdGF0dXMgIT0gQVBSX0VPRikgew0NCiAgICAgICAgICAg ICByZXR1cm4gc3RhdHVzOw0NCkBAIC0yMDUsNyArMjExLDcgQEANCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ja2V0X3Qg KnNvY2ssDQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhcHJfcG9vbF90ICpwb29sKQ0NCiB7DQ0KLSAgICBmbG9vZF9zb2Nr ZXRfdCAqZ3NvY2sgPSAoZmxvb2Rfc29ja2V0X3QgKilzb2NrOw0NCisgICAg Z2VuZXJpY19zb2NrZXRfdCAqZ3NvY2sgPSAoZ2VuZXJpY19zb2NrZXRfdCAq KXNvY2s7DQ0KICAgICBpbnQgb3JpZ193YW50cmVzcG9uc2UgICA9IGdzb2Nr LT53YW50cmVzcG9uc2U7DQ0KICAgICBhcHJfc3RhdHVzX3Qgc3RhdHVzOw0N CiANDQpAQCAtMjIxLDggKzIyNyw4IEBADQogICovDQ0KIGFwcl9zdGF0dXNf dCBnZW5lcmljX2VuZF9jb25uKHNvY2tldF90ICpzb2NrLCByZXF1ZXN0X3Qg KnJlcSwgcmVzcG9uc2VfdCAqcmVzcCkNDQogew0NCi0gICAgZmxvb2Rfc29j a2V0X3QgKmdzb2NrID0gKGZsb29kX3NvY2tldF90ICopc29jazsNDQotICAg IGdzb2NrLT5zc2wgPyBzc2xfY2xvc2Vfc29ja2V0KGdzb2NrKSA6IGNsb3Nl X3NvY2tldChnc29jayk7DQ0KKyAgICBnZW5lcmljX3NvY2tldF90ICpnc29j ayA9IChnZW5lcmljX3NvY2tldF90ICopc29jazsNDQorICAgIGdzb2NrLT5z c2wgPyBzc2xfY2xvc2Vfc29ja2V0KGdzb2NrLT5zKSA6IGNsb3NlX3NvY2tl dChnc29jay0+cyk7DQ0KICAgICByZXR1cm4gQVBSX1NVQ0NFU1M7DQ0KIH0N DQogDQ0K ---559023410-959030623-1066319189=:5631 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="floodsocketkeepalivec.diff" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="floodsocketkeepalivec.diff" LS0tIGZsb29kX3NvY2tldF9rZWVwYWxpdmUuYwkyMDAzLTEwLTE1IDE5OjA2 OjQ0LjAwMDAwMDAwMCAtMDQwMA0KKysrIFxmbG9vZC0xLjFcZmxvb2Rfc29j a2V0X2tlZXBhbGl2ZS5jCTIwMDMtMDktMDYgMDA6Mjc6MzguMDAwMDAwMDAw IC0wNDAwDQpAQCAtNjksMjUgKzY5LDM1IEBADQogI2luY2x1ZGUgImZsb29k X3NvY2tldF9rZWVwYWxpdmUuaCINDQogDQ0KICNkZWZpbmUga3NvY2tfcmVh ZF9zb2NrZXQoa3NvY2ssIGJ1ZiwgbGVuYWRkcikgXA0NCi0gICAga3NvY2st PnNzbCA/IHNzbF9yZWFkX3NvY2tldChrc29jaywgYnVmLCBsZW5hZGRyKSA6 IFwNDQotICAgICAgICAgICAgICAgICByZWFkX3NvY2tldChrc29jaywgYnVm LCBsZW5hZGRyKQ0NCisgICAga3NvY2stPnNzbCA/IHNzbF9yZWFkX3NvY2tl dChrc29jay0+cywgYnVmLCBsZW5hZGRyKSA6IFwNDQorICAgICAgICAgICAg ICAgICByZWFkX3NvY2tldChrc29jay0+cywgYnVmLCBsZW5hZGRyKQ0NCiAN DQogI2RlZmluZSBrc29ja193cml0ZV9zb2NrZXQoa3NvY2ssIHJlcSkgXA0N Ci0gICAga3NvY2stPnNzbCA/IHNzbF93cml0ZV9zb2NrZXQoa3NvY2ssIHJl cSkgOiBcDQ0KLSAgICAgICAgICAgICAgICAgd3JpdGVfc29ja2V0KGtzb2Nr LCByZXEpDQ0KKyAgICBrc29jay0+c3NsID8gc3NsX3dyaXRlX3NvY2tldChr c29jay0+cywgcmVxKSA6IFwNDQorICAgICAgICAgICAgICAgICB3cml0ZV9z b2NrZXQoa3NvY2stPnMsIHJlcSkNDQorDQ0KK3R5cGVkZWYgc3RydWN0IHsN DQorICAgIHZvaWQgKnM7DQ0KKyAgICBhcHJfcG9sbGZkX3QgKnA7DQ0KKyAg ICBpbnQgcmVvcGVuX3NvY2tldDsgLyogQSBib29sZWFuICovDQ0KKyAgICBp bnQgd2FudHJlc3BvbnNlOyAgLyogQSBib29sZWFuICovDQ0KKyAgICBpbnQg c3NsOyAgICAgICAgICAgLyogQSBib29sZWFuICovDQ0KKyAgICBtZXRob2Rf ZSBtZXRob2Q7ICAgLyogVGhlIG1ldGhvZCBvZiB0aGUgcmVxdWVzdC4gKi8N DQorfSBrZWVwYWxpdmVfc29ja2V0X3Q7DQ0KIA0NCiAvKioNDQogICogS2Vl cC1hbGl2ZSBpbXBsZW1lbnRhdGlvbiBmb3Igc29ja2V0X2luaXQuDQ0KICAq Lw0NCiBhcHJfc3RhdHVzX3Qga2VlcGFsaXZlX3NvY2tldF9pbml0KHNvY2tl dF90ICoqc29jaywgYXByX3Bvb2xfdCAqcG9vbCkNDQogew0NCi0gICAgZmxv b2Rfc29ja2V0X3QgKm5ld19rc29jazsNDQorICAgIGtlZXBhbGl2ZV9zb2Nr ZXRfdCAqbmV3X2tzb2NrOw0NCiANDQotICAgIG5ld19rc29jayA9IChmbG9v ZF9zb2NrZXRfdCAqKWFwcl9wYWxsb2MocG9vbCwgc2l6ZW9mKGZsb29kX3Nv Y2tldF90KSk7DQ0KKyAgICBuZXdfa3NvY2sgPSAoa2VlcGFsaXZlX3NvY2tl dF90ICopYXByX3BhbGxvYyhwb29sLCBzaXplb2Yoa2VlcGFsaXZlX3NvY2tl dF90KSk7DQ0KICAgICBpZiAobmV3X2tzb2NrID09IE5VTEwpDQ0KICAgICAg ICAgcmV0dXJuIEFQUl9FTk9NRU07DQ0KLSAgICBuZXdfa3NvY2stPnNvY2tl dCA9IE5VTEw7DQ0KLSAgICBuZXdfa3NvY2stPmF2YWlsYWJsZSA9IDE7DQ0K KyAgICBuZXdfa3NvY2stPnMgPSBOVUxMOw0NCisgICAgbmV3X2tzb2NrLT5w ID0gTlVMTDsNDQorICAgIG5ld19rc29jay0+cmVvcGVuX3NvY2tldCA9IDE7 DQ0KICAgICBuZXdfa3NvY2stPndhbnRyZXNwb25zZSA9IDE7DQ0KICAgICBu ZXdfa3NvY2stPnNzbCA9IDA7DQ0KIA0NCkBAIC0xMDAsMTYgKzExMCwxNiBA QA0KICAqLw0NCiBhcHJfc3RhdHVzX3Qga2VlcGFsaXZlX2JlZ2luX2Nvbm4o c29ja2V0X3QgKnNvY2ssIHJlcXVlc3RfdCAqcmVxLCBhcHJfcG9vbF90ICpw b29sKQ0NCiB7DQ0KLSAgICBmbG9vZF9zb2NrZXRfdCAqa3NvY2sgPSAoZmxv b2Rfc29ja2V0X3QgKilzb2NrOw0NCisgICAga2VlcGFsaXZlX3NvY2tldF90 ICprc29jayA9IChrZWVwYWxpdmVfc29ja2V0X3QgKilzb2NrOw0NCiANDQot ICAgIGlmICgha3NvY2stPmF2YWlsYWJsZSAmJiBrc29jay0+c29ja2V0KSB7 DQ0KKyAgICBpZiAoIWtzb2NrLT5yZW9wZW5fc29ja2V0ICYmIGtzb2NrLT5z KSB7DQ0KICAgICAgICAgYXByX3N0YXR1c190IGU7DQ0KLSAgICAgICAgZSA9 IGNoZWNrX3NvY2tldChrc29jayk7DQ0KKyAgICAgICAgZSA9IGNoZWNrX3Nv Y2tldChrc29jay0+cywgcG9vbCk7DQ0KICAgICAgICAgaWYgKGUgIT0gQVBS X1NVQ0NFU1MpIHsNDQotICAgICAgICAgICAga3NvY2stPmF2YWlsYWJsZSA9 IDE7DQ0KKyAgICAgICAgICAgIGtzb2NrLT5yZW9wZW5fc29ja2V0ID0gMTsN DQogICAgICAgICB9DQ0KICAgICB9DQ0KLSAgICBpZiAoa3NvY2stPmF2YWls YWJsZSB8fCBrc29jay0+c29ja2V0ID09IE5VTEwpIHsNDQorICAgIGlmIChr c29jay0+cmVvcGVuX3NvY2tldCB8fCBrc29jay0+cyA9PSBOVUxMKSB7DQ0K ICAgICAgICAgYXByX3N0YXR1c190IHJ2Ow0NCiAgICAgICAgIGlmIChzdHJj YXNlY21wKHJlcS0+cGFyc2VkX3VyaS0+c2NoZW1lLCAiaHR0cHMiKSA9PSAw KSB7DQ0KICAgICAgICAgLyogSWYgd2UgZG9uJ3QgaGF2ZSBTU0wsIGVycm9y IG91dC4gKi8NDQpAQCAtMTI2LDE2ICsxMzYsMTUgQEANCiAgICAgICAgIC8q IFRoZSByZXR1cm4gdHlwZXMgYXJlIG5vdCBpZGVudGljYWwsIHNvIGl0IGNh bid0IGJlIGEgdGVybmFyeQ0NCiAgICAgICAgICAqIG9wZXJhdGlvbi4gKi8N DQogICAgICAgICBpZiAoa3NvY2stPnNzbCkNDQotICAgICAgICAgICAgc3Ns X29wZW5fc29ja2V0KGtzb2NrLCByZXEsICZydik7DQ0KKyAgICAgICAgICAg IGtzb2NrLT5zID0gc3NsX29wZW5fc29ja2V0KHBvb2wsIHJlcSwgJnJ2KTsN DQogICAgICAgICBlbHNlDQ0KLSAgICAgICAgICAgIG9wZW5fc29ja2V0KGtz b2NrLCByZXEsICZydik7DQ0KKyAgICAgICAgICAgIGtzb2NrLT5zID0gb3Bl bl9zb2NrZXQocG9vbCwgcmVxLCAmcnYpOw0NCiANDQotICAgICAgICBpZiAo a3NvY2stPnNvY2tldCA9PSBOVUxMKQ0NCisgICAgICAgIGlmIChrc29jay0+ cyA9PSBOVUxMKQ0NCiAgICAgICAgICAgICByZXR1cm4gcnY7DQ0KIA0NCi0g ICAgICAgIGtzb2NrLT5hdmFpbGFibGUgPSAwOyAvKiB3ZSBqdXN0IG9wZW5l ZCBpdCAqLw0NCisgICAgICAgIGtzb2NrLT5yZW9wZW5fc29ja2V0ID0gMDsg Lyogd2UganVzdCBvcGVuZWQgaXQgKi8NDQogICAgIH0NDQotICAgIGtzb2Nr LT5yZXF1ZXN0ID0gcmVxOw0NCiAgICAgcmVxLT5rZWVwYWxpdmUgPSAxOw0N CiAgICAgcmV0dXJuIEFQUl9TVUNDRVNTOw0NCiB9DQ0KQEAgLTE0NSwxMCAr MTU0LDExIEBADQogICovDQ0KIGFwcl9zdGF0dXNfdCBrZWVwYWxpdmVfc2Vu ZF9yZXEoc29ja2V0X3QgKnNvY2ssIHJlcXVlc3RfdCAqcmVxLCBhcHJfcG9v bF90ICpwb29sKQ0NCiB7DQ0KLSAgICBmbG9vZF9zb2NrZXRfdCAqa3NvY2sg PSAoZmxvb2Rfc29ja2V0X3QgKilzb2NrOw0NCisgICAga2VlcGFsaXZlX3Nv Y2tldF90ICprc29jayA9IChrZWVwYWxpdmVfc29ja2V0X3QgKilzb2NrOw0N CiAgICAga3NvY2stPndhbnRyZXNwb25zZSA9IHJlcS0+d2FudHJlc3BvbnNl Ow0NCi0gICAgcmV0dXJuIGtzb2NrLT5zc2wgPyBzc2xfd3JpdGVfc29ja2V0 KGtzb2NrLCByZXEpIDoNDQotICAgICAgICAgICAgICAgICAgICAgICAgd3Jp dGVfc29ja2V0KGtzb2NrLCByZXEpOw0NCisgICAga3NvY2stPm1ldGhvZCA9 IHJlcS0+bWV0aG9kOw0NCisgICAgcmV0dXJuIGtzb2NrLT5zc2wgPyBzc2xf d3JpdGVfc29ja2V0KGtzb2NrLT5zLCByZXEpIDoNDQorICAgICAgICAgICAg ICAgICAgICAgICAgd3JpdGVfc29ja2V0KGtzb2NrLT5zLCByZXEpOw0NCiB9 DQ0KIA0NCiBzdGF0aWMgbG9uZyBrZWVwYWxpdmVfcmVhZF9jaHVua19zaXpl KGNoYXIgKmJlZ2luX2NodW5rKQ0NCkBAIC0xNzMsNyArMTgzLDcgQEANCiB9 DQ0KIA0NCiBzdGF0aWMgYXByX3N0YXR1c190IGtlZXBhbGl2ZV9yZWFkX2No dW5rKHJlc3BvbnNlX3QgKnJlc3AsDQ0KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZmxvb2Rfc29ja2V0X3QgKnNvY2ssDQ0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2Vl cGFsaXZlX3NvY2tldF90ICpzb2NrLA0NCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludCBjaHVua19sZW5ndGgsDQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAq KmJwLCBpbnQgYnBsZW4pDQ0KIHsNDQpAQCAtMjMxLDcgKzI0MSw3IEBADQog ICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RhdHVzOw0NCiAgICAgICAg ICAgICAgICAgfQ0NCiANDQotICAgICAgICAgICAgICAgIC8qIFdlIGdvdCBj YXVnaHQgaW4gdGhlIG1pZGRsZSBvZiBhIGNodW5rIGxhc3QgdGltZS4gKi8N DQorICAgICAgICAgICAgICAgIC8qIFdlIGdvdCBjYXVnaHQgaW4gdGhlIG1p ZGRsZSBvZiBhIGNodW5rIGxhc3QgdGltZS4gKi8gDQ0KICAgICAgICAgICAg ICAgICBpZiAob2xkX2xlbmd0aCA8IDApIHsNDQogICAgICAgICAgICAgICAg ICAgICBiIC09IG9sZF9sZW5ndGg7DQ0KICAgICAgICAgICAgICAgICAgICAg YmxlbiArPSBvbGRfbGVuZ3RoOw0NCkBAIC0yOTcsOCArMzA3LDggQEANCiAg ICAgcmV0dXJuIEFQUl9TVUNDRVNTOw0NCiB9DQ0KIA0NCi1zdGF0aWMgYXBy X3N0YXR1c190IGtlZXBhbGl2ZV9sb2FkX3Jlc3AocmVzcG9uc2VfdCAqcmVz cCwNDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZsb29kX3NvY2tldF90ICpzb2NrLA0NCitzdGF0aWMgYXByX3N0YXR1c190 IGtlZXBhbGl2ZV9sb2FkX3Jlc3AocmVzcG9uc2VfdCAqcmVzcCwgDQ0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZWVwYWxp dmVfc29ja2V0X3QgKnNvY2ssDQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhcHJfc2l6ZV90IHJlbWFpbmluZywgYXByX3Bv b2xfdCAqcG9vbCkNDQogew0NCiAgICAgLyogVWdoLCB3ZSB3YW50IGV2ZXJ5 dGhpbmcuICovDQ0KQEAgLTM1MCw3ICszNjAsNyBAQA0KICAgICAgICAgY3Ag Kz0gaTsNDQogICAgICAgICByZW1haW5pbmcgLT0gaTsNDQogICAgIH0NDQot ICAgIHdoaWxlIChzdGF0dXMgIT0gQVBSX0VHRU5FUkFMICYmIHN0YXR1cyAh PSBBUFJfRU9GICYmDQ0KKyAgICB3aGlsZSAoc3RhdHVzICE9IEFQUl9FR0VO RVJBTCAmJiBzdGF0dXMgIT0gQVBSX0VPRiAmJiANDQogICAgICAgICAgICBz dGF0dXMgIT0gQVBSX1RJTUVVUCAmJiAoIXJlbWFpbiB8fCByZW1haW5pbmcp KTsNDQogDQ0KICAgICByZXR1cm4gc3RhdHVzOw0NCkBAIC0zNjEsNyArMzcx LDcgQEANCiAgKi8NDQogYXByX3N0YXR1c190IGtlZXBhbGl2ZV9yZWN2X3Jl c3AocmVzcG9uc2VfdCAqKnJlc3AsIHNvY2tldF90ICpzb2NrLCBhcHJfcG9v bF90ICpwb29sKQ0NCiB7DQ0KLSAgICBmbG9vZF9zb2NrZXRfdCAqa3NvY2sg PSAoZmxvb2Rfc29ja2V0X3QgKilzb2NrOw0NCisgICAga2VlcGFsaXZlX3Nv Y2tldF90ICprc29jayA9IChrZWVwYWxpdmVfc29ja2V0X3QgKilzb2NrOw0N CiAgICAgY2hhciAqY2wsICplY2wsIGNsc1sxN107DQ0KICAgICBjaGFyICpj dXJyZW50X2xpbmU7DQ0KICAgICBpbnQgaTsNDQpAQCAtMzk3LDcgKzQwNyw3 IEBADQogICAgICAgICBoZWFkZXJfZW5kID0gbWVtY2hyKGN1cnJlbnRfbGlu ZSwgJzonLCBsaW5lX2xlbmd0aCk7DQ0KICAgICAgICAgaWYgKGhlYWRlcl9l bmQpIHsNDQogICAgICAgICAgICAga2V5X2xlbmd0aCA9IGhlYWRlcl9lbmQg LSBjdXJyZW50X2xpbmU7DQ0KLQ0NCisgDQ0KICAgICAgICAgICAgIGhlYWRl cl9rZXkgPSBhcHJfcHN0cm1lbWR1cChwb29sLCBjdXJyZW50X2xpbmUsIGtl eV9sZW5ndGgpOw0NCiAgICAgICAgICAgICBoZWFkZXJfdmFsID0gYXByX3Bz dHJtZW1kdXAocG9vbCwgY3VycmVudF9saW5lICsga2V5X2xlbmd0aCArIDIs DQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aW5lX2xlbmd0aCAtIGtleV9sZW5ndGggLSAyKTsNDQpAQCAtNDEwLDE0ICs0 MjAsMTQgQEANCiAgICAgLyogSWYgdGhpcyBleGlzdHMsIHdlIGFyZW4ndCBr ZWVwYWxpdmUgYW55bW9yZS4gKi8NDQogICAgIGhlYWRlciA9IGFwcl90YWJs ZV9nZXQobmV3X3Jlc3AtPmhlYWRlcnMsICJDb25uZWN0aW9uIik7DQ0KICAg ICBpZiAoaGVhZGVyICYmICFzdHJjYXNlY21wKGhlYWRlciwgIkNsb3NlIikp IHsNDQotICAgICAgICBuZXdfcmVzcC0+a2VlcGFsaXZlID0gMDsNDQorICAg ICAgICBuZXdfcmVzcC0+a2VlcGFsaXZlID0gMDsgDQ0KICAgICB9DQ0KICAg ICBlbHNlIHsNDQotICAgICAgICBuZXdfcmVzcC0+a2VlcGFsaXZlID0gMTsN DQorICAgICAgICBuZXdfcmVzcC0+a2VlcGFsaXZlID0gMTsgDQ0KICAgICB9 DQ0KIA0NCiAgICAgLyogSWYgd2UgaGF2ZSBhIEhFQUQgcmVxdWVzdCwgd2Ug c2hvdWxkbid0IGJlIHJlY2VpdmluZyBhIGJvZHkuICovDQ0KLSAgICBpZiAo a3NvY2stPnJlcXVlc3QtPm1ldGhvZCA9PSBIRUFEKSB7DQ0KKyAgICBpZiAo a3NvY2stPm1ldGhvZCA9PSBIRUFEKSB7DQ0KICAgICAgICAgKnJlc3AgPSBu ZXdfcmVzcDsNDQogDQ0KICAgICAgICAgcmV0dXJuIEFQUl9TVUNDRVNTOw0N CkBAIC00MzksNyArNDQ5LDcgQEANCiAgICAgICAgIC8qIFdlIGhhdmUgYSBw YXJ0aWFsIGNodW5rIGFuZCB3ZSBhcmVuJ3QgYXQgdGhlIGVuZC4gKi8NDQog ICAgICAgICBpZiAoY2wgJiYgKmNsICYmIChjbCAtIChjaGFyKiluZXdfcmVz cC0+cmJ1ZikgPCBuZXdfcmVzcC0+cmJ1ZnNpemUpIHsNDQogICAgICAgICAg ICAgaW50IHJlbWFpbmluZzsNDQotDQ0KKyAgICANDQogICAgICAgICAgICAg ZG8gew0NCiAgICAgICAgICAgICAgICAgaWYgKG5ld19yZXNwLT5jaHVuaykg ew0NCiAgICAgICAgICAgICAgICAgICAgIC8qIElmIHdlIGhhdmUgZW5vdWdo IHNwYWNlIHRvIHNraXAgb3ZlciB0aGUgZW5kaW5nIENSTEYsDQ0KQEAgLTQ2 Niw4ICs0NzYsOCBAQA0KICAgICAgICAgICAgICAgICAgICAgZm9vID0gc3Ry c3RyKG5ld19yZXNwLT5jaHVuaywgQ1JMRik7DQ0KICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0KGZvbyk7DQ0KICAgICAgICAgICAgICAgICAgICAgbmV3 X3Jlc3AtPmNodW5rID0gZm9vICsgMjsNDQotICAgICAgICAgICAgICAgICAg ICByZW1haW5pbmcgPSBuZXdfcmVzcC0+cmJ1ZnNpemUgLQ0NCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShuZXdfcmVzcC0+ Y2h1bmsgLQ0NCisgICAgICAgICAgICAgICAgICAgIHJlbWFpbmluZyA9IG5l d19yZXNwLT5yYnVmc2l6ZSAtIA0NCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoaW50KShuZXdfcmVzcC0+Y2h1bmsgLSANDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIq KW5ld19yZXNwLT5yYnVmKTsNDQogICAgICAgICAgICAgICAgIH0NDQogICAg ICAgICAgICAgICAgIGVsc2Ugew0NCkBAIC00ODUsNyArNDk1LDcgQEANCiAg ICAgICAgIGhlYWRlciA9IGFwcl90YWJsZV9nZXQobmV3X3Jlc3AtPmhlYWRl cnMsICJDb250ZW50LUxlbmd0aCIpOw0NCiAgICAgICAgIGlmICghaGVhZGVy KQ0NCiAgICAgICAgIHsNDQotICAgICAgICAgICAgbmV3X3Jlc3AtPmtlZXBh bGl2ZSA9IDA7DQ0KKyAgICAgICAgICAgIG5ld19yZXNwLT5rZWVwYWxpdmUg PSAwOyANDQogICAgICAgICB9DQ0KIA0NCiAgICAgICAgIGlmIChoZWFkZXIp DQ0KQEAgLTQ5OCw3ICs1MDgsNyBAQA0KICAgICAgICAgICAgICAgICBjbHNb ZWNsLWNsXSA9ICdcMCc7DQ0KICAgICAgICAgICAgICAgICBjb250ZW50X2xl bmd0aCA9IHN0cnRvbChjbHMsICZlY2wsIDEwKTsNDQogICAgICAgICAgICAg ICAgIGlmICgqZWNsICE9ICdcMCcpDQ0KLSAgICAgICAgICAgICAgICAgICAg bmV3X3Jlc3AtPmtlZXBhbGl2ZSA9IDA7DQ0KKyAgICAgICAgICAgICAgICAg ICAgbmV3X3Jlc3AtPmtlZXBhbGl2ZSA9IDA7IA0NCiAgICAgICAgICAgICB9 DQ0KICAgICAgICAgfQ0NCiANDQpAQCAtNTA5LDE0ICs1MTksMTQgQEANCiAN DQogICAgICAgICAgICAgLyogV2UgZGlkbid0IGdldCBmdWxsIGhlYWRlcnMu ICBDcmFwLiAqLw0NCiAgICAgICAgICAgICBpZiAoIWVjbCkNDQotICAgICAg ICAgICAgICAgIG5ld19yZXNwLT5rZWVwYWxpdmUgPSAwOw0NCisgICAgICAg ICAgICAgICAgbmV3X3Jlc3AtPmtlZXBhbGl2ZSA9IDA7IA0NCiAgICAgICAg ICAgICB7DQ0KICAgICAgICAgICAgICAgICBlY2wgKz0gc2l6ZW9mKENSTEYp IC0gMTsNDQogICAgICAgICAgICAgICAgIGNvbnRlbnRfbGVuZ3RoIC09IG5l d19yZXNwLT5yYnVmc2l6ZSAtIChlY2wgLSAoY2hhciopbmV3X3Jlc3AtPnJi dWYpOw0NCi0gICAgICAgICAgICB9DQ0KKyAgICAgICAgICAgIH0gDQ0KICAg ICAgICAgfQ0NCiAgICAgfQ0NCi0NDQorICAgDQ0KICAgICBpZiAoa3NvY2st PndhbnRyZXNwb25zZSkNDQogICAgIHsNDQogICAgICAgICBpZiAobmV3X3Jl c3AtPmtlZXBhbGl2ZSkNDQpAQCAtNTQ4LDcgKzU1OCw3IEBADQogICAgICAg ICB9DQ0KICAgICAgICAgZWxzZQ0NCiAgICAgICAgIHsNDQotICAgICAgICAg ICAgd2hpbGUgKHN0YXR1cyAhPSBBUFJfRUdFTkVSQUwgJiYgc3RhdHVzICE9 IEFQUl9FT0YgJiYNDQorICAgICAgICAgICAgd2hpbGUgKHN0YXR1cyAhPSBB UFJfRUdFTkVSQUwgJiYgc3RhdHVzICE9IEFQUl9FT0YgJiYgDQ0KICAgICAg ICAgICAgICAgICAgICBzdGF0dXMgIT0gQVBSX1RJTUVVUCkgew0NCiAgICAg ICAgICAgICAgICAgaSA9IE1BWF9ET0NfTEVOR1RIIC0gMTsNDQogICAgICAg ICAgICAgICAgIHN0YXR1cyA9IGtzb2NrX3JlYWRfc29ja2V0KGtzb2NrLCBi LCAmaSk7DQ0KQEAgLTU2NiwxMyArNTc2LDEzIEBADQogICovDQ0KIGFwcl9z dGF0dXNfdCBrZWVwYWxpdmVfZW5kX2Nvbm4oc29ja2V0X3QgKnNvY2ssIHJl cXVlc3RfdCAqcmVxLCByZXNwb25zZV90ICpyZXNwKQ0NCiB7DQ0KLSAgICBm bG9vZF9zb2NrZXRfdCAqa3NvY2sgPSAoZmxvb2Rfc29ja2V0X3QgKilzb2Nr Ow0NCisgICAga2VlcGFsaXZlX3NvY2tldF90ICprc29jayA9IChrZWVwYWxp dmVfc29ja2V0X3QgKilzb2NrOw0NCiANDQogICAgIGlmIChyZXNwLT5rZWVw YWxpdmUgPT0gMCkgew0NCi0gICAgICAgIGtzb2NrLT5zc2wgPyBzc2xfY2xv c2Vfc29ja2V0KGtzb2NrKSA6IGNsb3NlX3NvY2tldChrc29jayk7DQ0KLSAg ICAgICAga3NvY2stPmF2YWlsYWJsZSA9IDE7IC8qIHdlIGp1c3QgY2xvc2Vk IGl0ICovDQ0KKyAgICAgICAga3NvY2stPnNzbCA/IHNzbF9jbG9zZV9zb2Nr ZXQoa3NvY2stPnMpIDogY2xvc2Vfc29ja2V0KGtzb2NrLT5zKTsNDQorICAg ICAgICBrc29jay0+cmVvcGVuX3NvY2tldCA9IDE7IC8qIHdlIGp1c3QgY2xv c2VkIGl0ICovDQ0KICAgICB9DQ0KLQ0NCisgICAgICAgIA0NCiAgICAgcmV0 dXJuIEFQUl9TVUNDRVNTOw0NCiB9DQ0KIA0NCg== ---559023410-959030623-1066319189=:5631--