Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:67449 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 24711 invoked from network); 18 May 2013 16:15:05 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 18 May 2013 16:15:05 -0000 Authentication-Results: pb1.pair.com smtp.mail=remi@fedoraproject.org; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=remi@fedoraproject.org; sender-id=unknown Received-SPF: error (pb1.pair.com: domain fedoraproject.org from 212.27.42.5 cause and error) X-PHP-List-Original-Sender: remi@fedoraproject.org X-Host-Fingerprint: 212.27.42.5 smtp5-g21.free.fr Linux 2.6 Received: from [212.27.42.5] ([212.27.42.5:40283] helo=smtp5-g21.free.fr) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id CD/A3-31589-709A7915 for ; Sat, 18 May 2013 12:15:05 -0400 Received: from dixsept.famillecollet.com (unknown [82.241.130.121]) by smtp5-g21.free.fr (Postfix) with ESMTP id 6258FD48109 for ; Sat, 18 May 2013 18:14:55 +0200 (CEST) Message-ID: <5197A8FE.6060908@fedoraproject.org> Date: Sat, 18 May 2013 18:14:54 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130515 Thunderbird/17.0.6 MIME-Version: 1.0 To: internals@lists.php.net References: <51965E51.80004@fedoraproject.org> In-Reply-To: <51965E51.80004@fedoraproject.org> X-Enigmail-Version: 1.5.1 Content-Type: multipart/mixed; boundary="------------010205090803080901000101" Subject: Re: [PHP-DEV] php-fpm and systemd integration From: remi@fedoraproject.org (Remi Collet) --------------010205090803080901000101 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le 17/05/2013 18:44, Remi Collet a écrit : > Any feedback before I process ? From proposal from Jérôme, I have add a new "systemd_interval" option to configure the interval between 2 systemd notification (0 means disabled, except initial notification which stay mandatory by design) Note : this small feature also allow to set the service in watchdog mode (it will enter "failed" state if systemd don't receive notification during configured interval). In this case, the watchdog interval overrides the configured interval option. Remi. --------------010205090803080901000101 Content-Type: text/plain; charset=UTF-8; name="patchv2.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patchv2.txt" ZGlmZiAtdXAgLi4vc2FwaS9mcG0vY29uZmlnLm00LnN5c3RlbWQgLi4vc2FwaS9mcG0vY29u ZmlnLm00Ci0tLSAuLi9zYXBpL2ZwbS9jb25maWcubTQuc3lzdGVtZAkyMDEyLTEyLTA1IDEx OjQwOjU0LjAwMDAwMDAwMCArMDEwMAorKysgLi4vc2FwaS9mcG0vY29uZmlnLm00CTIwMTMt MDUtMTggMTY6MjQ6MjAuMDE2NDkwOTEyICswMjAwCkBAIC01NjMsNiArNTYzLDI2IEBAIGlm IHRlc3QgIiRQSFBfRlBNIiAhPSAibm8iOyB0aGVuCiAgIFsgIC0td2l0aC1mcG0tZ3JvdXBb PUdSUF0gIFNldCB0aGUgZ3JvdXAgZm9yIHBocC1mcG0gdG8gcnVuIGFzLiBGb3IgYSBzeXN0 ZW0gdXNlciwgdGhpcyAKICAgICAgICAgICAgICAgICAgIHNob3VsZCB1c3VhbGx5IGJlIHNl dCB0byBtYXRjaCB0aGUgZnBtIHVzZXJuYW1lIChkZWZhdWx0OiBub2JvZHkpXSwgbm9ib2R5 LCBubykKIAorICBQSFBfQVJHX1dJVEgoZnBtLXN5c3RlbWQsLAorICBbICAtLXdpdGgtZnBt LXN5c3RlbWQgICAgICBBY3RpdmF0ZSBzeXN0ZW1kIGludGVncmF0aW9uXSwgbm8sIG5vKQor CisgIGlmIHRlc3QgIiRQSFBfRlBNX1NZU1RFTUQiICE9ICJubyIgOyB0aGVuCisgICAgQUNf Q0hFQ0tfTElCKHN5c3RlbWQtZGFlbW9uLCBzZF9ub3RpZnksIFNZU1RFTURfTElCUz0iLWxz eXN0ZW1kLWRhZW1vbiIpCisgICAgQUNfQ0hFQ0tfSEVBREVSUyhzeXN0ZW1kL3NkLWRhZW1v bi5oLCBbSEFWRV9TRF9EQUVNT05fSD0ieWVzIl0sIFtIQVZFX1NEX0RBRU1PTl9IPSJubyJd KQorICAgIGlmIHRlc3QgJEhBVkVfU0RfREFFTU9OX0ggPSAibm8iIHx8IHRlc3QgLXogIiR7 U1lTVEVNRF9MSUJTfSI7IHRoZW4KKyAgICAgIEFDX01TR19FUlJPUihbWW91ciBzeXN0ZW0g ZG9lcyBub3Qgc3VwcG9ydCBzeXN0ZW1kLl0pCisgICAgZWxzZQorICAgICAgQUNfREVGSU5F KEhBVkVfU1lTVEVNRCwgMSwgW0ZQTSB1c2Ugc3lzdGVtZCBpbnRlZ3JhdGlvbl0pCisgICAg ICBQSFBfRlBNX1NEX0ZJTEVTPSJmcG0vZnBtX3N5c3RlbWQuYyIKKyAgICAgIFBIUF9BRERf TElCUkFSWShzeXN0ZW1kLWRhZW1vbikKKyAgICAgIHBocF9mcG1fc3lzdGVtZD1ub3RpZnkK KyAgICBmaQorICBlbHNlCisgICAgcGhwX2ZwbV9zeXN0ZW1kPXNpbXBsZQorICBmaQorICBQ SFBfU1VCU1RfT0xEKHBocF9mcG1fc3lzdGVtZCkKKyAgQUNfREVGSU5FX1VOUVVPVEVEKFBI UF9GUE1fU1lTVEVNRCwgIiRwaHBfZnBtX3N5c3RlbWQiLCBbZnBtIHN5c3RlbWQgc2Vydmlj ZSB0eXBlXSkKKwogICBpZiB0ZXN0IC16ICIkUEhQX0ZQTV9VU0VSIiAtbyAiJFBIUF9GUE1f VVNFUiIgPSAieWVzIiAtbyAiJFBIUF9GUE1fVVNFUiIgPSAibm8iOyB0aGVuCiAgICAgcGhw X2ZwbV91c2VyPSJub2JvZHkiCiAgIGVsc2UKQEAgLTYzMSw3ICs2NTEsNyBAQCBpZiB0ZXN0 ICIkUEhQX0ZQTSIgIT0gIm5vIjsgdGhlbgogCQlmcG0vZXZlbnRzL3BvcnQuYyBcCiAgICIK IAotICBQSFBfU0VMRUNUX1NBUEkoZnBtLCBwcm9ncmFtLCAkUEhQX0ZQTV9GSUxFUyAkUEhQ X0ZQTV9UUkFDRV9GSUxFUywgJFBIUF9GUE1fQ0ZMQUdTLCAnJChTQVBJX0ZQTV9QQVRIKScp CisgIFBIUF9TRUxFQ1RfU0FQSShmcG0sIHByb2dyYW0sICRQSFBfRlBNX0ZJTEVTICRQSFBf RlBNX1RSQUNFX0ZJTEVTICRQSFBfRlBNX1NEX0ZJTEVTLCAkUEhQX0ZQTV9DRkxBR1MsICck KFNBUElfRlBNX1BBVEgpJykKIAogICBjYXNlICRob3N0X2FsaWFzIGluCiAgICAgICAqYWl4 KikKZGlmZiAtdXAgLi4vc2FwaS9mcG0vZnBtL2ZwbV9jb25mLmMuc3lzdGVtZCAuLi9zYXBp L2ZwbS9mcG0vZnBtX2NvbmYuYwotLS0gLi4vc2FwaS9mcG0vZnBtL2ZwbV9jb25mLmMuc3lz dGVtZAkyMDEzLTA1LTE4IDE2OjU5OjM1LjAzNjAwNTk1OCArMDIwMAorKysgLi4vc2FwaS9m cG0vZnBtL2ZwbV9jb25mLmMJMjAxMy0wNS0xOCAxNzoyMToxNi45OTA0NDEwMDcgKzAyMDAK QEAgLTQ1LDYgKzQ1LDEwIEBACiAjaW5jbHVkZSAiZnBtX2xvZy5oIgogI2luY2x1ZGUgImZw bV9ldmVudHMuaCIKICNpbmNsdWRlICJ6bG9nLmgiCisjaWZkZWYgSEFWRV9TWVNURU1ECisj aW5jbHVkZSAiZnBtX3N5c3RlbWQuaCIKKyNlbmRpZgorCiAKICNkZWZpbmUgU1RSMlNUUihh KSAoYSA/IGEgOiAidW5kZWZpbmVkIikKICNkZWZpbmUgQk9PTDJTVFIoYSkgKGEgPyAieWVz IiA6ICJubyIpCkBAIC03Myw2ICs3NywxMCBAQCBzdHJ1Y3QgZnBtX2dsb2JhbF9jb25maWdf cyBmcG1fZ2xvYmFsX2NvCiAjZW5kaWYKIAkucHJvY2Vzc19tYXggPSAwLAogCS5wcm9jZXNz X3ByaW9yaXR5ID0gNjQsIC8qIDY0IG1lYW5zIHVuc2V0ICovCisjaWZkZWYgSEFWRV9TWVNU RU1ECisJLnN5c3RlbWRfd2F0Y2hkb2cgPSAwLAorCS5zeXN0ZW1kX2ludGVydmFsID0gLTEs IC8qIC0xIG1lYW5zIG5vdCBzZXQgKi8KKyNlbmRpZgogfTsKIHN0YXRpYyBzdHJ1Y3QgZnBt X3dvcmtlcl9wb29sX3MgKmN1cnJlbnRfd3AgPSBOVUxMOwogc3RhdGljIGludCBpbmlfcmVj dXJzaW9uID0gMDsKQEAgLTEwMCw2ICsxMDgsOSBAQCBzdGF0aWMgc3RydWN0IGluaV92YWx1 ZV9wYXJzZXJfcyBpbmlfZnBtCiAJeyAicmxpbWl0X2ZpbGVzIiwgICAgICAgICAgICAgICAg JmZwbV9jb25mX3NldF9pbnRlZ2VyLCAgICAgICAgIEdPKHJsaW1pdF9maWxlcykgfSwKIAl7 ICJybGltaXRfY29yZSIsICAgICAgICAgICAgICAgICAmZnBtX2NvbmZfc2V0X3JsaW1pdF9j b3JlLCAgICAgR08ocmxpbWl0X2NvcmUpIH0sCiAJeyAiZXZlbnRzLm1lY2hhbmlzbSIsICAg ICAgICAgICAgJmZwbV9jb25mX3NldF9zdHJpbmcsICAgICAgICAgIEdPKGV2ZW50c19tZWNo YW5pc20pIH0sCisjaWZkZWYgSEFWRV9TWVNURU1ECisJeyAic3lzdGVtZF9pbnRlcnZhbCIs ICAgICAgICAgICAgJmZwbV9jb25mX3NldF90aW1lLCAgICAgICAgICAgIEdPKHN5c3RlbWRf aW50ZXJ2YWwpIH0sCisjZW5kaWYKIAl7IDAsIDAsIDAgfQogfTsKIApAQCAtMTE1Miw2ICsx MTYzLDEyIEBAIHN0YXRpYyBpbnQgZnBtX2NvbmZfcG9zdF9wcm9jZXNzKGludCBmb3IKIAkJ ZnBtX2dsb2JhbF9jb25maWcuZXJyb3JfbG9nID0gc3RyZHVwKCJsb2cvcGhwLWZwbS5sb2ci KTsKIAl9CiAKKyNpZmRlZiBIQVZFX1NZU1RFTUQKKwlpZiAoMCA+IGZwbV9zeXN0ZW1kX2Nv bmYoKSkgeworCQlyZXR1cm4gLTE7CisJfQorI2VuZGlmCisKICNpZmRlZiBIQVZFX1NZU0xP R19ICiAJaWYgKCFmcG1fZ2xvYmFsX2NvbmZpZy5zeXNsb2dfaWRlbnQpIHsKIAkJZnBtX2ds b2JhbF9jb25maWcuc3lzbG9nX2lkZW50ID0gc3RyZHVwKCJwaHAtZnBtIik7CmRpZmYgLXVw IC4uL3NhcGkvZnBtL2ZwbS9mcG1fY29uZi5oLnN5c3RlbWQgLi4vc2FwaS9mcG0vZnBtL2Zw bV9jb25mLmgKLS0tIC4uL3NhcGkvZnBtL2ZwbS9mcG1fY29uZi5oLnN5c3RlbWQJMjAxMy0w NS0xOCAxNjo1OTozMC42MjI5OTAyNzkgKzAyMDAKKysrIC4uL3NhcGkvZnBtL2ZwbS9mcG1f Y29uZi5oCTIwMTMtMDUtMTggMTc6MDA6NDguNzc3MjY3OTY3ICswMjAwCkBAIC00MCw2ICs0 MCwxMCBAQCBzdHJ1Y3QgZnBtX2dsb2JhbF9jb25maWdfcyB7CiAJaW50IHJsaW1pdF9maWxl czsKIAlpbnQgcmxpbWl0X2NvcmU7CiAJY2hhciAqZXZlbnRzX21lY2hhbmlzbTsKKyNpZmRl ZiBIQVZFX1NZU1RFTUQKKwlpbnQgc3lzdGVtZF93YXRjaGRvZzsKKwlpbnQgc3lzdGVtZF9p bnRlcnZhbDsKKyNlbmRpZgogfTsKIAogZXh0ZXJuIHN0cnVjdCBmcG1fZ2xvYmFsX2NvbmZp Z19zIGZwbV9nbG9iYWxfY29uZmlnOwpkaWZmIC11cCAuLi9zYXBpL2ZwbS9mcG0vZnBtX2V2 ZW50cy5jLnN5c3RlbWQgLi4vc2FwaS9mcG0vZnBtL2ZwbV9ldmVudHMuYwotLS0gLi4vc2Fw aS9mcG0vZnBtL2ZwbV9ldmVudHMuYy5zeXN0ZW1kCTIwMTItMTItMDUgMTE6NDA6MzkuMDAw MDAwMDAwICswMTAwCisrKyAuLi9zYXBpL2ZwbS9mcG0vZnBtX2V2ZW50cy5jCTIwMTMtMDUt MTggMTY6MjQ6MjAuMDE2NDkwOTEyICswMjAwCkBAIC0yOSw2ICsyOSwxMCBAQAogI2luY2x1 ZGUgImV2ZW50cy9wb3J0LmgiCiAjaW5jbHVkZSAiZXZlbnRzL2txdWV1ZS5oIgogCisjaWZk ZWYgSEFWRV9TWVNURU1ECisjaW5jbHVkZSAiZnBtX3N5c3RlbWQuaCIKKyNlbmRpZgorCiAj ZGVmaW5lIGZwbV9ldmVudF9zZXRfdGltZW91dChldiwgbm93KSB0aW1lcmFkZCgmKG5vdyks ICYoZXYpLT5mcmVxdWVuY3ksICYoZXYpLT50aW1lb3V0KTsKIAogc3RhdGljIHZvaWQgZnBt X2V2ZW50X2NsZWFudXAoaW50IHdoaWNoLCB2b2lkICphcmcpOwpAQCAtMzYxLDYgKzM2NSwx MCBAQCB2b2lkIGZwbV9ldmVudF9sb29wKGludCBlcnIpIC8qIHt7eyAqLwogCiAJCXpsb2co WkxPR19ERUJVRywgIiV6dSBieXRlcyBoYXZlIGJlZW4gcmVzZXJ2ZWQgaW4gU0hNIiwgZnBt X3NobV9nZXRfc2l6ZV9hbGxvY2F0ZWQoKSk7CiAJCXpsb2coWkxPR19OT1RJQ0UsICJyZWFk eSB0byBoYW5kbGUgY29ubmVjdGlvbnMiKTsKKworI2lmZGVmIEhBVkVfU1lTVEVNRAorCQlm cG1fc3lzdGVtZF9oZWFydGJlYXQoTlVMTCwgMCwgTlVMTCk7CisjZW5kaWYKIAl9CiAKIAl3 aGlsZSAoMSkgewpkaWZmIC11cCAuLi9zYXBpL2ZwbS9mcG0vZnBtX3N5c3RlbWQuYy5zeXN0 ZW1kIC4uL3NhcGkvZnBtL2ZwbS9mcG1fc3lzdGVtZC5jCi0tLSAuLi9zYXBpL2ZwbS9mcG0v ZnBtX3N5c3RlbWQuYy5zeXN0ZW1kCTIwMTMtMDUtMTggMTY6MjQ6MjAuMDE3NDkwOTE1ICsw MjAwCisrKyAuLi9zYXBpL2ZwbS9mcG0vZnBtX3N5c3RlbWQuYwkyMDEzLTA1LTE4IDE3OjUz OjQ4LjEwOTU3ODUxOSArMDIwMApAQCAtMCwwICsxLDExMyBAQAorI2luY2x1ZGUgImZwbV9j b25maWcuaCIKKworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5c3RlbWQv c2QtZGFlbW9uLmg+CisKKyNpbmNsdWRlICJmcG0uaCIKKyNpbmNsdWRlICJmcG1fY2xvY2su aCIKKyNpbmNsdWRlICJmcG1fd29ya2VyX3Bvb2wuaCIKKyNpbmNsdWRlICJmcG1fc2NvcmVi b2FyZC5oIgorI2luY2x1ZGUgInpsb2cuaCIKKyNpbmNsdWRlICJmcG1fc3lzdGVtZC5oIgor CisKK3N0YXRpYyB2b2lkIGZwbV9zeXN0ZW1kKCkgLyoge3t7ICovCit7CisJc3RhdGljIHVu c2lnbmVkIGxvbmcgaW50IGxhc3Q9MDsKKwlzdHJ1Y3QgZnBtX3dvcmtlcl9wb29sX3MgKndw OworCXVuc2lnbmVkIGxvbmcgaW50IHJlcXVlc3RzPTAsIHNsb3dfcmVxPTA7CisJaW50IGFj dGl2ZT0wLCBpZGxlPTA7CisKKworCWZvciAod3AgPSBmcG1fd29ya2VyX2FsbF9wb29sczsg d3A7IHdwID0gd3AtPm5leHQpIHsKKwkJaWYgKHdwLT5zY29yZWJvYXJkKSB7CisJCQlhY3Rp dmUgICArPSB3cC0+c2NvcmVib2FyZC0+YWN0aXZlOworCQkJaWRsZSAgICAgKz0gd3AtPnNj b3JlYm9hcmQtPmlkbGU7CisJCQlyZXF1ZXN0cyArPSB3cC0+c2NvcmVib2FyZC0+cmVxdWVz dHM7CisJCQlzbG93X3JlcSArPSB3cC0+c2NvcmVib2FyZC0+c2xvd19ycTsKKwkJfQorCX0K KworLyoKKwl6bG9nKFpMT0dfREVCVUcsICJzeXN0ZW1kICVzIChQcm9jZXNzZXMgYWN0aXZl OiVkLCBpZGxlOiVkLCBSZXF1ZXN0czolbHUsIHNsb3c6JWx1LCBUcmFmZmljOiUuM2dyZXEv c2VjKSIsIAorCQkJZnBtX2dsb2JhbF9jb25maWcuc3lzdGVtZF93YXRjaGRvZyA/ICJ3YXRj aGRvZyIgOiAiaGVhcnRiZWF0IiwKKwkJCWFjdGl2ZSwgaWRsZSwgcmVxdWVzdHMsIHNsb3df cmVxLCAoKGZsb2F0KXJlcXVlc3RzIC0gbGFzdCkgKiAxMDAwLjAgLyBmcG1fZ2xvYmFsX2Nv bmZpZy5zeXN0ZW1kX2ludGVydmFsKTsKKyovCisKKwlpZiAoMCA+IHNkX25vdGlmeWYoMCwg IlJFQURZPTFcbiVzIgorCQkJCSJTVEFUVVM9UHJvY2Vzc2VzIGFjdGl2ZTogJWQsIGlkbGU6 ICVkLCBSZXF1ZXN0czogJWx1LCBzbG93OiAlbHUsIFRyYWZmaWM6ICUuM2dyZXEvc2VjIiwK KwkJCQlmcG1fZ2xvYmFsX2NvbmZpZy5zeXN0ZW1kX3dhdGNoZG9nID8gIldBVENIRE9HPTFc biIgOiAiIiwKKwkJCQlhY3RpdmUsIGlkbGUsIHJlcXVlc3RzLCBzbG93X3JlcSwgKChmbG9h dClyZXF1ZXN0cyAtIGxhc3QpICogMTAwMC4wIC8gZnBtX2dsb2JhbF9jb25maWcuc3lzdGVt ZF9pbnRlcnZhbCkpIHsKKwkJemxvZyhaTE9HX05PVElDRSwgImZhaWxlZCB0byBub3RpZnkg c3RhdHVzIHRvIHN5c3RlbWQiKTsKKwl9CisKKwlsYXN0ID0gcmVxdWVzdHM7Cit9CisvKiB9 fX0gKi8KKwordm9pZCBmcG1fc3lzdGVtZF9oZWFydGJlYXQoc3RydWN0IGZwbV9ldmVudF9z ICpldiwgc2hvcnQgd2hpY2gsIHZvaWQgKmFyZykgLyoge3t7ICovCit7CisJc3RhdGljIHN0 cnVjdCBmcG1fZXZlbnRfcyBoZWFydGJlYXQ7CisKKwlpZiAoZnBtX2dsb2JhbHMucGFyZW50 X3BpZCAhPSBnZXRwaWQoKSkgeworCQlyZXR1cm47IC8qIHNhbml0eSBjaGVjayAqLworCX0K KworCWlmICh3aGljaCA9PSBGUE1fRVZfVElNRU9VVCkgeworCQlmcG1fc3lzdGVtZCgpOwor CisJCXJldHVybjsKKwl9CisKKwlpZiAoMCA+IHNkX25vdGlmeWYoMCwgIlJFQURZPTFcbiIK KwkJCSAgICAgICAgICAiU1RBVFVTPVJlYWR5IHRvIGhhbmRsZSBjb25uZWN0aW9uc1xuIgor CQkJICAgICAgICAgICJNQUlOUElEPSVsdSIsCisJCQkgICAgICAgICAgKHVuc2lnbmVkIGxv bmcpIGdldHBpZCgpKSkgeworCQl6bG9nKFpMT0dfV0FSTklORywgImZhaWxlZCB0byBub3Rp Znkgc3RhcnQgdG8gc3lzdGVtZCIpOworCX0gZWxzZSB7CisJCXpsb2coWkxPR19ERUJVRywg ImhhdmUgbm90aWZ5IHN0YXJ0IHRvIHN5c3RlbWQiKTsKKwl9CisKKwkvKiBmaXJzdCBjYWxs IHdpdGhvdXQgc2V0dGluZyB3aGljaCB0byBpbml0aWFsaXplIHRoZSB0aW1lciAqLworCWlm IChmcG1fZ2xvYmFsX2NvbmZpZy5zeXN0ZW1kX2ludGVydmFsID4gMCkgeworCQlmcG1fZXZl bnRfc2V0X3RpbWVyKCZoZWFydGJlYXQsIEZQTV9FVl9QRVJTSVNULCAmZnBtX3N5c3RlbWRf aGVhcnRiZWF0LCBOVUxMKTsKKwkJZnBtX2V2ZW50X2FkZCgmaGVhcnRiZWF0LCBmcG1fZ2xv YmFsX2NvbmZpZy5zeXN0ZW1kX2ludGVydmFsKTsKKwkJemxvZyhaTE9HX05PVElDRSwgInN5 c3RlbWQgbW9uaXRvciBpbnRlcnZhbCBzZXQgdG8gJWRtcyIsIGZwbV9nbG9iYWxfY29uZmln LnN5c3RlbWRfaW50ZXJ2YWwpOworCX0gZWxzZSB7CisJCXpsb2coWkxPR19OT1RJQ0UsICJz eXN0ZW1kIG1vbml0b3IgZGlzYWJsZWQiKTsKKwl9Cit9CisvKiB9fX0gKi8KKworaW50IGZw bV9zeXN0ZW1kX2NvbmYoKSAvKiB7e3sgKi8KK3sKKwljaGFyICp3YXRjaGRvZzsKKwlpbnQg IGludGVydmFsID0gMDsKKworCXdhdGNoZG9nID0gZ2V0ZW52KCJXQVRDSERPR19VU0VDIik7 CisJaWYgKHdhdGNoZG9nKSB7CisJCS8qIHVzZWMgdG8gbXNlYywgYW5kIGhhbGYgdGhlIGNv bmZpZ3VyZWQgZGVsYXkgKi8KKwkJaW50ZXJ2YWwgPSAoaW50KShhdG9sKHdhdGNoZG9nKSAv IDIwMDBMKTsKKwkJemxvZyhaTE9HX0RFQlVHLCAiV0FUQ0hET0dfVVNFQz0lcywgaW50ZXJ2 YWw9JWQiLCB3YXRjaGRvZywgaW50ZXJ2YWwpOworCX0KKworCWlmIChpbnRlcnZhbCA+IDEw MDApIHsKKwkJaWYgKGZwbV9nbG9iYWxfY29uZmlnLnN5c3RlbWRfaW50ZXJ2YWwgPiAwKSB7 CisJCQl6bG9nKFpMT0dfV0FSTklORywgInN5c3RlbWRfaW50ZXJ2YWwgb3B0aW9uIGlnbm9y ZWQiKTsKKwkJfQorCQl6bG9nKFpMT0dfTk9USUNFLCAic3lzdGVtZCB3YXRjaGRvZyBjb25m aWd1cmVkIHRvICUuM2dzZWMiLCAoZmxvYXQpaW50ZXJ2YWwgLyAxMDAwLjApOworCQlmcG1f Z2xvYmFsX2NvbmZpZy5zeXN0ZW1kX3dhdGNoZG9nID0gMTsKKwkJZnBtX2dsb2JhbF9jb25m aWcuc3lzdGVtZF9pbnRlcnZhbCA9IGludGVydmFsOworCisJfSBlbHNlIGlmIChmcG1fZ2xv YmFsX2NvbmZpZy5zeXN0ZW1kX2ludGVydmFsIDwgMCkgeworCQkvKiBub3Qgc2V0ID0+IGRl ZmF1bHQgdmFsdWUgKi8KKwkJZnBtX2dsb2JhbF9jb25maWcuc3lzdGVtZF9pbnRlcnZhbCA9 IEZQTV9TWVNURU1EX0RFRkFVTFRfSEVBUlRCRUFUOworCisJfSBlbHNlIHsKKwkJLyogc2Vj IHRvIG1zZWMgKi8KKwkJZnBtX2dsb2JhbF9jb25maWcuc3lzdGVtZF9pbnRlcnZhbCAqPSAx MDAwOworCX0KKwlyZXR1cm4gMDsKK30KKy8qIH19fSAqLworCmRpZmYgLXVwIC4uL3NhcGkv ZnBtL2ZwbS9mcG1fc3lzdGVtZC5oLnN5c3RlbWQgLi4vc2FwaS9mcG0vZnBtL2ZwbV9zeXN0 ZW1kLmgKLS0tIC4uL3NhcGkvZnBtL2ZwbS9mcG1fc3lzdGVtZC5oLnN5c3RlbWQJMjAxMy0w NS0xOCAxNjoyNDoyMC4wMTc0OTA5MTUgKzAyMDAKKysrIC4uL3NhcGkvZnBtL2ZwbS9mcG1f c3lzdGVtZC5oCTIwMTMtMDUtMTggMTc6MTM6NTQuMjc4ODMwNjA5ICswMjAwCkBAIC0wLDAg KzEsMTMgQEAKKyNpZm5kZWYgRlBNX1NZU1RFTURfSAorI2RlZmluZSBGUE1fU1lTVEVNRF9I IDEKKworI2luY2x1ZGUgImZwbV9ldmVudHMuaCIKKworLyogMTBzIChpbiBtcykgaGVhcnRi ZWF0IGZvciBzeXN0ZW1kIHN0YXR1cyAqLworI2RlZmluZSBGUE1fU1lTVEVNRF9ERUZBVUxU X0hFQVJUQkVBVCAoMTAwMDApCisKK3ZvaWQgZnBtX3N5c3RlbWRfaGVhcnRiZWF0KHN0cnVj dCBmcG1fZXZlbnRfcyAqZXYsIHNob3J0IHdoaWNoLCB2b2lkICphcmcpOworaW50IGZwbV9z eXN0ZW1kX2NvbmYoKTsKKworI2VuZGlmCisKZGlmZiAtdXAgLi4vc2FwaS9mcG0vcGhwLWZw bS5zZXJ2aWNlLmluLnN5c3RlbWQgLi4vc2FwaS9mcG0vcGhwLWZwbS5zZXJ2aWNlLmluCi0t LSAuLi9zYXBpL2ZwbS9waHAtZnBtLnNlcnZpY2UuaW4uc3lzdGVtZAkyMDEyLTEyLTA1IDEx OjQwOjM5LjAwMDAwMDAwMCArMDEwMAorKysgLi4vc2FwaS9mcG0vcGhwLWZwbS5zZXJ2aWNl LmluCTIwMTMtMDUtMTggMTY6MjQ6MjAuMDE3NDkwOTE1ICswMjAwCkBAIC0zLDYgKzMsNyBA QCBEZXNjcmlwdGlvbj1UaGUgUEhQIEZhc3RDR0kgUHJvY2VzcyBNYW5hCiBBZnRlcj1zeXNs b2cudGFyZ2V0IG5ldHdvcmsudGFyZ2V0CiAKIFtTZXJ2aWNlXQorVHlwZT1AcGhwX2ZwbV9z eXN0ZW1kQAogUElERmlsZT1AbG9jYWxzdGF0ZWRpckAvcnVuL3BocC1mcG0ucGlkCiBFeGVj U3RhcnQ9QHNiaW5kaXJAL3BocC1mcG0gLS1ub2RhZW1vbml6ZSAtLWZwbS1jb25maWcgQHN5 c2NvbmZkaXJAL3BocC1mcG0uY29uZgogRXhlY1JlbG9hZD0vYmluL2tpbGwgLVVTUjIgJE1B SU5QSUQK --------------010205090803080901000101--