add svn properties for dir and files
authorulfl <ulfl@f5534014-38df-0310-8fa8-9805f1628bb7>
Tue, 15 May 2007 09:05:53 +0000 (09:05 +0000)
committerulfl <ulfl@f5534014-38df-0310-8fa8-9805f1628bb7>
Tue, 15 May 2007 09:05:53 +0000 (09:05 +0000)
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@21780 f5534014-38df-0310-8fa8-9805f1628bb7

25 files changed:
plugins/opcua/AUTHORS
plugins/opcua/COPYING
plugins/opcua/ChangeLog
plugins/opcua/Doxyfile
plugins/opcua/Makefile.am
plugins/opcua/Makefile.common
plugins/opcua/Makefile.nmake
plugins/opcua/README
plugins/opcua/moduleinfo.h
plugins/opcua/opcua.c
plugins/opcua/opcua_complextypeparser.c
plugins/opcua/opcua_enumparser.c
plugins/opcua/opcua_hfindeces.c
plugins/opcua/opcua_hfindeces.h
plugins/opcua/opcua_identifiers.h
plugins/opcua/opcua_serviceparser.c
plugins/opcua/opcua_servicetable.c
plugins/opcua/opcua_simpletypes.c
plugins/opcua/opcua_simpletypes.h
plugins/opcua/ua_application_layer.c
plugins/opcua/ua_application_layer.h
plugins/opcua/ua_security_layer.c
plugins/opcua/ua_security_layer.h
plugins/opcua/ua_transport_layer.c
plugins/opcua/ua_transport_layer.h

index d4abe7953450c4c30846525659c973a2cac02779..91a0a255f163bc4c5adcdef05fec84385a01110b 100644 (file)
@@ -1,6 +1,6 @@
-Author :\r
-Gerhard Gappmeier <gerhard.gappmeier@ascolab.com>\r
-ascolab GmbH\r
-http://www.ascolab.com\r
-\r
-\r
+Author :
+Gerhard Gappmeier <gerhard.gappmeier@ascolab.com>
+ascolab GmbH
+http://www.ascolab.com
+
+
index fbdd65f6f8b5e99b1d4d1e24eef4f4dce46164e4..d60c31a97a544b53039088d14fe9114583c0efc3 100644 (file)
-                   GNU GENERAL PUBLIC LICENSE\r
-                      Version 2, June 1991\r
-\r
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.\r
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
- Everyone is permitted to copy and distribute verbatim copies\r
- of this license document, but changing it is not allowed.\r
-\r
-                           Preamble\r
-\r
-  The licenses for most software are designed to take away your\r
-freedom to share and change it.  By contrast, the GNU General Public\r
-License is intended to guarantee your freedom to share and change free\r
-software--to make sure the software is free for all its users.  This\r
-General Public License applies to most of the Free Software\r
-Foundation's software and to any other program whose authors commit to\r
-using it.  (Some other Free Software Foundation software is covered by\r
-the GNU Library General Public License instead.)  You can apply it to\r
-your programs, too.\r
-\r
-  When we speak of free software, we are referring to freedom, not\r
-price.  Our General Public Licenses are designed to make sure that you\r
-have the freedom to distribute copies of free software (and charge for\r
-this service if you wish), that you receive source code or can get it\r
-if you want it, that you can change the software or use pieces of it\r
-in new free programs; and that you know you can do these things.\r
-\r
-  To protect your rights, we need to make restrictions that forbid\r
-anyone to deny you these rights or to ask you to surrender the rights.\r
-These restrictions translate to certain responsibilities for you if you\r
-distribute copies of the software, or if you modify it.\r
-\r
-  For example, if you distribute copies of such a program, whether\r
-gratis or for a fee, you must give the recipients all the rights that\r
-you have.  You must make sure that they, too, receive or can get the\r
-source code.  And you must show them these terms so they know their\r
-rights.\r
-\r
-  We protect your rights with two steps: (1) copyright the software, and\r
-(2) offer you this license which gives you legal permission to copy,\r
-distribute and/or modify the software.\r
-\r
-  Also, for each author's protection and ours, we want to make certain\r
-that everyone understands that there is no warranty for this free\r
-software.  If the software is modified by someone else and passed on, we\r
-want its recipients to know that what they have is not the original, so\r
-that any problems introduced by others will not reflect on the original\r
-authors' reputations.\r
-\r
-  Finally, any free program is threatened constantly by software\r
-patents.  We wish to avoid the danger that redistributors of a free\r
-program will individually obtain patent licenses, in effect making the\r
-program proprietary.  To prevent this, we have made it clear that any\r
-patent must be licensed for everyone's free use or not licensed at all.\r
-\r
-  The precise terms and conditions for copying, distribution and\r
-modification follow.\r
-\f\r
-                   GNU GENERAL PUBLIC LICENSE\r
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\r
-\r
-  0. This License applies to any program or other work which contains\r
-a notice placed by the copyright holder saying it may be distributed\r
-under the terms of this General Public License.  The "Program", below,\r
-refers to any such program or work, and a "work based on the Program"\r
-means either the Program or any derivative work under copyright law:\r
-that is to say, a work containing the Program or a portion of it,\r
-either verbatim or with modifications and/or translated into another\r
-language.  (Hereinafter, translation is included without limitation in\r
-the term "modification".)  Each licensee is addressed as "you".\r
-\r
-Activities other than copying, distribution and modification are not\r
-covered by this License; they are outside its scope.  The act of\r
-running the Program is not restricted, and the output from the Program\r
-is covered only if its contents constitute a work based on the\r
-Program (independent of having been made by running the Program).\r
-Whether that is true depends on what the Program does.\r
-\r
-  1. You may copy and distribute verbatim copies of the Program's\r
-source code as you receive it, in any medium, provided that you\r
-conspicuously and appropriately publish on each copy an appropriate\r
-copyright notice and disclaimer of warranty; keep intact all the\r
-notices that refer to this License and to the absence of any warranty;\r
-and give any other recipients of the Program a copy of this License\r
-along with the Program.\r
-\r
-You may charge a fee for the physical act of transferring a copy, and\r
-you may at your option offer warranty protection in exchange for a fee.\r
-\r
-  2. You may modify your copy or copies of the Program or any portion\r
-of it, thus forming a work based on the Program, and copy and\r
-distribute such modifications or work under the terms of Section 1\r
-above, provided that you also meet all of these conditions:\r
-\r
-    a) You must cause the modified files to carry prominent notices\r
-    stating that you changed the files and the date of any change.\r
-\r
-    b) You must cause any work that you distribute or publish, that in\r
-    whole or in part contains or is derived from the Program or any\r
-    part thereof, to be licensed as a whole at no charge to all third\r
-    parties under the terms of this License.\r
-\r
-    c) If the modified program normally reads commands interactively\r
-    when run, you must cause it, when started running for such\r
-    interactive use in the most ordinary way, to print or display an\r
-    announcement including an appropriate copyright notice and a\r
-    notice that there is no warranty (or else, saying that you provide\r
-    a warranty) and that users may redistribute the program under\r
-    these conditions, and telling the user how to view a copy of this\r
-    License.  (Exception: if the Program itself is interactive but\r
-    does not normally print such an announcement, your work based on\r
-    the Program is not required to print an announcement.)\r
-\f\r
-These requirements apply to the modified work as a whole.  If\r
-identifiable sections of that work are not derived from the Program,\r
-and can be reasonably considered independent and separate works in\r
-themselves, then this License, and its terms, do not apply to those\r
-sections when you distribute them as separate works.  But when you\r
-distribute the same sections as part of a whole which is a work based\r
-on the Program, the distribution of the whole must be on the terms of\r
-this License, whose permissions for other licensees extend to the\r
-entire whole, and thus to each and every part regardless of who wrote it.\r
-\r
-Thus, it is not the intent of this section to claim rights or contest\r
-your rights to work written entirely by you; rather, the intent is to\r
-exercise the right to control the distribution of derivative or\r
-collective works based on the Program.\r
-\r
-In addition, mere aggregation of another work not based on the Program\r
-with the Program (or with a work based on the Program) on a volume of\r
-a storage or distribution medium does not bring the other work under\r
-the scope of this License.\r
-\r
-  3. You may copy and distribute the Program (or a work based on it,\r
-under Section 2) in object code or executable form under the terms of\r
-Sections 1 and 2 above provided that you also do one of the following:\r
-\r
-    a) Accompany it with the complete corresponding machine-readable\r
-    source code, which must be distributed under the terms of Sections\r
-    1 and 2 above on a medium customarily used for software interchange; or,\r
-\r
-    b) Accompany it with a written offer, valid for at least three\r
-    years, to give any third party, for a charge no more than your\r
-    cost of physically performing source distribution, a complete\r
-    machine-readable copy of the corresponding source code, to be\r
-    distributed under the terms of Sections 1 and 2 above on a medium\r
-    customarily used for software interchange; or,\r
-\r
-    c) Accompany it with the information you received as to the offer\r
-    to distribute corresponding source code.  (This alternative is\r
-    allowed only for noncommercial distribution and only if you\r
-    received the program in object code or executable form with such\r
-    an offer, in accord with Subsection b above.)\r
-\r
-The source code for a work means the preferred form of the work for\r
-making modifications to it.  For an executable work, complete source\r
-code means all the source code for all modules it contains, plus any\r
-associated interface definition files, plus the scripts used to\r
-control compilation and installation of the executable.  However, as a\r
-special exception, the source code distributed need not include\r
-anything that is normally distributed (in either source or binary\r
-form) with the major components (compiler, kernel, and so on) of the\r
-operating system on which the executable runs, unless that component\r
-itself accompanies the executable.\r
-\r
-If distribution of executable or object code is made by offering\r
-access to copy from a designated place, then offering equivalent\r
-access to copy the source code from the same place counts as\r
-distribution of the source code, even though third parties are not\r
-compelled to copy the source along with the object code.\r
-\f\r
-  4. You may not copy, modify, sublicense, or distribute the Program\r
-except as expressly provided under this License.  Any attempt\r
-otherwise to copy, modify, sublicense or distribute the Program is\r
-void, and will automatically terminate your rights under this License.\r
-However, parties who have received copies, or rights, from you under\r
-this License will not have their licenses terminated so long as such\r
-parties remain in full compliance.\r
-\r
-  5. You are not required to accept this License, since you have not\r
-signed it.  However, nothing else grants you permission to modify or\r
-distribute the Program or its derivative works.  These actions are\r
-prohibited by law if you do not accept this License.  Therefore, by\r
-modifying or distributing the Program (or any work based on the\r
-Program), you indicate your acceptance of this License to do so, and\r
-all its terms and conditions for copying, distributing or modifying\r
-the Program or works based on it.\r
-\r
-  6. Each time you redistribute the Program (or any work based on the\r
-Program), the recipient automatically receives a license from the\r
-original licensor to copy, distribute or modify the Program subject to\r
-these terms and conditions.  You may not impose any further\r
-restrictions on the recipients' exercise of the rights granted herein.\r
-You are not responsible for enforcing compliance by third parties to\r
-this License.\r
-\r
-  7. If, as a consequence of a court judgment or allegation of patent\r
-infringement or for any other reason (not limited to patent issues),\r
-conditions are imposed on you (whether by court order, agreement or\r
-otherwise) that contradict the conditions of this License, they do not\r
-excuse you from the conditions of this License.  If you cannot\r
-distribute so as to satisfy simultaneously your obligations under this\r
-License and any other pertinent obligations, then as a consequence you\r
-may not distribute the Program at all.  For example, if a patent\r
-license would not permit royalty-free redistribution of the Program by\r
-all those who receive copies directly or indirectly through you, then\r
-the only way you could satisfy both it and this License would be to\r
-refrain entirely from distribution of the Program.\r
-\r
-If any portion of this section is held invalid or unenforceable under\r
-any particular circumstance, the balance of the section is intended to\r
-apply and the section as a whole is intended to apply in other\r
-circumstances.\r
-\r
-It is not the purpose of this section to induce you to infringe any\r
-patents or other property right claims or to contest validity of any\r
-such claims; this section has the sole purpose of protecting the\r
-integrity of the free software distribution system, which is\r
-implemented by public license practices.  Many people have made\r
-generous contributions to the wide range of software distributed\r
-through that system in reliance on consistent application of that\r
-system; it is up to the author/donor to decide if he or she is willing\r
-to distribute software through any other system and a licensee cannot\r
-impose that choice.\r
-\r
-This section is intended to make thoroughly clear what is believed to\r
-be a consequence of the rest of this License.\r
-\f\r
-  8. If the distribution and/or use of the Program is restricted in\r
-certain countries either by patents or by copyrighted interfaces, the\r
-original copyright holder who places the Program under this License\r
-may add an explicit geographical distribution limitation excluding\r
-those countries, so that distribution is permitted only in or among\r
-countries not thus excluded.  In such case, this License incorporates\r
-the limitation as if written in the body of this License.\r
-\r
-  9. The Free Software Foundation may publish revised and/or new versions\r
-of the General Public License from time to time.  Such new versions will\r
-be similar in spirit to the present version, but may differ in detail to\r
-address new problems or concerns.\r
-\r
-Each version is given a distinguishing version number.  If the Program\r
-specifies a version number of this License which applies to it and "any\r
-later version", you have the option of following the terms and conditions\r
-either of that version or of any later version published by the Free\r
-Software Foundation.  If the Program does not specify a version number of\r
-this License, you may choose any version ever published by the Free Software\r
-Foundation.\r
-\r
-  10. If you wish to incorporate parts of the Program into other free\r
-programs whose distribution conditions are different, write to the author\r
-to ask for permission.  For software which is copyrighted by the Free\r
-Software Foundation, write to the Free Software Foundation; we sometimes\r
-make exceptions for this.  Our decision will be guided by the two goals\r
-of preserving the free status of all derivatives of our free software and\r
-of promoting the sharing and reuse of software generally.\r
-\r
-                           NO WARRANTY\r
-\r
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\r
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN\r
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\r
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\r
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS\r
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE\r
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\r
-REPAIR OR CORRECTION.\r
-\r
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\r
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\r
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\r
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\r
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\r
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\r
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\r
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\r
-POSSIBILITY OF SUCH DAMAGES.\r
-\r
-                    END OF TERMS AND CONDITIONS\r
-\f\r
-           How to Apply These Terms to Your New Programs\r
-\r
-  If you develop a new program, and you want it to be of the greatest\r
-possible use to the public, the best way to achieve this is to make it\r
-free software which everyone can redistribute and change under these terms.\r
-\r
-  To do so, attach the following notices to the program.  It is safest\r
-to attach them to the start of each source file to most effectively\r
-convey the exclusion of warranty; and each file should have at least\r
-the "copyright" line and a pointer to where the full notice is found.\r
-\r
-    <one line to give the program's name and a brief idea of what it does.>\r
-    Copyright (C) <year>  <name of author>\r
-\r
-    This program is free software; you can redistribute it and/or modify\r
-    it under the terms of the GNU General Public License as published by\r
-    the Free Software Foundation; either version 2 of the License, or\r
-    (at your option) any later version.\r
-\r
-    This program is distributed in the hope that it will be useful,\r
-    but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-    GNU General Public License for more details.\r
-\r
-    You should have received a copy of the GNU General Public License\r
-    along with this program; if not, write to the Free Software\r
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
-\r
-\r
-Also add information on how to contact you by electronic and paper mail.\r
-\r
-If the program is interactive, make it output a short notice like this\r
-when it starts in an interactive mode:\r
-\r
-    Gnomovision version 69, Copyright (C) year  name of author\r
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\r
-    This is free software, and you are welcome to redistribute it\r
-    under certain conditions; type `show c' for details.\r
-\r
-The hypothetical commands `show w' and `show c' should show the appropriate\r
-parts of the General Public License.  Of course, the commands you use may\r
-be called something other than `show w' and `show c'; they could even be\r
-mouse-clicks or menu items--whatever suits your program.\r
-\r
-You should also get your employer (if you work as a programmer) or your\r
-school, if any, to sign a "copyright disclaimer" for the program, if\r
-necessary.  Here is a sample; alter the names:\r
-\r
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program\r
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.\r
-\r
-  <signature of Ty Coon>, 1 April 1989\r
-  Ty Coon, President of Vice\r
-\r
-This General Public License does not permit incorporating your program into\r
-proprietary programs.  If your program is a subroutine library, you may\r
-consider it more useful to permit linking proprietary applications with the\r
-library.  If this is what you want to do, use the GNU Library General\r
-Public License instead of this License.\r
+                   GNU GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+\f
+                   GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+\f
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+\f
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+\f
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                           NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+\f
+           How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
index 93e3e97f1822a58fe4db7c0fca394e140d8b53a6..1fbc5733707e505afb46e154ff16ed49052b1bac 100644 (file)
@@ -1,8 +1,8 @@
-$Id: ChangeLog,v 1.1.1.1 2006/07/12 09:17:41 gergap Exp $\r
-\r
-Overview of changes in OpcUa plugin:\r
-\r
-Version 0.0.1:\r
-\r
-* initial implementation without security\r
-\r
+$Id$
+
+Overview of changes in OpcUa plugin:
+
+Version 0.0.1:
+
+* initial implementation without security
+
index 2955c7b03e42a6ed61c7c2dead21718c88b0ea16..478bcdb878437bd858d17f8398cc1bf6f7a651e9 100644 (file)
-# Doxyfile 1.4.1-KDevelop\r
-\r
-#---------------------------------------------------------------------------\r
-# Project related configuration options\r
-#---------------------------------------------------------------------------\r
-PROJECT_NAME           = opcua.kdevelop\r
-PROJECT_NUMBER         = $VERSION$\r
-OUTPUT_DIRECTORY       = \r
-CREATE_SUBDIRS         = NO\r
-OUTPUT_LANGUAGE        = English\r
-USE_WINDOWS_ENCODING   = NO\r
-BRIEF_MEMBER_DESC      = YES\r
-REPEAT_BRIEF           = YES\r
-ABBREVIATE_BRIEF       = "The $name class" \\r
-                         "The $name widget" \\r
-                         "The $name file" \\r
-                         is \\r
-                         provides \\r
-                         specifies \\r
-                         contains \\r
-                         represents \\r
-                         a \\r
-                         an \\r
-                         the\r
-ALWAYS_DETAILED_SEC    = NO\r
-INLINE_INHERITED_MEMB  = NO\r
-FULL_PATH_NAMES        = YES\r
-STRIP_FROM_PATH        = /home/gergap/\r
-STRIP_FROM_INC_PATH    = \r
-SHORT_NAMES            = NO\r
-JAVADOC_AUTOBRIEF      = NO\r
-MULTILINE_CPP_IS_BRIEF = NO\r
-DETAILS_AT_TOP         = NO\r
-INHERIT_DOCS           = YES\r
-DISTRIBUTE_GROUP_DOC   = NO\r
-TAB_SIZE               = 8\r
-ALIASES                = \r
-OPTIMIZE_OUTPUT_FOR_C  = NO\r
-OPTIMIZE_OUTPUT_JAVA   = NO\r
-SUBGROUPING            = YES\r
-#---------------------------------------------------------------------------\r
-# Build related configuration options\r
-#---------------------------------------------------------------------------\r
-EXTRACT_ALL            = NO\r
-EXTRACT_PRIVATE        = NO\r
-EXTRACT_STATIC         = NO\r
-EXTRACT_LOCAL_CLASSES  = YES\r
-EXTRACT_LOCAL_METHODS  = NO\r
-HIDE_UNDOC_MEMBERS     = NO\r
-HIDE_UNDOC_CLASSES     = NO\r
-HIDE_FRIEND_COMPOUNDS  = NO\r
-HIDE_IN_BODY_DOCS      = NO\r
-INTERNAL_DOCS          = NO\r
-CASE_SENSE_NAMES       = YES\r
-HIDE_SCOPE_NAMES       = NO\r
-SHOW_INCLUDE_FILES     = YES\r
-INLINE_INFO            = YES\r
-SORT_MEMBER_DOCS       = YES\r
-SORT_BRIEF_DOCS        = NO\r
-SORT_BY_SCOPE_NAME     = NO\r
-GENERATE_TODOLIST      = YES\r
-GENERATE_TESTLIST      = YES\r
-GENERATE_BUGLIST       = YES\r
-GENERATE_DEPRECATEDLIST= YES\r
-ENABLED_SECTIONS       = \r
-MAX_INITIALIZER_LINES  = 30\r
-SHOW_USED_FILES        = YES\r
-SHOW_DIRECTORIES       = YES\r
-FILE_VERSION_FILTER    = \r
-#---------------------------------------------------------------------------\r
-# configuration options related to warning and progress messages\r
-#---------------------------------------------------------------------------\r
-QUIET                  = NO\r
-WARNINGS               = YES\r
-WARN_IF_UNDOCUMENTED   = YES\r
-WARN_IF_DOC_ERROR      = YES\r
-WARN_NO_PARAMDOC       = NO\r
-WARN_FORMAT            = "$file:$line: $text"\r
-WARN_LOGFILE           = \r
-#---------------------------------------------------------------------------\r
-# configuration options related to the input files\r
-#---------------------------------------------------------------------------\r
-INPUT                  = /home/gergap/work/wireshark/plugins/opcua\r
-FILE_PATTERNS          = *.c \\r
-                         *.cc \\r
-                         *.cxx \\r
-                         *.cpp \\r
-                         *.c++ \\r
-                         *.java \\r
-                         *.ii \\r
-                         *.ixx \\r
-                         *.ipp \\r
-                         *.i++ \\r
-                         *.inl \\r
-                         *.h \\r
-                         *.hh \\r
-                         *.hxx \\r
-                         *.hpp \\r
-                         *.h++ \\r
-                         *.idl \\r
-                         *.odl \\r
-                         *.cs \\r
-                         *.php \\r
-                         *.php3 \\r
-                         *.inc \\r
-                         *.m \\r
-                         *.mm \\r
-                         *.dox \\r
-                         *.C \\r
-                         *.CC \\r
-                         *.C++ \\r
-                         *.II \\r
-                         *.I++ \\r
-                         *.H \\r
-                         *.HH \\r
-                         *.H++ \\r
-                         *.CS \\r
-                         *.PHP \\r
-                         *.PHP3 \\r
-                         *.M \\r
-                         *.MM \\r
-                         *.C \\r
-                         *.H \\r
-                         *.tlh \\r
-                         *.diff \\r
-                         *.patch \\r
-                         *.moc \\r
-                         *.xpm \\r
-                         *.dox\r
-RECURSIVE              = yes\r
-EXCLUDE                = \r
-EXCLUDE_SYMLINKS       = NO\r
-EXCLUDE_PATTERNS       = \r
-EXAMPLE_PATH           = \r
-EXAMPLE_PATTERNS       = *\r
-EXAMPLE_RECURSIVE      = NO\r
-IMAGE_PATH             = \r
-INPUT_FILTER           = \r
-FILTER_PATTERNS        = \r
-FILTER_SOURCE_FILES    = NO\r
-#---------------------------------------------------------------------------\r
-# configuration options related to source browsing\r
-#---------------------------------------------------------------------------\r
-SOURCE_BROWSER         = NO\r
-INLINE_SOURCES         = NO\r
-STRIP_CODE_COMMENTS    = YES\r
-REFERENCED_BY_RELATION = YES\r
-REFERENCES_RELATION    = YES\r
-VERBATIM_HEADERS       = YES\r
-#---------------------------------------------------------------------------\r
-# configuration options related to the alphabetical class index\r
-#---------------------------------------------------------------------------\r
-ALPHABETICAL_INDEX     = NO\r
-COLS_IN_ALPHA_INDEX    = 5\r
-IGNORE_PREFIX          = \r
-#---------------------------------------------------------------------------\r
-# configuration options related to the HTML output\r
-#---------------------------------------------------------------------------\r
-GENERATE_HTML          = YES\r
-HTML_OUTPUT            = html\r
-HTML_FILE_EXTENSION    = .html\r
-HTML_HEADER            = \r
-HTML_FOOTER            = \r
-HTML_STYLESHEET        = \r
-HTML_ALIGN_MEMBERS     = YES\r
-GENERATE_HTMLHELP      = NO\r
-CHM_FILE               = \r
-HHC_LOCATION           = \r
-GENERATE_CHI           = NO\r
-BINARY_TOC             = NO\r
-TOC_EXPAND             = NO\r
-DISABLE_INDEX          = NO\r
-ENUM_VALUES_PER_LINE   = 4\r
-GENERATE_TREEVIEW      = NO\r
-TREEVIEW_WIDTH         = 250\r
-#---------------------------------------------------------------------------\r
-# configuration options related to the LaTeX output\r
-#---------------------------------------------------------------------------\r
-GENERATE_LATEX         = YES\r
-LATEX_OUTPUT           = latex\r
-LATEX_CMD_NAME         = latex\r
-MAKEINDEX_CMD_NAME     = makeindex\r
-COMPACT_LATEX          = NO\r
-PAPER_TYPE             = a4wide\r
-EXTRA_PACKAGES         = \r
-LATEX_HEADER           = \r
-PDF_HYPERLINKS         = NO\r
-USE_PDFLATEX           = NO\r
-LATEX_BATCHMODE        = NO\r
-LATEX_HIDE_INDICES     = NO\r
-#---------------------------------------------------------------------------\r
-# configuration options related to the RTF output\r
-#---------------------------------------------------------------------------\r
-GENERATE_RTF           = NO\r
-RTF_OUTPUT             = rtf\r
-COMPACT_RTF            = NO\r
-RTF_HYPERLINKS         = NO\r
-RTF_STYLESHEET_FILE    = \r
-RTF_EXTENSIONS_FILE    = \r
-#---------------------------------------------------------------------------\r
-# configuration options related to the man page output\r
-#---------------------------------------------------------------------------\r
-GENERATE_MAN           = NO\r
-MAN_OUTPUT             = man\r
-MAN_EXTENSION          = .3\r
-MAN_LINKS              = NO\r
-#---------------------------------------------------------------------------\r
-# configuration options related to the XML output\r
-#---------------------------------------------------------------------------\r
-GENERATE_XML           = yes\r
-XML_OUTPUT             = xml\r
-XML_SCHEMA             = \r
-XML_DTD                = \r
-XML_PROGRAMLISTING     = YES\r
-#---------------------------------------------------------------------------\r
-# configuration options for the AutoGen Definitions output\r
-#---------------------------------------------------------------------------\r
-GENERATE_AUTOGEN_DEF   = NO\r
-#---------------------------------------------------------------------------\r
-# configuration options related to the Perl module output\r
-#---------------------------------------------------------------------------\r
-GENERATE_PERLMOD       = NO\r
-PERLMOD_LATEX          = NO\r
-PERLMOD_PRETTY         = YES\r
-PERLMOD_MAKEVAR_PREFIX = \r
-#---------------------------------------------------------------------------\r
-# Configuration options related to the preprocessor   \r
-#---------------------------------------------------------------------------\r
-ENABLE_PREPROCESSING   = YES\r
-MACRO_EXPANSION        = NO\r
-EXPAND_ONLY_PREDEF     = NO\r
-SEARCH_INCLUDES        = YES\r
-INCLUDE_PATH           = \r
-INCLUDE_FILE_PATTERNS  = \r
-PREDEFINED             = \r
-EXPAND_AS_DEFINED      = \r
-SKIP_FUNCTION_MACROS   = YES\r
-#---------------------------------------------------------------------------\r
-# Configuration::additions related to external references   \r
-#---------------------------------------------------------------------------\r
-TAGFILES               = \r
-GENERATE_TAGFILE       = opcua.tag\r
-ALLEXTERNALS           = NO\r
-EXTERNAL_GROUPS        = YES\r
-PERL_PATH              = /usr/bin/perl\r
-#---------------------------------------------------------------------------\r
-# Configuration options related to the dot tool   \r
-#---------------------------------------------------------------------------\r
-CLASS_DIAGRAMS         = YES\r
-HIDE_UNDOC_RELATIONS   = YES\r
-HAVE_DOT               = NO\r
-CLASS_GRAPH            = YES\r
-COLLABORATION_GRAPH    = YES\r
-GROUP_GRAPHS           = YES\r
-UML_LOOK               = NO\r
-TEMPLATE_RELATIONS     = NO\r
-INCLUDE_GRAPH          = YES\r
-INCLUDED_BY_GRAPH      = YES\r
-CALL_GRAPH             = NO\r
-GRAPHICAL_HIERARCHY    = YES\r
-DIRECTORY_GRAPH        = YES\r
-DOT_IMAGE_FORMAT       = png\r
-DOT_PATH               = \r
-DOTFILE_DIRS           = \r
-MAX_DOT_GRAPH_WIDTH    = 1024\r
-MAX_DOT_GRAPH_HEIGHT   = 1024\r
-MAX_DOT_GRAPH_DEPTH    = 1000\r
-DOT_TRANSPARENT        = NO\r
-DOT_MULTI_TARGETS      = NO\r
-GENERATE_LEGEND        = YES\r
-DOT_CLEANUP            = YES\r
-#---------------------------------------------------------------------------\r
-# Configuration::additions related to the search engine   \r
-#---------------------------------------------------------------------------\r
-SEARCHENGINE           = NO\r
+# Doxyfile 1.4.1-KDevelop
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME           = opcua.kdevelop
+PROJECT_NUMBER         = $VERSION$
+OUTPUT_DIRECTORY       = 
+CREATE_SUBDIRS         = NO
+OUTPUT_LANGUAGE        = English
+USE_WINDOWS_ENCODING   = NO
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = YES
+ABBREVIATE_BRIEF       = "The $name class" \
+                         "The $name widget" \
+                         "The $name file" \
+                         is \
+                         provides \
+                         specifies \
+                         contains \
+                         represents \
+                         a \
+                         an \
+                         the
+ALWAYS_DETAILED_SEC    = NO
+INLINE_INHERITED_MEMB  = NO
+FULL_PATH_NAMES        = YES
+STRIP_FROM_PATH        = /home/gergap/
+STRIP_FROM_INC_PATH    = 
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = NO
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP         = NO
+INHERIT_DOCS           = YES
+DISTRIBUTE_GROUP_DOC   = NO
+TAB_SIZE               = 8
+ALIASES                = 
+OPTIMIZE_OUTPUT_FOR_C  = NO
+OPTIMIZE_OUTPUT_JAVA   = NO
+SUBGROUPING            = YES
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL            = NO
+EXTRACT_PRIVATE        = NO
+EXTRACT_STATIC         = NO
+EXTRACT_LOCAL_CLASSES  = YES
+EXTRACT_LOCAL_METHODS  = NO
+HIDE_UNDOC_MEMBERS     = NO
+HIDE_UNDOC_CLASSES     = NO
+HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_IN_BODY_DOCS      = NO
+INTERNAL_DOCS          = NO
+CASE_SENSE_NAMES       = YES
+HIDE_SCOPE_NAMES       = NO
+SHOW_INCLUDE_FILES     = YES
+INLINE_INFO            = YES
+SORT_MEMBER_DOCS       = YES
+SORT_BRIEF_DOCS        = NO
+SORT_BY_SCOPE_NAME     = NO
+GENERATE_TODOLIST      = YES
+GENERATE_TESTLIST      = YES
+GENERATE_BUGLIST       = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS       = 
+MAX_INITIALIZER_LINES  = 30
+SHOW_USED_FILES        = YES
+SHOW_DIRECTORIES       = YES
+FILE_VERSION_FILTER    = 
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET                  = NO
+WARNINGS               = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = NO
+WARN_FORMAT            = "$file:$line: $text"
+WARN_LOGFILE           = 
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT                  = /home/gergap/work/wireshark/plugins/opcua
+FILE_PATTERNS          = *.c \
+                         *.cc \
+                         *.cxx \
+                         *.cpp \
+                         *.c++ \
+                         *.java \
+                         *.ii \
+                         *.ixx \
+                         *.ipp \
+                         *.i++ \
+                         *.inl \
+                         *.h \
+                         *.hh \
+                         *.hxx \
+                         *.hpp \
+                         *.h++ \
+                         *.idl \
+                         *.odl \
+                         *.cs \
+                         *.php \
+                         *.php3 \
+                         *.inc \
+                         *.m \
+                         *.mm \
+                         *.dox \
+                         *.C \
+                         *.CC \
+                         *.C++ \
+                         *.II \
+                         *.I++ \
+                         *.H \
+                         *.HH \
+                         *.H++ \
+                         *.CS \
+                         *.PHP \
+                         *.PHP3 \
+                         *.M \
+                         *.MM \
+                         *.C \
+                         *.H \
+                         *.tlh \
+                         *.diff \
+                         *.patch \
+                         *.moc \
+                         *.xpm \
+                         *.dox
+RECURSIVE              = yes
+EXCLUDE                = 
+EXCLUDE_SYMLINKS       = NO
+EXCLUDE_PATTERNS       = 
+EXAMPLE_PATH           = 
+EXAMPLE_PATTERNS       = *
+EXAMPLE_RECURSIVE      = NO
+IMAGE_PATH             = 
+INPUT_FILTER           = 
+FILTER_PATTERNS        = 
+FILTER_SOURCE_FILES    = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER         = NO
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION    = YES
+VERBATIM_HEADERS       = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX     = NO
+COLS_IN_ALPHA_INDEX    = 5
+IGNORE_PREFIX          = 
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML          = YES
+HTML_OUTPUT            = html
+HTML_FILE_EXTENSION    = .html
+HTML_HEADER            = 
+HTML_FOOTER            = 
+HTML_STYLESHEET        = 
+HTML_ALIGN_MEMBERS     = YES
+GENERATE_HTMLHELP      = NO
+CHM_FILE               = 
+HHC_LOCATION           = 
+GENERATE_CHI           = NO
+BINARY_TOC             = NO
+TOC_EXPAND             = NO
+DISABLE_INDEX          = NO
+ENUM_VALUES_PER_LINE   = 4
+GENERATE_TREEVIEW      = NO
+TREEVIEW_WIDTH         = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX         = YES
+LATEX_OUTPUT           = latex
+LATEX_CMD_NAME         = latex
+MAKEINDEX_CMD_NAME     = makeindex
+COMPACT_LATEX          = NO
+PAPER_TYPE             = a4wide
+EXTRA_PACKAGES         = 
+LATEX_HEADER           = 
+PDF_HYPERLINKS         = NO
+USE_PDFLATEX           = NO
+LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF           = NO
+RTF_OUTPUT             = rtf
+COMPACT_RTF            = NO
+RTF_HYPERLINKS         = NO
+RTF_STYLESHEET_FILE    = 
+RTF_EXTENSIONS_FILE    = 
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN           = NO
+MAN_OUTPUT             = man
+MAN_EXTENSION          = .3
+MAN_LINKS              = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML           = yes
+XML_OUTPUT             = xml
+XML_SCHEMA             = 
+XML_DTD                = 
+XML_PROGRAMLISTING     = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF   = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD       = NO
+PERLMOD_LATEX          = NO
+PERLMOD_PRETTY         = YES
+PERLMOD_MAKEVAR_PREFIX = 
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING   = YES
+MACRO_EXPANSION        = NO
+EXPAND_ONLY_PREDEF     = NO
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           = 
+INCLUDE_FILE_PATTERNS  = 
+PREDEFINED             = 
+EXPAND_AS_DEFINED      = 
+SKIP_FUNCTION_MACROS   = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+TAGFILES               = 
+GENERATE_TAGFILE       = opcua.tag
+ALLEXTERNALS           = NO
+EXTERNAL_GROUPS        = YES
+PERL_PATH              = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS         = YES
+HIDE_UNDOC_RELATIONS   = YES
+HAVE_DOT               = NO
+CLASS_GRAPH            = YES
+COLLABORATION_GRAPH    = YES
+GROUP_GRAPHS           = YES
+UML_LOOK               = NO
+TEMPLATE_RELATIONS     = NO
+INCLUDE_GRAPH          = YES
+INCLUDED_BY_GRAPH      = YES
+CALL_GRAPH             = NO
+GRAPHICAL_HIERARCHY    = YES
+DIRECTORY_GRAPH        = YES
+DOT_IMAGE_FORMAT       = png
+DOT_PATH               = 
+DOTFILE_DIRS           = 
+MAX_DOT_GRAPH_WIDTH    = 1024
+MAX_DOT_GRAPH_HEIGHT   = 1024
+MAX_DOT_GRAPH_DEPTH    = 1000
+DOT_TRANSPARENT        = NO
+DOT_MULTI_TARGETS      = NO
+GENERATE_LEGEND        = YES
+DOT_CLEANUP            = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+SEARCHENGINE           = NO
index 3e87a735f7c3ccd9a60305f8d79e28e0788b33c5..bd10e17b83958597ef5fe8426516f458ec3816c7 100644 (file)
-# Makefile.am\r
-# Automake file for OpcUa plugin\r
-#\r
-# $Id: Makefile.am,v 1.1.1.1 2006/07/12 09:17:41 gergap Exp $\r
-#\r
-# Adapted by Gerhard Gappmeier for OpcUa\r
-# Wireshark - Network traffic analyzer\r
-# By Gerald Combs <gerald@wireshark.org>\r
-# Copyright 1998 Gerald Combs\r
-# \r
-# This program is free software; you can redistribute it and/or\r
-# modify it under the terms of the GNU General Public License\r
-# as published by the Free Software Foundation; either version 2\r
-# of the License, or (at your option) any later version.\r
-# \r
-# This program is distributed in the hope that it will be useful,\r
-# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-# GNU General Public License for more details.\r
-# \r
-# You should have received a copy of the GNU General Public License\r
-# along with this program; if not, write to the Free Software\r
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\r
-#\r
-\r
-INCLUDES = -I$(top_srcdir) -I$(includedir)\r
-\r
-include Makefile.common\r
-\r
-plugindir = @plugindir@\r
-\r
-plugin_LTLIBRARIES = opcua.la\r
-opcua_la_SOURCES = \\r
-       plugin.c \\r
-       moduleinfo.h \\r
-       $(DISSECTOR_SRC) \\r
-       $(DISSECTOR_INCLUDES)\r
-opcua_la_LDFLAGS = -module -avoid-version\r
-opcua_la_LIBADD = @PLUGIN_LIBS@\r
-\r
-# Libs must be cleared, or else libtool won't create a shared module.\r
-# If your module needs to be linked against any particular libraries,\r
-# add them here.\r
-LIBS =\r
-\r
-#\r
-# Build plugin.c, which contains the plugin version[] string, a\r
-# function plugin_register() that calls the register routines for all\r
-# protocols, and a function plugin_reg_handoff() that calls the handoff\r
-# registration routines for all protocols.\r
-#\r
-# We do this by scanning sources.  If that turns out to be too slow,\r
-# maybe we could just require every .o file to have an register routine\r
-# of a given name (packet-aarp.o -> proto_register_aarp, etc.).\r
-#\r
-# Formatting conventions:  The name of the proto_register_* routines an\r
-# proto_reg_handoff_* routines must start in column zero, or must be\r
-# preceded only by "void " starting in column zero, and must not be\r
-# inside #if.\r
-#\r
-# DISSECTOR_SRC is assumed to have all the files that need to be scanned.\r
-#\r
-# For some unknown reason, having a big "for" loop in the Makefile\r
-# to scan all the files doesn't work with some "make"s; they seem to\r
-# pass only the first few names in the list to the shell, for some\r
-# reason.\r
-#\r
-# Therefore, we have a script to generate the plugin.c file.\r
-# The shell script runs slowly, as multiple greps and seds are run\r
-# for each input file; this is especially slow on Windows.  Therefore,\r
-# if Python is present (as indicated by PYTHON being defined), we run\r
-# a faster Python script to do that work instead.\r
-#\r
-# The first argument is the directory in which the source files live.\r
-# The second argument is "plugin", to indicate that we should build\r
-# a plugin.c file for a plugin.\r
-# All subsequent arguments are the files to scan.\r
-#\r
-plugin.c: $(DISSECTOR_SRC) $(top_srcdir)/tools/make-dissector-reg \\r
-    $(top_srcdir)/tools/make-dissector-reg.py\r
-       @if test -n $(PYTHON); then \\r
-               echo Making plugin.c with python ; \\r
-               $(PYTHON) $(top_srcdir)/tools/make-dissector-reg.py $(srcdir) \\r
-                   plugin $(DISSECTOR_SRC) ; \\r
-       else \\r
-               echo Making plugin.c with shell script ; \\r
-               $(top_srcdir)/tools/make-dissector-reg $(srcdir) \\r
-                   $(plugin_src) plugin $(DISSECTOR_SRC) ; \\r
-       fi\r
-\r
-#\r
-# Currently plugin.c can be included in the distribution because\r
-# we always build all protocol dissectors. We used to have to check\r
-# whether or not to build the snmp dissector. If we again need to\r
-# variably build something, making plugin.c non-portable, uncomment\r
-# the dist-hook line below.\r
-#\r
-# Oh, yuk.  We don't want to include "plugin.c" in the distribution, as\r
-# its contents depend on the configuration, and therefore we want it\r
-# to be built when the first "make" is done; however, Automake insists\r
-# on putting *all* source into the distribution.\r
-#\r
-# We work around this by having a "dist-hook" rule that deletes\r
-# "plugin.c", so that "dist" won't pick it up.\r
-#\r
-#dist-hook:\r
-#      @rm -f $(distdir)/plugin.c\r
-\r
-CLEANFILES = \\r
-       opcua \\r
-       *~\r
-\r
-MAINTAINERCLEANFILES = \\r
-       Makefile.in     \\r
-       plugin.c\r
-\r
-EXTRA_DIST = \\r
-       Makefile.common         \\r
-       Makefile.nmake\r
+# Makefile.am
+# Automake file for OpcUa plugin
+#
+# $Id$
+#
+# Adapted by Gerhard Gappmeier for OpcUa
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+# 
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+
+INCLUDES = -I$(top_srcdir) -I$(includedir)
+
+include Makefile.common
+
+plugindir = @plugindir@
+
+plugin_LTLIBRARIES = opcua.la
+opcua_la_SOURCES = \
+       plugin.c \
+       moduleinfo.h \
+       $(DISSECTOR_SRC) \
+       $(DISSECTOR_INCLUDES)
+opcua_la_LDFLAGS = -module -avoid-version
+opcua_la_LIBADD = @PLUGIN_LIBS@
+
+# Libs must be cleared, or else libtool won't create a shared module.
+# If your module needs to be linked against any particular libraries,
+# add them here.
+LIBS =
+
+#
+# Build plugin.c, which contains the plugin version[] string, a
+# function plugin_register() that calls the register routines for all
+# protocols, and a function plugin_reg_handoff() that calls the handoff
+# registration routines for all protocols.
+#
+# We do this by scanning sources.  If that turns out to be too slow,
+# maybe we could just require every .o file to have an register routine
+# of a given name (packet-aarp.o -> proto_register_aarp, etc.).
+#
+# Formatting conventions:  The name of the proto_register_* routines an
+# proto_reg_handoff_* routines must start in column zero, or must be
+# preceded only by "void " starting in column zero, and must not be
+# inside #if.
+#
+# DISSECTOR_SRC is assumed to have all the files that need to be scanned.
+#
+# For some unknown reason, having a big "for" loop in the Makefile
+# to scan all the files doesn't work with some "make"s; they seem to
+# pass only the first few names in the list to the shell, for some
+# reason.
+#
+# Therefore, we have a script to generate the plugin.c file.
+# The shell script runs slowly, as multiple greps and seds are run
+# for each input file; this is especially slow on Windows.  Therefore,
+# if Python is present (as indicated by PYTHON being defined), we run
+# a faster Python script to do that work instead.
+#
+# The first argument is the directory in which the source files live.
+# The second argument is "plugin", to indicate that we should build
+# a plugin.c file for a plugin.
+# All subsequent arguments are the files to scan.
+#
+plugin.c: $(DISSECTOR_SRC) $(top_srcdir)/tools/make-dissector-reg \
+    $(top_srcdir)/tools/make-dissector-reg.py
+       @if test -n $(PYTHON); then \
+               echo Making plugin.c with python ; \
+               $(PYTHON) $(top_srcdir)/tools/make-dissector-reg.py $(srcdir) \
+                   plugin $(DISSECTOR_SRC) ; \
+       else \
+               echo Making plugin.c with shell script ; \
+               $(top_srcdir)/tools/make-dissector-reg $(srcdir) \
+                   $(plugin_src) plugin $(DISSECTOR_SRC) ; \
+       fi
+
+#
+# Currently plugin.c can be included in the distribution because
+# we always build all protocol dissectors. We used to have to check
+# whether or not to build the snmp dissector. If we again need to
+# variably build something, making plugin.c non-portable, uncomment
+# the dist-hook line below.
+#
+# Oh, yuk.  We don't want to include "plugin.c" in the distribution, as
+# its contents depend on the configuration, and therefore we want it
+# to be built when the first "make" is done; however, Automake insists
+# on putting *all* source into the distribution.
+#
+# We work around this by having a "dist-hook" rule that deletes
+# "plugin.c", so that "dist" won't pick it up.
+#
+#dist-hook:
+#      @rm -f $(distdir)/plugin.c
+
+CLEANFILES = \
+       opcua \
+       *~
+
+MAINTAINERCLEANFILES = \
+       Makefile.in     \
+       plugin.c
+
+EXTRA_DIST = \
+       Makefile.common         \
+       Makefile.nmake
index a07fab8520101a989971b105541b4174090beece..db1485acd37da14a2948b9eb6ab0b9a17cb14933 100644 (file)
@@ -1,41 +1,41 @@
-# Makefile.common for OpcUa plugin\r
-#     Contains the stuff from Makefile.am and Makefile.nmake that is\r
-#     a) common to both files and\r
-#     b) portable between both files\r
-#\r
-# $Id: Makefile.common,v 1.3 2007/02/08 11:29:50 gergap Exp $\r
-#\r
-# Adapted by Gerhard Gappmeier for OpcUa\r
-# Wireshark - Network traffic analyzer\r
-# By Gerald Combs <gerald@wireshark.org>\r
-# Copyright 1998 Gerald Combs\r
-#\r
-# This program is free software; you can redistribute it and/or\r
-# modify it under the terms of the GNU General Public License\r
-# as published by the Free Software Foundation; either version 2\r
-# of the License, or (at your option) any later version.\r
-#\r
-# This program is distributed in the hope that it will be useful,\r
-# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-# GNU General Public License for more details.\r
-#\r
-# You should have received a copy of the GNU General Public License\r
-# along with this program; if not, write to the Free Software\r
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\r
-\r
-# the name of the plugin\r
-PLUGIN_NAME = opcua\r
-\r
-# the dissector sources (without any helpers)\r
-DISSECTOR_SRC = \\r
-       opcua.c \\r
-       ua_transport_layer.c \\r
-       ua_security_layer.c \\r
-       ua_application_layer.c \\r
-       opcua_serviceparser.c \\r
-       opcua_complextypeparser.c \\r
-       opcua_enumparser.c \\r
-       opcua_simpletypes.c \\r
-       opcua_servicetable.c \\r
-       opcua_hfindeces.c\r
+# Makefile.common for OpcUa plugin
+#     Contains the stuff from Makefile.am and Makefile.nmake that is
+#     a) common to both files and
+#     b) portable between both files
+#
+# $Id$
+#
+# Adapted by Gerhard Gappmeier for OpcUa
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+
+# the name of the plugin
+PLUGIN_NAME = opcua
+
+# the dissector sources (without any helpers)
+DISSECTOR_SRC = \
+       opcua.c \
+       ua_transport_layer.c \
+       ua_security_layer.c \
+       ua_application_layer.c \
+       opcua_serviceparser.c \
+       opcua_complextypeparser.c \
+       opcua_enumparser.c \
+       opcua_simpletypes.c \
+       opcua_servicetable.c \
+       opcua_hfindeces.c
index cba80b8b07471b12cdb9ba24f6a6135a25c9d675..daf998f2dc9e820930b35adce7d4d98c743814e2 100644 (file)
@@ -1,79 +1,79 @@
-# Makefile.nmake\r
-# nmake file for OpcUa plugin\r
-#\r
-# $Id: Makefile.nmake,v 1.1.1.1 2006/07/12 09:17:41 gergap Exp $\r
-#\r
-\r
-include ..\..\config.nmake\r
-\r
-############### no need to modify below this line #########\r
-\r
-include Makefile.common\r
-\r
-CFLAGS=/DHAVE_CONFIG_H /I../.. /I../../wiretap $(GLIB_CFLAGS) \\r
-       /I$(PCAP_DIR)\include -D_U_="" $(LOCAL_CFLAGS)\r
-\r
-LDFLAGS = /NOLOGO /INCREMENTAL:no /MACHINE:I386 $(LOCAL_LDFLAGS)\r
-\r
-!IFDEF ENABLE_LIBWIRESHARK\r
-LINK_PLUGIN_WITH=..\..\epan\libwireshark.lib ..\..\epan\dissectors\dissectors.lib\r
-CFLAGS=/DHAVE_WIN32_LIBWIRESHARK_LIB /D_NEED_VAR_IMPORT_ $(CFLAGS)\r
-\r
-DISSECTOR_OBJECTS = $(DISSECTOR_SRC:.c=.obj)\r
-\r
-OBJECTS=$(DISSECTOR_OBJECTS) plugin.obj\r
-\r
-opcua.dll opcua.exp opcua.lib : $(OBJECTS) $(LINK_PLUGIN_WITH) \r
-       link -dll /out:opcua.dll $(LDFLAGS) $(OBJECTS) $(LINK_PLUGIN_WITH)  \\r
-       $(GLIB_LIBS)\r
-\r
-#\r
-# Build plugin.c, which contains the plugin version[] string, a\r
-# function plugin_register() that calls the register routines for all\r
-# protocols, and a function plugin_reg_handoff() that calls the handoff\r
-# registration routines for all protocols.\r
-#\r
-# We do this by scanning sources.  If that turns out to be too slow,\r
-# maybe we could just require every .o file to have an register routine\r
-# of a given name (packet-aarp.o -> proto_register_aarp, etc.).\r
-#\r
-# Formatting conventions:  The name of the proto_register_* routines an\r
-# proto_reg_handoff_* routines must start in column zero, or must be\r
-# preceded only by "void " starting in column zero, and must not be\r
-# inside #if.\r
-#\r
-# DISSECTOR_SRC is assumed to have all the files that need to be scanned.\r
-#\r
-# For some unknown reason, having a big "for" loop in the Makefile\r
-# to scan all the files doesn't work with some "make"s; they seem to\r
-# pass only the first few names in the list to the shell, for some\r
-# reason.\r
-#\r
-# Therefore, we have a script to generate the plugin.c file.\r
-# The shell script runs slowly, as multiple greps and seds are run\r
-# for each input file; this is especially slow on Windows.  Therefore,\r
-# if Python is present (as indicated by PYTHON being defined), we run\r
-# a faster Python script to do that work instead.\r
-#\r
-# The first argument is the directory in which the source files live.\r
-# The second argument is "plugin", to indicate that we should build\r
-# a plugin.c file for a plugin.\r
-# All subsequent arguments are the files to scan.\r
-#\r
-plugin.c: $(DISSECTOR_SRC)\r
-!IFDEF PYTHON\r
-       @echo Making plugin.c (using python)\r
-       @$(PYTHON) "../../tools/make-dissector-reg.py" . plugin $(DISSECTOR_SRC)\r
-!ELSE\r
-       @echo Making plugin.c (using sh)\r
-       @$(SH) ../../tools/make-dissector-reg . plugin $(DISSECTOR_SRC)\r
-!ENDIF\r
-\r
-!ENDIF\r
-\r
-clean:\r
-       rm -f $(OBJECTS) opcua.dll opcua.exp opcua.lib *.pdb\r
-\r
-distclean: clean\r
-\r
-maintainer-clean: distclean\r
+# Makefile.nmake
+# nmake file for OpcUa plugin
+#
+# $Id$
+#
+
+include ..\..\config.nmake
+
+############### no need to modify below this line #########
+
+include Makefile.common
+
+CFLAGS=/DHAVE_CONFIG_H /I../.. /I../../wiretap $(GLIB_CFLAGS) \
+       /I$(PCAP_DIR)\include -D_U_="" $(LOCAL_CFLAGS)
+
+LDFLAGS = /NOLOGO /INCREMENTAL:no /MACHINE:I386 $(LOCAL_LDFLAGS)
+
+!IFDEF ENABLE_LIBWIRESHARK
+LINK_PLUGIN_WITH=..\..\epan\libwireshark.lib ..\..\epan\dissectors\dissectors.lib
+CFLAGS=/DHAVE_WIN32_LIBWIRESHARK_LIB /D_NEED_VAR_IMPORT_ $(CFLAGS)
+
+DISSECTOR_OBJECTS = $(DISSECTOR_SRC:.c=.obj)
+
+OBJECTS=$(DISSECTOR_OBJECTS) plugin.obj
+
+opcua.dll opcua.exp opcua.lib : $(OBJECTS) $(LINK_PLUGIN_WITH) 
+       link -dll /out:opcua.dll $(LDFLAGS) $(OBJECTS) $(LINK_PLUGIN_WITH)  \
+       $(GLIB_LIBS)
+
+#
+# Build plugin.c, which contains the plugin version[] string, a
+# function plugin_register() that calls the register routines for all
+# protocols, and a function plugin_reg_handoff() that calls the handoff
+# registration routines for all protocols.
+#
+# We do this by scanning sources.  If that turns out to be too slow,
+# maybe we could just require every .o file to have an register routine
+# of a given name (packet-aarp.o -> proto_register_aarp, etc.).
+#
+# Formatting conventions:  The name of the proto_register_* routines an
+# proto_reg_handoff_* routines must start in column zero, or must be
+# preceded only by "void " starting in column zero, and must not be
+# inside #if.
+#
+# DISSECTOR_SRC is assumed to have all the files that need to be scanned.
+#
+# For some unknown reason, having a big "for" loop in the Makefile
+# to scan all the files doesn't work with some "make"s; they seem to
+# pass only the first few names in the list to the shell, for some
+# reason.
+#
+# Therefore, we have a script to generate the plugin.c file.
+# The shell script runs slowly, as multiple greps and seds are run
+# for each input file; this is especially slow on Windows.  Therefore,
+# if Python is present (as indicated by PYTHON being defined), we run
+# a faster Python script to do that work instead.
+#
+# The first argument is the directory in which the source files live.
+# The second argument is "plugin", to indicate that we should build
+# a plugin.c file for a plugin.
+# All subsequent arguments are the files to scan.
+#
+plugin.c: $(DISSECTOR_SRC)
+!IFDEF PYTHON
+       @echo Making plugin.c (using python)
+       @$(PYTHON) "../../tools/make-dissector-reg.py" . plugin $(DISSECTOR_SRC)
+!ELSE
+       @echo Making plugin.c (using sh)
+       @$(SH) ../../tools/make-dissector-reg . plugin $(DISSECTOR_SRC)
+!ENDIF
+
+!ENDIF
+
+clean:
+       rm -f $(OBJECTS) opcua.dll opcua.exp opcua.lib *.pdb
+
+distclean: clean
+
+maintainer-clean: distclean
index 40646bdf3de0f38c47ec49837ba2804561ca1ef6..d062bebe24232720cf2622b12159dadca4a3ac26 100644 (file)
@@ -1,58 +1,58 @@
-OpcUa Plugin:\r
-=============\r
-\r
-This plugin implements the dissection of the OpcUa Binary Protocol.\r
-Author: Gerhard Gappmeier\r
-        ascolab GmbH\r
-        http://www.ascolab.com\r
-       \r
-Overview:\r
-=========\r
-\r
-OpcUa (OPC Unified Architecture) is a vendor and platform independent\r
-protocol for automation technology. It is the successor of the\r
-COM/DCOM based specifications OPC DA, OPC Alarm & Events, OPC HDA, etc.\r
-It unifies all this technologies into a single protocol.\r
-\r
-The specification describes abstract services that are independent\r
-of the underlying protocol. For now there exist protocol mappings\r
-to a Binary TCP based protocol and a SOAP based Webservice.\r
-Also a hybrid version will be available where the Binary messages are transported\r
-by a single webservice command called "Invoke".\r
-\r
-More information about the technology you can find on\r
-http://www.ascolab.com/index.php?file=ua&lang=en.\r
-\r
-Protocol Mappings:\r
-==================\r
-\r
-Binary (TCP): The fastest and most flexible version (small footprint, no XML and SOAP necessary)\r
-              can easily be tunneled (SSH, IPSEC, etc.), redirected, ...\r
-SOAP version: Easy to implement with verious tools like .Net, JAVA, gSOAP, etc.\r
-              Better to communicate through firewalls via HTTP.\r
-SOAP with Binary Attchment: Combines the advantages of both.\r
-              The messages are encoded as Binary, and transported via SOAP as binary\r
-              attachment.\r
-\r
-The OPC Foundation offers a free Opc Ua stack implementation in ANSI C\r
-for all members. This stack implements the binary protocol as well\r
-as the SOAP version. It's easily portable to different kinds of operating\r
-systems from embedded devices to servers.\r
-This makes it easy to implement Opc Ua applications based on this stack\r
-and it is expected that the binary protocol will be the most used\r
-protocol.\r
-Nevertheless it's free to everbody to implement an own stack according\r
-to the specification. An own implementation of the SOAP version \r
-should be easy with the various SOAP toolkits.\r
-\r
-For more information see http://www.opcfoundation.org\r
-\r
-Known limitations:\r
-==================\r
-\r
-* In this version the security layer contains only dummy data.\r
-  The plugin decodes the transport layer, skips the security dummy data\r
-  and decodes the application layer.\r
-  Security implementation will follow when it has been implemented in the\r
-  Opc Ua stack. \r
-  \r
+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:
+==================
+
+* In this version the security layer contains only dummy data.
+  The plugin decodes the transport layer, skips the security dummy data
+  and decodes the application layer.
+  Security implementation will follow when it has been implemented in the
+  Opc Ua stack. 
+  
index 118adb73050ebb679988e53e4d03b826dd625381..bdcddac80524608b79f58bb5e5fe2bb83c31f3cb 100644 (file)
@@ -1,17 +1,17 @@
-/* Included *after* config.h, in order to re-define these macros */\r
-\r
-#ifdef PACKAGE\r
-#undef PACKAGE\r
-#endif\r
-\r
-/* Name of package */\r
-#define PACKAGE "opcua"\r
-\r
-\r
-#ifdef VERSION\r
-#undef VERSION\r
-#endif\r
-\r
-/* Version number of package */\r
-#define VERSION "0.0.1"\r
-\r
+/* Included *after* config.h, in order to re-define these macros */
+
+#ifdef PACKAGE
+#undef PACKAGE
+#endif
+
+/* Name of package */
+#define PACKAGE "opcua"
+
+
+#ifdef VERSION
+#undef VERSION
+#endif
+
+/* Version number of package */
+#define VERSION "0.0.1"
+
index 76be7b1591d98c61e25ada33b1b5e33db1236b57..7b9ac17afc0c1cb8bd3365deb75077fe71645716 100644 (file)
-/******************************************************************************\r
-** $Id: opcua.c,v 1.5 2007/02/08 11:29:45 gergap Exp $\r
-**\r
-** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved.\r
-** Web: http://www.ascolab.com\r
-** \r
-** This program is free software; you can redistribute it and/or\r
-** modify it under the terms of the GNU General Public License\r
-** as published by the Free Software Foundation; either version 2\r
-** of the License, or (at your option) any later version.\r
-** \r
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE\r
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.\r
-** \r
-** Project: OpcUa Wireshark Plugin\r
-**\r
-** Description: OpcUa Protocol Decoder.\r
-**\r
-** Author: Gerhard Gappmeier <gerhard.gappmeier@ascolab.com>\r
-** Last change by: $Author: gergap $\r
-**\r
-******************************************************************************/\r
-\r
-#ifdef HAVE_CONFIG_H\r
-# include "config.h"\r
-#endif\r
-\r
-#include <gmodule.h>\r
-#include <epan/packet.h>\r
-#include <epan/emem.h>\r
-#include <epan/dissectors/packet-tcp.h>\r
-#include <epan/prefs.h>\r
-#include "ua_transport_layer.h"\r
-#include "ua_security_layer.h"\r
-#include "ua_application_layer.h"\r
-#include "opcua_complextypeparser.h"\r
-#include "opcua_serviceparser.h"\r
-#include "opcua_enumparser.h"\r
-#include "opcua_simpletypes.h"\r
-#include "opcua_hfindeces.h"\r
-\r
-/* forward reference */\r
-void proto_register_opcua (void);\r
-void proto_reg_handoff_opcua (void);\r
-static void dissect_opcua(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);\r
-static void dissect_opcua_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);\r
-\r
-/* declare parse function pointer */\r
-typedef void (*FctParse)(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);\r
-\r
-static int proto_opcua = -1;\r
-/** Official IANA registered port for OPC UA Binary Protocol. */\r
-static int global_opcua_port = 4840;\r
-static dissector_handle_t opcua_handle;\r
-\r
-/** subtree types */\r
-gint ett_opcua_transport = -1;\r
-gint ett_opcua_extensionobject = -1;\r
-gint ett_opcua_nodeid = -1;\r
-\r
-/** OpcUa Transport Message Types */\r
-enum MessageType\r
-{\r
-    MSG_HELLO = 0,\r
-    MSG_ACKNOWLEDGE,\r
-    MSG_DISCONNECT,\r
-    MSG_DATA_LAST_CHUNK,\r
-    MSG_DATA,\r
-    MSG_ABORT,\r
-    MSG_ERROR,\r
-    MSG_INVALID,\r
-    MSG_UNKNOWN\r
-};\r
-\r
-/** OpcUa Transport Message Type Names */\r
-static char* g_szMessageTypes[] =\r
-{\r
-    "Hello message",\r
-    "Acknowledge message",\r
-    "Disconnect message",\r
-    "Data message, last chunk in message.",\r
-    "Data message, further chunks must follow.",\r
-    "Abort message",\r
-    "Error message",\r
-    "Invalid message",\r
-    "Unknown message"\r
-};\r
-\r
-\r
-/** Setup protocol subtree array */\r
-static gint *ett[] =\r
-{\r
-    &ett_opcua_transport,\r
-    &ett_opcua_extensionobject,\r
-    &ett_opcua_nodeid,\r
-};\r
-\r
-/** plugin entry functions.\r
- * This registers the OpcUa protocol.\r
- */\r
-void proto_register_opcua(void)\r
-{\r
-    module_t *opcua_module;\r
-    \r
-    if (proto_opcua == -1)\r
-    {\r
-        proto_opcua = proto_register_protocol(\r
-            "OpcUa Binary Protocol", /* name */\r
-            "OpcUa",                 /* short name */\r
-            "opcua"                  /* abbrev */\r
-            );\r
-    }\r
-    opcua_module = prefs_register_protocol(proto_opcua, proto_reg_handoff_opcua);\r
-    \r
-    registerTransportLayerTypes(proto_opcua);\r
-    registerSecurityLayerTypes(proto_opcua);\r
-    registerApplicationLayerTypes(proto_opcua);\r
-    registerSimpleTypes(proto_opcua);\r
-    registerEnumTypes(proto_opcua);\r
-    registerComplexTypes();\r
-    registerServiceTypes();\r
-    registerFieldTypes(proto_opcua);\r
-\r
-    proto_register_subtree_array(ett, array_length(ett));    \r
-}\r
-\r
-/** Register sub protocol. \r
-  * For TCP port 4840.\r
-  */\r
-void proto_reg_handoff_opcua(void)\r
-{\r
-    static int Initialized=FALSE;\r
-    \r
-    if (!Initialized)\r
-    {\r
-        opcua_handle = create_dissector_handle(dissect_opcua, proto_opcua);\r
-        dissector_add("tcp.port", global_opcua_port, opcua_handle);\r
-    }\r
-}\r
-\r
-/** header length that is needed to compute\r
-  * the pdu length.\r
-  * @see get_opcua_message_len\r
-  */\r
-#define FRAME_HEADER_LEN 8\r
-\r
-/** returns the length of an OpcUa message.\r
-  * This function reads the length information from\r
-  * the transport header.\r
-  */\r
-static guint get_opcua_message_len(packet_info *pinfo, tvbuff_t *tvb, int offset)\r
-{\r
-    gint32 plen;\r
-\r
-    /* the message length starts at offset 4 */\r
-    plen = tvb_get_letohl(tvb, offset + 4);\r
-\r
-    return plen;\r
-}\r
-\r
-/** The main OpcUa dissector functions.\r
-  * It uses tcp_dissect_pdus from packet-tcp.h\r
-  * to reassemble the TCP data.\r
-  */\r
-static void dissect_opcua(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)\r
-{\r
-    tcp_dissect_pdus(tvb, pinfo, tree, TRUE, FRAME_HEADER_LEN,\r
-      get_opcua_message_len, dissect_opcua_message);\r
-}\r
-\r
-/** The OpcUa message dissector.\r
-  * This method dissects full OpcUa messages.\r
-  * It gets only called with reassembled data\r
-  * from tcp_dissect_pdus.\r
-  */\r
-static void dissect_opcua_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)\r
-{\r
-    FctParse pfctParse = NULL;\r
-    enum MessageType msgtype = MSG_INVALID;\r
-\r
-    if (check_col(pinfo->cinfo, COL_PROTOCOL))\r
-    {\r
-        col_set_str(pinfo->cinfo, COL_PROTOCOL, "OpcUa");\r
-    }\r
-\r
-    /* parse message type */\r
-    if (tvb->real_data[0] == 'U' && tvb->real_data[1] == 'A')\r
-    {\r
-        if (tvb->real_data[2] == 'T')\r
-        {\r
-            switch(tvb->real_data[3])\r
-            {\r
-            case 'H': msgtype = MSG_HELLO;\r
-                pfctParse = parseHello;\r
-                break;\r
-            case 'A': msgtype = MSG_ACKNOWLEDGE;\r
-                pfctParse = parseAcknowledge;\r
-                break;\r
-            case 'D': msgtype = MSG_DISCONNECT;\r
-                pfctParse = parseDisconnect;\r
-                break;\r
-            default: msgtype = MSG_INVALID;\r
-                break;\r
-            }                \r
-        }\r
-        else if (tvb->real_data[2] == 'M')\r
-        {\r
-            switch(tvb->real_data[3])\r
-            {\r
-            case 'G': msgtype = MSG_DATA_LAST_CHUNK;\r
-                pfctParse = parseData;\r
-                break;\r
-            case 'C': msgtype = MSG_DATA;\r
-                pfctParse = parseData;\r
-                break;\r
-            case 'A': msgtype = MSG_ABORT;\r
-                pfctParse = parseAbort;\r
-                break;\r
-            case 'E': msgtype = MSG_ERROR;\r
-                pfctParse = parseError;\r
-                break;\r
-            default: msgtype = MSG_INVALID;\r
-                break;\r
-            }                \r
-        }\r
-    }\r
-    else\r
-    {\r
-        msgtype = MSG_UNKNOWN;\r
-    }\r
-\r
-    /* Clear out stuff in the info column */\r
-    if(check_col(pinfo->cinfo, COL_INFO))\r
-    {\r
-        col_set_str(pinfo->cinfo, COL_INFO, g_szMessageTypes[msgtype]);\r
-    }\r
-\r
-    if (tree && pfctParse)\r
-    {\r
-        gint offset = 0;\r
-\r
-        /* we are being asked for details */\r
-        proto_item *ti = NULL;\r
-        proto_tree *transport_tree = NULL;\r
-\r
-        ti = proto_tree_add_item(tree, proto_opcua, tvb, 0, -1, FALSE);\r
-        transport_tree = proto_item_add_subtree(ti, ett_opcua_transport);\r
-\r
-        /* call the transport message dissector */\r
-        (*pfctParse)(transport_tree, tvb, &offset);\r
-\r
-    }\r
-}    \r
-\r
-\r
+/******************************************************************************
+** $Id$
+**
+** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved.
+** Web: http://www.ascolab.com
+** 
+** This program is free software; you can redistribute it and/or
+** modify it under the terms of the GNU General Public License
+** as published by the Free Software Foundation; either version 2
+** of the License, or (at your option) any later version.
+** 
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+** 
+** Project: OpcUa Wireshark Plugin
+**
+** Description: OpcUa Protocol Decoder.
+**
+** Author: Gerhard Gappmeier <gerhard.gappmeier@ascolab.com>
+** Last change by: $Author: gergap $
+**
+******************************************************************************/
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <gmodule.h>
+#include <epan/packet.h>
+#include <epan/emem.h>
+#include <epan/dissectors/packet-tcp.h>
+#include <epan/prefs.h>
+#include "ua_transport_layer.h"
+#include "ua_security_layer.h"
+#include "ua_application_layer.h"
+#include "opcua_complextypeparser.h"
+#include "opcua_serviceparser.h"
+#include "opcua_enumparser.h"
+#include "opcua_simpletypes.h"
+#include "opcua_hfindeces.h"
+
+/* forward reference */
+void proto_register_opcua (void);
+void proto_reg_handoff_opcua (void);
+static void dissect_opcua(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
+static void dissect_opcua_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
+
+/* declare parse function pointer */
+typedef void (*FctParse)(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
+
+static int proto_opcua = -1;
+/** Official IANA registered port for OPC UA Binary Protocol. */
+static int global_opcua_port = 4840;
+static dissector_handle_t opcua_handle;
+
+/** subtree types */
+gint ett_opcua_transport = -1;
+gint ett_opcua_extensionobject = -1;
+gint ett_opcua_nodeid = -1;
+
+/** OpcUa Transport Message Types */
+enum MessageType
+{
+    MSG_HELLO = 0,
+    MSG_ACKNOWLEDGE,
+    MSG_DISCONNECT,
+    MSG_DATA_LAST_CHUNK,
+    MSG_DATA,
+    MSG_ABORT,
+    MSG_ERROR,
+    MSG_INVALID,
+    MSG_UNKNOWN
+};
+
+/** OpcUa Transport Message Type Names */
+static char* g_szMessageTypes[] =
+{
+    "Hello message",
+    "Acknowledge message",
+    "Disconnect message",
+    "Data message, last chunk in message.",
+    "Data message, further chunks must follow.",
+    "Abort message",
+    "Error message",
+    "Invalid message",
+    "Unknown message"
+};
+
+
+/** Setup protocol subtree array */
+static gint *ett[] =
+{
+    &ett_opcua_transport,
+    &ett_opcua_extensionobject,
+    &ett_opcua_nodeid,
+};
+
+/** plugin entry functions.
+ * This registers the OpcUa protocol.
+ */
+void proto_register_opcua(void)
+{
+    module_t *opcua_module;
+    
+    if (proto_opcua == -1)
+    {
+        proto_opcua = proto_register_protocol(
+            "OpcUa Binary Protocol", /* name */
+            "OpcUa",                 /* short name */
+            "opcua"                  /* abbrev */
+            );
+    }
+    opcua_module = prefs_register_protocol(proto_opcua, proto_reg_handoff_opcua);
+    
+    registerTransportLayerTypes(proto_opcua);
+    registerSecurityLayerTypes(proto_opcua);
+    registerApplicationLayerTypes(proto_opcua);
+    registerSimpleTypes(proto_opcua);
+    registerEnumTypes(proto_opcua);
+    registerComplexTypes();
+    registerServiceTypes();
+    registerFieldTypes(proto_opcua);
+
+    proto_register_subtree_array(ett, array_length(ett));    
+}
+
+/** Register sub protocol. 
+  * For TCP port 4840.
+  */
+void proto_reg_handoff_opcua(void)
+{
+    static int Initialized=FALSE;
+    
+    if (!Initialized)
+    {
+        opcua_handle = create_dissector_handle(dissect_opcua, proto_opcua);
+        dissector_add("tcp.port", global_opcua_port, opcua_handle);
+    }
+}
+
+/** header length that is needed to compute
+  * the pdu length.
+  * @see get_opcua_message_len
+  */
+#define FRAME_HEADER_LEN 8
+
+/** returns the length of an OpcUa message.
+  * This function reads the length information from
+  * the transport header.
+  */
+static guint get_opcua_message_len(packet_info *pinfo, tvbuff_t *tvb, int offset)
+{
+    gint32 plen;
+
+    /* the message length starts at offset 4 */
+    plen = tvb_get_letohl(tvb, offset + 4);
+
+    return plen;
+}
+
+/** The main OpcUa dissector functions.
+  * It uses tcp_dissect_pdus from packet-tcp.h
+  * to reassemble the TCP data.
+  */
+static void dissect_opcua(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+    tcp_dissect_pdus(tvb, pinfo, tree, TRUE, FRAME_HEADER_LEN,
+      get_opcua_message_len, dissect_opcua_message);
+}
+
+/** The OpcUa message dissector.
+  * This method dissects full OpcUa messages.
+  * It gets only called with reassembled data
+  * from tcp_dissect_pdus.
+  */
+static void dissect_opcua_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+    FctParse pfctParse = NULL;
+    enum MessageType msgtype = MSG_INVALID;
+
+    if (check_col(pinfo->cinfo, COL_PROTOCOL))
+    {
+        col_set_str(pinfo->cinfo, COL_PROTOCOL, "OpcUa");
+    }
+
+    /* parse message type */
+    if (tvb->real_data[0] == 'U' && tvb->real_data[1] == 'A')
+    {
+        if (tvb->real_data[2] == 'T')
+        {
+            switch(tvb->real_data[3])
+            {
+            case 'H': msgtype = MSG_HELLO;
+                pfctParse = parseHello;
+                break;
+            case 'A': msgtype = MSG_ACKNOWLEDGE;
+                pfctParse = parseAcknowledge;
+                break;
+            case 'D': msgtype = MSG_DISCONNECT;
+                pfctParse = parseDisconnect;
+                break;
+            default: msgtype = MSG_INVALID;
+                break;
+            }                
+        }
+        else if (tvb->real_data[2] == 'M')
+        {
+            switch(tvb->real_data[3])
+            {
+            case 'G': msgtype = MSG_DATA_LAST_CHUNK;
+                pfctParse = parseData;
+                break;
+            case 'C': msgtype = MSG_DATA;
+                pfctParse = parseData;
+                break;
+            case 'A': msgtype = MSG_ABORT;
+                pfctParse = parseAbort;
+                break;
+            case 'E': msgtype = MSG_ERROR;
+                pfctParse = parseError;
+                break;
+            default: msgtype = MSG_INVALID;
+                break;
+            }                
+        }
+    }
+    else
+    {
+        msgtype = MSG_UNKNOWN;
+    }
+
+    /* Clear out stuff in the info column */
+    if(check_col(pinfo->cinfo, COL_INFO))
+    {
+        col_set_str(pinfo->cinfo, COL_INFO, g_szMessageTypes[msgtype]);
+    }
+
+    if (tree && pfctParse)
+    {
+        gint offset = 0;
+
+        /* we are being asked for details */
+        proto_item *ti = NULL;
+        proto_tree *transport_tree = NULL;
+
+        ti = proto_tree_add_item(tree, proto_opcua, tvb, 0, -1, FALSE);
+        transport_tree = proto_item_add_subtree(ti, ett_opcua_transport);
+
+        /* call the transport message dissector */
+        (*pfctParse)(transport_tree, tvb, &offset);
+
+    }
+}    
+
+
index 6723353f89b3c0208b0d736dfd40722141d97e28..cffedb312b96a50643b848bbd508edc4989e8790 100644 (file)
 #include "opcua_simpletypes.h"
 #include "opcua_hfindeces.h"
 
-\r
-gint ett_opcua_ReferenceNode = -1;\r
-void parseReferenceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReferenceNode", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReferenceNode);\r
+
+gint ett_opcua_ReferenceNode = -1;
+void parseReferenceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReferenceNode", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReferenceNode);
 
   parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId");
   parseBoolean(subtree, tvb, pOffset, hf_opcua_IsInverse);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_ServerIndex);
-  parseExpandedNodeId(subtree, tvb, pOffset, "TargetId");\r
-}\r
-\r
-gint ett_opcua_Node = -1;\r
-void parseNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : Node", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_Node);\r
+  parseExpandedNodeId(subtree, tvb, pOffset, "TargetId");
+}
+
+gint ett_opcua_Node = -1;
+void parseNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : Node", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_Node);
 
   parseNodeId(subtree, tvb, pOffset, "NodeId");
   parseInt32(subtree, tvb, pOffset, hf_opcua_NodeClass);
   parseQualifiedName(subtree, tvb, pOffset, "BrowseName");
   parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
   parseLocalizedText(subtree, tvb, pOffset, "Description");
-  parseArrayComplex(subtree, tvb, pOffset, "References", parseReferenceNode);\r
-}\r
-\r
-gint ett_opcua_ObjectNode = -1;\r
-void parseObjectNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ObjectNode", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ObjectNode);\r
+  parseArrayComplex(subtree, tvb, pOffset, "References", parseReferenceNode);
+}
+
+gint ett_opcua_ObjectNode = -1;
+void parseObjectNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ObjectNode", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ObjectNode);
   /* parse base class members */ 
   parseNode(subtree, tvb, pOffset, "[Node]");
   /* parse additional members */
-  parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier);\r
-}\r
-\r
-gint ett_opcua_ObjectTypeNode = -1;\r
-void parseObjectTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ObjectTypeNode", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ObjectTypeNode);\r
+  parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier);
+}
+
+gint ett_opcua_ObjectTypeNode = -1;
+void parseObjectTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ObjectTypeNode", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ObjectTypeNode);
   /* parse base class members */ 
   parseNode(subtree, tvb, pOffset, "[Node]");
   /* parse additional members */
-  parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);\r
-}\r
-\r
-gint ett_opcua_VariableNode = -1;\r
-void parseVariableNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : VariableNode", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_VariableNode);\r
+  parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);
+}
+
+gint ett_opcua_VariableNode = -1;
+void parseVariableNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : VariableNode", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_VariableNode);
   /* parse base class members */ 
   parseNode(subtree, tvb, pOffset, "[Node]");
   /* parse additional members */
@@ -95,119 +95,119 @@ void parseVariableNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szF
   parseByte(subtree, tvb, pOffset, hf_opcua_AccessLevel);
   parseByte(subtree, tvb, pOffset, hf_opcua_UserAccessLevel);
   parseInt32(subtree, tvb, pOffset, hf_opcua_MinimumSamplingInterval);
-  parseBoolean(subtree, tvb, pOffset, hf_opcua_Historizing);\r
-}\r
-\r
-gint ett_opcua_VariableTypeNode = -1;\r
-void parseVariableTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : VariableTypeNode", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_VariableTypeNode);\r
+  parseBoolean(subtree, tvb, pOffset, hf_opcua_Historizing);
+}
+
+gint ett_opcua_VariableTypeNode = -1;
+void parseVariableTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : VariableTypeNode", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_VariableTypeNode);
   /* parse base class members */ 
   parseNode(subtree, tvb, pOffset, "[Node]");
   /* parse additional members */
   parseVariant(subtree, tvb, pOffset, "Value");
   parseNodeId(subtree, tvb, pOffset, "DataType");
   parseInt32(subtree, tvb, pOffset, hf_opcua_ArraySize);
-  parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);\r
-}\r
-\r
-gint ett_opcua_ReferenceTypeNode = -1;\r
-void parseReferenceTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReferenceTypeNode", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReferenceTypeNode);\r
+  parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);
+}
+
+gint ett_opcua_ReferenceTypeNode = -1;
+void parseReferenceTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReferenceTypeNode", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReferenceTypeNode);
   /* parse base class members */ 
   parseNode(subtree, tvb, pOffset, "[Node]");
   /* parse additional members */
   parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);
   parseBoolean(subtree, tvb, pOffset, hf_opcua_Symmetric);
-  parseLocalizedText(subtree, tvb, pOffset, "InverseName");\r
-}\r
-\r
-gint ett_opcua_MethodNode = -1;\r
-void parseMethodNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MethodNode", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MethodNode);\r
+  parseLocalizedText(subtree, tvb, pOffset, "InverseName");
+}
+
+gint ett_opcua_MethodNode = -1;
+void parseMethodNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MethodNode", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MethodNode);
   /* parse base class members */ 
   parseNode(subtree, tvb, pOffset, "[Node]");
   /* parse additional members */
   parseBoolean(subtree, tvb, pOffset, hf_opcua_Executable);
-  parseBoolean(subtree, tvb, pOffset, hf_opcua_UserExecutable);\r
-}\r
-\r
-gint ett_opcua_ViewNode = -1;\r
-void parseViewNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ViewNode", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ViewNode);\r
+  parseBoolean(subtree, tvb, pOffset, hf_opcua_UserExecutable);
+}
+
+gint ett_opcua_ViewNode = -1;
+void parseViewNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ViewNode", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ViewNode);
   /* parse base class members */ 
   parseNode(subtree, tvb, pOffset, "[Node]");
   /* parse additional members */
   parseBoolean(subtree, tvb, pOffset, hf_opcua_ContainsNoLoops);
-  parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier);\r
-}\r
-\r
-gint ett_opcua_DataTypeNode = -1;\r
-void parseDataTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DataTypeNode", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DataTypeNode);\r
+  parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier);
+}
+
+gint ett_opcua_DataTypeNode = -1;
+void parseDataTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DataTypeNode", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DataTypeNode);
   /* parse base class members */ 
   parseNode(subtree, tvb, pOffset, "[Node]");
   /* parse additional members */
-  parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);\r
-}\r
-\r
-gint ett_opcua_UriTableEntry = -1;\r
-void parseUriTableEntry(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : UriTableEntry", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UriTableEntry);\r
+  parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);
+}
+
+gint ett_opcua_UriTableEntry = -1;
+void parseUriTableEntry(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : UriTableEntry", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UriTableEntry);
 
   parseUInt32(subtree, tvb, pOffset, hf_opcua_Index);
-  parseString(subtree, tvb, pOffset, hf_opcua_Uri);\r
-}\r
-\r
-gint ett_opcua_NodeSet = -1;\r
-void parseNodeSet(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : NodeSet", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_NodeSet);\r
+  parseString(subtree, tvb, pOffset, hf_opcua_Uri);
+}
+
+gint ett_opcua_NodeSet = -1;
+void parseNodeSet(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : NodeSet", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_NodeSet);
 
   parseArrayComplex(subtree, tvb, pOffset, "NamespaceUris", parseUriTableEntry);
   parseArrayComplex(subtree, tvb, pOffset, "ServerUris", parseUriTableEntry);
-  parseArrayComplex(subtree, tvb, pOffset, "Nodes", parseExtensionObject);\r
-}\r
-\r
-gint ett_opcua_Argument = -1;\r
-void parseArgument(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : Argument", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_Argument);\r
+  parseArrayComplex(subtree, tvb, pOffset, "Nodes", parseExtensionObject);
+}
+
+gint ett_opcua_Argument = -1;
+void parseArgument(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : Argument", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_Argument);
 
   parseString(subtree, tvb, pOffset, hf_opcua_Name);
   parseNodeId(subtree, tvb, pOffset, "DataType");
   parseInt32(subtree, tvb, pOffset, hf_opcua_ArraySize);
-  parseLocalizedText(subtree, tvb, pOffset, "Description");\r
-}\r
-\r
-gint ett_opcua_Status = -1;\r
-void parseStatus(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : Status", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_Status);\r
+  parseLocalizedText(subtree, tvb, pOffset, "Description");
+}
+
+gint ett_opcua_Status = -1;
+void parseStatus(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : Status", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_Status);
 
   parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
-  parseDiagnosticInfo(subtree, tvb, pOffset, "DiagnosticInfo");\r
-}\r
-\r
-gint ett_opcua_BaseEvent = -1;\r
-void parseBaseEvent(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BaseEvent", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BaseEvent);\r
+  parseDiagnosticInfo(subtree, tvb, pOffset, "DiagnosticInfo");
+}
+
+gint ett_opcua_BaseEvent = -1;
+void parseBaseEvent(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BaseEvent", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BaseEvent);
 
   parseByteString(subtree, tvb, pOffset, hf_opcua_EventId);
   parseNodeId(subtree, tvb, pOffset, "EventType");
@@ -216,14 +216,14 @@ void parseBaseEvent(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFiel
   parseDateTime(subtree, tvb, pOffset, hf_opcua_Time);
   parseDateTime(subtree, tvb, pOffset, hf_opcua_ReceiveTime);
   parseLocalizedText(subtree, tvb, pOffset, "Message");
-  parseUInt16(subtree, tvb, pOffset, hf_opcua_Severity);\r
-}\r
-\r
-gint ett_opcua_SecurityPolicy = -1;\r
-void parseSecurityPolicy(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SecurityPolicy", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SecurityPolicy);\r
+  parseUInt16(subtree, tvb, pOffset, hf_opcua_Severity);
+}
+
+gint ett_opcua_SecurityPolicy = -1;
+void parseSecurityPolicy(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SecurityPolicy", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SecurityPolicy);
 
   parseString(subtree, tvb, pOffset, hf_opcua_Uri);
   parseString(subtree, tvb, pOffset, hf_opcua_Digest);
@@ -238,37 +238,37 @@ void parseSecurityPolicy(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *s
   parseUInt32(subtree, tvb, pOffset, hf_opcua_MaximumAsymmetricKeyLength);
   parseString(subtree, tvb, pOffset, hf_opcua_DerivedKey);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_DerivedEncryptionKeyLength);
-  parseUInt32(subtree, tvb, pOffset, hf_opcua_DerivedSignatureKeyLength);\r
-}\r
-\r
-gint ett_opcua_UserTokenPolicy = -1;\r
-void parseUserTokenPolicy(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : UserTokenPolicy", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UserTokenPolicy);\r
+  parseUInt32(subtree, tvb, pOffset, hf_opcua_DerivedSignatureKeyLength);
+}
+
+gint ett_opcua_UserTokenPolicy = -1;
+void parseUserTokenPolicy(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : UserTokenPolicy", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UserTokenPolicy);
 
   parseUserTokenType(subtree, tvb, pOffset);
   parseString(subtree, tvb, pOffset, hf_opcua_IssuerType);
-  parseString(subtree, tvb, pOffset, hf_opcua_IssuerUrl);\r
-}\r
-\r
-gint ett_opcua_ServerDescription = -1;\r
-void parseServerDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ServerDescription", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ServerDescription);\r
+  parseString(subtree, tvb, pOffset, hf_opcua_IssuerUrl);
+}
+
+gint ett_opcua_ServerDescription = -1;
+void parseServerDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ServerDescription", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ServerDescription);
 
   parseServerDescriptionType(subtree, tvb, pOffset);
   parseString(subtree, tvb, pOffset, hf_opcua_ServerUri);
   parseLocalizedText(subtree, tvb, pOffset, "ServerName");
-  parseArraySimple(subtree, tvb, pOffset, hf_opcua_DiscoveryUrls, parseString);\r
-}\r
-\r
-gint ett_opcua_EndpointDescription = -1;\r
-void parseEndpointDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EndpointDescription", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EndpointDescription);\r
+  parseArraySimple(subtree, tvb, pOffset, hf_opcua_DiscoveryUrls, parseString);
+}
+
+gint ett_opcua_EndpointDescription = -1;
+void parseEndpointDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EndpointDescription", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EndpointDescription);
 
   parseServerDescription(subtree, tvb, pOffset, "Server");
   parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl);
@@ -276,96 +276,96 @@ void parseEndpointDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, ch
   parseMessageSecurityMode(subtree, tvb, pOffset);
   parseString(subtree, tvb, pOffset, hf_opcua_SecurityPolicyUri);
   parseArrayComplex(subtree, tvb, pOffset, "UserIdentityTokens", parseUserTokenPolicy);
-  parseArraySimple(subtree, tvb, pOffset, hf_opcua_SupportedProfiles, parseString);\r
-}\r
-\r
-gint ett_opcua_EndpointConfiguration = -1;\r
-void parseEndpointConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EndpointConfiguration", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EndpointConfiguration);\r
+  parseArraySimple(subtree, tvb, pOffset, hf_opcua_SupportedProfiles, parseString);
+}
+
+gint ett_opcua_EndpointConfiguration = -1;
+void parseEndpointConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EndpointConfiguration", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EndpointConfiguration);
 
   parseInt32(subtree, tvb, pOffset, hf_opcua_SendTimeout);
   parseInt32(subtree, tvb, pOffset, hf_opcua_OperationTimeout);
   parseBoolean(subtree, tvb, pOffset, hf_opcua_UseBinaryEncoding);
   parseInt32(subtree, tvb, pOffset, hf_opcua_MaxMessageSize);
   parseInt32(subtree, tvb, pOffset, hf_opcua_MaxArrayLength);
-  parseInt32(subtree, tvb, pOffset, hf_opcua_MaxStringLength);\r
-}\r
-\r
-gint ett_opcua_UserIdentityToken = -1;\r
-void parseUserIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : UserIdentityToken", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UserIdentityToken);\r
\r
-}\r
-\r
-gint ett_opcua_UserNameIdentityToken = -1;\r
-void parseUserNameIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : UserNameIdentityToken", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UserNameIdentityToken);\r
+  parseInt32(subtree, tvb, pOffset, hf_opcua_MaxStringLength);
+}
+
+gint ett_opcua_UserIdentityToken = -1;
+void parseUserIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : UserIdentityToken", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UserIdentityToken);
+}
+
+gint ett_opcua_UserNameIdentityToken = -1;
+void parseUserNameIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : UserNameIdentityToken", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UserNameIdentityToken);
   /* parse base class members */ 
   parseUserIdentityToken(subtree, tvb, pOffset, "[UserIdentityToken]");
   /* parse additional members */
   parseString(subtree, tvb, pOffset, hf_opcua_UserName);
   parseString(subtree, tvb, pOffset, hf_opcua_Password);
-  parseString(subtree, tvb, pOffset, hf_opcua_HashAlgorithm);\r
-}\r
-\r
-gint ett_opcua_X509IdentityToken = -1;\r
-void parseX509IdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : X509IdentityToken", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_X509IdentityToken);\r
+  parseString(subtree, tvb, pOffset, hf_opcua_HashAlgorithm);
+}
+
+gint ett_opcua_X509IdentityToken = -1;
+void parseX509IdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : X509IdentityToken", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_X509IdentityToken);
   /* parse base class members */ 
   parseUserIdentityToken(subtree, tvb, pOffset, "[UserIdentityToken]");
   /* parse additional members */
-  parseByteString(subtree, tvb, pOffset, hf_opcua_CertificateData);\r
-}\r
-\r
-gint ett_opcua_WssIdentityToken = -1;\r
-void parseWssIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : WssIdentityToken", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_WssIdentityToken);\r
+  parseByteString(subtree, tvb, pOffset, hf_opcua_CertificateData);
+}
+
+gint ett_opcua_WssIdentityToken = -1;
+void parseWssIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : WssIdentityToken", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_WssIdentityToken);
   /* parse base class members */ 
   parseUserIdentityToken(subtree, tvb, pOffset, "[UserIdentityToken]");
   /* parse additional members */
-  parseXmlElement(subtree, tvb, pOffset, hf_opcua_TokenData);\r
-}\r
-\r
-gint ett_opcua_SupportedProfile = -1;\r
-void parseSupportedProfile(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SupportedProfile", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SupportedProfile);\r
+  parseXmlElement(subtree, tvb, pOffset, hf_opcua_TokenData);
+}
+
+gint ett_opcua_SupportedProfile = -1;
+void parseSupportedProfile(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SupportedProfile", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SupportedProfile);
 
   parseString(subtree, tvb, pOffset, hf_opcua_ProfileUri);
   parseString(subtree, tvb, pOffset, hf_opcua_ProfileName);
-  parseComplianceLevel(subtree, tvb, pOffset);\r
-}\r
-\r
-gint ett_opcua_BuildInfo = -1;\r
-void parseBuildInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BuildInfo", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BuildInfo);\r
+  parseComplianceLevel(subtree, tvb, pOffset);
+}
+
+gint ett_opcua_BuildInfo = -1;
+void parseBuildInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BuildInfo", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BuildInfo);
 
   parseString(subtree, tvb, pOffset, hf_opcua_ApplicationUri);
   parseString(subtree, tvb, pOffset, hf_opcua_ManufacturerName);
   parseString(subtree, tvb, pOffset, hf_opcua_ApplicationName);
   parseString(subtree, tvb, pOffset, hf_opcua_SoftwareVersion);
   parseString(subtree, tvb, pOffset, hf_opcua_BuildNumber);
-  parseDateTime(subtree, tvb, pOffset, hf_opcua_BuildDate);\r
-}\r
-\r
-gint ett_opcua_SoftwareCertificate = -1;\r
-void parseSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SoftwareCertificate", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SoftwareCertificate);\r
+  parseDateTime(subtree, tvb, pOffset, hf_opcua_BuildDate);
+}
+
+gint ett_opcua_SoftwareCertificate = -1;
+void parseSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SoftwareCertificate", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SoftwareCertificate);
 
   parseBuildInfo(subtree, tvb, pOffset, "ServerInfo");
   parseString(subtree, tvb, pOffset, hf_opcua_IssuedBy);
@@ -374,56 +374,56 @@ void parseSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, ch
   parseByteString(subtree, tvb, pOffset, hf_opcua_ApplicationCertificate);
   parseString(subtree, tvb, pOffset, hf_opcua_IssuerCertificateThumbprint);
   parseString(subtree, tvb, pOffset, hf_opcua_IssuerSignatureAlgorithm);
-  parseArrayComplex(subtree, tvb, pOffset, "SupportedProfiles", parseSupportedProfile);\r
-}\r
-\r
-gint ett_opcua_SignedSoftwareCertificate = -1;\r
-void parseSignedSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SignedSoftwareCertificate", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SignedSoftwareCertificate);\r
+  parseArrayComplex(subtree, tvb, pOffset, "SupportedProfiles", parseSupportedProfile);
+}
+
+gint ett_opcua_SignedSoftwareCertificate = -1;
+void parseSignedSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SignedSoftwareCertificate", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SignedSoftwareCertificate);
 
   parseByteString(subtree, tvb, pOffset, hf_opcua_CertificateData);
-  parseByteString(subtree, tvb, pOffset, hf_opcua_IssuerSignature);\r
-}\r
-\r
-gint ett_opcua_NodeAttributes = -1;\r
-void parseNodeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : NodeAttributes", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_NodeAttributes);\r
+  parseByteString(subtree, tvb, pOffset, hf_opcua_IssuerSignature);
+}
+
+gint ett_opcua_NodeAttributes = -1;
+void parseNodeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : NodeAttributes", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_NodeAttributes);
 
   parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
-  parseLocalizedText(subtree, tvb, pOffset, "Description");\r
-}\r
-\r
-gint ett_opcua_ObjectAttributes = -1;\r
-void parseObjectAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ObjectAttributes", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ObjectAttributes);\r
+  parseLocalizedText(subtree, tvb, pOffset, "Description");
+}
+
+gint ett_opcua_ObjectAttributes = -1;
+void parseObjectAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ObjectAttributes", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ObjectAttributes);
   /* parse base class members */ 
   parseNodeAttributes(subtree, tvb, pOffset, "[NodeAttributes]");
   /* parse additional members */
-  parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier);\r
-}\r
-\r
-gint ett_opcua_ObjectTypeAttributes = -1;\r
-void parseObjectTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ObjectTypeAttributes", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ObjectTypeAttributes);\r
+  parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier);
+}
+
+gint ett_opcua_ObjectTypeAttributes = -1;
+void parseObjectTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ObjectTypeAttributes", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ObjectTypeAttributes);
   /* parse base class members */ 
   parseNodeAttributes(subtree, tvb, pOffset, "[NodeAttributes]");
   /* parse additional members */
-  parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);\r
-}\r
-\r
-gint ett_opcua_VariableAttributes = -1;\r
-void parseVariableAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : VariableAttributes", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_VariableAttributes);\r
+  parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);
+}
+
+gint ett_opcua_VariableAttributes = -1;
+void parseVariableAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : VariableAttributes", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_VariableAttributes);
   /* parse base class members */ 
   parseNodeAttributes(subtree, tvb, pOffset, "[NodeAttributes]");
   /* parse additional members */
@@ -433,65 +433,65 @@ void parseVariableAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cha
   parseByte(subtree, tvb, pOffset, hf_opcua_AccessLevel);
   parseByte(subtree, tvb, pOffset, hf_opcua_UserAccessLevel);
   parseInt32(subtree, tvb, pOffset, hf_opcua_MinimumSamplingInterval);
-  parseBoolean(subtree, tvb, pOffset, hf_opcua_Historizing);\r
-}\r
-\r
-gint ett_opcua_VariableTypeAttributes = -1;\r
-void parseVariableTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : VariableTypeAttributes", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_VariableTypeAttributes);\r
+  parseBoolean(subtree, tvb, pOffset, hf_opcua_Historizing);
+}
+
+gint ett_opcua_VariableTypeAttributes = -1;
+void parseVariableTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : VariableTypeAttributes", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_VariableTypeAttributes);
   /* parse base class members */ 
   parseNodeAttributes(subtree, tvb, pOffset, "[NodeAttributes]");
   /* parse additional members */
   parseVariant(subtree, tvb, pOffset, "Value");
   parseNodeId(subtree, tvb, pOffset, "DataType");
   parseInt32(subtree, tvb, pOffset, hf_opcua_ArraySize);
-  parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);\r
-}\r
-\r
-gint ett_opcua_ReferenceTypeAttributes = -1;\r
-void parseReferenceTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReferenceTypeAttributes", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReferenceTypeAttributes);\r
+  parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);
+}
+
+gint ett_opcua_ReferenceTypeAttributes = -1;
+void parseReferenceTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReferenceTypeAttributes", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReferenceTypeAttributes);
   /* parse base class members */ 
   parseNodeAttributes(subtree, tvb, pOffset, "[NodeAttributes]");
   /* parse additional members */
   parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract);
   parseBoolean(subtree, tvb, pOffset, hf_opcua_Symmetric);
-  parseLocalizedText(subtree, tvb, pOffset, "InverseName");\r
-}\r
-\r
-gint ett_opcua_MethodAttributes = -1;\r
-void parseMethodAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MethodAttributes", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MethodAttributes);\r
+  parseLocalizedText(subtree, tvb, pOffset, "InverseName");
+}
+
+gint ett_opcua_MethodAttributes = -1;
+void parseMethodAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MethodAttributes", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MethodAttributes);
   /* parse base class members */ 
   parseNodeAttributes(subtree, tvb, pOffset, "[NodeAttributes]");
   /* parse additional members */
   parseBoolean(subtree, tvb, pOffset, hf_opcua_Executable);
-  parseBoolean(subtree, tvb, pOffset, hf_opcua_UserExecutable);\r
-}\r
-\r
-gint ett_opcua_ViewAttributes = -1;\r
-void parseViewAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ViewAttributes", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ViewAttributes);\r
+  parseBoolean(subtree, tvb, pOffset, hf_opcua_UserExecutable);
+}
+
+gint ett_opcua_ViewAttributes = -1;
+void parseViewAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ViewAttributes", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ViewAttributes);
   /* parse base class members */ 
   parseNodeAttributes(subtree, tvb, pOffset, "[NodeAttributes]");
   /* parse additional members */
   parseBoolean(subtree, tvb, pOffset, hf_opcua_ContainsNoLoops);
-  parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier);\r
-}\r
-\r
-gint ett_opcua_AddNodesItem = -1;\r
-void parseAddNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : AddNodesItem", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddNodesItem);\r
+  parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier);
+}
+
+gint ett_opcua_AddNodesItem = -1;
+void parseAddNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : AddNodesItem", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddNodesItem);
 
   parseExpandedNodeId(subtree, tvb, pOffset, "ParentNodeId");
   parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId");
@@ -499,75 +499,75 @@ void parseAddNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szF
   parseQualifiedName(subtree, tvb, pOffset, "BrowseName");
   parseInt32(subtree, tvb, pOffset, hf_opcua_NodeClass);
   parseExtensionObject(subtree, tvb, pOffset, "NodeAttributes");
-  parseExpandedNodeId(subtree, tvb, pOffset, "TypeDefinition");\r
-}\r
-\r
-gint ett_opcua_AddReferencesItem = -1;\r
-void parseAddReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : AddReferencesItem", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddReferencesItem);\r
+  parseExpandedNodeId(subtree, tvb, pOffset, "TypeDefinition");
+}
+
+gint ett_opcua_AddReferencesItem = -1;
+void parseAddReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : AddReferencesItem", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddReferencesItem);
 
   parseNodeId(subtree, tvb, pOffset, "SourceNodeId");
   parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId");
   parseBoolean(subtree, tvb, pOffset, hf_opcua_IsForward);
   parseString(subtree, tvb, pOffset, hf_opcua_TargetServerUri);
   parseExpandedNodeId(subtree, tvb, pOffset, "TargetNodeId");
-  parseInt32(subtree, tvb, pOffset, hf_opcua_TargetNodeClass);\r
-}\r
-\r
-gint ett_opcua_DeleteNodesItem = -1;\r
-void parseDeleteNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DeleteNodesItem", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteNodesItem);\r
+  parseInt32(subtree, tvb, pOffset, hf_opcua_TargetNodeClass);
+}
+
+gint ett_opcua_DeleteNodesItem = -1;
+void parseDeleteNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DeleteNodesItem", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteNodesItem);
 
   parseNodeId(subtree, tvb, pOffset, "NodeId");
-  parseBoolean(subtree, tvb, pOffset, hf_opcua_DeleteTargetReferences);\r
-}\r
-\r
-gint ett_opcua_DeleteReferencesItem = -1;\r
-void parseDeleteReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DeleteReferencesItem", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteReferencesItem);\r
+  parseBoolean(subtree, tvb, pOffset, hf_opcua_DeleteTargetReferences);
+}
+
+gint ett_opcua_DeleteReferencesItem = -1;
+void parseDeleteReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DeleteReferencesItem", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteReferencesItem);
 
   parseNodeId(subtree, tvb, pOffset, "SourceNodeId");
   parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId");
   parseBoolean(subtree, tvb, pOffset, hf_opcua_IsForward);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_ServerIndex);
-  parseExpandedNodeId(subtree, tvb, pOffset, "TargetNodeId");\r
-}\r
-\r
-gint ett_opcua_RedundantServerDataType = -1;\r
-void parseRedundantServerDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : RedundantServerDataType", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RedundantServerDataType);\r
+  parseExpandedNodeId(subtree, tvb, pOffset, "TargetNodeId");
+}
+
+gint ett_opcua_RedundantServerDataType = -1;
+void parseRedundantServerDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : RedundantServerDataType", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RedundantServerDataType);
 
   parseString(subtree, tvb, pOffset, hf_opcua_ServerId);
   parseSByte(subtree, tvb, pOffset, hf_opcua_ServiceLevel);
-  parseServerState(subtree, tvb, pOffset);\r
-}\r
-\r
-gint ett_opcua_SamplingRateDiagnosticsDataType = -1;\r
-void parseSamplingRateDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SamplingRateDiagnosticsDataType", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SamplingRateDiagnosticsDataType);\r
+  parseServerState(subtree, tvb, pOffset);
+}
+
+gint ett_opcua_SamplingRateDiagnosticsDataType = -1;
+void parseSamplingRateDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SamplingRateDiagnosticsDataType", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SamplingRateDiagnosticsDataType);
 
   parseUInt32(subtree, tvb, pOffset, hf_opcua_SamplingRate);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_SamplingErrorCount);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_SampledMonitoredItemsCount);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxSampledMonitoredItemsCount);
-  parseUInt32(subtree, tvb, pOffset, hf_opcua_DisabledMonitoredItemsSamplingCount);\r
-}\r
-\r
-gint ett_opcua_ServerDiagnosticsSummaryDataType = -1;\r
-void parseServerDiagnosticsSummaryDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ServerDiagnosticsSummaryDataType", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ServerDiagnosticsSummaryDataType);\r
+  parseUInt32(subtree, tvb, pOffset, hf_opcua_DisabledMonitoredItemsSamplingCount);
+}
+
+gint ett_opcua_ServerDiagnosticsSummaryDataType = -1;
+void parseServerDiagnosticsSummaryDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ServerDiagnosticsSummaryDataType", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ServerDiagnosticsSummaryDataType);
 
   parseUInt32(subtree, tvb, pOffset, hf_opcua_ServerViewCount);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentSessionCount);
@@ -581,37 +581,37 @@ void parseServerDiagnosticsSummaryDataType(proto_tree *tree, tvbuff_t *tvb, gint
   parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentSubscriptionCount);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_CumulatedSubscriptionCount);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_SecurityRejectedRequestsCount);
-  parseUInt32(subtree, tvb, pOffset, hf_opcua_RejectedRequestsCount);\r
-}\r
-\r
-gint ett_opcua_ServerStatusDataType = -1;\r
-void parseServerStatusDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ServerStatusDataType", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ServerStatusDataType);\r
+  parseUInt32(subtree, tvb, pOffset, hf_opcua_RejectedRequestsCount);
+}
+
+gint ett_opcua_ServerStatusDataType = -1;
+void parseServerStatusDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ServerStatusDataType", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ServerStatusDataType);
 
   parseDateTime(subtree, tvb, pOffset, hf_opcua_StartTime);
   parseDateTime(subtree, tvb, pOffset, hf_opcua_CurrentTime);
   parseServerState(subtree, tvb, pOffset);
-  parseBuildInfo(subtree, tvb, pOffset, "BuildInfo");\r
-}\r
-\r
-gint ett_opcua_ServiceCounterDataType = -1;\r
-void parseServiceCounterDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ServiceCounterDataType", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ServiceCounterDataType);\r
+  parseBuildInfo(subtree, tvb, pOffset, "BuildInfo");
+}
+
+gint ett_opcua_ServiceCounterDataType = -1;
+void parseServiceCounterDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ServiceCounterDataType", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ServiceCounterDataType);
 
   parseUInt32(subtree, tvb, pOffset, hf_opcua_TotalCount);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_UnauthorizedCount);
-  parseUInt32(subtree, tvb, pOffset, hf_opcua_ErrorCount);\r
-}\r
-\r
-gint ett_opcua_SessionDiagnosticsDataType = -1;\r
-void parseSessionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SessionDiagnosticsDataType", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SessionDiagnosticsDataType);\r
+  parseUInt32(subtree, tvb, pOffset, hf_opcua_ErrorCount);
+}
+
+gint ett_opcua_SessionDiagnosticsDataType = -1;
+void parseSessionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SessionDiagnosticsDataType", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SessionDiagnosticsDataType);
 
   parseUInt32(subtree, tvb, pOffset, hf_opcua_SessionId);
   parseString(subtree, tvb, pOffset, hf_opcua_ClientName);
@@ -654,14 +654,14 @@ void parseSessionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOff
   parseServiceCounterDataType(subtree, tvb, pOffset, "BrowseNextCount");
   parseServiceCounterDataType(subtree, tvb, pOffset, "TranslateBrowsePathsToNodeIdsCount");
   parseServiceCounterDataType(subtree, tvb, pOffset, "QueryFirstCount");
-  parseServiceCounterDataType(subtree, tvb, pOffset, "QueryNextCount");\r
-}\r
-\r
-gint ett_opcua_SessionSecurityDiagnosticsDataType = -1;\r
-void parseSessionSecurityDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SessionSecurityDiagnosticsDataType", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SessionSecurityDiagnosticsDataType);\r
+  parseServiceCounterDataType(subtree, tvb, pOffset, "QueryNextCount");
+}
+
+gint ett_opcua_SessionSecurityDiagnosticsDataType = -1;
+void parseSessionSecurityDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SessionSecurityDiagnosticsDataType", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SessionSecurityDiagnosticsDataType);
 
   parseUInt32(subtree, tvb, pOffset, hf_opcua_SessionId);
   parseString(subtree, tvb, pOffset, hf_opcua_ClientUserIdOfSession);
@@ -669,14 +669,14 @@ void parseSessionSecurityDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gi
   parseString(subtree, tvb, pOffset, hf_opcua_AuthenticationMechanism);
   parseString(subtree, tvb, pOffset, hf_opcua_Encoding);
   parseString(subtree, tvb, pOffset, hf_opcua_TransportProtocol);
-  parseString(subtree, tvb, pOffset, hf_opcua_SecurityPolicy);\r
-}\r
-\r
-gint ett_opcua_SubscriptionDiagnosticsDataType = -1;\r
-void parseSubscriptionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SubscriptionDiagnosticsDataType", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SubscriptionDiagnosticsDataType);\r
+  parseString(subtree, tvb, pOffset, hf_opcua_SecurityPolicy);
+}
+
+gint ett_opcua_SubscriptionDiagnosticsDataType = -1;
+void parseSubscriptionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SubscriptionDiagnosticsDataType", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SubscriptionDiagnosticsDataType);
 
   parseUInt32(subtree, tvb, pOffset, hf_opcua_SessionId);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
@@ -698,70 +698,70 @@ void parseSubscriptionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint
   parseUInt32(subtree, tvb, pOffset, hf_opcua_EventNotificationsCount);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_NotificationsCount);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_LateStateCount);
-  parseUInt32(subtree, tvb, pOffset, hf_opcua_KeepAliveStateCount);\r
-}\r
-\r
-gint ett_opcua_Range = -1;\r
-void parseRange(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : Range", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_Range);\r
+  parseUInt32(subtree, tvb, pOffset, hf_opcua_KeepAliveStateCount);
+}
+
+gint ett_opcua_Range = -1;
+void parseRange(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : Range", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_Range);
 
   parseDouble(subtree, tvb, pOffset, hf_opcua_Low);
-  parseDouble(subtree, tvb, pOffset, hf_opcua_High);\r
-}\r
-\r
-gint ett_opcua_EUInformation = -1;\r
-void parseEUInformation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EUInformation", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EUInformation);\r
+  parseDouble(subtree, tvb, pOffset, hf_opcua_High);
+}
+
+gint ett_opcua_EUInformation = -1;
+void parseEUInformation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EUInformation", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EUInformation);
 
   parseString(subtree, tvb, pOffset, hf_opcua_NamespaceUri);
   parseInt32(subtree, tvb, pOffset, hf_opcua_UnitId);
   parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
-  parseLocalizedText(subtree, tvb, pOffset, "Description");\r
-}\r
-\r
-gint ett_opcua_Annotation = -1;\r
-void parseAnnotation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : Annotation", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_Annotation);\r
+  parseLocalizedText(subtree, tvb, pOffset, "Description");
+}
+
+gint ett_opcua_Annotation = -1;
+void parseAnnotation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : Annotation", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_Annotation);
 
   parseString(subtree, tvb, pOffset, hf_opcua_Message);
   parseString(subtree, tvb, pOffset, hf_opcua_UserName);
   parseExtensionObject(subtree, tvb, pOffset, "UserIdentity");
-  parseDateTime(subtree, tvb, pOffset, hf_opcua_AnnotationTime);\r
-}\r
-\r
-gint ett_opcua_BaseStructureDataType = -1;\r
-void parseBaseStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BaseStructureDataType", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BaseStructureDataType);\r
+  parseDateTime(subtree, tvb, pOffset, hf_opcua_AnnotationTime);
+}
+
+gint ett_opcua_BaseStructureDataType = -1;
+void parseBaseStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BaseStructureDataType", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BaseStructureDataType);
 
   parseInt32(subtree, tvb, pOffset, hf_opcua_Id);
-  parseString(subtree, tvb, pOffset, hf_opcua_Name);\r
-}\r
-\r
-gint ett_opcua_DerivedStructureDataType = -1;\r
-void parseDerivedStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DerivedStructureDataType", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DerivedStructureDataType);\r
+  parseString(subtree, tvb, pOffset, hf_opcua_Name);
+}
+
+gint ett_opcua_DerivedStructureDataType = -1;
+void parseDerivedStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DerivedStructureDataType", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DerivedStructureDataType);
   /* parse base class members */ 
   parseBaseStructureDataType(subtree, tvb, pOffset, "[BaseStructureDataType]");
   /* parse additional members */
   parseString(subtree, tvb, pOffset, hf_opcua_Description);
-  parseDateTime(subtree, tvb, pOffset, hf_opcua_Timestamp);\r
-}\r
-\r
-gint ett_opcua_ScalarValuesDataType = -1;\r
-void parseScalarValuesDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ScalarValuesDataType", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ScalarValuesDataType);\r
+  parseDateTime(subtree, tvb, pOffset, hf_opcua_Timestamp);
+}
+
+gint ett_opcua_ScalarValuesDataType = -1;
+void parseScalarValuesDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ScalarValuesDataType", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ScalarValuesDataType);
 
   parseBoolean(subtree, tvb, pOffset, hf_opcua_Boolean);
   parseSByte(subtree, tvb, pOffset, hf_opcua_SByte);
@@ -789,14 +789,14 @@ void parseScalarValuesDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c
   parseDataValue(subtree, tvb, pOffset, "DataValue");
   parseVariant(subtree, tvb, pOffset, "Variant");
   parseBaseStructureDataType(subtree, tvb, pOffset, "Structure");
-  parseColorsDataType(subtree, tvb, pOffset);\r
-}\r
-\r
-gint ett_opcua_ArrayValuesDataType = -1;\r
-void parseArrayValuesDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ArrayValuesDataType", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ArrayValuesDataType);\r
+  parseColorsDataType(subtree, tvb, pOffset);
+}
+
+gint ett_opcua_ArrayValuesDataType = -1;
+void parseArrayValuesDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ArrayValuesDataType", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ArrayValuesDataType);
 
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_Boolean, parseBoolean);
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_SByte, parseSByte);
@@ -823,14 +823,14 @@ void parseArrayValuesDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, ch
   parseArrayComplex(subtree, tvb, pOffset, "DataValue", parseDataValue);
   parseArrayComplex(subtree, tvb, pOffset, "Variant", parseVariant);
   parseArrayComplex(subtree, tvb, pOffset, "Structure", parseBaseStructureDataType);
-  parseArrayEnum(subtree, tvb, pOffset, parseColorsDataType);\r
-}\r
-\r
-gint ett_opcua_RequestHeader = -1;\r
-void parseRequestHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : RequestHeader", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RequestHeader);\r
+  parseArrayEnum(subtree, tvb, pOffset, parseColorsDataType);
+}
+
+gint ett_opcua_RequestHeader = -1;
+void parseRequestHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : RequestHeader", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RequestHeader);
 
   parseUInt32(subtree, tvb, pOffset, hf_opcua_SessionId);
   parseDateTime(subtree, tvb, pOffset, hf_opcua_Timestamp);
@@ -838,14 +838,14 @@ void parseRequestHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *sz
   parseUInt32(subtree, tvb, pOffset, hf_opcua_ReturnDiagnostics);
   parseString(subtree, tvb, pOffset, hf_opcua_AuditLogEntryId);
   parseInt32(subtree, tvb, pOffset, hf_opcua_TimeoutHint);
-  parseExtensionObject(subtree, tvb, pOffset, "AdditionalHeaders");\r
-}\r
-\r
-gint ett_opcua_ResponseHeader = -1;\r
-void parseResponseHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ResponseHeader", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ResponseHeader);\r
+  parseExtensionObject(subtree, tvb, pOffset, "AdditionalHeaders");
+}
+
+gint ett_opcua_ResponseHeader = -1;
+void parseResponseHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ResponseHeader", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ResponseHeader);
 
   parseUInt32(subtree, tvb, pOffset, hf_opcua_SessionId);
   parseDateTime(subtree, tvb, pOffset, hf_opcua_Timestamp);
@@ -853,53 +853,53 @@ void parseResponseHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *s
   parseStatusCode(subtree, tvb, pOffset, hf_opcua_ServiceResult);
   parseDiagnosticInfo(subtree, tvb, pOffset, "ServiceDiagnostics");
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_StringTable, parseString);
-  parseExtensionObject(subtree, tvb, pOffset, "AdditionalHeaders");\r
-}\r
-\r
-gint ett_opcua_ServiceFault = -1;\r
-void parseServiceFault(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ServiceFault", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ServiceFault);\r
-
-  parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");\r
-}\r
-\r
-gint ett_opcua_ComplexTestType = -1;\r
-void parseComplexTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ComplexTestType", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ComplexTestType);\r
+  parseExtensionObject(subtree, tvb, pOffset, "AdditionalHeaders");
+}
+
+gint ett_opcua_ServiceFault = -1;
+void parseServiceFault(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ServiceFault", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ServiceFault);
+
+  parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+}
+
+gint ett_opcua_ComplexTestType = -1;
+void parseComplexTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ComplexTestType", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ComplexTestType);
+
+  parseDateTime(subtree, tvb, pOffset, hf_opcua_Value1);
+  parseArrayEnum(subtree, tvb, pOffset, parseEnumeratedTestType);
+}
+
+gint ett_opcua_BaseTestType = -1;
+void parseBaseTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BaseTestType", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BaseTestType);
 
   parseDateTime(subtree, tvb, pOffset, hf_opcua_Value1);
-  parseArrayEnum(subtree, tvb, pOffset, parseEnumeratedTestType);\r
-}\r
-\r
-gint ett_opcua_BaseTestType = -1;\r
-void parseBaseTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BaseTestType", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BaseTestType);\r
-
-  parseDateTime(subtree, tvb, pOffset, hf_opcua_Value1);\r
-}\r
-\r
-gint ett_opcua_DerivedTestType = -1;\r
-void parseDerivedTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DerivedTestType", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DerivedTestType);\r
+}
+
+gint ett_opcua_DerivedTestType = -1;
+void parseDerivedTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DerivedTestType", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DerivedTestType);
   /* parse base class members */ 
   parseBaseTestType(subtree, tvb, pOffset, "[BaseTestType]");
   /* parse additional members */
-  parseDateTime(subtree, tvb, pOffset, hf_opcua_Value2);\r
-}\r
-\r
-gint ett_opcua_ScalarTestType = -1;\r
-void parseScalarTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ScalarTestType", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ScalarTestType);\r
+  parseDateTime(subtree, tvb, pOffset, hf_opcua_Value2);
+}
+
+gint ett_opcua_ScalarTestType = -1;
+void parseScalarTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ScalarTestType", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ScalarTestType);
 
   parseBoolean(subtree, tvb, pOffset, hf_opcua_Boolean);
   parseSByte(subtree, tvb, pOffset, hf_opcua_SByte);
@@ -927,14 +927,14 @@ void parseScalarTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *s
   parseDataValue(subtree, tvb, pOffset, "DataValue");
   parseVariant(subtree, tvb, pOffset, "Variant");
   parseComplexTestType(subtree, tvb, pOffset, "ComplexValue");
-  parseEnumeratedTestType(subtree, tvb, pOffset);\r
-}\r
-\r
-gint ett_opcua_ArrayTestType = -1;\r
-void parseArrayTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ArrayTestType", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ArrayTestType);\r
+  parseEnumeratedTestType(subtree, tvb, pOffset);
+}
+
+gint ett_opcua_ArrayTestType = -1;
+void parseArrayTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ArrayTestType", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ArrayTestType);
 
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_Booleans, parseBoolean);
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_SBytes, parseSByte);
@@ -961,93 +961,93 @@ void parseArrayTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *sz
   parseArrayComplex(subtree, tvb, pOffset, "DataValues", parseDataValue);
   parseArrayComplex(subtree, tvb, pOffset, "Variants", parseVariant);
   parseArrayComplex(subtree, tvb, pOffset, "ComplexValues", parseComplexTestType);
-  parseArrayEnum(subtree, tvb, pOffset, parseEnumeratedTestType);\r
-}\r
-\r
-gint ett_opcua_CompositeTestType = -1;\r
-void parseCompositeTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : CompositeTestType", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CompositeTestType);\r
+  parseArrayEnum(subtree, tvb, pOffset, parseEnumeratedTestType);
+}
+
+gint ett_opcua_CompositeTestType = -1;
+void parseCompositeTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : CompositeTestType", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CompositeTestType);
 
   parseScalarTestType(subtree, tvb, pOffset, "Input1");
-  parseArrayTestType(subtree, tvb, pOffset, "Input2");\r
-}\r
-\r
-gint ett_opcua_RegisteredServer = -1;\r
-void parseRegisteredServer(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : RegisteredServer", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RegisteredServer);\r
+  parseArrayTestType(subtree, tvb, pOffset, "Input2");
+}
+
+gint ett_opcua_RegisteredServer = -1;
+void parseRegisteredServer(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : RegisteredServer", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RegisteredServer);
 
   parseServerDescriptionType(subtree, tvb, pOffset);
   parseString(subtree, tvb, pOffset, hf_opcua_ServerUri);
   parseArrayComplex(subtree, tvb, pOffset, "ServerNames", parseLocalizedText);
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_DiscoveryUrls, parseString);
   parseString(subtree, tvb, pOffset, hf_opcua_SemaphoreFilePath);
-  parseBoolean(subtree, tvb, pOffset, hf_opcua_IsOnline);\r
-}\r
-\r
-gint ett_opcua_ChannelSecurityToken = -1;\r
-void parseChannelSecurityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ChannelSecurityToken", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ChannelSecurityToken);\r
+  parseBoolean(subtree, tvb, pOffset, hf_opcua_IsOnline);
+}
+
+gint ett_opcua_ChannelSecurityToken = -1;
+void parseChannelSecurityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ChannelSecurityToken", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ChannelSecurityToken);
 
   parseGuid(subtree, tvb, pOffset, hf_opcua_ChannelId);
   parseString(subtree, tvb, pOffset, hf_opcua_TokenId);
   parseDateTime(subtree, tvb, pOffset, hf_opcua_CreatedAt);
-  parseInt32(subtree, tvb, pOffset, hf_opcua_RevisedLifetime);\r
-}\r
-\r
-gint ett_opcua_SignatureData = -1;\r
-void parseSignatureData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SignatureData", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SignatureData);\r
+  parseInt32(subtree, tvb, pOffset, hf_opcua_RevisedLifetime);
+}
+
+gint ett_opcua_SignatureData = -1;
+void parseSignatureData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SignatureData", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SignatureData);
 
   parseString(subtree, tvb, pOffset, hf_opcua_Algorithm);
-  parseByteString(subtree, tvb, pOffset, hf_opcua_Signature);\r
-}\r
-\r
-gint ett_opcua_AddNodesResult = -1;\r
-void parseAddNodesResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : AddNodesResult", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddNodesResult);\r
+  parseByteString(subtree, tvb, pOffset, hf_opcua_Signature);
+}
+
+gint ett_opcua_AddNodesResult = -1;
+void parseAddNodesResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : AddNodesResult", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddNodesResult);
 
   parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
-  parseNodeId(subtree, tvb, pOffset, "AddedNodeId");\r
-}\r
-\r
-gint ett_opcua_BrowsePropertiesPropertyResult = -1;\r
-void parseBrowsePropertiesPropertyResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BrowsePropertiesPropertyResult", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowsePropertiesPropertyResult);\r
+  parseNodeId(subtree, tvb, pOffset, "AddedNodeId");
+}
+
+gint ett_opcua_BrowsePropertiesPropertyResult = -1;
+void parseBrowsePropertiesPropertyResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BrowsePropertiesPropertyResult", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowsePropertiesPropertyResult);
 
   parseQualifiedName(subtree, tvb, pOffset, "PropertyName");
   parseLocalizedText(subtree, tvb, pOffset, "PropertyDisplayName");
   parseNodeId(subtree, tvb, pOffset, "PropertyNodeId");
-  parseStatusCode(subtree, tvb, pOffset, hf_opcua_PropertyStatusCode);\r
-}\r
-\r
-gint ett_opcua_BrowsePropertiesResult = -1;\r
-void parseBrowsePropertiesResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BrowsePropertiesResult", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowsePropertiesResult);\r
+  parseStatusCode(subtree, tvb, pOffset, hf_opcua_PropertyStatusCode);
+}
+
+gint ett_opcua_BrowsePropertiesResult = -1;
+void parseBrowsePropertiesResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BrowsePropertiesResult", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowsePropertiesResult);
 
   parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
   parseArrayComplex(subtree, tvb, pOffset, "PropertyResults", parseBrowsePropertiesPropertyResult);
-  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_ReferenceDescription = -1;\r
-void parseReferenceDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReferenceDescription", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReferenceDescription);\r
+  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_ReferenceDescription = -1;
+void parseReferenceDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReferenceDescription", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReferenceDescription);
 
   parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId");
   parseBoolean(subtree, tvb, pOffset, hf_opcua_IsForward);
@@ -1056,564 +1056,564 @@ void parseReferenceDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c
   parseQualifiedName(subtree, tvb, pOffset, "BrowseName");
   parseLocalizedText(subtree, tvb, pOffset, "DisplayName");
   parseInt32(subtree, tvb, pOffset, hf_opcua_NodeClass);
-  parseExpandedNodeId(subtree, tvb, pOffset, "TypeDefinition");\r
-}\r
-\r
-gint ett_opcua_ViewDescription = -1;\r
-void parseViewDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ViewDescription", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ViewDescription);\r
+  parseExpandedNodeId(subtree, tvb, pOffset, "TypeDefinition");
+}
+
+gint ett_opcua_ViewDescription = -1;
+void parseViewDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ViewDescription", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ViewDescription);
 
   parseNodeId(subtree, tvb, pOffset, "ViewId");
   parseDateTime(subtree, tvb, pOffset, hf_opcua_Timestamp);
-  parseInt32(subtree, tvb, pOffset, hf_opcua_ViewVersion);\r
-}\r
-\r
-gint ett_opcua_BrowsePath = -1;\r
-void parseBrowsePath(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BrowsePath", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowsePath);\r
+  parseInt32(subtree, tvb, pOffset, hf_opcua_ViewVersion);
+}
+
+gint ett_opcua_BrowsePath = -1;
+void parseBrowsePath(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BrowsePath", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowsePath);
 
   parseNodeId(subtree, tvb, pOffset, "StartingNode");
-  parseString(subtree, tvb, pOffset, hf_opcua_RelativePath);\r
-}\r
-\r
-gint ett_opcua_TranslateBrowsePathResult = -1;\r
-void parseTranslateBrowsePathResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : TranslateBrowsePathResult", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TranslateBrowsePathResult);\r
+  parseString(subtree, tvb, pOffset, hf_opcua_RelativePath);
+}
+
+gint ett_opcua_TranslateBrowsePathResult = -1;
+void parseTranslateBrowsePathResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : TranslateBrowsePathResult", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TranslateBrowsePathResult);
 
   parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
-  parseArrayComplex(subtree, tvb, pOffset, "MatchingNodeIds", parseNodeId);\r
-}\r
-\r
-gint ett_opcua_AttributeDescription = -1;\r
-void parseAttributeDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : AttributeDescription", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AttributeDescription);\r
+  parseArrayComplex(subtree, tvb, pOffset, "MatchingNodeIds", parseNodeId);
+}
+
+gint ett_opcua_AttributeDescription = -1;
+void parseAttributeDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : AttributeDescription", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AttributeDescription);
 
   parseString(subtree, tvb, pOffset, hf_opcua_RelativePath);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_AttributeId);
-  parseString(subtree, tvb, pOffset, hf_opcua_IndexRange);\r
-}\r
-\r
-gint ett_opcua_NodeTypeDescription = -1;\r
-void parseNodeTypeDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : NodeTypeDescription", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_NodeTypeDescription);\r
+  parseString(subtree, tvb, pOffset, hf_opcua_IndexRange);
+}
+
+gint ett_opcua_NodeTypeDescription = -1;
+void parseNodeTypeDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : NodeTypeDescription", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_NodeTypeDescription);
 
   parseNodeId(subtree, tvb, pOffset, "TypeDefinitionNode");
   parseBoolean(subtree, tvb, pOffset, hf_opcua_IncludeSubTypes);
-  parseArrayComplex(subtree, tvb, pOffset, "AttributesToReturn", parseAttributeDescription);\r
-}\r
-\r
-gint ett_opcua_QueryDataSet = -1;\r
-void parseQueryDataSet(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : QueryDataSet", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryDataSet);\r
+  parseArrayComplex(subtree, tvb, pOffset, "AttributesToReturn", parseAttributeDescription);
+}
+
+gint ett_opcua_QueryDataSet = -1;
+void parseQueryDataSet(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : QueryDataSet", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryDataSet);
 
   parseExpandedNodeId(subtree, tvb, pOffset, "NodeId");
   parseNodeId(subtree, tvb, pOffset, "TypeDefinitionNodeId");
-  parseArrayComplex(subtree, tvb, pOffset, "Values", parseVariant);\r
-}\r
-\r
-gint ett_opcua_NodeReference = -1;\r
-void parseNodeReference(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : NodeReference", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_NodeReference);\r
+  parseArrayComplex(subtree, tvb, pOffset, "Values", parseVariant);
+}
+
+gint ett_opcua_NodeReference = -1;
+void parseNodeReference(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : NodeReference", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_NodeReference);
 
   parseNodeId(subtree, tvb, pOffset, "NodeId");
   parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId");
   parseBoolean(subtree, tvb, pOffset, hf_opcua_IsForward);
-  parseArrayComplex(subtree, tvb, pOffset, "ReferencedNodeIds", parseNodeId);\r
-}\r
-\r
-gint ett_opcua_ContentFilterElement = -1;\r
-void parseContentFilterElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ContentFilterElement", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ContentFilterElement);\r
+  parseArrayComplex(subtree, tvb, pOffset, "ReferencedNodeIds", parseNodeId);
+}
+
+gint ett_opcua_ContentFilterElement = -1;
+void parseContentFilterElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ContentFilterElement", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ContentFilterElement);
 
   parseFilterOperator(subtree, tvb, pOffset);
-  parseArrayComplex(subtree, tvb, pOffset, "FilterOperands", parseExtensionObject);\r
-}\r
-\r
-gint ett_opcua_ContentFilter = -1;\r
-void parseContentFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ContentFilter", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ContentFilter);\r
-
-  parseArrayComplex(subtree, tvb, pOffset, "Elements", parseContentFilterElement);\r
-}\r
-\r
-gint ett_opcua_FilterOperand = -1;\r
-void parseFilterOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : FilterOperand", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_FilterOperand);\r
\r
-}\r
-\r
-gint ett_opcua_ElementOperand = -1;\r
-void parseElementOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ElementOperand", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ElementOperand);\r
+  parseArrayComplex(subtree, tvb, pOffset, "FilterOperands", parseExtensionObject);
+}
+
+gint ett_opcua_ContentFilter = -1;
+void parseContentFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ContentFilter", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ContentFilter);
+
+  parseArrayComplex(subtree, tvb, pOffset, "Elements", parseContentFilterElement);
+}
+
+gint ett_opcua_FilterOperand = -1;
+void parseFilterOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : FilterOperand", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_FilterOperand);
+}
+
+gint ett_opcua_ElementOperand = -1;
+void parseElementOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ElementOperand", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ElementOperand);
   /* parse base class members */ 
   parseFilterOperand(subtree, tvb, pOffset, "[FilterOperand]");
   /* parse additional members */
-  parseUInt32(subtree, tvb, pOffset, hf_opcua_Index);\r
-}\r
-\r
-gint ett_opcua_LiteralOperand = -1;\r
-void parseLiteralOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : LiteralOperand", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_LiteralOperand);\r
+  parseUInt32(subtree, tvb, pOffset, hf_opcua_Index);
+}
+
+gint ett_opcua_LiteralOperand = -1;
+void parseLiteralOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : LiteralOperand", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_LiteralOperand);
   /* parse base class members */ 
   parseFilterOperand(subtree, tvb, pOffset, "[FilterOperand]");
   /* parse additional members */
-  parseVariant(subtree, tvb, pOffset, "Value");\r
-}\r
-\r
-gint ett_opcua_AttributeOperand = -1;\r
-void parseAttributeOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : AttributeOperand", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AttributeOperand);\r
+  parseVariant(subtree, tvb, pOffset, "Value");
+}
+
+gint ett_opcua_AttributeOperand = -1;
+void parseAttributeOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : AttributeOperand", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AttributeOperand);
   /* parse base class members */ 
   parseFilterOperand(subtree, tvb, pOffset, "[FilterOperand]");
   /* parse additional members */
   parseNodeId(subtree, tvb, pOffset, "NodeId");
   parseString(subtree, tvb, pOffset, hf_opcua_Alias);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_AttributeId);
-  parseString(subtree, tvb, pOffset, hf_opcua_IndexRange);\r
-}\r
-\r
-gint ett_opcua_PropertyOperand = -1;\r
-void parsePropertyOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : PropertyOperand", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_PropertyOperand);\r
+  parseString(subtree, tvb, pOffset, hf_opcua_IndexRange);
+}
+
+gint ett_opcua_PropertyOperand = -1;
+void parsePropertyOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : PropertyOperand", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_PropertyOperand);
   /* parse base class members */ 
   parseFilterOperand(subtree, tvb, pOffset, "[FilterOperand]");
   /* parse additional members */
   parseNodeId(subtree, tvb, pOffset, "NodeId");
   parseString(subtree, tvb, pOffset, hf_opcua_Alias);
   parseQualifiedName(subtree, tvb, pOffset, "Property");
-  parseString(subtree, tvb, pOffset, hf_opcua_IndexRange);\r
-}\r
-\r
-gint ett_opcua_ContentFilterResult = -1;\r
-void parseContentFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ContentFilterResult", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ContentFilterResult);\r
+  parseString(subtree, tvb, pOffset, hf_opcua_IndexRange);
+}
+
+gint ett_opcua_ContentFilterResult = -1;
+void parseContentFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ContentFilterResult", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ContentFilterResult);
 
   parseStatusCode(subtree, tvb, pOffset, hf_opcua_Result);
   parseDiagnosticInfo(subtree, tvb, pOffset, "DiagnosticInfo");
-  parseUInt32(subtree, tvb, pOffset, hf_opcua_IndexOfInvalidElement);\r
-}\r
-\r
-gint ett_opcua_QueryResult = -1;\r
-void parseQueryResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : QueryResult", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryResult);\r
+  parseUInt32(subtree, tvb, pOffset, hf_opcua_IndexOfInvalidElement);
+}
+
+gint ett_opcua_QueryResult = -1;
+void parseQueryResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : QueryResult", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryResult);
 
   parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_AttributeStatusCodes, parseStatusCode);
-  parseArrayComplex(subtree, tvb, pOffset, "AttributeDiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_ReadValueId = -1;\r
-void parseReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReadValueId", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadValueId);\r
+  parseArrayComplex(subtree, tvb, pOffset, "AttributeDiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_ReadValueId = -1;
+void parseReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReadValueId", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadValueId);
 
   parseNodeId(subtree, tvb, pOffset, "NodeId");
   parseUInt32(subtree, tvb, pOffset, hf_opcua_AttributeId);
   parseString(subtree, tvb, pOffset, hf_opcua_IndexRange);
-  parseQualifiedName(subtree, tvb, pOffset, "Encoding");\r
-}\r
-\r
-gint ett_opcua_HistoryReadValueId = -1;\r
-void parseHistoryReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : HistoryReadValueId", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryReadValueId);\r
+  parseQualifiedName(subtree, tvb, pOffset, "Encoding");
+}
+
+gint ett_opcua_HistoryReadValueId = -1;
+void parseHistoryReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : HistoryReadValueId", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryReadValueId);
 
   parseNodeId(subtree, tvb, pOffset, "NodeId");
   parseQualifiedName(subtree, tvb, pOffset, "Encoding");
-  parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint);\r
-}\r
-\r
-gint ett_opcua_HistoryReadResult = -1;\r
-void parseHistoryReadResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : HistoryReadResult", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryReadResult);\r
+  parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint);
+}
+
+gint ett_opcua_HistoryReadResult = -1;
+void parseHistoryReadResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : HistoryReadResult", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryReadResult);
 
   parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
   parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint);
-  parseExtensionObject(subtree, tvb, pOffset, "HistoryData");\r
-}\r
-\r
-gint ett_opcua_MonitoringFilter = -1;\r
-void parseMonitoringFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoringFilter", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoringFilter);\r
\r
-}\r
-\r
-gint ett_opcua_EventFilter = -1;\r
-void parseEventFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EventFilter", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventFilter);\r
+  parseExtensionObject(subtree, tvb, pOffset, "HistoryData");
+}
+
+gint ett_opcua_MonitoringFilter = -1;
+void parseMonitoringFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoringFilter", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoringFilter);
+}
+
+gint ett_opcua_EventFilter = -1;
+void parseEventFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EventFilter", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventFilter);
   /* parse base class members */ 
   parseMonitoringFilter(subtree, tvb, pOffset, "[MonitoringFilter]");
   /* parse additional members */
   parseArrayComplex(subtree, tvb, pOffset, "SelectClauses", parseNodeId);
-  parseContentFilter(subtree, tvb, pOffset, "WhereClause");\r
-}\r
-\r
-gint ett_opcua_ReadEventDetails = -1;\r
-void parseReadEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReadEventDetails", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadEventDetails);\r
+  parseContentFilter(subtree, tvb, pOffset, "WhereClause");
+}
+
+gint ett_opcua_ReadEventDetails = -1;
+void parseReadEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReadEventDetails", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadEventDetails);
 
   parseUInt32(subtree, tvb, pOffset, hf_opcua_NumValuesPerNode);
   parseDateTime(subtree, tvb, pOffset, hf_opcua_StartTime);
   parseDateTime(subtree, tvb, pOffset, hf_opcua_EndTime);
-  parseEventFilter(subtree, tvb, pOffset, "Filter");\r
-}\r
-\r
-gint ett_opcua_ReadRawModifiedDetails = -1;\r
-void parseReadRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReadRawModifiedDetails", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadRawModifiedDetails);\r
+  parseEventFilter(subtree, tvb, pOffset, "Filter");
+}
+
+gint ett_opcua_ReadRawModifiedDetails = -1;
+void parseReadRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReadRawModifiedDetails", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadRawModifiedDetails);
 
   parseBoolean(subtree, tvb, pOffset, hf_opcua_IsReadModified);
   parseDateTime(subtree, tvb, pOffset, hf_opcua_StartTime);
   parseDateTime(subtree, tvb, pOffset, hf_opcua_EndTime);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_NumValuesPerNode);
-  parseBoolean(subtree, tvb, pOffset, hf_opcua_ReturnBounds);\r
-}\r
-\r
-gint ett_opcua_ReadProcessedDetails = -1;\r
-void parseReadProcessedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReadProcessedDetails", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadProcessedDetails);\r
+  parseBoolean(subtree, tvb, pOffset, hf_opcua_ReturnBounds);
+}
+
+gint ett_opcua_ReadProcessedDetails = -1;
+void parseReadProcessedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReadProcessedDetails", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadProcessedDetails);
 
   parseDateTime(subtree, tvb, pOffset, hf_opcua_StartTime);
   parseDateTime(subtree, tvb, pOffset, hf_opcua_EndTime);
   parseInt32(subtree, tvb, pOffset, hf_opcua_ResampleInterval);
-  parseNodeId(subtree, tvb, pOffset, "AggregateType");\r
-}\r
-\r
-gint ett_opcua_ReadAtTimeDetails = -1;\r
-void parseReadAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReadAtTimeDetails", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadAtTimeDetails);\r
-
-  parseArraySimple(subtree, tvb, pOffset, hf_opcua_ReqTimes, parseDateTime);\r
-}\r
-\r
-gint ett_opcua_HistoryData = -1;\r
-void parseHistoryData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : HistoryData", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryData);\r
-
-  parseArrayComplex(subtree, tvb, pOffset, "DataValues", parseDataValue);\r
-}\r
-\r
-gint ett_opcua_EventFieldList = -1;\r
-void parseEventFieldList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EventFieldList", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventFieldList);\r
+  parseNodeId(subtree, tvb, pOffset, "AggregateType");
+}
+
+gint ett_opcua_ReadAtTimeDetails = -1;
+void parseReadAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReadAtTimeDetails", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadAtTimeDetails);
+
+  parseArraySimple(subtree, tvb, pOffset, hf_opcua_ReqTimes, parseDateTime);
+}
+
+gint ett_opcua_HistoryData = -1;
+void parseHistoryData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : HistoryData", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryData);
+
+  parseArrayComplex(subtree, tvb, pOffset, "DataValues", parseDataValue);
+}
+
+gint ett_opcua_EventFieldList = -1;
+void parseEventFieldList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EventFieldList", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventFieldList);
 
   parseUInt32(subtree, tvb, pOffset, hf_opcua_ClientHandle);
-  parseArrayComplex(subtree, tvb, pOffset, "EventFields", parseVariant);\r
-}\r
-\r
-gint ett_opcua_EventNotification = -1;\r
-void parseEventNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EventNotification", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventNotification);\r
-
-  parseArrayComplex(subtree, tvb, pOffset, "Events", parseEventFieldList);\r
-}\r
-\r
-gint ett_opcua_HistoryEvent = -1;\r
-void parseHistoryEvent(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : HistoryEvent", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryEvent);\r
-
-  parseArrayComplex(subtree, tvb, pOffset, "Notifications", parseEventNotification);\r
-}\r
-\r
-gint ett_opcua_WriteValue = -1;\r
-void parseWriteValue(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : WriteValue", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_WriteValue);\r
+  parseArrayComplex(subtree, tvb, pOffset, "EventFields", parseVariant);
+}
+
+gint ett_opcua_EventNotification = -1;
+void parseEventNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EventNotification", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventNotification);
+
+  parseArrayComplex(subtree, tvb, pOffset, "Events", parseEventFieldList);
+}
+
+gint ett_opcua_HistoryEvent = -1;
+void parseHistoryEvent(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : HistoryEvent", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryEvent);
+
+  parseArrayComplex(subtree, tvb, pOffset, "Notifications", parseEventNotification);
+}
+
+gint ett_opcua_WriteValue = -1;
+void parseWriteValue(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : WriteValue", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_WriteValue);
 
   parseNodeId(subtree, tvb, pOffset, "NodeId");
   parseUInt32(subtree, tvb, pOffset, hf_opcua_AttributeId);
   parseString(subtree, tvb, pOffset, hf_opcua_IndexRange);
-  parseDataValue(subtree, tvb, pOffset, "Value");\r
-}\r
-\r
-gint ett_opcua_InsertReplaceDetails = -1;\r
-void parseInsertReplaceDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : InsertReplaceDetails", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_InsertReplaceDetails);\r
+  parseDataValue(subtree, tvb, pOffset, "Value");
+}
+
+gint ett_opcua_InsertReplaceDetails = -1;
+void parseInsertReplaceDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : InsertReplaceDetails", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_InsertReplaceDetails);
 
   parseBoolean(subtree, tvb, pOffset, hf_opcua_PerformInsert);
   parseBoolean(subtree, tvb, pOffset, hf_opcua_PerformReplace);
   parseNodeId(subtree, tvb, pOffset, "NodeId");
-  parseHistoryData(subtree, tvb, pOffset, "UpdateValue");\r
-}\r
-\r
-gint ett_opcua_InsertEventDetails = -1;\r
-void parseInsertEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : InsertEventDetails", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_InsertEventDetails);\r
-
-  parseHistoryEvent(subtree, tvb, pOffset, "HistoryEvent");\r
-}\r
-\r
-gint ett_opcua_DeleteRawModifiedDetails = -1;\r
-void parseDeleteRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DeleteRawModifiedDetails", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteRawModifiedDetails);\r
+  parseHistoryData(subtree, tvb, pOffset, "UpdateValue");
+}
+
+gint ett_opcua_InsertEventDetails = -1;
+void parseInsertEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : InsertEventDetails", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_InsertEventDetails);
+
+  parseHistoryEvent(subtree, tvb, pOffset, "HistoryEvent");
+}
+
+gint ett_opcua_DeleteRawModifiedDetails = -1;
+void parseDeleteRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DeleteRawModifiedDetails", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteRawModifiedDetails);
 
   parseBoolean(subtree, tvb, pOffset, hf_opcua_IsDeleteModified);
   parseNodeId(subtree, tvb, pOffset, "NodeId");
   parseDateTime(subtree, tvb, pOffset, hf_opcua_StartTime);
-  parseDateTime(subtree, tvb, pOffset, hf_opcua_EndTime);\r
-}\r
-\r
-gint ett_opcua_DeleteAtTimeDetails = -1;\r
-void parseDeleteAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DeleteAtTimeDetails", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteAtTimeDetails);\r
+  parseDateTime(subtree, tvb, pOffset, hf_opcua_EndTime);
+}
+
+gint ett_opcua_DeleteAtTimeDetails = -1;
+void parseDeleteAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DeleteAtTimeDetails", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteAtTimeDetails);
 
   parseNodeId(subtree, tvb, pOffset, "NodeId");
-  parseArraySimple(subtree, tvb, pOffset, hf_opcua_ReqTimes, parseDateTime);\r
-}\r
-\r
-gint ett_opcua_DeleteEventDetails = -1;\r
-void parseDeleteEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DeleteEventDetails", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteEventDetails);\r
+  parseArraySimple(subtree, tvb, pOffset, hf_opcua_ReqTimes, parseDateTime);
+}
+
+gint ett_opcua_DeleteEventDetails = -1;
+void parseDeleteEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DeleteEventDetails", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteEventDetails);
 
   parseEventFilter(subtree, tvb, pOffset, "EventFilter");
   parseDateTime(subtree, tvb, pOffset, hf_opcua_StartTime);
-  parseDateTime(subtree, tvb, pOffset, hf_opcua_EndTime);\r
-}\r
-\r
-gint ett_opcua_HistoryUpdateResult = -1;\r
-void parseHistoryUpdateResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : HistoryUpdateResult", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryUpdateResult);\r
+  parseDateTime(subtree, tvb, pOffset, hf_opcua_EndTime);
+}
+
+gint ett_opcua_HistoryUpdateResult = -1;
+void parseHistoryUpdateResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : HistoryUpdateResult", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryUpdateResult);
 
   parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_OperationResult, parseStatusCode);
-  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_CallRequestItem = -1;\r
-void parseCallRequestItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : CallRequestItem", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CallRequestItem);\r
+  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_CallRequestItem = -1;
+void parseCallRequestItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : CallRequestItem", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CallRequestItem);
 
   parseNodeId(subtree, tvb, pOffset, "ObjectId");
   parseNodeId(subtree, tvb, pOffset, "MethodId");
-  parseArrayComplex(subtree, tvb, pOffset, "InputArguments", parseVariant);\r
-}\r
-\r
-gint ett_opcua_CallResultItem = -1;\r
-void parseCallResultItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : CallResultItem", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CallResultItem);\r
+  parseArrayComplex(subtree, tvb, pOffset, "InputArguments", parseVariant);
+}
+
+gint ett_opcua_CallResultItem = -1;
+void parseCallResultItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : CallResultItem", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CallResultItem);
 
   parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_InputArgumentResults, parseStatusCode);
   parseArrayComplex(subtree, tvb, pOffset, "InputArgumentDiagnosticInfos", parseDiagnosticInfo);
-  parseArrayComplex(subtree, tvb, pOffset, "OutputArguments", parseVariant);\r
-}\r
-\r
-gint ett_opcua_DataChangeFilter = -1;\r
-void parseDataChangeFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DataChangeFilter", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DataChangeFilter);\r
+  parseArrayComplex(subtree, tvb, pOffset, "OutputArguments", parseVariant);
+}
+
+gint ett_opcua_DataChangeFilter = -1;
+void parseDataChangeFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DataChangeFilter", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DataChangeFilter);
   /* parse base class members */ 
   parseMonitoringFilter(subtree, tvb, pOffset, "[MonitoringFilter]");
   /* parse additional members */
   parseDataChangeTrigger(subtree, tvb, pOffset);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_DeadbandType);
-  parseDouble(subtree, tvb, pOffset, hf_opcua_DeadbandValue);\r
-}\r
-\r
-gint ett_opcua_MonitoringFilterResult = -1;\r
-void parseMonitoringFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoringFilterResult", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoringFilterResult);\r
\r
-}\r
-\r
-gint ett_opcua_EventFilterResult = -1;\r
-void parseEventFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EventFilterResult", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventFilterResult);\r
+  parseDouble(subtree, tvb, pOffset, hf_opcua_DeadbandValue);
+}
+
+gint ett_opcua_MonitoringFilterResult = -1;
+void parseMonitoringFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoringFilterResult", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoringFilterResult);
+}
+
+gint ett_opcua_EventFilterResult = -1;
+void parseEventFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EventFilterResult", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventFilterResult);
   /* parse base class members */ 
   parseMonitoringFilterResult(subtree, tvb, pOffset, "[MonitoringFilterResult]");
   /* parse additional members */
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_SelectClauseResults, parseStatusCode);
   parseArrayComplex(subtree, tvb, pOffset, "SelectClauseDiagnosticInfos", parseDiagnosticInfo);
-  parseContentFilterResult(subtree, tvb, pOffset, "WhereClauseResult");\r
-}\r
-\r
-gint ett_opcua_MonitoringAttributes = -1;\r
-void parseMonitoringAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoringAttributes", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoringAttributes);\r
+  parseContentFilterResult(subtree, tvb, pOffset, "WhereClauseResult");
+}
+
+gint ett_opcua_MonitoringAttributes = -1;
+void parseMonitoringAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoringAttributes", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoringAttributes);
 
   parseUInt32(subtree, tvb, pOffset, hf_opcua_ClientHandle);
   parseInt32(subtree, tvb, pOffset, hf_opcua_SamplingInterval);
   parseExtensionObject(subtree, tvb, pOffset, "Filter");
   parseUInt32(subtree, tvb, pOffset, hf_opcua_QueueSize);
-  parseBoolean(subtree, tvb, pOffset, hf_opcua_DiscardOldest);\r
-}\r
-\r
-gint ett_opcua_MonitoredItemCreateRequest = -1;\r
-void parseMonitoredItemCreateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoredItemCreateRequest", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoredItemCreateRequest);\r
+  parseBoolean(subtree, tvb, pOffset, hf_opcua_DiscardOldest);
+}
+
+gint ett_opcua_MonitoredItemCreateRequest = -1;
+void parseMonitoredItemCreateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoredItemCreateRequest", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoredItemCreateRequest);
 
   parseReadValueId(subtree, tvb, pOffset, "ItemToMonitor");
   parseMonitoringMode(subtree, tvb, pOffset);
-  parseMonitoringAttributes(subtree, tvb, pOffset, "RequestedAttributes");\r
-}\r
-\r
-gint ett_opcua_MonitoredItemCreateResult = -1;\r
-void parseMonitoredItemCreateResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoredItemCreateResult", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoredItemCreateResult);\r
+  parseMonitoringAttributes(subtree, tvb, pOffset, "RequestedAttributes");
+}
+
+gint ett_opcua_MonitoredItemCreateResult = -1;
+void parseMonitoredItemCreateResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoredItemCreateResult", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoredItemCreateResult);
 
   parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_MonitoredItemId);
   parseInt32(subtree, tvb, pOffset, hf_opcua_RevisedSamplingInterval);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedQueueSize);
-  parseExtensionObject(subtree, tvb, pOffset, "FilterResult");\r
-}\r
-\r
-gint ett_opcua_MonitoredItemModifyRequest = -1;\r
-void parseMonitoredItemModifyRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoredItemModifyRequest", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoredItemModifyRequest);\r
+  parseExtensionObject(subtree, tvb, pOffset, "FilterResult");
+}
+
+gint ett_opcua_MonitoredItemModifyRequest = -1;
+void parseMonitoredItemModifyRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoredItemModifyRequest", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoredItemModifyRequest);
 
   parseUInt32(subtree, tvb, pOffset, hf_opcua_MonitorItemId);
-  parseMonitoringAttributes(subtree, tvb, pOffset, "RequestedAttributes");\r
-}\r
-\r
-gint ett_opcua_MonitoredItemModifyResult = -1;\r
-void parseMonitoredItemModifyResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoredItemModifyResult", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoredItemModifyResult);\r
+  parseMonitoringAttributes(subtree, tvb, pOffset, "RequestedAttributes");
+}
+
+gint ett_opcua_MonitoredItemModifyResult = -1;
+void parseMonitoredItemModifyResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoredItemModifyResult", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoredItemModifyResult);
 
   parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
   parseInt32(subtree, tvb, pOffset, hf_opcua_RevisedSamplingInterval);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedQueueSize);
-  parseExtensionObject(subtree, tvb, pOffset, "FilterResult");\r
-}\r
-\r
-gint ett_opcua_SubscriptionAcknowledgement = -1;\r
-void parseSubscriptionAcknowledgement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SubscriptionAcknowledgement", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SubscriptionAcknowledgement);\r
+  parseExtensionObject(subtree, tvb, pOffset, "FilterResult");
+}
+
+gint ett_opcua_SubscriptionAcknowledgement = -1;
+void parseSubscriptionAcknowledgement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SubscriptionAcknowledgement", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SubscriptionAcknowledgement);
 
   parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
-  parseUInt32(subtree, tvb, pOffset, hf_opcua_SequenceNumber);\r
-}\r
-\r
-gint ett_opcua_NotificationMessage = -1;\r
-void parseNotificationMessage(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : NotificationMessage", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_NotificationMessage);\r
+  parseUInt32(subtree, tvb, pOffset, hf_opcua_SequenceNumber);
+}
+
+gint ett_opcua_NotificationMessage = -1;
+void parseNotificationMessage(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : NotificationMessage", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_NotificationMessage);
 
   parseUInt32(subtree, tvb, pOffset, hf_opcua_SequenceNumber);
   parseDateTime(subtree, tvb, pOffset, hf_opcua_PublishTime);
-  parseArrayComplex(subtree, tvb, pOffset, "NotificationData", parseExtensionObject);\r
-}\r
-\r
-gint ett_opcua_MonitoredItemNotification = -1;\r
-void parseMonitoredItemNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoredItemNotification", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoredItemNotification);\r
+  parseArrayComplex(subtree, tvb, pOffset, "NotificationData", parseExtensionObject);
+}
+
+gint ett_opcua_MonitoredItemNotification = -1;
+void parseMonitoredItemNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoredItemNotification", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoredItemNotification);
 
   parseUInt32(subtree, tvb, pOffset, hf_opcua_ClientHandle);
-  parseDataValue(subtree, tvb, pOffset, "Value");\r
-}\r
-\r
-gint ett_opcua_DataChangeNotification = -1;\r
-void parseDataChangeNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DataChangeNotification", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DataChangeNotification);\r
+  parseDataValue(subtree, tvb, pOffset, "Value");
+}
+
+gint ett_opcua_DataChangeNotification = -1;
+void parseDataChangeNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DataChangeNotification", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DataChangeNotification);
 
   parseArrayComplex(subtree, tvb, pOffset, "MonitoredItems", parseMonitoredItemNotification);
-  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_TransferResult = -1;\r
-void parseTransferResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : TransferResult", szFieldName);\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TransferResult);\r
+  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_TransferResult = -1;
+void parseTransferResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : TransferResult", szFieldName);
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TransferResult);
 
   parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode);
-  parseArraySimple(subtree, tvb, pOffset, hf_opcua_AvailableSequenceNumbersRanges, parseString);\r
-}\r
+  parseArraySimple(subtree, tvb, pOffset, hf_opcua_AvailableSequenceNumbersRanges, parseString);
+}
 
 /** Setup protocol subtree array */
 static gint *ett[] =
index 757d46115791b31cbfbe589dc8c3a6ac27c0e1aa..5f161adc8b0a787703c0358816f6939eed27d58b 100644 (file)
@@ -30,8 +30,8 @@
 
 #include "opcua_enumparser.h"
 
-\r
-/** NodeClass enum table */\r
+
+/** NodeClass enum table */
 static const value_string g_NodeClassTable[] = {
   { 0, "Node" },
   { 1, "Object" },
@@ -41,118 +41,118 @@ static const value_string g_NodeClassTable[] = {
   { 16, "VariableType" },
   { 32, "ReferenceType" },
   { 64, "DataType" },
-  { 128, "View" },\r
-  { 0, NULL }\r
-};\r
-static int hf_opcua_NodeClass = -1;\r
-\r
-void parseNodeClass(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-       proto_tree_add_item(tree, hf_opcua_NodeClass, tvb, *pOffset, 4, TRUE); *pOffset+=4;\r
-}\r
-\r
-/** IdType enum table */\r
+  { 128, "View" },
+  { 0, NULL }
+};
+static int hf_opcua_NodeClass = -1;
+
+void parseNodeClass(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+       proto_tree_add_item(tree, hf_opcua_NodeClass, tvb, *pOffset, 4, TRUE); *pOffset+=4;
+}
+
+/** IdType enum table */
 static const value_string g_IdTypeTable[] = {
   { 0, "Numeric" },
   { 1, "String" },
   { 2, "Uri" },
   { 3, "Guid" },
-  { 4, "Opaque" },\r
-  { 0, NULL }\r
-};\r
-static int hf_opcua_IdType = -1;\r
-\r
-void parseIdType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-       proto_tree_add_item(tree, hf_opcua_IdType, tvb, *pOffset, 4, TRUE); *pOffset+=4;\r
-}\r
-\r
-/** MessageSecurityMode enum table */\r
+  { 4, "Opaque" },
+  { 0, NULL }
+};
+static int hf_opcua_IdType = -1;
+
+void parseIdType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+       proto_tree_add_item(tree, hf_opcua_IdType, tvb, *pOffset, 4, TRUE); *pOffset+=4;
+}
+
+/** MessageSecurityMode enum table */
 static const value_string g_MessageSecurityModeTable[] = {
   { 0, "None" },
   { 1, "Sign" },
-  { 2, "SignAndEncrypt" },\r
-  { 0, NULL }\r
-};\r
-static int hf_opcua_MessageSecurityMode = -1;\r
-\r
-void parseMessageSecurityMode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-       proto_tree_add_item(tree, hf_opcua_MessageSecurityMode, tvb, *pOffset, 4, TRUE); *pOffset+=4;\r
-}\r
-\r
-/** UserTokenType enum table */\r
+  { 2, "SignAndEncrypt" },
+  { 0, NULL }
+};
+static int hf_opcua_MessageSecurityMode = -1;
+
+void parseMessageSecurityMode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+       proto_tree_add_item(tree, hf_opcua_MessageSecurityMode, tvb, *pOffset, 4, TRUE); *pOffset+=4;
+}
+
+/** UserTokenType enum table */
 static const value_string g_UserTokenTypeTable[] = {
   { 0, "Default" },
   { 1, "UserName" },
   { 2, "Certificate" },
-  { 3, "IssuedToken" },\r
-  { 0, NULL }\r
-};\r
-static int hf_opcua_UserTokenType = -1;\r
-\r
-void parseUserTokenType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-       proto_tree_add_item(tree, hf_opcua_UserTokenType, tvb, *pOffset, 4, TRUE); *pOffset+=4;\r
-}\r
-\r
-/** ServerDescriptionType enum table */\r
+  { 3, "IssuedToken" },
+  { 0, NULL }
+};
+static int hf_opcua_UserTokenType = -1;
+
+void parseUserTokenType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+       proto_tree_add_item(tree, hf_opcua_UserTokenType, tvb, *pOffset, 4, TRUE); *pOffset+=4;
+}
+
+/** ServerDescriptionType enum table */
 static const value_string g_ServerDescriptionTypeTable[] = {
   { 0, "Standard" },
-  { 1, "Discovery" },\r
-  { 0, NULL }\r
-};\r
-static int hf_opcua_ServerDescriptionType = -1;\r
-\r
-void parseServerDescriptionType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-       proto_tree_add_item(tree, hf_opcua_ServerDescriptionType, tvb, *pOffset, 4, TRUE); *pOffset+=4;\r
-}\r
-\r
-/** SecurityTokenRequestType enum table */\r
+  { 1, "Discovery" },
+  { 0, NULL }
+};
+static int hf_opcua_ServerDescriptionType = -1;
+
+void parseServerDescriptionType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+       proto_tree_add_item(tree, hf_opcua_ServerDescriptionType, tvb, *pOffset, 4, TRUE); *pOffset+=4;
+}
+
+/** SecurityTokenRequestType enum table */
 static const value_string g_SecurityTokenRequestTypeTable[] = {
   { 0, "Issue" },
-  { 1, "Renew" },\r
-  { 0, NULL }\r
-};\r
-static int hf_opcua_SecurityTokenRequestType = -1;\r
-\r
-void parseSecurityTokenRequestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-       proto_tree_add_item(tree, hf_opcua_SecurityTokenRequestType, tvb, *pOffset, 4, TRUE); *pOffset+=4;\r
-}\r
-\r
-/** ComplianceLevel enum table */\r
+  { 1, "Renew" },
+  { 0, NULL }
+};
+static int hf_opcua_SecurityTokenRequestType = -1;
+
+void parseSecurityTokenRequestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+       proto_tree_add_item(tree, hf_opcua_SecurityTokenRequestType, tvb, *pOffset, 4, TRUE); *pOffset+=4;
+}
+
+/** ComplianceLevel enum table */
 static const value_string g_ComplianceLevelTable[] = {
   { 0, "Untested" },
   { 1, "Partial" },
   { 2, "SelfTested" },
-  { 3, "Certified" },\r
-  { 0, NULL }\r
-};\r
-static int hf_opcua_ComplianceLevel = -1;\r
-\r
-void parseComplianceLevel(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-       proto_tree_add_item(tree, hf_opcua_ComplianceLevel, tvb, *pOffset, 4, TRUE); *pOffset+=4;\r
-}\r
-\r
-/** RedundancySupport enum table */\r
+  { 3, "Certified" },
+  { 0, NULL }
+};
+static int hf_opcua_ComplianceLevel = -1;
+
+void parseComplianceLevel(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+       proto_tree_add_item(tree, hf_opcua_ComplianceLevel, tvb, *pOffset, 4, TRUE); *pOffset+=4;
+}
+
+/** RedundancySupport enum table */
 static const value_string g_RedundancySupportTable[] = {
   { 1, "None" },
   { 2, "Cold" },
   { 3, "Warm" },
-  { 4, "Hot" },\r
-  { 0, NULL }\r
-};\r
-static int hf_opcua_RedundancySupport = -1;\r
-\r
-void parseRedundancySupport(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-       proto_tree_add_item(tree, hf_opcua_RedundancySupport, tvb, *pOffset, 4, TRUE); *pOffset+=4;\r
-}\r
-\r
-/** ServerState enum table */\r
+  { 4, "Hot" },
+  { 0, NULL }
+};
+static int hf_opcua_RedundancySupport = -1;
+
+void parseRedundancySupport(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+       proto_tree_add_item(tree, hf_opcua_RedundancySupport, tvb, *pOffset, 4, TRUE); *pOffset+=4;
+}
+
+/** ServerState enum table */
 static const value_string g_ServerStateTable[] = {
   { 1, "Running" },
   { 2, "Failed" },
@@ -161,31 +161,31 @@ static const value_string g_ServerStateTable[] = {
   { 5, "Shutdown" },
   { 6, "Test" },
   { 7, "CommunicationFault" },
-  { 8, "Unknown" },\r
-  { 0, NULL }\r
-};\r
-static int hf_opcua_ServerState = -1;\r
-\r
-void parseServerState(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-       proto_tree_add_item(tree, hf_opcua_ServerState, tvb, *pOffset, 4, TRUE); *pOffset+=4;\r
-}\r
-\r
-/** ExceptionDeviationType enum table */\r
+  { 8, "Unknown" },
+  { 0, NULL }
+};
+static int hf_opcua_ServerState = -1;
+
+void parseServerState(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+       proto_tree_add_item(tree, hf_opcua_ServerState, tvb, *pOffset, 4, TRUE); *pOffset+=4;
+}
+
+/** ExceptionDeviationType enum table */
 static const value_string g_ExceptionDeviationTypeTable[] = {
   { 1, "AbsoluteValue" },
   { 2, "PercentOfRange" },
-  { 3, "PercentOfValue" },\r
-  { 0, NULL }\r
-};\r
-static int hf_opcua_ExceptionDeviationType = -1;\r
-\r
-void parseExceptionDeviationType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-       proto_tree_add_item(tree, hf_opcua_ExceptionDeviationType, tvb, *pOffset, 4, TRUE); *pOffset+=4;\r
-}\r
-\r
-/** ColorsDataType enum table */\r
+  { 3, "PercentOfValue" },
+  { 0, NULL }
+};
+static int hf_opcua_ExceptionDeviationType = -1;
+
+void parseExceptionDeviationType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+       proto_tree_add_item(tree, hf_opcua_ExceptionDeviationType, tvb, *pOffset, 4, TRUE); *pOffset+=4;
+}
+
+/** ColorsDataType enum table */
 static const value_string g_ColorsDataTypeTable[] = {
   { 1, "Red" },
   { 2, "Orange" },
@@ -193,17 +193,17 @@ static const value_string g_ColorsDataTypeTable[] = {
   { 4, "Green" },
   { 5, "Blue" },
   { 6, "DarkBlue" },
-  { 7, "Violet" },\r
-  { 0, NULL }\r
-};\r
-static int hf_opcua_ColorsDataType = -1;\r
-\r
-void parseColorsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-       proto_tree_add_item(tree, hf_opcua_ColorsDataType, tvb, *pOffset, 4, TRUE); *pOffset+=4;\r
-}\r
-\r
-/** DiagnosticsMasks enum table */\r
+  { 7, "Violet" },
+  { 0, NULL }
+};
+static int hf_opcua_ColorsDataType = -1;
+
+void parseColorsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+       proto_tree_add_item(tree, hf_opcua_ColorsDataType, tvb, *pOffset, 4, TRUE); *pOffset+=4;
+}
+
+/** DiagnosticsMasks enum table */
 static const value_string g_DiagnosticsMasksTable[] = {
   { 1, "ServiceSymbolicId" },
   { 2, "ServiceLocalizedText" },
@@ -228,45 +228,45 @@ static const value_string g_DiagnosticsMasksTable[] = {
   { 528, "InnerDiagnostics" },
   { 99, "SymbolicIdAndText" },
   { 239, "NoInnerStatus" },
-  { 1023, "All" },\r
-  { 0, NULL }\r
-};\r
-static int hf_opcua_DiagnosticsMasks = -1;\r
-\r
-void parseDiagnosticsMasks(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-       proto_tree_add_item(tree, hf_opcua_DiagnosticsMasks, tvb, *pOffset, 4, TRUE); *pOffset+=4;\r
-}\r
-\r
-/** EnumeratedTestType enum table */\r
+  { 1023, "All" },
+  { 0, NULL }
+};
+static int hf_opcua_DiagnosticsMasks = -1;
+
+void parseDiagnosticsMasks(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+       proto_tree_add_item(tree, hf_opcua_DiagnosticsMasks, tvb, *pOffset, 4, TRUE); *pOffset+=4;
+}
+
+/** EnumeratedTestType enum table */
 static const value_string g_EnumeratedTestTypeTable[] = {
   { 1, "Red" },
   { 4, "Yellow" },
-  { 5, "Green" },\r
-  { 0, NULL }\r
-};\r
-static int hf_opcua_EnumeratedTestType = -1;\r
-\r
-void parseEnumeratedTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-       proto_tree_add_item(tree, hf_opcua_EnumeratedTestType, tvb, *pOffset, 4, TRUE); *pOffset+=4;\r
-}\r
-\r
-/** BrowseDirection enum table */\r
+  { 5, "Green" },
+  { 0, NULL }
+};
+static int hf_opcua_EnumeratedTestType = -1;
+
+void parseEnumeratedTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+       proto_tree_add_item(tree, hf_opcua_EnumeratedTestType, tvb, *pOffset, 4, TRUE); *pOffset+=4;
+}
+
+/** BrowseDirection enum table */
 static const value_string g_BrowseDirectionTable[] = {
   { 1, "Forward" },
   { 2, "Inverse" },
-  { 3, "Both" },\r
-  { 0, NULL }\r
-};\r
-static int hf_opcua_BrowseDirection = -1;\r
-\r
-void parseBrowseDirection(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-       proto_tree_add_item(tree, hf_opcua_BrowseDirection, tvb, *pOffset, 4, TRUE); *pOffset+=4;\r
-}\r
-\r
-/** FilterOperator enum table */\r
+  { 3, "Both" },
+  { 0, NULL }
+};
+static int hf_opcua_BrowseDirection = -1;
+
+void parseBrowseDirection(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+       proto_tree_add_item(tree, hf_opcua_BrowseDirection, tvb, *pOffset, 4, TRUE); *pOffset+=4;
+}
+
+/** FilterOperator enum table */
 static const value_string g_FilterOperatorTable[] = {
   { 1, "Equals" },
   { 2, "IsNull" },
@@ -282,132 +282,132 @@ static const value_string g_FilterOperatorTable[] = {
   { 12, "Or" },
   { 13, "InView" },
   { 14, "OfType" },
-  { 15, "RelatedTo" },\r
-  { 0, NULL }\r
-};\r
-static int hf_opcua_FilterOperator = -1;\r
-\r
-void parseFilterOperator(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-       proto_tree_add_item(tree, hf_opcua_FilterOperator, tvb, *pOffset, 4, TRUE); *pOffset+=4;\r
-}\r
-\r
-/** TimestampsToReturn enum table */\r
+  { 15, "RelatedTo" },
+  { 0, NULL }
+};
+static int hf_opcua_FilterOperator = -1;
+
+void parseFilterOperator(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+       proto_tree_add_item(tree, hf_opcua_FilterOperator, tvb, *pOffset, 4, TRUE); *pOffset+=4;
+}
+
+/** TimestampsToReturn enum table */
 static const value_string g_TimestampsToReturnTable[] = {
   { 1, "Source" },
   { 2, "Server" },
   { 3, "Both" },
-  { 4, "Neither" },\r
-  { 0, NULL }\r
-};\r
-static int hf_opcua_TimestampsToReturn = -1;\r
-\r
-void parseTimestampsToReturn(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-       proto_tree_add_item(tree, hf_opcua_TimestampsToReturn, tvb, *pOffset, 4, TRUE); *pOffset+=4;\r
-}\r
-\r
-/** MonitoringMode enum table */\r
+  { 4, "Neither" },
+  { 0, NULL }
+};
+static int hf_opcua_TimestampsToReturn = -1;
+
+void parseTimestampsToReturn(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+       proto_tree_add_item(tree, hf_opcua_TimestampsToReturn, tvb, *pOffset, 4, TRUE); *pOffset+=4;
+}
+
+/** MonitoringMode enum table */
 static const value_string g_MonitoringModeTable[] = {
   { 0, "Disabled" },
   { 1, "Sampling" },
-  { 2, "Reporting" },\r
-  { 0, NULL }\r
-};\r
-static int hf_opcua_MonitoringMode = -1;\r
-\r
-void parseMonitoringMode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-       proto_tree_add_item(tree, hf_opcua_MonitoringMode, tvb, *pOffset, 4, TRUE); *pOffset+=4;\r
-}\r
-\r
-/** DataChangeTrigger enum table */\r
+  { 2, "Reporting" },
+  { 0, NULL }
+};
+static int hf_opcua_MonitoringMode = -1;
+
+void parseMonitoringMode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+       proto_tree_add_item(tree, hf_opcua_MonitoringMode, tvb, *pOffset, 4, TRUE); *pOffset+=4;
+}
+
+/** DataChangeTrigger enum table */
 static const value_string g_DataChangeTriggerTable[] = {
   { 0, "Status" },
   { 1, "StatusValue" },
-  { 2, "StatusValueTimestamp" },\r
-  { 0, NULL }\r
-};\r
-static int hf_opcua_DataChangeTrigger = -1;\r
-\r
-void parseDataChangeTrigger(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-       proto_tree_add_item(tree, hf_opcua_DataChangeTrigger, tvb, *pOffset, 4, TRUE); *pOffset+=4;\r
-}\r
-\r
-/** DeadbandType enum table */\r
+  { 2, "StatusValueTimestamp" },
+  { 0, NULL }
+};
+static int hf_opcua_DataChangeTrigger = -1;
+
+void parseDataChangeTrigger(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+       proto_tree_add_item(tree, hf_opcua_DataChangeTrigger, tvb, *pOffset, 4, TRUE); *pOffset+=4;
+}
+
+/** DeadbandType enum table */
 static const value_string g_DeadbandTypeTable[] = {
   { 0, "None" },
   { 1, "Absolute" },
-  { 2, "Percentage" },\r
-  { 0, NULL }\r
-};\r
-static int hf_opcua_DeadbandType = -1;\r
-\r
-void parseDeadbandType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-       proto_tree_add_item(tree, hf_opcua_DeadbandType, tvb, *pOffset, 4, TRUE); *pOffset+=4;\r
-}\r
+  { 2, "Percentage" },
+  { 0, NULL }
+};
+static int hf_opcua_DeadbandType = -1;
+
+void parseDeadbandType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+       proto_tree_add_item(tree, hf_opcua_DeadbandType, tvb, *pOffset, 4, TRUE); *pOffset+=4;
+}
 
 /** header field definitions */
 static hf_register_info hf[] =
-{\r
-    { &hf_opcua_NodeClass,\r
-    {  "NodeClass", "", FT_UINT32, BASE_HEX,  VALS(g_NodeClassTable), 0x0, "", HFILL }\r
-    },\r
-    { &hf_opcua_IdType,\r
-    {  "IdType", "", FT_UINT32, BASE_HEX,  VALS(g_IdTypeTable), 0x0, "", HFILL }\r
-    },\r
-    { &hf_opcua_MessageSecurityMode,\r
-    {  "MessageSecurityMode", "", FT_UINT32, BASE_HEX,  VALS(g_MessageSecurityModeTable), 0x0, "", HFILL }\r
-    },\r
-    { &hf_opcua_UserTokenType,\r
-    {  "UserTokenType", "", FT_UINT32, BASE_HEX,  VALS(g_UserTokenTypeTable), 0x0, "", HFILL }\r
-    },\r
-    { &hf_opcua_ServerDescriptionType,\r
-    {  "ServerDescriptionType", "", FT_UINT32, BASE_HEX,  VALS(g_ServerDescriptionTypeTable), 0x0, "", HFILL }\r
-    },\r
-    { &hf_opcua_SecurityTokenRequestType,\r
-    {  "SecurityTokenRequestType", "", FT_UINT32, BASE_HEX,  VALS(g_SecurityTokenRequestTypeTable), 0x0, "", HFILL }\r
-    },\r
-    { &hf_opcua_ComplianceLevel,\r
-    {  "ComplianceLevel", "", FT_UINT32, BASE_HEX,  VALS(g_ComplianceLevelTable), 0x0, "", HFILL }\r
-    },\r
-    { &hf_opcua_RedundancySupport,\r
-    {  "RedundancySupport", "", FT_UINT32, BASE_HEX,  VALS(g_RedundancySupportTable), 0x0, "", HFILL }\r
-    },\r
-    { &hf_opcua_ServerState,\r
-    {  "ServerState", "", FT_UINT32, BASE_HEX,  VALS(g_ServerStateTable), 0x0, "", HFILL }\r
-    },\r
-    { &hf_opcua_ExceptionDeviationType,\r
-    {  "ExceptionDeviationType", "", FT_UINT32, BASE_HEX,  VALS(g_ExceptionDeviationTypeTable), 0x0, "", HFILL }\r
-    },\r
-    { &hf_opcua_ColorsDataType,\r
-    {  "ColorsDataType", "", FT_UINT32, BASE_HEX,  VALS(g_ColorsDataTypeTable), 0x0, "", HFILL }\r
-    },\r
-    { &hf_opcua_DiagnosticsMasks,\r
-    {  "DiagnosticsMasks", "", FT_UINT32, BASE_HEX,  VALS(g_DiagnosticsMasksTable), 0x0, "", HFILL }\r
-    },\r
-    { &hf_opcua_EnumeratedTestType,\r
-    {  "EnumeratedTestType", "", FT_UINT32, BASE_HEX,  VALS(g_EnumeratedTestTypeTable), 0x0, "", HFILL }\r
-    },\r
-    { &hf_opcua_BrowseDirection,\r
-    {  "BrowseDirection", "", FT_UINT32, BASE_HEX,  VALS(g_BrowseDirectionTable), 0x0, "", HFILL }\r
-    },\r
-    { &hf_opcua_FilterOperator,\r
-    {  "FilterOperator", "", FT_UINT32, BASE_HEX,  VALS(g_FilterOperatorTable), 0x0, "", HFILL }\r
-    },\r
-    { &hf_opcua_TimestampsToReturn,\r
-    {  "TimestampsToReturn", "", FT_UINT32, BASE_HEX,  VALS(g_TimestampsToReturnTable), 0x0, "", HFILL }\r
-    },\r
-    { &hf_opcua_MonitoringMode,\r
-    {  "MonitoringMode", "", FT_UINT32, BASE_HEX,  VALS(g_MonitoringModeTable), 0x0, "", HFILL }\r
-    },\r
-    { &hf_opcua_DataChangeTrigger,\r
-    {  "DataChangeTrigger", "", FT_UINT32, BASE_HEX,  VALS(g_DataChangeTriggerTable), 0x0, "", HFILL }\r
-    },\r
-    { &hf_opcua_DeadbandType,\r
-    {  "DeadbandType", "", FT_UINT32, BASE_HEX,  VALS(g_DeadbandTypeTable), 0x0, "", HFILL }\r
+{
+    { &hf_opcua_NodeClass,
+    {  "NodeClass", "", FT_UINT32, BASE_HEX,  VALS(g_NodeClassTable), 0x0, "", HFILL }
+    },
+    { &hf_opcua_IdType,
+    {  "IdType", "", FT_UINT32, BASE_HEX,  VALS(g_IdTypeTable), 0x0, "", HFILL }
+    },
+    { &hf_opcua_MessageSecurityMode,
+    {  "MessageSecurityMode", "", FT_UINT32, BASE_HEX,  VALS(g_MessageSecurityModeTable), 0x0, "", HFILL }
+    },
+    { &hf_opcua_UserTokenType,
+    {  "UserTokenType", "", FT_UINT32, BASE_HEX,  VALS(g_UserTokenTypeTable), 0x0, "", HFILL }
+    },
+    { &hf_opcua_ServerDescriptionType,
+    {  "ServerDescriptionType", "", FT_UINT32, BASE_HEX,  VALS(g_ServerDescriptionTypeTable), 0x0, "", HFILL }
+    },
+    { &hf_opcua_SecurityTokenRequestType,
+    {  "SecurityTokenRequestType", "", FT_UINT32, BASE_HEX,  VALS(g_SecurityTokenRequestTypeTable), 0x0, "", HFILL }
+    },
+    { &hf_opcua_ComplianceLevel,
+    {  "ComplianceLevel", "", FT_UINT32, BASE_HEX,  VALS(g_ComplianceLevelTable), 0x0, "", HFILL }
+    },
+    { &hf_opcua_RedundancySupport,
+    {  "RedundancySupport", "", FT_UINT32, BASE_HEX,  VALS(g_RedundancySupportTable), 0x0, "", HFILL }
+    },
+    { &hf_opcua_ServerState,
+    {  "ServerState", "", FT_UINT32, BASE_HEX,  VALS(g_ServerStateTable), 0x0, "", HFILL }
+    },
+    { &hf_opcua_ExceptionDeviationType,
+    {  "ExceptionDeviationType", "", FT_UINT32, BASE_HEX,  VALS(g_ExceptionDeviationTypeTable), 0x0, "", HFILL }
+    },
+    { &hf_opcua_ColorsDataType,
+    {  "ColorsDataType", "", FT_UINT32, BASE_HEX,  VALS(g_ColorsDataTypeTable), 0x0, "", HFILL }
+    },
+    { &hf_opcua_DiagnosticsMasks,
+    {  "DiagnosticsMasks", "", FT_UINT32, BASE_HEX,  VALS(g_DiagnosticsMasksTable), 0x0, "", HFILL }
+    },
+    { &hf_opcua_EnumeratedTestType,
+    {  "EnumeratedTestType", "", FT_UINT32, BASE_HEX,  VALS(g_EnumeratedTestTypeTable), 0x0, "", HFILL }
+    },
+    { &hf_opcua_BrowseDirection,
+    {  "BrowseDirection", "", FT_UINT32, BASE_HEX,  VALS(g_BrowseDirectionTable), 0x0, "", HFILL }
+    },
+    { &hf_opcua_FilterOperator,
+    {  "FilterOperator", "", FT_UINT32, BASE_HEX,  VALS(g_FilterOperatorTable), 0x0, "", HFILL }
+    },
+    { &hf_opcua_TimestampsToReturn,
+    {  "TimestampsToReturn", "", FT_UINT32, BASE_HEX,  VALS(g_TimestampsToReturnTable), 0x0, "", HFILL }
+    },
+    { &hf_opcua_MonitoringMode,
+    {  "MonitoringMode", "", FT_UINT32, BASE_HEX,  VALS(g_MonitoringModeTable), 0x0, "", HFILL }
+    },
+    { &hf_opcua_DataChangeTrigger,
+    {  "DataChangeTrigger", "", FT_UINT32, BASE_HEX,  VALS(g_DataChangeTriggerTable), 0x0, "", HFILL }
+    },
+    { &hf_opcua_DeadbandType,
+    {  "DeadbandType", "", FT_UINT32, BASE_HEX,  VALS(g_DeadbandTypeTable), 0x0, "", HFILL }
     }
 };
 
index 860cd42cc9baf95e3471694cef8a9ee25a2a78c4..82055640f02c7d08f8fa08f1b05e4673b3b9b4ec 100644 (file)
@@ -1,32 +1,32 @@
-/******************************************************************************\r
-** $Id$\r
-**\r
-** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved.\r
-** Web: http://www.ascolab.com\r
-**\r
-** This program is free software; you can redistribute it and/or\r
-** modify it under the terms of the GNU General Public License\r
-** as published by the Free Software Foundation; either version 2\r
-** of the License, or (at your option) any later version.\r
-**\r
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE\r
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.\r
-** \r
-** Project: OpcUa Wireshark Plugin\r
-**\r
-** Description: This file contains protocol field information.\r
-**\r
-** This file was autogenerated on 8.5.2007 18:53:26.\r
-** DON'T MODIFY THIS FILE!\r
-**\r
-******************************************************************************/\r
-\r
-#ifdef HAVE_CONFIG_H\r
-# include "config.h"\r
-#endif\r
-\r
-#include <gmodule.h>\r
-#include <epan/packet.h>\r
+/******************************************************************************
+** $Id$
+**
+** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved.
+** Web: http://www.ascolab.com
+**
+** This program is free software; you can redistribute it and/or
+** modify it under the terms of the GNU General Public License
+** as published by the Free Software Foundation; either version 2
+** of the License, or (at your option) any later version.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+** 
+** Project: OpcUa Wireshark Plugin
+**
+** Description: This file contains protocol field information.
+**
+** This file was autogenerated on 8.5.2007 18:53:26.
+** DON'T MODIFY THIS FILE!
+**
+******************************************************************************/
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <gmodule.h>
+#include <epan/packet.h>
 
 int hf_opcua_TestId = -1;
 int hf_opcua_Iteration = -1;
@@ -301,11 +301,11 @@ int hf_opcua_RevisedSamplingInterval = -1;
 int hf_opcua_RevisedQueueSize = -1;
 int hf_opcua_MonitorItemId = -1;
 int hf_opcua_PublishTime = -1;
-int hf_opcua_AvailableSequenceNumbersRanges = -1;\r
-\r
-/** header field definitions */\r
-static hf_register_info hf[] =\r
-{\r
+int hf_opcua_AvailableSequenceNumbersRanges = -1;
+
+/** header field definitions */
+static hf_register_info hf[] =
+{
 
    { &hf_opcua_TestId, { "TestId", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } },
    { &hf_opcua_Iteration, { "Iteration", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } },
@@ -580,11 +580,11 @@ static hf_register_info hf[] =
    { &hf_opcua_RevisedQueueSize, { "RevisedQueueSize", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } },
    { &hf_opcua_MonitorItemId, { "MonitorItemId", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } },
    { &hf_opcua_PublishTime, { "PublishTime", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } },
-   { &hf_opcua_AvailableSequenceNumbersRanges, { "AvailableSequenceNumbersRanges", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }\r
-};\r
-\r
-/** Register field types. */\r
-void registerFieldTypes(int proto)\r
-{\r
-    proto_register_field_array(proto, hf, array_length(hf));\r
-}\r
+   { &hf_opcua_AvailableSequenceNumbersRanges, { "AvailableSequenceNumbersRanges", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }
+};
+
+/** Register field types. */
+void registerFieldTypes(int proto)
+{
+    proto_register_field_array(proto, hf, array_length(hf));
+}
index 74f276c1662e75dc8736863e91c9143c86c98cab..aec6f060887bc468b2df9483a0b17aafe81209f1 100644 (file)
@@ -1,32 +1,32 @@
-/******************************************************************************\r
-** $Id$\r
-**\r
-** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved.\r
-** Web: http://www.ascolab.com\r
-** \r
-** This program is free software; you can redistribute it and/or\r
-** modify it under the terms of the GNU General Public License\r
-** as published by the Free Software Foundation; either version 2\r
-** of the License, or (at your option) any later version.\r
-** \r
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE\r
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.\r
-** \r
-** Project: OpcUa Wireshark Plugin\r
-**\r
-** Description: This file contains protocol field handles.\r
-**\r
-** This file was autogenerated on 8.5.2007 18:53:26.\r
-** DON'T MODIFY THIS FILE!\r
-**\r
-******************************************************************************/\r
-\r
-#ifdef HAVE_CONFIG_H\r
-# include "config.h"\r
-#endif\r
-\r
-#include <gmodule.h>\r
-#include <epan/packet.h>\r
+/******************************************************************************
+** $Id$
+**
+** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved.
+** Web: http://www.ascolab.com
+** 
+** This program is free software; you can redistribute it and/or
+** modify it under the terms of the GNU General Public License
+** as published by the Free Software Foundation; either version 2
+** of the License, or (at your option) any later version.
+** 
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+** 
+** Project: OpcUa Wireshark Plugin
+**
+** Description: This file contains protocol field handles.
+**
+** This file was autogenerated on 8.5.2007 18:53:26.
+** DON'T MODIFY THIS FILE!
+**
+******************************************************************************/
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <gmodule.h>
+#include <epan/packet.h>
 
 extern int hf_opcua_TestId;
 extern int hf_opcua_Iteration;
@@ -301,7 +301,7 @@ extern int hf_opcua_RevisedSamplingInterval;
 extern int hf_opcua_RevisedQueueSize;
 extern int hf_opcua_MonitorItemId;
 extern int hf_opcua_PublishTime;
-extern int hf_opcua_AvailableSequenceNumbersRanges;\r
-\r
-/** Register field types. */\r
-void registerFieldTypes(int proto);\r
+extern int hf_opcua_AvailableSequenceNumbersRanges;
+
+/** Register field types. */
+void registerFieldTypes(int proto);
index d5fd508eded2653146b1bac6513e1905c42ad7fa..67569810b5e3974da6617d899db476ee9059b017 100644 (file)
@@ -1,44 +1,44 @@
-/******************************************************************************\r
-** $Id$\r
-**\r
-** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved.\r
-** Web: http://www.ascolab.com\r
-** \r
-** This program is free software; you can redistribute it and/or\r
-** modify it under the terms of the GNU General Public License\r
-** as published by the Free Software Foundation; either version 2\r
-** of the License, or (at your option) any later version.\r
-** \r
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE\r
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.\r
-** \r
-** Project: OpcUa Wireshark Plugin\r
-**\r
-** Description: Parser type definitions.\r
-**\r
-** This file was autogenerated on 8.5.2007 18:53:26.\r
-** DON'T MODIFY THIS FILE!\r
-**\r
-******************************************************************************/\r
-\r
-#ifdef HAVE_CONFIG_H\r
-# include "config.h"\r
-#endif\r
-\r
-#include <gmodule.h>\r
-#include <epan/packet.h>\r
-\r
-/* declare service parser function prototype */\r
-typedef void (*fctServiceParser)(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);\r
-/* declare enum parser function prototype */\r
-typedef void (*fctEnumParser)(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);\r
-/* declare type parser function prototype */\r
-typedef void (*fctComplexTypeParser)(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName);\r
-/* declare type parser function prototype */\r
-typedef void (*fctSimpleTypeParser)(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex);\r
-\r
-typedef struct _ParserEntry\r
-{\r
-       int iRequestId;\r
-       fctServiceParser pParser;\r
-} ParserEntry;\r
+/******************************************************************************
+** $Id$
+**
+** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved.
+** Web: http://www.ascolab.com
+** 
+** This program is free software; you can redistribute it and/or
+** modify it under the terms of the GNU General Public License
+** as published by the Free Software Foundation; either version 2
+** of the License, or (at your option) any later version.
+** 
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+** 
+** Project: OpcUa Wireshark Plugin
+**
+** Description: Parser type definitions.
+**
+** This file was autogenerated on 8.5.2007 18:53:26.
+** DON'T MODIFY THIS FILE!
+**
+******************************************************************************/
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <gmodule.h>
+#include <epan/packet.h>
+
+/* declare service parser function prototype */
+typedef void (*fctServiceParser)(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
+/* declare enum parser function prototype */
+typedef void (*fctEnumParser)(proto_tree *tree, tvbuff_t *tvb, gint *pOffset);
+/* declare type parser function prototype */
+typedef void (*fctComplexTypeParser)(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName);
+/* declare type parser function prototype */
+typedef void (*fctSimpleTypeParser)(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex);
+
+typedef struct _ParserEntry
+{
+       int iRequestId;
+       fctServiceParser pParser;
+} ParserEntry;
index 7f3e330db202d39a9fd159ae526259d0abc217a9..db9adf402d36397a6a5dd9c4854a63d5ad672ce1 100644 (file)
 #include "opcua_simpletypes.h"
 #include "opcua_hfindeces.h"
 
-\r
-gint ett_opcua_TestStackRequest = -1;\r
-void parseTestStackRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TestStackRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TestStackRequest);\r
+
+gint ett_opcua_TestStackRequest = -1;
+void parseTestStackRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TestStackRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TestStackRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseUInt32(subtree, tvb, pOffset, hf_opcua_TestId);
   parseInt32(subtree, tvb, pOffset, hf_opcua_Iteration);
-  parseVariant(subtree, tvb, pOffset, "Input");\r
-}\r
-\r
-gint ett_opcua_TestStackResponse = -1;\r
-void parseTestStackResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TestStackResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TestStackResponse);\r
-
-  parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
-  parseVariant(subtree, tvb, pOffset, "Output");\r
-}\r
-\r
-gint ett_opcua_TestStackExRequest = -1;\r
-void parseTestStackExRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TestStackExRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TestStackExRequest);\r
+  parseVariant(subtree, tvb, pOffset, "Input");
+}
+
+gint ett_opcua_TestStackResponse = -1;
+void parseTestStackResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TestStackResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TestStackResponse);
+
+  parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+  parseVariant(subtree, tvb, pOffset, "Output");
+}
+
+gint ett_opcua_TestStackExRequest = -1;
+void parseTestStackExRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TestStackExRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TestStackExRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseUInt32(subtree, tvb, pOffset, hf_opcua_TestId);
   parseInt32(subtree, tvb, pOffset, hf_opcua_Iteration);
-  parseExtensionObject(subtree, tvb, pOffset, "Input");\r
-}\r
-\r
-gint ett_opcua_TestStackExResponse = -1;\r
-void parseTestStackExResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TestStackExResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TestStackExResponse);\r
-
-  parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
-  parseExtensionObject(subtree, tvb, pOffset, "Output");\r
-}\r
-\r
-gint ett_opcua_FindServersRequest = -1;\r
-void parseFindServersRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "FindServersRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_FindServersRequest);\r
+  parseExtensionObject(subtree, tvb, pOffset, "Input");
+}
+
+gint ett_opcua_TestStackExResponse = -1;
+void parseTestStackExResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TestStackExResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TestStackExResponse);
+
+  parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+  parseExtensionObject(subtree, tvb, pOffset, "Output");
+}
+
+gint ett_opcua_FindServersRequest = -1;
+void parseFindServersRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "FindServersRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_FindServersRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseArrayComplex(subtree, tvb, pOffset, "LocaleIds", parseLocalizedText);
-  parseArraySimple(subtree, tvb, pOffset, hf_opcua_ServerUris, parseString);\r
-}\r
-\r
-gint ett_opcua_FindServersResponse = -1;\r
-void parseFindServersResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "FindServersResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_FindServersResponse);\r
-
-  parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
-  parseArrayComplex(subtree, tvb, pOffset, "Servers", parseServerDescription);\r
-}\r
-\r
-gint ett_opcua_GetEndpointsRequest = -1;\r
-void parseGetEndpointsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "GetEndpointsRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_GetEndpointsRequest);\r
+  parseArraySimple(subtree, tvb, pOffset, hf_opcua_ServerUris, parseString);
+}
+
+gint ett_opcua_FindServersResponse = -1;
+void parseFindServersResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "FindServersResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_FindServersResponse);
+
+  parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+  parseArrayComplex(subtree, tvb, pOffset, "Servers", parseServerDescription);
+}
+
+gint ett_opcua_GetEndpointsRequest = -1;
+void parseGetEndpointsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "GetEndpointsRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_GetEndpointsRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseArrayComplex(subtree, tvb, pOffset, "LocaleIds", parseLocalizedText);
-  parseArraySimple(subtree, tvb, pOffset, hf_opcua_ProfileUris, parseString);\r
-}\r
-\r
-gint ett_opcua_GetEndpointsResponse = -1;\r
-void parseGetEndpointsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "GetEndpointsResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_GetEndpointsResponse);\r
-
-  parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
-  parseArrayComplex(subtree, tvb, pOffset, "Endpoints", parseEndpointDescription);\r
-}\r
-\r
-gint ett_opcua_RegisterServerRequest = -1;\r
-void parseRegisterServerRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "RegisterServerRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RegisterServerRequest);\r
-
-  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
-  parseRegisteredServer(subtree, tvb, pOffset, "Server");\r
-}\r
-\r
-gint ett_opcua_RegisterServerResponse = -1;\r
-void parseRegisterServerResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "RegisterServerResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RegisterServerResponse);\r
-
-  parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");\r
-}\r
-\r
-gint ett_opcua_OpenSecureChannelRequest = -1;\r
-void parseOpenSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "OpenSecureChannelRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_OpenSecureChannelRequest);\r
+  parseArraySimple(subtree, tvb, pOffset, hf_opcua_ProfileUris, parseString);
+}
+
+gint ett_opcua_GetEndpointsResponse = -1;
+void parseGetEndpointsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "GetEndpointsResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_GetEndpointsResponse);
+
+  parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+  parseArrayComplex(subtree, tvb, pOffset, "Endpoints", parseEndpointDescription);
+}
+
+gint ett_opcua_RegisterServerRequest = -1;
+void parseRegisterServerRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "RegisterServerRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RegisterServerRequest);
+
+  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+  parseRegisteredServer(subtree, tvb, pOffset, "Server");
+}
+
+gint ett_opcua_RegisterServerResponse = -1;
+void parseRegisterServerResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "RegisterServerResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RegisterServerResponse);
+
+  parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+}
+
+gint ett_opcua_OpenSecureChannelRequest = -1;
+void parseOpenSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "OpenSecureChannelRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_OpenSecureChannelRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseByteString(subtree, tvb, pOffset, hf_opcua_ClientCertificate);
@@ -153,58 +153,58 @@ void parseOpenSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffse
   parseString(subtree, tvb, pOffset, hf_opcua_SecurityPolicyUri);
   parseSecurityPolicy(subtree, tvb, pOffset, "SecurityPolicy");
   parseByteString(subtree, tvb, pOffset, hf_opcua_ClientNonce);
-  parseInt32(subtree, tvb, pOffset, hf_opcua_RequestedLifetime);\r
-}\r
-\r
-gint ett_opcua_OpenSecureChannelResponse = -1;\r
-void parseOpenSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "OpenSecureChannelResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_OpenSecureChannelResponse);\r
+  parseInt32(subtree, tvb, pOffset, hf_opcua_RequestedLifetime);
+}
+
+gint ett_opcua_OpenSecureChannelResponse = -1;
+void parseOpenSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "OpenSecureChannelResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_OpenSecureChannelResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseByteString(subtree, tvb, pOffset, hf_opcua_ServerCertificate);
   parseChannelSecurityToken(subtree, tvb, pOffset, "SecurityToken");
-  parseByteString(subtree, tvb, pOffset, hf_opcua_ServerNonce);\r
-}\r
-\r
-gint ett_opcua_CloseSecureChannelRequest = -1;\r
-void parseCloseSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CloseSecureChannelRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CloseSecureChannelRequest);\r
-
-  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
-  parseGuid(subtree, tvb, pOffset, hf_opcua_SecureChannelId);\r
-}\r
-\r
-gint ett_opcua_CloseSecureChannelResponse = -1;\r
-void parseCloseSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CloseSecureChannelResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CloseSecureChannelResponse);\r
-
-  parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");\r
-}\r
-\r
-gint ett_opcua_CreateSessionRequest = -1;\r
-void parseCreateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CreateSessionRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CreateSessionRequest);\r
+  parseByteString(subtree, tvb, pOffset, hf_opcua_ServerNonce);
+}
+
+gint ett_opcua_CloseSecureChannelRequest = -1;
+void parseCloseSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CloseSecureChannelRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CloseSecureChannelRequest);
+
+  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+  parseGuid(subtree, tvb, pOffset, hf_opcua_SecureChannelId);
+}
+
+gint ett_opcua_CloseSecureChannelResponse = -1;
+void parseCloseSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CloseSecureChannelResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CloseSecureChannelResponse);
+
+  parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+}
+
+gint ett_opcua_CreateSessionRequest = -1;
+void parseCreateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CreateSessionRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CreateSessionRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseString(subtree, tvb, pOffset, hf_opcua_ClientName);
   parseByteString(subtree, tvb, pOffset, hf_opcua_ClientNonce);
   parseByteString(subtree, tvb, pOffset, hf_opcua_ClientCertificate);
-  parseInt32(subtree, tvb, pOffset, hf_opcua_RequestedSessionTimeout);\r
-}\r
-\r
-gint ett_opcua_CreateSessionResponse = -1;\r
-void parseCreateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CreateSessionResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CreateSessionResponse);\r
+  parseInt32(subtree, tvb, pOffset, hf_opcua_RequestedSessionTimeout);
+}
+
+gint ett_opcua_CreateSessionResponse = -1;
+void parseCreateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CreateSessionResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CreateSessionResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseUInt32(subtree, tvb, pOffset, hf_opcua_SessionId);
@@ -212,183 +212,183 @@ void parseCreateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
   parseByteString(subtree, tvb, pOffset, hf_opcua_ServerNonce);
   parseByteString(subtree, tvb, pOffset, hf_opcua_ServerCertificate);
   parseArrayComplex(subtree, tvb, pOffset, "ServerSoftwareCertificates", parseSignedSoftwareCertificate);
-  parseSignatureData(subtree, tvb, pOffset, "ServerSignature");\r
-}\r
-\r
-gint ett_opcua_ActivateSessionRequest = -1;\r
-void parseActivateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ActivateSessionRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ActivateSessionRequest);\r
+  parseSignatureData(subtree, tvb, pOffset, "ServerSignature");
+}
+
+gint ett_opcua_ActivateSessionRequest = -1;
+void parseActivateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ActivateSessionRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ActivateSessionRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseSignatureData(subtree, tvb, pOffset, "ClientSignature");
   parseArrayComplex(subtree, tvb, pOffset, "ClientSoftwareCertificates", parseSignedSoftwareCertificate);
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_LocaleIds, parseString);
   parseExtensionObject(subtree, tvb, pOffset, "UserIdentityToken");
-  parseSignatureData(subtree, tvb, pOffset, "UserTokenSignature");\r
-}\r
-\r
-gint ett_opcua_ActivateSessionResponse = -1;\r
-void parseActivateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ActivateSessionResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ActivateSessionResponse);\r
+  parseSignatureData(subtree, tvb, pOffset, "UserTokenSignature");
+}
+
+gint ett_opcua_ActivateSessionResponse = -1;
+void parseActivateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ActivateSessionResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ActivateSessionResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseByteString(subtree, tvb, pOffset, hf_opcua_ServerNonce);
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_CertificateResults, parseStatusCode);
-  parseArrayComplex(subtree, tvb, pOffset, "CertificateDiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_CloseSessionRequest = -1;\r
-void parseCloseSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CloseSessionRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CloseSessionRequest);\r
-
-  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");\r
-}\r
-\r
-gint ett_opcua_CloseSessionResponse = -1;\r
-void parseCloseSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CloseSessionResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CloseSessionResponse);\r
-
-  parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");\r
-}\r
-\r
-gint ett_opcua_CancelRequest = -1;\r
-void parseCancelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CancelRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CancelRequest);\r
-
-  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
-  parseUInt32(subtree, tvb, pOffset, hf_opcua_SequenceNumber);\r
-}\r
-\r
-gint ett_opcua_CancelResponse = -1;\r
-void parseCancelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CancelResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CancelResponse);\r
-
-  parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");\r
-}\r
-\r
-gint ett_opcua_AddNodesRequest = -1;\r
-void parseAddNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "AddNodesRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddNodesRequest);\r
-
-  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
-  parseArrayComplex(subtree, tvb, pOffset, "NodesToAdd", parseAddNodesItem);\r
-}\r
-\r
-gint ett_opcua_AddNodesResponse = -1;\r
-void parseAddNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "AddNodesResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddNodesResponse);\r
+  parseArrayComplex(subtree, tvb, pOffset, "CertificateDiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_CloseSessionRequest = -1;
+void parseCloseSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CloseSessionRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CloseSessionRequest);
+
+  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+}
+
+gint ett_opcua_CloseSessionResponse = -1;
+void parseCloseSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CloseSessionResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CloseSessionResponse);
+
+  parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+}
+
+gint ett_opcua_CancelRequest = -1;
+void parseCancelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CancelRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CancelRequest);
+
+  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+  parseUInt32(subtree, tvb, pOffset, hf_opcua_SequenceNumber);
+}
+
+gint ett_opcua_CancelResponse = -1;
+void parseCancelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CancelResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CancelResponse);
+
+  parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+}
+
+gint ett_opcua_AddNodesRequest = -1;
+void parseAddNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "AddNodesRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddNodesRequest);
+
+  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+  parseArrayComplex(subtree, tvb, pOffset, "NodesToAdd", parseAddNodesItem);
+}
+
+gint ett_opcua_AddNodesResponse = -1;
+void parseAddNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "AddNodesResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddNodesResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseArrayComplex(subtree, tvb, pOffset, "Results", parseAddNodesResult);
-  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_AddReferencesRequest = -1;\r
-void parseAddReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "AddReferencesRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddReferencesRequest);\r
-
-  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
-  parseArrayComplex(subtree, tvb, pOffset, "ReferencesToAdd", parseAddReferencesItem);\r
-}\r
-\r
-gint ett_opcua_AddReferencesResponse = -1;\r
-void parseAddReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "AddReferencesResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddReferencesResponse);\r
+  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_AddReferencesRequest = -1;
+void parseAddReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "AddReferencesRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddReferencesRequest);
+
+  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+  parseArrayComplex(subtree, tvb, pOffset, "ReferencesToAdd", parseAddReferencesItem);
+}
+
+gint ett_opcua_AddReferencesResponse = -1;
+void parseAddReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "AddReferencesResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddReferencesResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode);
-  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_DeleteNodesRequest = -1;\r
-void parseDeleteNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteNodesRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteNodesRequest);\r
-
-  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
-  parseArrayComplex(subtree, tvb, pOffset, "NodesToDelete", parseDeleteNodesItem);\r
-}\r
-\r
-gint ett_opcua_DeleteNodesResponse = -1;\r
-void parseDeleteNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteNodesResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteNodesResponse);\r
+  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_DeleteNodesRequest = -1;
+void parseDeleteNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteNodesRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteNodesRequest);
+
+  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+  parseArrayComplex(subtree, tvb, pOffset, "NodesToDelete", parseDeleteNodesItem);
+}
+
+gint ett_opcua_DeleteNodesResponse = -1;
+void parseDeleteNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteNodesResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteNodesResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode);
-  parseArrayComplex(subtree, tvb, pOffset, "Diagnostics", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_DeleteReferencesRequest = -1;\r
-void parseDeleteReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteReferencesRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteReferencesRequest);\r
-
-  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
-  parseArrayComplex(subtree, tvb, pOffset, "ReferencesToDelete", parseDeleteReferencesItem);\r
-}\r
-\r
-gint ett_opcua_DeleteReferencesResponse = -1;\r
-void parseDeleteReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteReferencesResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteReferencesResponse);\r
+  parseArrayComplex(subtree, tvb, pOffset, "Diagnostics", parseDiagnosticInfo);
+}
+
+gint ett_opcua_DeleteReferencesRequest = -1;
+void parseDeleteReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteReferencesRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteReferencesRequest);
+
+  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+  parseArrayComplex(subtree, tvb, pOffset, "ReferencesToDelete", parseDeleteReferencesItem);
+}
+
+gint ett_opcua_DeleteReferencesResponse = -1;
+void parseDeleteReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteReferencesResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteReferencesResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode);
-  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_BrowsePropertiesRequest = -1;\r
-void parseBrowsePropertiesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "BrowsePropertiesRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowsePropertiesRequest);\r
+  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_BrowsePropertiesRequest = -1;
+void parseBrowsePropertiesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "BrowsePropertiesRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowsePropertiesRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseArrayComplex(subtree, tvb, pOffset, "NodesToAccess", parseNodeId);
-  parseArrayComplex(subtree, tvb, pOffset, "Properties", parseQualifiedName);\r
-}\r
-\r
-gint ett_opcua_BrowsePropertiesResponse = -1;\r
-void parseBrowsePropertiesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "BrowsePropertiesResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowsePropertiesResponse);\r
+  parseArrayComplex(subtree, tvb, pOffset, "Properties", parseQualifiedName);
+}
+
+gint ett_opcua_BrowsePropertiesResponse = -1;
+void parseBrowsePropertiesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "BrowsePropertiesResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowsePropertiesResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseArrayComplex(subtree, tvb, pOffset, "NodeResults", parseBrowsePropertiesResult);
-  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_BrowseRequest = -1;\r
-void parseBrowseRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "BrowseRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowseRequest);\r
+  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_BrowseRequest = -1;
+void parseBrowseRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "BrowseRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowseRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseViewDescription(subtree, tvb, pOffset, "View");
@@ -397,68 +397,68 @@ void parseBrowseRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
   parseBrowseDirection(subtree, tvb, pOffset);
   parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId");
   parseBoolean(subtree, tvb, pOffset, hf_opcua_IncludeSubtypes);
-  parseInt32(subtree, tvb, pOffset, hf_opcua_NodeClassMask);\r
-}\r
-\r
-gint ett_opcua_BrowseResponse = -1;\r
-void parseBrowseResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "BrowseResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowseResponse);\r
+  parseInt32(subtree, tvb, pOffset, hf_opcua_NodeClassMask);
+}
+
+gint ett_opcua_BrowseResponse = -1;
+void parseBrowseResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "BrowseResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowseResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint);
-  parseArrayComplex(subtree, tvb, pOffset, "References", parseReferenceDescription);\r
-}\r
-\r
-gint ett_opcua_BrowseNextRequest = -1;\r
-void parseBrowseNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "BrowseNextRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowseNextRequest);\r
+  parseArrayComplex(subtree, tvb, pOffset, "References", parseReferenceDescription);
+}
+
+gint ett_opcua_BrowseNextRequest = -1;
+void parseBrowseNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "BrowseNextRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowseNextRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseBoolean(subtree, tvb, pOffset, hf_opcua_ReleaseContinuationPoint);
-  parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint);\r
-}\r
-\r
-gint ett_opcua_BrowseNextResponse = -1;\r
-void parseBrowseNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "BrowseNextResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowseNextResponse);\r
+  parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint);
+}
+
+gint ett_opcua_BrowseNextResponse = -1;
+void parseBrowseNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "BrowseNextResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowseNextResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseByteString(subtree, tvb, pOffset, hf_opcua_RevisedContinuationPoint);
-  parseArrayComplex(subtree, tvb, pOffset, "References", parseReferenceDescription);\r
-}\r
-\r
-gint ett_opcua_TranslateBrowsePathsToNodeIdsRequest = -1;\r
-void parseTranslateBrowsePathsToNodeIdsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TranslateBrowsePathsToNodeIdsRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TranslateBrowsePathsToNodeIdsRequest);\r
-
-  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
-  parseArrayComplex(subtree, tvb, pOffset, "BrowsePaths", parseBrowsePath);\r
-}\r
-\r
-gint ett_opcua_TranslateBrowsePathsToNodeIdsResponse = -1;\r
-void parseTranslateBrowsePathsToNodeIdsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TranslateBrowsePathsToNodeIdsResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TranslateBrowsePathsToNodeIdsResponse);\r
+  parseArrayComplex(subtree, tvb, pOffset, "References", parseReferenceDescription);
+}
+
+gint ett_opcua_TranslateBrowsePathsToNodeIdsRequest = -1;
+void parseTranslateBrowsePathsToNodeIdsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TranslateBrowsePathsToNodeIdsRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TranslateBrowsePathsToNodeIdsRequest);
+
+  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+  parseArrayComplex(subtree, tvb, pOffset, "BrowsePaths", parseBrowsePath);
+}
+
+gint ett_opcua_TranslateBrowsePathsToNodeIdsResponse = -1;
+void parseTranslateBrowsePathsToNodeIdsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TranslateBrowsePathsToNodeIdsResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TranslateBrowsePathsToNodeIdsResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseArrayComplex(subtree, tvb, pOffset, "Results", parseTranslateBrowsePathResult);
-  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_QueryFirstRequest = -1;\r
-void parseQueryFirstRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "QueryFirstRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryFirstRequest);\r
+  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_QueryFirstRequest = -1;
+void parseQueryFirstRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "QueryFirstRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryFirstRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseViewDescription(subtree, tvb, pOffset, "View");
@@ -467,362 +467,362 @@ void parseQueryFirstRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
   parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxDescriptionsToReturn);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxReferencesToReturn);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxReferencedNodesToReturn);
-  parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxTime);\r
-}\r
-\r
-gint ett_opcua_QueryFirstResponse = -1;\r
-void parseQueryFirstResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "QueryFirstResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryFirstResponse);\r
+  parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxTime);
+}
+
+gint ett_opcua_QueryFirstResponse = -1;
+void parseQueryFirstResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "QueryFirstResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryFirstResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseArrayComplex(subtree, tvb, pOffset, "QueryDataSets", parseQueryDataSet);
   parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint);
   parseArrayComplex(subtree, tvb, pOffset, "Results", parseQueryResult);
   parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfo", parseDiagnosticInfo);
-  parseContentFilterResult(subtree, tvb, pOffset, "ContentFilterResult");\r
-}\r
-\r
-gint ett_opcua_QueryNextRequest = -1;\r
-void parseQueryNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "QueryNextRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryNextRequest);\r
+  parseContentFilterResult(subtree, tvb, pOffset, "ContentFilterResult");
+}
+
+gint ett_opcua_QueryNextRequest = -1;
+void parseQueryNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "QueryNextRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryNextRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseBoolean(subtree, tvb, pOffset, hf_opcua_ReleaseContinuationPoint);
-  parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint);\r
-}\r
-\r
-gint ett_opcua_QueryNextResponse = -1;\r
-void parseQueryNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "QueryNextResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryNextResponse);\r
+  parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint);
+}
+
+gint ett_opcua_QueryNextResponse = -1;
+void parseQueryNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "QueryNextResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryNextResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseArrayComplex(subtree, tvb, pOffset, "QueryDataSets", parseQueryDataSet);
-  parseByteString(subtree, tvb, pOffset, hf_opcua_RevisedContinuationPoint);\r
-}\r
-\r
-gint ett_opcua_ReadRequest = -1;\r
-void parseReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ReadRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadRequest);\r
+  parseByteString(subtree, tvb, pOffset, hf_opcua_RevisedContinuationPoint);
+}
+
+gint ett_opcua_ReadRequest = -1;
+void parseReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ReadRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseInt32(subtree, tvb, pOffset, hf_opcua_MaxAge);
   parseTimestampsToReturn(subtree, tvb, pOffset);
-  parseArrayComplex(subtree, tvb, pOffset, "NodesToRead", parseReadValueId);\r
-}\r
-\r
-gint ett_opcua_ReadResponse = -1;\r
-void parseReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ReadResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadResponse);\r
+  parseArrayComplex(subtree, tvb, pOffset, "NodesToRead", parseReadValueId);
+}
+
+gint ett_opcua_ReadResponse = -1;
+void parseReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ReadResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseArrayComplex(subtree, tvb, pOffset, "Results", parseDataValue);
-  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_HistoryReadRequest = -1;\r
-void parseHistoryReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "HistoryReadRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryReadRequest);\r
+  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_HistoryReadRequest = -1;
+void parseHistoryReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "HistoryReadRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryReadRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseExtensionObject(subtree, tvb, pOffset, "HistoryReadDetails");
   parseTimestampsToReturn(subtree, tvb, pOffset);
   parseBoolean(subtree, tvb, pOffset, hf_opcua_ReleaseContinuationPoints);
-  parseArrayComplex(subtree, tvb, pOffset, "NodesToRead", parseHistoryReadValueId);\r
-}\r
-\r
-gint ett_opcua_HistoryReadResponse = -1;\r
-void parseHistoryReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "HistoryReadResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryReadResponse);\r
+  parseArrayComplex(subtree, tvb, pOffset, "NodesToRead", parseHistoryReadValueId);
+}
+
+gint ett_opcua_HistoryReadResponse = -1;
+void parseHistoryReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "HistoryReadResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryReadResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseArrayComplex(subtree, tvb, pOffset, "Results", parseHistoryReadResult);
-  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_WriteRequest = -1;\r
-void parseWriteRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "WriteRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_WriteRequest);\r
-
-  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
-  parseArrayComplex(subtree, tvb, pOffset, "NodesToWrite", parseWriteValue);\r
-}\r
-\r
-gint ett_opcua_WriteResponse = -1;\r
-void parseWriteResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "WriteResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_WriteResponse);\r
+  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_WriteRequest = -1;
+void parseWriteRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "WriteRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_WriteRequest);
+
+  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+  parseArrayComplex(subtree, tvb, pOffset, "NodesToWrite", parseWriteValue);
+}
+
+gint ett_opcua_WriteResponse = -1;
+void parseWriteResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "WriteResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_WriteResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode);
-  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_HistoryUpdateRequest = -1;\r
-void parseHistoryUpdateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "HistoryUpdateRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryUpdateRequest);\r
-
-  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
-  parseArrayComplex(subtree, tvb, pOffset, "HistoryUpdateDetails", parseExtensionObject);\r
-}\r
-\r
-gint ett_opcua_HistoryUpdateResponse = -1;\r
-void parseHistoryUpdateResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "HistoryUpdateResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryUpdateResponse);\r
+  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_HistoryUpdateRequest = -1;
+void parseHistoryUpdateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "HistoryUpdateRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryUpdateRequest);
+
+  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+  parseArrayComplex(subtree, tvb, pOffset, "HistoryUpdateDetails", parseExtensionObject);
+}
+
+gint ett_opcua_HistoryUpdateResponse = -1;
+void parseHistoryUpdateResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "HistoryUpdateResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryUpdateResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseArrayComplex(subtree, tvb, pOffset, "Results", parseHistoryUpdateResult);
-  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_CallRequest = -1;\r
-void parseCallRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CallRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CallRequest);\r
-
-  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
-  parseArrayComplex(subtree, tvb, pOffset, "MethodsToCall", parseCallRequestItem);\r
-}\r
-\r
-gint ett_opcua_CallResponse = -1;\r
-void parseCallResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CallResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CallResponse);\r
+  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_CallRequest = -1;
+void parseCallRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CallRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CallRequest);
+
+  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+  parseArrayComplex(subtree, tvb, pOffset, "MethodsToCall", parseCallRequestItem);
+}
+
+gint ett_opcua_CallResponse = -1;
+void parseCallResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CallResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CallResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseArrayComplex(subtree, tvb, pOffset, "Results", parseCallResultItem);
-  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_CreateMonitoredItemsRequest = -1;\r
-void parseCreateMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CreateMonitoredItemsRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CreateMonitoredItemsRequest);\r
+  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_CreateMonitoredItemsRequest = -1;
+void parseCreateMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CreateMonitoredItemsRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CreateMonitoredItemsRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
   parseTimestampsToReturn(subtree, tvb, pOffset);
-  parseArrayComplex(subtree, tvb, pOffset, "ItemsToCreate", parseMonitoredItemCreateRequest);\r
-}\r
-\r
-gint ett_opcua_CreateMonitoredItemsResponse = -1;\r
-void parseCreateMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CreateMonitoredItemsResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CreateMonitoredItemsResponse);\r
+  parseArrayComplex(subtree, tvb, pOffset, "ItemsToCreate", parseMonitoredItemCreateRequest);
+}
+
+gint ett_opcua_CreateMonitoredItemsResponse = -1;
+void parseCreateMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CreateMonitoredItemsResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CreateMonitoredItemsResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseArrayComplex(subtree, tvb, pOffset, "Results", parseMonitoredItemCreateResult);
-  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_ModifyMonitoredItemsRequest = -1;\r
-void parseModifyMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ModifyMonitoredItemsRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ModifyMonitoredItemsRequest);\r
+  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_ModifyMonitoredItemsRequest = -1;
+void parseModifyMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ModifyMonitoredItemsRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ModifyMonitoredItemsRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
   parseTimestampsToReturn(subtree, tvb, pOffset);
-  parseArrayComplex(subtree, tvb, pOffset, "ItemsToModify", parseMonitoredItemModifyRequest);\r
-}\r
-\r
-gint ett_opcua_ModifyMonitoredItemsResponse = -1;\r
-void parseModifyMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ModifyMonitoredItemsResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ModifyMonitoredItemsResponse);\r
+  parseArrayComplex(subtree, tvb, pOffset, "ItemsToModify", parseMonitoredItemModifyRequest);
+}
+
+gint ett_opcua_ModifyMonitoredItemsResponse = -1;
+void parseModifyMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ModifyMonitoredItemsResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ModifyMonitoredItemsResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseArrayComplex(subtree, tvb, pOffset, "Results", parseMonitoredItemModifyResult);
-  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_SetMonitoringModeRequest = -1;\r
-void parseSetMonitoringModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "SetMonitoringModeRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SetMonitoringModeRequest);\r
+  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_SetMonitoringModeRequest = -1;
+void parseSetMonitoringModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "SetMonitoringModeRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SetMonitoringModeRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
   parseMonitoringMode(subtree, tvb, pOffset);
-  parseArraySimple(subtree, tvb, pOffset, hf_opcua_MonitoredItemIds, parseUInt32);\r
-}\r
-\r
-gint ett_opcua_SetMonitoringModeResponse = -1;\r
-void parseSetMonitoringModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "SetMonitoringModeResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SetMonitoringModeResponse);\r
+  parseArraySimple(subtree, tvb, pOffset, hf_opcua_MonitoredItemIds, parseUInt32);
+}
+
+gint ett_opcua_SetMonitoringModeResponse = -1;
+void parseSetMonitoringModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "SetMonitoringModeResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SetMonitoringModeResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode);
-  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_SetTriggeringRequest = -1;\r
-void parseSetTriggeringRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "SetTriggeringRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SetTriggeringRequest);\r
+  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_SetTriggeringRequest = -1;
+void parseSetTriggeringRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "SetTriggeringRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SetTriggeringRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_TriggeringItemId);
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_LinksToAdd, parseUInt32);
-  parseArraySimple(subtree, tvb, pOffset, hf_opcua_LinksToRemove, parseUInt32);\r
-}\r
-\r
-gint ett_opcua_SetTriggeringResponse = -1;\r
-void parseSetTriggeringResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "SetTriggeringResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SetTriggeringResponse);\r
+  parseArraySimple(subtree, tvb, pOffset, hf_opcua_LinksToRemove, parseUInt32);
+}
+
+gint ett_opcua_SetTriggeringResponse = -1;
+void parseSetTriggeringResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "SetTriggeringResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SetTriggeringResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_AddResults, parseStatusCode);
   parseArrayComplex(subtree, tvb, pOffset, "AddDiagnosticInfos", parseDiagnosticInfo);
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_RemoveResults, parseStatusCode);
-  parseArrayComplex(subtree, tvb, pOffset, "RemoveDiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_DeleteMonitoredItemsRequest = -1;\r
-void parseDeleteMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteMonitoredItemsRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteMonitoredItemsRequest);\r
+  parseArrayComplex(subtree, tvb, pOffset, "RemoveDiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_DeleteMonitoredItemsRequest = -1;
+void parseDeleteMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteMonitoredItemsRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteMonitoredItemsRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
-  parseArraySimple(subtree, tvb, pOffset, hf_opcua_MonitoredItemIds, parseUInt32);\r
-}\r
-\r
-gint ett_opcua_DeleteMonitoredItemsResponse = -1;\r
-void parseDeleteMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteMonitoredItemsResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteMonitoredItemsResponse);\r
+  parseArraySimple(subtree, tvb, pOffset, hf_opcua_MonitoredItemIds, parseUInt32);
+}
+
+gint ett_opcua_DeleteMonitoredItemsResponse = -1;
+void parseDeleteMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteMonitoredItemsResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteMonitoredItemsResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode);
-  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_CreateSubscriptionRequest = -1;\r
-void parseCreateSubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CreateSubscriptionRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CreateSubscriptionRequest);\r
+  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_CreateSubscriptionRequest = -1;
+void parseCreateSubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CreateSubscriptionRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CreateSubscriptionRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseInt32(subtree, tvb, pOffset, hf_opcua_RequestedPublishingInterval);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedLifetimeCounter);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedMaxKeepAliveCount);
   parseBoolean(subtree, tvb, pOffset, hf_opcua_PublishingEnabled);
-  parseByte(subtree, tvb, pOffset, hf_opcua_Priority);\r
-}\r
-\r
-gint ett_opcua_CreateSubscriptionResponse = -1;\r
-void parseCreateSubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CreateSubscriptionResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CreateSubscriptionResponse);\r
+  parseByte(subtree, tvb, pOffset, hf_opcua_Priority);
+}
+
+gint ett_opcua_CreateSubscriptionResponse = -1;
+void parseCreateSubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CreateSubscriptionResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CreateSubscriptionResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
   parseInt32(subtree, tvb, pOffset, hf_opcua_RevisedPublishingInterval);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedLifetimeCounter);
-  parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedMaxKeepAliveCount);\r
-}\r
-\r
-gint ett_opcua_ModifySubscriptionRequest = -1;\r
-void parseModifySubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ModifySubscriptionRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ModifySubscriptionRequest);\r
+  parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedMaxKeepAliveCount);
+}
+
+gint ett_opcua_ModifySubscriptionRequest = -1;
+void parseModifySubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ModifySubscriptionRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ModifySubscriptionRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
   parseInt32(subtree, tvb, pOffset, hf_opcua_RequestedPublishingInterval);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedLifetimeCounter);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedMaxKeepAliveCount);
-  parseByte(subtree, tvb, pOffset, hf_opcua_Priority);\r
-}\r
-\r
-gint ett_opcua_ModifySubscriptionResponse = -1;\r
-void parseModifySubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ModifySubscriptionResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ModifySubscriptionResponse);\r
+  parseByte(subtree, tvb, pOffset, hf_opcua_Priority);
+}
+
+gint ett_opcua_ModifySubscriptionResponse = -1;
+void parseModifySubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ModifySubscriptionResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ModifySubscriptionResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseInt32(subtree, tvb, pOffset, hf_opcua_RevisedPublishingInterval);
   parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedLifetimeCounter);
-  parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedMaxKeepAliveCount);\r
-}\r
-\r
-gint ett_opcua_SetPublishingModeRequest = -1;\r
-void parseSetPublishingModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "SetPublishingModeRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SetPublishingModeRequest);\r
+  parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedMaxKeepAliveCount);
+}
+
+gint ett_opcua_SetPublishingModeRequest = -1;
+void parseSetPublishingModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "SetPublishingModeRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SetPublishingModeRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseBoolean(subtree, tvb, pOffset, hf_opcua_PublishingEnabled);
-  parseArraySimple(subtree, tvb, pOffset, hf_opcua_SubscriptionIds, parseUInt32);\r
-}\r
-\r
-gint ett_opcua_SetPublishingModeResponse = -1;\r
-void parseSetPublishingModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "SetPublishingModeResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SetPublishingModeResponse);\r
+  parseArraySimple(subtree, tvb, pOffset, hf_opcua_SubscriptionIds, parseUInt32);
+}
+
+gint ett_opcua_SetPublishingModeResponse = -1;
+void parseSetPublishingModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "SetPublishingModeResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SetPublishingModeResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode);
-  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_PublishRequest = -1;\r
-void parsePublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "PublishRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_PublishRequest);\r
-
-  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
-  parseArrayComplex(subtree, tvb, pOffset, "SubscriptionAcknowledgements", parseSubscriptionAcknowledgement);\r
-}\r
-\r
-gint ett_opcua_PublishResponse = -1;\r
-void parsePublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "PublishResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_PublishResponse);\r
+  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_PublishRequest = -1;
+void parsePublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "PublishRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_PublishRequest);
+
+  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+  parseArrayComplex(subtree, tvb, pOffset, "SubscriptionAcknowledgements", parseSubscriptionAcknowledgement);
+}
+
+gint ett_opcua_PublishResponse = -1;
+void parsePublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "PublishResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_PublishResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
@@ -830,71 +830,71 @@ void parsePublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
   parseBoolean(subtree, tvb, pOffset, hf_opcua_MoreNotifications);
   parseNotificationMessage(subtree, tvb, pOffset, "NotificationMessage");
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode);
-  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_RepublishRequest = -1;\r
-void parseRepublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "RepublishRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RepublishRequest);\r
+  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_RepublishRequest = -1;
+void parseRepublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "RepublishRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RepublishRequest);
 
   parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
   parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
-  parseUInt32(subtree, tvb, pOffset, hf_opcua_RetransmitSequenceNumber);\r
-}\r
-\r
-gint ett_opcua_RepublishResponse = -1;\r
-void parseRepublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "RepublishResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RepublishResponse);\r
-
-  parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
-  parseNotificationMessage(subtree, tvb, pOffset, "NotificationMessage");\r
-}\r
-\r
-gint ett_opcua_TransferSubscriptionsRequest = -1;\r
-void parseTransferSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TransferSubscriptionsRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TransferSubscriptionsRequest);\r
-
-  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
-  parseArraySimple(subtree, tvb, pOffset, hf_opcua_SubscriptionIds, parseUInt32);\r
-}\r
-\r
-gint ett_opcua_TransferSubscriptionsResponse = -1;\r
-void parseTransferSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TransferSubscriptionsResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TransferSubscriptionsResponse);\r
+  parseUInt32(subtree, tvb, pOffset, hf_opcua_RetransmitSequenceNumber);
+}
+
+gint ett_opcua_RepublishResponse = -1;
+void parseRepublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "RepublishResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RepublishResponse);
+
+  parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
+  parseNotificationMessage(subtree, tvb, pOffset, "NotificationMessage");
+}
+
+gint ett_opcua_TransferSubscriptionsRequest = -1;
+void parseTransferSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TransferSubscriptionsRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TransferSubscriptionsRequest);
+
+  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+  parseArraySimple(subtree, tvb, pOffset, hf_opcua_SubscriptionIds, parseUInt32);
+}
+
+gint ett_opcua_TransferSubscriptionsResponse = -1;
+void parseTransferSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TransferSubscriptionsResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TransferSubscriptionsResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseArrayComplex(subtree, tvb, pOffset, "Results", parseTransferResult);
-  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);\r
-}\r
-\r
-gint ett_opcua_DeleteSubscriptionsRequest = -1;\r
-void parseDeleteSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteSubscriptionsRequest");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteSubscriptionsRequest);\r
-
-  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
-  parseArraySimple(subtree, tvb, pOffset, hf_opcua_SubscriptionIds, parseUInt32);\r
-}\r
-\r
-gint ett_opcua_DeleteSubscriptionsResponse = -1;\r
-void parseDeleteSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)\r
-{\r
-  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteSubscriptionsResponse");\r
-  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteSubscriptionsResponse);\r
+  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
+}
+
+gint ett_opcua_DeleteSubscriptionsRequest = -1;
+void parseDeleteSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteSubscriptionsRequest");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteSubscriptionsRequest);
+
+  parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
+  parseArraySimple(subtree, tvb, pOffset, hf_opcua_SubscriptionIds, parseUInt32);
+}
+
+gint ett_opcua_DeleteSubscriptionsResponse = -1;
+void parseDeleteSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
+{
+  proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteSubscriptionsResponse");
+  proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteSubscriptionsResponse);
 
   parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
   parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode);
-  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);\r
-}\r
+  parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
+}
 
 /** Setup protocol subtree array */
 static gint *ett[] =
index 5a44baefbd09ee7a46f495a4421e75758948acf3..8b9180d95fc626a99d362660175a7910695639a2 100644 (file)
@@ -1,36 +1,36 @@
-/******************************************************************************\r
-** $Id$\r
-**\r
-** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved.\r
-** Web: http://www.ascolab.com\r
-** \r
-** This program is free software; you can redistribute it and/or\r
-** modify it under the terms of the GNU General Public License\r
-** as published by the Free Software Foundation; either version 2\r
-** of the License, or (at your option) any later version.\r
-** \r
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE\r
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.\r
-** \r
-** Project: OpcUa Wireshark Plugin\r
-**\r
-** Description: Service table and service dispatcher.\r
-**\r
-** This file was autogenerated on 8.5.2007 18:53:26.\r
-** DON'T MODIFY THIS FILE!\r
-**\r
-******************************************************************************/\r
-\r
-#ifdef HAVE_CONFIG_H\r
-# include "config.h"\r
-#endif\r
-\r
-#include <gmodule.h>\r
-#include <epan/packet.h>\r
-#include "opcua_identifiers.h"\r
-#include "opcua_serviceparser.h"\r
-\r
-ParserEntry g_arParserTable[] = {\r
+/******************************************************************************
+** $Id$
+**
+** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved.
+** Web: http://www.ascolab.com
+** 
+** This program is free software; you can redistribute it and/or
+** modify it under the terms of the GNU General Public License
+** as published by the Free Software Foundation; either version 2
+** of the License, or (at your option) any later version.
+** 
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+** 
+** Project: OpcUa Wireshark Plugin
+**
+** Description: Service table and service dispatcher.
+**
+** This file was autogenerated on 8.5.2007 18:53:26.
+** DON'T MODIFY THIS FILE!
+**
+******************************************************************************/
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <gmodule.h>
+#include <epan/packet.h>
+#include "opcua_identifiers.h"
+#include "opcua_serviceparser.h"
+
+ParserEntry g_arParserTable[] = {
   { 1358, parseTestStackRequest }, 
   { 1363, parseTestStackResponse }, 
   { 1368, parseTestStackExRequest }, 
@@ -107,11 +107,11 @@ ParserEntry g_arParserTable[] = {
   { 2080, parseTransferSubscriptionsResponse }, 
   { 2085, parseDeleteSubscriptionsRequest }, 
   { 2090, parseDeleteSubscriptionsResponse }
-\r
-};\r
-const int g_NumServices = sizeof(g_arParserTable) / sizeof(ParserEntry);\r
-\r
-/** Service type table */\r
+
+};
+const int g_NumServices = sizeof(g_arParserTable) / sizeof(ParserEntry);
+
+/** Service type table */
 const value_string g_requesttypes[] = {
   { 1358, "TestStackRequest" },
   { 1363, "TestStackResponse" },
@@ -188,22 +188,22 @@ const value_string g_requesttypes[] = {
   { 2075, "TransferSubscriptionsRequest" },
   { 2080, "TransferSubscriptionsResponse" },
   { 2085, "DeleteSubscriptionsRequest" },
-  { 2090, "DeleteSubscriptionsResponse" },\r
-  { 0, NULL }\r
-};\r
-\r
-/** Dispatch all services to a special parser function. */\r
-void dispatchService(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int ServiceId)\r
-{\r
-    int index = 0;\r
-\r
-    while (index < g_NumServices)\r
-    {\r
-        if (g_arParserTable[index].iRequestId == ServiceId)\r
-        {\r
-            (*g_arParserTable[index].pParser)(tree, tvb, pOffset);\r
-            break;\r
-        }\r
-        index++;\r
-    }\r
-}\r
+  { 2090, "DeleteSubscriptionsResponse" },
+  { 0, NULL }
+};
+
+/** Dispatch all services to a special parser function. */
+void dispatchService(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int ServiceId)
+{
+    int index = 0;
+
+    while (index < g_NumServices)
+    {
+        if (g_arParserTable[index].iRequestId == ServiceId)
+        {
+            (*g_arParserTable[index].pParser)(tree, tvb, pOffset);
+            break;
+        }
+        index++;
+    }
+}
index 26d578c491c0297206d46e145d817a733e93ef77..32e2db9ec05f4d24629f5f9e88b29b71d8238c00 100644 (file)
-/******************************************************************************\r
-** $Id: opcua_simpletypes.c,v 1.1 2007/02/08 11:26:55 gergap Exp $\r
-**\r
-** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved.\r
-** Web: http://www.ascolab.com\r
-** \r
-** This program is free software; you can redistribute it and/or\r
-** modify it under the terms of the GNU General Public License\r
-** as published by the Free Software Foundation; either version 2\r
-** of the License, or (at your option) any later version.\r
-** \r
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE\r
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.\r
-** \r
-** Project: OpcUa Wireshark Plugin\r
-**\r
-** Description: Implementation of OpcUa built-in type parsers.\r
-**              This contains all the simple types and some complex types.\r
-**\r
-** Author: Gerhard Gappmeier <gerhard.gappmeier@ascolab.com>\r
-** Last change by: $Author: gergap $\r
-**\r
-******************************************************************************/\r
-\r
-#ifdef HAVE_CONFIG_H\r
-# include "config.h"\r
-#endif\r
-\r
-#include <gmodule.h>\r
-#include <epan/packet.h>\r
-#include <epan/dissectors/packet-windows-common.h>\r
-#include "opcua_simpletypes.h"\r
-#include "opcua_hfindeces.h"\r
-#include <string.h>\r
-#include <epan/emem.h>\r
-\r
-/* string buffer */\r
-#define MAX_BUFFER 256\r
-\r
-#define DIAGNOSTICINFO_ENCODINGMASK_SYMBOLICID_FLAG           0x01\r
-#define DIAGNOSTICINFO_ENCODINGMASK_NAMESPACE_FLAG            0x02\r
-#define DIAGNOSTICINFO_ENCODINGMASK_LOCALIZEDTEXT_FLAG        0x04\r
-#define DIAGNOSTICINFO_ENCODINGMASK_ADDITIONALINFO_FLAG       0x08\r
-#define DIAGNOSTICINFO_ENCODINGMASK_INNERSTATUSCODE_FLAG      0x10\r
-#define DIAGNOSTICINFO_ENCODINGMASK_INNERDIAGNOSTICINFO_FLAG  0x20\r
-#define LOCALIZEDTEXT_ENCODINGBYTE_LOCALE                     0x01\r
-#define LOCALIZEDTEXT_ENCODINGBYTE_TEXT                       0x02\r
-#define NODEID_URIMASK                                        0x80\r
-#define DATAVALUE_ENCODINGBYTE_VALUE                          0x01\r
-#define DATAVALUE_ENCODINGBYTE_STATUSCODE                     0x02\r
-#define DATAVALUE_ENCODINGBYTE_SOURCETIMESTAMP                0x04\r
-#define DATAVALUE_ENCODINGBYTE_SERVERTIMESTAMP                0x08\r
-#define EXTOBJ_ENCODINGMASK_BINBODY_FLAG                      0x01\r
-#define EXTOBJ_ENCODINGMASK_XMLBODY_FLAG                      0x02\r
-\r
-static int hf_opcua_diag_mask_symbolicflag = -1;\r
-static int hf_opcua_diag_mask_namespaceflag = -1;\r
-static int hf_opcua_diag_mask_localizedtextflag = -1;\r
-static int hf_opcua_diag_mask_additionalinfoflag = -1;\r
-static int hf_opcua_diag_mask_innerstatuscodeflag = -1;\r
-static int hf_opcua_diag_mask_innerdiaginfoflag = -1;\r
-static int hf_opcua_loctext_mask_localeflag = -1;\r
-static int hf_opcua_loctext_mask_textflag = -1;\r
-static int hf_opcua_datavalue_mask_valueflag = -1;\r
-static int hf_opcua_datavalue_mask_statuscodeflag = -1;\r
-static int hf_opcua_datavalue_mask_sourcetimestampflag = -1;\r
-static int hf_opcua_datavalue_mask_servertimestampflag = -1;\r
-static int hf_opcua_nodeid_encodingmask = -1;\r
-static int hf_opcua_variant_encodingmask = -1;\r
-static int hf_opcua_nodeid_nsid = -1;\r
-static int hf_opcua_nodeid_numeric = -1;\r
-static int hf_opcua_Locale = -1;\r
-static int hf_opcua_Text = -1;\r
-static int hf_opcua_SourceTimestamp = -1;\r
-static int hf_opcua_ServerTimestamp = -1;\r
-static int hf_opcua_diag_symbolicid = -1;\r
-static int hf_opcua_diag_namespace = -1;\r
-static int hf_opcua_diag_localizedtext = -1;\r
-static int hf_opcua_diag_additionalinfo = -1;\r
-static int hf_opcua_diag_innerstatuscode = -1;\r
-static int hf_opcua_extobj_mask_binbodyflag = -1;\r
-static int hf_opcua_extobj_mask_xmlbodyflag = -1;\r
-\r
-/** NodeId encoding mask table */\r
-static const value_string g_nodeidmasks[] = {\r
-    { 0, "Two byte encoded Numeric" },\r
-    { 1, "Four byte encoded Numeric" },\r
-    { 2, "Numeric of arbitrary length" },\r
-    { 3, "String" },\r
-    { 4, "URI" },\r
-    { 5, "GUID" },\r
-    { 6, "ByteString" },\r
-    { 0x80, "UriMask" },\r
-    { 0, NULL }\r
-};\r
-\r
-/** UA Variant Type enum */\r
-typedef enum _OpcUa_BuiltInType\r
-{\r
-    OpcUaType_Null = 0,\r
-    OpcUaType_Boolean = 1,\r
-    OpcUaType_SByte = 2,\r
-    OpcUaType_Byte = 3,\r
-    OpcUaType_Int16 = 4,\r
-    OpcUaType_UInt16 = 5,\r
-    OpcUaType_Int32 = 6,\r
-    OpcUaType_UInt32 = 7,\r
-    OpcUaType_Int64 = 8,\r
-    OpcUaType_UInt64 = 9,\r
-    OpcUaType_Float = 10,\r
-    OpcUaType_Double = 11,\r
-    OpcUaType_String = 12,\r
-    OpcUaType_DateTime = 13,\r
-    OpcUaType_Guid = 14,\r
-    OpcUaType_ByteString = 15,\r
-    OpcUaType_XmlElement = 16,\r
-    OpcUaType_NodeId = 17,\r
-    OpcUaType_ExpandedNodeId = 18,\r
-    OpcUaType_StatusCode = 19,\r
-    OpcUaType_DiagnosticInfo = 20,\r
-    OpcUaType_QualifiedName = 21,\r
-    OpcUaType_LocalizedText = 22,\r
-    OpcUaType_ExtensionObject = 23,\r
-    OpcUaType_DataValue = 24,\r
-    OpcUaType_Variant = 25  \r
-}\r
-OpcUa_BuiltInType;\r
-\r
-/** Variant encoding mask table */\r
-static const value_string g_VariantTypes[] = {\r
-    { 0, "Null" },\r
-    { 1, "Boolean" },\r
-    { 2, "SByte" },\r
-    { 3, "Byte" },\r
-    { 4, "Int16" },\r
-    { 5, "UInt16" },\r
-    { 6, "Int32" },\r
-    { 7, "UInt32" },\r
-    { 8, "Int64" },\r
-    { 9, "UInt64" },\r
-    { 10, "Float" },\r
-    { 11, "Double" },\r
-    { 12, "String" },\r
-    { 13, "DateTime" },\r
-    { 14, "Guid" },\r
-    { 15, "ByteString" },\r
-    { 16, "XmlElement" },\r
-    { 17, "NodeId" },\r
-    { 18, "ExpandedNodeId" },\r
-    { 19, "StatusCode" },\r
-    { 20, "DiagnosticInfo" },\r
-    { 21, "QualifiedName" },\r
-    { 22, "LocalizedText" },\r
-    { 23, "ExtensionObject" },\r
-    { 24, "DataValue" },\r
-    { 25, "Variant" },\r
-    { 0x80,   "Array of Null" },\r
-    { 0x80+1, "Array of Boolean" },\r
-    { 0x80+2, "Array of SByte" },\r
-    { 0x80+3, "Array of Byte" },\r
-    { 0x80+4, "Array of Int16" },\r
-    { 0x80+5, "Array of UInt16" },\r
-    { 0x80+6, "Array of Int32" },\r
-    { 0x80+7, "Array of UInt32" },\r
-    { 0x80+8, "Array of Int64" },\r
-    { 0x80+9, "Array of UInt64" },\r
-    { 0x80+10, "Array of Float" },\r
-    { 0x80+11, "Array of Double" },\r
-    { 0x80+12, "Array of String" },\r
-    { 0x80+13, "Array of DateTime" },\r
-    { 0x80+14, "Array of Guid" },\r
-    { 0x80+15, "Array of ByteString" },\r
-    { 0x80+16, "Array of XmlElement" },\r
-    { 0x80+17, "Array of NodeId" },\r
-    { 0x80+18, "Array of ExpandedNodeId" },\r
-    { 0x80+19, "Array of StatusCode" },\r
-    { 0x80+20, "Array of DiagnosticInfo" },\r
-    { 0x80+21, "Array of QualifiedName" },\r
-    { 0x80+22, "Array of LocalizedText" },\r
-    { 0x80+23, "Array of ExtensionObject" },\r
-    { 0x80+24, "Array of DataValue" },\r
-    { 0x80+25, "Array of Variant" },\r
-    { 0, NULL }\r
-};\r
-#define VARIANT_ARRAYMASK 0x80\r
-\r
-/* trees */\r
-static gint ett_opcua_array = -1;\r
-static gint ett_opcua_diagnosticinfo = -1;\r
-static gint ett_opcua_nodeid = -1;\r
-static gint ett_opcua_localeid = -1;\r
-static gint ett_opcua_localizedtext = -1;\r
-static gint ett_opcua_qualifiedname = -1;\r
-static gint ett_opcua_datavalue = -1;\r
-static gint ett_opcua_variant = -1;\r
-static gint ett_opcua_extensionobject = -1;\r
-static gint ett_opcua_extobj_encodingmask = -1;\r
-static gint *ett[] =\r
-{\r
-  &ett_opcua_array,\r
-  &ett_opcua_diagnosticinfo,\r
-  &ett_opcua_nodeid,\r
-  &ett_opcua_localeid,\r
-  &ett_opcua_localizedtext,\r
-  &ett_opcua_qualifiedname,\r
-  &ett_opcua_datavalue,\r
-  &ett_opcua_variant,\r
-  &ett_opcua_extensionobject,\r
-  &ett_opcua_extobj_encodingmask\r
-};\r
-\r
-\r
-static hf_register_info hf[] =\r
-{\r
-    /* full name  ,           abbreviation  ,       type     , display  , strings, bitmask, blurb, id, parent, ref_count, bitshift */\r
-    { &hf_opcua_diag_mask_symbolicflag,\r
-    {  "has symbolic id",           "", FT_BOOLEAN, 8, NULL, DIAGNOSTICINFO_ENCODINGMASK_SYMBOLICID_FLAG, "", HFILL }\r
-    },\r
-    { &hf_opcua_diag_mask_namespaceflag,\r
-    {  "has namespace",             "", FT_BOOLEAN, 8, NULL, DIAGNOSTICINFO_ENCODINGMASK_NAMESPACE_FLAG, "", HFILL }\r
-    },\r
-    { &hf_opcua_diag_mask_localizedtextflag,\r
-    {  "has localizedtext",         "", FT_BOOLEAN, 8, NULL, DIAGNOSTICINFO_ENCODINGMASK_LOCALIZEDTEXT_FLAG, "", HFILL }\r
-    },\r
-    { &hf_opcua_diag_mask_additionalinfoflag,\r
-    {  "has additional info",       "", FT_BOOLEAN, 8, NULL, DIAGNOSTICINFO_ENCODINGMASK_ADDITIONALINFO_FLAG, "", HFILL }\r
-    },\r
-    { &hf_opcua_diag_mask_innerstatuscodeflag,\r
-    {  "has inner statuscode",      "", FT_BOOLEAN, 8, NULL, DIAGNOSTICINFO_ENCODINGMASK_INNERSTATUSCODE_FLAG, "", HFILL }\r
-    },\r
-    { &hf_opcua_diag_mask_innerdiaginfoflag,\r
-    {  "has inner diagnostic info", "", FT_BOOLEAN, 8, NULL, DIAGNOSTICINFO_ENCODINGMASK_INNERDIAGNOSTICINFO_FLAG, "", HFILL }\r
-    },\r
-    { &hf_opcua_loctext_mask_localeflag,\r
-    {  "has locale information", "", FT_BOOLEAN, 8, NULL, LOCALIZEDTEXT_ENCODINGBYTE_LOCALE, "", HFILL }\r
-    },\r
-    { &hf_opcua_loctext_mask_textflag,\r
-    {  "has text", "", FT_BOOLEAN, 8, NULL, LOCALIZEDTEXT_ENCODINGBYTE_TEXT, "", HFILL }\r
-    },\r
-    { &hf_opcua_nodeid_encodingmask,\r
-    {  "NodeId EncodingMask",        "application.nodeid.encodingmask", FT_UINT8,   BASE_HEX,  VALS(g_nodeidmasks), 0x0,    "",    HFILL }\r
-    },\r
-    { &hf_opcua_nodeid_nsid,\r
-    {  "NodeId Namespace Id",        "application.nodeid.nsid",         FT_UINT32,  BASE_DEC,  NULL, 0x0,    "",    HFILL }\r
-    },\r
-    { &hf_opcua_nodeid_numeric,\r
-    {  "NodeId Identifier Numeric",  "application.nodeid.numeric",      FT_UINT32,  BASE_DEC,  NULL, 0x0,    "",    HFILL }\r
-    },\r
-    { &hf_opcua_Locale, { "Locale", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } },\r
-    { &hf_opcua_Text,   { "Text",   "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } },\r
-    { &hf_opcua_datavalue_mask_valueflag,           {  "has value", "",            FT_BOOLEAN, 8, NULL, DATAVALUE_ENCODINGBYTE_VALUE, "", HFILL } },\r
-    { &hf_opcua_datavalue_mask_statuscodeflag,      {  "has statuscode", "",       FT_BOOLEAN, 8, NULL, DATAVALUE_ENCODINGBYTE_STATUSCODE, "", HFILL } },\r
-    { &hf_opcua_datavalue_mask_sourcetimestampflag, {  "has source timestamp", "", FT_BOOLEAN, 8, NULL, DATAVALUE_ENCODINGBYTE_SOURCETIMESTAMP, "", HFILL } },\r
-    { &hf_opcua_datavalue_mask_servertimestampflag, {  "has server timestamp", "", FT_BOOLEAN, 8, NULL, DATAVALUE_ENCODINGBYTE_SERVERTIMESTAMP, "", HFILL } },\r
-    { &hf_opcua_variant_encodingmask, { "Variant Type", "", FT_UINT8, BASE_HEX, VALS(g_VariantTypes), 0x0, "", HFILL } },\r
-    { &hf_opcua_SourceTimestamp, { "SourceTimestamp", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } },\r
-    { &hf_opcua_ServerTimestamp, { "ServerTimestamp", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } },\r
-    { &hf_opcua_diag_symbolicid,      { "SymblicId", "",       FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } },\r
-    { &hf_opcua_diag_namespace,       { "Namespace", "",       FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } },\r
-    { &hf_opcua_diag_localizedtext,   { "LocaliezdText", "",   FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } },\r
-    { &hf_opcua_diag_additionalinfo,  { "AdditionalInfo", "",  FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } },\r
-    { &hf_opcua_diag_innerstatuscode, { "InnerStatusCode", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } },\r
-    { &hf_opcua_extobj_mask_binbodyflag, {  "has binary body", "", FT_BOOLEAN, 8, NULL, EXTOBJ_ENCODINGMASK_BINBODY_FLAG, "", HFILL } },\r
-    { &hf_opcua_extobj_mask_xmlbodyflag, {  "has xml body",    "", FT_BOOLEAN, 8, NULL, EXTOBJ_ENCODINGMASK_XMLBODY_FLAG, "", HFILL } }\r
-};\r
-\r
-void registerSimpleTypes(int proto)\r
-{\r
-    proto_register_field_array(proto, hf, array_length(hf));\r
-    proto_register_subtree_array(ett, array_length(ett));\r
-}\r
-\r
-void parseBoolean(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)\r
-{\r
-    proto_tree_add_item(tree, hfIndex, tvb, *pOffset, 1, TRUE); *pOffset+=1;\r
-}\r
-\r
-void parseByte(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)\r
-{\r
-    proto_tree_add_item(tree, hfIndex, tvb, *pOffset, 1, TRUE); *pOffset+=1;\r
-}\r
-\r
-void parseSByte(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)\r
-{\r
-    proto_tree_add_item(tree, hfIndex, tvb, *pOffset, 1, TRUE); *pOffset+=1;\r
-}\r
-\r
-void parseUInt16(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)\r
-{\r
-    proto_tree_add_item(tree, hfIndex, tvb, *pOffset, 2, TRUE); *pOffset+=2;\r
-}\r
-\r
-void parseInt16(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)\r
-{\r
-    proto_tree_add_item(tree, hfIndex, tvb, *pOffset, 2, TRUE); *pOffset+=2;\r
-}\r
-\r
-void parseUInt32(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)\r
-{\r
-    proto_tree_add_item(tree, hfIndex, tvb, *pOffset, 4, TRUE); *pOffset+=4;\r
-}\r
-\r
-void parseInt32(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)\r
-{\r
-    proto_tree_add_item(tree, hfIndex, tvb, *pOffset, 4, TRUE); *pOffset+=4;\r
-}\r
-\r
-void parseUInt64(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)\r
-{\r
-    proto_tree_add_item(tree, hfIndex, tvb, *pOffset, 8, TRUE); *pOffset+=8;\r
-}\r
-\r
-void parseInt64(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)\r
-{\r
-    proto_tree_add_item(tree, hfIndex, tvb, *pOffset, 8, TRUE); *pOffset+=8;\r
-}\r
-\r
-void parseString(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)\r
-{\r
-    char *szValue = ep_alloc(MAX_BUFFER);\r
-    gint iOffset = *pOffset;\r
-    gint32 iLen = tvb_get_letohl(tvb, *pOffset);\r
-    iOffset+=4;\r
-\r
-    if (szValue)\r
-    {\r
-        if (iLen == -1)\r
-        {\r
-            g_snprintf(szValue, MAX_BUFFER, "[OpcUa Null String]");\r
-        }\r
-        else if (iLen >= 0)\r
-        {\r
-            int iStrLen = iLen;\r
-            if (iStrLen > (MAX_BUFFER-1)) iStrLen = MAX_BUFFER - 1;\r
-            /* copy non null terminated string of length iStrlen */\r
-            strncpy(szValue, (char*)&tvb->real_data[iOffset], iStrLen);\r
-            /* set null terminator */\r
-            szValue[iStrLen] = 0;\r
-            iOffset += iLen; /* eat the whole string */\r
-        }\r
-        else\r
-        {\r
-            g_snprintf(szValue, MAX_BUFFER, "[Invalid String] Ups, something is wrong with this message.");\r
-        }\r
-\r
-        proto_tree_add_string(tree, hfIndex, tvb, *pOffset, (iOffset - *pOffset), szValue);\r
-        *pOffset = iOffset;\r
-    }\r
-}\r
-\r
-void parseStatusCode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)\r
-{\r
-    proto_tree_add_item(tree, hfIndex, tvb, *pOffset, 4, TRUE); \r
-    *pOffset += 4;\r
-}\r
-\r
-void parseLocalizedText(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-    gint        iOffset = *pOffset;\r
-    guint8      EncodingMask;\r
-    proto_tree *mask_tree;\r
-    proto_tree *subtree;\r
-    proto_item *ti;\r
-\r
-    ti = proto_tree_add_text(tree, tvb, 0, -1, "%s: LocalizedText", szFieldName);\r
-    subtree = proto_item_add_subtree(ti, ett_opcua_localizedtext);\r
-\r
-    /* parse encoding mask */\r
-    EncodingMask = tvb_get_guint8(tvb, iOffset);\r
-    ti = proto_tree_add_text(subtree, tvb, 0, -1, "EncodingMask");\r
-    mask_tree = proto_item_add_subtree(ti, ett_opcua_localizedtext);\r
-    proto_tree_add_item(mask_tree, hf_opcua_loctext_mask_localeflag, tvb, iOffset, 1, TRUE);\r
-    proto_tree_add_item(mask_tree, hf_opcua_loctext_mask_textflag,   tvb, iOffset, 1, TRUE);\r
-    iOffset++;\r
-\r
-    if (EncodingMask & LOCALIZEDTEXT_ENCODINGBYTE_LOCALE)\r
-    {\r
-        parseString(subtree, tvb, &iOffset, hf_opcua_Locale);\r
-    }\r
-\r
-    if (EncodingMask & LOCALIZEDTEXT_ENCODINGBYTE_TEXT)\r
-    {\r
-        parseString(subtree, tvb, &iOffset, hf_opcua_Text);\r
-    }\r
-\r
-    *pOffset = iOffset;\r
-}\r
-\r
-void parseGuid(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)\r
-{\r
-    proto_tree_add_item(tree, hfIndex, tvb, *pOffset, GUID_LEN, TRUE); *pOffset+=GUID_LEN;\r
-}\r
-\r
-void parseByteString(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)\r
-{\r
-    int iOffset = *pOffset;\r
-    gint32 iLen = tvb_get_letohl(tvb, iOffset);\r
-    iOffset += 4;\r
-\r
-    if (iLen == -1)\r
-    {\r
-    }\r
-    else if (iLen >= 0)\r
-    {\r
-        iOffset += iLen;\r
-    }\r
-    proto_tree_add_item(tree, hfIndex, tvb, *pOffset, (iOffset - *pOffset), TRUE);\r
-    *pOffset = iOffset;\r
-}\r
-\r
-void parseXmlElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)\r
-{\r
-    parseByteString(tree, tvb, pOffset, hfIndex);\r
-}\r
-\r
-void parseFloat(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)\r
-{\r
-        proto_tree_add_item(tree, hfIndex, tvb, *pOffset, sizeof(gfloat), TRUE);\r
-     *pOffset += sizeof(gfloat);\r
-}\r
-\r
-void parseDouble(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)\r
-{\r
-        proto_tree_add_item(tree, hfIndex, tvb, *pOffset, sizeof(gdouble), TRUE);\r
-     *pOffset += sizeof(gdouble);\r
-}\r
-\r
-void parseDateTime(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex)\r
-{\r
-    *pOffset = dissect_nt_64bit_time(tvb, tree, *pOffset, hfIndex);\r
-}\r
-\r
-void parseDiagnosticInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName)\r
-{\r
-    gint        iOffset = *pOffset;\r
-    guint8      EncodingMask;\r
-    proto_tree *mask_tree;\r
-    proto_tree *subtree;\r
-    proto_item *ti;\r
-\r
-    ti = proto_tree_add_text(tree, tvb, 0, -1, "%s: DiagnosticInfo", szFieldName);\r
-    subtree = proto_item_add_subtree(ti, ett_opcua_diagnosticinfo);\r
-\r
-    /* parse encoding mask */\r
-    EncodingMask = tvb_get_guint8(tvb, iOffset);\r
-    ti = proto_tree_add_text(subtree, tvb, 0, -1, "EncodingMask");\r
-    mask_tree = proto_item_add_subtree(ti, ett_opcua_diagnosticinfo);\r
-    proto_tree_add_item(mask_tree, hf_opcua_diag_mask_symbolicflag,        tvb, iOffset, 1, TRUE);\r
-    proto_tree_add_item(mask_tree, hf_opcua_diag_mask_namespaceflag,       tvb, iOffset, 1, TRUE);\r
-    proto_tree_add_item(mask_tree, hf_opcua_diag_mask_localizedtextflag,   tvb, iOffset, 1, TRUE);\r
-    proto_tree_add_item(mask_tree, hf_opcua_diag_mask_additionalinfoflag,  tvb, iOffset, 1, TRUE);\r
-    proto_tree_add_item(mask_tree, hf_opcua_diag_mask_innerstatuscodeflag, tvb, iOffset, 1, TRUE);