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;