On Thu, Jan 11, 2018 at 4:34 PM, Kevin Clark <[email protected]> wrote:

> On Thu, Jan 11, 2018 at 8:19 AM André Lemos <[email protected]> wrote:
>
> > On Thu, Jan 11, 2018 at 4:13 PM, Kevin Clark <[email protected]>
> > wrote:
> >
> > > On Thu, Jan 11, 2018 at 7:40 AM André Lemos <[email protected]> wrote:
> > >
> > > > Hi,
> > > >
> > > >
> > > > When parsing through a TBinaryProtocol, trying to get the
> > > readMessageBegin,
> > > > readI32, returns 16777216, which will raise an EOFError, because it's
> > > just
> > > > a too big of a value. If I use something like 25, I do get something
> > > pretty
> > > > closer to what I am trying to get, although I still get the initial
> bit
> > > of
> > > > the protocol, and not just the name I am trying to get.
> > > >
> > > > Any hints as to where I should be looking?
> > >
> > >
> > >
> > > Providing the language of the lib you’re using, the code, and the
> message
> > > you expect to be on the wire would make it easier for someone to help
> > you.
> >
> >
> >
> > I am using Python 2, I've sent the code. The message I am trying to
> parse,
> > looks like this:
> >
> >
> > \x01\x00\x00\x00\xed\x00\x00\x00\x80\x01\x00\x04\x00\x00\
> x00\x15RequestProcessListing\x00\x00\x00\x00\x0c\x00\x01\
> x0b\x00\x01\x00\x00\x00\x10\xfe\x8e\xc3F\xed\\\x8aG\x97+\
> x0cp\x0eY\x05U\x0b\x00\x02\x00\x00\x00\x0fThe
> > Observer XT\x08\x00\x03\x00\x00\x00\x02\x0b\x00\x04\x00\x00\x00\x12The
> > Observer XT
> >
> > 14\x0b\x00\x05\x00\x00\x00\x08LEMOS-PC\x0b\x00\x06\x00\
> x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
> x00\x00\x00\x00\x00\x0c\x00\x07\x08\x00\x01\x00\x00\x00\
> x01\x0c\x00\x02\x0c\x00\x01\x0b\x00\x01\x00\x00\x00\x00\
> x08\x00\x02\x00\x00\x00\x00\x0f\x00\x03\x0c\x00\x00\x00\
> x00\x0f\x00\x04\x0c\x00\x00\x00\x00\x00\x00\x0c\x00\x03\
> x02\x00\x01\x01\x02\x00\x02\x01\x0b\x00\x03\x00\x00\x00\
> x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
> x00\x00\x00\x00\x00\x00\x00
>
>
> Well the number you’ve pasted looks like it’s 1 << 24, so it should fit in
> a 32 bit int just fine. I’m not seeing actual code anywhere, just
> descriptions of method calls. I suspect this is a simple oversight but it’s
> hard to tell you more without the actual code and the precise error
> message.
>



here's the code (Python 2):

    trans1 = TTransport.TMemoryBuffer()
    trans1.open()
    trans = TTransport.TMemoryBuffer(body)
    trans.open()
    iprot = TBinaryProtocol.TBinaryProtocol(trans)
    oprot = TBinaryProtocol.TBinaryProtocol(trans1, strictWrite=False)
    tr = Processor(CommonService.CommonService.Iface())
    tr.process(iprot, oprot)


issue is that readI32() gets me a EOFError as it tries to read way past the
full message.



> > --
> Kevin Clark
>

Reply via email to