<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to patches</title><link href="https://sourceforge.net/p/beepcore-java/patches/" rel="alternate"/><link href="https://sourceforge.net/p/beepcore-java/patches/feed.atom" rel="self"/><id>https://sourceforge.net/p/beepcore-java/patches/</id><updated>2005-01-21T00:17:57Z</updated><subtitle>Recent changes to patches</subtitle><entry><title>GSS Profile</title><link href="https://sourceforge.net/p/beepcore-java/patches/14/" rel="alternate"/><published>2005-01-21T00:17:57Z</published><updated>2005-01-21T00:17:57Z</updated><author><name>Warren Janssens</name><uri>https://sourceforge.net/u/wjanssens/</uri></author><id>https://sourceforge.net4a0d403268dfe77d4304f5a30b779c1ab62484b0</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;This profile is useful for those still using JDK1.4 and&lt;br /&gt;
wanting to do Kerberos authentication.&lt;/p&gt;
&lt;p&gt;(For JDK 1.5 a better solution is to have a profile&lt;br /&gt;
that uses the new SASL libraries)&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Thread safety patch for InputDataStream</title><link href="https://sourceforge.net/p/beepcore-java/patches/13/" rel="alternate"/><published>2005-01-20T23:43:48Z</published><updated>2005-01-20T23:43:48Z</updated><author><name>Warren Janssens</name><uri>https://sourceforge.net/u/wjanssens/</uri></author><id>https://sourceforge.net4bda58eb49967ecc4d17c1a8c7690a6b9fc20ddc</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;This patch fixes a race condition that can potentially&lt;br /&gt;
cause problems reading data from a peer.  Without this&lt;br /&gt;
patch, it is possible for InputDataStreamAdapter.read()&lt;br /&gt;
to return -1 prematurely, or&lt;br /&gt;
InputDataStreamAdapter.read(byte,int,int) to go into an&lt;br /&gt;
endless loop.&lt;/p&gt;
&lt;h1 id="index-inputdatastreamjava"&gt;Index: InputDataStream.java&lt;/h1&gt;
&lt;p&gt;RCS file:&lt;br /&gt;
/cvsroot/beepcore-java/beepcore-java/src/org/beepcore/beep/core/InputDataStream.java,v&lt;br /&gt;
retrieving revision 1.6&lt;br /&gt;
diff -u -r1.6 InputDataStream.java&lt;br /&gt;
--- InputDataStream.java   23 Apr 2003 15:23:04 -0000  1.6&lt;br /&gt;
+++ InputDataStream.java    20 Jan 2005 23:33:24 -0000&lt;br /&gt;
@@ -90,9 +90,9 @@&lt;/p&gt;
&lt;p&gt;synchronized (this.buffers) {&lt;br /&gt;
this.buffers.addLast(segment);&lt;br /&gt;
+            this.availableBytes += segment.getLength();&lt;br /&gt;
this.buffers.notify();&lt;br /&gt;
}&lt;br /&gt;
-        this.availableBytes += segment.getLength();&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;public int available()&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>SASLProfile digestmd5 &amp; SOAPProfile</title><link href="https://sourceforge.net/p/beepcore-java/patches/12/" rel="alternate"/><published>2004-10-12T22:12:48Z</published><updated>2004-10-12T22:12:48Z</updated><author><name>Greg Wilkins</name><uri>https://sourceforge.net/u/gregwilkins/</uri></author><id>https://sourceforge.net322157ad8a4b8ec16351b7ff9ee2bc6649e33b81</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;This patch (donated from Cisco Systems Limited) is for&lt;br /&gt;
a SASLProfile for digestmd5 and a basic SOAPProfile that&lt;br /&gt;
supports RFC3288 bootmsg handling.&lt;/p&gt;
&lt;p&gt;The SASL profile (currently called SASLBeepProfile but&lt;br /&gt;
probably should be merged with the existing SASLProfile&lt;br /&gt;
class) is actually a generic SASL profile that should&lt;br /&gt;
be able to use arbitrary SASL Client/Servlet providers&lt;br /&gt;
to hand various authentication protocols.    &lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Currently this has only been tested with digestmd5.  To&lt;br /&gt;
achieve this, the SASL 1.1 RI has been added to the lib&lt;br /&gt;
and a sasl provider has been included in org.beepcore.sasl&lt;br /&gt;
that supports digestmd5  - partly by wrapping the sun ldap&lt;br /&gt;
provider included in jre 1.4.  (Note the patch includes an&lt;br /&gt;
updated build files and eclipse .classpath file).&lt;/p&gt;
&lt;p&gt;The use of this provider is not well documented - but there&lt;br /&gt;
are test harnesses that show how it works.&lt;/p&gt;
&lt;p&gt;If this approach is accepted, then I believe the other&lt;br /&gt;
SASLProfiles should be converted to use the same&lt;br /&gt;
approach.  IE, instead of writing new SASLProfiles, we&lt;br /&gt;
simply write/obtain new SASL providers.  Eventually a&lt;br /&gt;
full set of these will be provided with the JRE. &lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;The reason for this is that the intent of SASL is more than&lt;br /&gt;
just a wire prototocl.  It is intended to allow simple&lt;br /&gt;
configuration of alternate authentication and&lt;br /&gt;
encyrption mechanisms at runtime.   Thus hardcoded&lt;br /&gt;
profile names do not really support the spirit of SASL&lt;br /&gt;
- IMNSHO.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Initial implementation for SASL Plain Profile</title><link href="https://sourceforge.net/p/beepcore-java/patches/11/" rel="alternate"/><published>2004-09-14T15:34:11Z</published><updated>2004-09-14T15:34:11Z</updated><author><name>Warren Janssens</name><uri>https://sourceforge.net/u/wjanssens/</uri></author><id>https://sourceforge.neta04e73e6a12413b2a7cfa563a0e63b2a1fcc843a</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;An initial implementation of the SASL Plain Profile.&lt;/p&gt;
&lt;p&gt;This implementation is tested and works with itself.&lt;/p&gt;
&lt;p&gt;It has not yet been tested and probably won't work with&lt;br /&gt;
other SASL Plain implementations (i.e. not guaranteed&lt;br /&gt;
to interoperate with C, TCL, etc...).&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>RFC 822 Header Parsing broken</title><link href="https://sourceforge.net/p/beepcore-java/patches/10/" rel="alternate"/><published>2004-01-04T14:20:47Z</published><updated>2004-01-04T14:20:47Z</updated><author><name>Henner Zeller</name><uri>https://sourceforge.net/u/hzeller/</uri></author><id>https://sourceforge.net8c5f46cfabdf5ac2ac4c98fdaca719599e1a97b5</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;br /&gt;
(I've sent this patch to the mailing list in November&lt;br /&gt;
24th, but it hasn't been incorparated yet).&lt;/p&gt;
&lt;p&gt;In an attempt to implement Beep as a protocol for JAXM&lt;br /&gt;
and SAAJ using the&lt;br /&gt;
SOAP Profile specification, I noticed, that the&lt;br /&gt;
implementation of the&lt;br /&gt;
RFC822 Header parser has not been complete.&lt;/p&gt;
&lt;p&gt;The problems arises when sending attachments with SUNs&lt;br /&gt;
default&lt;br /&gt;
implementation of JAXM. When sending an Attachment with&lt;br /&gt;
Soap, the payload&lt;br /&gt;
actually contains a full mime multipart document, so&lt;br /&gt;
one mime header&lt;br /&gt;
of a beep message contains the boundary which happens&lt;br /&gt;
to be on a new line&lt;br /&gt;
with the SUN implementation; something like:&lt;/p&gt;
&lt;p&gt;Content-Type:multipart/related; type="text/xml";&lt;br /&gt;
boundary="----=_Part_0_19610963.1069622873839"&lt;/p&gt;
&lt;p&gt;This is correct according to RFC822 (Paragraph 3.2,&lt;br /&gt;
field-body&lt;br /&gt;
production), but is not implemented in the Beep header&lt;br /&gt;
parser which does&lt;br /&gt;
not understand multiline headers. So in this case the&lt;br /&gt;
boundary is lost and&lt;br /&gt;
SOAP-Attachments won't work :-(&lt;/p&gt;
&lt;p&gt;I fixed this for the current CVS by implementing a&lt;br /&gt;
RFC822 parser (an&lt;br /&gt;
improved version found on w3c)&lt;/p&gt;
&lt;p&gt;The patch can be found in the attachment.&lt;br /&gt;
It will create a new java file and a patch file:&lt;/p&gt;
&lt;p&gt;rfc822-header-parse.patch&lt;br /&gt;
src/org/beepcore/beep/util/Rfc822HeaderParser.java&lt;/p&gt;
&lt;p&gt;The files can then be patched with&lt;br /&gt;
patch -p0 &amp;lt; rfc822-header-parse.patch&lt;/p&gt;
&lt;p&gt;With this patch, sending JAXM Attachments works without&lt;br /&gt;
problems.&lt;/p&gt;
&lt;p&gt;ciao,&lt;br /&gt;
-hen&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>PureTLS negotiation failure</title><link href="https://sourceforge.net/p/beepcore-java/patches/9/" rel="alternate"/><published>2003-04-15T14:34:55Z</published><updated>2003-04-15T14:34:55Z</updated><author><name>Toby Murray</name><uri>https://sourceforge.net/u/tobymurray/</uri></author><id>https://sourceforge.net80d9aedfa991545cf7dc896745ae13aac006afff</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;PureTLS negotiation fails if the&lt;br /&gt;
TLSProfilePureTLSPemInit class is used to initialise&lt;br /&gt;
the profile and the PROPERTY_CLIENT_AUTH_REQUIRED&lt;br /&gt;
property has not been set in the ProfileConfiguration&lt;br /&gt;
passed to TLSProfilePureTLSPemInit.init().&lt;br /&gt;
Basically, when this has not been set, the profile&lt;br /&gt;
doesn't assume that client authentication IS required.&lt;br /&gt;
Consequently, if the client does not set&lt;br /&gt;
PROPERTY_CLIENT_AUTH_REQUIRED, the client doesn't send&lt;br /&gt;
their certificate to the server during negotiation,&lt;br /&gt;
however the server will by default, expect one, if they&lt;br /&gt;
haven't had PROPERTY_CLIENT_AUTH_REQUIRED set at their end.&lt;br /&gt;
It seems natural to me, that if the server is expecting&lt;br /&gt;
client auth when this property hasn't been set, that&lt;br /&gt;
the client should provide client auth, when this&lt;br /&gt;
property hasn't been set for them.&lt;br /&gt;
Its a simple fix, adding an else branch to an if which&lt;br /&gt;
checks for the existence of this property. If it isn't&lt;br /&gt;
set, then indicate that we expect client authentication.&lt;/p&gt;
&lt;p&gt;I have also modififed the class to have a no-arg&lt;br /&gt;
constructor which calls the default constructor on its&lt;br /&gt;
TLSProfilePureTLS private member, which is initially&lt;br /&gt;
set to null, as it seems a more natural way to do&lt;br /&gt;
things, rather than have the TLSProfilePureTLS&lt;br /&gt;
constructor called statically.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Use thread pool for TCPSession threads</title><link href="https://sourceforge.net/p/beepcore-java/patches/8/" rel="alternate"/><published>2003-01-15T15:41:27Z</published><updated>2003-01-15T15:41:27Z</updated><author><name>Andrew Keedle</name><uri>https://sourceforge.net/u/akeedle/</uri></author><id>https://sourceforge.netfd8cab3e836fe958d6c3991c4d8f6b390ac173cb</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I noticed that TCPSession was creating a new thread to&lt;br /&gt;
process the next frame. On linux this requires a new&lt;br /&gt;
process to be created, which isn't very efficient I&lt;br /&gt;
wouldn't have thought. I've knocked up a simple&lt;br /&gt;
singleton containing a Thread Pool  (using&lt;br /&gt;
concurrent.jar) that TCPSession now uses. Seems to make&lt;br /&gt;
an improvement on my boxes for cpu usage, process&lt;br /&gt;
creation, and i/o transfer rate.&lt;/p&gt;
&lt;p&gt;It's not very thorough, but could it be useful? Does it&lt;br /&gt;
make sense, and are there any flaws?&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Wrong property accessor called</title><link href="https://sourceforge.net/p/beepcore-java/patches/7/" rel="alternate"/><published>2002-08-27T10:40:34Z</published><updated>2002-08-27T10:40:34Z</updated><author><name>Serge Adda</name><uri>https://sourceforge.net/u/sadda/</uri></author><id>https://sourceforge.nete364c00b0f4b5bb315ed76b1e615e3533965a35b</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;public String getProperty(String key, String &lt;br /&gt;
defaultValue) {&lt;br /&gt;
*        return props.getProperty(key, defaultValue);&lt;br /&gt;
}&lt;br /&gt;
Called getProperty with the defaultValue&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Fix for bug 581621</title><link href="https://sourceforge.net/p/beepcore-java/patches/6/" rel="alternate"/><published>2002-08-22T17:08:55Z</published><updated>2002-08-22T17:08:55Z</updated><author><name>Kevin Kress</name><uri>https://sourceforge.net/u/kion/</uri></author><id>https://sourceforge.netd67457524a0dd0b29f6767da10aaf377447b893e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;SASLOTPProfile now implements Profile&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Fix for bug 558390</title><link href="https://sourceforge.net/p/beepcore-java/patches/5/" rel="alternate"/><published>2002-08-22T17:05:25Z</published><updated>2002-08-22T17:05:25Z</updated><author><name>Kevin Kress</name><uri>https://sourceforge.net/u/kion/</uri></author><id>https://sourceforge.netaed30dec407b11d86639f2eb235d813510f7deea</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Added fireChannel events in Session on Listener chnnel&lt;br /&gt;
start.&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>