aboutsummaryrefslogtreecommitdiffstats
path: root/wiretap/dct3trace.c
diff options
context:
space:
mode:
Diffstat (limited to 'wiretap/dct3trace.c')
-rw-r--r--wiretap/dct3trace.c48
1 files changed, 12 insertions, 36 deletions
diff --git a/wiretap/dct3trace.c b/wiretap/dct3trace.c
index 9bbae29cfc..ecc466863d 100644
--- a/wiretap/dct3trace.c
+++ b/wiretap/dct3trace.c
@@ -156,49 +156,25 @@ xml_get_int(int *val, const unsigned char *str, const unsigned char *pattern)
}
-/* Look through the first part of a file to see if this is
- * a DCT3 trace file.
- *
- * Returns TRUE if it is, FALSE if it isn't or if we get an I/O error;
- * if we get an I/O error, "*err" will be set to a non-zero value
- * and "*err_info" will be set to null or an additional error string.
- */
-static gboolean dct3trace_check_file_type(wtap *wth, int *err, gchar **err_info)
+int dct3trace_open(wtap *wth, int *err, gchar **err_info)
{
char line1[64], line2[64];
- if (file_gets(line1, sizeof(line1), wth->fh) != NULL &&
- file_gets(line2, sizeof(line2), wth->fh) != NULL)
- {
- /* Don't compare line endings */
- if( strncmp(dct3trace_magic_line1, line1, strlen(dct3trace_magic_line1)) == 0 &&
- strncmp(dct3trace_magic_line2, line2, strlen(dct3trace_magic_line2)) == 0)
- {
- return TRUE;
- }
- }
- /* EOF or error. */
- else
+ /* Look for Gammu DCT3 trace header */
+ if (file_gets(line1, sizeof(line1), wth->fh) == NULL ||
+ file_gets(line2, sizeof(line2), wth->fh) == NULL)
{
- if (file_eof(wth->fh))
- *err = 0;
- else
- *err = file_error(wth->fh, err_info);
+ *err = file_error(wth->fh, err_info);
+ if (*err != 0 && *err != WTAP_ERR_SHORT_READ)
+ return -1;
+ return 0;
}
- return FALSE;
-}
-
-
-int dct3trace_open(wtap *wth, int *err, gchar **err_info)
-{
- /* Look for Gammu DCT3 trace header */
- if (!dct3trace_check_file_type(wth, err, err_info))
+ /* Don't compare line endings */
+ if( strncmp(dct3trace_magic_line1, line1, strlen(dct3trace_magic_line1)) != 0 ||
+ strncmp(dct3trace_magic_line2, line2, strlen(dct3trace_magic_line2)) != 0)
{
- if (*err == 0)
- return 0;
- else
- return -1;
+ return 0;
}
wth->file_encap = WTAP_ENCAP_GSM_UM;