[Mono-list] Winfessor Patches for Jabber

JD Conley jconley@winfessor.com
Tue, 17 Dec 2002 21:16:53 -0800


This is a multi-part message in MIME format.

------_=_NextPart_001_01C2A654.AD3D1C40
Content-Type: text/plain;
	charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable

Good evening,

Sorry I didn't contribute this sooner, but it's been pretty hectic
around here.  We made some simple modifications to two main areas of the
Mono class libraries in order for our code, and Jabber, to work
properly.  I haven't kicked off the complete unit test regression after
these patches were applied, so I could use some help verifying nothing
was un-intentionally broken elsewhere in the tree.

First off, we changed the ThreadPool to no longer have a five item Queue
threshold.  Any work items added to the Queue via QueueUserWorkItem will
immediately be started (until maxThreads is reached).  This appears to
be the behavior on the Microsoft .NET Runtime and our XML packet stream
parser was based on it.  I hope this doesn't conflict with any existing
code.

The other area that was changed was the
XMLWriter/XMLTextWriter/XMLElement classes.  Jabber/XMPP requires that
the xmlns attribute (with no prefix) be used on numerous nodes
throughout a document.  We modified a few things so the empty prefix on
xmlns attributes is allowed to be repeated throughout the document.
Someone more familiar with XML standards should take a look and make
sure it's implemented correctly.

We have one outstanding issue on Windows with socket disposal.  We're
working on tracking that down right now.  Are there any known issues
with sockets throwing win32 exceptions while closing/disposing?

Is there any work going on to incorporate OpenSSL into the runtime?

We (Winfessor developers working with Mono) will be setting up CVS so we
can contribute our changes more efficiently.

Regards,
JD Conley
Winfessor, Inc
www.winfessor.com
"Life would be so much easier if we could just see the source code."

------_=_NextPart_001_01C2A654.AD3D1C40
Content-Type: application/octet-stream;
	name="System.XML.diff"
Content-Transfer-Encoding: base64
Content-Description: System.XML.diff
Content-Disposition: attachment;
	filename="System.XML.diff"

PyBTeXN0ZW0uWE1MLmRpZmYKSW5kZXg6IFN5c3RlbS5YbWwvWG1sRWxlbWVudC5jcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiAvbW9uby9tY3MvY2xhc3MvU3lzdGVtLlhNTC9TeXN0ZW0uWG1sL1htbEVs
ZW1lbnQuY3MsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDEKZGlmZiAtdSAtcjEuNDEgWG1sRWxl
bWVudC5jcwotLS0gU3lzdGVtLlhtbC9YbWxFbGVtZW50LmNzCTQgRGVjIDIwMDIgMTg6NTg6NDgg
LTAwMDAJMS40MQorKysgU3lzdGVtLlhtbC9YbWxFbGVtZW50LmNzCTE4IERlYyAyMDAyIDA0OjA2
OjUyIC0wMDAwCkBAIC0zNTgsMTQgKzM1OCwxNCBAQAogCQkJdy5Xcml0ZVN0YXJ0RWxlbWVudChQ
cmVmaXgsIExvY2FsTmFtZSwgTmFtZXNwYWNlVVJJKTsKIAogCQkJLy8gd3JpdGUgbmFtZXNwYWNl
IGRlY2xhcmF0aW9ucyhpZiBub3QgZXhpc3QpCi0JCQlpZihQcmVmaXggIT0gbnVsbCAmJiB3Lkxv
b2t1cFByZWZpeChQcmVmaXgpICE9IE5hbWVzcGFjZVVSSSkKKwkJCWlmKFByZWZpeCAhPSBudWxs
ICYmIFByZWZpeCAhPSBTdHJpbmcuRW1wdHkgJiYgdy5Mb29rdXBQcmVmaXgoUHJlZml4KSAhPSBO
YW1lc3BhY2VVUkkpCiAJCQkJdy5Xcml0ZUF0dHJpYnV0ZVN0cmluZygieG1sbnMiLCBQcmVmaXgs
ICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyIsIE5hbWVzcGFjZVVSSSk7CiAKIAkJCWZv
cmVhY2goWG1sTm9kZSBhdHRyaWJ1dGVOb2RlIGluIEF0dHJpYnV0ZXMpCiAJCQl7CiAJCQkJYXR0
cmlidXRlTm9kZS5Xcml0ZVRvKHcpOwogCQkJCS8vIHdyaXRlIG5hbWVzcGFjZSBkZWNsYXJhdGlv
bnMoaWYgbm90IGV4aXN0KQotCQkJCWlmKGF0dHJpYnV0ZU5vZGUuUHJlZml4ICE9IG51bGwgJiYg
YXR0cmlidXRlTm9kZS5QcmVmaXggIT0gIiIgJiYKKwkJCQlpZihhdHRyaWJ1dGVOb2RlLlByZWZp
eCAhPSBudWxsICYmIGF0dHJpYnV0ZU5vZGUuUHJlZml4ICE9IFN0cmluZy5FbXB0eSAmJgogCQkJ
CSAgIHcuTG9va3VwUHJlZml4KGF0dHJpYnV0ZU5vZGUuUHJlZml4KSAhPSBhdHRyaWJ1dGVOb2Rl
Lk5hbWVzcGFjZVVSSSAmJgogCQkJCSAgIGF0dHJpYnV0ZU5vZGUuUHJlZml4ICE9ICJ4bWxucyIp
CiAJCQkJCXcuV3JpdGVBdHRyaWJ1dGVTdHJpbmcoInhtbG5zIiwgYXR0cmlidXRlTm9kZS5QcmVm
aXgsICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyIsIGF0dHJpYnV0ZU5vZGUuTmFtZXNw
YWNlVVJJKTsKSW5kZXg6IFN5c3RlbS5YbWwvWG1sVGV4dFdyaXRlci5jcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvbW9uby9tY3MvY2xhc3MvU3lzdGVtLlhNTC9TeXN0ZW0uWG1sL1htbFRleHRXcml0
ZXIuY3MsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjYKZGlmZiAtdSAtcjEuMjYgWG1sVGV4dFdy
aXRlci5jcwotLS0gU3lzdGVtLlhtbC9YbWxUZXh0V3JpdGVyLmNzCTIgRGVjIDIwMDIgMTc6NTc6
NDUgLTAwMDAJMS4yNgorKysgU3lzdGVtLlhtbC9YbWxUZXh0V3JpdGVyLmNzCTE4IERlYyAyMDAy
IDA0OjA2OjUyIC0wMDAwCkBAIC01NjEsNiArNTYxLDcgQEAKIAkJCQkJCW5hbWVzcGFjZU1hbmFn
ZXIuQWRkTmFtZXNwYWNlIChwcmVmaXgsIG5zKTsKIAkJCQkJCWFkZERlZmF1bHROYW1lc3BhY2Ug
PSB0cnVlOwogCQkJCQl9CisKIAkJCQkJaWYgKHByZWZpeCA9PSBTdHJpbmcuRW1wdHkpCiAJCQkJ
CQlwcmVmaXggPSBleGlzdGluZ1ByZWZpeDsKIApJbmRleDogU3lzdGVtLlhtbC9YbWxXcml0ZXIu
Y3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL21vbm8vbWNzL2NsYXNzL1N5c3RlbS5YTUwvU3lzdGVt
LlhtbC9YbWxXcml0ZXIuY3MsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTMKZGlmZiAtdSAtcjEu
MTMgWG1sV3JpdGVyLmNzCi0tLSBTeXN0ZW0uWG1sL1htbFdyaXRlci5jcwkyMyBPY3QgMjAwMiAx
Njo0NDo0NyAtMDAwMAkxLjEzCisrKyBTeXN0ZW0uWG1sL1htbFdyaXRlci5jcwkxOCBEZWMgMjAw
MiAwNDowNjo1MiAtMDAwMApAQCAtOTMsMTAgKzkzLDE0IEBACiAJCQlpZiAoKHByZWZpeCA9PSAi
eG1sbnMiKSB8fCAobG9jYWxOYW1lID09ICJ4bWxucyIpKQogCQkJICB7CiAJCQkJbnMgPSB2YWx1
ZTsKKwkJCQkKIAkJCQlpZiAocHJlZml4ID09ICJ4bWxucyIgJiYgbmFtZXNwYWNlTWFuYWdlci5I
YXNOYW1lc3BhY2UgKGxvY2FsTmFtZSkpCiAJCQkJICAJcmV0dXJuOworCQkJCQorCQkJCS8qIFVz
ZXJzIG5lZWQgdG8gYmUgYWJsZSB0byByZS1kZWNsYXJlIHRoZSBkZWZhdWx0IG5hbWVzcGFjZSBm
b3Igc3Vibm9kZXMKIAkJCQllbHNlIGlmIChsb2NhbE5hbWUgPT0gInhtbG5zIiAmJiBuYW1lc3Bh
Y2VNYW5hZ2VyLkhhc05hbWVzcGFjZSAoU3RyaW5nLkVtcHR5KSkKIAkJCQkgIAlyZXR1cm47CisJ
CQkJKi8KIAkJCSAgfQogCQkJCiAJCQlXcml0ZVN0YXJ0QXR0cmlidXRlIChwcmVmaXgsIGxvY2Fs
TmFtZSwgbnMpOwpAQCAtMTEwLDYgKzExNCw3IEBACiAJCQkJZWxzZQogCQkJCQluYW1lc3BhY2VN
YW5hZ2VyLkFkZE5hbWVzcGFjZSAoIiIsIG5zKTsKIAkJCX0KKwkJCQogCQl9CiAKIAkJcHVibGlj
IGFic3RyYWN0IHZvaWQgV3JpdGVCYXNlNjQgKGJ5dGVbXSBidWZmZXIsIGludCBpbmRleCwgaW50
IGNvdW50KTsK

------_=_NextPart_001_01C2A654.AD3D1C40
Content-Type: application/octet-stream;
	name="corlib.diff"
Content-Transfer-Encoding: base64
Content-Description: corlib.diff
Content-Disposition: attachment;
	filename="corlib.diff"

PyBjb3JsaWIuZGlmZgpJbmRleDogU3lzdGVtLlRocmVhZGluZy9UaHJlYWRQb29sLmNzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9tb25vL21jcy9jbGFzcy9jb3JsaWIvU3lzdGVtLlRocmVhZGluZy9U
aHJlYWRQb29sLmNzLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjExCmRpZmYgLXUgLXIxLjExIFRo
cmVhZFBvb2wuY3MKLS0tIFN5c3RlbS5UaHJlYWRpbmcvVGhyZWFkUG9vbC5jcwkxMCBEZWMgMjAw
MiAxODowMjo1NSAtMDAwMAkxLjExCisrKyBTeXN0ZW0uVGhyZWFkaW5nL1RocmVhZFBvb2wuY3MJ
MTggRGVjIDIwMDIgMDQ6MDM6NDcgLTAwMDAKQEAgLTY0LDcgKzY0LDcgQEAKICAgICAgICAgIF9D
dXJyZW50VGhyZWFkcyA9IDA7CiAgICAgICAgICBfUmVxdWVzdEluUXVldWUgPSAwOwogICAgICAg
ICAgX1RocmVhZHNJblVzZSA9IDA7Ci0gICAgICAgICBfVGhyZWFkQ3JlYXRlVHJpZ2dlclJlcXVl
c3RzID0gNTsKKyAgICAgICAgIF9UaHJlYWRDcmVhdGVUcmlnZ2VyUmVxdWVzdHMgPSAwOwogCiAg
ICAgICAgICAvLyBLZWVwcyB0cmFjayBvZiByZXF1ZXN0cyBpbiB0aGUgcXVldWUgYW5kIGluY3Jl
YXNlcyB0aGUgbnVtYmVyIG9mIHRocmVhZHMgaWYgbmVlZGVkCiAgICAgICAgICBfTW9uaXRvclRo
cmVhZCA9IG5ldyBUaHJlYWQobmV3IFRocmVhZFN0YXJ0KE1vbml0b3JUaHJlYWQpKTsK

------_=_NextPart_001_01C2A654.AD3D1C40--