Return-Path: Delivered-To: apmail-httpd-users-archive@www.apache.org Received: (qmail 12762 invoked from network); 10 Dec 2004 18:25:11 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 10 Dec 2004 18:25:11 -0000 Received: (qmail 4419 invoked by uid 500); 10 Dec 2004 18:24:39 -0000 Delivered-To: apmail-httpd-users-archive@httpd.apache.org Received: (qmail 4401 invoked by uid 500); 10 Dec 2004 18:24:38 -0000 Mailing-List: contact users-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: users@httpd.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list users@httpd.apache.org Received: (qmail 4384 invoked by uid 99); 10 Dec 2004 18:24:38 -0000 X-ASF-Spam-Status: No, hits=1.2 required=10.0 tests=FROM_NO_LOWER X-Spam-Check-By: apache.org Received-SPF: pass (hermes.apache.org: local policy) Received: from dns24-ext.dfas.mil (HELO dns24.dfas.mil) (206.39.12.245) by apache.org (qpsmtpd/0.28) with ESMTP; Fri, 10 Dec 2004 10:24:37 -0800 Received: from iso-e2-w-1.DS.DFAS.MIL (iso-e2-w-1.ds.dfas.mil [158.18.1.127]) by dns24.dfas.mil with ESMTP id iBAIOUuf025386 for ; Fri, 10 Dec 2004 13:24:30 -0500 (EST) X-MimeOLE: Produced By Microsoft Exchange V6.0.6563.0 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C4DEE5.7D0425E4" Date: Fri, 10 Dec 2004 13:24:29 -0500 Message-ID: <932ACD88A2215048AB039F28F23CC143047ADD22@iso-e2-w-1.ds.dfas.mil> X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Thread-Topic: Apache SSL Feature - Please Advise Thread-Index: AcTP2vyLYBYZTKk+Rdmg6xocRU5ZcAPAwruQ From: "TAYLOR, TIM \(CONTRACTOR\)" To: "Ben Laurie" Cc: , "KABAT, ED" , "ORTON, JOHN" X-Virus-Checked: Checked Subject: [users@httpd] RE: Apache SSL Feature - Please Advise (PATCH for mod_ssl) X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N ------_=_NextPart_001_01C4DEE5.7D0425E4 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Ben,=20 I have attached three patch versions. Writing the code is not nearly = as difficult as figuring out the best way to go. Patch 1 (proof of concept) source: ssl_engine_init.c, ssl_engine_kernel.c I really don't expect this one to go simply because I merely changed the = meaning of the existing directives to what I had initially assumed when = I bumped into the limitation. I simply force SSLCACertificateFile to be = used for the cert store load for client authentication only and force = SSLCACertificatePath to be used for the client_CA STACK_OF(X509_NAME) = only. This patch requires both directives be configured if client verify = is enabled. Obviously, this one is not downward compatible with existing = configurations. Patch 2 (special use case) source: ssl_engine_init.c, ssl_engine_kernel.c Again, no new directives but if only one of the SSLCACertificate* = directives are specified, mod_ssl will behave as it did before (load = certs into the cert store and load names into the client_CA stack list). = However, if both are specified it behaves like patch 1. This will I = think preserve downward compatibility with most configs. I like this one = because intuitively it is what I would expect. Wasn't the hashing of CA = names for symbolic links intended to expedite the creation of the opaque = DistinguishedName list of the handshake CertificateRequest message = (RFC2246)? However, I realize it is not 100% downward compatible. Patch 3 (new config) source: ssl_engine_init.c, ssl_engine_kernel.c, ssl_engine_config.c, = mod_ssl.c, mod_ssl.h Two new directives, SSLCADNRequestFile and SSLCADNRequestPath. I figured = I might as well give the same flexibility. If the new directives are not = specified old behavior continues. If either or both SSLCADNRequest* is = configured, they would configure the client_CA stack ONLY and any = SSLCACertificate* directive(s) will be used for the cert store load = ONLY. The benefit here is complete downward compatibility. No = requirement to use the new directives and no change in meaning for the = use of existing directives (except when new is used too). I look for your recommendation, Ben, and solicit comments of those = interested. Please note this capability is important to us in the U.S. = Department of Defense. It saves CRL bandwidth and processing, as well = as, eliminates user questions and confusion for thousands. regards, tt 317-510-5987 -----Original Message----- From: Ben Laurie [mailto:ben@algroup.co.uk] Sent: Sunday, November 21, 2004 10:01 AM To: TAYLOR, TIM (CONTRACTOR) Subject: Re: Apache SSL Feature - Please Advise TAYLOR, TIM (CONTRACTOR) wrote: > Hello Ben. >=20 > I have a situation where I believe Apache is limiting an SSL > capability that I need to be able to use. I posted the following on > the apache user mail list but got no response. I want to know if I > should look into making the change myself and present it as a patch, > just open a bug report or is there some other means for requesting a > new feature that won't evoke derisive laughter. >=20 > My post to [users@httpd]: First of all, I have already asked on the > OpenSSL and was referred to Apache, so here goes. >=20 > Premise 1 SSL/TLS Handshake has a certificateRequest message (for > client authentication) that will prompt the browser for a > certificate. Now the Draft (SSL)/RFC (TLS) state that in the > certificateRequest the server may include a list of acceptable CA's. >=20 >=20 > Premise 2 After receiving a certificate from the client in response > to a certificate request SSL/TLS will perform validation (not out of > date, not a forgery, and, if configured, not revoked). During > validation a trust list of CAs is consulted to validate the > certificate chain. >=20 > My Problem My organization has a Root CA which has subordinate > (intermediate) CAs of two different classes. I only want to accept > certificates from one of the subordinate CA classes. Mind you that > both classes issue RSA-signing certificates. This causes my end > users, who have a certificate from each of the two subordinate CA > classes, to get prompted to pick a certificate to authenticate with. > I have good reasons for needing to eliminate the selection prompt > (user confusion, CRL bandwidth use, etc). Using functionality of > premise 1, I can specify only (let's say) Class A CAs in the > certificateRequest message. If don't include the root CA in that > list, I see the browser response I want, only Class A Certificates > are eligible (and presented to user) for use. However, It won't > validate because of the lack of a root CA. If I include the Root CA > in the premise 1 list with the Class A CA's, the user is presented > with both Class A and Class B certificates, obviously because both > are valid for that Root CA trust anchor. :-( That's right, darned if > I do and darned if I don't. >=20 > Apache SSL Configuration Limitation SSLCACertificateFile and > SSLCACertificatePath are documented as interchangeable. I have found > no configuration of directives that will give me separate control of > the certificateRequest (premise 1) and the validation trust list > (premise 2). They are treated as one and the same and I recognize > that for most that is fine. >=20 > Openssl Functionality Openssl development has stated that openssl > does not force them to be the same. >=20 > Therefore, I am led to believe that apache is using the same list for > both (premise) purposes. Is this an opportunity for a new Apache SSL > directive? I am thinking of a new directive for trust anchors only. > The code could be changed to look for the setting for this directive > at path validation time, and if not null, load any CAs defined there > (file/path) into the context cert store.This would be a fairly simple > change and would keep backward compatibility with existing SSL > configurations. >=20 > How would you recommend I proceed? Apologies for the delay, I've been travelling. If you can write the code, then by all means send me a patch. Cheers, Ben. --=20 http://www.apache-ssl.org/ben.html http://www.thebunker.net/ "There is no limit to what a man can do or how far he can go if he doesn't mind who gets the credit." - Robert Woodruff ------_=_NextPart_001_01C4DEE5.7D0425E4 Content-Type: application/octet-stream; name="patch3.diff" Content-Transfer-Encoding: base64 Content-Description: patch3.diff Content-Disposition: attachment; filename="patch3.diff" ZGlmZiAtcnUgaHR0cGQtMi4wLjUyLXByaXN0aW5lL21vZHVsZXMvc3NsL21vZF9zc2wuYyBodHRw ZC0yLjAuNTItcGF0Y2gzL21vZHVsZXMvc3NsL21vZF9zc2wuYw0KLS0tIGh0dHBkLTIuMC41Mi1w cmlzdGluZS9tb2R1bGVzL3NzbC9tb2Rfc3NsLmMJTW9uIEF1ZyAyMyAxMDoxODo1NCAyMDA0DQor KysgaHR0cGQtMi4wLjUyLXBhdGNoMy9tb2R1bGVzL3NzbC9tb2Rfc3NsLmMJVGh1IERlYyAgOSAx OTowNDowNCAyMDA0DQpAQCAtMTExLDEwICsxMTEsMTYgQEANCiAgICAgICAgICAgICAgICAgIihg L3BhdGgvdG8vZmlsZScgLSBQRU0gZW5jb2RlZCkiKQ0KICAgICBTU0xfQ01EX0FMTChDQUNlcnRp ZmljYXRlUGF0aCwgVEFLRTEsDQogICAgICAgICAgICAgICAgICJTU0wgQ0EgQ2VydGlmaWNhdGUg cGF0aCAiDQotICAgICAgICAgICAgICAgICIoYC9wYXRoL3RvL2RpcicgLSBjb250YWlucyBQRU0g ZW5jb2RlZCBmaWxlcykiKQ0KKyAgICAgICAgICAgICAgICAiKGAvcGF0aC90by9kaXInIC0gY29u dGFpbnMgUEVNIGVuY29kZWQgZmlsZXMgZm9yIGNsaWVudCBhdXRoZW50aWNhdGlvbikiKQ0KICAg ICBTU0xfQ01EX0FMTChDQUNlcnRpZmljYXRlRmlsZSwgVEFLRTEsDQogICAgICAgICAgICAgICAg ICJTU0wgQ0EgQ2VydGlmaWNhdGUgZmlsZSAiDQotICAgICAgICAgICAgICAgICIoYC9wYXRoL3Rv L2ZpbGUnIC0gUEVNIGVuY29kZWQpIikNCisgICAgICAgICAgICAgICAgIihgL3BhdGgvdG8vZmls ZScgLSBQRU0gZW5jb2RlZCBmb3IgY2xpZW50IGF1dGhlbnRpY2F0aW9uKSIpDQorICAgIFNTTF9D TURfQUxMKENBRE5SZXF1ZXN0UGF0aCwgVEFLRTEsDQorICAgICAgICAgICAgICAgICJTU0wgQ0Eg RGlzdGluZ3Vpc2hlZCBOYW1lIHBhdGggIg0KKyAgICAgICAgICAgICAgICAiKGAvcGF0aC90by9k aXInIC0gc3ltbGluayBoYXNoZXMgdG8gUEVNIG9mIGFjY2VwdGFibGUgQ0EgbmFtZXMgdG8gcmVx dWVzdCkiKQ0KKyAgICBTU0xfQ01EX0FMTChDQUROUmVxdWVzdEZpbGUsIFRBS0UxLA0KKyAgICAg ICAgICAgICAgICAiU1NMIENBIERpc3Rpbmd1aXNoZWQgTmFtZSBmaWxlICINCisgICAgICAgICAg ICAgICAgIihgL3BhdGgvdG8vZmlsZScgLSBQRU0gZW5jb2RlZCB0byBkZXJpdmUgYWNjZXB0YWJs ZSBDQSBuYW1lcyB0byByZXF1ZXN0KSIpDQogICAgIFNTTF9DTURfU1JWKENBUmV2b2NhdGlvblBh dGgsIFRBS0UxLA0KICAgICAgICAgICAgICAgICAiU1NMIENBIENlcnRpZmljYXRlIFJldm9jYXRp b24gTGlzdCAoQ1JMKSBwYXRoICINCiAgICAgICAgICAgICAgICAgIihgL3BhdGgvdG8vZGlyJyAt IGNvbnRhaW5zIFBFTSBlbmNvZGVkIGZpbGVzKSIpDQpAQCAtMTYwLDYgKzE2NiwxMiBAQA0KICAg ICBTU0xfQ01EX1NSVihQcm94eUNBQ2VydGlmaWNhdGVQYXRoLCBUQUtFMSwNCiAgICAgICAgICAg ICAgICAiU1NMIFByb3h5OiBkaXJlY3RvcnkgY29udGFpbmluZyBzZXJ2ZXIgY2VydGlmaWNhdGVz ICINCiAgICAgICAgICAgICAgICAiKGAvcGF0aC90by9kaXInIC0gY29udGFpbnMgUEVNIGVuY29k ZWQgY2VydGlmaWNhdGVzKSIpDQorICAgIFNTTF9DTURfU1JWKFByb3h5Q0FETlJlcXVlc3RGaWxl LCBUQUtFMSwNCisgICAgICAgICAgICAgICAiU1NMIFByb3h5OiBmaWxlIGNvbnRhaW5pbmcgY2Vy dGlmaWNhdGVzIHRvIGRlcml2ZSBhY2NlcHRhYmxlIENBIG5hbWUgaGFzaGVzICINCisgICAgICAg ICAgICAgICAiKGAvcGF0aC90by9maWxlJyAtIFBFTSBlbmNvZGVkIGNlcnRpZmljYXRlcykiKQ0K KyAgICBTU0xfQ01EX1NSVihQcm94eUNBRE5SZXF1ZXN0UGF0aCwgVEFLRTEsDQorICAgICAgICAg ICAgICAgIlNTTCBQcm94eTogZGlyZWN0b3J5IGNvbnRhaW5pbmcgYWNjZXB0YWJsZSBDQSBuYW1l IGhhc2hlcyAiDQorICAgICAgICAgICAgICAgIihgL3BhdGgvdG8vZGlyJyAtIGNvbnRhaW5zIFBF TSBlbmNvZGVkIGNlcnRpZmljYXRlcykiKQ0KICAgICBTU0xfQ01EX1NSVihQcm94eUNBUmV2b2Nh dGlvblBhdGgsIFRBS0UxLA0KICAgICAgICAgICAgICAgICAiU1NMIFByb3h5OiBDQSBDZXJ0aWZp Y2F0ZSBSZXZvY2F0aW9uIExpc3QgKENSTCkgcGF0aCAiDQogICAgICAgICAgICAgICAgICIoYC9w YXRoL3RvL2RpcicgLSBjb250YWlucyBQRU0gZW5jb2RlZCBmaWxlcykiKQ0KPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0NCmRpZmYgLXJ1IGh0dHBkLTIuMC41Mi1wcmlzdGlu ZS9tb2R1bGVzL3NzbC9tb2Rfc3NsLmggaHR0cGQtMi4wLjUyLXBhdGNoMy9tb2R1bGVzL3NzbC9t b2Rfc3NsLmgNCi0tLSBodHRwZC0yLjAuNTItcHJpc3RpbmUvbW9kdWxlcy9zc2wvbW9kX3NzbC5o CUZyaSBBdWcgMjcgMDQ6MDM6MjQgMjAwNA0KKysrIGh0dHBkLTIuMC41Mi1wYXRjaDMvbW9kdWxl cy9zc2wvbW9kX3NzbC5oCVRodSBEZWMgIDkgMTk6MDQ6MDQgMjAwNA0KQEAgLTQ0Miw2ICs0NDIs MjAgQEANCiAgICAgY29uc3QgY2hhciAgKmNhX2NlcnRfcGF0aDsNCiAgICAgY29uc3QgY2hhciAg KmNhX2NlcnRfZmlsZTsNCiANCisgICAgLyoNCisgICAgICogQWNjZXB0YWJsZSBDQSBuYW1lcyBm b3IgY2VydGlmaWNhdGVSZXF1ZXN0IG1lc3NhZ2UuIChSRkMzODIwKSANCisgICAgICogVGhlc2Ug dHdvIHdlcmUgYWRkZWQgdG8gc3VwcG9ydCBzcGVjaWZ5aW5nIGEgQ0EgbmFtZQ0KKyAgICAgKiBs aXN0IHRoYXQgbWF5IG9yIG1heSBub3QgaW5jbHVkZSBhIHNlbGYtc2lnbmVkIHJvb3QgQ0EuDQor ICAgICAqIFRoaXMgYWxsb3dzIHRoZSBhYmlsaXR5IHRvIGNyZWF0ZSBhIGxpbWl0ZWQgYXV0aG9y aXphdGlvbg0KKyAgICAgKiBzcGFjZSBnaXZlbiB0aGUgKHBvc3NpYmxlKSBncm93dGggb2YgY29t cGxleCB0cnVzdCBoaWVyYXJjaGllcy4NCisgICAgICoNCisgICAgICogRm9yIGJhY2t3YXJkIGNv bXBhdGliaWxpdHksIGlmIFNTTENBRE5SZXF1ZXN0KiBpcyBub3Qgc3BlY2lmaWVkDQorICAgICAq IHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHVzaW5nIFNTTENBQ2VydGlmaWNhdGUqIGZvciBib3Ro IHRydXN0DQorICAgICAqIGFuZCBjZXJ0aWZpY2F0ZVJlcXVlc3QgKGNsaWVudF9DQSBsaXN0KSB3 aWxsIG9jY3VyLg0KKyAgICAgKi8NCisgICAgY29uc3QgY2hhciAgKmNhX25hbWVfcGF0aDsNCisg ICAgY29uc3QgY2hhciAgKmNhX25hbWVfZmlsZTsNCisNCiAgICAgY29uc3QgY2hhciAgKmNpcGhl cl9zdWl0ZTsNCiANCiAgICAgLyogZm9yIGNsaWVudCBvciBkb3duc3RyZWFtIHNlcnZlciBhdXRo ZW50aWNhdGlvbiAqLw0KQEAgLTUwMiw2ICs1MTYsOCBAQA0KICAgICBpbnQgICAgICAgICAgIG5W ZXJpZnlEZXB0aDsNCiAgICAgY29uc3QgY2hhciAgICpzekNBQ2VydGlmaWNhdGVQYXRoOw0KICAg ICBjb25zdCBjaGFyICAgKnN6Q0FDZXJ0aWZpY2F0ZUZpbGU7DQorICAgIGNvbnN0IGNoYXIgICAq c3pDQUROUmVxdWVzdFBhdGg7DQorICAgIGNvbnN0IGNoYXIgICAqc3pDQUROUmVxdWVzdEZpbGU7 DQogICAgIGNvbnN0IGNoYXIgICAqc3pVc2VyTmFtZTsNCiB9IFNTTERpckNvbmZpZ1JlYzsNCiAN CkBAIC01MzQsNiArNTUwLDggQEANCiBjb25zdCBjaGFyICAqc3NsX2NtZF9TU0xDZXJ0aWZpY2F0 ZUNoYWluRmlsZShjbWRfcGFybXMgKiwgdm9pZCAqLCBjb25zdCBjaGFyICopOw0KIGNvbnN0IGNo YXIgICpzc2xfY21kX1NTTENBQ2VydGlmaWNhdGVQYXRoKGNtZF9wYXJtcyAqLCB2b2lkICosIGNv bnN0IGNoYXIgKik7DQogY29uc3QgY2hhciAgKnNzbF9jbWRfU1NMQ0FDZXJ0aWZpY2F0ZUZpbGUo Y21kX3Bhcm1zICosIHZvaWQgKiwgY29uc3QgY2hhciAqKTsNCitjb25zdCBjaGFyICAqc3NsX2Nt ZF9TU0xDQUROUmVxdWVzdFBhdGgoY21kX3Bhcm1zICosIHZvaWQgKiwgY29uc3QgY2hhciAqKTsN Citjb25zdCBjaGFyICAqc3NsX2NtZF9TU0xDQUROUmVxdWVzdEZpbGUoY21kX3Bhcm1zICosIHZv aWQgKiwgY29uc3QgY2hhciAqKTsNCiBjb25zdCBjaGFyICAqc3NsX2NtZF9TU0xDQVJldm9jYXRp b25QYXRoKGNtZF9wYXJtcyAqLCB2b2lkICosIGNvbnN0IGNoYXIgKik7DQogY29uc3QgY2hhciAg KnNzbF9jbWRfU1NMQ0FSZXZvY2F0aW9uRmlsZShjbWRfcGFybXMgKiwgdm9pZCAqLCBjb25zdCBj aGFyICopOw0KIGNvbnN0IGNoYXIgICpzc2xfY21kX1NTTFZlcmlmeUNsaWVudChjbWRfcGFybXMg Kiwgdm9pZCAqLCBjb25zdCBjaGFyICopOw0KQEAgLTU1Myw2ICs1NzEsOCBAQA0KIGNvbnN0IGNo YXIgICpzc2xfY21kX1NTTFByb3h5VmVyaWZ5RGVwdGgoY21kX3Bhcm1zICosIHZvaWQgKiwgY29u c3QgY2hhciAqKTsNCiBjb25zdCBjaGFyICAqc3NsX2NtZF9TU0xQcm94eUNBQ2VydGlmaWNhdGVQ YXRoKGNtZF9wYXJtcyAqLCB2b2lkICosIGNvbnN0IGNoYXIgKik7DQogY29uc3QgY2hhciAgKnNz bF9jbWRfU1NMUHJveHlDQUNlcnRpZmljYXRlRmlsZShjbWRfcGFybXMgKiwgdm9pZCAqLCBjb25z dCBjaGFyICopOw0KK2NvbnN0IGNoYXIgICpzc2xfY21kX1NTTFByb3h5Q0FETlJlcXVlc3RQYXRo KGNtZF9wYXJtcyAqLCB2b2lkICosIGNvbnN0IGNoYXIgKik7DQorY29uc3QgY2hhciAgKnNzbF9j bWRfU1NMUHJveHlDQUROUmVxdWVzdEZpbGUoY21kX3Bhcm1zICosIHZvaWQgKiwgY29uc3QgY2hh ciAqKTsNCiBjb25zdCBjaGFyICAqc3NsX2NtZF9TU0xQcm94eUNBUmV2b2NhdGlvblBhdGgoY21k X3Bhcm1zICosIHZvaWQgKiwgY29uc3QgY2hhciAqKTsNCiBjb25zdCBjaGFyICAqc3NsX2NtZF9T U0xQcm94eUNBUmV2b2NhdGlvbkZpbGUoY21kX3Bhcm1zICosIHZvaWQgKiwgY29uc3QgY2hhciAq KTsNCiBjb25zdCBjaGFyICAqc3NsX2NtZF9TU0xQcm94eU1hY2hpbmVDZXJ0aWZpY2F0ZVBhdGgo Y21kX3Bhcm1zICosIHZvaWQgKiwgY29uc3QgY2hhciAqKTsNCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09DQpkaWZmIC1ydSBodHRwZC0yLjAuNTItcHJpc3RpbmUvbW9kdWxl cy9zc2wvc3NsX2VuZ2luZV9jb25maWcuYyBodHRwZC0yLjAuNTItcGF0Y2gzL21vZHVsZXMvc3Ns L3NzbF9lbmdpbmVfY29uZmlnLmMNCi0tLSBodHRwZC0yLjAuNTItcHJpc3RpbmUvbW9kdWxlcy9z c2wvc3NsX2VuZ2luZV9jb25maWcuYwlNb24gQXVnIDIzIDEwOjE4OjU0IDIwMDQNCisrKyBodHRw ZC0yLjAuNTItcGF0Y2gzL21vZHVsZXMvc3NsL3NzbF9lbmdpbmVfY29uZmlnLmMJVGh1IERlYyAg OSAxOTowNDowNCAyMDA0DQpAQCAtMTIyLDYgKzEyMiw4IEBADQogDQogICAgIG1jdHgtPmF1dGgu Y2FfY2VydF9wYXRoICAgPSBOVUxMOw0KICAgICBtY3R4LT5hdXRoLmNhX2NlcnRfZmlsZSAgID0g TlVMTDsNCisgICAgbWN0eC0+YXV0aC5jYV9uYW1lX3BhdGggICA9IE5VTEw7IC8qIGFkZGVkIHRv IHN1cHBvcnQgc2VwYXJhdGUgY29udHJvbCAqLw0KKyAgICBtY3R4LT5hdXRoLmNhX25hbWVfZmls ZSAgID0gTlVMTDsgLyogb2YgY2VydGlmaWNhdGUgcmVxdWVzdCBtZXNzYWdlLiAgICovDQogICAg IG1jdHgtPmF1dGguY2lwaGVyX3N1aXRlICAgPSBOVUxMOw0KICAgICBtY3R4LT5hdXRoLnZlcmlm eV9kZXB0aCAgID0gVU5TRVQ7DQogICAgIG1jdHgtPmF1dGgudmVyaWZ5X21vZGUgICAgPSBTU0xf Q1ZFUklGWV9VTlNFVDsNCkBAIC0yMTcsNiArMjE5LDggQEANCiANCiAgICAgY2ZnTWVyZ2VTdHJp bmcoYXV0aC5jYV9jZXJ0X3BhdGgpOw0KICAgICBjZmdNZXJnZVN0cmluZyhhdXRoLmNhX2NlcnRf ZmlsZSk7DQorICAgIGNmZ01lcmdlU3RyaW5nKGF1dGguY2FfbmFtZV9wYXRoKTsNCisgICAgY2Zn TWVyZ2VTdHJpbmcoYXV0aC5jYV9uYW1lX2ZpbGUpOw0KICAgICBjZmdNZXJnZVN0cmluZyhhdXRo LmNpcGhlcl9zdWl0ZSk7DQogICAgIGNmZ01lcmdlSW50KGF1dGgudmVyaWZ5X2RlcHRoKTsNCiAg ICAgY2ZnTWVyZ2UoYXV0aC52ZXJpZnlfbW9kZSwgU1NMX0NWRVJJRllfVU5TRVQpOw0KQEAgLTI4 Niw2ICsyOTAsOCBAQA0KIA0KICAgICBkYy0+c3pDQUNlcnRpZmljYXRlUGF0aCAgICA9IE5VTEw7 DQogICAgIGRjLT5zekNBQ2VydGlmaWNhdGVGaWxlICAgID0gTlVMTDsNCisgICAgZGMtPnN6Q0FE TlJlcXVlc3RQYXRoICAgICAgPSBOVUxMOw0KKyAgICBkYy0+c3pDQUROUmVxdWVzdEZpbGUgICAg ICA9IE5VTEw7DQogICAgIGRjLT5zelVzZXJOYW1lICAgICAgICAgICAgID0gTlVMTDsNCiANCiAg ICAgcmV0dXJuIGRjOw0KQEAgLTMyMyw2ICszMjksOCBAQA0KIA0KICAgICBjZmdNZXJnZVN0cmlu ZyhzekNBQ2VydGlmaWNhdGVQYXRoKTsNCiAgICAgY2ZnTWVyZ2VTdHJpbmcoc3pDQUNlcnRpZmlj YXRlRmlsZSk7DQorICAgIGNmZ01lcmdlU3RyaW5nKHN6Q0FETlJlcXVlc3RQYXRoKTsNCisgICAg Y2ZnTWVyZ2VTdHJpbmcoc3pDQUROUmVxdWVzdEZpbGUpOw0KICAgICBjZmdNZXJnZVN0cmluZyhz elVzZXJOYW1lKTsNCiANCiAgICAgcmV0dXJuIG1yZzsNCkBAIC04MjcsNiArODM1LDMyIEBADQog ICAgIHJldHVybiBOVUxMOw0KIH0NCiANCitjb25zdCBjaGFyICpzc2xfY21kX1NTTENBRE5SZXF1 ZXN0UGF0aChjbWRfcGFybXMgKmNtZCwgdm9pZCAqZGNmZywgY29uc3QgY2hhciAqYXJnKSB7DQor ICAgIFNTTFNydkNvbmZpZ1JlYyAqc2MgPSBteVNydkNvbmZpZyhjbWQtPnNlcnZlcik7DQorICAg IGNvbnN0IGNoYXIgKmVycjsNCisNCisgICAgaWYgKChlcnIgPSBzc2xfY21kX2NoZWNrX2Rpcihj bWQsICZhcmcpKSkgew0KKyAgICAgICAgcmV0dXJuIGVycjsNCisgICAgfQ0KKw0KKyAgICBzYy0+ c2VydmVyLT5hdXRoLmNhX25hbWVfcGF0aCA9IGFyZzsNCisNCisgICAgcmV0dXJuIE5VTEw7DQor fQ0KKw0KK2NvbnN0IGNoYXIgKnNzbF9jbWRfU1NMQ0FETlJlcXVlc3RGaWxlKGNtZF9wYXJtcyAq Y21kLCB2b2lkICpkY2ZnLCBjb25zdCBjaGFyICphcmcpIHsNCisgICAgU1NMU3J2Q29uZmlnUmVj ICpzYyA9IG15U3J2Q29uZmlnKGNtZC0+c2VydmVyKTsNCisgICAgY29uc3QgY2hhciAqZXJyOw0K Kw0KKyAgICBpZiAoKGVyciA9IHNzbF9jbWRfY2hlY2tfZmlsZShjbWQsICZhcmcpKSkgew0KKyAg ICAgICAgcmV0dXJuIGVycjsNCisgICAgfQ0KKw0KKyAgICBzYy0+c2VydmVyLT5hdXRoLmNhX25h bWVfZmlsZSA9IGFyZzsNCisNCisgICAgcmV0dXJuIE5VTEw7DQorfQ0KKw0KIGNvbnN0IGNoYXIg KnNzbF9jbWRfU1NMQ0FSZXZvY2F0aW9uUGF0aChjbWRfcGFybXMgKmNtZCwNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqZGNmZywNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqYXJnKQ0KQEAgLTEzMTQsNiAr MTM0OCwyMSBAQA0KICAgICByZXR1cm4gTlVMTDsNCiB9DQogDQorY29uc3QgY2hhciAqc3NsX2Nt ZF9TU0xQcm94eUNBRE5SZXF1ZXN0RmlsZShjbWRfcGFybXMgKmNtZCwNCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRjZmcsDQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICphcmcpIHsNCisgICAg U1NMU3J2Q29uZmlnUmVjICpzYyA9IG15U3J2Q29uZmlnKGNtZC0+c2VydmVyKTsNCisgICAgY29u c3QgY2hhciAqZXJyOw0KKw0KKyAgICBpZiAoKGVyciA9IHNzbF9jbWRfY2hlY2tfZmlsZShjbWQs ICZhcmcpKSkgew0KKyAgICAgICAgcmV0dXJuIGVycjsNCisgICAgfQ0KKw0KKyAgICBzYy0+cHJv eHktPmF1dGguY2FfbmFtZV9maWxlID0gYXJnOw0KKw0KKyAgICByZXR1cm4gTlVMTDsNCit9DQor DQogY29uc3QgY2hhciAqc3NsX2NtZF9TU0xQcm94eUNBQ2VydGlmaWNhdGVQYXRoKGNtZF9wYXJt cyAqY21kLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 b2lkICpkY2ZnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBjaGFyICphcmcpDQpAQCAtMTMyOCw2ICsxMzc3LDIxIEBADQogICAgIHNjLT5wcm94 eS0+YXV0aC5jYV9jZXJ0X3BhdGggPSBhcmc7DQogDQogICAgIHJldHVybiBOVUxMOw0KK30NCisN Citjb25zdCBjaGFyICpzc2xfY21kX1NTTFByb3h5Q0FETlJlcXVlc3RQYXRoKGNtZF9wYXJtcyAq Y21kLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAq ZGNmZywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIgKmFyZykgew0KKyAgICBTU0xTcnZDb25maWdSZWMgKnNjID0gbXlTcnZDb25maWcoY21k LT5zZXJ2ZXIpOw0KKyAgICBjb25zdCBjaGFyICplcnI7DQorDQorICAgIGlmICgoZXJyID0gc3Ns X2NtZF9jaGVja19kaXIoY21kLCAmYXJnKSkpIHsNCisgICAgICAgIHJldHVybiBlcnI7DQorICAg IH0NCisNCisgICAgc2MtPnByb3h5LT5hdXRoLmNhX25hbWVfcGF0aCA9IGFyZzsNCisNCisgICAg cmV0dXJuIE5VTEw7DQogfQ0KIA0KIGNvbnN0IGNoYXIgKnNzbF9jbWRfU1NMUHJveHlDQVJldm9j YXRpb25QYXRoKGNtZF9wYXJtcyAqY21kLA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NCmRpZmYgLXJ1IGh0dHBkLTIuMC41Mi1wcmlzdGluZS9tb2R1bGVzL3NzbC9zc2xf ZW5naW5lX2luaXQuYyBodHRwZC0yLjAuNTItcGF0Y2gzL21vZHVsZXMvc3NsL3NzbF9lbmdpbmVf aW5pdC5jDQotLS0gaHR0cGQtMi4wLjUyLXByaXN0aW5lL21vZHVsZXMvc3NsL3NzbF9lbmdpbmVf aW5pdC5jCU1vbiBKdW4gIDcgMDU6MTg6MzcgMjAwNA0KKysrIGh0dHBkLTIuMC41Mi1wYXRjaDMv bW9kdWxlcy9zc2wvc3NsX2VuZ2luZV9pbml0LmMJVGh1IERlYyAgOSAxOTowNDowNCAyMDA0DQpA QCAtNTMyLDEyICs1MzIsMjAgQEANCiAgICAgICAgICAgICBzc2xfZGllKCk7DQogICAgICAgICB9 DQogDQotICAgICAgICBjYV9saXN0ID0gc3NsX2luaXRfRmluZENBTGlzdChzLCBwdGVtcCwNCisJ aWYgKG1jdHgtPmF1dGguY2FfbmFtZV9maWxlIHx8IG1jdHgtPmF1dGguY2FfbmFtZV9wYXRoKSB7 DQorCSAgICBhcF9sb2dfZXJyb3IoQVBMT0dfTUFSSywgQVBMT0dfREVCVUcsIDAsIHMsDQorCQkg ICAgICAiQ29uZmlndXJpbmcgY2VydGlmaWNhdGVSZXF1ZXN0IG1lc3NhZ2UiKTsNCisNCisgICAg ICAgICAgICBjYV9saXN0ID0gc3NsX2luaXRfRmluZENBTGlzdChzLCBwdGVtcCwNCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1jdHgtPmF1dGguY2FfbmFtZV9maWxlLA0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWN0eC0+YXV0aC5jYV9uYW1l X3BhdGgpOw0KKwl9IGVsc2UNCisgICAgICAgICAgICBjYV9saXN0ID0gc3NsX2luaXRfRmluZENB TGlzdChzLCBwdGVtcCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1j dHgtPmF1dGguY2FfY2VydF9maWxlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWN0eC0+YXV0aC5jYV9jZXJ0X3BhdGgpOw0KICAgICAgICAgaWYgKCFjYV9saXN0KSB7 DQogICAgICAgICAgICAgYXBfbG9nX2Vycm9yKEFQTE9HX01BUkssIEFQTE9HX0VSUiwgMCwgcywN Ci0gICAgICAgICAgICAgICAgICAgICJVbmFibGUgdG8gZGV0ZXJtaW5lIGxpc3Qgb2YgYXZhaWxh YmxlICINCisgICAgICAgICAgICAgICAgICAgICJVbmFibGUgdG8gZGV0ZXJtaW5lIGxpc3Qgb2Yg YWNjZXB0YWJsZSAiDQogICAgICAgICAgICAgICAgICAgICAiQ0EgY2VydGlmaWNhdGVzIGZvciBj bGllbnQgYXV0aGVudGljYXRpb24iKTsNCiAgICAgICAgICAgICBzc2xfZGllKCk7DQogICAgICAg ICB9DQpAQCAtNTU2LDcgKzU2NCw3IEBADQogICAgICAgICAgICAgYXBfbG9nX2Vycm9yKEFQTE9H X01BUkssIEFQTE9HX1dBUk5JTkcsIDAsIHMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICJJ bml0OiBPb3BzLCB5b3Ugd2FudCB0byByZXF1ZXN0IGNsaWVudCAiDQogICAgICAgICAgICAgICAg ICAgICAgICAgICJhdXRoZW50aWNhdGlvbiwgYnV0IG5vIENBcyBhcmUga25vd24gZm9yICINCi0g ICAgICAgICAgICAgICAgICAgICAgICAgInZlcmlmaWNhdGlvbiE/ICBbSGludDogU1NMQ0FDZXJ0 aWZpY2F0ZSpdIik7DQorICAgICAgICAgICAgICAgICAgICAgICAgICJ2ZXJpZmljYXRpb24hPyAg W0hpbnQ6IFNTTENBQ2VydGlmaWNhdGUqLCBTU0xDQUROUmVxdWVzdCpdIik7DQogICAgICAgICB9 DQogICAgIH0NCiB9DQpAQCAtMTEyMyw3ICsxMTMxLDcgQEANCiANCiAgICAgICAgIGlmICgocnYg PSBhcHJfZGlyX29wZW4oJmRpciwgY2FfcGF0aCwgcHRlbXApKSAhPSBBUFJfU1VDQ0VTUykgew0K ICAgICAgICAgICAgIGFwX2xvZ19lcnJvcihBUExPR19NQVJLLCBBUExPR19FUlIsIHJ2LCBzLA0K LSAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBvcGVuIFNTTENBQ2VydGlmaWNhdGVQYXRo IGAlcyciLA0KKyAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBvcGVuIENlcnRpZmljYXRl IFBhdGggYCVzJyIsDQogICAgICAgICAgICAgICAgICAgICBjYV9wYXRoKTsNCiAgICAgICAgICAg ICBzc2xfZGllKCk7DQogICAgICAgICB9DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KZGlmZiAtcnUgaHR0cGQtMi4wLjUyLXByaXN0aW5lL21vZHVsZXMvc3NsL3NzbF9l bmdpbmVfa2VybmVsLmMgaHR0cGQtMi4wLjUyLXBhdGNoMy9tb2R1bGVzL3NzbC9zc2xfZW5naW5l X2tlcm5lbC5jDQotLS0gaHR0cGQtMi4wLjUyLXByaXN0aW5lL21vZHVsZXMvc3NsL3NzbF9lbmdp bmVfa2VybmVsLmMJTW9uIEF1ZyAyMyAxMDoxODo1NSAyMDA0DQorKysgaHR0cGQtMi4wLjUyLXBh dGNoMy9tb2R1bGVzL3NzbC9zc2xfZW5naW5lX2tlcm5lbC5jCVRodSBEZWMgIDkgMTk6MDQ6MDQg MjAwNA0KQEAgLTQ3MCwxMSArNDcwLDIyIEBADQogICAgICAgICAvKiBTU0xfZnJlZSB3aWxsIGZy ZWUgY2VydF9zdG9yZSAqLw0KICAgICAgICAgU1NMX3NldF9jZXJ0X3N0b3JlKHNzbCwgY2VydF9z dG9yZSk7DQogDQotICAgICAgICBpZiAoIShjYV9saXN0ID0gc3NsX2luaXRfRmluZENBTGlzdChy LT5zZXJ2ZXIsIHItPnBvb2wsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjYV9maWxlLCBjYV9wYXRoKSkpDQorCS8qDQorCSAqIElmIG5vIHBlci1kaXIgQ0FE TlJlcXVlc3QqIGlzIGRlZmluZWQsIHRoZSBwZXItZGlyDQorCSAqIENBQ2VydGlmaWNhdGUqIHRh a2VzIG9uIGl0cyBkZWZhdWx0IGRvdWJsZS1kdXR5Lg0KKwkgKi8NCisgICAgICAgIGlmIChNT0RT U0xfQ0ZHX05FKHN6Q0FETlJlcXVlc3RGaWxlKSB8fA0KKyAgICAgICAgICAgIE1PRFNTTF9DRkdf TkUoc3pDQUROUmVxdWVzdFBhdGgpKQ0KICAgICAgICAgew0KKyAgICAgICAgICAgIGNhX2ZpbGUg PSBNT0RTU0xfQ0ZHX0NBKHN6Q0FETlJlcXVlc3RGaWxlKTsNCisgICAgICAgICAgICBjYV9wYXRo ID0gTU9EU1NMX0NGR19DQShzekNBRE5SZXF1ZXN0UGF0aCk7DQorCX0NCisNCisgICAgICAgIGlm ICghKGNhX2xpc3QgPSBzc2xfaW5pdF9GaW5kQ0FMaXN0KHItPnNlcnZlciwgci0+cG9vbCwgDQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhX2ZpbGUsIGNhX3Bh dGgpKSkNCisgICAgICAgIHsNCiAgICAgICAgICAgICBhcF9sb2dfZXJyb3IoQVBMT0dfTUFSSywg QVBMT0dfRVJSLCAwLCByLT5zZXJ2ZXIsDQotICAgICAgICAgICAgICAgICAgICAgICAgICJVbmFi bGUgdG8gZGV0ZXJtaW5lIGxpc3Qgb2YgYXZhaWxhYmxlICINCisgICAgICAgICAgICAgICAgICAg ICAgICAgIlVuYWJsZSB0byBkZXRlcm1pbmUgbGlzdCBvZiBhY2NlcHRhYmxlICINCi0gICAgICAg ICAgICAgICAgICAgICAgICAgIkNBIGNlcnRpZmljYXRlcyBmb3IgY2xpZW50IGF1dGhlbnRpY2F0 aW9uIik7DQorICAgICAgICAgICAgICAgICAgICAgICAgICJDQSBuYW1lcyBmb3IgY2VydGlmaWNh dGUgcmVxdWVzdCBtZXNzYWdlIik7DQogDQogICAgICAgICAgICAgcmV0dXJuIEhUVFBfRk9SQklE REVOOw0K ------_=_NextPart_001_01C4DEE5.7D0425E4 Content-Type: application/octet-stream; name="patch2.diff" Content-Transfer-Encoding: base64 Content-Description: patch2.diff Content-Disposition: attachment; filename="patch2.diff" ZGlmZiAtcnUgaHR0cGQtMi4wLjUyLXByaXN0aW5lL21vZHVsZXMvc3NsL3NzbF9lbmdpbmVfaW5p dC5jIGh0dHBkLTIuMC41Mi1wYXRjaDIvbW9kdWxlcy9zc2wvc3NsX2VuZ2luZV9pbml0LmMNCi0t LSBodHRwZC0yLjAuNTItcHJpc3RpbmUvbW9kdWxlcy9zc2wvc3NsX2VuZ2luZV9pbml0LmMJTW9u IEp1biAgNyAwNToxODozNyAyMDA0DQorKysgaHR0cGQtMi4wLjUyLXBhdGNoMi9tb2R1bGVzL3Nz bC9zc2xfZW5naW5lX2luaXQuYwlUaHUgRGVjICA5IDE5OjI2OjM4IDIwMDQNCkBAIC01MTgsMjcg KzUxOCw0MCBAQA0KICAgICAgKiBDb25maWd1cmUgQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGRldGFp bHMNCiAgICAgICovDQogICAgIGlmIChtY3R4LT5hdXRoLmNhX2NlcnRfZmlsZSB8fCBtY3R4LT5h dXRoLmNhX2NlcnRfcGF0aCkgew0KKyAgICAgICAgaW50IENBbG9hZGVkOw0KKyANCiAgICAgICAg IGFwX2xvZ19lcnJvcihBUExPR19NQVJLLCBBUExPR19ERUJVRywgMCwgcywNCiAgICAgICAgICAg ICAgICAgICAgICAiQ29uZmlndXJpbmcgY2xpZW50IGF1dGhlbnRpY2F0aW9uIik7DQogDQotICAg ICAgICBpZiAoIVNTTF9DVFhfbG9hZF92ZXJpZnlfbG9jYXRpb25zKGN0eCwNCi0gICAgICAgICAg ICAgICAgICAgICAgICAgTU9EU1NMX1BDSEFSX0NBU1QgbWN0eC0+YXV0aC5jYV9jZXJ0X2ZpbGUs DQotICAgICAgICAgICAgICAgICAgICAgICAgIE1PRFNTTF9QQ0hBUl9DQVNUIG1jdHgtPmF1dGgu Y2FfY2VydF9wYXRoKSkNCi0gICAgICAgIHsNCisgICAgICAgIGlmICghKG1jdHgtPmF1dGguY2Ff Y2VydF9maWxlICYmIG1jdHgtPmF1dGguY2FfY2VydF9wYXRoKSkgew0KKyAgICAgICAgICAgIENB bG9hZGVkID0gU1NMX0NUWF9sb2FkX3ZlcmlmeV9sb2NhdGlvbnMoY3R4LA0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNT0RTU0xfUENIQVJfQ0FTVCBtY3R4LT5hdXRoLmNhX2NlcnRf ZmlsZSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTU9EU1NMX1BDSEFSX0NBU1Qg bWN0eC0+YXV0aC5jYV9jZXJ0X3BhdGgpOw0KKw0KKyAgICAgICAgICAgIGNhX2xpc3QgPSBzc2xf aW5pdF9GaW5kQ0FMaXN0KHMsIHB0ZW1wLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG1jdHgtPmF1dGguY2FfY2VydF9maWxlLA0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1jdHgtPmF1dGguY2FfY2VydF9wYXRoKTsNCisNCisg ICAgICAgIH0gZWxzZSB7DQorICAgICAgICAgICAgQ0Fsb2FkZWQgPSBTU0xfQ1RYX2xvYWRfdmVy aWZ5X2xvY2F0aW9ucyhjdHgsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1PRFNT TF9QQ0hBUl9DQVNUIG1jdHgtPmF1dGguY2FfY2VydF9maWxlLCBOVUxMKTsNCisNCisgICAgICAg ICAgICBjYV9saXN0ID0gc3NsX2luaXRfRmluZENBTGlzdChzLCBwdGVtcCwgTlVMTCwgDQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWN0eC0+YXV0aC5jYV9jZXJ0 X3BhdGgpOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgaWYgKCFDQWxvYWRlZCkgew0KICAgICAg ICAgICAgIGFwX2xvZ19lcnJvcihBUExPR19NQVJLLCBBUExPR19FUlIsIDAsIHMsDQogICAgICAg ICAgICAgICAgICAgICAiVW5hYmxlIHRvIGNvbmZpZ3VyZSB2ZXJpZnkgbG9jYXRpb25zICINCi0g ICAgICAgICAgICAgICAgICAgICJmb3IgY2xpZW50IGF1dGhlbnRpY2F0aW9uIik7DQorICAgICAg ICAgICAgICAgICAgICAiZm9yIGNsaWVudCBhdXRoZW50aWNhdGlvbiB0cnVzdCIpOw0KICAgICAg ICAgICAgIHNzbF9sb2dfc3NsX2Vycm9yKEFQTE9HX01BUkssIEFQTE9HX0VSUiwgcyk7DQogICAg ICAgICAgICAgc3NsX2RpZSgpOw0KICAgICAgICAgfQ0KIA0KLSAgICAgICAgY2FfbGlzdCA9IHNz bF9pbml0X0ZpbmRDQUxpc3QocywgcHRlbXAsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtY3R4LT5hdXRoLmNhX2NlcnRfZmlsZSwNCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1jdHgtPmF1dGguY2FfY2VydF9wYXRoKTsNCiAgICAgICAgIGlm ICghY2FfbGlzdCkgew0KICAgICAgICAgICAgIGFwX2xvZ19lcnJvcihBUExPR19NQVJLLCBBUExP R19FUlIsIDAsIHMsDQotICAgICAgICAgICAgICAgICAgICAiVW5hYmxlIHRvIGRldGVybWluZSBs aXN0IG9mIGF2YWlsYWJsZSAiDQotICAgICAgICAgICAgICAgICAgICAiQ0EgY2VydGlmaWNhdGVz IGZvciBjbGllbnQgYXV0aGVudGljYXRpb24iKTsNCisgICAgICAgICAgICAgICAgICAgICJVbmFi bGUgdG8gZGV0ZXJtaW5lIGxpc3Qgb2YgYWNjZXB0YWJsZSAiDQorICAgICAgICAgICAgICAgICAg ICAiQ0EgbmFtZXMgZm9yIGNlcnRpZmljYXRlIHJlcXVlc3QgbWVzc2FnZSIpOw0KICAgICAgICAg ICAgIHNzbF9kaWUoKTsNCiAgICAgICAgIH0NCiANCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0NCmRpZmYgLXJ1IGh0dHBkLTIuMC41Mi1wcmlzdGluZS9tb2R1bGVzL3Nz bC9zc2xfZW5naW5lX2tlcm5lbC5jIGh0dHBkLTIuMC41Mi1wYXRjaDIvbW9kdWxlcy9zc2wvc3Ns X2VuZ2luZV9rZXJuZWwuYw0KLS0tIGh0dHBkLTIuMC41Mi1wcmlzdGluZS9tb2R1bGVzL3NzbC9z c2xfZW5naW5lX2tlcm5lbC5jCU1vbiBBdWcgMjMgMTA6MTg6NTUgMjAwNA0KKysrIGh0dHBkLTIu MC41Mi1wYXRjaDIvbW9kdWxlcy9zc2wvc3NsX2VuZ2luZV9rZXJuZWwuYwlUaHUgRGVjICA5IDE5 OjUyOjA1IDIwMDQNCkBAIC00NTMsMTMgKzQ1MywyNCBAQA0KICAgICAgICAgU1RBQ0tfT0YoWDUw OV9OQU1FKSAqY2FfbGlzdDsNCiAgICAgICAgIGNvbnN0IGNoYXIgKmNhX2ZpbGUgPSBNT0RTU0xf Q0ZHX0NBKHN6Q0FDZXJ0aWZpY2F0ZUZpbGUpOw0KICAgICAgICAgY29uc3QgY2hhciAqY2FfcGF0 aCA9IE1PRFNTTF9DRkdfQ0Eoc3pDQUNlcnRpZmljYXRlUGF0aCk7DQorICAgICAgICBpbnQgQ0Fs b2FkZWQ7DQogDQogICAgICAgICBjZXJ0X3N0b3JlID0gWDUwOV9TVE9SRV9uZXcoKTsNCiANCi0g ICAgICAgIGlmICghWDUwOV9TVE9SRV9sb2FkX2xvY2F0aW9ucyhjZXJ0X3N0b3JlLCBjYV9maWxl LCBjYV9wYXRoKSkgew0KKyAgICAgICAgaWYgKCEoY2FfZmlsZSAmJiBjYV9wYXRoKSkgew0KKyAg ICAgICAgICAgIENBbG9hZGVkID0gWDUwOV9TVE9SRV9sb2FkX2xvY2F0aW9ucyhjZXJ0X3N0b3Jl LCBjYV9maWxlLCBjYV9wYXRoKTsNCisNCisgICAgICAgICAgICBjYV9saXN0ID0gc3NsX2luaXRf RmluZENBTGlzdChyLT5zZXJ2ZXIsIHItPnBvb2wsIGNhX2ZpbGUsIGNhX3BhdGgpOw0KKyAgICAg ICAgfSBlbHNlIHsNCisgICAgICAgICAgICBDQWxvYWRlZCA9IFg1MDlfU1RPUkVfbG9hZF9sb2Nh dGlvbnMoY2VydF9zdG9yZSwgY2FfZmlsZSwgTlVMTCk7DQorDQorICAgICAgICAgICAgY2FfbGlz dCA9IHNzbF9pbml0X0ZpbmRDQUxpc3Qoci0+c2VydmVyLCByLT5wb29sLCBOVUxMLCBjYV9wYXRo KTsNCisgICAgICAgIH0NCisNCisgICAgICAgIGlmICghQ0Fsb2FkZWQpIHsNCiAgICAgICAgICAg ICBhcF9sb2dfZXJyb3IoQVBMT0dfTUFSSywgQVBMT0dfRVJSLCAwLCByLT5zZXJ2ZXIsDQogICAg ICAgICAgICAgICAgICAgICAgICAgICJVbmFibGUgdG8gcmVjb25maWd1cmUgdmVyaWZ5IGxvY2F0 aW9ucyAiDQotICAgICAgICAgICAgICAgICAgICAgICAgICJmb3IgY2xpZW50IGF1dGhlbnRpY2F0 aW9uIik7DQorICAgICAgICAgICAgICAgICAgICAgICAgICJmb3IgY2xpZW50IGF1dGhlbnRpY2F0 aW9uIHRydXN0Iik7DQogICAgICAgICAgICAgc3NsX2xvZ19zc2xfZXJyb3IoQVBMT0dfTUFSSywg QVBMT0dfRVJSLCByLT5zZXJ2ZXIpOw0KIA0KICAgICAgICAgICAgIFg1MDlfU1RPUkVfZnJlZShj ZXJ0X3N0b3JlKTsNCkBAIC00NzAsMTIgKzQ4MSwxMCBAQA0KICAgICAgICAgLyogU1NMX2ZyZWUg d2lsbCBmcmVlIGNlcnRfc3RvcmUgKi8NCiAgICAgICAgIFNTTF9zZXRfY2VydF9zdG9yZShzc2ws IGNlcnRfc3RvcmUpOw0KIA0KLSAgICAgICAgaWYgKCEoY2FfbGlzdCA9IHNzbF9pbml0X0ZpbmRD QUxpc3Qoci0+c2VydmVyLCByLT5wb29sLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY2FfZmlsZSwgY2FfcGF0aCkpKQ0KLSAgICAgICAgew0KKyAgICAgICAg aWYgKCFjYV9saXN0KSB7DQogICAgICAgICAgICAgYXBfbG9nX2Vycm9yKEFQTE9HX01BUkssIEFQ TE9HX0VSUiwgMCwgci0+c2VydmVyLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAiVW5hYmxl IHRvIGRldGVybWluZSBsaXN0IG9mIGF2YWlsYWJsZSAiDQotICAgICAgICAgICAgICAgICAgICAg ICAgICJDQSBjZXJ0aWZpY2F0ZXMgZm9yIGNsaWVudCBhdXRoZW50aWNhdGlvbiIpOw0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAiVW5hYmxlIHRvIGRldGVybWluZSBsaXN0IG9mIGFjY2VwdGFi bGUgIg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAiQ0EgbmFtZXMgZm9yIGNlcnRpZmljYXRl IHJlcXVlc3QgbWVzc2FnZSIpOw0KIA0KICAgICAgICAgICAgIHJldHVybiBIVFRQX0ZPUkJJRERF TjsNCiAgICAgICAgIH0NCg== ------_=_NextPart_001_01C4DEE5.7D0425E4 Content-Type: application/octet-stream; name="patch1.diff" Content-Transfer-Encoding: base64 Content-Description: patch1.diff Content-Disposition: attachment; filename="patch1.diff" PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KZGlmZiAtcnUgaHR0 cGQtMi4wLjUyLXByaXN0aW5lL21vZHVsZXMvc3NsL3NzbF9lbmdpbmVfaW5pdC5jIGh0dHBkLTIu MC41Mi1wYXRjaDEvbW9kdWxlcy9zc2wvc3NsX2VuZ2luZV9pbml0LmMNCi0tLSBodHRwZC0yLjAu NTItcHJpc3RpbmUvbW9kdWxlcy9zc2wvc3NsX2VuZ2luZV9pbml0LmMJTW9uIEp1biAgNyAwNTox ODozNyAyMDA0DQorKysgaHR0cGQtMi4wLjUyLXBhdGNoMS9tb2R1bGVzL3NzbC9zc2xfZW5naW5l X2luaXQuYwlUaHUgRGVjICA5IDE3OjA4OjM4IDIwMDQNCkBAIC01MjIsOCArNTIyLDggQEANCiAg ICAgICAgICAgICAgICAgICAgICAiQ29uZmlndXJpbmcgY2xpZW50IGF1dGhlbnRpY2F0aW9uIik7 DQogDQogICAgICAgICBpZiAoIVNTTF9DVFhfbG9hZF92ZXJpZnlfbG9jYXRpb25zKGN0eCwNCi0g ICAgICAgICAgICAgICAgICAgICAgICAgTU9EU1NMX1BDSEFSX0NBU1QgbWN0eC0+YXV0aC5jYV9j ZXJ0X2ZpbGUsDQotICAgICAgICAgICAgICAgICAgICAgICAgIE1PRFNTTF9QQ0hBUl9DQVNUIG1j dHgtPmF1dGguY2FfY2VydF9wYXRoKSkNCisgICAgICAgICAgICAgICAgICAgICAgICAgTU9EU1NM X1BDSEFSX0NBU1QgbWN0eC0+YXV0aC5jYV9jZXJ0X2ZpbGUsIE5VTEwpKQ0KKyAgICAgICAgICAg ICAgICAgICAgIC8qICBNT0RTU0xfUENIQVJfQ0FTVCBtY3R4LT5hdXRoLmNhX2NlcnRfcGF0aCkp ICovDQogICAgICAgICB7DQogICAgICAgICAgICAgYXBfbG9nX2Vycm9yKEFQTE9HX01BUkssIEFQ TE9HX0VSUiwgMCwgcywNCiAgICAgICAgICAgICAgICAgICAgICJVbmFibGUgdG8gY29uZmlndXJl IHZlcmlmeSBsb2NhdGlvbnMgIg0KQEAgLTUzMiw4ICs1MzIsOCBAQA0KICAgICAgICAgICAgIHNz bF9kaWUoKTsNCiAgICAgICAgIH0NCiANCi0gICAgICAgIGNhX2xpc3QgPSBzc2xfaW5pdF9GaW5k Q0FMaXN0KHMsIHB0ZW1wLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bWN0eC0+YXV0aC5jYV9jZXJ0X2ZpbGUsDQorICAgICAgICBjYV9saXN0ID0gc3NsX2luaXRfRmlu ZENBTGlzdChzLCBwdGVtcCwgTlVMTCwgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiAgICBtY3R4LT5hdXRoLmNhX2NlcnRfZmlsZSwgICovDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBtY3R4LT5hdXRoLmNhX2NlcnRfcGF0aCk7DQogICAgICAgICBp ZiAoIWNhX2xpc3QpIHsNCiAgICAgICAgICAgICBhcF9sb2dfZXJyb3IoQVBMT0dfTUFSSywgQVBM T0dfRVJSLCAwLCBzLA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQ0KZGlmZiAtcnUgaHR0cGQtMi4wLjUyLXByaXN0aW5lL21vZHVsZXMvc3NsL3NzbF9lbmdpbmVf a2VybmVsLmMgaHR0cGQtMi4wLjUyLXBhdGNoMS9tb2R1bGVzL3NzbC9zc2xfZW5naW5lX2tlcm5l bC5jDQotLS0gaHR0cGQtMi4wLjUyLXByaXN0aW5lL21vZHVsZXMvc3NsL3NzbF9lbmdpbmVfa2Vy bmVsLmMJTW9uIEF1ZyAyMyAxMDoxODo1NSAyMDA0DQorKysgaHR0cGQtMi4wLjUyLXBhdGNoMS9t b2R1bGVzL3NzbC9zc2xfZW5naW5lX2tlcm5lbC5jCVRodSBEZWMgIDkgMTc6MDg6MTcgMjAwNA0K QEAgLTQ1Niw3ICs0NTYsNyBAQA0KIA0KICAgICAgICAgY2VydF9zdG9yZSA9IFg1MDlfU1RPUkVf bmV3KCk7DQogDQotICAgICAgICBpZiAoIVg1MDlfU1RPUkVfbG9hZF9sb2NhdGlvbnMoY2VydF9z dG9yZSwgY2FfZmlsZSwgY2FfcGF0aCkpIHsNCisgICAgICAgIGlmICghWDUwOV9TVE9SRV9sb2Fk X2xvY2F0aW9ucyhjZXJ0X3N0b3JlLCBjYV9maWxlLCBOVUxMKSkgew0KICAgICAgICAgICAgIGFw X2xvZ19lcnJvcihBUExPR19NQVJLLCBBUExPR19FUlIsIDAsIHItPnNlcnZlciwNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgIlVuYWJsZSB0byByZWNvbmZpZ3VyZSB2ZXJpZnkgbG9jYXRpb25z ICINCiAgICAgICAgICAgICAgICAgICAgICAgICAgImZvciBjbGllbnQgYXV0aGVudGljYXRpb24i KTsNCkBAIC00NzAsOCArNDcwLDcgQEANCiAgICAgICAgIC8qIFNTTF9mcmVlIHdpbGwgZnJlZSBj ZXJ0X3N0b3JlICovDQogICAgICAgICBTU0xfc2V0X2NlcnRfc3RvcmUoc3NsLCBjZXJ0X3N0b3Jl KTsNCiANCi0gICAgICAgIGlmICghKGNhX2xpc3QgPSBzc2xfaW5pdF9GaW5kQ0FMaXN0KHItPnNl cnZlciwgci0+cG9vbCwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNhX2ZpbGUsIGNhX3BhdGgpKSkNCisgICAgICAgIGlmICghKGNhX2xpc3QgPSBzc2xfaW5p dF9GaW5kQ0FMaXN0KHItPnNlcnZlciwgci0+cG9vbCwgTlVMTCwgY2FfcGF0aCkpKSAgDQogICAg ICAgICB7DQogICAgICAgICAgICAgYXBfbG9nX2Vycm9yKEFQTE9HX01BUkssIEFQTE9HX0VSUiwg MCwgci0+c2VydmVyLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5hYmxlIHRvIGRldGVy bWluZSBsaXN0IG9mIGF2YWlsYWJsZSAiDQo= ------_=_NextPart_001_01C4DEE5.7D0425E4 Content-Type: text/plain; charset=us-ascii --------------------------------------------------------------------- The official User-To-User support forum of the Apache HTTP Server Project. See for more info. To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org " from the digest: users-digest-unsubscribe@httpd.apache.org For additional commands, e-mail: users-help@httpd.apache.org ------_=_NextPart_001_01C4DEE5.7D0425E4--