aboutsummaryrefslogtreecommitdiffstats
path: root/wiretap
diff options
context:
space:
mode:
authormorriss <morriss@f5534014-38df-0310-8fa8-9805f1628bb7>2008-05-22 15:46:27 +0000
committermorriss <morriss@f5534014-38df-0310-8fa8-9805f1628bb7>2008-05-22 15:46:27 +0000
commit440ebe03d7ad360327a5752cd79879956f6aea8d (patch)
tree65a7d5c702bf3392494b33ddd7ed43c94e491670 /wiretap
parent04d3d6b976e89f301cb6b79c3fd81d823d6a32c7 (diff)
Move the file utility functions from wiretap to libwsutil so that
libwireshark (and the plugins using those functions) do not depend on wiretap on Windows. While doing that, rename the eth_* functions to ws_*. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@25354 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'wiretap')
-rw-r--r--wiretap/Makefile.common1
-rw-r--r--wiretap/Makefile.nmake4
-rw-r--r--wiretap/ascend.c8
-rw-r--r--wiretap/file_access.c58
-rw-r--r--wiretap/file_util.c475
-rw-r--r--wiretap/file_util.h126
-rw-r--r--wiretap/file_wrappers.c6
-rw-r--r--wiretap/libwiretap.vcproj8
-rw-r--r--wiretap/wtap.c4
-rw-r--r--wiretap/wtap.def9
10 files changed, 40 insertions, 659 deletions
diff --git a/wiretap/Makefile.common b/wiretap/Makefile.common
index a9d96e9ef7..185b57eae2 100644
--- a/wiretap/Makefile.common
+++ b/wiretap/Makefile.common
@@ -87,7 +87,6 @@ NONGENERATED_HEADER_FILES = \
erf.h \
etherpeek.h \
eyesdn.h \
- file_util.h \
file_wrappers.h \
hcidump.h \
i4btrace.h \
diff --git a/wiretap/Makefile.nmake b/wiretap/Makefile.nmake
index c656c97e86..b3e4c5be19 100644
--- a/wiretap/Makefile.nmake
+++ b/wiretap/Makefile.nmake
@@ -17,7 +17,7 @@ CVARSDLL=-DWIN32 -DNULL=0 -D_MT -D_DLL
.c.obj::
$(CC) $(CVARSDLL) $(CFLAGS) -Fd.\ -c $<
-OBJECTS=$(NONGENERATED_C_FILES:.c=.obj) $(GENERATED_C_FILES:.c=.obj) file_util.obj
+OBJECTS=$(NONGENERATED_C_FILES:.c=.obj) $(GENERATED_C_FILES:.c=.obj)
wiretap_LIBS = \
$(GLIB_LIBS) \
@@ -36,7 +36,7 @@ wiretap-$(WTAP_VERSION).dll : $(OBJECTS) wtap.def ..\image\wiretap.res
/IMPLIB:wiretap-$(WTAP_VERSION).lib \
..\image\wiretap.res \
$(OBJECTS) $(wiretap_LIBS)
-!IF "$(MSVC_VARIANT)" == "MSVC2005" || "$(MSVC_VARIANT)" == "MSVC2005EE" || "$(MSVC_VARIANT)" == "DOTNET20"
+!IF "$(MSVC_VARIANT)" == "MSVC2005" || "$(MSVC_VARIANT)" == "MSVC2005EE" || "$(MSVC_VARIANT)" == "DOTNET20"
mt.exe -nologo -manifest "wiretap-$(WTAP_VERSION).dll.manifest" -outputresource:wiretap-$(WTAP_VERSION).dll;2
!ENDIF
diff --git a/wiretap/ascend.c b/wiretap/ascend.c
index 66fbd6dcd5..d6bdcc798c 100644
--- a/wiretap/ascend.c
+++ b/wiretap/ascend.c
@@ -28,7 +28,7 @@
#include "ascend.h"
#include "ascend-int.h"
#include "file_wrappers.h"
-#include "file_util.h"
+#include <wsutil/file_util.h>
#include <errno.h>
@@ -57,7 +57,7 @@
typedef struct _ascend_magic_string {
guint type;
- const gchar *strptr;
+ const gchar *strptr;
} ascend_magic_string;
#define ASCEND_MAGIC_STRINGS 11
@@ -100,7 +100,7 @@ static gint64 ascend_seek(wtap *wth, int *err)
while (((byte = file_getc(wth->fh)) != EOF)) {
excessive_read_count--;
-
+
if (!excessive_read_count) {
return -1;
}
@@ -124,7 +124,7 @@ static gint64 ascend_seek(wtap *wth, int *err)
if (strcmp(strptr, ASCEND_DATE) == 0) {
date_off = cur_off - len;
} else {
- if (date_off == -1) {
+ if (date_off == -1) {
/* Back up over the header we just read; that's where a read
of this packet should start. */
packet_off = cur_off - len;
diff --git a/wiretap/file_access.c b/wiretap/file_access.c
index 902bba589a..8b6b212fce 100644
--- a/wiretap/file_access.c
+++ b/wiretap/file_access.c
@@ -38,7 +38,7 @@
#include <errno.h>
-#include "file_util.h"
+#include <wsutil/file_util.h>
#include "wtap-int.h"
#include "file_wrappers.h"
@@ -131,7 +131,7 @@ static wtap_open_routine_t open_routines_base[] = {
/* I put NetScreen *before* erf, because there were some
* false positives with my test-files (Sake Blok, July 2007)
*/
- netscreen_open,
+ netscreen_open,
erf_open,
k12text_open,
etherpeek_open,
@@ -157,13 +157,13 @@ static GArray* open_routines_arr = NULL;
/* initialize the open routines array if it has not being initialized yet */
static void init_open_routines(void) {
-
+
if (open_routines_arr) return;
open_routines_arr = g_array_new(FALSE,TRUE,sizeof(wtap_open_routine_t));
-
+
g_array_append_vals(open_routines_arr,open_routines_base,N_FILE_TYPES);
-
+
open_routines = (void*)open_routines_arr->data;
}
@@ -174,7 +174,7 @@ void wtap_register_open_routine(wtap_open_routine_t open_routine, gboolean has_m
g_array_prepend_val(open_routines_arr,open_routine);
else
g_array_append_val(open_routines_arr,open_routine);
-
+
open_routines = (void*)open_routines_arr->data;
}
@@ -223,7 +223,7 @@ wtap* wtap_open_offline(const char *filename, int *err, char **err_info,
return NULL;
}
} else {
- if (eth_stat(filename, &statb) < 0) {
+ if (ws_stat(filename, &statb) < 0) {
*err = errno;
return NULL;
}
@@ -285,12 +285,12 @@ wtap* wtap_open_offline(const char *filename, int *err, char **err_info,
* an fclose or gzclose of wth->fh closing the standard
* input of the process.
*/
- wth->fd = eth_dup(0);
+ wth->fd = ws_dup(0);
#ifdef _WIN32
_setmode(wth->fd, O_BINARY);
#endif
} else
- wth->fd = eth_open(filename, O_RDONLY|O_BINARY, 0000 /* no creation so don't matter */);
+ wth->fd = ws_open(filename, O_RDONLY|O_BINARY, 0000 /* no creation so don't matter */);
if (wth->fd < 0) {
*err = errno;
g_free(wth);
@@ -298,7 +298,7 @@ wtap* wtap_open_offline(const char *filename, int *err, char **err_info,
}
if (!(wth->fh = filed_open(wth->fd, "rb"))) {
*err = errno;
- eth_close(wth->fd);
+ ws_close(wth->fd);
g_free(wth);
return NULL;
}
@@ -319,9 +319,9 @@ wtap* wtap_open_offline(const char *filename, int *err, char **err_info,
wth->subtype_sequential_close = NULL;
wth->subtype_close = NULL;
wth->tsprecision = WTAP_FILE_TSPREC_USEC;
-
+
init_open_routines();
-
+
/* Try all file types */
for (i = 0; i < open_routines_arr->len; i++) {
/* Seek back to the beginning of the file; the open routine
@@ -340,7 +340,7 @@ wtap* wtap_open_offline(const char *filename, int *err, char **err_info,
return NULL;
}
wth->data_offset = 0;
-
+
switch ((*open_routines[i])(wth, err, err_info)) {
case -1:
@@ -464,7 +464,7 @@ static const struct file_type_info dump_open_table_base[] = {
/* WTAP_FILE_EYESDN */
{ "EyeSDN USB S0/E1 ISDN trace format", "eyesdn", "*.*", NULL, FALSE,
NULL, NULL },
-
+
/* WTAP_FILE_NETTL */
{ "HP-UX nettl trace", "nettl", "*.TRC0;*.TRC1", ".TRC0", FALSE,
nettl_dump_can_write_encap, nettl_dump_open },
@@ -560,7 +560,7 @@ static const struct file_type_info dump_open_table_base[] = {
/* WTAP_FILE_ETHERPEEK_V9 */
{ "Wildpacket Ether/AiroPeek (V9)", "peek9", "*.tpc;*.apc;*.pkt;*.wpz", ".pkt", FALSE,
NULL, NULL },
-
+
/* WTAP_FILE_MPEG */
{ "MPEG", "mpeg", "*.mpeg;*.mpg;*.mp3", ".mpeg", FALSE,
NULL, NULL },
@@ -576,7 +576,7 @@ static const struct file_type_info dump_open_table_base[] = {
/* WTAP_FILE_COMMVIEW */
{ "TamoSoft CommView", "commview", "*.ncf", ".ncf", TRUE,
commview_dump_can_write_encap, commview_dump_open },
-
+
/* WTAP_FILE_PCAPNG */
{ "Wireshark - pcapng (experimental)", "pcapng", "*.pcapng", NULL, FALSE,
pcapng_dump_can_write_encap, pcapng_dump_open },
@@ -592,13 +592,13 @@ static const struct file_type_info* dump_open_table = dump_open_table_base;
/* initialize the open routines array if it has not being initialized yet */
static void init_file_types(void) {
-
+
if (dump_open_table_arr) return;
dump_open_table_arr = g_array_new(FALSE,TRUE,sizeof(struct file_type_info));
-
+
g_array_append_vals(dump_open_table_arr,dump_open_table_base,wtap_num_file_types);
-
+
dump_open_table = (void*)dump_open_table_arr->data;
}
@@ -606,9 +606,9 @@ int wtap_register_file_type(const struct file_type_info* fi) {
init_file_types();
g_array_append_val(dump_open_table_arr,*fi);
-
+
dump_open_table = (void*)dump_open_table_arr->data;
-
+
return wtap_num_file_types++;
}
@@ -755,7 +755,7 @@ wtap_dumper* wtap_dump_open(const char *filename, int filetype, int encap,
opening it. */
if (wdh->fh != stdout) {
wtap_dump_file_close(wdh);
- eth_unlink(filename);
+ ws_unlink(filename);
}
g_free(wdh);
return NULL;
@@ -894,7 +894,7 @@ void wtap_dump_flush(wtap_dumper *wdh)
#ifdef HAVE_LIBZ
if(wdh->compressed) {
gzflush(wdh->fh, Z_SYNC_FLUSH); /* XXX - is Z_SYNC_FLUSH the right one? */
- } else
+ } else
#endif
{
fflush(wdh->fh);
@@ -950,10 +950,10 @@ static FILE *wtap_dump_file_open(wtap_dumper *wdh, const char *filename)
#ifdef HAVE_LIBZ
if(wdh->compressed) {
return gzopen(filename, "wb");
- } else
+ } else
#endif
{
- return eth_fopen(filename, "wb");
+ return ws_fopen(filename, "wb");
}
}
@@ -963,7 +963,7 @@ static FILE *wtap_dump_file_fdopen(wtap_dumper *wdh, int fd)
#ifdef HAVE_LIBZ
if(wdh->compressed) {
return gzdopen(fd, "wb");
- } else
+ } else
#endif
{
return fdopen(fd, "wb");
@@ -976,7 +976,7 @@ size_t wtap_dump_file_write(wtap_dumper *wdh, const void *buf, unsigned bufsize)
#ifdef HAVE_LIBZ
if(wdh->compressed) {
return gzwrite(wdh->fh, buf, bufsize);
- } else
+ } else
#endif
{
return fwrite(buf, 1, bufsize, wdh->fh);
@@ -989,7 +989,7 @@ static int wtap_dump_file_close(wtap_dumper *wdh)
#ifdef HAVE_LIBZ
if(wdh->compressed) {
return gzclose(wdh->fh);
- } else
+ } else
#endif
{
return fclose(wdh->fh);
@@ -1010,7 +1010,7 @@ int wtap_dump_file_ferror(wtap_dumper *wdh)
/* XXX - what to do with this zlib specific number? */
return errnum;
}
- } else
+ } else
#endif
{
return ferror(wdh->fh);
diff --git a/wiretap/file_util.c b/wiretap/file_util.c
deleted file mode 100644
index c097868667..0000000000
--- a/wiretap/file_util.c
+++ /dev/null
@@ -1,475 +0,0 @@
-/* file_util.c
- *
- * $Id$
- *
- * Wiretap Library
- * Copyright (c) 1998 by Gilbert Ramirez <gram@alumni.rice.edu>
- *
- * 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.
- *
- */
-
-/* file wrapper functions to prevent the file functions from GLib like g_open(),
- * as code compiled with MSVC 7 and above will collide with libs linked with msvcrt.dll (MSVC 6), lib GLib is
- *
- * DO NOT USE THESE FUNCTIONS DIRECTLY, USE eth_open() AND ALIKE FUNCTIONS FROM file_util.h INSTEAD!!!
- *
- * the following code is stripped down code copied from the GLib file glib/gstdio.h
- * stipped down, because this is used on _WIN32 only and we use only wide char functions */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <glib.h>
-
-#ifdef _WIN32
-#include <windows.h>
-#include <errno.h>
-#include <wchar.h>
-/*#include <direct.h>*/
-#include <io.h>
-#endif
-
-#include "file_util.h"
-
-
-
-
-/**
- * g_open:
- * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows)
- * @flags: as in open()
- * @mode: as in open()
- *
- * A wrapper for the POSIX open() function. The open() function is
- * used to convert a pathname into a file descriptor. Note that on
- * POSIX systems file descriptors are implemented by the operating
- * system. On Windows, it's the C library that implements open() and
- * file descriptors. The actual Windows API for opening files is
- * something different.
- *
- * See the C library manual for more details about open().
- *
- * Returns: a new file descriptor, or -1 if an error occurred. The
- * return value can be used exactly like the return value from open().
- *
- * Since: 2.6
- */
-int
-eth_stdio_open (const gchar *filename,
- int flags,
- int mode)
-{
-#ifdef _WIN32
- {
- wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL);
- int retval;
- int save_errno;
-
- if (wfilename == NULL)
- {
- errno = EINVAL;
- return -1;
- }
-
- retval = _wopen (wfilename, flags, mode);
- save_errno = errno;
-
- g_free (wfilename);
-
- errno = save_errno;
- return retval;
- }
-#else
- return open (filename, flags, mode);
-#endif
-}
-
-
-/**
- * g_rename:
- * @oldfilename: a pathname in the GLib file name encoding (UTF-8 on Windows)
- * @newfilename: a pathname in the GLib file name encoding
- *
- * A wrapper for the POSIX rename() function. The rename() function
- * renames a file, moving it between directories if required.
- *
- * See your C library manual for more details about how rename() works
- * on your system. Note in particular that on Win9x it is not possible
- * to rename a file if a file with the new name already exists. Also
- * it is not possible in general on Windows to rename an open file.
- *
- * Returns: 0 if the renaming succeeded, -1 if an error occurred
- *
- * Since: 2.6
- */
-int
-eth_stdio_rename (const gchar *oldfilename,
- const gchar *newfilename)
-{
-#ifdef _WIN32
- wchar_t *woldfilename = g_utf8_to_utf16 (oldfilename, -1, NULL, NULL, NULL);
- wchar_t *wnewfilename;
- int retval;
- int save_errno = 0;
-
- if (woldfilename == NULL)
- {
- errno = EINVAL;
- return -1;
- }
-
- wnewfilename = g_utf8_to_utf16 (newfilename, -1, NULL, NULL, NULL);
-
- if (wnewfilename == NULL)
- {
- g_free (woldfilename);
- errno = EINVAL;
- return -1;
- }
-
- if (MoveFileExW (woldfilename, wnewfilename, MOVEFILE_REPLACE_EXISTING))
- retval = 0;
- else
- {
- retval = -1;
- switch (GetLastError ())
- {
-#define CASE(a,b) case ERROR_##a: save_errno = b; break
- CASE (FILE_NOT_FOUND, ENOENT);
- CASE (PATH_NOT_FOUND, ENOENT);
- CASE (ACCESS_DENIED, EACCES);
- CASE (NOT_SAME_DEVICE, EXDEV);
- CASE (LOCK_VIOLATION, EACCES);
- CASE (SHARING_VIOLATION, EACCES);
- CASE (FILE_EXISTS, EEXIST);
- CASE (ALREADY_EXISTS, EEXIST);
-#undef CASE
- default: save_errno = EIO;
- }
- }
-
- g_free (woldfilename);
- g_free (wnewfilename);
-
- errno = save_errno;
- return retval;
-#else
- return rename (oldfilename, newfilename);
-#endif
-}
-
-/**
- * g_mkdir:
- * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows)
- * @mode: permissions to use for the newly created directory
- *
- * A wrapper for the POSIX mkdir() function. The mkdir() function
- * attempts to create a directory with the given name and permissions.
- *
- * See the C library manual for more details about mkdir().
- *
- * Returns: 0 if the directory was successfully created, -1 if an error
- * occurred
- *
- * Since: 2.6
- */
-int
-eth_stdio_mkdir (const gchar *filename,
- int mode)
-{
-#ifdef _WIN32
- wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL);
- int retval;
- int save_errno;
-
- if (wfilename == NULL)
- {
- errno = EINVAL;
- return -1;
- }
-
- retval = _wmkdir (wfilename);
- save_errno = errno;
-
- g_free (wfilename);
-
- errno = save_errno;
- return retval;
-#else
- return mkdir (filename, mode);
-#endif
-}
-
-/**
- * g_stat:
- * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows)
- * @buf: a pointer to a <structname>stat</structname> struct, which
- * will be filled with the file information
- *
- * A wrapper for the POSIX stat() function. The stat() function
- * returns information about a file.
- *
- * See the C library manual for more details about stat().
- *
- * Returns: 0 if the information was successfully retrieved, -1 if an error
- * occurred
- *
- * Since: 2.6
- */
-int
-eth_stdio_stat (const gchar *filename,
- struct stat *buf)
-{
-#ifdef _WIN32
- wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL);
- int retval;
- int save_errno;
- int len;
-
- if (wfilename == NULL)
- {
- errno = EINVAL;
- return -1;
- }
-
- len = wcslen (wfilename);
- while (len > 0 && G_IS_DIR_SEPARATOR (wfilename[len-1]))
- len--;
- if (len > 0 &&
- (!g_path_is_absolute (filename) || len > g_path_skip_root (filename) - filename))
- wfilename[len] = '\0';
-
- retval = _wstat (wfilename, (struct _stat *) buf);
- save_errno = errno;
-
- g_free (wfilename);
-
- errno = save_errno;
- return retval;
-#else
- return stat (filename, buf);
-#endif
-}
-
-/**
- * g_unlink:
- * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows)
- *
- * A wrapper for the POSIX unlink() function. The unlink() function
- * deletes a name from the filesystem. If this was the last link to the
- * file and no processes have it opened, the diskspace occupied by the
- * file is freed.
- *
- * See your C library manual for more details about unlink(). Note
- * that on Windows, it is in general not possible to delete files that
- * are open to some process, or mapped into memory.
- *
- * Returns: 0 if the name was successfully deleted, -1 if an error
- * occurred
- *
- * Since: 2.6
- */
-int
-eth_stdio_unlink (const gchar *filename)
-{
-#ifdef _WIN32
- gchar *cp_filename = g_locale_from_utf8 (filename, -1, NULL, NULL, NULL);
- int retval;
- int save_errno;
-
- if (cp_filename == NULL)
- {
- errno = EINVAL;
- return -1;
- }
-
- retval = unlink (cp_filename);
- save_errno = errno;
-
- g_free (cp_filename);
-
- errno = save_errno;
- return retval;
-#else
- return unlink (filename);
-#endif
-}
-
-/**
- * g_remove:
- * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows)
- *
- * A wrapper for the POSIX remove() function. The remove() function
- * deletes a name from the filesystem.
- *
- * See your C library manual for more details about how remove() works
- * on your system. On Unix, remove() removes also directories, as it
- * calls unlink() for files and rmdir() for directories. On Windows,
- * although remove() in the C library only works for files, this
- * function tries first remove() and then if that fails rmdir(), and
- * thus works for both files and directories. Note however, that on
- * Windows, it is in general not possible to remove a file that is
- * open to some process, or mapped into memory.
- *
- * If this function fails on Windows you can't infer too much from the
- * errno value. rmdir() is tried regardless of what caused remove() to
- * fail. Any errno value set by remove() will be overwritten by that
- * set by rmdir().
- *
- * Returns: 0 if the file was successfully removed, -1 if an error
- * occurred
- *
- * Since: 2.6
- */
-int
-eth_stdio_remove (const gchar *filename)
-{
-#ifdef _WIN32
- wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL);
- int retval;
- int save_errno;
-
- if (wfilename == NULL)
- {
- errno = EINVAL;
- return -1;
- }
-
- retval = _wremove (wfilename);
- if (retval == -1)
- retval = _wrmdir (wfilename);
- save_errno = errno;
-
- g_free (wfilename);
-
- errno = save_errno;
- return retval;
-#else
- return remove (filename);
-#endif
-}
-
-/**
- * g_fopen:
- * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows)
- * @mode: a string describing the mode in which the file should be
- * opened
- *
- * A wrapper for the POSIX fopen() function. The fopen() function opens
- * a file and associates a new stream with it.
- *
- * See the C library manual for more details about fopen().
- *
- * Returns: A <type>FILE</type> pointer if the file was successfully
- * opened, or %NULL if an error occurred
- *
- * Since: 2.6
- */
-FILE *
-eth_stdio_fopen (const gchar *filename,
- const gchar *mode)
-{
-#ifdef _WIN32
- wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL);
- wchar_t *wmode;
- FILE *retval;
- int save_errno;
-
- if (wfilename == NULL)
- {
- errno = EINVAL;
- return NULL;
- }
-
- wmode = g_utf8_to_utf16 (mode, -1, NULL, NULL, NULL);
-
- if (wmode == NULL)
- {
- g_free (wfilename);
- errno = EINVAL;
- return NULL;
- }
-
- retval = _wfopen (wfilename, wmode);
- save_errno = errno;
-
- g_free (wfilename);
- g_free (wmode);
-
- errno = save_errno;
- return retval;
-#else
- return fopen (filename, mode);
-#endif
-}
-
-/**
- * g_freopen:
- * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows)
- * @mode: a string describing the mode in which the file should be
- * opened
- * @stream: an existing stream which will be reused, or %NULL
- *
- * A wrapper for the POSIX freopen() function. The freopen() function
- * opens a file and associates it with an existing stream.
- *
- * See the C library manual for more details about freopen().
- *
- * Returns: A <type>FILE</type> pointer if the file was successfully
- * opened, or %NULL if an error occurred.
- *
- * Since: 2.6
- */
-FILE *
-eth_stdio_freopen (const gchar *filename,
- const gchar *mode,
- FILE *stream)
-{
-#ifdef _WIN32
- wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL);
- wchar_t *wmode;
- FILE *retval;
- int save_errno;
-
- if (wfilename == NULL)
- {
- errno = EINVAL;
- return NULL;
- }
-
- wmode = g_utf8_to_utf16 (mode, -1, NULL, NULL, NULL);
-
- if (wmode == NULL)
- {
- g_free (wfilename);
- errno = EINVAL;
- return NULL;
- }
-
- retval = _wfreopen (wfilename, wmode, stream);
- save_errno = errno;
-
- g_free (wfilename);
- g_free (wmode);
-
- errno = save_errno;
- return retval;
-#else
- return freopen (filename, mode, stream);
-#endif
-}
-
diff --git a/wiretap/file_util.h b/wiretap/file_util.h
deleted file mode 100644
index 61cc64f546..0000000000
--- a/wiretap/file_util.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/* file_util.h
- * File utility definitions
- *
- * $Id$
- *
- * 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.
- */
-
-#ifndef __FILE_UTIL_H__
-#define __FILE_UTIL_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#include <glib.h>
-
-#ifdef _WIN32
-#include <io.h>
-#endif
-
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-
-
-/* Win32: Since GLib2.6, we use UTF8 throughout the code, so file functions
- * must tweak a given filename from UTF8 to UTF16 as we use NT Unicode (Win9x
- * - now unsupported - used locale based encoding here).
- */
-#if defined _WIN32 && GLIB_CHECK_VERSION(2,6,0)
-#include <stdio.h>
-
-extern int eth_stdio_open (const gchar *filename, int flags, int mode);
-extern int eth_stdio_rename (const gchar *oldfilename, const gchar *newfilename);
-extern int eth_stdio_mkdir (const gchar *filename, int mode);
-extern int eth_stdio_stat (const gchar *filename, struct stat *buf);
-extern int eth_stdio_unlink (const gchar *filename);
-extern int eth_stdio_remove (const gchar *filename);
-extern FILE * eth_stdio_fopen (const gchar *filename, const gchar *mode);
-extern FILE * eth_stdio_freopen (const gchar *filename, const gchar *mode, FILE *stream);
-
-#define eth_open eth_stdio_open
-#define eth_rename eth_stdio_rename
-#define eth_mkdir eth_stdio_mkdir
-#define eth_stat eth_stdio_stat
-#define eth_unlink eth_stdio_unlink
-#define eth_remove eth_stdio_remove
-#define eth_fopen eth_stdio_fopen
-#define eth_freopen eth_stdio_freopen
-
-#else /* _WIN32 && GLIB_CHECK_VERSION */
-
-/* GLib 2.4 or below, using "old school" functions */
-#ifdef _WIN32
-#define eth_open _open
-#define eth_stat _stat
-#define eth_unlink _unlink
-#define eth_mkdir(dir,mode) _mkdir(dir)
-#else
-#define eth_open open
-#define eth_stat stat
-#define eth_unlink unlink
-#define eth_mkdir(dir,mode) mkdir(dir,mode)
-#endif /* _WIN32 */
-
-#define eth_rename rename
-#define eth_remove remove
-#define eth_fopen fopen
-#define eth_freopen freopen
-
-#endif /* _WIN32 && GLIB_CHECK_VERSION */
-
-
-/* some common file function differences between UNIX and WIN32 */
-#ifdef _WIN32
-/* the Win32 API prepends underscores for whatever reasons */
-#define eth_read _read
-#define eth_write _write
-#define eth_close _close
-#define eth_dup _dup
-#define eth_lseek _lseek
-#else
-#define eth_read read
-#define eth_write write
-#define eth_close close
-#define eth_dup dup
-#define eth_lseek lseek
-#define O_BINARY 0 /* Win32 needs the O_BINARY flag for open() */
-#endif /* _WIN32 */
-
-/* directory handling */
-#define ETH_DIR GDir
-#define ETH_DIRENT const char
-#define eth_dir_open g_dir_open
-#define eth_dir_read_name g_dir_read_name
-#define eth_dir_get_name(dirent) dirent
-#define eth_dir_rewind g_dir_rewind
-#define eth_dir_close g_dir_close
-
-/* XXX - remove include "dirent.h" */
-/* XXX - remove include "direct.h" */
-/* XXX - remove include "sys/stat.h" */
-/* XXX - update docs (e.g. README.developer) */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __FILE_UTIL_H__ */
diff --git a/wiretap/file_wrappers.c b/wiretap/file_wrappers.c
index 99bcc57d62..9692251624 100644
--- a/wiretap/file_wrappers.c
+++ b/wiretap/file_wrappers.c
@@ -113,7 +113,7 @@
#endif /* HAVE_LIBZ */
#include "wtap-int.h"
#include "file_wrappers.h"
-#include "file_util.h"
+#include <wsutil/file_util.h>
#ifdef HAVE_LIBZ
@@ -149,13 +149,13 @@ file_open(const char *path, const char *mode)
oflag |= O_BINARY;
#endif
/* open file and do correct filename conversions */
- if ((fd = eth_open(path, oflag, 0666)) == -1)
+ if ((fd = ws_open(path, oflag, 0666)) == -1)
return NULL;
/* open zlib file handle */
ft = gzdopen(fd, mode);
if (ft == NULL) {
- eth_close(fd);
+ ws_close(fd);
return NULL;
}
diff --git a/wiretap/libwiretap.vcproj b/wiretap/libwiretap.vcproj
index 438d5373c6..5191c74a94 100644
--- a/wiretap/libwiretap.vcproj
+++ b/wiretap/libwiretap.vcproj
@@ -120,10 +120,6 @@
>
</File>
<File
- RelativePath=".\file_util.c"
- >
- </File>
- <File
RelativePath=".\file_wrappers.c"
>
</File>
@@ -278,10 +274,6 @@
>
</File>
<File
- RelativePath=".\file_util.h"
- >
- </File>
- <File
RelativePath=".\file_wrappers.h"
>
</File>
diff --git a/wiretap/wtap.c b/wiretap/wtap.c
index b4ad5f909a..64c2f0a66b 100644
--- a/wiretap/wtap.c
+++ b/wiretap/wtap.c
@@ -39,7 +39,7 @@
#include "wtap.h"
#include "file_wrappers.h"
-#include "file_util.h"
+#include <wsutil/file_util.h>
#include "buffer.h"
/*
@@ -628,7 +628,7 @@ wtap_read_so_far(wtap *wth, int *err)
{
off_t file_pos;
- file_pos = eth_lseek(wth->fd, 0, SEEK_CUR);
+ file_pos = ws_lseek(wth->fd, 0, SEEK_CUR);
if (file_pos == -1) {
if (err != NULL)
*err = errno;
diff --git a/wiretap/wtap.def b/wiretap/wtap.def
index ce8f7eeaeb..0f026df5d6 100644
--- a/wiretap/wtap.def
+++ b/wiretap/wtap.def
@@ -15,15 +15,6 @@ buffer_free
buffer_init
buffer_remove_start
-eth_stdio_open
-eth_stdio_rename
-eth_stdio_mkdir
-eth_stdio_stat
-eth_stdio_unlink
-eth_stdio_remove
-eth_stdio_fopen
-eth_stdio_freopen
-
file_seek
file_tell
file_error