Re: [Beepcore-java-users] Tuning Profiles and Beepcore
Status: Beta
Brought to you by:
huston
|
From: William J. M. <wm...@es...> - 2003-03-10 22:48:57
|
Are you getting the expected profiles in the greeting sent
after the tuning reste? It's possible you don't
have the profile set to be availabel in the new state...
-bill
On Mon, Mar 10, 2003 at 01:33:28AM -0800, William Berriel wrote:
> Hi,
>
> For the purposes of creating a Tunnel Profile, I need to have the
> session perform a tuning reset while not actually changing the socket. I
> have used pretty much the exact code found in the two TLS profiles for
> the tuning reset, yet when I use Beepd and Bing (unchanged, except for
> the names of the profiles used), the client does not recognize the reply
> to it's request to start an echo profile after the the tuning reset has
> occurred. Can anyone give me hints as to why this is happening?
>
> The code for the startTunnel and startChannel functions are enclosed.
> startTunnel is used by a client to start a tunnel, startChannel is
> called by the session, I believe.
>
> thanks,
>
> William Berriel
> public void startChannel(Channel channel, String encoding, String data)
> throws StartChannelException
> {
> TCPSession session = (TCPSession)channel.getSession();
> String replyData = null;
> if(data != null) {
> if(data.equalsIgnoreCase(EMPTY) || data.equalsIgnoreCase(EMPTY2)){
> replyData = OK;
> try {
> this.begin(channel, URI, replyData);
>
> // Consider the Profile Registry
> ProfileRegistry preg = session.getProfileRegistry();
> preg.removeStartChannelListener(URI);
>
> Hashtable hash = new Hashtable();
> hash.put("TUNNEL", "true");
>
> SessionTuningProperties tuning =
> new SessionTuningProperties(hash);
>
> // Cause the session to be recreated and reset
> this.complete(channel, session.getLocalCredential(),
> session.getPeerCredential(), tuning,
> preg, session.getSocket());
>
> } catch (Exception e) {
> System.err.println("We got a problem in tuning reset : " +
> e.getMessage());
>
> }
> System.out.println("tunnel made");
> }
> }
> System.err.println("Setting message listener to this");
> channel.setMessageListener(this);
>
> }
>
> public TCPSession startTunnel(TCPSession session, String data)
> throws BEEPException
> {
> // final argument is the messagelistener to handle the incoming
> // messages, change this to ourselves once our profile can handle
> // non piggy-backed messages
> Channel ch = startChannel(session, URI, false, data, null);
>
> String startData = ch.getStartData();
>
> if (startData != null){
> if(!startData.equalsIgnoreCase(OK)){
> System.err.println("We got back a bad message: " +
> startData);
> throw new BEEPException("Bad Start Data : " + startData);
> }
>
> Hashtable hash = new Hashtable();
> hash.put("TUNNEL", "true");
> SessionTuningProperties tuning=
> new SessionTuningProperties(hash);
>
> return (TCPSession) reset(session,
> session.getLocalCredential(),
> session.getPeerCredential(),
> tuning,
> session.getProfileRegistry(),
> session.getSocket());
>
>
> }
> System.err.println("Didn't get an OK! ");
> throw new BEEPException("Didn't get ok!");
> }
>
>
|