[omniORB] omniORB 4.0.3 (vxWorks) stuck in tcpTransport
initialization
Kiesswetter, Florian (Florian)
fkiesswe at lucent.com
Tue Apr 19 11:36:28 BST 2005
Duncan,
we use omniORB 4.0.3 for vxWorks and I expect a bug in the tcp transport initialization in the case if there are interfaces which don't have the flag IFF_UP.
Below are the suspect lines out of the file tcpTransportImplc.cc in the function "void vxworks_get_ifinfo(omnivector<const char*>& ifaddrs)" (line 406).
If an interface in the list is not UP this part will not be evaluated, and the entryLength and the pointer to the ifreq struct will not be modified and hence not set to the next interface.
-> omniORB will continue in an endless loop for this not running interface. I think the last brace should be moved up 2 lines.
if (((struct ifreq *)ifreqBuf)->ifr_flags & IFF_UP) {
if (ifr->ifr_addr.sa_family == AF_INET) {
// AF_INET entries are of type sockaddr_in = 16 bytes
struct sockaddr_in* iaddr = (struct sockaddr_in*) &(ifr->ifr_addr);
CORBA::String_var s;
s = tcpConnection::ip4ToString(iaddr->sin_addr.s_addr);
ifaddrs.push_back(s._retn());
}
// ifreq structures have variable lengths
entryLength -= offset;
ifr = (struct ifreq *)((char *)ifr + offset);
}
May be you can check if I am right.
Thanks,
Florian
___________________________________________________________
Lucent Technologies O
Bell Labs Innovations
___________________________________________________________
Florian Kießwetter Dept.: FLI64, NodeB SW Dev.
Thurn-und-Taxis-Str. 10 Phone: +49 911 526 3927
D-90411 Nürnberg, Germany Fax: +49 911 526 3856
Room 4 - 114 mailto:fkiesswe at lucent.com
___________________________________________________________
More information about the omniORB-list
mailing list