Ethereal-dev: [Ethereal-dev] patch for packet-giop.c response_flags

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Bernd Becker <bb@xxxxxxxxxxxxxxx>
Date: Wed, 23 Apr 2003 13:53:43 +0200
Here is a patch I had promised to Nicolas De Montbel a while ago in
http://www.ethereal.com/lists/ethereal-dev/200303/msg00161.html

The response_flags in the Request_Header should not be mapped
one to one to the SyncScope values. Certain SyncScope values
just seem to imply certain response_flags according to a
comment in the Corba Spec v3.0, 15-35.
So now I print the numeric value of response_flags followed
by a string with the possible corresponding SyncScope values
in parenthesis.
If this is still confusing we should probably print only the
numeric value.

Bernd

--On Tuesday, March 11, 2003 10:26:22 +0100 Bernd Becker <bb@xxxxxxxxxxxxxxx> wrote:

Hi Nicolas,

I think you are right. We should not map the response_flags to
sync_scope.
The sync_scope defined in packet-giop.c obviously came from the
following definition in Corba Messaging Quality of Service:

typedef short SyncScope;
const SyncScope SYNC_NONE = 0;
const SyncScope SYNC_WITH_TRANSPORT = 1;
const SyncScope SYNC_WITH_SERVER = 2;
const SyncScope SYNC_WITH_TARGET = 3;

We should leave the sync_scope value_string unchanged in case somebody
implements the Messaging module, although that would probably be another
plugin.
We should either just display the numeric value for the response_flags
or maybe display something more like a comment as in the spec, e.g.

static const value_string response_flags[] = {
    { 0x0, "SyncScope NONE or WITH_TRANSPORT" },
    { 0x1, "SyncScope WITH_SERVER"},
    { 0x3, "SyncScope WITH_TARGET"},
    { 0, NULL}
};

I can supply a patch if you (and maybe others) agree.

I don't really know if anybody has looked at the changes in the Corba 3.0
Spec to see what has to be added/changed in packet-giop.c. Some additions
were made regarding Service Contexts a short time ago.

It might be better to ask such questions on the developer list, as I
suspect that not many of the few giop developers check the users list. I
will send this to the developers list.

Regards,
Bernd

--On Monday, March 10, 2003 17:25:00 +0100 Nicolas.De_Montbel@xxxxxxxxxx
wrote:

Hello everybody,
I am new on this tool which seems to be very convenient and complete
but I have a problem on decoding one giop request header (response
flags).

from CORBA3.0 specification :
"response_flags is set to 0x0 for a SyncScope of NONE and
WITH_TRANSPORT. The flag is set to 0x1 for a SyncScope of
WITH_SERVER. A non exception reply to a request message containing a
response_flags value of 0x1 should contain an empty body, i.e. the
equivalent of
a void operation with no out/inout parameters. The flag is set to 0x3 for
a SyncScope of WITH_TARGET. These values ensure interworking
compatibility between this and previous versions of GIOP."
In packet-giop.c :
        static const value_string sync_scope[] = {
              { 0x0, "SYNC_NONE" },
              { 0x1, "SYNC_WITH_TRANSPORT"},
              { 0x2, "SYNC_WITH_SERVER"},
              { 0x3, "SYNC_WITH_TARGET"},
              { 0, NULL}};

This is quite different.

Can you confirm that
and say to me how can I correct that in Ethereal
sincerly

Nicolas de Montbel

Attachment: packet-giop.patch
Description: Binary data