Branko, the changes in this patch you wanted reviewed look good to
me... Oh, wait, you just committed them.
Good. :-)
-K
Branko =?ISO-8859-2?Q?=C8ibej?= <brane@xbc.nu> writes:
> This is a multi-part message in MIME format.
> --------------060908070106030502030802
> Content-Type: text/plain; charset=ISO-8859-2; format=flowed
> Content-Transfer-Encoding: 8bit
>
> Karl Fogel wrote:
>
> > Branko =?ISO-8859-2?Q?=C8ibej?= <brane@xbc.nu> writes:
> >
> >> Do you know, with that fix (and a rather huge patch which I'll be asking
> >> for review for, shortly), I actually get the client to checkout on
> >> Win32. Now it only chokes on commit.
> >
> Silly me, it chokes on update, not commit.
>
> >> Oh, and the libsvn_fs tests all pass, yay!
> >
> >
> > You rock.
> >
> > Ready to review the patch anytime...
>
> Attached.
>
> It's actually two changes in SVN, but they're intermixed a bit, so I
> didn't try to pry them apart:
>
>
> * Change all tests of APR status codes (except for tests for
> APR_SUCCESS) to use APR_STATUS_IS_blabla() macros. This is
> necessary for Win32, because there are actually several different
> possible codes for some kinds of errors. The APR macros take care
> of that, and should be portable. This should also be the Right Way
> to write such tests in future.
>
> * In check_adm_exist and svn_wc__ensure_directory, replace the
> apr_opendir checks with apr_stat. That's because apr_opendir won't
> return ENOENT on Win32, and I guess apr_stat should be faster in
> general, anyway. There might be a problem here with symlinks to
> directories, but from what I've seen, we don't support symlinks
> right now. Another possibility would be to change apr_opendir to
> return ENOENT everywhere.
>
> * Two fixes in APR file_io code (already mentioned in another post),
> which Greg Stein needs to review and approve.
>
>
>
> I haven't tested this patch on a Unix box yet, although I believe it
> should be fine. I'll certainly do that before checking in.
>
> Then there are some changes in the MSVC project files, but those will go
> in when they're ready, and they're not important right now.
>
> --
> Brane �ibej
> home: <brane_at_xbc.nu> http://www.xbc.nu/brane/
> work: <branko.cibej_at_hermes.si> http://www.hermes-softlab.com/
> ACM: <brane_at_acm.org> http://www.acm.org/
>
>
>
> --------------060908070106030502030802
> Content-Type: application/octet-stream;
> name="huge.patch"
> Content-Transfer-Encoding: base64
> Content-Disposition: attachment;
> filename="huge.patch"
>
> SW5kZXg6IGxpYnN2bl9jbGllbnQvYXBwbHlfZWRpdHMuYw0KPT09PT09PT09PT09PT09PT09
> PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNT
> IGZpbGU6IC9jdnMvc3VidmVyc2lvbi9zdWJ2ZXJzaW9uL2xpYnN2bl9jbGllbnQvYXBwbHlf
> ZWRpdHMuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNA0KZGlmZiAtdSAtcCAtcjEuNCBh
> cHBseV9lZGl0cy5jDQotLS0gbGlic3ZuX2NsaWVudC9hcHBseV9lZGl0cy5jCTIwMDAvMTEv
> MDEgMjE6MDk6NTcJMS40DQorKysgbGlic3ZuX2NsaWVudC9hcHBseV9lZGl0cy5jCTIwMDAv
> MTEvMDYgMjM6NDY6NDkNCkBAIC03NCw3ICs3NCw3IEBAIGdlbmVyaWNfcmVhZCAodm9pZCAq
> YmF0b24sIGNoYXIgKmJ1ZmZlciwNCiAgIA0KICAgc3RhdCA9IGFwcl9mdWxsX3JlYWQgKHNy
> YywgYnVmZmVyLCAoYXByX3NpemVfdCkgKmxlbiwgKGFwcl9zaXplX3QgKikgbGVuKTsNCiAg
> IA0KLSAgaWYgKHN0YXQgJiYgKHN0YXQgIT0gQVBSX0VPRikpDQorICBpZiAoc3RhdCAmJiAh
> QVBSX1NUQVRVU19JU19FT0Yoc3RhdCkpDQogICAgIHJldHVybg0KICAgICAgIHN2bl9lcnJv
> cl9jcmVhdGUgKHN0YXQsIDAsIE5VTEwsIHBvb2wsDQogICAgICAgICAgICAgICAgICAgICAg
> ICAgImVycm9yIHJlYWRpbmcgaW5jb21pbmcgZGVsdGEgc3RyZWFtIik7DQpJbmRleDogbGli
> c3ZuX2RlbHRhL3Rlc3RzL2RlbHRhcGFyc2UtdGVzdC5jDQo9PT09PT09PT09PT09PT09PT09
> PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1Mg
> ZmlsZTogL2N2cy9zdWJ2ZXJzaW9uL3N1YnZlcnNpb24vbGlic3ZuX2RlbHRhL3Rlc3RzL2Rl
> bHRhcGFyc2UtdGVzdC5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS41NQ0KZGlmZiAtdSAt
> cCAtcjEuNTUgZGVsdGFwYXJzZS10ZXN0LmMNCi0tLSBsaWJzdm5fZGVsdGEvdGVzdHMvZGVs
> dGFwYXJzZS10ZXN0LmMJMjAwMC8xMS8wMSAyMToxMDowNgkxLjU1DQorKysgbGlic3ZuX2Rl
> bHRhL3Rlc3RzL2RlbHRhcGFyc2UtdGVzdC5jCTIwMDAvMTEvMDYgMjM6NDY6NDkNCkBAIC0z
> OCw3ICszOCw3IEBAIG15X3JlYWRfZnVuYyAodm9pZCAqYmF0b24sIGNoYXIgKmJ1ZmZlciwN
> CiAgICAgIFRoZXJmb3JlLCBpZiBhcHJfZnVsbF9yZWFkKCkgZG9lcyB0aGlzLCB0aGUgY2Fs
> bGVyIHdpbGwgY2FsbCB0aGlzDQogICAgICByb3V0aW5lIG9uZSBtb3JlIHRpbWUsIGFuZCAq
> bGVuIHNob3VsZCB0aGVuIGJlIHNldCB0byAwIGZvciBzdXJlLiAqLw0KIA0KLSAgaWYgKHN0
> YXQgJiYgKHN0YXQgIT0gQVBSX0VPRikpIA0KKyAgaWYgKHN0YXQgJiYgIUFQUl9TVEFUVVNf
> SVNfRU9GKHN0YXQpKSANCiAgICAgcmV0dXJuDQogICAgICAgc3ZuX2Vycm9yX2NyZWF0ZSAo
> c3RhdCwgMCwgTlVMTCwgcG9vbCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAibXlfcmVh
> ZF9mdW5jOiBlcnJvciByZWFkaW5nIHhtbGZpbGUiKTsNCkluZGV4OiBsaWJzdm5fZGVsdGEv
> dGVzdHMvcmFuZG9tLXRlc3QuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
> PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9jdnMvc3Vi
> dmVyc2lvbi9zdWJ2ZXJzaW9uL2xpYnN2bl9kZWx0YS90ZXN0cy9yYW5kb20tdGVzdC5jLHYN
> CnJldHJpZXZpbmcgcmV2aXNpb24gMS45DQpkaWZmIC11IC1wIC1yMS45IHJhbmRvbS10ZXN0
> LmMNCi0tLSBsaWJzdm5fZGVsdGEvdGVzdHMvcmFuZG9tLXRlc3QuYwkyMDAwLzEwLzEwIDA3
> OjI3OjUxCTEuOQ0KKysrIGxpYnN2bl9kZWx0YS90ZXN0cy9yYW5kb20tdGVzdC5jCTIwMDAv
> MTEvMDYgMjM6NDY6NDkNCkBAIC0xODQsNyArMTg0LDcgQEAgbWFpbiAoaW50IGFyZ2MsIGNo
> YXIgKiphcmd2KQ0KICAgICAgICAgfQ0KICAgICB9DQogICBhcHJfZGVzdHJveV9wb29sIChw
> b29sKTsNCi0gIGlmIChzdGF0dXMgIT0gQVBSX0VPRikNCisgIGlmICghQVBSX1NUQVRVU19J
> U19FT0Yoc3RhdHVzKSkNCiAgICAgew0KICAgICAgIGZwcmludGYgKHN0ZGVyciwgIlVzYWdl
> OiAlcyBbLXMgc2VlZF1cbiIsIGFyZ3ZbMF0pOw0KICAgICAgIHJldHVybiAxOw0KSW5kZXg6
> IGxpYnN2bl9zdWJyL2lvLmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
> PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvY3ZzL3N1YnZl
> cnNpb24vc3VidmVyc2lvbi9saWJzdm5fc3Vici9pby5jLHYNCnJldHJpZXZpbmcgcmV2aXNp
> b24gMS45DQpkaWZmIC11IC1wIC1yMS45IGlvLmMNCi0tLSBsaWJzdm5fc3Vici9pby5jCTIw
> MDAvMTEvMDIgMjA6MjY6NDgJMS45DQorKysgbGlic3ZuX3N1YnIvaW8uYwkyMDAwLzExLzA2
> IDIzOjQ2OjQ5DQpAQCAtNjksMTIgKzY5LDEyIEBAIHN2bl9pb19jaGVja19wYXRoIChjb25z
> dCBzdm5fc3RyaW5nX3QgKnANCiANCiAgIGFwcl9lcnIgPSBhcHJfc3RhdCAoJmZpbmZvLCBw
> YXRoLT5kYXRhLCBwb29sKTsNCiANCi0gIGlmIChhcHJfZXJyICYmIChhcHJfZXJyICE9IEFQ
> Ul9FTk9FTlQpKQ0KKyAgaWYgKGFwcl9lcnIgJiYgIUFQUl9TVEFUVVNfSVNfRU5PRU5UKGFw
> cl9lcnIpKQ0KICAgICByZXR1cm4gc3ZuX2Vycm9yX2NyZWF0ZWYgKGFwcl9lcnIsIDAsIE5V
> TEwsIHBvb2wsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN2bl9pb19jaGVj
> a19wYXRoOiAiDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb2JsZW0gY2hl
> Y2tpbmcgcGF0aCAlcyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC0+
> ZGF0YSk7DQotICBlbHNlIGlmIChhcHJfZXJyID09IEFQUl9FTk9FTlQpDQorICBlbHNlIGlm
> IChBUFJfU1RBVFVTX0lTX0VOT0VOVChhcHJfZXJyKSkNCiAgICAgKmtpbmQgPSBzdm5fbm9k
> ZV9ub25lOw0KICAgZWxzZSBpZiAoZmluZm8uZmlsZXR5cGUgPT0gQVBSX05PRklMRSkNCiAg
> ICAgKmtpbmQgPSBzdm5fbm9kZV91bmtub3duOw0KQEAgLTE1Miw3ICsxNTIsNyBAQCBzdm5f
> aW9fb3Blbl91bmlxdWVfZmlsZSAoYXByX2ZpbGVfdCAqKmYsDQogICAgICAgICAgICAgICAg
> ICAgICAgICAgICAoQVBSX1dSSVRFIHwgQVBSX0NSRUFURSB8IEFQUl9FWENMKSwNCiAgICAg
> ICAgICAgICAgICAgICAgICAgICAgIEFQUl9PU19ERUZBVUxULCBwb29sKTsNCiANCi0gICAg
> ICBpZiAoYXByX2VyciA9PSBBUFJfRUVYSVNUKQ0KKyAgICAgIGlmIChBUFJfU1RBVFVTX0lT
> X0VFWElTVChhcHJfZXJyKSkNCiAgICAgICAgIGNvbnRpbnVlOw0KICAgICAgIGVsc2UgaWYg
> KGFwcl9lcnIpDQogICAgICAgICB7DQpAQCAtMjAwLDcgKzIwMCw3IEBAIHN2bl9pb19maWxl
> X3JlYWRlciAodm9pZCAqZmlsZWhhbmRsZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg
> ICAgKGFwcl9zaXplX3QpICpsZW4sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChh
> cHJfc2l6ZV90ICopIGxlbik7DQogICAgICAgDQotICAgICAgaWYgKHN0YXQgJiYgKHN0YXQg
> IT0gQVBSX0VPRikpIA0KKyAgICAgIGlmIChzdGF0ICYmICFBUFJfU1RBVFVTX0lTX0VPRihz
> dGF0KSkNCiAgICAgICAgIHJldHVybg0KICAgICAgICAgICBzdm5fZXJyb3JfY3JlYXRlIChz
> dGF0LCAwLCBOVUxMLCBwb29sLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWRt
> X2NyYXdsZXIuYyAocG9zaXhfZmlsZV9yZWFkZXIpOiAiDQpAQCAtMjIyLDcgKzIyMiw3IEBA
> IHN2bl9pb19maWxlX3dyaXRlciAodm9pZCAqZmlsZWhhbmRsZSwNCiAgIA0KICAgc3RhdCA9
> IGFwcl9mdWxsX3dyaXRlIChkc3QsIGJ1ZmZlciwgKGFwcl9zaXplX3QpICpsZW4sIChhcHJf
> c2l6ZV90ICopIGxlbik7DQogICANCi0gIGlmIChzdGF0ICYmIChzdGF0ICE9IEFQUl9FT0Yp
> KQ0KKyAgaWYgKHN0YXQgJiYgIUFQUl9TVEFUVVNfSVNfRU9GKHN0YXQpKQ0KICAgICByZXR1
> cm4NCiAgICAgICBzdm5fZXJyb3JfY3JlYXRlIChzdGF0LCAwLCBOVUxMLCBwb29sLA0KICAg
> ICAgICAgICAgICAgICAgICAgICAgICJlcnJvciB3cml0aW5nIHhtbCBkZWx0YSIpOw0KDQpJ
> bmRleDogbGlic3ZuX3djL2FkbV9maWxlcy5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09
> PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTog
> L2N2cy9zdWJ2ZXJzaW9uL3N1YnZlcnNpb24vbGlic3ZuX3djL2FkbV9maWxlcy5jLHYNCnJl
> dHJpZXZpbmcgcmV2aXNpb24gMS41NA0KZGlmZiAtdSAtcCAtcjEuNTQgYWRtX2ZpbGVzLmMN
> Ci0tLSBsaWJzdm5fd2MvYWRtX2ZpbGVzLmMJMjAwMC8xMS8wNCAwMjoxNTowMgkxLjU0DQor
> KysgbGlic3ZuX3djL2FkbV9maWxlcy5jCTIwMDAvMTEvMDYgMjM6NDY6NTENCkBAIC0zMDEs
> MTMgKzMwMSwxNCBAQCBhcHJfY29weV9maWxlIChjb25zdCBjaGFyICpzcmMsIGNvbnN0IGNo
> DQogICAgIH0NCiAgIA0KICAgLyogQ29weSBieXRlcyB0aWxsIHRoZSBjb3dzIGNvbWUgaG9t
> ZS4gKi8NCi0gIHdoaWxlIChyZWFkX2VyciAhPSBBUFJfRU9GKQ0KKyAgcmVhZF9lcnIgPSBB
> UFJfU1VDQ0VTUzsNCisgIHdoaWxlICghQVBSX1NUQVRVU19JU19FT0YocmVhZF9lcnIpKQ0K
> ICAgICB7DQogICAgICAgYXByX3NzaXplX3QgYnl0ZXNfdGhpc190aW1lID0gc2l6ZW9mIChi
> dWYpOw0KIA0KICAgICAgIC8qIFJlYWQgJ2VtLiAqLw0KICAgICAgIHJlYWRfZXJyID0gYXBy
> X3JlYWQgKHMsIGJ1ZiwgJmJ5dGVzX3RoaXNfdGltZSk7DQotICAgICAgaWYgKHJlYWRfZXJy
> ICYmIChyZWFkX2VyciAhPSBBUFJfRU9GKSkNCisgICAgICBpZiAocmVhZF9lcnIgJiYgIUFQ
> Ul9TVEFUVVNfSVNfRU9GKHJlYWRfZXJyKSkNCiAgICAgICAgIHsNCiAgICAgICAgICAgYXBy
> X2Nsb3NlIChzKTsgIC8qIHRvc3MgKi8NCiAgICAgICAgICAgYXByX2Nsb3NlIChkKTsgIC8q
> IHRvc3MgKi8NCkBAIC0zMjMsNyArMzI0LDcgQEAgYXByX2NvcHlfZmlsZSAoY29uc3QgY2hh
> ciAqc3JjLCBjb25zdCBjaA0KICAgICAgICAgICByZXR1cm4gd3JpdGVfZXJyOw0KICAgICAg
> ICAgfQ0KIA0KLSAgICAgIGlmIChyZWFkX2VyciAmJiAocmVhZF9lcnIgPT0gQVBSX0VPRikp
> DQorICAgICAgaWYgKHJlYWRfZXJyICYmIEFQUl9TVEFUVVNfSVNfRU9GKHJlYWRfZXJyKSkN
> CiAgICAgICAgIHsNCiAgICAgICAgICAgYXByX2VyciA9IGFwcl9jbG9zZSAocyk7DQogICAg
> ICAgICAgIGlmIChhcHJfZXJyKQ0KQEAgLTcxNiw3ICs3MTcsNyBAQCBjaGVja19hZG1fZXhp
> c3RzIChpbnQgKmV4aXN0cywNCiB7DQogICBzdm5fZXJyb3JfdCAqZXJyID0gTlVMTDsNCiAg
> IGFwcl9zdGF0dXNfdCBhcHJfZXJyOw0KLSAgYXByX2Rpcl90ICppZ25vcmVfbWUgPSBOVUxM
> Ow0KKyAgYXByX2ZpbmZvX3QgZmluZm87DQogICBpbnQgZGlyX2V4aXN0cyA9IDA7DQogICBh
> cHJfZmlsZV90ICpmID0gTlVMTDsNCiAgIGludCBjb21wb25lbnRzX2FkZGVkOw0KQEAgLTcy
> NCwyMyArNzI1LDI3IEBAIGNoZWNrX2FkbV9leGlzdHMgKGludCAqZXhpc3RzLA0KICAgLyoq
> IFN0ZXAgMTogY2hlY2sgdGhhdCB0aGUgZGlyZWN0b3J5IGV4aXN0cy4gKiovDQogDQogICBj
> b21wb25lbnRzX2FkZGVkID0gZXh0ZW5kX3dpdGhfYWRtX25hbWUgKHBhdGgsIDAsIHBvb2ws
> IE5VTEwpOw0KLSAgYXByX2VyciA9IGFwcl9vcGVuZGlyICgmaWdub3JlX21lLCBwYXRoLT5k
> YXRhLCBwb29sKTsNCisgIGFwcl9lcnIgPSBhcHJfc3RhdCAoJmZpbmZvLCBwYXRoLT5kYXRh
> LCBwb29sKTsNCiANCi0gIGlmIChhcHJfZXJyICYmIChhcHJfZXJyICE9IEFQUl9FTk9FTlQp
> KQ0KKyAgaWYgKGFwcl9lcnIgJiYgIUFQUl9TVEFUVVNfSVNfRU5PRU5UKGFwcl9lcnIpDQor
> ICAgICAgfHwgIWFwcl9lcnIgJiYgKGZpbmZvLmZpbGV0eXBlICE9IEFQUl9ESVIpKQ0KICAg
> ICB7DQogICAgICAgLyogSWYgZ290IGFuIGVycm9yIG90aGVyIHRoYW4gZGlyIG5vbi1leGlz
> dGVuY2UsIHRoZW4NCiAgICAgICAgICBzb21ldGhpbmcncyB3ZWlyZCBhbmQgd2Ugc2hvdWxk
> IHJldHVybiBhIGdlbnVpbmUgZXJyb3IuICovDQorICAgICAgaWYgKCFhcHJfZXJyKQ0KKyAg
> ICAgICAgYXByX2VyciA9IEFQUl9FTk9URElSOw0KICAgICAgIGVyciA9IHN2bl9lcnJvcl9j
> cmVhdGUgKGFwcl9lcnIsIDAsIE5VTEwsIHBvb2wsIHBhdGgtPmRhdGEpOw0KICAgICB9DQot
> ICBlbHNlIGlmIChhcHJfZXJyKSAgIC8qIEFQUl9FTk9FTlQgKi8NCisgIGVsc2UgaWYgKEFQ
> Ul9TVEFUVVNfSVNfRU5PRU5UKGFwcl9lcnIpKQ0KICAgICB7DQogICAgICAgZGlyX2V4aXN0
> cyA9IDA7DQogICAgICAgYXByX2VyciA9IDA7DQogICAgIH0NCi0gIGVsc2UgICAgICAgICAg
> ICAgICAgLyogZGlyIG9wZW5lZCwgc28gaXQgbXVzdCBleGlzdCAqLw0KKyAgZWxzZSAgICAg
> ICAgICAgICAgICAvKiBtdXN0IGJlIGEgZGlyLiAqLw0KICAgICB7DQorICAgICAgYXNzZXJ0
> IChmaW5mby5maWxldHlwZSA9PSBBUFJfRElSKTsNCiAgICAgICBkaXJfZXhpc3RzID0gMTsN
> Ci0gICAgICBhcHJfZXJyID0gYXByX2Nsb3NlZGlyIChpZ25vcmVfbWUpOw0KKyAgICAgIGFw
> cl9lcnIgPSAwOw0KICAgICB9DQogDQogICBpZiAoYXByX2VycikNCkBAIC03NjIsNyArNzY3
> LDcgQEAgY2hlY2tfYWRtX2V4aXN0cyAoaW50ICpleGlzdHMsDQogICAgICAgVHJ5IHN0ZXAg
> MjogY2hlY2tpbmcgdGhhdCBTVk5fV0NfX0FETV9SRUFETUUgZXhpc3RzLiAqKi8NCiANCiAg
> IGVyciA9IHN2bl93Y19fb3Blbl9hZG1fZmlsZSAoJmYsIHBhdGgsIFNWTl9XQ19fQURNX1JF
> QURNRSwgQVBSX1JFQUQsIHBvb2wpOw0KLSAgaWYgKGVyciAmJiAoZXJyLT5hcHJfZXJyICE9
> IEFQUl9FRVhJU1QpKQ0KKyAgaWYgKGVyciAmJiAhQVBSX1NUQVRVU19JU19FRVhJU1QoZXJy
> LT5hcHJfZXJyKSkNCiAgICAgcmV0dXJuIGVycjsNCiAgIGVsc2UgaWYgKGVycikNCiAgICAg
> KmV4aXN0cyA9IDA7DQpJbmRleDogbGlic3ZuX3djL2VudHJpZXMuYw0KPT09PT09PT09PT09
> PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
> PQ0KUkNTIGZpbGU6IC9jdnMvc3VidmVyc2lvbi9zdWJ2ZXJzaW9uL2xpYnN2bl93Yy9lbnRy
> aWVzLmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjYyDQpkaWZmIC11IC1wIC1yMS42MiBl
> bnRyaWVzLmMNCi0tLSBsaWJzdm5fd2MvZW50cmllcy5jCTIwMDAvMTEvMDEgMjE6MTA6MjkJ
> MS42Mg0KKysrIGxpYnN2bl93Yy9lbnRyaWVzLmMJMjAwMC8xMS8wNiAyMzo0Njo1MQ0KQEAg
> LTQ0NiwxNiArNDQ2LDE3IEBAIHJlYWRfZW50cmllcyAoYXByX2hhc2hfdCAqZW50cmllcywg
> c3ZuX3MNCiAgIC8qIFBhcnNlLiAqLw0KICAgZG8gew0KICAgICBhcHJfZXJyID0gYXByX2Z1
> bGxfcmVhZCAoaW5maWxlLCBidWYsIEJVRlNJWiwgJmJ5dGVzX3JlYWQpOw0KLSAgICBpZiAo
> YXByX2VyciAmJiAoYXByX2VyciAhPSBBUFJfRU9GKSkNCisgICAgaWYgKGFwcl9lcnIgJiYg
> IUFQUl9TVEFUVVNfSVNfRU9GKGFwcl9lcnIpKQ0KICAgICAgIHJldHVybiBzdm5fZXJyb3Jf
> Y3JlYXRlIA0KICAgICAgICAgKGFwcl9lcnIsIDAsIE5VTEwsIHBvb2wsICJyZWFkX2VudHJp
> ZXM6IGFwcl9mdWxsX3JlYWQgY2hva2VkIik7DQogICAgIA0KLSAgICBlcnIgPSBzdm5feG1s
> X3BhcnNlIChzdm5fcGFyc2VyLCBidWYsIGJ5dGVzX3JlYWQsIChhcHJfZXJyID09IEFQUl9F
> T0YpKTsNCisgICAgZXJyID0gc3ZuX3htbF9wYXJzZSAoc3ZuX3BhcnNlciwgYnVmLCBieXRl
> c19yZWFkLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICBBUFJfU1RBVFVTX0lTX0VPRihh
> cHJfZXJyKSk7DQogICAgIGlmIChlcnIpDQogICAgICAgcmV0dXJuIHN2bl9lcnJvcl9xdWlj
> a193cmFwIA0KICAgICAgICAgKGVyciwNCiAgICAgICAgICAicmVhZF9lbnRyaWVzOiB4bWwg
> cGFyc2VyIGZhaWxlZC4iKTsNCi0gIH0gd2hpbGUgKGFwcl9lcnIgIT0gQVBSX0VPRik7DQor
> ICB9IHdoaWxlICghQVBSX1NUQVRVU19JU19FT0YoYXByX2VycikpOw0KIA0KICAgLyogQ2xv
> c2UgdGhlIGVudHJpZXMgZmlsZS4gKi8NCiAgIGVyciA9IHN2bl93Y19fY2xvc2VfYWRtX2Zp
> bGUgKGluZmlsZSwgcGF0aCwgU1ZOX1dDX19BRE1fRU5UUklFUywgMCwgcG9vbCk7DQpJbmRl
> eDogbGlic3ZuX3djL2dldF9lZGl0b3IuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
> PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9j
> dnMvc3VidmVyc2lvbi9zdWJ2ZXJzaW9uL2xpYnN2bl93Yy9nZXRfZWRpdG9yLmMsdg0KcmV0
> cmlldmluZyByZXZpc2lvbiAxLjExNw0KZGlmZiAtdSAtcCAtcjEuMTE3IGdldF9lZGl0b3Iu
> Yw0KLS0tIGxpYnN2bl93Yy9nZXRfZWRpdG9yLmMJMjAwMC8xMS8wMiAyMDoyNjo1MwkxLjEx
> Nw0KKysrIGxpYnN2bl93Yy9nZXRfZWRpdG9yLmMJMjAwMC8xMS8wNiAyMzo0Njo1Ng0KQEAg
> LTMxOCw3ICszMTgsNyBAQCByZWFkX2Zyb21fZmlsZSAodm9pZCAqYmF0b24sIGNoYXIgKmJ1
> ZmZlDQogICAgICAgcmV0dXJuIFNWTl9OT19FUlJPUjsNCiAgICAgfQ0KICAgc3RhdHVzID0g
> YXByX2Z1bGxfcmVhZCAoZnAsIGJ1ZmZlciwgKmxlbiwgbGVuKTsNCi0gIGlmIChzdGF0dXMg
> JiYgKHN0YXR1cyAhPSBBUFJfRU9GKSkNCisgIGlmIChzdGF0dXMgJiYgIUFQUl9TVEFUVVNf
> SVNfRU9GKHN0YXR1cykpDQogICAgIHJldHVybiBzdm5fZXJyb3JfY3JlYXRlIChzdGF0dXMs
> IDAsIE5VTEwsIHBvb2wsICJDYW4ndCByZWFkIGJhc2UgZmlsZSIpOw0KICAgcmV0dXJuIFNW
> Tl9OT19FUlJPUjsNCiB9DQpAQCAtODQyLDcgKzg0Miw3IEBAIGFwcGx5X3RleHRkZWx0YSAo
> dm9pZCAqZmlsZV9iYXRvbiwgDQogICAgICAgKi8NCiANCiAgICAgICBlcnIgPSBzdm5fd2Nf
> X29wZW5fdGV4dF9iYXNlICgmaGItPnNvdXJjZSwgZmItPnBhdGgsIEFQUl9SRUFELCBzdWJw
> b29sKTsNCi0gICAgICBpZiAoZXJyICYmIChlcnItPmFwcl9lcnIgIT0gQVBSX0VOT0VOVCkp
> DQorICAgICAgaWYgKGVyciAmJiAhQVBSX1NUQVRVU19JU19FTk9FTlQoZXJyLT5hcHJfZXJy
> KSkNCiAgICAgICAgIHsNCiAgICAgICAgICAgaWYgKGhiLT5zb3VyY2UpDQogICAgICAgICAg
> ICAgc3ZuX3djX19jbG9zZV90ZXh0X2Jhc2UgKGhiLT5zb3VyY2UsIGZiLT5wYXRoLCAwLCBz
> dWJwb29sKTsNCkluZGV4OiBsaWJzdm5fd2MvbG9jay5jDQo9PT09PT09PT09PT09PT09PT09
> PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1Mg
> ZmlsZTogL2N2cy9zdWJ2ZXJzaW9uL3N1YnZlcnNpb24vbGlic3ZuX3djL2xvY2suYyx2DQpy
> ZXRyaWV2aW5nIHJldmlzaW9uIDEuMTcNCmRpZmYgLXUgLXAgLXIxLjE3IGxvY2suYw0KLS0t
> IGxpYnN2bl93Yy9sb2NrLmMJMjAwMC8xMC8zMCAyMzoyNToyNAkxLjE3DQorKysgbGlic3Zu
> X3djL2xvY2suYwkyMDAwLzExLzA2IDIzOjQ2OjU2DQpAQCAtNjQsNyArNjQsNyBAQCBzdm5f
> d2NfX2xvY2sgKHN2bl9zdHJpbmdfdCAqcGF0aCwgaW50IHdhDQogICBkbyB7DQogICAgIGVy
> ciA9IHN2bl93Y19fbWFrZV9hZG1fdGhpbmcgKHBhdGgsIFNWTl9XQ19fQURNX0xPQ0ssDQog
> ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN2bl9ub2RlX2ZpbGUsIDAsIHBv
> b2wpOw0KLSAgICBpZiAoZXJyICYmIChlcnItPmFwcl9lcnIgPT0gQVBSX0VFWElTVCkpDQor
> ICAgIGlmIChlcnIgJiYgQVBSX1NUQVRVU19JU19FRVhJU1QoZXJyLT5hcHJfZXJyKSkNCiAg
> ICAgICB7DQogICAgICAgICBzdm5fZXJyb3JfZnJlZSAoZXJyKTsNCiAgICAgICAgIC8qIGtm
> ZiB0b2RvOiBoZXksIGFwcl9zbGVlcCgpIGlzIGJyb2tlbi4gKi8NCkluZGV4OiBsaWJzdm5f
> d2MvbG9nLmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
> PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvY3ZzL3N1YnZlcnNpb24vc3Vi
> dmVyc2lvbi9saWJzdm5fd2MvbG9nLmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjQ4DQpk
> aWZmIC11IC1wIC1yMS40OCBsb2cuYw0KLS0tIGxpYnN2bl93Yy9sb2cuYwkyMDAwLzExLzA2
> IDIzOjI5OjA4CTEuNDgNCisrKyBsaWJzdm5fd2MvbG9nLmMJMjAwMC8xMS8wNiAyMzo0Nzow
> MQ0KQEAgLTIwNiw3ICsyMDYsNyBAQCByZW1vdmVfZnJvbV9yZXZpc2lvbl9jb250cm9sIChz
> dHJ1Y3QgbG9nDQogICAgIHRleHRfYmFzZV9wYXRoDQogICAgICAgPSBzdm5fd2NfX3RleHRf
> YmFzZV9wYXRoIChmaWxlX2Z1bGxfcGF0aCwgMCwgbG9nZ3ktPnBvb2wpOw0KICAgICBlcnIg
> PSBzdm5faW9fY2hlY2tfcGF0aCAodGV4dF9iYXNlX3BhdGgsICZraW5kLCBsb2dneS0+cG9v
> bCk7DQotICAgIGlmIChlcnIgJiYgKGVyci0+YXByX2VyciA9PSBBUFJfRU5PRU5UKSkNCisg
> ICAgaWYgKGVyciAmJiBBUFJfU1RBVFVTX0lTX0VOT0VOVChlcnItPmFwcl9lcnIpKQ0KICAg
> ICAgIHJldHVybiBTVk5fTk9fRVJST1I7DQogICAgIGVsc2UgaWYgKGVycikNCiAgICAgICBy
> ZXR1cm4gZXJyOw0KQEAgLTIyNiw3ICsyMjYsNyBAQCByZW1vdmVfZnJvbV9yZXZpc2lvbl9j
> b250cm9sIChzdHJ1Y3QgbG9nDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
> ICAgICAgICAgICAgICBmaWxlX2Z1bGxfcGF0aCwNCiAgICAgICAgICAgICAgICAgICAgICAg
> ICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRfYmFzZV9wYXRoLA0KICAgICAgICAgICAg
> ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ3ktPnBvb2wpOw0KLSAg
> ICAgICAgICBpZiAoZXJyICYmIChlcnItPmFwcl9lcnIgIT0gQVBSX0VOT0VOVCkpDQorICAg
> ICAgICAgIGlmIChlcnIgJiYgIUFQUl9TVEFUVVNfSVNfRU5PRU5UKGVyci0+YXByX2Vycikp
> DQogICAgICAgICAgICAgcmV0dXJuIGVycjsNCiAgICAgICAgICAgZWxzZSBpZiAoISBlcnIp
> DQogICAgICAgICAgICAgew0KQEAgLTY1NSw3ICs2NTUsNyBAQCBzdm5fd2NfX3J1bl9sb2cg
> KHN2bl9zdHJpbmdfdCAqcGF0aCwgYXByDQogICAgIGJ1Zl9sZW4gPSBzaXplb2YgKGJ1Zik7
> DQogDQogICAgIGFwcl9lcnIgPSBhcHJfcmVhZCAoZiwgYnVmLCAmYnVmX2xlbik7DQotICAg
> IGlmIChhcHJfZXJyICYmIChhcHJfZXJyICE9IEFQUl9FT0YpKQ0KKyAgICBpZiAoYXByX2Vy
> ciAmJiAhQVBSX1NUQVRVU19JU19FT0YoYXByX2VycikpDQogICAgICAgew0KICAgICAgICAg
> YXByX2Nsb3NlIChmKTsNCiAgICAgICAgIHJldHVybiBzdm5fZXJyb3JfY3JlYXRlZiAoYXBy
> X2VyciwgMCwgTlVMTCwgcG9vbCwNCkBAIC02NzAsNyArNjcwLDcgQEAgc3ZuX3djX19ydW5f
> bG9nIChzdm5fc3RyaW5nX3QgKnBhdGgsIGFwcg0KICAgICAgICAgcmV0dXJuIGVycjsNCiAg
> ICAgICB9DQogDQotICAgIGlmIChhcHJfZXJyID09IEFQUl9FT0YpDQorICAgIGlmIChBUFJf
> U1RBVFVTX0lTX0VPRihhcHJfZXJyKSkNCiAgICAgICB7DQogICAgICAgICAvKiBOb3QgYW4g
> ZXJyb3IsIGp1c3QgbWVhbnMgd2UncmUgZG9uZS4gKi8NCiAgICAgICAgIGFwcl9jbG9zZSAo
> Zik7DQpAQCAtNzg2LDcgKzc4Niw3IEBAIHN2bl93Y19fY2xlYW51cCAoc3ZuX3N0cmluZ190
> ICpwYXRoLA0KICAgICAgIGlmICghIGJhaWxfb25fbG9jaykNCiAgICAgICAgIHsNCiAgICAg
> ICAgICAgZXJyID0gc3ZuX3djX191bmxvY2sgKHBhdGgsIHBvb2wpOw0KLSAgICAgICAgICBp
> ZiAoZXJyICYmIChlcnItPmFwcl9lcnIgIT0gQVBSX0VOT0VOVCkpDQorICAgICAgICAgIGlm
> IChlcnIgJiYgIUFQUl9TVEFUVVNfSVNfRU5PRU5UKGVyci0+YXByX2VycikpDQogICAgICAg
> ICAgICAgcmV0dXJuIGVycjsNCiAgICAgICAgIH0NCiAgICAgfQ0KSW5kZXg6IGxpYnN2bl93
> Yy9xdWVzdGlvbnMuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
> PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9jdnMvc3VidmVyc2lv
> bi9zdWJ2ZXJzaW9uL2xpYnN2bl93Yy9xdWVzdGlvbnMuYyx2DQpyZXRyaWV2aW5nIHJldmlz
> aW9uIDEuMjMNCmRpZmYgLXUgLXAgLXIxLjIzIHF1ZXN0aW9ucy5jDQotLS0gbGlic3ZuX3dj
> L3F1ZXN0aW9ucy5jCTIwMDAvMTEvMDEgMjE6MTA6MjkJMS4yMw0KKysrIGxpYnN2bl93Yy9x
> dWVzdGlvbnMuYwkyMDAwLzExLzA2IDIzOjQ3OjAxDQpAQCAtMjMzLDE2ICsyMzMsMTYgQEAg
> Y29udGVudHNfaWRlbnRpY2FsX3AgKHN2bl9ib29sZWFuX3QgKmlkZQ0KICAgICAgICAiY29u
> dGVudHNfaWRlbnRpY2FsX3A6IGFwcl9vcGVuIGZhaWxlZCBvbiBgJXMnIiwgZmlsZTItPmRh
> dGEpOw0KIA0KICAgKmlkZW50aWNhbF9wID0gVFJVRTsgIC8qIGFzc3VtZSBUUlVFLCB1bnRp
> bCBkaXNwcm92ZWQgYmVsb3cgKi8NCi0gIHdoaWxlIChzdGF0dXMgIT0gQVBSX0VPRikNCisg
> IHdoaWxlICghQVBSX1NUQVRVU19JU19FT0Yoc3RhdHVzKSkNCiAgICAgew0KICAgICAgIHN0
> YXR1cyA9IGFwcl9mdWxsX3JlYWQgKGZpbGUxX2gsIGJ1ZjEsIEJVRlNJWiwgJmJ5dGVzX3Jl
> YWQxKTsNCi0gICAgICBpZiAoc3RhdHVzICYmIChzdGF0dXMgIT0gQVBSX0VPRikpDQorICAg
> ICAgaWYgKHN0YXR1cyAmJiAhQVBSX1NUQVRVU19JU19FT0Yoc3RhdHVzKSkNCiAgICAgICAg
> IHJldHVybiBzdm5fZXJyb3JfY3JlYXRlZg0KICAgICAgICAgICAoc3RhdHVzLCAwLCBOVUxM
> LCBwb29sLA0KICAgICAgICAgICAgImNvbnRlbnRzX2lkZW50aWNhbF9wOiBhcHJfZnVsbF9y
> ZWFkKCkgZmFpbGVkIG9uICVzLiIsIGZpbGUxLT5kYXRhKTsNCiANCiAgICAgICBzdGF0dXMg
> PSBhcHJfZnVsbF9yZWFkIChmaWxlMl9oLCBidWYyLCBCVUZTSVosICZieXRlc19yZWFkMik7
> DQotICAgICAgaWYgKHN0YXR1cyAmJiAoc3RhdHVzICE9IEFQUl9FT0YpKQ0KKyAgICAgIGlm
> IChzdGF0dXMgJiYgIUFQUl9TVEFUVVNfSVNfRU9GKHN0YXR1cykpDQogICAgICAgICByZXR1
> cm4gc3ZuX2Vycm9yX2NyZWF0ZWYNCiAgICAgICAgICAgKHN0YXR1cywgMCwgTlVMTCwgcG9v
> bCwNCiAgICAgICAgICAgICJjb250ZW50c19pZGVudGljYWxfcDogYXByX2Z1bGxfcmVhZCgp
> IGZhaWxlZCBvbiAlcy4iLCBmaWxlMi0+ZGF0YSk7DQpJbmRleDogbGlic3ZuX3djL3V0aWwu
> Yw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
> PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9jdnMvc3VidmVyc2lvbi9zdWJ2ZXJzaW9u
> L2xpYnN2bl93Yy91dGlsLmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjEyDQpkaWZmIC11
> IC1wIC1yMS4xMiB1dGlsLmMNCi0tLSBsaWJzdm5fd2MvdXRpbC5jCTIwMDAvMTAvMDcgMDU6
> MzI6MTUJMS4xMg0KKysrIGxpYnN2bl93Yy91dGlsLmMJMjAwMC8xMS8wNiAyMzo0NzowMQ0K
> QEAgLTUyLDYgKzUyLDcgQEANCiANCiANCiAMDQorI2luY2x1ZGUgPGFzc2VydC5oPg0KICNp
> bmNsdWRlIDxhcHJfcG9vbHMuaD4NCiAjaW5jbHVkZSA8YXByX2ZpbGVfaW8uaD4NCiAjaW5j
> bHVkZSA8YXByX3RpbWUuaD4NCkBAIC02NywyNCArNjgsMjcgQEAgc3ZuX3djX19lbnN1cmVf
> ZGlyZWN0b3J5IChzdm5fc3RyaW5nX3QgKg0KIHsNCiAgIHN2bl9zdHJpbmdfdCAqbnBhdGgg
> PSBzdm5fc3RyaW5nX2R1cCAocGF0aCwgcG9vbCk7DQogICBhcHJfc3RhdHVzX3QgYXByX2Vy
> ciA9IDA7DQotICBhcHJfZGlyX3QgKnRoaXNfYXR0ZW1wdF9kaXIgPSBOVUxMOw0KKyAgYXBy
> X2ZpbmZvX3QgZmluZm87DQogDQotICBhcHJfZXJyID0gYXByX29wZW5kaXIgKCZ0aGlzX2F0
> dGVtcHRfZGlyLCBucGF0aC0+ZGF0YSwgcG9vbCk7DQorICBhcHJfZXJyID0gYXByX3N0YXQg
> KCZmaW5mbywgbnBhdGgtPmRhdGEsIHBvb2wpOw0KIA0KLSAgaWYgKGFwcl9lcnIgJiYgKGFw
> cl9lcnIgIT0gQVBSX0VOT0VOVCkpDQorICBpZiAoYXByX2VyciAmJiAhQVBSX1NUQVRVU19J
> U19FTk9FTlQoYXByX2VycikNCisgICAgICB8fCAhYXByX2VyciAmJiAoZmluZm8uZmlsZXR5
> cGUgIT0gQVBSX0RJUikpDQogICAgIHsNCiAgICAgICAvKiBJZiBnb3QgYW4gZXJyb3Igb3Ro
> ZXIgdGhhbiBkaXIgbm9uLWV4aXN0ZW5jZSwgdGhlbiB3ZSBjYW4ndA0KICAgICAgICAgIGVu
> c3VyZSB0aGlzIGRpcmVjdG9yeSdzIGV4aXN0ZW5jZSwgc28ganVzdCByZXR1cm4gdGhlIGVy
> cm9yLg0KICAgICAgICAgIE1pZ2h0IGhhcHBlbiBpZiB0aGVyZSdzIGEgZmlsZSBpbiB0aGUg
> d2F5LCBmb3IgZXhhbXBsZS4gKi8NCisgICAgICBpZiAoIWFwcl9lcnIpDQorICAgICAgICBh
> cHJfZXJyID0gQVBSX0VOT1RESVI7DQogICAgICAgcmV0dXJuIHN2bl9lcnJvcl9jcmVhdGUg
> KGFwcl9lcnIsIDAsIE5VTEwsIHBvb2wsIG5wYXRoLT5kYXRhKTsNCiAgICAgfQ0KLSAgZWxz
> ZSBpZiAoYXByX2VyciA9PSBBUFJfRU5PRU5UKSAgLyogKHllcywgcmVkdW5kYW50IGNvbmRp
> dGlvbmFsKSAqLw0KKyAgZWxzZSBpZiAoQVBSX1NUQVRVU19JU19FTk9FTlQoYXByX2Vycikp
> IC8qICh5ZXMsIHJlZHVuZGFudCBjb25kaXRpb25hbCkgKi8NCiAgICAgew0KICAgICAgIC8q
> IFRoZSBkaXIgZG9lc24ndCBleGlzdCwgYW5kIGl0J3Mgb3VyIGpvYiB0byBjaGFuZ2UgdGhh
> dC4gKi8NCiANCiAgICAgICBhcHJfZXJyID0gYXByX21ha2VfZGlyIChucGF0aC0+ZGF0YSwg
> QVBSX09TX0RFRkFVTFQsIHBvb2wpOw0KIA0KLSAgICAgIGlmIChhcHJfZXJyICYmIChhcHJf
> ZXJyICE9IEFQUl9FTk9FTlQpKQ0KKyAgICAgIGlmIChhcHJfZXJyICYmICFBUFJfU1RBVFVT
> X0lTX0VOT0VOVChhcHJfZXJyKSkNCiAgICAgICAgIHsNCiAgICAgICAgICAgLyogVHJpZWQg
> dG8gY3JlYXRlIHRoZSBkaXIsIGFuZCBlbmNvdW50ZXJlZCBzb21lIHByb2JsZW0NCiAgICAg
> ICAgICAgICAgb3RoZXIgdGhhbiBub24tZXhpc3RlbmNlIG9mIGludGVybWVkaWF0ZSBkaXJz
> LiAgV2UgY2FuJ3QNCkBAIC05Miw3ICs5Niw3IEBAIHN2bl93Y19fZW5zdXJlX2RpcmVjdG9y
> eSAoc3ZuX3N0cmluZ190ICoNCiAgICAgICAgICAgICAgdGhlIGVycm9yLiAqLyANCiAgICAg
> ICAgICAgcmV0dXJuIHN2bl9lcnJvcl9jcmVhdGUgKGFwcl9lcnIsIDAsIE5VTEwsIHBvb2ws
> IG5wYXRoLT5kYXRhKTsNCiAgICAgICAgIH0NCi0gICAgICBlbHNlIGlmIChhcHJfZXJyID09
> IEFQUl9FTk9FTlQpIC8qIChyZWR1bmRhbnQgY29uZGl0aW9uYWwgYW5kIGNvbW1lbnQpICov
> DQorICAgICAgZWxzZSBpZiAoQVBSX1NUQVRVU19JU19FTk9FTlQoYXByX2VycikpIC8qIChy
> ZWR1bmRhbnQgY29uZGl0aW9uYWwgYW5kIGNvbW1lbnQpICovDQogICAgICAgICB7DQogICAg
> ICAgICAgIC8qIE9rYXksIHNvIHRoZSBwcm9ibGVtIGlzIGEgbWlzc2luZyBpbnRlcm1lZGlh
> dGUNCiAgICAgICAgICAgICAgZGlyZWN0b3J5LiAgV2UgZG9uJ3Qga25vdyB3aGljaCBvbmUs
> IHNvIHdlIHJlY3Vyc2l2ZWx5DQpAQCAtMTE3LDggKzEyMSwxMSBAQCBzdm5fd2NfX2Vuc3Vy
> ZV9kaXJlY3RvcnkgKHN2bl9zdHJpbmdfdCAqDQogICAgICAgICAgICAgfQ0KICAgICAgICAg
> fQ0KICAgICB9DQotICBlbHNlICAvKiBObyBwcm9ibGVtLCB0aGUgZGlyIGFscmVhZHkgZXhp
> c3RlZCwgc28ganVzdCBjbG9zZSBpdCBhbmQgbGVhdmUuICovDQotICAgIGFwcl9lcnIgPSBh
> cHJfY2xvc2VkaXIgKHRoaXNfYXR0ZW1wdF9kaXIpOw0KKyAgZWxzZSAgLyogTm8gcHJvYmxl
> bSwgdGhlIGRpciBhbHJlYWR5IGV4aXN0ZWQsIHNvIGp1c3QgbGVhdmUuICovDQorICAgIHsN
> CisgICAgICBhc3NlcnQgKGZpbmZvLmZpbGV0eXBlID09IEFQUl9ESVIpOw0KKyAgICAgIGFw
> cl9lcnIgPSAwOw0KKyAgICB9DQogICANCiAgIGlmIChhcHJfZXJyKQ0KICAgICByZXR1cm4g
> c3ZuX2Vycm9yX2NyZWF0ZSAoYXByX2VyciwgMCwgTlVMTCwgcG9vbCwgbnBhdGgtPmRhdGEp
> Ow0KSW5kZXg6IGxpYnN2bl93Yy90ZXN0cy9jaGVja291dC10ZXN0LmMNCj09PT09PT09PT09
> PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
> PT0NClJDUyBmaWxlOiAvY3ZzL3N1YnZlcnNpb24vc3VidmVyc2lvbi9saWJzdm5fd2MvdGVz
> dHMvY2hlY2tvdXQtdGVzdC5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4zMQ0KZGlmZiAt
> dSAtcCAtcjEuMzEgY2hlY2tvdXQtdGVzdC5jDQotLS0gbGlic3ZuX3djL3Rlc3RzL2NoZWNr
> b3V0LXRlc3QuYwkyMDAwLzExLzAxIDIxOjEwOjMxCTEuMzENCisrKyBsaWJzdm5fd2MvdGVz
> dHMvY2hlY2tvdXQtdGVzdC5jCTIwMDAvMTEvMDYgMjM6NDc6MDENCkBAIC03MSw3ICs3MSw3
> IEBAIHRlc3RfcmVhZF9mbiAodm9pZCAqYmF0b24sIGNoYXIgKmJ1ZmZlciwNCiANCiAgIHN0
> YXQgPSBhcHJfZnVsbF9yZWFkIChzcmMsIGJ1ZmZlciwgKGFwcl9zaXplX3QpICpsZW4sIChh
> cHJfc2l6ZV90ICopIGxlbik7DQogDQotICBpZiAoc3RhdCAmJiAoc3RhdCAhPSBBUFJfRU9G
> KSkNCisgIGlmIChzdGF0ICYmICFBUFJfU1RBVFVTX0lTX0VPRihzdGF0KSkNCiAgICAgcmV0
> dXJuDQogICAgICAgc3ZuX2Vycm9yX2NyZWF0ZSAoc3RhdCwgMCwgTlVMTCwgcG9vbCwNCiAg
> ICAgICAgICAgICAgICAgICAgICAgICAiZXJyb3IgcmVhZGluZyBpbmNvbWluZyBkZWx0YSBz
> dHJlYW0iKTsNCg==
> --------------060908070106030502030802
> Content-Type: text/plain;
> name="apr-for-huge.patch"
> Content-Transfer-Encoding: 7bit
> Content-Disposition: inline;
> filename="apr-for-huge.patch"
>
> Index: file_io/win32/readwrite.c
> ===================================================================
> RCS file: /home/cvspublic/apache-2.0/src/lib/apr/file_io/win32/readwrite.c,v
> retrieving revision 1.47
> diff -u -p -r1.47 readwrite.c
> --- file_io/win32/readwrite.c 2000/10/16 06:04:40 1.47
> +++ file_io/win32/readwrite.c 2000/11/07 00:09:23
> @@ -139,7 +139,10 @@ static apr_status_t read_with_timeout(ap
> rv = APR_SUCCESS; /* APR_EOF? */
> }
> } else {
> - rv = APR_SUCCESS;
> + if (*nbytes == 0) /* OK and 0 bytes read ==> end of file */
> + rv = APR_EOF;
> + else
> + rv = APR_SUCCESS;
> }
> return rv;
> }
> @@ -240,6 +243,7 @@ apr_status_t apr_write(apr_file_t *thefi
> thefile->direction = 1;
> }
>
> + rv = 0;
> while (rv == 0 && size > 0) {
> if (thefile->bufpos == APR_FILE_BUFSIZE) // write buffer is full
> rv = apr_flush(thefile);
>
> --------------060908070106030502030802--
Received on Sat Oct 21 14:36:14 2006