[omniORB] wstring corruption, omniOrb -> Orbacus
Duncan Grisby
dgrisby@uk.research.att.com
Fri, 15 Mar 2002 11:07:24 +0000
On Thursday 14 March, brk@jenkon.com wrote:
> omniORB: inputMessage: from giop:tcp:209.210.37.31:4504 24 bytes
> 4749 4f50 0102 0104 0c00 0000 0200 0000 GIOP............
> 0100 0000 0000 0000 ........
This is a LocateReply message. Splitting it up, we find why omniORB
was unhappy...
GIOP 1.2 MessageHeader
4749 4f50 GIOP
0102 version 1.2
01 flags: little-endian, no more fragments follow
04 message type: LocateReply
0c00 0000 message size: 12 bytes
LocateReply message
0200 0000 request id (matching the id in the LocateRequest)
0100 0000 locate status: OBJECT_HERE
That should be the end of the message, but Visibroker sent an extra 4
zero bytes. I don't think there's anything in the spec that says that
sending extra data is illegal, but it's still a sign of bad things
happening. If it happens in the context of an request or reply, it's
probably a sign that the two sides are using different IDL. So,
omniORB's default behaviour is to kill the connection if it receives a
message that's too long.
If you run with -ORBstrictIIOP 0, omniORB will ignore the error, and
you should be OK.
Cheers,
Duncan.
--
-- Duncan Grisby \ Research Engineer --
-- AT&T Laboratories Cambridge --
-- http://www.uk.research.att.com/~dpg1 --