Wireshark-dev: Re: [Wireshark-dev] OpcUa update
From: Gerhard Gappmeier <gerhard.gappmeier@xxxxxxxxxxx>
Date: Mon, 14 May 2007 19:11:18 +0200
Hi Ulf
Gerhard Gappmeier wrote:
  
Ragarding VS2005. I know that problem from other projects.

    * time_t is 64 bit now: Use the define _USE_32BIT_TIME_T to make
      it backward compatible
    
Well, the crash is a problem in the "compilers code" and not in our code 
- I don't know if setting this will fix our problem here.

  
In your last mail you denoted that the problem is caused by the new 64bit version of localtime.
So switching back to 32 bit  may fix the problem. Just an assumption.
The fuzz tests seems to be running smooth now - *I've checked in your 
dissector in SVN 21760* :-)
  
cool, thx

Two questions after I had a look at your code:

- some files use the prefix ua_ while others use opcua_ (I would prefer 
opcua_ for all such source files)
  
You're right. ua_ prefix is used for the general protocol layer code which is written by hand.
opcua_ prefix is used for generated datatype parsers.
But this is not consistent also, because the opcua_simpletypes.c is also written by hand.
I've no problem with changing all to opcua_.
- in some files (opcua_simpletypes.c, ua_application_layer.c, 
ua_security_layer.c) you use tvb_get_... to explicitly get some data 
without actually using it (e.g. Numeric and NSId in ua_application_layer.c)

Is there a reason for this (e.g. future use), or is this just left over 
from development / debugging and should be fixed?

  
Numeric is used as return value for the function parseServiceNodeId in ua_application_layer.c. Retrieving this Id is the main purpose
of this function.

NsId is not used at the moment. I just used this for debugging.
The UA services will always use NsIdx zero.

in opcua_simpletypes.c (parseNodeId) both the numeric value and NsIdx are not used.
We can remove both.

I'll send you a patch these days.

regards,
Gerhard.