Carbon ATalk endpoints and RTMP
Carbon ATalk endpoints and RTMP
- Subject: Carbon ATalk endpoints and RTMP
- From: Michael Swan <email@hidden>
- Date: Wed, 12 Jun 2002 12:19:26 -0700
Hi,
We're porting a Classic Mac OS application that still does a bit of
AppleTalk-oriented OT-based networking to a Carbon/CFM application.
One of the "features" of Carbon is that when one is sending on an
AppleTalk endpoint, one must bind to a particular DDP protocol type.
This was not the case with Classic Mac OS. So, the code necessary to
do the Carbon bind for an RTMP (DDP type 1) dynamically allocated
socket is:
bindinfo.qlen = 0;
bindinfo.addr.len = bindinfo.addr.maxlen = sizeof(DDPAddress);
bindinfo.addr.buf = (void *)&ddpAddress;
ddpAddress.fAddressType = AF_ATALK_DDP;
ddpAddress.fNetwork = 0;
ddpAddress.fNodeID = 0;
ddpAddress.fSocket = 0;
ddpAddress.fDDPType = 1;
ddpAddress.fPad = 0;
osres = OTBind(ot_rtmpep, &bindinfo, (TBind *)NULL);
This works great in most cases, but we've come across a problem
related to RTMP. Unfortunately, if one wants to send an RTMP RDR request
or split-horizon request, the DDP type is 5. However, AppleTalk
routers will always respond to an RDR or split-horizon request with DDP
type 1. After binding to DDP type 5 to send the request, the socket looks
like it rejects the reply because it is of DDP type 1.
We tried a little hack of binding to type 5, sending the request then
immediately unbinding and rebinding to type 1 using the same socket
before looking for the data. This hack fails because when we try to
rebind, we get kEADDRNOTVALIDErr which probably means we can't reuse the
same socket. It's not clear the hack would work anyway because the router
may respond before we can unbind, then rebind.
I realize AppleTalk within the Carbon model, especially related to RTMP,
is a somewhat esoteric topic at this point. However, does anyone have a
workaround for this problem or can point out where we've gone wrong?
Thanks for your time,
Michael Swan
Neon Software, Inc.
_______________________________________________
macnetworkprog mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/macnetworkprog
Do not post admin requests to the list. They will be ignored.