Received: from localhost (unknown [200.46.204.183]) by postgresql.org (Postfix) with ESMTP id 8A49E64FEF9 for ; Wed, 17 Sep 2008 11:38:24 -0300 (ADT) Received: from postgresql.org ([200.46.204.86]) by localhost (mx1.hub.org [200.46.204.183]) (amavisd-maia, port 10024) with ESMTP id 00304-06-4 for ; Wed, 17 Sep 2008 11:38:05 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail.esilo.com (updates.esilo.com [63.150.152.211]) by postgresql.org (Postfix) with ESMTP id E589E64FF4F for ; Wed, 17 Sep 2008 11:37:48 -0300 (ADT) Received: from [10.0.0.2] (fwext-esilo-jupiter.esilo.com [64.135.45.146]) (authenticated bits=0) by mail.esilo.com (8.13.1/8.13.1) with ESMTP id m8HEbeAY003595; Wed, 17 Sep 2008 10:37:40 -0400 Message-ID: <48D11631.8070709@esilo.com> Date: Wed, 17 Sep 2008 10:37:37 -0400 From: Andrew Chernow User-Agent: Thunderbird 2.0.0.16 (Windows/20080708) MIME-Version: 1.0 To: Tom Lane CC: Alvaro Herrera , PostgreSQL-development , Merlin Moncure Subject: Re: [PATCHES] libpq events patch (with sgml docs) References: <48C18533.2000204@esilo.com> <20080905192215.GK4353@alvh.no-ip.org> <48C18B48.509@esilo.com> <20080905194853.GL4353@alvh.no-ip.org> <48C191A7.3000205@esilo.com> <20080905201504.GM4353@alvh.no-ip.org> <48C19759.90402@esilo.com> <27615.1221619326@sss.pgh.pa.us> <48D072E3.6010703@esilo.com> <28673.1221622817@sss.pgh.pa.us> <48D080B0.6070104@esilo.com> <454.1221626213@sss.pgh.pa.us> <48D0DFBE.9050900@esilo.com> <8872.1221653812@sss.pgh.pa.us> <48D1041D.5070808@esilo.com> <10839.1221658586@sss.pgh.pa.us> <48D11443.4010608@esilo.com> In-Reply-To: <48D11443.4010608@esilo.com> Content-Type: multipart/mixed; boundary="------------040107030103060207000105" X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=0 tagged_above=0 required=5 tests=none X-Spam-Level: X-Archive-Number: 200809/1110 X-Sequence-Number: 124239 This is a multi-part message in MIME format. --------------040107030103060207000105 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Andrew Chernow wrote: > New patch following our discussion with updated docs. > >>> few logical errors). I don't think it makes sense to do it >>> otherwise, it would be like calling free after a malloc failure. >> >> I can live with that definition, but please document it. >> >> > > To build on this analogy, PGEVT_CONNRESET is like a realloc. Meaning, > the initial malloc "PGEVT_REGISTER" worked by the realloc > "PGEVT_CONNRESET" didn't ... you still have free "PGEVT_CONNDESTROY" the > initial. Its documented that way. Basically if a register succeeds, a > destroy will always be sent regardless of what happens with a reset. > > I attached the wrong patch. I'm sorry. -- Andrew Chernow eSilo, LLC every bit counts http://www.esilo.com/ --------------040107030103060207000105 Content-Type: text/plain; name="pgevents.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="pgevents.patch" SW5kZXg6IGRvYy9zcmMvc2dtbC9saWJwcS5zZ21sCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6 IC9wcm9qZWN0cy9jdnNyb290L3Bnc3FsL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sLHYKcmV0 cmlldmluZyByZXZpc2lvbiAxLjI2MQpkaWZmIC1DNiAtcjEuMjYxIGxpYnBxLnNnbWwKKioq IGRvYy9zcmMvc2dtbC9saWJwcS5zZ21sCTE3IFNlcCAyMDA4IDA0OjMxOjA4IC0wMDAwCTEu MjYxCi0tLSBkb2Mvc3JjL3NnbWwvbGlicHEuc2dtbAkxNyBTZXAgMjAwOCAxNDoxOToyOSAt MDAwMAoqKioqKioqKioqKioqKioKKioqIDQ5MTEsNDkyMyAqKioqCiAgICAgICAgIFdoZW4g YSA8bGl0ZXJhbD5QR0VWVF9SRUdJU1RFUjwvbGl0ZXJhbD4gZXZlbnQgaXMgcmVjZWl2ZWQs IHRoZQogICAgICAgICA8cGFyYW1ldGVyPmV2dEluZm88L3BhcmFtZXRlcj4gcG9pbnRlciBz aG91bGQgYmUgY2FzdCB0byBhCiAgICAgICAgIDxzdHJ1Y3RuYW1lPlBHRXZlbnRSZWdpc3Rl ciAqPC9zdHJ1Y3RuYW1lPi4gIFRoaXMgc3RydWN0dXJlIGNvbnRhaW5zIGEKICAgICAgICAg PHN0cnVjdG5hbWU+UEdjb25uPC9zdHJ1Y3RuYW1lPiB0aGF0IHNob3VsZCBiZSBpbiB0aGUK ICAgICAgICAgPGxpdGVyYWw+Q09OTkVDVElPTl9PSzwvbGl0ZXJhbD4gc3RhdHVzOyBndWFy YW50ZWVkIGlmIG9uZSBjYWxscwogICAgICAgICA8ZnVuY3Rpb24+UFFyZWdpc3RlckV2ZW50 UHJvYzwvZnVuY3Rpb24+IHJpZ2h0IGFmdGVyIG9idGFpbmluZyBhIGdvb2QKISAgICAgICAg PHN0cnVjdG5hbWU+UEdjb25uPC9zdHJ1Y3RuYW1lPi4KICAgICAgICA8L3BhcmE+CiAgICAg ICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KICAKICAgICAgPHZhcmxpc3Rl bnRyeT4KICAgICAgIDx0ZXJtPjxsaXRlcmFsPlBHRVZUX0NPTk5SRVNFVDwvbGl0ZXJhbD48 L3Rlcm0+Ci0tLSA0OTExLDQ5MjUgLS0tLQogICAgICAgICBXaGVuIGEgPGxpdGVyYWw+UEdF VlRfUkVHSVNURVI8L2xpdGVyYWw+IGV2ZW50IGlzIHJlY2VpdmVkLCB0aGUKICAgICAgICAg PHBhcmFtZXRlcj5ldnRJbmZvPC9wYXJhbWV0ZXI+IHBvaW50ZXIgc2hvdWxkIGJlIGNhc3Qg dG8gYQogICAgICAgICA8c3RydWN0bmFtZT5QR0V2ZW50UmVnaXN0ZXIgKjwvc3RydWN0bmFt ZT4uICBUaGlzIHN0cnVjdHVyZSBjb250YWlucyBhCiAgICAgICAgIDxzdHJ1Y3RuYW1lPlBH Y29ubjwvc3RydWN0bmFtZT4gdGhhdCBzaG91bGQgYmUgaW4gdGhlCiAgICAgICAgIDxsaXRl cmFsPkNPTk5FQ1RJT05fT0s8L2xpdGVyYWw+IHN0YXR1czsgZ3VhcmFudGVlZCBpZiBvbmUg Y2FsbHMKICAgICAgICAgPGZ1bmN0aW9uPlBRcmVnaXN0ZXJFdmVudFByb2M8L2Z1bmN0aW9u PiByaWdodCBhZnRlciBvYnRhaW5pbmcgYSBnb29kCiEgICAgICAgIDxzdHJ1Y3RuYW1lPlBH Y29ubjwvc3RydWN0bmFtZT4uICBXaGVuIHJldHVybmluZyBhIGZhaWx1cmUgY29kZSwgYWxs CiEgICAgICAgIGNsZWFudXAgbXVzdCBiZSBwZXJmb3JtZWQgYXMgbm8gPGxpdGVyYWw+UEdF VlRfQ09OTkRFU1RST1k8L2xpdGVyYWw+CiEgICAgICAgIGV2ZW50IHdpbGwgYmUgc2VudC4K ICAgICAgICA8L3BhcmE+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRy eT4KICAKICAgICAgPHZhcmxpc3RlbnRyeT4KICAgICAgIDx0ZXJtPjxsaXRlcmFsPlBHRVZU X0NPTk5SRVNFVDwvbGl0ZXJhbD48L3Rlcm0+CioqKioqKioqKioqKioqKgoqKiogNDk0MSw0 OTUzICoqKioKICAKICAgICAgICAgV2hlbiBhIDxsaXRlcmFsPlBHRVZUX0NPTk5SRVNFVDwv bGl0ZXJhbD4gZXZlbnQgaXMgcmVjZWl2ZWQsIHRoZQogICAgICAgICA8cGFyYW1ldGVyPmV2 dEluZm88L3BhcmFtZXRlcj4gcG9pbnRlciBzaG91bGQgYmUgY2FzdCB0byBhCiAgICAgICAg IDxzdHJ1Y3RuYW1lPlBHRXZlbnRDb25uUmVzZXQgKjwvc3RydWN0bmFtZT4uICBBbHRob3Vn aCB0aGUgY29udGFpbmVkCiAgICAgICAgIDxzdHJ1Y3RuYW1lPlBHY29ubjwvc3RydWN0bmFt ZT4gd2FzIGp1c3QgcmVzZXQsIGFsbCBldmVudCBkYXRhIHJlbWFpbnMKICAgICAgICAgdW5j aGFuZ2VkLiAgVGhpcyBldmVudCBzaG91bGQgYmUgdXNlZCB0byByZXNldC9yZWxvYWQvcmVx dWVyeSBhbnkKISAgICAgICAgYXNzb2NpYXRlZCA8bGl0ZXJhbD5pbnN0YW5jZURhdGE8L2xp dGVyYWw+LgogICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFy bGlzdGVudHJ5PgogIAogICAgICA8dmFybGlzdGVudHJ5PgogICAgICAgPHRlcm0+PGxpdGVy YWw+UEdFVlRfQ09OTkRFU1RST1k8L2xpdGVyYWw+PC90ZXJtPgotLS0gNDk0Myw0OTU2IC0t LS0KICAKICAgICAgICAgV2hlbiBhIDxsaXRlcmFsPlBHRVZUX0NPTk5SRVNFVDwvbGl0ZXJh bD4gZXZlbnQgaXMgcmVjZWl2ZWQsIHRoZQogICAgICAgICA8cGFyYW1ldGVyPmV2dEluZm88 L3BhcmFtZXRlcj4gcG9pbnRlciBzaG91bGQgYmUgY2FzdCB0byBhCiAgICAgICAgIDxzdHJ1 Y3RuYW1lPlBHRXZlbnRDb25uUmVzZXQgKjwvc3RydWN0bmFtZT4uICBBbHRob3VnaCB0aGUg Y29udGFpbmVkCiAgICAgICAgIDxzdHJ1Y3RuYW1lPlBHY29ubjwvc3RydWN0bmFtZT4gd2Fz IGp1c3QgcmVzZXQsIGFsbCBldmVudCBkYXRhIHJlbWFpbnMKICAgICAgICAgdW5jaGFuZ2Vk LiAgVGhpcyBldmVudCBzaG91bGQgYmUgdXNlZCB0byByZXNldC9yZWxvYWQvcmVxdWVyeSBh bnkKISAgICAgICAgYXNzb2NpYXRlZCA8bGl0ZXJhbD5pbnN0YW5jZURhdGE8L2xpdGVyYWw+ LiAgQSBQR0VWVF9DT05OREVTVFJPWSBldmVudAohICAgICAgICBpcyBhbHdheXMgc2VudCwg cmVnYXJkbGVzcyBvZiB0aGUgZXZlbnQgcHJvY2VkdXJlJ3MgcmV0dXJuIHZhbHVlLgogICAg ICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5Pgog IAogICAgICA8dmFybGlzdGVudHJ5PgogICAgICAgPHRlcm0+PGxpdGVyYWw+UEdFVlRfQ09O TkRFU1RST1k8L2xpdGVyYWw+PC90ZXJtPgoqKioqKioqKioqKioqKioKKioqIDUwMDAsNTAy MyAqKioqCiAgICAgICAgIDxzdHJ1Y3RuYW1lPlBHRXZlbnRSZXN1bHRDcmVhdGUgKjwvc3Ry dWN0bmFtZT4uICBUaGUKICAgICAgICAgPHBhcmFtZXRlcj5jb25uPC9wYXJhbWV0ZXI+IGlz IHRoZSBjb25uZWN0aW9uIHVzZWQgdG8gZ2VuZXJhdGUgdGhlCiAgICAgICAgIHJlc3VsdC4g IFRoaXMgaXMgdGhlIGlkZWFsIHBsYWNlIHRvIGluaXRpYWxpemUgYW55CiAgICAgICAgIDxs aXRlcmFsPmluc3RhbmNlRGF0YTwvbGl0ZXJhbD4gdGhhdCBuZWVkcyB0byBiZSBhc3NvY2lh dGVkIHdpdGggdGhlCiAgICAgICAgIHJlc3VsdC4gIElmIHRoZSBldmVudCBwcm9jZWR1cmUg ZmFpbHMsIHRoZSByZXN1bHQgd2lsbCBiZSBjbGVhcmVkIGFuZAogICAgICAgICB0aGUgZmFp bHVyZSB3aWxsIGJlIHByb3BhZ2F0ZWQuICBUaGUgZXZlbnQgcHJvY2VkdXJlIG11c3Qgbm90 IHRyeSB0bwohICAgICAgICA8ZnVuY3Rpb24+UFFjbGVhcjwvPiB0aGUgcmVzdWx0IG9iamVj dCBmb3IgaXRzZWxmLgogICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAg IDwvdmFybGlzdGVudHJ5PgogIAogICAgICA8dmFybGlzdGVudHJ5PgogICAgICAgPHRlcm0+ PGxpdGVyYWw+UEdFVlRfUkVTVUxUQ09QWTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgICA8bGlz dGl0ZW0+CiAgICAgICAgPHBhcmE+CiAgICAgICAgIFRoZSByZXN1bHQgY29weSBldmVudCBp cyBmaXJlZCBpbiByZXNwb25zZSB0bwogICAgICAgICA8ZnVuY3Rpb24+UFFjb3B5UmVzdWx0 PC9mdW5jdGlvbj4uICBUaGlzIGV2ZW50IHdpbGwgb25seSBiZSBmaXJlZCBhZnRlcgohICAg ICAgICB0aGUgY29weSBpcyBjb21wbGV0ZS4KICAKICAgICAgICA8c3lub3BzaXM+CiAgdHlw ZWRlZiBzdHJ1Y3QKICB7CiAgICAgIGNvbnN0IFBHcmVzdWx0ICpzcmM7CiAgICAgIFBHcmVz dWx0ICpkZXN0OwotLS0gNTAwMyw1MDMwIC0tLS0KICAgICAgICAgPHN0cnVjdG5hbWU+UEdF dmVudFJlc3VsdENyZWF0ZSAqPC9zdHJ1Y3RuYW1lPi4gIFRoZQogICAgICAgICA8cGFyYW1l dGVyPmNvbm48L3BhcmFtZXRlcj4gaXMgdGhlIGNvbm5lY3Rpb24gdXNlZCB0byBnZW5lcmF0 ZSB0aGUKICAgICAgICAgcmVzdWx0LiAgVGhpcyBpcyB0aGUgaWRlYWwgcGxhY2UgdG8gaW5p dGlhbGl6ZSBhbnkKICAgICAgICAgPGxpdGVyYWw+aW5zdGFuY2VEYXRhPC9saXRlcmFsPiB0 aGF0IG5lZWRzIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUKICAgICAgICAgcmVzdWx0LiAg SWYgdGhlIGV2ZW50IHByb2NlZHVyZSBmYWlscywgdGhlIHJlc3VsdCB3aWxsIGJlIGNsZWFy ZWQgYW5kCiAgICAgICAgIHRoZSBmYWlsdXJlIHdpbGwgYmUgcHJvcGFnYXRlZC4gIFRoZSBl dmVudCBwcm9jZWR1cmUgbXVzdCBub3QgdHJ5IHRvCiEgICAgICAgIDxmdW5jdGlvbj5QUWNs ZWFyPC8+IHRoZSByZXN1bHQgb2JqZWN0IGZvciBpdHNlbGYuICBXaGVuIHJldHVybmluZyBh CiEgICAgICAgIGZhaWx1cmUgY29kZSwgYWxsIGNsZWFudXAgbXVzdCBiZSBwZXJmb3JtZWQg YXMgbm8KISAgICAgICAgPGxpdGVyYWw+UEdFVlRfUkVTVUxUREVTVFJPWTwvbGl0ZXJhbD4g ZXZlbnQgd2lsbCBiZSBzZW50LgogICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+ CiAgICAgIDwvdmFybGlzdGVudHJ5PgogIAogICAgICA8dmFybGlzdGVudHJ5PgogICAgICAg PHRlcm0+PGxpdGVyYWw+UEdFVlRfUkVTVUxUQ09QWTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAg ICA8bGlzdGl0ZW0+CiAgICAgICAgPHBhcmE+CiAgICAgICAgIFRoZSByZXN1bHQgY29weSBl dmVudCBpcyBmaXJlZCBpbiByZXNwb25zZSB0bwogICAgICAgICA8ZnVuY3Rpb24+UFFjb3B5 UmVzdWx0PC9mdW5jdGlvbj4uICBUaGlzIGV2ZW50IHdpbGwgb25seSBiZSBmaXJlZCBhZnRl cgohICAgICAgICB0aGUgY29weSBpcyBjb21wbGV0ZS4gIE9ubHkgc291cmNlIHJlc3VsdCBl dmVudCBwcm9jZWR1cmVzIHRoYXQgaGF2ZQohICAgICAgICBzdWNjZXNzZnVsbHkgaGFuZGxl ZCB0aGUgPGxpdGVyYWw+UEdFVlRfUkVTVUxUQ1JFQVRFPC9saXRlcmFsPiBldmVudCwKISAg ICAgICAgd2lsbCBiZSBjb3BpZWQgdG8gdGhlIGRlc3RpbmF0aW9uIHJlc3VsdC4KICAKICAg ICAgICA8c3lub3BzaXM+CiAgdHlwZWRlZiBzdHJ1Y3QKICB7CiAgICAgIGNvbnN0IFBHcmVz dWx0ICpzcmM7CiAgICAgIFBHcmVzdWx0ICpkZXN0OwoqKioqKioqKioqKioqKioKKioqIDUw MjksNTA0MSAqKioqCiAgICAgICAgIDxzdHJ1Y3RuYW1lPlBHRXZlbnRSZXN1bHRDb3B5ICo8 L3N0cnVjdG5hbWU+LiAgVGhlCiAgICAgICAgIDxwYXJhbWV0ZXI+c3JjPC9wYXJhbWV0ZXI+ IHJlc3VsdCBpcyB3aGF0IHdhcyBjb3BpZWQgd2hpbGUgdGhlCiAgICAgICAgIDxwYXJhbWV0 ZXI+ZGVzdDwvcGFyYW1ldGVyPiByZXN1bHQgaXMgdGhlIGNvcHkgZGVzdGluYXRpb24uICBU aGlzIGV2ZW50CiAgICAgICAgIGNhbiBiZSB1c2VkIHRvIHByb3ZpZGUgYSBkZWVwIGNvcHkg b2YgPGxpdGVyYWw+aW5zdGFuY2VEYXRhPC9saXRlcmFsPiwKICAgICAgICAgc2luY2UgPGxp dGVyYWw+UFFjb3B5UmVzdWx0PC9saXRlcmFsPiBjYW5ub3QgZG8gdGhhdC4gIElmIHRoZSBl dmVudAogICAgICAgICBwcm9jZWR1cmUgZmFpbHMsIHRoZSBlbnRpcmUgY29weSBvcGVyYXRp b24gd2lsbCBmYWlsIGFuZCB0aGUKISAgICAgICAgPHBhcmFtZXRlcj5kZXN0PC9wYXJhbWV0 ZXI+IHJlc3VsdCB3aWxsIGJlIGNsZWFyZWQuCiAgICAgICAgPC9wYXJhPgogICAgICAgPC9s aXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAgCiAgICAgIDx2YXJsaXN0ZW50cnk+ CiAgICAgICA8dGVybT48bGl0ZXJhbD5QR0VWVF9SRVNVTFRERVNUUk9ZPC9saXRlcmFsPjwv dGVybT4KLS0tIDUwMzYsNTA1MCAtLS0tCiAgICAgICAgIDxzdHJ1Y3RuYW1lPlBHRXZlbnRS ZXN1bHRDb3B5ICo8L3N0cnVjdG5hbWU+LiAgVGhlCiAgICAgICAgIDxwYXJhbWV0ZXI+c3Jj PC9wYXJhbWV0ZXI+IHJlc3VsdCBpcyB3aGF0IHdhcyBjb3BpZWQgd2hpbGUgdGhlCiAgICAg ICAgIDxwYXJhbWV0ZXI+ZGVzdDwvcGFyYW1ldGVyPiByZXN1bHQgaXMgdGhlIGNvcHkgZGVz dGluYXRpb24uICBUaGlzIGV2ZW50CiAgICAgICAgIGNhbiBiZSB1c2VkIHRvIHByb3ZpZGUg YSBkZWVwIGNvcHkgb2YgPGxpdGVyYWw+aW5zdGFuY2VEYXRhPC9saXRlcmFsPiwKICAgICAg ICAgc2luY2UgPGxpdGVyYWw+UFFjb3B5UmVzdWx0PC9saXRlcmFsPiBjYW5ub3QgZG8gdGhh dC4gIElmIHRoZSBldmVudAogICAgICAgICBwcm9jZWR1cmUgZmFpbHMsIHRoZSBlbnRpcmUg Y29weSBvcGVyYXRpb24gd2lsbCBmYWlsIGFuZCB0aGUKISAgICAgICAgPHBhcmFtZXRlcj5k ZXN0PC9wYXJhbWV0ZXI+IHJlc3VsdCB3aWxsIGJlIGNsZWFyZWQuICAgV2hlbiByZXR1cm5p bmcgYQohICAgICAgICBmYWlsdXJlIGNvZGUsIGFsbCBjbGVhbnVwIG11c3QgYmUgcGVyZm9y bWVkIGFzIG5vCiEgICAgICAgIDxsaXRlcmFsPlBHRVZUX1JFU1VMVERFU1RST1k8L2xpdGVy YWw+IGV2ZW50IHdpbGwgYmUgc2VudC4KICAgICAgICA8L3BhcmE+CiAgICAgICA8L2xpc3Rp dGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KICAKICAgICAgPHZhcmxpc3RlbnRyeT4KICAg ICAgIDx0ZXJtPjxsaXRlcmFsPlBHRVZUX1JFU1VMVERFU1RST1k8L2xpdGVyYWw+PC90ZXJt PgpJbmRleDogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K UkNTIGZpbGU6IC9wcm9qZWN0cy9jdnNyb290L3Bnc3FsL3NyYy9pbnRlcmZhY2VzL2xpYnBx L2ZlLWV4ZWMuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xOTgKZGlmZiAtQzYgLXIxLjE5 OCBmZS1leGVjLmMKKioqIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4ZWMuYwkxNyBTZXAg MjAwOCAwNDozMTowOCAtMDAwMAkxLjE5OAotLS0gc3JjL2ludGVyZmFjZXMvbGlicHEvZmUt ZXhlYy5jCTE3IFNlcCAyMDA4IDE0OjE5OjI5IC0wMDAwCioqKioqKioqKioqKioqKgoqKiog MzQ2LDM2NiAqKioqCiAgCQlkZXN0LT5uRXZlbnRzID0gc3JjLT5uRXZlbnRzOwogIAl9CiAg CiAgCS8qIE9rYXksIHRyaWdnZXIgUEdFVlRfUkVTVUxUQ09QWSBldmVudCAqLwogIAlmb3Ig KGkgPSAwOyBpIDwgZGVzdC0+bkV2ZW50czsgaSsrKQogIAl7CiEgCQlQR0V2ZW50UmVzdWx0 Q29weSBldnQ7CiEgCiEgCQlldnQuc3JjID0gc3JjOwohIAkJZXZ0LmRlc3QgPSBkZXN0Owoh IAkJaWYgKCFkZXN0LT5ldmVudHNbaV0ucHJvYyhQR0VWVF9SRVNVTFRDT1BZLCAmZXZ0LAoh IAkJCQkJCQkJICBkZXN0LT5ldmVudHNbaV0ucGFzc1Rocm91Z2gpKQogIAkJewohIAkJCVBR Y2xlYXIoZGVzdCk7CiEgCQkJcmV0dXJuIE5VTEw7CiAgCQl9CiAgCX0KICAKICAJcmV0dXJu IGRlc3Q7CiAgfQogIAotLS0gMzQ2LDM3MSAtLS0tCiAgCQlkZXN0LT5uRXZlbnRzID0gc3Jj LT5uRXZlbnRzOwogIAl9CiAgCiAgCS8qIE9rYXksIHRyaWdnZXIgUEdFVlRfUkVTVUxUQ09Q WSBldmVudCAqLwogIAlmb3IgKGkgPSAwOyBpIDwgZGVzdC0+bkV2ZW50czsgaSsrKQogIAl7 CiEgCQlpZihzcmMtPmV2ZW50c1tpXS5yZXN1bHRJbml0aWFsaXplZCkKICAJCXsKISAJCQlQ R0V2ZW50UmVzdWx0Q29weSBldnQ7CiEgCiEgCQkJZXZ0LnNyYyA9IHNyYzsKISAJCQlldnQu ZGVzdCA9IGRlc3Q7CiEgCQkJaWYgKCFkZXN0LT5ldmVudHNbaV0ucHJvYyhQR0VWVF9SRVNV TFRDT1BZLCAmZXZ0LAohIAkJCQkJCQkJCSAgZGVzdC0+ZXZlbnRzW2ldLnBhc3NUaHJvdWdo KSkKISAJCQl7CiEgCQkJCVBRY2xlYXIoZGVzdCk7CiEgCQkJCXJldHVybiBOVUxMOwohIAkJ CX0KISAKISAJCQlkZXN0LT5ldmVudHNbaV0ucmVzdWx0SW5pdGlhbGl6ZWQgPSBUUlVFOwog IAkJfQogIAl9CiAgCiAgCXJldHVybiBkZXN0OwogIH0KICAKKioqKioqKioqKioqKioqCioq KiAzNzgsMzk2ICoqKioKICAJCXJldHVybiBOVUxMOwogIAogIAluZXdFdmVudHMgPSAoUEdF dmVudCAqKSBtYWxsb2MoY291bnQgKiBzaXplb2YoUEdFdmVudCkpOwogIAlpZiAoIW5ld0V2 ZW50cykKICAJCXJldHVybiBOVUxMOwogIAotIAltZW1jcHkobmV3RXZlbnRzLCBldmVudHMs IGNvdW50ICogc2l6ZW9mKFBHRXZlbnQpKTsKLSAKLSAJLyogTlVMTCBvdXQgdGhlIGRhdGEg cG9pbnRlcnMgYW5kIGRlZXAgY29weSBuYW1lcyAqLwogIAlmb3IgKGkgPSAwOyBpIDwgY291 bnQ7IGkrKykKICAJewogIAkJbmV3RXZlbnRzW2ldLmRhdGEgPSBOVUxMOwohIAkJbmV3RXZl bnRzW2ldLm5hbWUgPSBzdHJkdXAobmV3RXZlbnRzW2ldLm5hbWUpOwogIAkJaWYgKCFuZXdF dmVudHNbaV0ubmFtZSkKICAJCXsKICAJCQl3aGlsZSAoLS1pID49IDApCiAgCQkJCWZyZWUo bmV3RXZlbnRzW2ldLm5hbWUpOwogIAkJCWZyZWUobmV3RXZlbnRzKTsKICAJCQlyZXR1cm4g TlVMTDsKLS0tIDM4Myw0MDEgLS0tLQogIAkJcmV0dXJuIE5VTEw7CiAgCiAgCW5ld0V2ZW50 cyA9IChQR0V2ZW50ICopIG1hbGxvYyhjb3VudCAqIHNpemVvZihQR0V2ZW50KSk7CiAgCWlm ICghbmV3RXZlbnRzKQogIAkJcmV0dXJuIE5VTEw7CiAgCiAgCWZvciAoaSA9IDA7IGkgPCBj b3VudDsgaSsrKQogIAl7CisgCQluZXdFdmVudHNbaV0ucHJvYyA9IGV2ZW50c1tpXS5wcm9j OworIAkJbmV3RXZlbnRzW2ldLnBhc3NUaHJvdWdoID0gZXZlbnRzW2ldLnBhc3NUaHJvdWdo OworIAkJbmV3RXZlbnRzW2ldLnJlc3VsdEluaXRpYWxpemVkID0gRkFMU0U7CiAgCQluZXdF dmVudHNbaV0uZGF0YSA9IE5VTEw7CiEgCQluZXdFdmVudHNbaV0ubmFtZSA9IHN0cmR1cChl dmVudHNbaV0ubmFtZSk7CiAgCQlpZiAoIW5ld0V2ZW50c1tpXS5uYW1lKQogIAkJewogIAkJ CXdoaWxlICgtLWkgPj0gMCkKICAJCQkJZnJlZShuZXdFdmVudHNbaV0ubmFtZSk7CiAgCQkJ ZnJlZShuZXdFdmVudHMpOwogIAkJCXJldHVybiBOVUxMOwoqKioqKioqKioqKioqKioKKioq IDY2Myw2NzkgKioqKgogIAogIAlpZiAoIXJlcykKICAJCXJldHVybjsKICAKICAJZm9yIChp ID0gMDsgaSA8IHJlcy0+bkV2ZW50czsgaSsrKQogIAl7CiEgCQlQR0V2ZW50UmVzdWx0RGVz dHJveSBldnQ7CiAgCi0gCQlldnQucmVzdWx0ID0gcmVzOwotIAkJKHZvaWQpIHJlcy0+ZXZl bnRzW2ldLnByb2MoUEdFVlRfUkVTVUxUREVTVFJPWSwgJmV2dCwKLSAJCQkJCQkJCSAgIHJl cy0+ZXZlbnRzW2ldLnBhc3NUaHJvdWdoKTsKICAJCWZyZWUocmVzLT5ldmVudHNbaV0ubmFt ZSk7CiAgCX0KICAKICAJaWYgKHJlcy0+ZXZlbnRzKQogIAkJZnJlZShyZXMtPmV2ZW50cyk7 CiAgCi0tLSA2NjgsNjg4IC0tLS0KICAKICAJaWYgKCFyZXMpCiAgCQlyZXR1cm47CiAgCiAg CWZvciAoaSA9IDA7IGkgPCByZXMtPm5FdmVudHM7IGkrKykKICAJewohIAkJaWYocmVzLT5l dmVudHNbaV0ucmVzdWx0SW5pdGlhbGl6ZWQpCiEgCQl7CiEgCQkJUEdFdmVudFJlc3VsdERl c3Ryb3kgZXZ0OwohIAohIAkJCWV2dC5yZXN1bHQgPSByZXM7CiEgCQkJKHZvaWQpIHJlcy0+ ZXZlbnRzW2ldLnByb2MoUEdFVlRfUkVTVUxUREVTVFJPWSwgJmV2dCwKISAJCQkJCQkJCQkg ICByZXMtPmV2ZW50c1tpXS5wYXNzVGhyb3VnaCk7CiEgCQl9CiAgCiAgCQlmcmVlKHJlcy0+ ZXZlbnRzW2ldLm5hbWUpOwogIAl9CiAgCiAgCWlmIChyZXMtPmV2ZW50cykKICAJCWZyZWUo cmVzLT5ldmVudHMpOwogIAoqKioqKioqKioqKioqKioKKioqIDE2MDksMTYyMCAqKioqCi0t LSAxNjE4LDE2MzEgLS0tLQogIAkJCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJQR0V2ZW50UHJv YyBcIiVzXCIgZmFpbGVkIGR1cmluZyBQR0VWVF9SRVNVTFRDUkVBVEUgZXZlbnRcbiIpLAog IAkJCQkJCQkJICByZXMtPmV2ZW50c1tpXS5uYW1lKTsKICAJCQkJcHFTZXRSZXN1bHRFcnJv cihyZXMsIGNvbm4tPmVycm9yTWVzc2FnZS5kYXRhKTsKICAJCQkJcmVzLT5yZXN1bHRTdGF0 dXMgPSBQR1JFU19GQVRBTF9FUlJPUjsKICAJCQkJYnJlYWs7CiAgCQkJfQorIAorIAkJCXJl cy0+ZXZlbnRzW2ldLnJlc3VsdEluaXRpYWxpemVkID0gVFJVRTsKICAJCX0KICAJfQogIAog IAlyZXR1cm4gcmVzOwogIH0KICAKSW5kZXg6IHNyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBx LWV2ZW50cy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9wcm9qZWN0cy9jdnNyb290L3Bn c3FsL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWV2ZW50cy5jLHYKcmV0cmlldmluZyBy ZXZpc2lvbiAxLjEKZGlmZiAtQzYgLXIxLjEgbGlicHEtZXZlbnRzLmMKKioqIHNyYy9pbnRl cmZhY2VzL2xpYnBxL2xpYnBxLWV2ZW50cy5jCTE3IFNlcCAyMDA4IDA0OjMxOjA4IC0wMDAw CTEuMQotLS0gc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZXZlbnRzLmMJMTcgU2VwIDIw MDggMTQ6MTk6MjkgLTAwMDAKKioqKioqKioqKioqKioqCioqKiA3Myw4NCAqKioqCi0tLSA3 Myw4NSAtLS0tCiAgCWNvbm4tPmV2ZW50c1tjb25uLT5uRXZlbnRzXS5wcm9jID0gcHJvYzsK ICAJY29ubi0+ZXZlbnRzW2Nvbm4tPm5FdmVudHNdLm5hbWUgPSBzdHJkdXAobmFtZSk7CiAg CWlmICghY29ubi0+ZXZlbnRzW2Nvbm4tPm5FdmVudHNdLm5hbWUpCiAgCQlyZXR1cm4gRkFM U0U7CiAgCWNvbm4tPmV2ZW50c1tjb25uLT5uRXZlbnRzXS5wYXNzVGhyb3VnaCA9IHBhc3NU aHJvdWdoOwogIAljb25uLT5ldmVudHNbY29ubi0+bkV2ZW50c10uZGF0YSA9IE5VTEw7Cisg CWNvbm4tPmV2ZW50c1tjb25uLT5uRXZlbnRzXS5yZXN1bHRJbml0aWFsaXplZCA9IEZBTFNF OwogIAljb25uLT5uRXZlbnRzKys7CiAgCiAgCXJlZ2V2dC5jb25uID0gY29ubjsKICAJaWYg KCFwcm9jKFBHRVZUX1JFR0lTVEVSLCAmcmVnZXZ0LCBwYXNzVGhyb3VnaCkpCiAgCXsKICAJ CWNvbm4tPm5FdmVudHMtLTsKSW5kZXg6IHNyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWlu dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9wcm9qZWN0cy9jdnNyb290L3Bnc3FsL3Ny Yy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWludC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAx LjEzMgpkaWZmIC1DNiAtcjEuMTMyIGxpYnBxLWludC5oCioqKiBzcmMvaW50ZXJmYWNlcy9s aWJwcS9saWJwcS1pbnQuaAkxNyBTZXAgMjAwOCAwNDozMTowOCAtMDAwMAkxLjEzMgotLS0g c3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmgJMTcgU2VwIDIwMDggMTQ6MTk6Mjkg LTAwMDAKKioqKioqKioqKioqKioqCioqKiAxNTMsMTY0ICoqKioKLS0tIDE1MywxNjUgLS0t LQogIHR5cGVkZWYgc3RydWN0IFBHRXZlbnQKICB7CiAgCVBHRXZlbnRQcm9jCXByb2M7CQkJ LyogdGhlIGZ1bmN0aW9uIHRvIGNhbGwgb24gZXZlbnRzICovCiAgCWNoYXIJICAgKm5hbWU7 CQkJLyogdXNlZCBvbmx5IGZvciBlcnJvciBtZXNzYWdlcyAqLwogIAl2b2lkCSAgICpwYXNz VGhyb3VnaDsJLyogcG9pbnRlciBzdXBwbGllZCBhdCByZWdpc3RyYXRpb24gdGltZSAqLwog IAl2b2lkCSAgICpkYXRhOwkJCS8qIG9wdGlvbmFsIHN0YXRlIChpbnN0YW5jZSkgZGF0YSAq LworIAlpbnQJCSAgIHJlc3VsdEluaXRpYWxpemVkOyAvKiBpbmRpY2F0ZXMgYSBQR0VWVF9S RVNVTFRDUkVBVEUgc3VjY2VlZGVkLiAqLwogIH0gUEdFdmVudDsKICAKICBzdHJ1Y3QgcGdf cmVzdWx0CiAgewogIAlpbnQJCQludHVwczsKICAJaW50CQkJbnVtQXR0cmlidXRlczsK --------------040107030103060207000105--