From Sven Eckelmann:
[metze/wireshark/wip.git] / wiretap / 5views.c
index 38fc251ef9d9a3a60c2fa2b95f3f4a083d7e6604..96266c70640d447f76ba4bdddc1d3086cf5e76a1 100644 (file)
@@ -51,27 +51,27 @@ typedef struct
 }t_5VW_Attributes_Header;
 
 
-#define CST_5VW_INFO_HEADER_KEY                0xAAAAAAAA              /* signature */
+#define CST_5VW_INFO_HEADER_KEY                0xAAAAAAAAU             /* signature */
 
-#define        CST_5VW_INFO_RECORD_VERSION     0x00010000              /* version */
+#define        CST_5VW_INFO_RECORD_VERSION     0x00010000U             /* version */
 
 #define CST_5VW_DECALE_FILE_TYPE       24
-#define CST_5VW_SECTION_CAPTURES       0x08
+#define CST_5VW_SECTION_CAPTURES       0x08U
 #define CST_5VW_CAPTURES_FILE          (CST_5VW_SECTION_CAPTURES << CST_5VW_DECALE_FILE_TYPE)          /* 0x08000000 */
-#define CST_5VW_FLAT_FILE              0x10000000
+#define CST_5VW_FLAT_FILE              0x10000000U
 #define CST_5VW_CAPTURE_FILEID         (CST_5VW_FLAT_FILE | CST_5VW_CAPTURES_FILE)
-#define CST_5VW_FAMILY_CAP_ETH         0x01
-#define CST_5VW_FAMILY_CAP_WAN         0x02
+#define CST_5VW_FAMILY_CAP_ETH         0x01U
+#define CST_5VW_FAMILY_CAP_WAN         0x02U
 #define CST_5VW_DECALE_FILE_FAMILY     12
 #define CST_5VW_CAP_ETH                        (CST_5VW_FAMILY_CAP_ETH << CST_5VW_DECALE_FILE_FAMILY)  /* 0x00001000 */
 #define CST_5VW_CAP_WAN                        (CST_5VW_FAMILY_CAP_WAN << CST_5VW_DECALE_FILE_FAMILY)  /* 0x00002000 */
 #define CST_5VW_CAPTURE_ETH_FILEID     (CST_5VW_CAPTURE_FILEID | CST_5VW_CAP_ETH)
 #define CST_5VW_CAPTURE_WAN_FILEID     (CST_5VW_CAPTURE_FILEID | CST_5VW_CAP_WAN)
 
-#define CST_5VW_CAPTURE_FILE_TYPE_MASK 0xFF000000
+#define CST_5VW_CAPTURE_FILE_TYPE_MASK 0xFF000000U
 
-#define CST_5VW_FRAME_RECORD           0x00000000
-#define CST_5VW_RECORDS_HEADER_KEY     0x3333EEEE
+#define CST_5VW_FRAME_RECORD           0x00000000U
+#define CST_5VW_RECORDS_HEADER_KEY     0x3333EEEEU
 
 typedef struct
 {
@@ -97,19 +97,19 @@ typedef struct
 }t_5VW_TimeStamped_Header;
 
 
-#define CST_5VW_IA_CAP_INF_NB_TRAMES_STOCKEES  0x20000000
-#define CST_5VW_IA_DATE_CREATION               0x80000007      /* Struct t_Attrib_Date_Create */
-#define CST_5VW_TIMESTAMPED_HEADER_TYPE                0x4000
+#define CST_5VW_IA_CAP_INF_NB_TRAMES_STOCKEES  0x20000000U
+#define CST_5VW_IA_DATE_CREATION               0x80000007U     /* Struct t_Attrib_Date_Create */
+#define CST_5VW_TIMESTAMPED_HEADER_TYPE                0x4000U
 #define CST_5VW_CAPTURES_RECORD                (CST_5VW_SECTION_CAPTURES << 28)        /* 0x80000000 */
-#define CST_5VW_SYSTEM_RECORD          0x00000000
+#define CST_5VW_SYSTEM_RECORD          0x00000000U
 
 static gboolean _5views_read(wtap *wth, int *err, gchar **err_info,
-    long *data_offset);
+    gint64 *data_offset);
 static gboolean _5views_read_rec_data(FILE_T fh, guchar *pd, int length,
     int *err);
 static int _5views_read_header(wtap *wth, FILE_T fh,
     t_5VW_TimeStamped_Header  *hdr, int *err);
-static gboolean _5views_seek_read(wtap *wth, long seek_off,
+static gboolean _5views_seek_read(wtap *wth, gint64 seek_off,
     union wtap_pseudo_header *pseudo_header, guchar *pd, int length,
     int *err, gchar **err_info);
 
@@ -197,13 +197,14 @@ int _5views_open(wtap *wth, int *err, gchar **err_info)
        wth->subtype_seek_read = _5views_seek_read;
        wth->file_encap = encap;
        wth->snapshot_length = 0;       /* not available in header */
+       wth->tsprecision = WTAP_FILE_TSPREC_NSEC;
 
        return 1;
 }
 
 /* Read the next packet */
 static gboolean
-_5views_read(wtap *wth, int *err, gchar **err_info _U_, long *data_offset)
+_5views_read(wtap *wth, int *err, gchar **err_info _U_, gint64 *data_offset)
 {
        t_5VW_TimeStamped_Header TimeStamped_Header;
        int     bytes_read;
@@ -230,7 +231,7 @@ _5views_read(wtap *wth, int *err, gchar **err_info _U_, long *data_offset)
                TimeStamped_Header.RecSize =
                    pletohl(&TimeStamped_Header.RecSize);
                if(TimeStamped_Header.RecSubType != CST_5VW_FRAME_RECORD) {
-                       if (file_seek(wth->fh, TimeStamped_Header.RecSize, SEEK_SET, err) == -1)
+                       if (file_seek(wth->fh, TimeStamped_Header.RecSize, SEEK_CUR, err) == -1)
                                return FALSE;
                        wth->data_offset += TimeStamped_Header.RecSize;
                } else
@@ -313,7 +314,7 @@ _5views_read_header(wtap *wth _U_, FILE_T fh, t_5VW_TimeStamped_Header  *hdr,
 }
 
 static gboolean
-_5views_seek_read(wtap *wth, long seek_off,
+_5views_seek_read(wtap *wth, gint64 seek_off,
     union wtap_pseudo_header *pseudo_header, guchar *pd, int length,
     int *err, gchar **err_info _U_)
 {