aboutsummaryrefslogtreecommitdiffstats
path: root/wiretap
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2017-12-27 19:38:27 -0800
committerGuy Harris <guy@alum.mit.edu>2017-12-28 03:39:07 +0000
commit22f17f918c20c6934edfdffd96942e45c0b2e28b (patch)
tree3b8420db12659a10f5270f4bb303045c083722e9 /wiretap
parent9715aff0bd9c84a76e0dd364829cecde2a8a3610 (diff)
No need for read_new_line to return a packet offset.
We can just call file_tell() before reading the line when doing sequential reads. Change-Id: Ide36d0b7d99ef3e76dbe1ddfad6c99972c04739a Reviewed-on: https://code.wireshark.org/review/25027 Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'wiretap')
-rw-r--r--wiretap/catapult_dct2000.c25
1 files changed, 9 insertions, 16 deletions
diff --git a/wiretap/catapult_dct2000.c b/wiretap/catapult_dct2000.c
index 22b051b69e..2456d35a77 100644
--- a/wiretap/catapult_dct2000.c
+++ b/wiretap/catapult_dct2000.c
@@ -116,7 +116,7 @@ static gboolean catapult_dct2000_dump(wtap_dumper *wdh, const struct wtap_pkthdr
/************************************************************/
/* Private helper functions */
-static gboolean read_new_line(FILE_T fh, gint64 *offset, gint *length,
+static gboolean read_new_line(FILE_T fh, gint *length,
gchar *buf, size_t bufsize, int *err,
gchar **err_info);
static gboolean parse_line(char *linebuff, gint line_length,
@@ -170,7 +170,6 @@ static gboolean free_line_prefix_info(gpointer key, gpointer value, gpointer use
wtap_open_return_val
catapult_dct2000_open(wtap *wth, int *err, gchar **err_info)
{
- gint64 offset = 0;
time_t timestamp;
guint32 usecs;
gint firstline_length = 0;
@@ -185,7 +184,7 @@ catapult_dct2000_open(wtap *wth, int *err, gchar **err_info)
/********************************************************************/
/* First line needs to contain at least as many characters as magic */
- if (!read_new_line(wth->fh, &offset, &firstline_length, linebuff,
+ if (!read_new_line(wth->fh, &firstline_length, linebuff,
sizeof linebuff, err, err_info)) {
if (*err != 0 && *err != WTAP_ERR_SHORT_READ)
return WTAP_OPEN_ERROR;
@@ -224,7 +223,7 @@ catapult_dct2000_open(wtap *wth, int *err, gchar **err_info)
/* Second line contains file timestamp */
/* Store this offset in in file_externals */
- if (!read_new_line(wth->fh, &offset, &(file_externals->secondline_length),
+ if (!read_new_line(wth->fh, &(file_externals->secondline_length),
linebuff, sizeof linebuff, err, err_info)) {
g_free(file_externals);
if (*err != 0 && *err != WTAP_ERR_SHORT_READ)
@@ -338,7 +337,6 @@ static gboolean
catapult_dct2000_read(wtap *wth, int *err, gchar **err_info,
gint64 *data_offset)
{
- gint64 offset = file_tell(wth->fh);
long dollar_offset, before_time_offset, after_time_offset;
packet_direction_t direction;
int encap;
@@ -352,7 +350,7 @@ catapult_dct2000_read(wtap *wth, int *err, gchar **err_info,
int line_length, seconds, useconds, data_chars;
int is_comment = FALSE;
int is_sprint = FALSE;
- gint64 this_offset = offset;
+ gint64 this_offset;
static gchar linebuff[MAX_LINE_LENGTH+1];
gchar aal_header_chars[AAL_HEADER_CHARS];
gchar context_name[MAX_CONTEXT_NAME];
@@ -361,14 +359,11 @@ catapult_dct2000_read(wtap *wth, int *err, gchar **err_info,
gchar variant_name[MAX_VARIANT_DIGITS+1];
gchar outhdr_name[MAX_OUTHDR_NAME+1];
- /* Are looking for first packet after 2nd line */
- if (file_tell(wth->fh) == 0) {
- this_offset += (file_externals->firstline_length+1+
- file_externals->secondline_length+1);
- }
+ /* Get starting offset of the line we're about to read */
+ this_offset = file_tell(wth->fh);
/* Read a new line from file into linebuff */
- if (!read_new_line(wth->fh, &offset, &line_length, linebuff,
+ if (!read_new_line(wth->fh, &line_length, linebuff,
sizeof linebuff, err, err_info)) {
if (*err != 0)
return FALSE; /* error */
@@ -455,7 +450,6 @@ catapult_dct2000_seek_read(wtap *wth, gint64 seek_off,
struct wtap_pkthdr *phdr, Buffer *buf,
int *err, gchar **err_info)
{
- gint64 offset = 0;
int length;
long dollar_offset, before_time_offset, after_time_offset;
static gchar linebuff[MAX_LINE_LENGTH+1];
@@ -484,7 +478,7 @@ catapult_dct2000_seek_read(wtap *wth, gint64 seek_off,
}
/* Re-read whole line (this really should succeed) */
- if (!read_new_line(wth->random_fh, &offset, &length, linebuff,
+ if (!read_new_line(wth->random_fh, &length, linebuff,
sizeof linebuff, err, err_info)) {
return FALSE;
}
@@ -795,7 +789,7 @@ catapult_dct2000_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr,
/* - return TRUE if this read is successful */
/**********************************************************************/
static gboolean
-read_new_line(FILE_T fh, gint64 *offset, gint *length,
+read_new_line(FILE_T fh, gint *length,
gchar *linebuff, size_t linebuffsize, int *err, gchar **err_info)
{
/* Read in a line */
@@ -809,7 +803,6 @@ read_new_line(FILE_T fh, gint64 *offset, gint *length,
/* Set length (avoiding strlen()) and offset.. */
*length = (gint)(file_tell(fh) - pos_before);
- *offset = *offset + *length;
/* ...but don't want to include newline in line length */
if (*length > 0 && linebuff[*length-1] == '\n') {