Piggyback message support
"Tunnel Team" <[email protected]> Tue, 15 Apr 2003 17:07:11 -0700
| Newsgroups | gmane.network.beep.roadrunner.general |
|---|---|
| Message-ID | <0b4701c303ac$218b4760$573fad86@chip> |
Our team is nearing completion of our Tunnel implementation (code will be available soon on sourceforge once we can get our CVS repository transfered.) I'm working on adding piggybacking support to the profile for standards compliance and to aid in testing with our beepcore-java version of the profile. As I see it, there are 4 areas where piggybacked messages need to be taken care of: 1) sending from the client 2) receiving on the server 3) replying from the server 4) receiving the reply on the client Our current code supports 1) and 2), but I've been having a bit of trouble with 3) and 4). I suspect that I can get 3) to work on an endpoint server once I figure out what function to call to set the piggyback response message. However, problems arise if the server is acting as a proxy for the tunnel profile. A response cannot be sent until the entire tunnel has been setup, or setup has failed (ok or error message). I've tried to complete the setup of the next connection from within tunnel's server_init function, but it seems to get hung at the point where I try to open a new tcp beep connection to the next hop (rr_tcp_connection_new). Currently I'm getting around this problem by spawning off a thread to finish the setup and then send a non-piggybacked reply so that the server_init function is allowed to return. Since that method works, I'm guessing my problem is due to some sort of deadlock condition within the roadrunner libraries. Is this the case? Is there a work-around? Am I missing something? I haven't even looked into 4) since I haven't gotten 3) working to test against yet, so any tips in getting this working would be appreciated as well. Thanks, - Chip Bradford