Skip site navigation (1)Skip section navigation (2)
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>