Re: Decoupling BEEP Sessions and TCP Connections
"Tunnel Team" <[email protected]> Tue, 18 Feb 2003 03:09:48 -0800
| Newsgroups | gmane.network.beep.roadrunner.general |
|---|---|
| Message-ID | <06d001c2d73e$40d3c600$573fad86@chip> |
> On Mon, 2003-02-17 at 11:50, Chip Bradford wrote: > > Hi, > > > > I am a member of a team working at Harvey Mudd College to implement a Tunnel > > profile for RoadRunner. For our implementation, we are thinking it would be > > useful to be able to close a BEEP session without closing the underlying TCP > > socket and to be able to create a new BEEP session which uses a previously > > created socket. We would like to know if there is any support currently for > > these actions and, if not, what the best way to implement them would be. > > > Hi, > > A tuning reset is probably what you are looking for. You can look at the > "rot13" profile in the RoadRunner source tree or the RR/TLS profile for > an example on how to do a tuning reset. > > / Jonas This is actually not quite what we need. The Tunnel specification requires a proxy to have two different BEEP sessions running (for example, one connection to the client and another one to the final server). Once Tunnel has been negotiated over these sessions, we need to be able to start passing bytes transparently (ie, stop trying to interpret traffic as a BEEP stream) so we would like to be able to close down the BEEP sessions without closing the underlying sockets. We can then start passing data from one socket to the other without worry about BEEP getting in the way. As per a previous suggestion quite a while ago, we had been trying to access the underlying g_io_channels to pass data. RoadRunner, however, seems to be reading the data before we are able to. Even if we could get this method working, closing down the BEEP session would still be prefered since it ensures that no interpretation of the data will occur and it eliminates any overhead which might be required to run the RoadRunner BEEP session (this is important for a proxy which is most likey a firewall/router type machine and needs to be able to easily handle many connections.) We haven't been able to find any functionality in the RoadRunner libraries which fulfills our requirements, but if there is some undocumented feature that could help us it would be nice to know about it. Since these features seem potentially usefull beyond our specific needs (the other BEEP implementations we are using support these things) it might be worth-while to add them to RoadRunner. If this cannot be done in the near future, however, we will need to figure out on our own how to startup and shutdown a BEEP session without affecting the underlying socket. In this case, any advice you can offer or explaination of the current code you can give would be greatly appreciated. - Chip Bradford