Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:26640 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 78681 invoked by uid 1010); 16 Nov 2006 13:05:14 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 78666 invoked from network); 16 Nov 2006 13:05:14 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 16 Nov 2006 13:05:14 -0000 Authentication-Results: pb1.pair.com header.from=wolfshoehle@googlemail.com; sender-id=pass; domainkeys=good Authentication-Results: pb1.pair.com smtp.mail=wolfshoehle@googlemail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain googlemail.com designates 66.249.82.226 as permitted sender) DomainKey-Status: good X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: wolfshoehle@googlemail.com X-Host-Fingerprint: 66.249.82.226 wx-out-0506.google.com Linux 2.4/2.6 Received: from [66.249.82.226] ([66.249.82.226:16621] helo=wx-out-0506.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id B7/BA-01084-9026C554 for ; Thu, 16 Nov 2006 08:05:14 -0500 Received: by wx-out-0506.google.com with SMTP id i27so631634wxd for ; Thu, 16 Nov 2006 05:05:11 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=googlemail.com; h=received:message-id:date:from:to:subject:mime-version:content-type; b=uKslVwS0zYtXVaVmAlVKmBe987k8bM8fMmjP2aqMmMxRhXoOjOpe5kpwRu6Cx7tjH1VGv2fsbCU9CwInztjSq0H51IIYhP5tJoQn6SyxN6jrTdZ+1hFMYY3aTf/6D9KCQvY41wDr1x3APs3uKzJF0IRGf8KHcYvhBj6hjnK/Sps= Received: by 10.90.117.15 with SMTP id p15mr236102agc.1163682310535; Thu, 16 Nov 2006 05:05:10 -0800 (PST) Received: by 10.90.93.12 with HTTP; Thu, 16 Nov 2006 05:05:10 -0800 (PST) Message-ID: <9bb5e33f0611160505u2ac2b1dbt1b04feea4314331c@mail.gmail.com> Date: Thu, 16 Nov 2006 14:05:10 +0100 To: internals@lists.php.net MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_19057_29556229.1163682310470" Subject: Enable authorizer-feature in PDO_SQLITE From: wolfshoehle@googlemail.com ("Mario Wolff") ------=_Part_19057_29556229.1163682310470 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Hello list, i've extended sqlite_driver to get access to the authorizer-feature of sqlite. This is my first contact with the Zend-API and my last c skill is more than a bit outdated. Could someone review/cleanup my code to get it merged to the distribution? Hint and comment welcome! Thanks, Mario Wolff PS: Patch applys against 5.2.0! ------=_Part_19057_29556229.1163682310470 Content-Type: text/x-patch; name="sqlite_driver.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="sqlite_driver.patch" X-Attachment-Id: f_eul6dopi KioqIHBocC01LjIuMC9leHQvcGRvX3NxbGl0ZS9zcWxpdGVfZHJpdmVyLmMJU2F0IFNlcCAxNiAy MDozMDowMyAyMDA2Ci0tLSBwaHAtNS4yLjAtbmV3L2V4dC9wZG9fc3FsaXRlL3NxbGl0ZV9kcml2 ZXIuYwlUaHUgTm92IDE2IDEzOjM4OjMzIDIwMDYKKioqKioqKioqKioqKioqCioqKiAzMSwzNiAq KioqCi0tLSAzMSwzOCAtLS0tCiAgI2luY2x1ZGUgInBocF9wZG9fc3FsaXRlX2ludC5oIgogICNp bmNsdWRlICJ6ZW5kX2V4Y2VwdGlvbnMuaCIKICAKKyBzdGF0aWMgaW50IGF1dGhvcml6ZXIodm9p ZCAqYXV0aGFyZywgaW50IGFjY2Vzc190eXBlLCBjb25zdCBjaGFyICphcmczLCBjb25zdCBjaGFy ICphcmc0LAorIAkJY29uc3QgY2hhciAqYXJnNSwgY29uc3QgY2hhciAqYXJnNik7CiAgaW50IF9w ZG9fc3FsaXRlX2Vycm9yKHBkb19kYmhfdCAqZGJoLCBwZG9fc3RtdF90ICpzdG10LCBjb25zdCBj aGFyICpmaWxlLCBpbnQgbGluZSBUU1JNTFNfREMpIC8qIHt7eyAqLwogIHsKICAJcGRvX3NxbGl0 ZV9kYl9oYW5kbGUgKkggPSAocGRvX3NxbGl0ZV9kYl9oYW5kbGUgKilkYmgtPmRyaXZlcl9kYXRh OwoqKioqKioqKioqKioqKioKKioqIDU5Myw2MDEgKioqKgotLS0gNTk1LDY1MyAtLS0tCiAgCVJF VFVSTl9GQUxTRTsKICB9CiAgLyogfX19ICovCisgCisgLyoge3t7IGJvb2wgU1FMaXRlOjpzcWxp dGVTZXRBdXRob3JpemVyKHN0cmluZyBuYW1lLCBtaXhlZCBjYWxsYmFjayBbLCBpbnQgYXJnY291 bnRdKQorICAgIFJlZ2lzdGVycyBhIFVERiB3aXRoIHRoZSBzcWxpdGUgZGIgaGFuZGxlICovCisg c3RhdGljIFBIUF9NRVRIT0QoU1FMaXRlLCBzcWxpdGVTZXRBdXRob3JpemVyKQorIHsKKyAJc3Rh dGljIHp2YWwqdXNlcl9hdXRob3JpemVyPU5VTEw7IAorIAlzdHJ1Y3QgcGRvX3NxbGl0ZV9mdW5j ICpmdW5jOworIAl6dmFsICpjYWxsYmFjaz1OVUxMOworIAljaGFyICpjYm5hbWUgPSBOVUxMOwor IAlwZG9fZGJoX3QgKmRiaDsKKyAJcGRvX3NxbGl0ZV9kYl9oYW5kbGUgKkg7CisgCWludCByZXQ7 CisgCisgCWlmIChGQUlMVVJFID09IHplbmRfcGFyc2VfcGFyYW1ldGVycyhaRU5EX05VTV9BUkdT KCkgVFNSTUxTX0NDLCAifHoiLAorIAkJCSZjYWxsYmFjaykpIHsKKyAJCVJFVFVSTl9GQUxTRTsK KyAJfQorIAorIAlkYmggPSB6ZW5kX29iamVjdF9zdG9yZV9nZXRfb2JqZWN0KGdldFRoaXMoKSBU U1JNTFNfQ0MpOworIAlQRE9fQ09OU1RSVUNUX0NIRUNLOworIAlIID0gKHBkb19zcWxpdGVfZGJf aGFuZGxlICopZGJoLT5kcml2ZXJfZGF0YTsKKyAKKyAJaWYoIGNhbGxiYWNrPT1OVUxMIHx8IGNh bGxiYWNrLT50eXBlID09IElTX1NUUklORyAmJiAhIHN0cmNtcChjYWxsYmFjay0+dmFsdWUuc3Ry LnZhbCwiIikgKXsKKyAJCWlmICh1c2VyX2F1dGhvcml6ZXIhPU5VTEwpeworIAkJCUZSRUVfWlZB TCh1c2VyX2F1dGhvcml6ZXIpOworIAkJCXNxbGl0ZTNfc2V0X2F1dGhvcml6ZXIoSC0+ZGIsIGF1 dGhvcml6ZXIsTlVMTCk7CisgCQl9CisgCQlSRVRVUk5fVFJVRTsKKyAJfQorIAkKKyAJaWYgKCF6 ZW5kX2lzX2NhbGxhYmxlKGNhbGxiYWNrLCAwLCAmY2JuYW1lKSkgeworIAkJcGhwX2Vycm9yX2Rv Y3JlZihOVUxMIFRTUk1MU19DQywgRV9XQVJOSU5HLCAiZnVuY3Rpb24gJyVzJyBpcyBub3QgY2Fs bGFibGUiLCBjYm5hbWUpOworIAkJZWZyZWUoY2JuYW1lKTsKKyAJCVJFVFVSTl9GQUxTRTsKKyAJ fQorIAllZnJlZShjYm5hbWUpOworIAkKKyAKKyAJaWYgKHVzZXJfYXV0aG9yaXplciE9TlVMTCl7 CisgCQlGUkVFX1pWQUwodXNlcl9hdXRob3JpemVyKTsKKyAJfQorIAkKKyAJTUFLRV9TVERfWlZB TCh1c2VyX2F1dGhvcml6ZXIpOworIAlaVkFMX1NUUklORyh1c2VyX2F1dGhvcml6ZXIsIGNhbGxi YWNrLT52YWx1ZS5zdHIudmFsLCAxKTsKKyAJc3FsaXRlM19zZXRfYXV0aG9yaXplcihILT5kYiwg YXV0aG9yaXplciwgdXNlcl9hdXRob3JpemVyKTsKKyAJUkVUVVJOX1RSVUU7CisgfQorIC8qIH19 fSAqLworIAogIHN0YXRpYyB6ZW5kX2Z1bmN0aW9uX2VudHJ5IGRiaF9tZXRob2RzW10gPSB7CiAg CVBIUF9NRShTUUxpdGUsIHNxbGl0ZUNyZWF0ZUZ1bmN0aW9uLCBOVUxMLCBaRU5EX0FDQ19QVUJM SUMpCiAgCVBIUF9NRShTUUxpdGUsIHNxbGl0ZUNyZWF0ZUFnZ3JlZ2F0ZSwgTlVMTCwgWkVORF9B Q0NfUFVCTElDKQorIAlQSFBfTUUoU1FMaXRlLCBzcWxpdGVTZXRBdXRob3JpemVyLCBOVUxMLCBa RU5EX0FDQ19QVUJMSUMpCiAgCXtOVUxMLCBOVUxMLCBOVUxMfQogIH07CiAgCioqKioqKioqKioq KioqKgoqKiogNjYzLDY5NCAqKioqCiAgc3RhdGljIGludCBhdXRob3JpemVyKHZvaWQgKmF1dGhh cmcsIGludCBhY2Nlc3NfdHlwZSwgY29uc3QgY2hhciAqYXJnMywgY29uc3QgY2hhciAqYXJnNCwK ICAJCWNvbnN0IGNoYXIgKmFyZzUsIGNvbnN0IGNoYXIgKmFyZzYpCiAgewogIAljaGFyICpmaWxl bmFtZTsKISAJc3dpdGNoIChhY2Nlc3NfdHlwZSkgewohIAkJY2FzZSBTUUxJVEVfQ09QWTogewoh IAkJCVRTUk1MU19GRVRDSCgpOwohIAkJCWZpbGVuYW1lID0gbWFrZV9maWxlbmFtZV9zYWZlKGFy ZzQgVFNSTUxTX0NDKTsKISAJCQlpZiAoIWZpbGVuYW1lKSB7CiEgCQkJCXJldHVybiBTUUxJVEVf REVOWTsKICAJCQl9Ci0gCQkJZWZyZWUoZmlsZW5hbWUpOwotIAkJCXJldHVybiBTUUxJVEVfT0s7 Ci0gCQl9CiAgCiEgCQljYXNlIFNRTElURV9BVFRBQ0g6IHsKISAJCQlUU1JNTFNfRkVUQ0goKTsK ISAJCQlmaWxlbmFtZSA9IG1ha2VfZmlsZW5hbWVfc2FmZShhcmczIFRTUk1MU19DQyk7CiEgCQkJ aWYgKCFmaWxlbmFtZSkgewohIAkJCQlyZXR1cm4gU1FMSVRFX0RFTlk7CiAgCQkJfQotIAkJCWVm cmVlKGZpbGVuYW1lKTsKLSAJCQlyZXR1cm4gU1FMSVRFX09LOwotIAkJfQogIAohIAkJZGVmYXVs dDoKISAJCQkvKiBhY2Nlc3MgYWxsb3dlZCAqLwohIAkJCXJldHVybiBTUUxJVEVfT0s7CiAgCX0K ICB9CiAgCiAgc3RhdGljIGludCBwZG9fc3FsaXRlX2hhbmRsZV9mYWN0b3J5KHBkb19kYmhfdCAq ZGJoLCB6dmFsICpkcml2ZXJfb3B0aW9ucyBUU1JNTFNfREMpIC8qIHt7eyAqLwotLS0gNzE1LDg2 MSAtLS0tCiAgc3RhdGljIGludCBhdXRob3JpemVyKHZvaWQgKmF1dGhhcmcsIGludCBhY2Nlc3Nf dHlwZSwgY29uc3QgY2hhciAqYXJnMywgY29uc3QgY2hhciAqYXJnNCwKICAJCWNvbnN0IGNoYXIg KmFyZzUsIGNvbnN0IGNoYXIgKmFyZzYpCiAgeworIAl6dmFsICpjYWxsYmFjaz1OVUxMLCp6YWNj ZXNzX3R5cGUsKnphcmczLCp6YXJnNCwqemFyZzUsKnphcmc2OworIAlpbnQgcmV0dmFsPVNRTElU RV9PSzsKICAJY2hhciAqZmlsZW5hbWU7CiEgCWlmIChQRyhzYWZlX21vZGUpIHx8IChQRyhvcGVu X2Jhc2VkaXIpICYmICpQRyhvcGVuX2Jhc2VkaXIpKSkgewohIAkJc3dpdGNoIChhY2Nlc3NfdHlw ZSkgewohIAkJCWNhc2UgU1FMSVRFX0NPUFk6IHsKISAJCQkJVFNSTUxTX0ZFVENIKCk7CiEgCQkJ CWZpbGVuYW1lID0gbWFrZV9maWxlbmFtZV9zYWZlKGFyZzQgVFNSTUxTX0NDKTsKISAJCQkJaWYg KCFmaWxlbmFtZSkgewohIAkJCQkJcmV0dmFsPVNRTElURV9ERU5ZOwohIAkJCQl9ZWxzZXsKISAJ CQkJCWVmcmVlKGZpbGVuYW1lKTsKISAJCQkJCXJldHZhbD1TUUxJVEVfT0s7CiEgCQkJCX0KICAJ CQl9CiAgCiEgCQkJY2FzZSBTUUxJVEVfQVRUQUNIOiB7CiEgCQkJCVRTUk1MU19GRVRDSCgpOwoh IAkJCQlmaWxlbmFtZSA9IG1ha2VfZmlsZW5hbWVfc2FmZShhcmczIFRTUk1MU19DQyk7CiEgCQkJ CWlmICghZmlsZW5hbWUpIHsKISAJCQkJCXJldHZhbD1TUUxJVEVfREVOWTsKISAJCQkJfWVsc2V7 CiEgCQkJCQllZnJlZShmaWxlbmFtZSk7CiEgCQkJCQlyZXR2YWw9U1FMSVRFX09LOwohIAkJCQl9 CiAgCQkJfQogIAohIAkJCWRlZmF1bHQ6CiEgCQkJCS8qIGFjY2VzcyBhbGxvd2VkICovCiEgCQkJ CXJldHZhbD1TUUxJVEVfT0s7CiEgCQl9CiEgCX0KISAJaWYoIHJldHZhbD09U1FMSVRFX09LICYm IGF1dGhhcmchPU5VTEwgKXsKISAJCWNhbGxiYWNrPSh6dmFsKilhdXRoYXJnOwohIAkJenZhbCAq KmFyZ3NbNV07CiEgCQl6ZW5kX2ZjYWxsX2luZm9fY2FjaGUgZmNpX2NhY2hlID0gZW1wdHlfZmNh bGxfaW5mb19jYWNoZTsKISAJCXp2YWwgKnJlc3VsdCA9IE5VTEw7CiEgCQl6ZW5kX2ZjYWxsX2lu Zm8gZmNpOwohIAkJY2hhciogekNvZGU7CiEgCQlzd2l0Y2goIGFjY2Vzc190eXBlICl7CiEgCQkJ Y2FzZSBTUUxJVEVfQ09QWSAgICAgICAgICAgICAgOiB6Q29kZT0iU1FMSVRFX0NPUFkiOyBicmVh azsKISAJCQljYXNlIFNRTElURV9DUkVBVEVfSU5ERVggICAgICA6IHpDb2RlPSJTUUxJVEVfQ1JF QVRFX0lOREVYIjsgYnJlYWs7CiEgCQkJY2FzZSBTUUxJVEVfQ1JFQVRFX1RBQkxFICAgICAgOiB6 Q29kZT0iU1FMSVRFX0NSRUFURV9UQUJMRSI7IGJyZWFrOwohIAkJCWNhc2UgU1FMSVRFX0NSRUFU RV9URU1QX0lOREVYIDogekNvZGU9IlNRTElURV9DUkVBVEVfVEVNUF9JTkRFWCI7IGJyZWFrOwoh IAkJCWNhc2UgU1FMSVRFX0NSRUFURV9URU1QX1RBQkxFIDogekNvZGU9IlNRTElURV9DUkVBVEVf VEVNUF9UQUJMRSI7IGJyZWFrOwohIAkJCWNhc2UgU1FMSVRFX0NSRUFURV9URU1QX1RSSUdHRVI6 IHpDb2RlPSJTUUxJVEVfQ1JFQVRFX1RFTVBfVFJJR0dFUiI7IGJyZWFrOwohIAkJCWNhc2UgU1FM SVRFX0NSRUFURV9URU1QX1ZJRVcgIDogekNvZGU9IlNRTElURV9DUkVBVEVfVEVNUF9WSUVXIjsg YnJlYWs7CiEgCQkJY2FzZSBTUUxJVEVfQ1JFQVRFX1RSSUdHRVIgICAgOiB6Q29kZT0iU1FMSVRF X0NSRUFURV9UUklHR0VSIjsgYnJlYWs7CiEgCQkJY2FzZSBTUUxJVEVfQ1JFQVRFX1ZJRVcgICAg ICAgOiB6Q29kZT0iU1FMSVRFX0NSRUFURV9WSUVXIjsgYnJlYWs7CiEgCQkJY2FzZSBTUUxJVEVf REVMRVRFICAgICAgICAgICAgOiB6Q29kZT0iU1FMSVRFX0RFTEVURSI7IGJyZWFrOwohIAkJCWNh c2UgU1FMSVRFX0RST1BfSU5ERVggICAgICAgIDogekNvZGU9IlNRTElURV9EUk9QX0lOREVYIjsg YnJlYWs7CiEgCQkJY2FzZSBTUUxJVEVfRFJPUF9UQUJMRSAgICAgICAgOiB6Q29kZT0iU1FMSVRF X0RST1BfVEFCTEUiOyBicmVhazsKISAJCQljYXNlIFNRTElURV9EUk9QX1RFTVBfSU5ERVggICA6 IHpDb2RlPSJTUUxJVEVfRFJPUF9URU1QX0lOREVYIjsgYnJlYWs7CiEgCQkJY2FzZSBTUUxJVEVf RFJPUF9URU1QX1RBQkxFICAgOiB6Q29kZT0iU1FMSVRFX0RST1BfVEVNUF9UQUJMRSI7IGJyZWFr OwohIAkJCWNhc2UgU1FMSVRFX0RST1BfVEVNUF9UUklHR0VSIDogekNvZGU9IlNRTElURV9EUk9Q X1RFTVBfVFJJR0dFUiI7IGJyZWFrOwohIAkJCWNhc2UgU1FMSVRFX0RST1BfVEVNUF9WSUVXICAg IDogekNvZGU9IlNRTElURV9EUk9QX1RFTVBfVklFVyI7IGJyZWFrOwohIAkJCWNhc2UgU1FMSVRF X0RST1BfVFJJR0dFUiAgICAgIDogekNvZGU9IlNRTElURV9EUk9QX1RSSUdHRVIiOyBicmVhazsK ISAJCQljYXNlIFNRTElURV9EUk9QX1ZJRVcgICAgICAgICA6IHpDb2RlPSJTUUxJVEVfRFJPUF9W SUVXIjsgYnJlYWs7CiEgCQkJY2FzZSBTUUxJVEVfSU5TRVJUICAgICAgICAgICAgOiB6Q29kZT0i U1FMSVRFX0lOU0VSVCI7IGJyZWFrOwohIAkJCWNhc2UgU1FMSVRFX1BSQUdNQSAgICAgICAgICAg IDogekNvZGU9IlNRTElURV9QUkFHTUEiOyBicmVhazsKISAJCQljYXNlIFNRTElURV9SRUFEICAg ICAgICAgICAgICA6IHpDb2RlPSJTUUxJVEVfUkVBRCI7IGJyZWFrOwohIAkJCWNhc2UgU1FMSVRF X1NFTEVDVCAgICAgICAgICAgIDogekNvZGU9IlNRTElURV9TRUxFQ1QiOyBicmVhazsKISAJCQlj YXNlIFNRTElURV9UUkFOU0FDVElPTiAgICAgICA6IHpDb2RlPSJTUUxJVEVfVFJBTlNBQ1RJT04i OyBicmVhazsKISAJCQljYXNlIFNRTElURV9VUERBVEUgICAgICAgICAgICA6IHpDb2RlPSJTUUxJ VEVfVVBEQVRFIjsgYnJlYWs7CiEgCQkJY2FzZSBTUUxJVEVfQVRUQUNIICAgICAgICAgICAgOiB6 Q29kZT0iU1FMSVRFX0FUVEFDSCI7IGJyZWFrOwohIAkJCWNhc2UgU1FMSVRFX0RFVEFDSCAgICAg ICAgICAgIDogekNvZGU9IlNRTElURV9ERVRBQ0giOyBicmVhazsKISAJCQljYXNlIFNRTElURV9B TFRFUl9UQUJMRSAgICAgICA6IHpDb2RlPSJTUUxJVEVfQUxURVJfVEFCTEUiOyBicmVhazsKISAJ CQljYXNlIFNRTElURV9SRUlOREVYICAgICAgICAgICA6IHpDb2RlPSJTUUxJVEVfUkVJTkRFWCI7 IGJyZWFrOwohIAkJCWNhc2UgU1FMSVRFX0FOQUxZWkUgICAgICAgICAgIDogekNvZGU9IlNRTElU RV9BTkFMWVpFIjsgYnJlYWs7CiEgCQkJY2FzZSBTUUxJVEVfQ1JFQVRFX1ZUQUJMRSAgICAgOiB6 Q29kZT0iU1FMSVRFX0NSRUFURV9WVEFCTEUiOyBicmVhazsKISAJCQljYXNlIFNRTElURV9EUk9Q X1ZUQUJMRSAgICAgICA6IHpDb2RlPSJTUUxJVEVfRFJPUF9WVEFCTEUiOyBicmVhazsKISAJCQlk ZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICA6IHpDb2RlPSI/Pz8/IjsgYnJlYWs7CiEgCQl9 CiEgCQlNQUtFX1NURF9aVkFMKHphY2Nlc3NfdHlwZSk7CiEgCQlaVkFMX1NUUklORyh6YWNjZXNz X3R5cGUsekNvZGUsIDEpOwohIAkJYXJnc1swXT0memFjY2Vzc190eXBlOwohIAohIAkJTUFLRV9T VERfWlZBTCh6YXJnMyk7CiEgCQlpZiggYXJnMyE9TlVMTCApewohIAkJCVpWQUxfU1RSSU5HKHph cmczLChjaGFyKilhcmczLCAxKTsKISAJCX1lbHNlewohIAkJCVpWQUxfU1RSSU5HKHphcmczLCIi LCAxKTsKISAJCX0KISAJCWFyZ3NbMV09JnphcmczOwohIAkJCiEgCQlNQUtFX1NURF9aVkFMKHph cmc0KTsKISAJCWlmKCBhcmc0IT1OVUxMICl7CiEgCQkJWlZBTF9TVFJJTkcoemFyZzQsKGNoYXIq KWFyZzQsIDEpOwohIAkJfWVsc2V7CiEgCQkJWlZBTF9TVFJJTkcoemFyZzQsIiIsIDEpOwohIAkJ fQohIAkJYXJnc1syXT0memFyZzQ7CiEgCQkKISAJCU1BS0VfU1REX1pWQUwoemFyZzUpOwohIAkJ aWYoIGFyZzUhPU5VTEwgKXsKISAJCQlaVkFMX1NUUklORyh6YXJnNSwoY2hhciopYXJnNSwgMSk7 CiEgCQl9ZWxzZXsKISAJCQlaVkFMX1NUUklORyh6YXJnNSwiIiwgMSk7CiEgCQl9CiEgCQlhcmdz WzNdPSZ6YXJnNTsKISAJCQohIAkJTUFLRV9TVERfWlZBTCh6YXJnNik7CiEgCQlpZiggYXJnNiE9 TlVMTCApewohIAkJCVpWQUxfU1RSSU5HKHphcmc2LChjaGFyKilhcmc2LCAxKTsKISAJCX1lbHNl ewohIAkJCVpWQUxfU1RSSU5HKHphcmc2LCIiLCAxKTsKISAJCX0KISAJCWFyZ3NbNF09Jnphcmc2 OwohIAkJCiEgCQlmY2kuc2l6ZSA9IHNpemVvZihmY2kpOwohIAkJZmNpLmZ1bmN0aW9uX3RhYmxl ID0gRUcoZnVuY3Rpb25fdGFibGUpOwohIAkJZmNpLmZ1bmN0aW9uX25hbWUgPSBjYWxsYmFjazsK ISAJCWZjaS5zeW1ib2xfdGFibGUgPSBOVUxMOwohIAkJZmNpLm9iamVjdF9wcCA9IE5VTEw7CiEg CQlmY2kucmV0dmFsX3B0cl9wdHIgPSAmcmVzdWx0OwohIAkJZmNpLnBhcmFtX2NvdW50ID0gNTsK ISAJCWZjaS5wYXJhbXMgPSBhcmdzOwohIAkJZmNpLm5vX3NlcGFyYXRpb24gPSAwOwohIAkJCiEg CQlpZiAoemVuZF9jYWxsX2Z1bmN0aW9uKCZmY2ksICZmY2lfY2FjaGUgVFNSTUxTX0NDKSA9PSBT VUNDRVNTICYmIHJlc3VsdCkgewohIAkJCWlmKCByZXN1bHQtPnR5cGU9PUlTX0JPT0wgKXsKISAJ CQkJcmV0dmFsPShyZXN1bHQtPnZhbHVlLmx2YWw9PTApOwohIAkJCX1lbHNlIGlmKCByZXN1bHQt PnR5cGU9PUlTX0xPTkcgKXsKISAJCQkJcmV0dmFsPXJlc3VsdC0+dmFsdWUubHZhbDsKISAJCQl9 ZWxzZXsKISAJCQkJcGhwX2Vycm9yX2RvY3JlZihOVUxMIFRTUk1MU19DQywgRV9XQVJOSU5HLCAi aW52YWxpZCByZXR1cm4gZnJvbSBhdXRob3JpemVyLCBuZWVkIGJvb2wgb3IgaW50Iik7CiEgCQkJ CXJldHZhbD1TUUxJVEVfREVOWTsKISAJCQl9CiEgCQl9IGVsc2UgewohIAkJCXBocF9lcnJvcl9k b2NyZWYoTlVMTCBUU1JNTFNfQ0MsIEVfV0FSTklORywgIkFuIGVycm9yIG9jY3VycmVkIHdoaWxl IGludm9raW5nIHRoZSByZWR1Y3Rpb24gY2FsbGJhY2siKTsKISAJCQlyZXR2YWw9U1FMSVRFX0RF Tlk7CiEgCQl9CiEgCQkKISAJCUZSRUVfWlZBTCh6YWNjZXNzX3R5cGUpOwohIAkJRlJFRV9aVkFM KHphcmczKTsKISAJCUZSRUVfWlZBTCh6YXJnNCk7CiEgCQlGUkVFX1pWQUwoemFyZzUpOwohIAkJ RlJFRV9aVkFMKHphcmc2KTsKISAJCQogIAl9CisgCXJldHVybiByZXR2YWw7CiAgfQogIAogIHN0 YXRpYyBpbnQgcGRvX3NxbGl0ZV9oYW5kbGVfZmFjdG9yeShwZG9fZGJoX3QgKmRiaCwgenZhbCAq ZHJpdmVyX29wdGlvbnMgVFNSTUxTX0RDKSAvKiB7e3sgKi8KKioqKioqKioqKioqKioqCioqKiA3 MjEsNzI5ICoqKioKICAJCWdvdG8gY2xlYW51cDsKICAJfQogIAohIAlpZiAoUEcoc2FmZV9tb2Rl KSB8fCAoUEcob3Blbl9iYXNlZGlyKSAmJiAqUEcob3Blbl9iYXNlZGlyKSkpIHsKISAJCXNxbGl0 ZTNfc2V0X2F1dGhvcml6ZXIoSC0+ZGIsIGF1dGhvcml6ZXIsIE5VTEwpOwohIAl9CiAgCiAgCWlm IChkcml2ZXJfb3B0aW9ucykgewogIAkJdGltZW91dCA9IHBkb19hdHRyX2x2YWwoZHJpdmVyX29w dGlvbnMsIFBET19BVFRSX1RJTUVPVVQsIHRpbWVvdXQgVFNSTUxTX0NDKTsKLS0tIDg4OCw4OTQg LS0tLQogIAkJZ290byBjbGVhbnVwOwogIAl9CiAgCiEgCXNxbGl0ZTNfc2V0X2F1dGhvcml6ZXIo SC0+ZGIsIGF1dGhvcml6ZXIsIE5VTEwpOwogIAogIAlpZiAoZHJpdmVyX29wdGlvbnMpIHsKICAJ CXRpbWVvdXQgPSBwZG9fYXR0cl9sdmFsKGRyaXZlcl9vcHRpb25zLCBQRE9fQVRUUl9USU1FT1VU LCB0aW1lb3V0IFRTUk1MU19DQyk7Cg== ------=_Part_19057_29556229.1163682310470--