wireshark/plugins/opcua
Guy Harris 8ed7a73e22 Fix a bunch of warnings.
Cast away some implicit 64-bit-to-32-bit conversion errors due to use of
sizeof.

Cast away some implicit 64-bit-to-32-bit conversion errors due to use of
strtol() and strtoul().

Change some data types to avoid those implicit conversion warnings.

When assigning a constant to a float, make sure the constant isn't a
double, by appending "f" to the constant.

Constify a bunch of variables, parameters, and return values to
eliminate warnings due to strings being given const qualifiers.  Cast
away those warnings in some cases where an API we don't control forces
us to do so.

Enable a bunch of additional warnings by default.  Note why at least
some of the other warnings aren't enabled.

randpkt.c and text2pcap.c are used to build programs, so they don't need
to be in EXTRA_DIST.

If the user specifies --enable-warnings-as-errors, add -Werror *even if
the user specified --enable-extra-gcc-flags; assume they know what
they're doing and are willing to have the compile fail due to the extra
GCC warnings being treated as errors.

svn path=/trunk/; revision=46748
2012-12-26 05:57:06 +00:00
..
AUTHORS
CMakeLists.txt Update Free Software Foundation address. 2012-06-28 22:56:06 +00:00
COPYING Update FSF address - part II. 2012-06-28 23:18:38 +00:00
ChangeLog From Gerhard Gappmeier: 2009-04-06 18:30:04 +00:00
Doxyfile
Makefile.am Update Free Software Foundation address. 2012-06-28 22:56:06 +00:00
Makefile.common Update Free Software Foundation address. 2012-06-28 22:56:06 +00:00
Makefile.nmake Windows: Set Makefile.common as a plugin.c dependency so plugin.c is rebuilt if Makefile.common is changed 2012-06-01 14:08:12 +00:00
README Add some information about how/why this dissector is (partially) machine-generated and what that means to Wireshark maintainers. 2010-04-27 13:50:43 +00:00
moduleinfo.h Bump revission. 2012-12-07 19:15:34 +00:00
moduleinfo.nmake From Gerhard Gappmeier: 2009-04-06 18:30:04 +00:00
opcua.c Fix a bunch of warnings. 2012-12-26 05:57:06 +00:00
opcua_application_layer.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:29:52 +00:00
opcua_application_layer.h Removed unused parameter to parseServiceNodeId. 2011-03-23 08:03:02 +00:00
opcua_complextypeparser.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:29:52 +00:00
opcua_complextypeparser.h Add missing consts in opcua plugin. 2012-04-09 20:06:27 +00:00
opcua_enumparser.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:29:52 +00:00
opcua_enumparser.h Add some information about how/why this dissector is (partially) machine-generated and what that means to Wireshark maintainers. 2010-04-27 13:50:43 +00:00
opcua_extensionobjectids.h From Gerhard Gappmeier via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5427 : 2010-12-04 02:54:25 +00:00
opcua_extensionobjecttable.c Fix numerous instances of a variable/parameter name "shadowing" a library function name; 2012-12-05 15:56:36 +00:00
opcua_hfindeces.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:29:52 +00:00
opcua_hfindeces.h Add some information about how/why this dissector is (partially) machine-generated and what that means to Wireshark maintainers. 2010-04-27 13:50:43 +00:00
opcua_identifiers.h Add missing consts in opcua plugin. 2012-04-09 20:06:27 +00:00
opcua_security_layer.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:29:52 +00:00
opcua_security_layer.h
opcua_serviceids.h Add some information about how/why this dissector is (partially) machine-generated and what that means to Wireshark maintainers. 2010-04-27 13:50:43 +00:00
opcua_serviceparser.c We always HAVE_CONFIG_H so don't bother checking whether we have it or not. 2012-09-20 01:29:52 +00:00
opcua_serviceparser.h Add some information about how/why this dissector is (partially) machine-generated and what that means to Wireshark maintainers. 2010-04-27 13:50:43 +00:00
opcua_servicetable.c Fix numerous instances of a variable/parameter name "shadowing" a library function name; 2012-12-05 15:56:36 +00:00
opcua_simpletypes.c Fix a bunch of warnings. 2012-12-26 05:57:06 +00:00
opcua_simpletypes.h Add missing consts in opcua plugin. 2012-04-09 20:06:27 +00:00
opcua_transport_layer.c From hannes: 2012-12-07 09:33:40 +00:00
opcua_transport_layer.h From hannes: 2012-12-07 09:33:40 +00:00
plugin.rc.in

README

OpcUa Plugin:
=============

This plugin implements the dissection of the OpcUa Binary Protocol.
Author: Gerhard Gappmeier
        ascolab GmbH
        http://www.ascolab.com
	
Overview:
=========

OpcUa (OPC Unified Architecture) is a vendor and platform independent
protocol for automation technology. It is the successor of the
COM/DCOM based specifications OPC DA, OPC Alarm & Events, OPC HDA, etc.
It unifies all this technologies into a single protocol.

The specification describes abstract services that are independent
of the underlying protocol. For now there exist protocol mappings
to a Binary TCP based protocol and a SOAP based Webservice.
Also a hybrid version will be available where the Binary messages are transported
by a single webservice command called "Invoke".

More information about the technology you can find on
http://www.ascolab.com/index.php?file=ua&lang=en.

Protocol Mappings:
==================

Binary (TCP): The fastest and most flexible version (small footprint, no XML and SOAP necessary)
              can easily be tunneled (SSH, IPSEC, etc.), redirected, ...
SOAP version: Easy to implement with verious tools like .Net, JAVA, gSOAP, etc.
              Better to communicate through firewalls via HTTP.
SOAP with Binary Attchment: Combines the advantages of both.
              The messages are encoded as Binary, and transported via SOAP as binary
              attachment.

The OPC Foundation offers a free Opc Ua stack implementation in ANSI C
for all members. This stack implements the binary protocol as well
as the SOAP version. It's easily portable to different kinds of operating
systems from embedded devices to servers.
This makes it easy to implement Opc Ua applications based on this stack
and it is expected that the binary protocol will be the most used
protocol.
Nevertheless it's free to everbody to implement an own stack according
to the specification. An own implementation of the SOAP version 
should be easy with the various SOAP toolkits.

For more information see http://www.opcfoundation.org

Known limitations:
==================

* Only the security policy http://opcfoundation.org/UA/SecurityPolicy#None is
  supported, which means the encryption and signing is turned off.
  
Machine-generated dissector:
============================
Parts of the OpcUa dissector are machine generated.  Several of the files are
marked "DON'T MODIFY THIS FILE!" for this reason.

However, the code to create this dissector is not part of the Wireshark source
source code distribution.  This was discussed prior to the plugin's inclusion.
From http://www.wireshark.org/lists/wireshark-dev/200704/msg00025.html :

~~~
> a lot of the code seems to be autogenerated (as the comments suggest)
> It might make sense to include the sources and the build process instead 
> of the intermediate files (if the amount of code/tools to build the 
> files seems reasonable). The reason: When people start to hack your code 
> (e.g. to remove warnings on a compiler you don't even think about), 
> you'll might get into annoying trouble with merging code the next time 
> you've update the upcua files.
>
>   
I'm sorry, but I cannot give you the sources of the code generator,
because they are owned by the OPC Foundation.
I only extended the existing code generator to produce also wireshark code.
It's .Net based so I guess you don't want to have it anyway ;-)
~~~

So, if changes must be made to the machine-generated files, it just means the
upstream source will have to be modified before pushing any updates back to
Wireshark.

Of course it also means that care must be taken when applying patches from
upstream to ensure local changes aren't reversed.