Date: Wed, 12 Dec 2012 19:33:41 -0500 (EST) From: Rick Macklem <rmacklem@uoguelph.ca> To: freebsd-hackers@freebsd.org Subject: request for review: gssd patch for alternate cred cache files Message-ID: <1860364947.1365748.1355358821312.JavaMail.root@erie.cs.uoguelph.ca> In-Reply-To: <503182717.1365734.1355358788463.JavaMail.root@erie.cs.uoguelph.ca>
next in thread | previous in thread | raw e-mail | index | archive | help
------=_Part_1365747_1486623735.1355358821309 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Hi, A couple of people have reported problems using NFS mounts with sec=krb5 because the version of sshd they use doesn't use credential cache files named /tmp/krb5cc_<N>. The attached patch modifies the gssd so that it roughly emulates what the gssd used by most Linux distros does when a new "-s" option is used. This has been tested by the reporters and fixed their issue. Would someone like to review this? rick ps: The patch can also be found at http://people.freebsd.org/~rmacklem/gssd-ccache.patch ------=_Part_1365747_1486623735.1355358821309 Content-Type: text/x-patch; name=gssd-ccache.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=gssd-ccache.patch LS0tIHVzci5zYmluL2dzc2QvZ3NzZC5jLnNhdjIJMjAxMi0xMC0wOCAxNjo0OTo1MC4wMDAwMDAw MDAgLTA0MDAKKysrIHVzci5zYmluL2dzc2QvZ3NzZC5jCTIwMTItMTItMTIgMTk6MTk6NTEuMDAw MDAwMDAwIC0wNTAwCkBAIC0zNSw3ICszNSw5IEBAIF9fRkJTRElEKCIkRnJlZUJTRDogaGVhZC91 c3Iuc2Jpbi9nc3NkL2cKICNpbmNsdWRlIDxzeXMvcXVldWUuaD4KICNpbmNsdWRlIDxzeXMvc3lz bG9nLmg+CiAjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxkaXJlbnQuaD4KICNpbmNsdWRl IDxlcnIuaD4KKyNpbmNsdWRlIDxrcmI1Lmg+CiAjaW5jbHVkZSA8cHdkLmg+CiAjaW5jbHVkZSA8 c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KQEAgLTY0LDggKzY2LDEyIEBAIGludCBnc3Nf cmVzb3VyY2VfY291bnQ7CiB1aW50MzJfdCBnc3NfbmV4dF9pZDsKIHVpbnQzMl90IGdzc19zdGFy dF90aW1lOwogaW50IGRlYnVnX2xldmVsOworc3RhdGljIGNoYXIgY2NmaWxlX2Rpcmxpc3RbUEFU SF9NQVggKyAxXSwgY2NmaWxlX3N1YnN0cmluZ1tOQU1FX01BWCArIDFdOworc3RhdGljIGNoYXIg cHJlZl9yZWFsbVsxMDI0XTsKIAogc3RhdGljIHZvaWQgZ3NzZF9sb2FkX21lY2godm9pZCk7Citz dGF0aWMgaW50IGZpbmRfY2NhY2hlX2ZpbGUoY29uc3QgY2hhciAqLCB1aWRfdCwgY2hhciAqKTsK K3N0YXRpYyBpbnQgaXNfYV92YWxpZF90Z3RfY2FjaGUoY29uc3QgY2hhciAqLCB1aWRfdCwgaW50 ICosIHRpbWVfdCAqKTsKIAogZXh0ZXJuIHZvaWQgZ3NzZF8xKHN0cnVjdCBzdmNfcmVxICpycXN0 cCwgU1ZDWFBSVCAqdHJhbnNwKTsKIGV4dGVybiBpbnQgZ3NzZF9zeXNjYWxsKGNoYXIgKnBhdGgp OwpAQCAtODIsMTQgKzg4LDQ1IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCWludCBm ZCwgb2xkbWFzaywgY2gsIGRlYnVnOwogCVNWQ1hQUlQgKnhwcnQ7CiAKKwkvKgorCSAqIEluaXRp YWxpemUgdGhlIGNyZWRlbnRpYWwgY2FjaGUgZmlsZSBuYW1lIHN1YnN0cmluZyBhbmQgdGhlCisJ ICogc2VhcmNoIGRpcmVjdG9yeSBsaXN0LgorCSAqLworCXN0cmxjcHkoY2NmaWxlX3N1YnN0cmlu ZywgImtyYjVjY18iLCBzaXplb2YoY2NmaWxlX3N1YnN0cmluZykpOworCWNjZmlsZV9kaXJsaXN0 WzBdID0gJ1wwJzsKKwlwcmVmX3JlYWxtWzBdID0gJ1wwJzsKIAlkZWJ1ZyA9IDA7Ci0Jd2hpbGUg KChjaCA9IGdldG9wdChhcmdjLCBhcmd2LCAiZCIpKSAhPSAtMSkgeworCXdoaWxlICgoY2ggPSBn ZXRvcHQoYXJnYywgYXJndiwgImRzOmM6cjoiKSkgIT0gLTEpIHsKIAkJc3dpdGNoIChjaCkgewog CQljYXNlICdkJzoKIAkJCWRlYnVnX2xldmVsKys7CiAJCQlicmVhazsKKwkJY2FzZSAncyc6CisJ CQkvKgorCQkJICogU2V0IHRoZSBkaXJlY3Rvcnkgc2VhcmNoIGxpc3QuIFRoaXMgZW5hYmxlcyB1 c2Ugb2YKKwkJCSAqIGZpbmRfY2NhY2hlX2ZpbGUoKSB0byBzZWFyY2ggdGhlIGRpcmVjdG9yaWVz IGZvciBhCisJCQkgKiBzdWl0YWJsZSBjcmVkZW50aWFscyBjYWNoZSBmaWxlLgorCQkJICovCisJ CQlzdHJsY3B5KGNjZmlsZV9kaXJsaXN0LCBvcHRhcmcsIHNpemVvZihjY2ZpbGVfZGlybGlzdCkp OworCQkJYnJlYWs7CisJCWNhc2UgJ2MnOgorCQkJLyoKKwkJCSAqIFNwZWNpZnkgYSBub24tZGVm YXVsdCBjcmVkZW50aWFsIGNhY2hlIGZpbGUKKwkJCSAqIHN1YnN0cmluZy4KKwkJCSAqLworCQkJ c3RybGNweShjY2ZpbGVfc3Vic3RyaW5nLCBvcHRhcmcsCisJCQkgICAgc2l6ZW9mKGNjZmlsZV9z dWJzdHJpbmcpKTsKKwkJCWJyZWFrOworCQljYXNlICdyJzoKKwkJCS8qCisJCQkgKiBTZXQgdGhl IHByZWZlcnJlZCByZWFsbSBmb3IgdGhlIGNyZWRlbnRpYWwgY2FjaGUgdGd0LgorCQkJICovCisJ CQlzdHJsY3B5KHByZWZfcmVhbG0sIG9wdGFyZywgc2l6ZW9mKHByZWZfcmVhbG0pKTsKKwkJCWJy ZWFrOwogCQlkZWZhdWx0OgotCQkJZnByaW50ZihzdGRlcnIsICJ1c2FnZTogJXMgWy1kXVxuIiwg YXJndlswXSk7CisJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCSAgICAidXNhZ2U6ICVzIFstZF0gWy1z IGRpci1saXN0XSBbLWMgZmlsZS1zdWJzdHJpbmddIgorCQkJICAgICIgWy1yIHByZWZlcnJlZC1y ZWFsbV1cbiIsIGFyZ3ZbMF0pOwogCQkJZXhpdCgxKTsKIAkJCWJyZWFrOwogCQl9CkBAIC0yNjcs MTMgKzMwNCwzNiBAQCBnc3NkX2luaXRfc2VjX2NvbnRleHRfMV9zdmMoaW5pdF9zZWNfY29uCiAJ Z3NzX2NyZWRfaWRfdCBjcmVkID0gR1NTX0NfTk9fQ1JFREVOVElBTDsKIAlnc3NfY3R4X2lkX3Qg Y3R4ID0gR1NTX0NfTk9fQ09OVEVYVDsKIAlnc3NfbmFtZV90IG5hbWUgPSBHU1NfQ19OT19OQU1F OwotCWNoYXIgY2NuYW1lW3N0cmxlbigiRklMRTovdG1wL2tyYjVjY18iKSArIDYgKyAxXTsKKwlj aGFyIGNjbmFtZVtQQVRIX01BWCArIDUgKyAxXSwgKmNwLCAqY3AyOworCWludCBnb3RvbmU7CiAK LQlzbnByaW50ZihjY25hbWUsIHNpemVvZihjY25hbWUpLCAiRklMRTovdG1wL2tyYjVjY18lZCIs Ci0JICAgIChpbnQpIGFyZ3AtPnVpZCk7CisJbWVtc2V0KHJlc3VsdCwgMCwgc2l6ZW9mKCpyZXN1 bHQpKTsKKwlpZiAoY2NmaWxlX2Rpcmxpc3RbMF0gIT0gJ1wwJyAmJiBhcmdwLT5jcmVkID09IDAp IHsKKwkJZ290b25lID0gMDsKKwkJY3AgPSBjY2ZpbGVfZGlybGlzdDsKKwkJZG8geworCQkJY3Ay ID0gc3RyY2hyKGNwLCAnOicpOworCQkJaWYgKGNwMiAhPSBOVUxMKQorCQkJCSpjcDIgPSAnXDAn OworCQkJZ290b25lID0gZmluZF9jY2FjaGVfZmlsZShjcCwgYXJncC0+dWlkLCBjY25hbWUpOwor CQkJaWYgKGdvdG9uZSAhPSAwKQorCQkJCWJyZWFrOworCQkJaWYgKGNwMiAhPSBOVUxMKQorCQkJ CSpjcDIrKyA9ICc6JzsKKwkJCWNwID0gY3AyOworCQl9IHdoaWxlIChjcCAhPSBOVUxMICYmICpj cCAhPSAnXDAnKTsKKwkJaWYgKGdvdG9uZSA9PSAwKQorCQkJc25wcmludGYoY2NuYW1lLCBzaXpl b2YoY2NuYW1lKSwgIkZJTEU6L3RtcC9rcmI1Y2NfJWQiLAorCQkJICAgIChpbnQpIGFyZ3AtPnVp ZCk7CisJfSBlbHNlCisJCS8qCisJCSAqIElmIHRoZXJlIHdhc24ndCBhICItcyIgb3B0aW9uIG9y IHRoZSBjcmVkZW50aWFscyBoYXZlCisJCSAqIGJlZW4gcHJvdmlkZWQgYXMgYW4gYXJndW1lbnQs IGRvIGl0IHRoZSBvbGQgd2F5LgorCQkgKi8KKwkJc25wcmludGYoY2NuYW1lLCBzaXplb2YoY2Nu YW1lKSwgIkZJTEU6L3RtcC9rcmI1Y2NfJWQiLAorCQkgICAgKGludCkgYXJncC0+dWlkKTsKIAlz ZXRlbnYoIktSQjVDQ05BTUUiLCBjY25hbWUsIFRSVUUpOwogCi0JbWVtc2V0KHJlc3VsdCwgMCwg c2l6ZW9mKCpyZXN1bHQpKTsKIAlpZiAoYXJncC0+Y3JlZCkgewogCQljcmVkID0gZ3NzZF9maW5k X3Jlc291cmNlKGFyZ3AtPmNyZWQpOwogCQlpZiAoIWNyZWQpIHsKQEAgLTUxNiwxMyArNTc2LDM3 IEBAIGdzc2RfYWNxdWlyZV9jcmVkXzFfc3ZjKGFjcXVpcmVfY3JlZF9hcmcKIHsKIAlnc3NfbmFt ZV90IGRlc2lyZWRfbmFtZSA9IEdTU19DX05PX05BTUU7CiAJZ3NzX2NyZWRfaWRfdCBjcmVkOwot CWNoYXIgY2NuYW1lW3N0cmxlbigiRklMRTovdG1wL2tyYjVjY18iKSArIDYgKyAxXTsKKwljaGFy IGNjbmFtZVtQQVRIX01BWCArIDUgKyAxXSwgKmNwLCAqY3AyOworCWludCBnb3RvbmU7CiAKLQlz bnByaW50ZihjY25hbWUsIHNpemVvZihjY25hbWUpLCAiRklMRTovdG1wL2tyYjVjY18lZCIsCi0J ICAgIChpbnQpIGFyZ3AtPnVpZCk7CisJbWVtc2V0KHJlc3VsdCwgMCwgc2l6ZW9mKCpyZXN1bHQp KTsKKwlpZiAoY2NmaWxlX2Rpcmxpc3RbMF0gIT0gJ1wwJyAmJiBhcmdwLT5kZXNpcmVkX25hbWUg PT0gMCkgeworCQlnb3RvbmUgPSAwOworCQljcCA9IGNjZmlsZV9kaXJsaXN0OworCQlkbyB7CisJ CQljcDIgPSBzdHJjaHIoY3AsICc6Jyk7CisJCQlpZiAoY3AyICE9IE5VTEwpCisJCQkJKmNwMiA9 ICdcMCc7CisJCQlnb3RvbmUgPSBmaW5kX2NjYWNoZV9maWxlKGNwLCBhcmdwLT51aWQsIGNjbmFt ZSk7CisJCQlpZiAoZ290b25lICE9IDApCisJCQkJYnJlYWs7CisJCQlpZiAoY3AyICE9IE5VTEwp CisJCQkJKmNwMisrID0gJzonOworCQkJY3AgPSBjcDI7CisJCX0gd2hpbGUgKGNwICE9IE5VTEwg JiYgKmNwICE9ICdcMCcpOworCQlpZiAoZ290b25lID09IDApCisJCQlzbnByaW50ZihjY25hbWUs IHNpemVvZihjY25hbWUpLCAiRklMRTovdG1wL2tyYjVjY18lZCIsCisJCQkgICAgKGludCkgYXJn cC0+dWlkKTsKKwl9IGVsc2UKKwkJLyoKKwkJICogSWYgdGhlcmUgd2Fzbid0IGEgIi1zIiBvcHRp b24gb3IgdGhlIG5hbWUgaGFzCisJCSAqIGJlZW4gcHJvdmlkZWQgYXMgYW4gYXJndW1lbnQsIGRv IGl0IHRoZSBvbGQgd2F5LgorCQkgKiAoVGhlIG5hbWUgaXMgcHJvdmlkZWQgZm9yIGhvc3QgYmFz ZWQgaW5pdGlhdG9yIGNyZWRlbnRpYWxzLikKKwkJICovCisJCXNucHJpbnRmKGNjbmFtZSwgc2l6 ZW9mKGNjbmFtZSksICJGSUxFOi90bXAva3JiNWNjXyVkIiwKKwkJICAgIChpbnQpIGFyZ3AtPnVp ZCk7CiAJc2V0ZW52KCJLUkI1Q0NOQU1FIiwgY2NuYW1lLCBUUlVFKTsKIAotCW1lbXNldChyZXN1 bHQsIDAsIHNpemVvZigqcmVzdWx0KSk7CiAJaWYgKGFyZ3AtPmRlc2lyZWRfbmFtZSkgewogCQlk ZXNpcmVkX25hbWUgPSBnc3NkX2ZpbmRfcmVzb3VyY2UoYXJncC0+ZGVzaXJlZF9uYW1lKTsKIAkJ aWYgKCFkZXNpcmVkX25hbWUpIHsKQEAgLTYzMSwzICs3MTUsMTcyIEBAIGdzc2RfMV9mcmVlcmVz dWx0KFNWQ1hQUlQgKnRyYW5zcCwgeGRycHIKIAogCXJldHVybiAoVFJVRSk7CiB9CisKKy8qCisg KiBTZWFyY2ggYSBkaXJlY3RvcnkgZm9yIHRoZSBtb3N0IGxpa2VseSBjYW5kaWRhdGUgdG8gYmUg dXNlZCBhcyB0aGUKKyAqIGNyZWRlbnRpYWwgY2FjaGUgZm9yIGEgdWlkLiBJZiBzdWNjZXNzZnVs LCByZXR1cm4gMSBhbmQgZmlsbCB0aGUKKyAqIGZpbGUncyBwYXRoIGlkIGludG8gInJwYXRoIi4g T3RoZXJ3aXNlLCByZXR1cm4gMC4KKyAqLworc3RhdGljIGludAorZmluZF9jY2FjaGVfZmlsZShj b25zdCBjaGFyICpkaXJwYXRoLCB1aWRfdCB1aWQsIGNoYXIgKnJwYXRoKQoreworCURJUiAqZGly cDsKKwlzdHJ1Y3QgZGlyZW50ICpkcDsKKwlzdHJ1Y3Qgc3RhdCBzYjsKKwl0aW1lX3QgZXhwdGlt ZSwgb2V4cHRpbWU7CisJaW50IGdvdG9uZSwgbGVuLCByYXRpbmcsIG9yYXRpbmc7CisJY2hhciBu YW1lcGF0aFtQQVRIX01BWCArIDUgKyAxXTsKKwljaGFyIHJldHBhdGhbUEFUSF9NQVggKyA1ICsg MV07CisKKwlkaXJwID0gb3BlbmRpcihkaXJwYXRoKTsKKwlpZiAoZGlycCA9PSBOVUxMKQorCQly ZXR1cm4gKDApOworCWdvdG9uZSA9IDA7CisJb3JhdGluZyA9IDA7CisJb2V4cHRpbWUgPSAwOwor CXdoaWxlICgoZHAgPSByZWFkZGlyKGRpcnApKSAhPSBOVUxMKSB7CisJCWxlbiA9IHNucHJpbnRm KG5hbWVwYXRoLCBzaXplb2YobmFtZXBhdGgpLCAiJXMvJXMiLCBkaXJwYXRoLAorCQkgICAgZHAt PmRfbmFtZSk7CisJCWlmIChsZW4gPCBzaXplb2YobmFtZXBhdGgpICYmCisJCSAgICBzdHJzdHIo ZHAtPmRfbmFtZSwgY2NmaWxlX3N1YnN0cmluZykgIT0gTlVMTCAmJgorCQkgICAgbHN0YXQobmFt ZXBhdGgsICZzYikgPj0gMCAmJgorCQkgICAgc2Iuc3RfdWlkID09IHVpZCAmJgorCQkgICAgU19J U1JFRyhzYi5zdF9tb2RlKSkgeworCQkJbGVuID0gc25wcmludGYobmFtZXBhdGgsIHNpemVvZihu YW1lcGF0aCksICJGSUxFOiVzLyVzIiwKKwkJCSAgICBkaXJwYXRoLCBkcC0+ZF9uYW1lKTsKKwkJ CWlmIChsZW4gPCBzaXplb2YobmFtZXBhdGgpICYmCisJCQkgICAgaXNfYV92YWxpZF90Z3RfY2Fj aGUobmFtZXBhdGgsIHVpZCwgJnJhdGluZywKKwkJCSAgICAmZXhwdGltZSkgIT0gMCkgeworCQkJ CWlmIChnb3RvbmUgPT0gMCB8fCByYXRpbmcgPiBvcmF0aW5nIHx8CisJCQkJICAgIChyYXRpbmcg PT0gb3JhdGluZyAmJiBleHB0aW1lID4gb2V4cHRpbWUpKSB7CisJCQkJCW9yYXRpbmcgPSByYXRp bmc7CisJCQkJCW9leHB0aW1lID0gZXhwdGltZTsKKwkJCQkJc3RyY3B5KHJldHBhdGgsIG5hbWVw YXRoKTsKKwkJCQkJZ290b25lID0gMTsKKwkJCQl9CisJCQl9CisJCX0KKwl9CisJY2xvc2VkaXIo ZGlycCk7CisJaWYgKGdvdG9uZSAhPSAwKSB7CisJCXN0cmNweShycGF0aCwgcmV0cGF0aCk7CisJ CXJldHVybiAoMSk7CisJfQorCXJldHVybiAoMCk7Cit9CisKKy8qCisgKiBUcnkgdG8gZGV0ZXJt aW5lIGlmIHRoZSBmaWxlIGlzIGEgdmFsaWQgdGd0IGNhY2hlIGZpbGUuCisgKiBDaGVjayB0aGF0 IHRoZSBmaWxlIGhhcyBhIHZhbGlkIHRndCBmb3IgYSBwcmluY2lwYWwuCisgKiBJZiBpdCBkb2Vz LCByZXR1cm4gMSwgb3RoZXJ3aXNlIHJldHVybiAwLgorICogSXQgYWxzbyByZXR1cm5zIGEgInJh dGluZyIgYW5kIHRoZSBleHBpcnkgdGltZSBmb3IgdGhlIFRHVCwgd2hlbiBmb3VuZC4KKyAqIFRo aXMgInJhdGluZyIgaXMgaGlnaGVyIGJhc2VkIG9uIGhldXJpc3RpY3MgdGhhdCBtYWtlIGl0IG1v cmUKKyAqIGxpa2VseSB0byBiZSB0aGUgY29ycmVjdCBjcmVkZW50aWFsIGNhY2hlIGZpbGUgdG8g dXNlLiBJdCBjYW4KKyAqIGJlIHVzZWQgYnkgdGhlIGNhbGxlciwgYWxvbmcgd2l0aCBleHBpcnkg dGltZSwgdG8gc2VsZWN0IGZyb20KKyAqIG11bHRpcGxlIGNyZWRlbnRpYWwgY2FjaGUgZmlsZXMu CisgKi8KK3N0YXRpYyBpbnQKK2lzX2FfdmFsaWRfdGd0X2NhY2hlKGNvbnN0IGNoYXIgKmZpbGVw YXRoLCB1aWRfdCB1aWQsIGludCAqcmV0cmF0aW5nLAorICAgIHRpbWVfdCAqcmV0ZXhwdGltZSkK K3sKKwlrcmI1X2NvbnRleHQgY29udGV4dDsKKwlrcmI1X3ByaW5jaXBhbCBwcmluYzsKKwlrcmI1 X2NjYWNoZSBjY2FjaGU7CisJa3JiNV9lcnJvcl9jb2RlIHJldHZhbDsKKwlrcmI1X2NjX2N1cnNv ciBjdXJzZTsKKwlrcmI1X2NyZWRzIGtyYmNyZWQ7CisJaW50IGdvdG9uZSwgb3JhdGluZywgcmF0 aW5nLCByZXQ7CisJc3RydWN0IHBhc3N3ZCAqcHc7CisJY2hhciAqY3AsICpjcDIsICpwbmFtZTsK Kwl0aW1lX3QgZXhwdGltZTsKKworCS8qIEZpbmQgYSBsaWtlbHkgbmFtZSBmb3IgdGhlIHVpZCBw cmluY2lwYWwuICovCisJcHcgPSBnZXRwd3VpZCh1aWQpOworCisJLyoKKwkgKiBEbyBhIGJ1bmNo IG9mIGtyYjUgbGlicmFyeSBzdHVmZiB0byB0cnkgYW5kIGRldGVybWluZSBpZgorCSAqIHRoaXMg ZmlsZSBpcyBhIGNyZWRlbnRpYWxzIGNhY2hlIHdpdGggYW4gYXBwcm9wcmlhdGUgVEdUCisJICog aW4gaXQuCisJICovCisJcmV0dmFsID0ga3JiNV9pbml0X2NvbnRleHQoJmNvbnRleHQpOworCWlm IChyZXR2YWwgIT0gMCkKKwkJcmV0dXJuICgwKTsKKwlyZXR2YWwgPSBrcmI1X2NjX3Jlc29sdmUo Y29udGV4dCwgZmlsZXBhdGgsICZjY2FjaGUpOworCWlmIChyZXR2YWwgIT0gMCkgeworCQlrcmI1 X2ZyZWVfY29udGV4dChjb250ZXh0KTsKKwkJcmV0dXJuICgwKTsKKwl9CisJcmV0ID0gMDsKKwlv cmF0aW5nID0gMDsKKwlleHB0aW1lID0gMDsKKwlyZXR2YWwgPSBrcmI1X2NjX3N0YXJ0X3NlcV9n ZXQoY29udGV4dCwgY2NhY2hlLCAmY3Vyc2UpOworCWlmIChyZXR2YWwgPT0gMCkgeworCQl3aGls ZSAoKHJldHZhbCA9IGtyYjVfY2NfbmV4dF9jcmVkKGNvbnRleHQsIGNjYWNoZSwgJmN1cnNlLAor CQkgICAgJmtyYmNyZWQpKSA9PSAwKSB7CisJCQlnb3RvbmUgPSAwOworCQkJcmF0aW5nID0gMDsK KwkJCXJldHZhbCA9IGtyYjVfdW5wYXJzZV9uYW1lKGNvbnRleHQsIGtyYmNyZWQuc2VydmVyLAor CQkJICAgICZwbmFtZSk7CisJCQlpZiAocmV0dmFsID09IDApIHsKKwkJCQljcCA9IHN0cmNocihw bmFtZSwgJy8nKTsKKwkJCQlpZiAoY3AgIT0gTlVMTCkgeworCQkJCQkqY3ArKyA9ICdcMCc7CisJ CQkJCWlmIChzdHJjbXAocG5hbWUsICJrcmJ0Z3QiKSA9PSAwICYmCisJCQkJCSAgICBrcmJjcmVk LnRpbWVzLmVuZHRpbWUgPiB0aW1lKE5VTEwpCisJCQkJCSAgICApIHsKKwkJCQkJCWdvdG9uZSA9 IDE7CisJCQkJCQkvKgorCQkJCQkJICogVGVzdCB0byBzZWUgaWYgdGhpcyBpcyBhCisJCQkJCQkg KiB0Z3QgZm9yIGNyb3NzLXJlYWxtIGF1dGguCisJCQkJCQkgKiBSYXRlIGl0IGhpZ2hlciwgaWYg aXQgaXMgbm90LgorCQkJCQkJICovCisJCQkJCQljcDIgPSBzdHJjaHIoY3AsICdAJyk7CisJCQkJ CQlpZiAoY3AyICE9IE5VTEwpIHsKKwkJCQkJCQkqY3AyKysgPSAnXDAnOworCQkJCQkJCWlmIChz dHJjbXAoY3AsIGNwMikgPT0KKwkJCQkJCQkgICAgMCkKKwkJCQkJCQkJcmF0aW5nKys7CisJCQkJ CQl9CisJCQkJCX0KKwkJCQl9CisJCQkJZnJlZShwbmFtZSk7CisJCQl9CisJCQlpZiAoZ290b25l ICE9IDApIHsKKwkJCQlyZXR2YWwgPSBrcmI1X3VucGFyc2VfbmFtZShjb250ZXh0LAorCQkJCSAg ICBrcmJjcmVkLmNsaWVudCwgJnBuYW1lKTsKKwkJCQlpZiAocmV0dmFsID09IDApIHsKKwkJCQkJ Y3AgPSBzdHJjaHIocG5hbWUsICdAJyk7CisJCQkJCWlmIChjcCAhPSBOVUxMKSB7CisJCQkJCQkq Y3ArKyA9ICdcMCc7CisJCQkJCQlpZiAocHcgIT0gTlVMTCAmJiBzdHJjbXAocG5hbWUsCisJCQkJ CQkgICAgcHctPnB3X25hbWUpID09IDApCisJCQkJCQkJcmF0aW5nKys7CisJCQkJCQlpZiAoc3Ry Y2hyKHBuYW1lLCAnLycpID09IE5VTEwpCisJCQkJCQkJcmF0aW5nKys7CisJCQkJCQlpZiAocHJl Zl9yZWFsbVswXSAhPSAnXDAnICYmCisJCQkJCQkgICAgc3RyY21wKGNwLCBwcmVmX3JlYWxtKSA9 PSAwKQorCQkJCQkJCXJhdGluZysrOworCQkJCQl9CisJCQkJfQorCQkJCWZyZWUocG5hbWUpOwor CQkJCWlmIChyYXRpbmcgPiBvcmF0aW5nKSB7CisJCQkJCW9yYXRpbmcgPSByYXRpbmc7CisJCQkJ CWV4cHRpbWUgPSBrcmJjcmVkLnRpbWVzLmVuZHRpbWU7CisJCQkJfSBlbHNlIGlmIChyYXRpbmcg PT0gb3JhdGluZyAmJgorCQkJCSAgICBrcmJjcmVkLnRpbWVzLmVuZHRpbWUgPiBleHB0aW1lKQor CQkJCQlleHB0aW1lID0ga3JiY3JlZC50aW1lcy5lbmR0aW1lOworCQkJCXJldCA9IDE7CisJCQl9 CisJCQlrcmI1X2ZyZWVfY3JlZF9jb250ZW50cyhjb250ZXh0LCAma3JiY3JlZCk7CisJCX0KKwkJ a3JiNV9jY19lbmRfc2VxX2dldChjb250ZXh0LCBjY2FjaGUsICZjdXJzZSk7CisJfQorCWtyYjVf Y2NfY2xvc2UoY29udGV4dCwgY2NhY2hlKTsKKwlrcmI1X2ZyZWVfY29udGV4dChjb250ZXh0KTsK KwlpZiAocmV0ICE9IDApIHsKKwkJKnJldHJhdGluZyA9IG9yYXRpbmc7CisJCSpyZXRleHB0aW1l ID0gZXhwdGltZTsKKwl9CisJcmV0dXJuIChyZXQpOworfQorCi0tLSB1c3Iuc2Jpbi9nc3NkL2dz c2QuOC5zYXYJMjAxMi0xMC0wOCAxNzo1NDowMi4wMDAwMDAwMDAgLTA0MDAKKysrIHVzci5zYmlu L2dzc2QvZ3NzZC44CTIwMTItMTItMTIgMTk6MDc6MTEuMDAwMDAwMDAwIC0wNTAwCkBAIC0yNSw3 ICsyNSw3IEBACiAuXCIKIC5cIiAkRnJlZUJTRDogaGVhZC91c3Iuc2Jpbi9nc3NkL2dzc2QuOCAy MzY1MDAgMjAxMi0wNi0wMyAwNjo1Nzo0N1ogam9lbCAkCiAuXCIKLS5EZCBOb3ZlbWJlciA1LCAy MDA4CisuRGQgT2N0IDgsIDIwMTIKIC5EdCBHU1NEIDgKIC5PcwogLlNoIE5BTUUKQEAgLTM0LDYg KzM0LDkgQEAKIC5TaCBTWU5PUFNJUwogLk5tCiAuT3AgRmwgZAorLk9wIEZsIHMgQXIgZGlyLWxp c3QKKy5PcCBGbCBjIEFyIGZpbGUtc3Vic3RyaW5nCisuT3AgRmwgciBBciBwcmVmZXJyZWQtcmVh bG0KIC5TaCBERVNDUklQVElPTgogVGhlCiAuTm0KQEAgLTQ2LDYgKzQ5LDI1IEBAIFJ1biBpbiBk ZWJ1ZyBtb2RlLgogSW4gdGhpcyBtb2RlLAogLk5tCiB3aWxsIG5vdCBmb3JrIHdoZW4gaXQgc3Rh cnRzLgorLkl0IEZsIHMgQXIgZGlyLWxpc3QKK0xvb2sgZm9yIGFuIGFwcHJvcHJpYXRlIGNyZWRl bnRpYWwgY2FjaGUgZmlsZSBpbiB0aGlzIGxpc3Qgb2YgZGlyZWN0b3JpZXMuCitUaGUgbGlzdCBz aG91bGQgYmUgZnVsbCBwYXRobmFtZXMgZnJvbSByb290LCBzZXBhcmF0ZWQgYnkgJzonIGNoYXJh Y3RlcnMuCitVc3VhbGx5IHRoaXMgbGlzdCB3aWxsIHNpbXBseSBiZSAiL3RtcCIuCisuSXQgRmwg YyBBciBmaWxlLXN1YnN0cmluZworU2V0IGEgZmlsZS1zdWJzdHJpbmcgZm9yIHRoZSBjcmVkZW50 aWFsIGNhY2hlIGZpbGUgbmFtZXMuCitPbmx5IGZpbGVzIHdpdGggdGhpcyBzdWJzdHJpbmcgZW1i ZWRkZWQgaW4gdGhlaXIgbmFtZXMgd2lsbCBiZQorc2VsZWN0ZWQgYXMgY2FuZGlkYXRlcyB3aGVu IHRoZQorLkZsIHMKK2hhcyBiZWVuIHNwZWNpZmllZC4KK0lmIG5vdCBzcGVjaWZpZWQsIGl0IGRl ZmF1bHRzIHRvICJrcmI1Y2NfIi4KKy5JdCBGbCByIEFyIHByZWZlcnJlZC1yZWFsbQorU2V0IGEg cHJlZmVycmVkIEtlcmJlcm9zIHJlYWxtIGZvciB0aGUgc2VhcmNoIG9mIHRoZSBkaXJlY3Rvcnkg bGlzdCBmb3IKK2EgY3JlZGVudGlhbHMgY2FjaGUgZmlsZS4KK1doZW4gc2V0LCBmaWxlcyB3aXRo IFRHVCBjcmVkZW50aWFscyBmb3IgdGhpcyByZWFsbSB3aWxsIGJlIHNlbGVjdGVkIG92ZXIKK290 aGVyIGNyZWRlbnRpYWwgZmlsZXMuCitUaGlzIG9wdGlvbiBpcyBvbmx5IG1lYW5pbmdmdWwgd2l0 aCB0aGUKKy5GbCBzCitvcHRpb24gaGFzIGJlZW4gc3BlY2lmaWVkLgogLkVsCiAuU2ggRklMRVMK IC5CbCAtdGFnIC13aWR0aCAiLlBhIC9ldGMva3JiNS5rZXl0YWIiIC1jb21wYWN0Cg== ------=_Part_1365747_1486623735.1355358821309--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1860364947.1365748.1355358821312.JavaMail.root>