Updated daemon.cpp, daemon.h, and searchd.conf.5.ep.in files
"John Hansen" <[email protected]> Tue, 13 Apr 2004 01:35:01 +1000
| Newsgroups | gmane.comp.web.aspseek.devel |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. ------_=_NextPart_001_01C420A3.B839F782 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Attached, a patch for ASPseek CVS HEAD that implements a new searchd.conf parameter 'MaxIdleTime' to allow started threads to die off after the configured amount of seconds. It has a bug however, that I've been unable to fix, mainly due to my lack of understanding of the thread logic that was originally implemented which will be aparent when you read the patch. :) Under certain circumstances, specifically, after a few bursts of threads starting, and subsequently dying off, repeating this a few times, searchd will segfault. If someone can come up with a better solution for letting threads die off, it would be much appreciated. Regards, John Hansen ------_=_NextPart_001_01C420A3.B839F782 Content-Type: application/octet-stream; name="searchd.conf.5.ep.in.patch" Content-Transfer-Encoding: base64 Content-Description: searchd.conf.5.ep.in.patch Content-Disposition: attachment; filename="searchd.conf.5.ep.in.patch" LS0tIHNlYXJjaGQuY29uZi41LmVwLmluLm9sZAlUdWUgQXByIDEzIDAxOjIzOjM1IDIwMDQKKysr IHNlYXJjaGQuY29uZi41LmVwLmluCVR1ZSBBcHIgMTMgMDE6MjI6MTggMjAwNApAQCAtMTMsNyAr MTMsNyBAQAogXGZCREJBZGRyXGZSIFxmQkRCVHlwZVxmUjpbLy9bXGZCVXNlclxmUls6XGZCUGFz c1xmUl1AXVxmQkhvc3RcZlJbOlxmQlBvcnRcZlJdXS9cZkJEQk5hbWVcZlIvCiBEZWZpbmVzIFNR TCBzZXJ2ZXIgY29ubmVjdGlvbiBwYXJhbWV0ZXJzLgogLmJyCi1cZkJEQlR5cGVcZlIgaXMgU1FM IHNlcnZlciB0eXBlLCBpdCBjYW4gYmUgXGZJbXlzcWxcZlIgb3IgXGZJb3JhY2xlOFxmUgorXGZC REJUeXBlXGZSIGlzIFNRTCBzZXJ2ZXIgdHlwZSwgaXQgY2FuIGJlIFxmSW15c3FsXGZSIG9yIFxm SVBvc3RncmVTUUxcZlIKIGZvciBub3cuCiAuYnIKIFxmQlVzZXJcZlIgaXMgYSBTUUwgc2VydmVy J3MgdXNlciB0byBjb25uZWN0IGFzLgpAQCAtNjgsNiArNjgsMTAgQEAKIHRvIHByb2Nlc3MgcXVl cmllcy4gU2V0dGluZyBoaWdoIHZhbHVlIGNhbiByZXN1bHQgaW4gYmlnIG1lbW9yeSBjb25zdW1w dGlvbi4KIFNldHRpbmcgbG93IHZhbHVlIGNhbiByZXN1bHQgaW4gYmlnIHJlc3BvbnNlIHRpbWUg Zm9yIHF1ZXJpZXMgaW4gaGlnaCBsb2FkCiBjb25kaXRpb25zIChhcyAiZXh0cmEiIHF1ZXJpZXMg YXJlIHF1ZXVlZCkuIERlZmF1bHQgdmFsdWUgaXMgXGZJMTBcZlIuCisuVFAKK1xmQk1heElkbGVU aW1lXGZSIFxmSW51bVxmUgorU2V0cyB0aGUgdGltZSBpbiBzZWNvbmRzIHRoYXQgZWFjaCB0aHJl YWQgd2lsbCBpZGxlIGJlZm9yZSBkeWluZyBvZmYuCitEZWZhdWx0IHZhbHVlIGlzIFxmSTYwXGZS IHNlY29uZHMuCiAuVFAKIFxmQk11bHRpcGxlREJDb25uZWN0aW9uc1xmUiBcZkl5ZXNcZlIgfCBc Zklub1xmUgogU2V0cyB3aGV0aGVyIHRvIHVzZSBzZXBhcmF0ZSBjb25uZWN0aW9uIHRvIHRoZSBk YXRhYmFzZSBmb3IgZWFjaCB0aHJlYWQuCg== ------_=_NextPart_001_01C420A3.B839F782 Content-Type: application/octet-stream; name="daemon.cpp.patch" Content-Transfer-Encoding: base64 Content-Description: daemon.cpp.patch Content-Disposition: attachment; filename="daemon.cpp.patch" LS0tIGRhZW1vbi5jcHAJVGh1IE9jdCAzMSAxMToxMzoxMiAyMDAyCisrKyBkYWVtb24uY3BwCVRo dSBNYXIgMTEgMjE6Mzg6NTggMjAwNApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPHVuaXN0 ZC5oPgogI2luY2x1ZGUgPGRsZmNuLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8 dGltZS5oPgogI2luY2x1ZGUgPHN0cmluZz4KICNpbmNsdWRlIDx2ZWN0b3I+CiAjaW5jbHVkZSAi c3FsZGIuaCIKQEAgLTc2LDYgKzc3LDcgQEAKICNpbmNsdWRlICJjYWNoZS5oIgogCiBpbnQgTWF4 VGhyZWFkcyA9IDEwOworaW50IG1heF9pZGxlX3RpbWUgPSA2MDsKIHN0cmluZyBDb25mRGlyID0g Q09ORl9ESVI7CiBzdHJpbmcgRGF0YURpciA9IERBVEFfRElSOwogCkBAIC00NDUsNiArNDY3LDEw IEBACiAJCQl7CiAJCQkJTWF4VGhyZWFkcyA9IGF0b2koVHJpbShzdHIgKyAxMCwgIj0gXHRcclxu IikpOwogCQkJfQorCQkJZWxzZSBpZiAoIVNUUk5DQVNFQ01QKHN0ciwgIk1heElkbGVUaW1lIikp CisJCQl7CisJCQkJCW1heF9pZGxlX3RpbWUgPSBhdG9pKFRyaW0oc3RyICsgMTEsICI9IFx0XHJc biIpKTsKKwkJCX0KIAkJCWVsc2UgaWYgKCFTVFJOQ0FTRUNNUChzdHIsICJEZWJ1Z0xldmVsIikp CiAJCQl7CiAJCQkJbG9nZ2VyLnNldGxvZ2xldmVsKFRyaW0oc3RyICsgMTAsICI9IFx0XHJcbiIp KTsKQEAgLTEwNjgsMzMgKzExMTYsNTkgQEAKIHZvaWQqIHByb2Nlc3NSZXFzKHZvaWQqIHApCiB7 CiAJQ1dvcmtlclRocmVhZCogdGhyZWFkID0gKENXb3JrZXJUaHJlYWQqKXA7CisJdGltZV90IGxh c3RfcXVlcnkgPSB0aW1lKE5VTEwpOworCWludCB0aW1lb3V0ID0gMDsKKwl0aHJlYWQtPm1fcGFy ZW50LT5tX3RocmVhZHMrKzsKIAl3aGlsZSAoZG9pdF9mb3JldmVyKQogCXsKIAkJLy8gV2FpdCBm b3IgZXZlbnQsIHBvc3RlZCBpbiBDV29ya2VyVGhyZWFkTGlzdDo6cHJvY2Vzc1JlcQotCQl0aHJl YWQtPm1fcmVxLldhaXQoKTsKLQkJLy8gQ3JlYXRlIHNlYXJjaCBjb250ZXh0Ci0JCUNTZWFyY2hD b250ZXh0IGN0eCh0aHJlYWQtPm1fZGF0YWJhc2UsIHRocmVhZC0+bV9zb2NrZXQpOwotCQl3aGls ZSAoZG9pdF9mb3JldmVyKQotCQl7Ci0JCQkvLyBQcm9jZXNzIG9uZSBxdWVyeQotCQkJcHJvY2Vz c1JlcTEoJmN0eCk7Ci0JCQljdHgubV9zb2NrZXQuQ2xvc2UoKTsKLQkJCXsKLQkJCQlDTG9ja2Vy IGxvY2soJnRocmVhZC0+bV9wYXJlbnQtPm1fbXV0ZXgpOwotCQkJCWlmICh0aHJlYWQtPm1fcGFy ZW50LT5Jc1dhaXRpbmcoKSkKLQkJCQl7Ci0JCQkJCS8vIFByb2Nlc3Mgb3RoZXIgcXVlcmllcyBp biB0aGUgbG9vcCBidWZmZXIKLQkJCQkJY3R4Lm1fc29ja2V0ID0gdGhyZWFkLT5tX3BhcmVudC0+ UG9wRmlyc3RXYWl0aW5nKCk7Ci0JCQkJfQotCQkJCWVsc2UKKwkJdGltZW91dCA9IHRocmVhZC0+ bV9yZXEuV2FpdCgxMDAwKTsKKwkJaWYoIXRpbWVvdXQpCisJCXsKKwkJCXRpbWUoJmxhc3RfcXVl cnkpOworCQkJLy8gQ3JlYXRlIHNlYXJjaCBjb250ZXh0CisJCQlDU2VhcmNoQ29udGV4dCBjdHgo dGhyZWFkLT5tX2RhdGFiYXNlLCB0aHJlYWQtPm1fc29ja2V0KTsKKwkJCXdoaWxlIChkb2l0X2Zv cmV2ZXIpCisJCQl7CisJCQkJLy8gUHJvY2VzcyBvbmUgcXVlcnkKKwkJCQlwcm9jZXNzUmVxMSgm Y3R4KTsKKwkJCQljdHgubV9zb2NrZXQuQ2xvc2UoKTsKIAkJCQl7Ci0JCQkJCS8vIE1ha2UgdGhy ZWFkIGF2YWlsYWJsZSBmb3Igb3RoZXIgcmVxdWVzdHMKLQkJCQkJdGhyZWFkLT5JbnNlcnQoJnRo cmVhZC0+bV9wYXJlbnQtPm1fZmlyc3QpOwotCQkJCQlicmVhazsKKwkJCQkJQ0xvY2tlciBsb2Nr KCZ0aHJlYWQtPm1fcGFyZW50LT5tX211dGV4KTsKKwkJCQkJaWYgKHRocmVhZC0+bV9wYXJlbnQt PklzV2FpdGluZygpKQorCQkJCQl7CisJCQkJCQkvLyBQcm9jZXNzIG90aGVyIHF1ZXJpZXMgaW4g dGhlIGxvb3AgYnVmZmVyCisJCQkJCQljdHgubV9zb2NrZXQgPSB0aHJlYWQtPm1fcGFyZW50LT5Q b3BGaXJzdFdhaXRpbmcoKTsKKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCXsKKwkJCQkJCS8vIE1h a2UgdGhyZWFkIGF2YWlsYWJsZSBmb3Igb3RoZXIgcmVxdWVzdHMKKwkJCQkJCWlmKCF0aHJlYWQt Pm1fcGFyZW50LT5tX2ZpcnN0KQorCQkJCQkJCXRocmVhZC0+bV9wYXJlbnQtPm1fZmlyc3QgPSB0 aHJlYWQ7CisJCQkJCQkJLy90aHJlYWQtPkluc2VydCh0aHJlYWQpOworCQkJCQkJZWxzZQorCQkJ CQkJCXRocmVhZC0+SW5zZXJ0KHRocmVhZC0+bV9wYXJlbnQtPm1fZmlyc3QpOworCQkJCQkJYnJl YWs7CisJCQkJCX0KIAkJCQl9CiAJCQl9CiAJCX0KKwkJZWxzZQorCQl7CisJCQlpZigodGltZShO VUxMKSAtIGxhc3RfcXVlcnkpID4gbWF4X2lkbGVfdGltZSkKKwkJCQlicmVhazsKKwkJfQogCX0K KwkvLyBjcmVhdGUgc2NvcGUgZm9yIENMb2NrZXIKKwl7CisJCUNMb2NrZXIgbG9jaygmdGhyZWFk LT5tX3BhcmVudC0+bV9tdXRleCk7CisJCWlmKCF0aHJlYWQtPm1fcmVtb3ZlZCkKKwkJCXRocmVh ZC0+UmVtb3ZlKCk7CisJfQorCS8vIHVubG9ja2VkIGFuZCByZW1vdmVkLi4uCisJaWYoTXVsdGlE QkNvbm5lY3Rpb25zKQorCQl0aHJlYWQtPm1fZGF0YWJhc2UtPkNsb3NlRGIoKTsKKwl0aHJlYWQt Pm1fcGFyZW50LT5tX3RocmVhZHMtLTsKIAlkZWxldGUgdGhyZWFkOwogCXJldHVybiBOVUxMOyAv LyB0byBtYWtlIGcrKyBoYXBweQogfQpAQCAtMTEzMCw3ICsxMjA0LDYgQEAKIAkJCWlmICh0aHJl YWRfc3RhY2tfc2l6ZSkKIAkJCQlwdGhyZWFkX2F0dHJfc2V0c3RhY2tzaXplKCZhdHRyLCB0aHJl YWRfc3RhY2tfc2l6ZSk7CiAJCQlwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkLT5tX3RocmVhZCwgJmF0 dHIsIHByb2Nlc3NSZXFzLCB0aHJlYWQpOwotCQkJbV90aHJlYWRzKys7CiAJCX0KIAkJZWxzZQog CQl7CkBAIC0xMTQxLDcgKzEyMTQsNiBAQAogCX0KIAllbHNlCiAJewotCQkvLyBSZW1vdmUgZmly c3Qgd29ya2VyIHRocmVhZCBmcm9tIHRoZSBsaW5rZWQgbGlzdAogCQl0aHJlYWQgPSBtX2ZpcnN0 LT5SZW1vdmUoKTsKIAl9CiAJdGhyZWFkLT5tX3NvY2tldCA9IGNzb2NrOwpAQCAtMTE3NSwxMSAr MTI0NywyNiBAQAogCQlsb2dnZXIubG9nKENBVF9ORVQsIExfRVJSLCAiRXJyb3IgJWQgaW4gc29j a2V0KCk6ICVzXG4iLCBlcnJubywgc3RyZXJyb3IoZXJybm8pKTsKIAkJcmV0dXJuIDQ7CiAJfQot CWludCByYyA9IGJpbmQoc29jaywgKHN0cnVjdCBzb2NrYWRkciopJmFkZHIsIHNpemVvZihhZGRy KSk7Ci0JaWYgKHJjIDwgMCkKKwlpbnQgeCA9IDE7CisJc2V0c29ja29wdChzb2NrLCBTT0xfU09D S0VULCBTT19SRVVTRUFERFIsIChjaGFyICopICZ4LCBzaXplb2YoeCkpOworCWludCByZXRyeWNv dW50ID0gMDsKKwlpbnQgcmM7CisJd2hpbGUocmV0cnljb3VudCA8IDUpCiAJewotCQlsb2dnZXIu bG9nKENBVF9ORVQsIExfRVJSLCAiRXJyb3IgJWQgaW4gYmluZCgpOiAlc1xuIiwgZXJybm8sIHN0 cmVycm9yKGVycm5vKSk7Ci0JCXJldHVybiA1OworCQlyYyA9IGJpbmQoc29jaywgKHN0cnVjdCBz b2NrYWRkciopJmFkZHIsIHNpemVvZihhZGRyKSk7CisJCWlmIChyYyA8IDAgJiYgcmV0cnljb3Vu dCA+PSA1KQorCQl7CisJCQlsb2dnZXIubG9nKENBVF9ORVQsIExfRVJSLCAiRXJyb3IgJWQgaW4g YmluZCgpOiAlc1xuIiwgZXJybm8sIHN0cmVycm9yKGVycm5vKSk7CisJCQlyZXR1cm4gNTsKKwkJ fQorCQllbHNlCisJCXsKKwkJCXJldHJ5Y291bnQrKzsKKwkJCXRpbWVzcGVjIHRzOworCQkJdHMu dHZfc2VjID0gMTsKKwkJCXRzLnR2X25zZWMgPSAwOworCQkJbmFub3NsZWVwKCZ0cyxOVUxMKTsK KwkJfQogCX0KIAlyYyA9IGxpc3Rlbihzb2NrLCAxMCk7CiAJaWYgKHJjIDwgMCkK ------_=_NextPart_001_01C420A3.B839F782 Content-Type: application/octet-stream; name="daemon.h.patch" Content-Transfer-Encoding: base64 Content-Description: daemon.h.patch Content-Disposition: attachment; filename="daemon.h.patch" LS0tIGRhZW1vbi5oCVR1ZSBNYXkgMTQgMjE6NDc6MTUgMjAwMgorKysgZGFlbW9uLmgJVGh1IE1h ciAxMSAyMTo1MToyMSAyMDA0CkBAIC00NSwyMSArNDUsNiBAQAogI2VuZGlmCiB9OwogCi0vLy8g VGhpcyBjbGFzcyBpcyBvYnNvbGV0ZQotLyogU28gZ2V0IHJpZCBvZiBpdCA7KQotY2xhc3MgQ015 RGF0YVNvdXJjZSA6IHB1YmxpYyBDRGF0YVNvdXJjZQotewotcHVibGljOgotCUNTUUxEYXRhYmFz ZSogbV9kYXRhYmFzZTsKLQotcHVibGljOgotCUNNeURhdGFTb3VyY2UoQ1NRTERhdGFiYXNlKiBk YikKLQl7Ci0JCW1fZGF0YWJhc2UgPSBkYjsKLQl9Ci0JdmlydHVhbCB2b2lkIEdldENsb25lTGlz dChjb25zdCBjaGFyICpjcmMsIENVcmxXKiBvcmlnaW4sIENTcmNEb2NWZWN0b3IgJmRvY3MpOwot fTsKLSovCiAKIGNsYXNzIENXb3JrZXJUaHJlYWRMaXN0OwogCkBAIC03MCw5ICs1NSwxMCBAQAog CUNFdmVudCBtX3JlcTsJCQkvLy88IENFdmVudCBvYmplY3QsIHBvc3RlZCBvbiByZXF1ZXN0CiAJ cHRocmVhZF90IG1fdGhyZWFkOwkJLy8vPCBUaHJlYWQgSUQKIAlpbnQgbV9zb2NrZXQ7CQkJLy8v PCBTb2NrZXQgcmV0dXJuZWQgYnkgYWNjZXB0CisJaW50IG1fcmVtb3ZlZDsJCQkvLy88IG9iamVj dCBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIGxpbmtlZCBsaXN0CiAJQ1NRTERhdGFiYXNlKiBt X2RhdGFiYXNlOwkvLy88IERhdGFiYXNlIGFzc29jaWF0ZWQgd2l0aCB0aHJlYWQKIAlDV29ya2Vy VGhyZWFkKiBtX25leHQ7CQkvLy88IE5leHQgQ1dvcmtlclRocmVhZCBpbiB0aGUgbGlua2VkIGxp c3Qgb2YgdGhyZWFkcwotCUNXb3JrZXJUaHJlYWQqKiBtX3ByZXY7CQkvLy88IFBvaW50ZXIgdG8g dGhlIGxvY2F0aW9uIG9mIHBvaW50ZXIgdG8gdGhpcyBDV29ya2VyVGhyZWFkIGluIHRoZSBwcmVp dmlvdXMgb2JqZWN0IGxpbmtlZCBsaXN0IG9mIHRocmVhZHMKKwlDV29ya2VyVGhyZWFkKiBtX3By ZXY7CQkvLy88IFByZXZpb3VzIENXb3JrZXJUaHJlYWQgaW4gdGhlIGxpbmtlZCBsaXN0IG9mIHRo cmVhZHMKIAlDV29ya2VyVGhyZWFkTGlzdCogbV9wYXJlbnQ7CS8vLzwgUG9pbnRlciB0byB0aGUg bGlua2VkIGxpc3Qgb2JqZWN0IGhvbGRpbmcgd29ya2VyIHRocmVhZHMKIAogcHVibGljOgpAQCAt ODEsMjUgKzY3LDIzIEBACiAJCW1fbmV4dCA9IE5VTEw7CiAJCW1fcHJldiA9IE5VTEw7CiAJCW1f cGFyZW50ID0gTlVMTDsKKwkJbV9kYXRhYmFzZSA9IE5VTEw7CiAJCW1fdGhyZWFkID0gMDsKIAkJ bV9zb2NrZXQgPSAwOworCQltX3JlbW92ZWQgPSAwOwogCX0KLQkvLy8gVGhpcyBtZXRob2QgcmVt b3ZlcyBjdXJyZW50IG9iamVjdCBmcm9tIGxpbmtlZCBsaXN0Ci0JQ1dvcmtlclRocmVhZCogUmVt b3ZlKCkKLQl7Ci0JCWlmIChtX3ByZXYpCi0JCXsKLQkJCSptX3ByZXYgPSBtX25leHQ7Ci0JCX0K LQkJcmV0dXJuIHRoaXM7Ci0JfQotCS8vLyBUaGlzIG1ldGhvZCBpbnNlcnRzIGN1cnJlbnQgb2Jq ZWN0IGFmdGVyIHNwZWNpZmllZCBpbiB0aGUgbGlua2VkIGxpc3QKLQl2b2lkIEluc2VydChDV29y a2VyVGhyZWFkKiogcHJldikKKwl+Q1dvcmtlclRocmVhZCgpCiAJewotCQltX25leHQgPSAqcHJl djsKLQkJbV9wcmV2ID0gcHJldjsKLQkJKm1fcHJldiA9IHRoaXM7CisJCW1fcHJldiA9IE5VTEw7 CisJCW1fbmV4dCA9IE5VTEw7CisJCW1fcGFyZW50ID0gTlVMTDsKKwkJbV9kYXRhYmFzZSA9IE5V TEw7CisJCW1fdGhyZWFkID0gMDsKKwkJbV9zb2NrZXQgPSAwOworCQltX3JlbW92ZWQgPSAxOwog CX0KKwlDV29ya2VyVGhyZWFkKiBSZW1vdmUoKTsKKwl2b2lkIEluc2VydChDV29ya2VyVGhyZWFk KiBwcmV2KTsKIH07CiAKICNkZWZpbmUgTUFYX1dBSVRJTkdfU09DS0VUUyAxMDI0CkBAIC0xNTMs NiArMTM3LDQwIEBACiAJLy8vIFByb2Nlc3MgaW5jb21pbmcgcmVxdWVzdCwgc291cmNlIG9mIHJl cXVlc3QgaXMgc29ja2V0ICJjc29jayIKIAl2b2lkIHByb2Nlc3NSZXEoQ1NRTERhdGFiYXNlKiBk YXRhYmFzZSwgaW50IGNzb2NrKTsKIH07CisKKwkvLy8gVGhpcyBtZXRob2QgaW5zZXJ0cyBjdXJy ZW50IG9iamVjdCBhZnRlciBzcGVjaWZpZWQgaW4gdGhlIGxpbmtlZCBsaXN0CisJaW5saW5lIHZv aWQgQ1dvcmtlclRocmVhZDo6SW5zZXJ0KENXb3JrZXJUaHJlYWQqIHByZXYpCisJeworCQltX25l eHQgPSBwcmV2LT5tX25leHQ7CisJCWlmKHByZXYtPm1fbmV4dCkKKwkJCXByZXYtPm1fbmV4dC0+ bV9wcmV2ID0gdGhpczsKKwkJcHJldi0+bV9uZXh0ID0gdGhpczsKKwkJbV9wcmV2ID0gcHJldjsK KwkJbV9yZW1vdmVkID0gMDsKKwl9CisJLy8vIFRoaXMgbWV0aG9kIHJlbW92ZXMgY3VycmVudCBv YmplY3QgZnJvbSBsaW5rZWQgbGlzdAorCWlubGluZSBDV29ya2VyVGhyZWFkKiBDV29ya2VyVGhy ZWFkOjpSZW1vdmUoKQorCXsKKwkJCisJCWlmKG1fbmV4dCkKKwkJeworCQkJaWYobV9wYXJlbnQt Pm1fZmlyc3QgPT0gdGhpcykKKwkJCQltX3BhcmVudC0+bV9maXJzdCA9IG1fbmV4dDsKKwkJCW1f bmV4dC0+bV9wcmV2ID0gbV9wcmV2OworCQl9CisJCWlmKG1fcHJldikKKwkJeworCQkJaWYobV9w YXJlbnQtPm1fZmlyc3QgPT0gdGhpcykKKwkJCQltX3BhcmVudC0+bV9maXJzdCA9IG1fcHJldjsK KwkJCW1fcHJldi0+bV9uZXh0ID0gbV9uZXh0OworCQl9CisJCWVsc2UgaWYoIW1fbmV4dCkKKwkJ CW1fcGFyZW50LT5tX2ZpcnN0ID0gTlVMTDsKKwkJbV9wcmV2ID0gTlVMTDsKKwkJbV9uZXh0ID0g TlVMTDsKKwkJbV9yZW1vdmVkID0gMTsKKwkJcmV0dXJuIHRoaXM7CisJfQogCiAvKiogQXV4aWxp YXJ5IGNsYXNzIGZvciBzaW1wbGUgbXV0ZXggbG9ja2luZy4KICAqIExvY2tzIG11dGV4LCBzcGVj aWZpZWQgYnkgcGFyYW1ldGVyIG9mIGNvbnN0cnVjdG9yLCBhbmQgdW5sb2NrcyBpdAo= ------_=_NextPart_001_01C420A3.B839F782--