From David Moreau (bug 2621):
[obnox/wireshark/wip.git] / epan / dissectors / packet-tftp.c
index 92fb4e2929330ec27d7f11f7d922ca1aa052dd4c..e2f42b36ddb855feb847757109a13390197354df 100644 (file)
 #include <epan/emem.h>
 #include <epan/expert.h>
 
-#ifdef NEED_G_ASCII_STRCASECMP_H
-#include "g_ascii_strcasecmp.h"
-#endif
-
 /* Things we may want to remember for a whole conversation */
 typedef struct _tftp_conv_info_t {
        guint16 blocksize;
@@ -85,6 +81,7 @@ static dissector_handle_t tftp_handle;
 #define        TFTP_ACK        4
 #define        TFTP_ERROR      5
 #define        TFTP_OACK       6
+#define        TFTP_INFO       255
 
 static const value_string tftp_opcode_vals[] = {
   { TFTP_RRQ,   "Read Request" },
@@ -93,6 +90,7 @@ static const value_string tftp_opcode_vals[] = {
   { TFTP_ACK,   "Acknowledgement" },
   { TFTP_ERROR, "Error Code" },
   { TFTP_OACK,  "Option Acknowledgement" },
+  { TFTP_INFO,  "Information (MSDP)" },
   { 0,          NULL }
 };
 
@@ -293,6 +291,12 @@ dissect_tftp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                opcode,  tftp_info);
          break;
 
+       case TFTP_INFO:
+         if (tree)
+           tftp_dissect_options(tvb, pinfo, offset, tftp_tree,
+               opcode,  tftp_info);
+         break;
+
        case TFTP_DATA:
          blocknum = tvb_get_ntohs(tvb, offset);
          if (tree) {