From owner-freebsd-net Thu Aug 9 22:38:29 2001 Delivered-To: freebsd-net@freebsd.org Received: from silby.com (cb34181-a.mdsn1.wi.home.com [24.14.173.39]) by hub.freebsd.org (Postfix) with ESMTP id A5C3437B43E for ; Thu, 9 Aug 2001 22:37:54 -0700 (PDT) (envelope-from silby@silby.com) Received: (qmail 93532 invoked by uid 1000); 10 Aug 2001 05:37:54 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 10 Aug 2001 05:37:54 -0000 Date: Fri, 10 Aug 2001 00:37:54 -0500 (CDT) From: Mike Silbersack To: , Subject: [PATCH] RFC 1948 sequence numbers, final(?) patch Message-ID: <20010810002406.U93492-300000@achilles.silby.com> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-1767808683-997421874=:93492" Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --0-1767808683-997421874=:93492 Content-Type: TEXT/PLAIN; charset=US-ASCII After much procrastination, I present the update RFC 1948 sequence number patch. Modifications have been made so that it more closely complies with RFC 1948, but still allows flexibility for sysadmins who want to reseed. Thanks go to Barney and Julian for suggesting these changes. I've done extensive testing with this patch, and all sysctls controlling its operation appear to work properly. However, testing would still be very helpful. I'll be on vacation from the 12th through the 19th; if no problems have been found during that time I expected to commit and MFC it on the 21st. I've included diffs relevant to an up to date -stable and -current. Thanks, Mike "Silby" Silbersack --0-1767808683-997421874=:93492 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="rfc1948-2.patch" Content-Transfer-Encoding: BASE64 Content-ID: <20010810003754.B93492@achilles.silby.com> Content-Description: Content-Disposition: attachment; filename="rfc1948-2.patch" ZGlmZiAtdSAtciBuZXRpbmV0Lm9sZC90Y3BfaW5wdXQuYyBuZXRpbmV0L3Rj cF9pbnB1dC5jDQotLS0gbmV0aW5ldC5vbGQvdGNwX2lucHV0LmMJVHVlIEp1 bCAzMSAyMTo0MzoyMSAyMDAxDQorKysgbmV0aW5ldC90Y3BfaW5wdXQuYwlU aHUgQXVnICA5IDAwOjQ1OjAxIDIwMDENCkBAIC0xMDEsNyArMTAxLDYgQEAN CiBNQUxMT0NfREVGSU5FKE1fVFNFR1EsICJ0c2VnX3FlbnQiLCAiVENQIHNl Z21lbnQgcXVldWUgZW50cnkiKTsNCiANCiBzdGF0aWMgaW50CXRjcHJleG10 dGhyZXNoID0gMzsNCi10Y3Bfc2VxCXRjcF9pc3M7DQogdGNwX2NjCXRjcF9j Y2dlbjsNCiANCiBzdHJ1Y3QJdGNwc3RhdCB0Y3BzdGF0Ow0KQEAgLTExMzUs NyArMTEzNCw3IEBADQogCQlpZiAoaXNzKQ0KIAkJCXRwLT5pc3MgPSBpc3M7 DQogCQllbHNlIHsNCi0JCQl0cC0+aXNzID0gdGNwX25ld19pc24oKTsNCisJ CQl0cC0+aXNzID0gdGNwX25ld19pc24odHApOw0KICAJCX0NCiAJCXRwLT5p cnMgPSB0aC0+dGhfc2VxOw0KIAkJdGNwX3NlbmRzZXFpbml0KHRwKTsNCkBA IC0xNjY3LDcgKzE2NjYsNyBAQA0KIAkJCWlmICh0aGZsYWdzICYgVEhfU1lO ICYmDQogCQkJICAgIHRwLT50X3N0YXRlID09IFRDUFNfVElNRV9XQUlUICYm DQogCQkJICAgIFNFUV9HVCh0aC0+dGhfc2VxLCB0cC0+cmN2X254dCkpIHsN Ci0JCQkJaXNzID0gdGNwX25ld19pc24oKTsNCisJCQkJaXNzID0gdGNwX25l d19pc24odHApOw0KIAkJCQl0cCA9IHRjcF9jbG9zZSh0cCk7DQogCQkJCWdv dG8gZmluZHBjYjsNCiAJCQl9DQpkaWZmIC11IC1yIG5ldGluZXQub2xkL3Rj cF9zZXEuaCBuZXRpbmV0L3RjcF9zZXEuaA0KLS0tIG5ldGluZXQub2xkL3Rj cF9zZXEuaAlUdWUgSnVsIDMxIDIxOjQzOjIxIDIwMDENCisrKyBuZXRpbmV0 L3RjcF9zZXEuaAlUaHUgQXVnICA5IDAwOjQ4OjMwIDIwMDENCkBAIC04MCwy NiArODAsNSBAQA0KIA0KICNpZmRlZiBfS0VSTkVMDQogZXh0ZXJuIHRjcF9j Ywl0Y3BfY2NnZW47CQkvKiBnbG9iYWwgY29ubmVjdGlvbiBjb3VudCAqLw0K LQ0KLS8qDQotICogSW5jcmVtZW50IGZvciB0Y3BfaXNzIGVhY2ggc2Vjb25k Lg0KLSAqIFRoaXMgaXMgZGVzaWduZWQgdG8gaW5jcmVtZW50IGF0IHRoZSBz dGFuZGFyZCAyNTAgS0IvcywNCi0gKiBidXQgd2l0aCBhIHJhbmRvbSBjb21w b25lbnQgYXZlcmFnaW5nIDEyOCBLQi4NCi0gKiBXZSBhbHNvIGluY3JlbWVu dCB0Y3BfaXNzIGJ5IGEgcXVhcnRlciBvZiB0aGlzIGFtb3VudA0KLSAqIGVh Y2ggdGltZSB3ZSB1c2UgdGhlIHZhbHVlIGZvciBhIG5ldyBjb25uZWN0aW9u Lg0KLSAqIElmIGRlZmluZWQsIHRoZSB0Y3BfcmFuZG9tMTgoKSBtYWNybyBz aG91bGQgcHJvZHVjZSBhDQotICogbnVtYmVyIGluIHRoZSByYW5nZSBbMC0w eDNmZmZmXSB0aGF0IGlzIGhhcmQgdG8gcHJlZGljdC4NCi0gKiANCi0gKiBU aGUgdmFyaWFibGUgdGNwX2lzcyBhbmQgdGNwX3JhbmRvbTE4KCkgYXJlIG9u bHkgdXNlZA0KLSAqIGJ5IHNlcXVlbmNlIG51bWJlciBnZW5lcmF0aW9uIHNj aGVtZSAwLg0KLSAqLw0KLSNpZm5kZWYgdGNwX3JhbmRvbTE4DQotI2RlZmlu ZQl0Y3BfcmFuZG9tMTgoKQkoYXJjNHJhbmRvbSgpICYgMHgzZmZmZikNCi0j ZW5kaWYNCi0jZGVmaW5lCVRDUF9JU1NJTkNSCSgxMjIqMTAyNCArIHRjcF9y YW5kb20xOCgpKQ0KLQ0KLWV4dGVybiB0Y3Bfc2VxCXRjcF9pc3M7DQotI2Vs c2UNCi0jZGVmaW5lCVRDUF9JU1NJTkNSCSgyNTAqMTAyNCkJLyogaW5jcmVt ZW50IGZvciB0Y3BfaXNzIGVhY2ggc2Vjb25kICovDQogI2VuZGlmIC8qIF9L RVJORUwgKi8NCiAjZW5kaWYgLyogX05FVElORVRfVENQX1NFUV9IXyAqLw0K ZGlmZiAtdSAtciBuZXRpbmV0Lm9sZC90Y3Bfc3Vici5jIG5ldGluZXQvdGNw X3N1YnIuYw0KLS0tIG5ldGluZXQub2xkL3RjcF9zdWJyLmMJVHVlIEp1bCAz MSAyMTo0MzoyMSAyMDAxDQorKysgbmV0aW5ldC90Y3Bfc3Vici5jCVRodSBB dWcgIDkgMDE6MjE6MTYgMjAwMQ0KQEAgLTk4LDYgKzk4LDcgQEANCiAjZW5k aWYgLypJUFNFQyovDQogDQogI2luY2x1ZGUgPG1hY2hpbmUvaW5fY2tzdW0u aD4NCisjaW5jbHVkZSA8c3lzL21kNS5oPg0KIA0KIGludCAJdGNwX21zc2Rm bHQgPSBUQ1BfTVNTOw0KIFNZU0NUTF9JTlQoX25ldF9pbmV0X3RjcCwgVENQ Q1RMX01TU0RGTFQsIG1zc2RmbHQsIENUTEZMQUdfUlcsIA0KQEAgLTEzOSw5 ICsxNDAsMTMgQEANCiBTWVNDVExfSU5UKF9uZXRfaW5ldF90Y3AsIE9JRF9B VVRPLCBpY21wX21heV9yc3QsIENUTEZMQUdfUlcsICZpY21wX21heV9yc3Qs IDAsIA0KICAgICAiQ2VydGFpbiBJQ01QIHVucmVhY2hhYmxlIG1lc3NhZ2Vz IG1heSBhYm9ydCBjb25uZWN0aW9ucyBpbiBTWU5fU0VOVCIpOw0KIA0KLXN0 YXRpYyBpbnQJdGNwX3NlcV9nZW5zY2hlbWUgPSAxOw0KLVNZU0NUTF9JTlQo X25ldF9pbmV0X3RjcCwgT0lEX0FVVE8sIHRjcF9zZXFfZ2Vuc2NoZW1lLCBD VExGTEFHX1JXLA0KLSAgICAmdGNwX3NlcV9nZW5zY2hlbWUsIDAsICJUQ1Ag SVNOIGdlbmVyYXRpb24gc2NoZW1lIik7DQorc3RhdGljIGludAl0Y3Bfc3Ry aWN0X3JmYzE5NDggPSAwOw0KK1NZU0NUTF9JTlQoX25ldF9pbmV0X3RjcCwg T0lEX0FVVE8sIHN0cmljdF9yZmMxOTQ4LCBDVExGTEFHX1JXLA0KKyAgICAm dGNwX3N0cmljdF9yZmMxOTQ4LCAwLCAiRGV0ZXJtaW5lcyBpZiBSRkMxOTQ4 IGlzIGZvbGxvd2VkIGV4YWN0bHkiKTsNCisNCitzdGF0aWMgaW50CXRjcF9p c25fcmVzZWVkX2ludGVydmFsID0gMDsNCitTWVNDVExfSU5UKF9uZXRfaW5l dF90Y3AsIE9JRF9BVVRPLCBpc25fcmVzZWVkX2ludGVydmFsLCBDVExGTEFH X1JXLA0KKyAgICAmdGNwX2lzbl9yZXNlZWRfaW50ZXJ2YWwsIDAsICJTZWNv bmRzIGJldHdlZW4gcmVzZWVkaW5nIG9mIElTTiBzZWNyZXQiKTsNCiANCiBz dGF0aWMgdm9pZAl0Y3BfY2xlYXJ0YW9jYWNoZSBfX1AoKHZvaWQpKTsNCiBz dGF0aWMgdm9pZAl0Y3Bfbm90aWZ5IF9fUCgoc3RydWN0IGlucGNiICosIGlu dCkpOw0KQEAgLTE4Niw3ICsxOTEsNiBAQA0KIHsNCiAJaW50IGhhc2hzaXpl ID0gVENCSEFTSFNJWkU7DQogCQ0KLQl0Y3BfaXNzID0gYXJjNHJhbmRvbSgp OwkvKiB3cm9uZywgYnV0IGJldHRlciB0aGFuIGEgY29uc3RhbnQgKi8NCiAJ dGNwX2NjZ2VuID0gMTsNCiAJdGNwX2NsZWFydGFvY2FjaGUoKTsNCiANCkBA IC0xMTEyLDgwICsxMTE2LDEwMSBAQA0KIH0NCiAjZW5kaWYgLyogSU5FVDYg Ki8NCiANCi10Y3Bfc2VxDQotdGNwX25ld19pc24oKQ0KLXsNCi0NCi0JaWYg KHRjcF9zZXFfZ2Vuc2NoZW1lID4gMSB8fCB0Y3Bfc2VxX2dlbnNjaGVtZSA8 IDApDQotCQl0Y3Bfc2VxX2dlbnNjaGVtZSA9IDE7DQotDQotCXN3aXRjaCAo dGNwX3NlcV9nZW5zY2hlbWUpIHsNCi0JY2FzZSAwOgkJCS8qIFJhbmRvbSBw b3NpdGl2ZSBpbmNyZW1lbnRzICovDQotCQl0Y3BfaXNzICs9IFRDUF9JU1NJ TkNSLzI7DQotCQlyZXR1cm4gdGNwX2lzczsNCi0JY2FzZSAxOgkJCS8qIE9w ZW5CU0QgcmFuZG9taXplZCBzY2hlbWUgKi8NCi0JCXJldHVybiB0Y3Bfcm5k aXNzX25leHQoKTsNCi0JZGVmYXVsdDoNCi0JCXBhbmljKCJjYW5ub3QgaGFw cGVuIik7DQotCX0NCi19DQotDQotI2RlZmluZSBUQ1BfUk5ESVNTX1JPVU5E UwkxNg0KLSNkZWZpbmUgVENQX1JORElTU19PVVQJNzIwMA0KLSNkZWZpbmUg VENQX1JORElTU19NQVgJMzAwMDANCi0NCi11X2ludDhfdCB0Y3Bfcm5kaXNz X3Nib3hbMTI4XTsNCi11X2ludDE2X3QgdGNwX3JuZGlzc19tc2I7DQotdV9p bnQxNl90IHRjcF9ybmRpc3NfY250Ow0KLWxvbmcgdGNwX3JuZGlzc19yZXNl ZWQ7DQotDQotdV9pbnQxNl90DQotdGNwX3JuZGlzc19lbmNyeXB0KHZhbCkN Ci0JdV9pbnQxNl90IHZhbDsNCi17DQotCXVfaW50MTZfdCBzdW0gPSAwLCBp Ow0KLSAgDQotCWZvciAoaSA9IDA7IGkgPCBUQ1BfUk5ESVNTX1JPVU5EUzsg aSsrKSB7DQotCQlzdW0gKz0gMHg3OWI5Ow0KLQkJdmFsIF49ICgodV9pbnQx Nl90KXRjcF9ybmRpc3Nfc2JveFsodmFsXnN1bSkgJiAweDdmXSkgPDwgNzsN Ci0JCXZhbCA9ICgodmFsICYgMHhmZikgPDwgNykgfCAodmFsID4+IDgpOw0K LQl9DQogDQotCXJldHVybiB2YWw7DQotfQ0KLQ0KLXZvaWQNCi10Y3Bfcm5k aXNzX2luaXQoKQ0KLXsNCi0Jc3RydWN0IHRpbWV2YWwgdGltZTsNCisvKg0K KyAqIEZvbGxvd2luZyBpcyB3aGVyZSBUQ1AgaW5pdGlhbCBzZXF1ZW5jZSBu dW1iZXIgZ2VuZXJhdGlvbiBvY2N1cnMuDQorICoNCisgKiBUaGVyZSBhcmUg dHdvIHBsYWNlcyB3aGVyZSB3ZSBtdXN0IHVzZSBpbml0aWFsIHNlcXVlbmNl IG51bWJlcnM6DQorICogMS4gIEluIFNZTi1BQ0sgcGFja2V0cy4NCisgKiAy LiAgSW4gU1lOIHBhY2tldHMuDQorICoNCisgKiBUaGUgSVNOcyBpbiBTWU4t QUNLIHBhY2tldHMgaGF2ZSBubyBtb25vdG9uaWNpdHkgcmVxdWlyZW1lbnQs IA0KKyAqIGFuZCBzaG91bGQgYmUgYXMgdW5wcmVkaWN0YWJsZSBhcyBwb3Nz aWJsZSB0byBhdm9pZCB0aGUgcG9zc2liaWxpdHkNCisgKiBvZiBzcG9vZmlu ZyBhbmQvb3IgY29ubmVjdGlvbiBoaWphY2tpbmcuICBUbyBzYXRpc2Z5IHRo aXMNCisgKiByZXF1aXJlbWVudCwgU1lOLUFDSyBJU05zIGFyZSBnZW5lcmF0 ZWQgdmlhIHRoZSBhcmM0cmFuZG9tKCkNCisgKiBmdW5jdGlvbi4gIElmIGV4 YWN0IFJGQyAxOTQ4IGNvbXBsaWFuY2UgaXMgcmVxdWVzdGVkIHZpYSBzeXNj dGwsDQorICogdGhlc2UgSVNOcyB3aWxsIGJlIGdlbmVyYXRlZCBqdXN0IGxp a2UgdGhvc2UgaW4gU1lOIHBhY2tldHMuDQorICoNCisgKiBUaGUgSVNOcyBp biBTWU4gcGFja2V0cyBtdXN0IGJlIG1vbm90b25pYzsgVElNRV9XQUlUIHJl Y3ljbGluZw0KKyAqIGRlcGVuZHMgb24gdGhpcyBwcm9wZXJ0eS4gIEluIGFk ZGl0aW9uLCB0aGVzZSBJU05zIHNob3VsZCBiZQ0KKyAqIHVuZ3Vlc3NhYmxl IHNvIGFzIHRvIHByZXZlbnQgY29ubmVjdGlvbiBoaWphY2tpbmcuICBUbyBz YXRpc2Z5DQorICogdGhlIHJlcXVpcmVtZW50cyBvZiB0aGlzIHNpdHVhdGlv biwgdGhlIGFsZ29yaXRobSBvdXRsaW5lZCBpbg0KKyAqIFJGQyAxOTQ4IGlz IHVzZWQgdG8gZ2VuZXJhdGUgc2VxdWVuY2UgbnVtYmVycy4NCisgKg0KKyAq IEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSB0aGVvcnkgb2Ygb3BlcmF0 aW9uLCBwbGVhc2Ugc2VlDQorICogUkZDIDE5NDguDQorICoNCisgKiBJbXBs ZW1lbnRhdGlvbiBkZXRhaWxzOg0KKyAqDQorICogVGltZSBpcyBiYXNlZCBv ZmYgdGhlIHN5c3RlbSB0aW1lciwgYW5kIGlzIGNvcnJlY3RlZCBzbyB0aGF0 IGl0DQorICogaW5jcmVhc2VzIGJ5IG9uZSBtZWdhYnl0ZSBwZXIgc2Vjb25k LiAgVGhpcyBhbGxvd3MgZm9yIHByb3Blcg0KKyAqIHJlY3ljbGluZyBvbiBo aWdoIHNwZWVkIExBTnMgd2hpbGUgc3RpbGwgbGVhdmluZyBvdmVyIGFuIGhv dXINCisgKiBiZWZvcmUgcm9sbG92ZXIuDQorICoNCisgKiBUd28gc3lzY3Rs cyBjb250cm9sIHRoZSBnZW5lcmF0aW9uIG9mIElTTnM6DQorICoNCisgKiBu ZXQuaW5ldC50Y3AuaXNuX3Jlc2VlZF9pbnRlcnZhbCBjb250cm9scyB0aGUg bnVtYmVyIG9mIHNlY29uZHMNCisgKiBiZXR3ZWVuIHNlZWRpbmcgb2YgaXNu X3NlY3JldC4gIFRoaXMgaXMgbm9ybWFsbHkgc2V0IHRvIHplcm8sDQorICog YXMgcmVzZWVkaW5nIHNob3VsZCBub3QgYmUgbmVjZXNzYXJ5Lg0KKyAqDQor ICogbmV0LmluZXQudGNwLnN0cmljdF9yZmMxOTQ4IGNvbnRyb2xzIHdoZXRo ZXIgUkZDIDE5NDggaXMgZm9sbG93ZWQNCisgKiBzdHJpY3RseS4gIFdoZW4g c3RyaWN0IGNvbXBsaWFuY2UgaXMgcmVxdWVzdGVkLCByZXNlZWRpbmcgaXMN CisgKiBkaXNhYmxlZCBhbmQgU1lOLUFDS3Mgd2lsbCBiZSBnZW5lcmF0ZWQg aW4gdGhlIHNhbWUgbWFubmVyIGFzDQorICogU1lOcy4gIFN0cmljdCBtb2Rl IGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQuDQorICoNCisgKi8NCiANCi0JZ2V0 bWljcm90aW1lKCZ0aW1lKTsNCi0JcmVhZF9yYW5kb20odGNwX3JuZGlzc19z Ym94LCBzaXplb2YodGNwX3JuZGlzc19zYm94KSk7DQorI2RlZmluZSBJU05f QllURVNfUEVSX1NFQ09ORCAxMDQ4NTc2DQogDQotCXRjcF9ybmRpc3NfcmVz ZWVkID0gdGltZS50dl9zZWMgKyBUQ1BfUk5ESVNTX09VVDsNCi0JdGNwX3Ju ZGlzc19tc2IgPSB0Y3Bfcm5kaXNzX21zYiA9PSAweDgwMDAgPyAwIDogMHg4 MDAwOyANCi0JdGNwX3JuZGlzc19jbnQgPSAwOw0KLX0NCit1X2NoYXIgaXNu X3NlY3JldFszMl07DQoraW50IGlzbl9sYXN0X3Jlc2VlZDsNCitNRDVfQ1RY IGlzbl9jdHg7DQogDQogdGNwX3NlcQ0KLXRjcF9ybmRpc3NfbmV4dCgpDQor dGNwX25ld19pc24odHApDQorCXN0cnVjdCB0Y3BjYiAqdHA7DQogew0KLQl1 X2ludDE2X3QgdG1wOw0KLQlzdHJ1Y3QgdGltZXZhbCB0aW1lOw0KKwl1X2lu dDMyX3QgbWQ1X2J1ZmZlcls0XTsNCisJdGNwX3NlcSBuZXdfaXNuOw0KIA0K LQlnZXRtaWNyb3RpbWUoJnRpbWUpOw0KLQ0KLSAgICAgICAgaWYgKHRjcF9y bmRpc3NfY250ID49IFRDUF9STkRJU1NfTUFYIHx8DQotCSAgICB0aW1lLnR2 X3NlYyA+IHRjcF9ybmRpc3NfcmVzZWVkKQ0KLSAgICAgICAgICAgICAgICB0 Y3Bfcm5kaXNzX2luaXQoKTsNCi0JDQotCXJlYWRfcmFuZG9tKCZ0bXAsIHNp emVvZih0bXApKTsNCi0NCi0JLyogKHRtcCAmIDB4N2ZmZikgZW5zdXJlcyBh IDMyNzY4IGJ5dGUgZ2FwIGJldHdlZW4gSVNTICovDQotCXJldHVybiAoKHRj cF9ybmRpc3NfZW5jcnlwdCh0Y3Bfcm5kaXNzX2NudCsrKSB8IHRjcF9ybmRp c3NfbXNiKSA8PDE2KSB8DQotCQkodG1wICYgMHg3ZmZmKTsNCisJLyogVXNl IGFyYzRyYW5kb20gZm9yIFNZTi1BQ0tzIHdoZW4gbm90IGluIGV4YWN0IFJG QzE5NDggbW9kZS4gKi8NCisJaWYgKCgodHAtPnRfc3RhdGUgPT0gVENQU19M SVNURU4pIHx8ICh0cC0+dF9zdGF0ZSA9PSBUQ1BTX1RJTUVfV0FJVCkpDQor CSAgICYmIHRjcF9zdHJpY3RfcmZjMTk0OCAhPSAxKQ0KKwkJcmV0dXJuIGFy YzRyYW5kb20oKTsNCisNCisJLyogU2VlZCBpZiB0aGlzIGlzIHRoZSBmaXJz dCB1c2UsIHJlc2VlZCBpZiByZXF1ZXN0ZWQuICovDQorCWlmICgoaXNuX2xh c3RfcmVzZWVkID09IDApIHx8DQorCSAgICAoKHRjcF9zdHJpY3RfcmZjMTk0 OCAhPSAxKSAmJiAodGNwX2lzbl9yZXNlZWRfaW50ZXJ2YWwgPiAwKSAmJg0K KwkgICAgICgoKHVfaW50KWlzbl9sYXN0X3Jlc2VlZCArICh1X2ludCl0Y3Bf aXNuX3Jlc2VlZF9pbnRlcnZhbCpoeikNCisJCTwgKHVfaW50KXRpY2tzKSkp IHsNCisJCXJlYWRfcmFuZG9tKCZpc25fc2VjcmV0LCBzaXplb2YoaXNuX3Nl Y3JldCkpOw0KKwkJaXNuX2xhc3RfcmVzZWVkID0gdGlja3M7DQorCX0NCisJ CQ0KKwkvKiBDb21wdXRlIHRoZSBtZDUgaGFzaCBhbmQgcmV0dXJuIHRoZSBJ U04uICovDQorCU1ENUluaXQoJmlzbl9jdHgpOw0KKwlNRDVVcGRhdGUoJmlz bl9jdHgsICh1X2NoYXIgKikgJnRwLT50X2lucGNiLT5pbnBfZnBvcnQsIHNp emVvZih1X3Nob3J0KSk7DQorCU1ENVVwZGF0ZSgmaXNuX2N0eCwgKHVfY2hh ciAqKSAmdHAtPnRfaW5wY2ItPmlucF9scG9ydCwgc2l6ZW9mKHVfc2hvcnQp KTsNCisjaWZkZWYgSU5FVDYNCisJaWYgKCh0cC0+dF9pbnBjYi0+aW5wX3Zm bGFnICYgSU5QX0lQVjYpICE9IDApIHsNCisJCU1ENVVwZGF0ZSgmaXNuX2N0 eCwgKHVfY2hhciAqKSAmdHAtPnRfaW5wY2ItPmluNnBfZmFkZHIsDQorCQkJ ICBzaXplb2Yoc3RydWN0IGluNl9hZGRyKSk7DQorCQlNRDVVcGRhdGUoJmlz bl9jdHgsICh1X2NoYXIgKikgJnRwLT50X2lucGNiLT5pbjZwX2xhZGRyLA0K KwkJCSAgc2l6ZW9mKHN0cnVjdCBpbjZfYWRkcikpOw0KKwl9IGVsc2UNCisj ZW5kaWYNCisJew0KKwkJTUQ1VXBkYXRlKCZpc25fY3R4LCAodV9jaGFyICop ICZ0cC0+dF9pbnBjYi0+aW5wX2ZhZGRyLA0KKwkJCSAgc2l6ZW9mKHN0cnVj dCBpbl9hZGRyKSk7DQorCQlNRDVVcGRhdGUoJmlzbl9jdHgsICh1X2NoYXIg KikgJnRwLT50X2lucGNiLT5pbnBfbGFkZHIsDQorCQkJICBzaXplb2Yoc3Ry dWN0IGluX2FkZHIpKTsNCisJfQ0KKwlNRDVVcGRhdGUoJmlzbl9jdHgsICh1 X2NoYXIgKikgJmlzbl9zZWNyZXQsIHNpemVvZihpc25fc2VjcmV0KSk7DQor CU1ENUZpbmFsKCh1X2NoYXIgKikgJm1kNV9idWZmZXIsICZpc25fY3R4KTsN CisJbmV3X2lzbiA9ICh0Y3Bfc2VxKSBtZDVfYnVmZmVyWzBdOw0KKwluZXdf aXNuICs9IHRpY2tzICogKElTTl9CWVRFU19QRVJfU0VDT05EIC8gaHopOw0K KwlyZXR1cm4gbmV3X2lzbjsNCiB9DQotDQogDQogLyoNCiAgKiBXaGVuIGEg c291cmNlIHF1ZW5jaCBpcyByZWNlaXZlZCwgY2xvc2UgY29uZ2VzdGlvbiB3 aW5kb3cNCmRpZmYgLXUgLXIgbmV0aW5ldC5vbGQvdGNwX3RpbWVyLmMgbmV0 aW5ldC90Y3BfdGltZXIuYw0KLS0tIG5ldGluZXQub2xkL3RjcF90aW1lci5j CVR1ZSBKdWwgMzEgMjE6NDM6MjEgMjAwMQ0KKysrIG5ldGluZXQvdGNwX3Rp bWVyLmMJVGh1IEF1ZyAgOSAwMDo0NTo1MCAyMDAxDQpAQCAtMTMzLDggKzEz Myw2IEBADQogDQogCXRjcF9tYXhpZGxlID0gdGNwX2tlZXBjbnQgKiB0Y3Bf a2VlcGludHZsOw0KIA0KLQl0Y3BfaXNzICs9IFRDUF9JU1NJTkNSL1BSX1NM T1dIWjsNCi0NCiAJc3BseChzKTsNCiB9DQogDQpkaWZmIC11IC1yIG5ldGlu ZXQub2xkL3RjcF91c3JyZXEuYyBuZXRpbmV0L3RjcF91c3JyZXEuYw0KLS0t IG5ldGluZXQub2xkL3RjcF91c3JyZXEuYwlUdWUgSnVsIDMxIDIxOjQzOjIx IDIwMDENCisrKyBuZXRpbmV0L3RjcF91c3JyZXEuYwlUdWUgSnVsIDMxIDIx OjQ1OjU4IDIwMDENCkBAIC03NTgsNyArNzU4LDcgQEANCiAJdGNwc3RhdC50 Y3BzX2Nvbm5hdHRlbXB0Kys7DQogCXRwLT50X3N0YXRlID0gVENQU19TWU5f U0VOVDsNCiAJY2FsbG91dF9yZXNldCh0cC0+dHRfa2VlcCwgdGNwX2tlZXBp bml0LCB0Y3BfdGltZXJfa2VlcCwgdHApOw0KLQl0cC0+aXNzID0gdGNwX25l d19pc24oKTsNCisJdHAtPmlzcyA9IHRjcF9uZXdfaXNuKHRwKTsNCiAJdGNw X3NlbmRzZXFpbml0KHRwKTsNCiANCiAJLyoNCkBAIC04NDQsNyArODQ0LDcg QEANCiAJdGNwc3RhdC50Y3BzX2Nvbm5hdHRlbXB0Kys7DQogCXRwLT50X3N0 YXRlID0gVENQU19TWU5fU0VOVDsNCiAJY2FsbG91dF9yZXNldCh0cC0+dHRf a2VlcCwgdGNwX2tlZXBpbml0LCB0Y3BfdGltZXJfa2VlcCwgdHApOw0KLQl0 cC0+aXNzID0gdGNwX25ld19pc24oKTsNCisJdHAtPmlzcyA9IHRjcF9uZXdf aXNuKHRwKTsNCiAJdGNwX3NlbmRzZXFpbml0KHRwKTsNCiANCiAJLyoNCmRp ZmYgLXUgLXIgbmV0aW5ldC5vbGQvdGNwX3Zhci5oIG5ldGluZXQvdGNwX3Zh ci5oDQotLS0gbmV0aW5ldC5vbGQvdGNwX3Zhci5oCVR1ZSBKdWwgMzEgMjE6 NDM6MjEgMjAwMQ0KKysrIG5ldGluZXQvdGNwX3Zhci5oCVRodSBBdWcgIDkg MDA6NTU6MTYgMjAwMQ0KQEAgLTQxMCwxMSArNDEwLDcgQEANCiBleHRlcm4J c3RydWN0IHByX3VzcnJlcXMgdGNwX3VzcnJlcXM7DQogZXh0ZXJuCXVfbG9u ZyB0Y3Bfc2VuZHNwYWNlOw0KIGV4dGVybgl1X2xvbmcgdGNwX3JlY3ZzcGFj ZTsNCi12b2lkCXRjcF9ybmRpc3NfaW5pdCBfX1AoKHZvaWQpKTsNCi10Y3Bf c2VxCXRjcF9ybmRpc3NfbmV4dCBfX1AoKHZvaWQpKTsNCi11X2ludDE2X3QN Ci0JdGNwX3JuZGlzc19lbmNyeXB0IF9fUCgodV9pbnQxNl90KSk7DQotdGNw X3NlcSB0Y3BfbmV3X2lzbiBfX1AoKHZvaWQpKTsNCit0Y3Bfc2VxIHRjcF9u ZXdfaXNuIF9fUCgoc3RydWN0IHRjcGNiICopKTsNCiANCiAjZW5kaWYgLyog X0tFUk5FTCAqLw0K --0-1767808683-997421874=:93492 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="rfc1948-2-stable.patch" Content-Transfer-Encoding: BASE64 Content-ID: <20010810003754.B93492@achilles.silby.com> Content-Description: Content-Disposition: attachment; filename="rfc1948-2-stable.patch" ZGlmZiAtdSAtciBuZXRpbmV0Lm9sZC90Y3BfaW5wdXQuYyBuZXRpbmV0L3Rj cF9pbnB1dC5jDQotLS0gbmV0aW5ldC5vbGQvdGNwX2lucHV0LmMJVHVlIEp1 bCAzMSAyMTo0MzoyMSAyMDAxDQorKysgbmV0aW5ldC90Y3BfaW5wdXQuYwlU aHUgQXVnICA5IDAwOjQ1OjAxIDIwMDENCkBAIC0xMDEsNyArMTAxLDYgQEAN CiBNQUxMT0NfREVGSU5FKE1fVFNFR1EsICJ0c2VnX3FlbnQiLCAiVENQIHNl Z21lbnQgcXVldWUgZW50cnkiKTsNCiANCiBzdGF0aWMgaW50CXRjcHJleG10 dGhyZXNoID0gMzsNCi10Y3Bfc2VxCXRjcF9pc3M7DQogdGNwX2NjCXRjcF9j Y2dlbjsNCiANCiBzdHJ1Y3QJdGNwc3RhdCB0Y3BzdGF0Ow0KQEAgLTExMzUs NyArMTEzNCw3IEBADQogCQlpZiAoaXNzKQ0KIAkJCXRwLT5pc3MgPSBpc3M7 DQogCQllbHNlIHsNCi0JCQl0cC0+aXNzID0gdGNwX25ld19pc24oKTsNCisJ CQl0cC0+aXNzID0gdGNwX25ld19pc24odHApOw0KICAJCX0NCiAJCXRwLT5p cnMgPSB0aC0+dGhfc2VxOw0KIAkJdGNwX3NlbmRzZXFpbml0KHRwKTsNCkBA IC0xNjY3LDcgKzE2NjYsNyBAQA0KIAkJCWlmICh0aGZsYWdzICYgVEhfU1lO ICYmDQogCQkJICAgIHRwLT50X3N0YXRlID09IFRDUFNfVElNRV9XQUlUICYm DQogCQkJICAgIFNFUV9HVCh0aC0+dGhfc2VxLCB0cC0+cmN2X254dCkpIHsN Ci0JCQkJaXNzID0gdGNwX25ld19pc24oKTsNCisJCQkJaXNzID0gdGNwX25l d19pc24odHApOw0KIAkJCQl0cCA9IHRjcF9jbG9zZSh0cCk7DQogCQkJCWdv dG8gZmluZHBjYjsNCiAJCQl9DQpkaWZmIC11IC1yIG5ldGluZXQub2xkL3Rj cF9zZXEuaCBuZXRpbmV0L3RjcF9zZXEuaA0KLS0tIG5ldGluZXQub2xkL3Rj cF9zZXEuaAlUdWUgSnVsIDMxIDIxOjQzOjIxIDIwMDENCisrKyBuZXRpbmV0 L3RjcF9zZXEuaAlUaHUgQXVnICA5IDAwOjQ4OjMwIDIwMDENCkBAIC04MCwy NiArODAsNSBAQA0KIA0KICNpZmRlZiBfS0VSTkVMDQogZXh0ZXJuIHRjcF9j Ywl0Y3BfY2NnZW47CQkvKiBnbG9iYWwgY29ubmVjdGlvbiBjb3VudCAqLw0K LQ0KLS8qDQotICogSW5jcmVtZW50IGZvciB0Y3BfaXNzIGVhY2ggc2Vjb25k Lg0KLSAqIFRoaXMgaXMgZGVzaWduZWQgdG8gaW5jcmVtZW50IGF0IHRoZSBz dGFuZGFyZCAyNTAgS0IvcywNCi0gKiBidXQgd2l0aCBhIHJhbmRvbSBjb21w b25lbnQgYXZlcmFnaW5nIDEyOCBLQi4NCi0gKiBXZSBhbHNvIGluY3JlbWVu dCB0Y3BfaXNzIGJ5IGEgcXVhcnRlciBvZiB0aGlzIGFtb3VudA0KLSAqIGVh Y2ggdGltZSB3ZSB1c2UgdGhlIHZhbHVlIGZvciBhIG5ldyBjb25uZWN0aW9u Lg0KLSAqIElmIGRlZmluZWQsIHRoZSB0Y3BfcmFuZG9tMTgoKSBtYWNybyBz aG91bGQgcHJvZHVjZSBhDQotICogbnVtYmVyIGluIHRoZSByYW5nZSBbMC0w eDNmZmZmXSB0aGF0IGlzIGhhcmQgdG8gcHJlZGljdC4NCi0gKiANCi0gKiBU aGUgdmFyaWFibGUgdGNwX2lzcyBhbmQgdGNwX3JhbmRvbTE4KCkgYXJlIG9u bHkgdXNlZA0KLSAqIGJ5IHNlcXVlbmNlIG51bWJlciBnZW5lcmF0aW9uIHNj aGVtZSAwLg0KLSAqLw0KLSNpZm5kZWYgdGNwX3JhbmRvbTE4DQotI2RlZmlu ZQl0Y3BfcmFuZG9tMTgoKQkoYXJjNHJhbmRvbSgpICYgMHgzZmZmZikNCi0j ZW5kaWYNCi0jZGVmaW5lCVRDUF9JU1NJTkNSCSgxMjIqMTAyNCArIHRjcF9y YW5kb20xOCgpKQ0KLQ0KLWV4dGVybiB0Y3Bfc2VxCXRjcF9pc3M7DQotI2Vs c2UNCi0jZGVmaW5lCVRDUF9JU1NJTkNSCSgyNTAqMTAyNCkJLyogaW5jcmVt ZW50IGZvciB0Y3BfaXNzIGVhY2ggc2Vjb25kICovDQogI2VuZGlmIC8qIF9L RVJORUwgKi8NCiAjZW5kaWYgLyogX05FVElORVRfVENQX1NFUV9IXyAqLw0K ZGlmZiAtdSAtciBuZXRpbmV0Lm9sZC90Y3Bfc3Vici5jIG5ldGluZXQvdGNw X3N1YnIuYw0KLS0tIG5ldGluZXQub2xkL3RjcF9zdWJyLmMJVHVlIEp1bCAz MSAyMTo0MzoyMSAyMDAxDQorKysgbmV0aW5ldC90Y3Bfc3Vici5jCVRodSBB dWcgIDkgMDE6MjE6MTYgMjAwMQ0KQEAgLTk4LDYgKzk4LDcgQEANCiAjZW5k aWYgLypJUFNFQyovDQogDQogI2luY2x1ZGUgPG1hY2hpbmUvaW5fY2tzdW0u aD4NCisjaW5jbHVkZSA8c3lzL21kNS5oPg0KIA0KIGludCAJdGNwX21zc2Rm bHQgPSBUQ1BfTVNTOw0KIFNZU0NUTF9JTlQoX25ldF9pbmV0X3RjcCwgVENQ Q1RMX01TU0RGTFQsIG1zc2RmbHQsIENUTEZMQUdfUlcsIA0KQEAgLTEzOSw5 ICsxNDAsMTMgQEANCiBTWVNDVExfSU5UKF9uZXRfaW5ldF90Y3AsIE9JRF9B VVRPLCBpY21wX21heV9yc3QsIENUTEZMQUdfUlcsICZpY21wX21heV9yc3Qs IDAsIA0KICAgICAiQ2VydGFpbiBJQ01QIHVucmVhY2hhYmxlIG1lc3NhZ2Vz IG1heSBhYm9ydCBjb25uZWN0aW9ucyBpbiBTWU5fU0VOVCIpOw0KIA0KLXN0 YXRpYyBpbnQJdGNwX3NlcV9nZW5zY2hlbWUgPSAxOw0KLVNZU0NUTF9JTlQo X25ldF9pbmV0X3RjcCwgT0lEX0FVVE8sIHRjcF9zZXFfZ2Vuc2NoZW1lLCBD VExGTEFHX1JXLA0KLSAgICAmdGNwX3NlcV9nZW5zY2hlbWUsIDAsICJUQ1Ag SVNOIGdlbmVyYXRpb24gc2NoZW1lIik7DQorc3RhdGljIGludAl0Y3Bfc3Ry aWN0X3JmYzE5NDggPSAwOw0KK1NZU0NUTF9JTlQoX25ldF9pbmV0X3RjcCwg T0lEX0FVVE8sIHN0cmljdF9yZmMxOTQ4LCBDVExGTEFHX1JXLA0KKyAgICAm dGNwX3N0cmljdF9yZmMxOTQ4LCAwLCAiRGV0ZXJtaW5lcyBpZiBSRkMxOTQ4 IGlzIGZvbGxvd2VkIGV4YWN0bHkiKTsNCisNCitzdGF0aWMgaW50CXRjcF9p c25fcmVzZWVkX2ludGVydmFsID0gMDsNCitTWVNDVExfSU5UKF9uZXRfaW5l dF90Y3AsIE9JRF9BVVRPLCBpc25fcmVzZWVkX2ludGVydmFsLCBDVExGTEFH X1JXLA0KKyAgICAmdGNwX2lzbl9yZXNlZWRfaW50ZXJ2YWwsIDAsICJTZWNv bmRzIGJldHdlZW4gcmVzZWVkaW5nIG9mIElTTiBzZWNyZXQiKTsNCiANCiBz dGF0aWMgdm9pZAl0Y3BfY2xlYXJ0YW9jYWNoZSBfX1AoKHZvaWQpKTsNCiBz dGF0aWMgdm9pZAl0Y3Bfbm90aWZ5IF9fUCgoc3RydWN0IGlucGNiICosIGlu dCkpOw0KQEAgLTE4Niw3ICsxOTEsNiBAQA0KIHsNCiAJaW50IGhhc2hzaXpl ID0gVENCSEFTSFNJWkU7DQogCQ0KLQl0Y3BfaXNzID0gYXJjNHJhbmRvbSgp OwkvKiB3cm9uZywgYnV0IGJldHRlciB0aGFuIGEgY29uc3RhbnQgKi8NCiAJ dGNwX2NjZ2VuID0gMTsNCiAJdGNwX2NsZWFydGFvY2FjaGUoKTsNCiANCkBA IC0xMTEyLDgwICsxMTE2LDEwMSBAQA0KIH0NCiAjZW5kaWYgLyogSU5FVDYg Ki8NCiANCi10Y3Bfc2VxDQotdGNwX25ld19pc24oKQ0KLXsNCi0NCi0JaWYg KHRjcF9zZXFfZ2Vuc2NoZW1lID4gMSB8fCB0Y3Bfc2VxX2dlbnNjaGVtZSA8 IDApDQotCQl0Y3Bfc2VxX2dlbnNjaGVtZSA9IDE7DQotDQotCXN3aXRjaCAo dGNwX3NlcV9nZW5zY2hlbWUpIHsNCi0JY2FzZSAwOgkJCS8qIFJhbmRvbSBw b3NpdGl2ZSBpbmNyZW1lbnRzICovDQotCQl0Y3BfaXNzICs9IFRDUF9JU1NJ TkNSLzI7DQotCQlyZXR1cm4gdGNwX2lzczsNCi0JY2FzZSAxOgkJCS8qIE9w ZW5CU0QgcmFuZG9taXplZCBzY2hlbWUgKi8NCi0JCXJldHVybiB0Y3Bfcm5k aXNzX25leHQoKTsNCi0JZGVmYXVsdDoNCi0JCXBhbmljKCJjYW5ub3QgaGFw cGVuIik7DQotCX0NCi19DQotDQotI2RlZmluZSBUQ1BfUk5ESVNTX1JPVU5E UwkxNg0KLSNkZWZpbmUgVENQX1JORElTU19PVVQJNzIwMA0KLSNkZWZpbmUg VENQX1JORElTU19NQVgJMzAwMDANCi0NCi11X2ludDhfdCB0Y3Bfcm5kaXNz X3Nib3hbMTI4XTsNCi11X2ludDE2X3QgdGNwX3JuZGlzc19tc2I7DQotdV9p bnQxNl90IHRjcF9ybmRpc3NfY250Ow0KLWxvbmcgdGNwX3JuZGlzc19yZXNl ZWQ7DQotDQotdV9pbnQxNl90DQotdGNwX3JuZGlzc19lbmNyeXB0KHZhbCkN Ci0JdV9pbnQxNl90IHZhbDsNCi17DQotCXVfaW50MTZfdCBzdW0gPSAwLCBp Ow0KLSAgDQotCWZvciAoaSA9IDA7IGkgPCBUQ1BfUk5ESVNTX1JPVU5EUzsg aSsrKSB7DQotCQlzdW0gKz0gMHg3OWI5Ow0KLQkJdmFsIF49ICgodV9pbnQx Nl90KXRjcF9ybmRpc3Nfc2JveFsodmFsXnN1bSkgJiAweDdmXSkgPDwgNzsN Ci0JCXZhbCA9ICgodmFsICYgMHhmZikgPDwgNykgfCAodmFsID4+IDgpOw0K LQl9DQogDQotCXJldHVybiB2YWw7DQotfQ0KLQ0KLXZvaWQNCi10Y3Bfcm5k aXNzX2luaXQoKQ0KLXsNCi0Jc3RydWN0IHRpbWV2YWwgdGltZTsNCisvKg0K KyAqIEZvbGxvd2luZyBpcyB3aGVyZSBUQ1AgaW5pdGlhbCBzZXF1ZW5jZSBu dW1iZXIgZ2VuZXJhdGlvbiBvY2N1cnMuDQorICoNCisgKiBUaGVyZSBhcmUg dHdvIHBsYWNlcyB3aGVyZSB3ZSBtdXN0IHVzZSBpbml0aWFsIHNlcXVlbmNl IG51bWJlcnM6DQorICogMS4gIEluIFNZTi1BQ0sgcGFja2V0cy4NCisgKiAy LiAgSW4gU1lOIHBhY2tldHMuDQorICoNCisgKiBUaGUgSVNOcyBpbiBTWU4t QUNLIHBhY2tldHMgaGF2ZSBubyBtb25vdG9uaWNpdHkgcmVxdWlyZW1lbnQs IA0KKyAqIGFuZCBzaG91bGQgYmUgYXMgdW5wcmVkaWN0YWJsZSBhcyBwb3Nz aWJsZSB0byBhdm9pZCB0aGUgcG9zc2liaWxpdHkNCisgKiBvZiBzcG9vZmlu ZyBhbmQvb3IgY29ubmVjdGlvbiBoaWphY2tpbmcuICBUbyBzYXRpc2Z5IHRo aXMNCisgKiByZXF1aXJlbWVudCwgU1lOLUFDSyBJU05zIGFyZSBnZW5lcmF0 ZWQgdmlhIHRoZSBhcmM0cmFuZG9tKCkNCisgKiBmdW5jdGlvbi4gIElmIGV4 YWN0IFJGQyAxOTQ4IGNvbXBsaWFuY2UgaXMgcmVxdWVzdGVkIHZpYSBzeXNj dGwsDQorICogdGhlc2UgSVNOcyB3aWxsIGJlIGdlbmVyYXRlZCBqdXN0IGxp a2UgdGhvc2UgaW4gU1lOIHBhY2tldHMuDQorICoNCisgKiBUaGUgSVNOcyBp biBTWU4gcGFja2V0cyBtdXN0IGJlIG1vbm90b25pYzsgVElNRV9XQUlUIHJl Y3ljbGluZw0KKyAqIGRlcGVuZHMgb24gdGhpcyBwcm9wZXJ0eS4gIEluIGFk ZGl0aW9uLCB0aGVzZSBJU05zIHNob3VsZCBiZQ0KKyAqIHVuZ3Vlc3NhYmxl IHNvIGFzIHRvIHByZXZlbnQgY29ubmVjdGlvbiBoaWphY2tpbmcuICBUbyBz YXRpc2Z5DQorICogdGhlIHJlcXVpcmVtZW50cyBvZiB0aGlzIHNpdHVhdGlv biwgdGhlIGFsZ29yaXRobSBvdXRsaW5lZCBpbg0KKyAqIFJGQyAxOTQ4IGlz IHVzZWQgdG8gZ2VuZXJhdGUgc2VxdWVuY2UgbnVtYmVycy4NCisgKg0KKyAq IEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSB0aGVvcnkgb2Ygb3BlcmF0 aW9uLCBwbGVhc2Ugc2VlDQorICogUkZDIDE5NDguDQorICoNCisgKiBJbXBs ZW1lbnRhdGlvbiBkZXRhaWxzOg0KKyAqDQorICogVGltZSBpcyBiYXNlZCBv ZmYgdGhlIHN5c3RlbSB0aW1lciwgYW5kIGlzIGNvcnJlY3RlZCBzbyB0aGF0 IGl0DQorICogaW5jcmVhc2VzIGJ5IG9uZSBtZWdhYnl0ZSBwZXIgc2Vjb25k LiAgVGhpcyBhbGxvd3MgZm9yIHByb3Blcg0KKyAqIHJlY3ljbGluZyBvbiBo aWdoIHNwZWVkIExBTnMgd2hpbGUgc3RpbGwgbGVhdmluZyBvdmVyIGFuIGhv dXINCisgKiBiZWZvcmUgcm9sbG92ZXIuDQorICoNCisgKiBUd28gc3lzY3Rs cyBjb250cm9sIHRoZSBnZW5lcmF0aW9uIG9mIElTTnM6DQorICoNCisgKiBu ZXQuaW5ldC50Y3AuaXNuX3Jlc2VlZF9pbnRlcnZhbCBjb250cm9scyB0aGUg bnVtYmVyIG9mIHNlY29uZHMNCisgKiBiZXR3ZWVuIHNlZWRpbmcgb2YgaXNu X3NlY3JldC4gIFRoaXMgaXMgbm9ybWFsbHkgc2V0IHRvIHplcm8sDQorICog YXMgcmVzZWVkaW5nIHNob3VsZCBub3QgYmUgbmVjZXNzYXJ5Lg0KKyAqDQor ICogbmV0LmluZXQudGNwLnN0cmljdF9yZmMxOTQ4IGNvbnRyb2xzIHdoZXRo ZXIgUkZDIDE5NDggaXMgZm9sbG93ZWQNCisgKiBzdHJpY3RseS4gIFdoZW4g c3RyaWN0IGNvbXBsaWFuY2UgaXMgcmVxdWVzdGVkLCByZXNlZWRpbmcgaXMN CisgKiBkaXNhYmxlZCBhbmQgU1lOLUFDS3Mgd2lsbCBiZSBnZW5lcmF0ZWQg aW4gdGhlIHNhbWUgbWFubmVyIGFzDQorICogU1lOcy4gIFN0cmljdCBtb2Rl IGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQuDQorICoNCisgKi8NCiANCi0JZ2V0 bWljcm90aW1lKCZ0aW1lKTsNCi0JcmVhZF9yYW5kb21fdW5saW1pdGVkKHRj cF9ybmRpc3Nfc2JveCwgc2l6ZW9mKHRjcF9ybmRpc3Nfc2JveCkpOw0KKyNk ZWZpbmUgSVNOX0JZVEVTX1BFUl9TRUNPTkQgMTA0ODU3Ng0KIA0KLQl0Y3Bf cm5kaXNzX3Jlc2VlZCA9IHRpbWUudHZfc2VjICsgVENQX1JORElTU19PVVQ7 DQotCXRjcF9ybmRpc3NfbXNiID0gdGNwX3JuZGlzc19tc2IgPT0gMHg4MDAw ID8gMCA6IDB4ODAwMDsgDQotCXRjcF9ybmRpc3NfY250ID0gMDsNCi19DQor dV9jaGFyIGlzbl9zZWNyZXRbMzJdOw0KK2ludCBpc25fbGFzdF9yZXNlZWQ7 DQorTUQ1X0NUWCBpc25fY3R4Ow0KIA0KIHRjcF9zZXENCi10Y3Bfcm5kaXNz X25leHQoKQ0KK3RjcF9uZXdfaXNuKHRwKQ0KKwlzdHJ1Y3QgdGNwY2IgKnRw Ow0KIHsNCi0JdV9pbnQzMl90IHRtcDsNCi0Jc3RydWN0IHRpbWV2YWwgdGlt ZTsNCisJdV9pbnQzMl90IG1kNV9idWZmZXJbNF07DQorCXRjcF9zZXEgbmV3 X2lzbjsNCiANCi0JZ2V0bWljcm90aW1lKCZ0aW1lKTsNCi0NCi0gICAgICAg IGlmICh0Y3Bfcm5kaXNzX2NudCA+PSBUQ1BfUk5ESVNTX01BWCB8fA0KLQkg ICAgdGltZS50dl9zZWMgPiB0Y3Bfcm5kaXNzX3Jlc2VlZCkNCi0gICAgICAg ICAgICAgICAgdGNwX3JuZGlzc19pbml0KCk7DQotCQ0KLQl0bXAgPSBhcmM0 cmFuZG9tKCk7DQotDQotCS8qICh0bXAgJiAweDdmZmYpIGVuc3VyZXMgYSAz Mjc2OCBieXRlIGdhcCBiZXR3ZWVuIElTUyAqLw0KLQlyZXR1cm4gKCh0Y3Bf cm5kaXNzX2VuY3J5cHQodGNwX3JuZGlzc19jbnQrKykgfCB0Y3Bfcm5kaXNz X21zYikgPDwxNikgfA0KLQkJKHRtcCAmIDB4N2ZmZik7DQorCS8qIFVzZSBh cmM0cmFuZG9tIGZvciBTWU4tQUNLcyB3aGVuIG5vdCBpbiBleGFjdCBSRkMx OTQ4IG1vZGUuICovDQorCWlmICgoKHRwLT50X3N0YXRlID09IFRDUFNfTElT VEVOKSB8fCAodHAtPnRfc3RhdGUgPT0gVENQU19USU1FX1dBSVQpKQ0KKwkg ICAmJiB0Y3Bfc3RyaWN0X3JmYzE5NDggIT0gMSkNCisJCXJldHVybiBhcmM0 cmFuZG9tKCk7DQorDQorCS8qIFNlZWQgaWYgdGhpcyBpcyB0aGUgZmlyc3Qg dXNlLCByZXNlZWQgaWYgcmVxdWVzdGVkLiAqLw0KKwlpZiAoKGlzbl9sYXN0 X3Jlc2VlZCA9PSAwKSB8fA0KKwkgICAgKCh0Y3Bfc3RyaWN0X3JmYzE5NDgg IT0gMSkgJiYgKHRjcF9pc25fcmVzZWVkX2ludGVydmFsID4gMCkgJiYNCisJ ICAgICAoKCh1X2ludClpc25fbGFzdF9yZXNlZWQgKyAodV9pbnQpdGNwX2lz bl9yZXNlZWRfaW50ZXJ2YWwqaHopDQorCQk8ICh1X2ludCl0aWNrcykpKSB7 DQorCQlyZWFkX3JhbmRvbV91bmxpbWl0ZWQoJmlzbl9zZWNyZXQsIHNpemVv Zihpc25fc2VjcmV0KSk7DQorCQlpc25fbGFzdF9yZXNlZWQgPSB0aWNrczsN CisJfQ0KKwkJDQorCS8qIENvbXB1dGUgdGhlIG1kNSBoYXNoIGFuZCByZXR1 cm4gdGhlIElTTi4gKi8NCisJTUQ1SW5pdCgmaXNuX2N0eCk7DQorCU1ENVVw ZGF0ZSgmaXNuX2N0eCwgKHVfY2hhciAqKSAmdHAtPnRfaW5wY2ItPmlucF9m cG9ydCwgc2l6ZW9mKHVfc2hvcnQpKTsNCisJTUQ1VXBkYXRlKCZpc25fY3R4 LCAodV9jaGFyICopICZ0cC0+dF9pbnBjYi0+aW5wX2xwb3J0LCBzaXplb2Yo dV9zaG9ydCkpOw0KKyNpZmRlZiBJTkVUNg0KKwlpZiAoKHRwLT50X2lucGNi LT5pbnBfdmZsYWcgJiBJTlBfSVBWNikgIT0gMCkgew0KKwkJTUQ1VXBkYXRl KCZpc25fY3R4LCAodV9jaGFyICopICZ0cC0+dF9pbnBjYi0+aW42cF9mYWRk ciwNCisJCQkgIHNpemVvZihzdHJ1Y3QgaW42X2FkZHIpKTsNCisJCU1ENVVw ZGF0ZSgmaXNuX2N0eCwgKHVfY2hhciAqKSAmdHAtPnRfaW5wY2ItPmluNnBf bGFkZHIsDQorCQkJICBzaXplb2Yoc3RydWN0IGluNl9hZGRyKSk7DQorCX0g ZWxzZQ0KKyNlbmRpZg0KKwl7DQorCQlNRDVVcGRhdGUoJmlzbl9jdHgsICh1 X2NoYXIgKikgJnRwLT50X2lucGNiLT5pbnBfZmFkZHIsDQorCQkJICBzaXpl b2Yoc3RydWN0IGluX2FkZHIpKTsNCisJCU1ENVVwZGF0ZSgmaXNuX2N0eCwg KHVfY2hhciAqKSAmdHAtPnRfaW5wY2ItPmlucF9sYWRkciwNCisJCQkgIHNp emVvZihzdHJ1Y3QgaW5fYWRkcikpOw0KKwl9DQorCU1ENVVwZGF0ZSgmaXNu X2N0eCwgKHVfY2hhciAqKSAmaXNuX3NlY3JldCwgc2l6ZW9mKGlzbl9zZWNy ZXQpKTsNCisJTUQ1RmluYWwoKHVfY2hhciAqKSAmbWQ1X2J1ZmZlciwgJmlz bl9jdHgpOw0KKwluZXdfaXNuID0gKHRjcF9zZXEpIG1kNV9idWZmZXJbMF07 DQorCW5ld19pc24gKz0gdGlja3MgKiAoSVNOX0JZVEVTX1BFUl9TRUNPTkQg LyBoeik7DQorCXJldHVybiBuZXdfaXNuOw0KIH0NCi0NCiANCiAvKg0KICAq IFdoZW4gYSBzb3VyY2UgcXVlbmNoIGlzIHJlY2VpdmVkLCBjbG9zZSBjb25n ZXN0aW9uIHdpbmRvdw0KZGlmZiAtdSAtciBuZXRpbmV0Lm9sZC90Y3BfdGlt ZXIuYyBuZXRpbmV0L3RjcF90aW1lci5jDQotLS0gbmV0aW5ldC5vbGQvdGNw X3RpbWVyLmMJVHVlIEp1bCAzMSAyMTo0MzoyMSAyMDAxDQorKysgbmV0aW5l dC90Y3BfdGltZXIuYwlUaHUgQXVnICA5IDAwOjQ1OjUwIDIwMDENCkBAIC0x MzMsOCArMTMzLDYgQEANCiANCiAJdGNwX21heGlkbGUgPSB0Y3Bfa2VlcGNu dCAqIHRjcF9rZWVwaW50dmw7DQogDQotCXRjcF9pc3MgKz0gVENQX0lTU0lO Q1IvUFJfU0xPV0haOw0KLQ0KIAlzcGx4KHMpOw0KIH0NCiANCmRpZmYgLXUg LXIgbmV0aW5ldC5vbGQvdGNwX3VzcnJlcS5jIG5ldGluZXQvdGNwX3VzcnJl cS5jDQotLS0gbmV0aW5ldC5vbGQvdGNwX3VzcnJlcS5jCVR1ZSBKdWwgMzEg MjE6NDM6MjEgMjAwMQ0KKysrIG5ldGluZXQvdGNwX3VzcnJlcS5jCVR1ZSBK dWwgMzEgMjE6NDU6NTggMjAwMQ0KQEAgLTc1OCw3ICs3NTgsNyBAQA0KIAl0 Y3BzdGF0LnRjcHNfY29ubmF0dGVtcHQrKzsNCiAJdHAtPnRfc3RhdGUgPSBU Q1BTX1NZTl9TRU5UOw0KIAljYWxsb3V0X3Jlc2V0KHRwLT50dF9rZWVwLCB0 Y3Bfa2VlcGluaXQsIHRjcF90aW1lcl9rZWVwLCB0cCk7DQotCXRwLT5pc3Mg PSB0Y3BfbmV3X2lzbigpOw0KKwl0cC0+aXNzID0gdGNwX25ld19pc24odHAp Ow0KIAl0Y3Bfc2VuZHNlcWluaXQodHApOw0KIA0KIAkvKg0KQEAgLTg0NCw3 ICs4NDQsNyBAQA0KIAl0Y3BzdGF0LnRjcHNfY29ubmF0dGVtcHQrKzsNCiAJ dHAtPnRfc3RhdGUgPSBUQ1BTX1NZTl9TRU5UOw0KIAljYWxsb3V0X3Jlc2V0 KHRwLT50dF9rZWVwLCB0Y3Bfa2VlcGluaXQsIHRjcF90aW1lcl9rZWVwLCB0 cCk7DQotCXRwLT5pc3MgPSB0Y3BfbmV3X2lzbigpOw0KKwl0cC0+aXNzID0g dGNwX25ld19pc24odHApOw0KIAl0Y3Bfc2VuZHNlcWluaXQodHApOw0KIA0K IAkvKg0KZGlmZiAtdSAtciBuZXRpbmV0Lm9sZC90Y3BfdmFyLmggbmV0aW5l dC90Y3BfdmFyLmgNCi0tLSBuZXRpbmV0Lm9sZC90Y3BfdmFyLmgJVHVlIEp1 bCAzMSAyMTo0MzoyMSAyMDAxDQorKysgbmV0aW5ldC90Y3BfdmFyLmgJVGh1 IEF1ZyAgOSAwMDo1NToxNiAyMDAxDQpAQCAtNDEwLDExICs0MTAsNyBAQA0K IGV4dGVybglzdHJ1Y3QgcHJfdXNycmVxcyB0Y3BfdXNycmVxczsNCiBleHRl cm4JdV9sb25nIHRjcF9zZW5kc3BhY2U7DQogZXh0ZXJuCXVfbG9uZyB0Y3Bf cmVjdnNwYWNlOw0KLXZvaWQJdGNwX3JuZGlzc19pbml0IF9fUCgodm9pZCkp Ow0KLXRjcF9zZXEJdGNwX3JuZGlzc19uZXh0IF9fUCgodm9pZCkpOw0KLXVf aW50MTZfdA0KLQl0Y3Bfcm5kaXNzX2VuY3J5cHQgX19QKCh1X2ludDE2X3Qp KTsNCi10Y3Bfc2VxIHRjcF9uZXdfaXNuIF9fUCgodm9pZCkpOw0KK3RjcF9z ZXEgdGNwX25ld19pc24gX19QKChzdHJ1Y3QgdGNwY2IgKikpOw0KIA0KICNl bmRpZiAvKiBfS0VSTkVMICovDQo= --0-1767808683-997421874=:93492-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message