beepcore-java-users Mailing List for Java BEEP Core (Page 5)
Status: Beta
Brought to you by:
huston
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(24) |
Feb
(3) |
Mar
(18) |
Apr
(2) |
May
(11) |
Jun
(6) |
Jul
(11) |
Aug
(37) |
Sep
(22) |
Oct
(11) |
Nov
(11) |
Dec
(29) |
2003 |
Jan
(8) |
Feb
(4) |
Mar
(19) |
Apr
(13) |
May
(16) |
Jun
(15) |
Jul
(2) |
Aug
(1) |
Sep
(1) |
Oct
(7) |
Nov
(13) |
Dec
|
2004 |
Jan
(1) |
Feb
(4) |
Mar
(2) |
Apr
|
May
(3) |
Jun
(2) |
Jul
(8) |
Aug
|
Sep
(7) |
Oct
(15) |
Nov
(8) |
Dec
|
2005 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
|
Jul
(6) |
Aug
|
Sep
(3) |
Oct
|
Nov
|
Dec
(5) |
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
(4) |
Aug
|
Sep
|
Oct
(4) |
Nov
|
Dec
|
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: De K. SJ <136...@su...> - 2003-06-26 14:05:11
|
Hi, Has anyone used beepcore-java with RoadRunner-c? I have just started = using RoadRunner and the plan is to combine it with work that I did a = while ago using BeepCore and/or SimpleBEEP. Has anyone done any testing = of the two? Thanks, Sean |
From: Huston <hu...@us...> - 2003-06-13 19:07:22
|
On Fri, 2003-06-13 at 12:34, Lawrence Greenfield wrote: > The Reply class has a pretty serious race condition in it: hasNext() > fails to check the pending replies after coming off of the wait(). > > Patch attached. My patch also inserts a while() loop around the > wait(), which is generally good form. > > Larry Larry, Thanks! I'll check this into cvs. --Huston |
From: Lawrence G. <le...@an...> - 2003-06-13 18:34:14
|
The Reply class has a pretty serious race condition in it: hasNext() fails to check the pending replies after coming off of the wait(). Patch attached. My patch also inserts a while() loop around the wait(), which is generally good form. Larry |
From: Huston <hu...@us...> - 2003-06-04 18:10:31
|
On Wed, 2003-06-04 at 11:48, Paul Andrews wrote: > The current code in the method receiveFrame(...) calls > listener.receiveMSG(m) without first checking if listener is null. This > can happen if the profile allowed a channel to start without setting a > message listener (which is obviously a bug in my profile, but anyway I > though you should know). > Thanks! I'll fix that. --Huston |
From: Paul A. <paa...@ci...> - 2003-06-04 17:48:12
|
The current code in the method receiveFrame(...) calls listener.receiveMSG(m) without first checking if listener is null. This can happen if the profile allowed a channel to start without setting a message listener (which is obviously a bug in my profile, but anyway I though you should know). - Paul |
From: Paul A. <paa...@ci...> - 2003-06-04 17:41:32
|
Yes, that would be perfect. I was thinking that it might also be worth adding a method to query the state, though that would obviously present a race condition, I don't think it would matter if close() was modified like you propose. > -----Original Message----- > From: Huston [mailto:hu...@us...] > Sent: Wednesday, June 04, 2003 1:14 PM > To: Paul Andrews > Cc: Bee...@li... > Subject: Re: [Beepcore-java-users] The semantics of close() > > > On Wed, 2003-06-04 at 10:03, Paul Andrews wrote: > > I've been thinking about how session.close() works and I'm > not really > > comfortable with it. If I call close() on a session that is already > > closing I get an illegal state exception from it, yet I > have no way of > > finding out if a session is in the process of closing or is already > > closed. > > > > This makes it difficult to write code that cleans up when > it is through > > with a session. > > This is a very good point. Would it be ok with you if close() did > nothing if the state of the session was CLOSING or CLOSED? > > --Huston > |
From: Paul A. <paa...@ci...> - 2003-06-04 17:39:46
|
Those changes sounds fine to me. > -----Original Message----- > From: Huston [mailto:hu...@us...] > Sent: Wednesday, June 04, 2003 1:11 PM > To: Paul Andrews > Cc: Bee...@li... > Subject: Re: [Beepcore-java-users] AbortChannelException > terminates session > > > On Wed, 2003-06-04 at 09:52, Paul Andrews wrote: > > Hi again :-) > > > > I have a message reply listener that throws an > AbortChannelException in > > certain circumstances but this actually causes the session > code to issue > > a terminate session request to the remote peer - when all I > wanted to do > > was to terminate the channel. > > > > A slight wrinkle with this is that my test code originally called > > session.close() immediately after the AbortChannelException > was thrown, > > but in a different thread. This caused the session to deadlock. > > > > - Paul > > In the code I'm working on right now I have removed > AbortChannelException from the signature of the > MessageHandler.receiveMSG(). (MessageHandler is a new version of > MessageListener, the reason for a new interface was to provide a > migration path for profile writers.) While AbortChannelException made > some things easier when writing profiles I think it can be > the source of > more problems than good. > > BTW, I'm also considering removing the throws BEEPError from the > receiveMSG() method because there isn't a good method of notifying the > profile if there is a problem sending the ERR message from > the BEEPError > exception. Instead profiles would call MessageMSG.sendERR() directly. > > Any feedback on these changes is welcome and right now is the > best time > since I am in the middle of making them. > > --Huston > |
From: Huston <hu...@us...> - 2003-06-04 17:15:11
|
On Wed, 2003-06-04 at 10:03, Paul Andrews wrote: > I've been thinking about how session.close() works and I'm not really > comfortable with it. If I call close() on a session that is already > closing I get an illegal state exception from it, yet I have no way of > finding out if a session is in the process of closing or is already > closed. > > This makes it difficult to write code that cleans up when it is through > with a session. This is a very good point. Would it be ok with you if close() did nothing if the state of the session was CLOSING or CLOSED? --Huston |
From: Huston <hu...@us...> - 2003-06-04 17:12:23
|
On Wed, 2003-06-04 at 09:52, Paul Andrews wrote: > Hi again :-) > > I have a message reply listener that throws an AbortChannelException in > certain circumstances but this actually causes the session code to issue > a terminate session request to the remote peer - when all I wanted to do > was to terminate the channel. > > A slight wrinkle with this is that my test code originally called > session.close() immediately after the AbortChannelException was thrown, > but in a different thread. This caused the session to deadlock. > > - Paul In the code I'm working on right now I have removed AbortChannelException from the signature of the MessageHandler.receiveMSG(). (MessageHandler is a new version of MessageListener, the reason for a new interface was to provide a migration path for profile writers.) While AbortChannelException made some things easier when writing profiles I think it can be the source of more problems than good. BTW, I'm also considering removing the throws BEEPError from the receiveMSG() method because there isn't a good method of notifying the profile if there is a problem sending the ERR message from the BEEPError exception. Instead profiles would call MessageMSG.sendERR() directly. Any feedback on these changes is welcome and right now is the best time since I am in the middle of making them. --Huston |
From: Paul A. <paa...@ci...> - 2003-06-04 16:06:16
|
Hi again :-) I have a message reply listener that throws an AbortChannelException in certain circumstances but this actually causes the session code to issue a terminate session request to the remote peer - when all I wanted to do was to terminate the channel. A slight wrinkle with this is that my test code originally called session.close() immediately after the AbortChannelException was thrown, but in a different thread. This caused the session to deadlock. - Paul |
From: Paul A. <paa...@ci...> - 2003-06-04 16:03:11
|
I've been thinking about how session.close() works and I'm not really comfortable with it. If I call close() on a session that is already closing I get an illegal state exception from it, yet I have no way of finding out if a session is in the process of closing or is already closed. This makes it difficult to write code that cleans up when it is through with a session. |
From: Huston <hu...@us...> - 2003-06-03 20:21:50
|
On Tue, 2003-06-03 at 12:13, Paul Andrews wrote: > I need a way to close the server sockets created by > TCPSessionCreate.listen(...). There doesn't seem to be any way to do > this at the moment. > > - Paul I hadn't looked at that code, it is in need of some refactoring. Would you mind entering a bug against this on sf? For now I wouldn't use TCPSessionCreator. Instead, create your own ServerSocket and call TCPSession.createListener() for each new connection you accept. Thanks for finding this. --Huston |
From: Paul A. <paa...@ci...> - 2003-06-03 18:13:06
|
I need a way to close the server sockets created by TCPSessionCreate.listen(...). There doesn't seem to be any way to do this at the moment. - Paul |
From: Huston <hu...@us...> - 2003-06-02 21:43:19
|
On Mon, 2003-06-02 at 12:59, Paul Andrews wrote: > Hi, > > I'm implementing a SOAP profile (RFC 3288) which uses the 'serverName' > attribute of the 'start' element to specify the virtual server on which > a SOAP service should be present. It seems that I can't get a hold of > that information in the profile. A quick look at Session.java shows that > the ChannelZeroListener class access the attribute but doesn't use it or > store it anywhere. > > What is the intention with this attribute and should the > ChannelZeroListener class and profile API be modified to make the > information available? Maybe it should be an attribute of the channel > that is started? The latest code in CVS saves this attribute on the Session and it can be retrieved with getServerName(). --Huston |
From: Paul A. <paa...@ci...> - 2003-06-02 18:58:56
|
Hi, I'm implementing a SOAP profile (RFC 3288) which uses the 'serverName' attribute of the 'start' element to specify the virtual server on which a SOAP service should be present. It seems that I can't get a hold of that information in the profile. A quick look at Session.java shows that the ChannelZeroListener class access the attribute but doesn't use it or store it anywhere. What is the intention with this attribute and should the ChannelZeroListener class and profile API be modified to make the information available? Maybe it should be an attribute of the channel that is started? Thanks - Paul |
From: Paul A. <paa...@ci...> - 2003-05-29 19:42:48
|
One more thing: There is no place to store the 'realm' in the SessionCredential. All of the other items are really scoped by the realm. Hmmm. in fact, shouldn't there be room for multiple credentials on a single session, or should you have one session per realm? |
From: Paul A. <paa...@ci...> - 2003-05-29 16:28:10
|
> -----Original Message----- > From: bee...@li... > [mailto:bee...@li...] On > Behalf Of Huston > Sent: Thursday, May 29, 2003 11:55 AM > To: Paul Andrews > Cc: Bee...@li... > Subject: Re: [Beepcore-java-users] SASL Interoperability > > > On Thu, 2003-05-29 at 09:10, Paul Andrews wrote: > > And finally ( :-) ): > > > > I've been using the Java beepcore implementation against the C > > beepcore implementation (or more properly with the Cyrus SASL > > libraries) and come across a couple of interoperability issues. > > > > The first was with the base64 encoding of <blob>s. The Java SASL > > libraries split the encoding across multiple lines - the Cyrus SASL > > libraries expect it all to be on one line. At first, I though that > > RFC3080 was vague on this issue, but it does say in its > examples that > > although the text is split across multiple lines, in actuality, the > > blob wouldn't be. However, it is read we would increase > > interoperability if we *didn't* split across multiple lines. > > I agree this should be fixed in beepcore-j. I'm currently refactoring > the tuning reset code so I won't be able to get to this for a > few days. > If you need it sooner and would like to submit a patch I'm happy to > check it in. No hurry - we modified the Cyrus side instead for the time being. Fixing it in the Java classes would require using a different base64 encoder than the Sun one - there are plenty around, but I didn't want to modify the beepcore-j code so I don't have a patch to provide. Sorry. > > > The second is really a problem with the Cyrus libraries, but I'll > > include it here in case anyone reading can influence the > Cyrus group. > > RFC2831 (SASL/DIGESTMD5) states that 'qop-options' is optional and > > defaults to "auth" if not specified. Cyrus simply aborts > the exchange > > if it isn't specified. > > I don't know much about SASL but is there something that could be > changed in beepcore-j to make this work? No. beepcore-j doesn't do DIGESTMD5 at all - it is in my implementation, so, once again, we fixed it in our version of the Cyrus libraries. It really needs to be fixed by the Cyrus team so we'll probably be in touch with them :-). It would be good to submit our DIGESTMD5 code to beepcore. We'll have to work on our management for that, plus it uses a preview release of Sun's SASL API for the initiator side and I've got a few issues with that too :-). I wrote the listener side myself. > > --Huston > > > > ------------------------------------------------------- > This SF.net email is sponsored by: eBay > Get office equipment for less on eBay! > http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5 > _______________________________________________ > Beepcore-java-users mailing list > Bee...@li... > https://lists.sourceforge.net/lists/listinfo/beepcore-java-users > |
From: Paul A. <paa...@ci...> - 2003-05-29 16:20:21
|
No problem. > -----Original Message----- > From: Huston [mailto:hu...@us...] > Sent: Thursday, May 29, 2003 11:59 AM > To: Paul Andrews > Cc: Bee...@li... > Subject: Re: [Beepcore-java-users] Possible bug in SASL > profile listenercode > > > On Thu, 2003-05-29 at 09:01, Paul Andrews wrote: > > At various places, the SASL tuning profile listener code > sends a blob > > containing <abort>s to the initiator if anything goes wrong. I don't > > think this is correct. RFC 3080 says: > > > > exchange sequence: > > "Challenges" and "responses" are carried in exchanges of the > > "blob" element. The "status" attribute of the "blob" element > > is used both by a server indicating a successful > completion of > > the exchange, and a client aborting the exchange, The server > > indicates failure of the exchange by sending an "error" > > element. > > I agree with your assesment, this needs to be fixed in beepcore-j. > > Would you mind entering this as a bug on SF so that is doesn't get > forgotten about? > > --Huston > |
From: Huston <hu...@us...> - 2003-05-29 15:58:56
|
On Thu, 2003-05-29 at 09:01, Paul Andrews wrote: > At various places, the SASL tuning profile listener code sends a blob > containing <abort>s to the initiator if anything goes wrong. I don't > think this is correct. RFC 3080 says: > > exchange sequence: > "Challenges" and "responses" are carried in exchanges of the > "blob" element. The "status" attribute of the "blob" element > is used both by a server indicating a successful completion of > the exchange, and a client aborting the exchange, The server > indicates failure of the exchange by sending an "error" > element. I agree with your assesment, this needs to be fixed in beepcore-j. Would you mind entering this as a bug on SF so that is doesn't get forgotten about? --Huston |
From: Huston <hu...@us...> - 2003-05-29 15:55:23
|
On Thu, 2003-05-29 at 09:10, Paul Andrews wrote: > And finally ( :-) ): > > I've been using the Java beepcore implementation against the C > beepcore implementation (or more properly with the Cyrus SASL > libraries) and come across a couple of interoperability issues. > > The first was with the base64 encoding of <blob>s. The Java SASL > libraries split the encoding across multiple lines - the Cyrus SASL > libraries expect it all to be on one line. At first, I though that > RFC3080 was vague on this issue, but it does say in its examples that > although the text is split across multiple lines, in actuality, the > blob wouldn't be. However, it is read we would increase > interoperability if we *didn't* split across multiple lines. I agree this should be fixed in beepcore-j. I'm currently refactoring the tuning reset code so I won't be able to get to this for a few days. If you need it sooner and would like to submit a patch I'm happy to check it in. > The second is really a problem with the Cyrus libraries, but I'll > include it here in case anyone reading can influence the Cyrus group. > RFC2831 (SASL/DIGESTMD5) states that 'qop-options' is optional and > defaults to "auth" if not specified. Cyrus simply aborts the exchange > if it isn't specified. I don't know much about SASL but is there something that could be changed in beepcore-j to make this work? --Huston |
From: Huston <hu...@us...> - 2003-05-29 15:54:20
|
On Thu, 2003-05-29 at 08:50, Paul Andrews wrote: > There doesn't seem to be a common API that an initiator can use to, > for example, start an authentication with a remote peer. This means > that every initiator has to have explicit knowledge of the various > TuningProfile subclasses in order to call the correct method to start > the exchange. > > Is there any intention to define an initiator API for tuning profiles > - maybe something along the lines of an initator using a directory API > to locate an implementation from some set of characteristics and then > kick off the exchange using single interface that those > implementations implement? > > Am I missing something here? I don't think you are missing anything. This is an area which hasn't had much thought given to it. I like the idea of having a common API for the initiator. Any help you would like to give in this area is welcome. --Huston |
From: Huston <hu...@us...> - 2003-05-29 15:46:17
|
On Thu, 2003-05-29 at 08:45, Paul Andrews wrote: > I'm writing a SASL/DIGESTMD5 tuning profile and am trying to work out > how TuningProfile is supposed to be used. It has a bunch of methods > (begin, complete and abort) that none of the exisitng tuning profiles > actually use - in fact SASLAnonymousProfile says it uses them, but it > doesn't. > > TuningProfile also has an implementation of startChannel - am I > supposed to call that from my own implementation? begin, complete, abort, and startChannel are for profiles which need to do a tuning reset, typically profiles providing session level encryption will use this (e.g. TLS). TuningProfile also provides methods for setting credentials for profiles perfoming authentication. --Huston |
From: Paul A. <paa...@ci...> - 2003-05-29 15:13:23
|
And finally ( :-) ): I've been using the Java beepcore implementation against the C beepcore implementation (or more properly with the Cyrus SASL libraries) and come across a couple of interoperability issues. The first was with the base64 encoding of <blob>s. The Java SASL libraries split the encoding across multiple lines - the Cyrus SASL libraries expect it all to be on one line. At first, I though that RFC3080 was vague on this issue, but it does say in its examples that although the text is split across multiple lines, in actuality, the blob wouldn't be. However, it is read we would increase interoperability if we *didn't* split across multiple lines. The second is really a problem with the Cyrus libraries, but I'll include it here in case anyone reading can influence the Cyrus group. RFC2831 (SASL/DIGESTMD5) states that 'qop-options' is optional and defaults to "auth" if not specified. Cyrus simply aborts the exchange if it isn't specified. Thanks - Paul. |
From: Paul A. <paa...@ci...> - 2003-05-29 15:00:52
|
At various places, the SASL tuning profile listener code sends a blob containing <abort>s to the initiator if anything goes wrong. I don't think this is correct. RFC 3080 says: exchange sequence: "Challenges" and "responses" are carried in exchanges of the "blob" element. The "status" attribute of the "blob" element is used both by a server indicating a successful completion of the exchange, and a client aborting the exchange, The server indicates failure of the exchange by sending an "error" element. |
From: Paul A. <paa...@ci...> - 2003-05-29 14:57:37
|
There doesn't seem to be a common API that an initiator can use to, for example, start an authentication with a remote peer. This means that every initiator has to have explicit knowledge of the various TuningProfile subclasses in order to call the correct method to start the exchange. Is there any intention to define an initiator API for tuning profiles - maybe something along the lines of an initator using a directory API to locate an implementation from some set of characteristics and then kick off the exchange using single interface that those implementations implement? Am I missing something here? - Paul Andrews |