Ethereal-users: Re: [ethereal-users] Ethereal and WIN NT

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Guy Harris <gharris@xxxxxxxxxxxx>
Date: Fri, 23 Jun 2000 22:08:16 -0700
On Fri, Jun 23, 2000 at 12:41:29AM -0700, Guy Harris wrote:
> If so, it's supposed to work on all platforms; there may be a bug in the
> Win32 version of Ethereal that causes it not to work.

There sure is.  It causes it not to work on Win32 platforms, including
NT/2000 and 95/98(and presumably ME).

I've checked in a fix, so it should be fixed in the next release.  (No,
I don't know when the next release will come out.)

For those who have a compiler that can be used to compile Ethereal
(Microsoft Visual C++ works; I don't know if anybody's tried GCC under
CygWin) and are willing to grab the current source from CVS or grab one
of the nightly tarballs and compile it, I've attached a patch to
"gtk/main.c" that contains the fix.
Index: gtk/main.c
===================================================================
RCS file: /usr/local/cvsroot/ethereal/gtk/main.c,v
retrieving revision 1.121
retrieving revision 1.122
diff -c -r1.121 -r1.122
*** gtk/main.c	2000/06/15 08:02:43	1.121
--- gtk/main.c	2000/06/24 05:06:29	1.122
***************
*** 188,194 ****
          "Could not create temporary file %s: %s", filename1, strerror(errno));
        return;
      }
!     data_out_file = fdopen( tmp_fd, "w" );
      if( data_out_file == NULL ) {
        simple_dialog(ESD_TYPE_WARN, NULL,
          "Could not create temporary file %s: %s", filename1, strerror(errno));
--- 188,194 ----
          "Could not create temporary file %s: %s", filename1, strerror(errno));
        return;
      }
!     data_out_file = fdopen( tmp_fd, "wb" );
      if( data_out_file == NULL ) {
        simple_dialog(ESD_TYPE_WARN, NULL,
          "Could not create temporary file %s: %s", filename1, strerror(errno));
***************
*** 396,402 ****
    guint16 current_pos, global_client_pos = 0, global_server_pos = 0;
    guint16 *global_pos;
  
!   data_out_file = fopen( filename, "r" );
    if( data_out_file ) {
      char buffer[FLT_BUF_SIZE];
      int nchars;
--- 396,402 ----
    guint16 current_pos, global_client_pos = 0, global_server_pos = 0;
    guint16 *global_pos;
  
!   data_out_file = fopen( filename, "rb" );
    if( data_out_file ) {
      char buffer[FLT_BUF_SIZE];
      int nchars;