Patch from Ben Fowler to rename the global variable "cf" to "cfile", to

make it easier to use grep to find all references to it without getting
a lot of false hits and to check, after allocating the memory chunk for
"frame_data" structures, that the allocation succeeded.

svn path=/trunk/; revision=2092
This commit is contained in:
Guy Harris 2000-06-27 04:36:03 +00:00
parent 85a7f56ac0
commit 7fbf320b8a
15 changed files with 300 additions and 298 deletions

130
capture.c
View File

@ -1,7 +1,7 @@
/* capture.c /* capture.c
* Routines for packet capture windows * Routines for packet capture windows
* *
* $Id: capture.c,v 1.108 2000/06/15 08:02:20 guy Exp $ * $Id: capture.c,v 1.109 2000/06/27 04:35:42 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org> * By Gerald Combs <gerald@zing.org>
@ -163,23 +163,23 @@ do_capture(char *capfile_name)
if (capfile_name != NULL) { if (capfile_name != NULL) {
/* Try to open/create the specified file for use as a capture buffer. */ /* Try to open/create the specified file for use as a capture buffer. */
cf.save_file_fd = open(capfile_name, O_RDWR|O_BINARY|O_TRUNC|O_CREAT, 0600); cfile.save_file_fd = open(capfile_name, O_RDWR|O_BINARY|O_TRUNC|O_CREAT, 0600);
is_tempfile = FALSE; is_tempfile = FALSE;
} else { } else {
/* Choose a random name for the capture buffer */ /* Choose a random name for the capture buffer */
cf.save_file_fd = create_tempfile(tmpname, sizeof tmpname, "ether"); cfile.save_file_fd = create_tempfile(tmpname, sizeof tmpname, "ether");
capfile_name = g_strdup(tmpname); capfile_name = g_strdup(tmpname);
is_tempfile = TRUE; is_tempfile = TRUE;
} }
if (cf.save_file_fd == -1) { if (cfile.save_file_fd == -1) {
simple_dialog(ESD_TYPE_WARN, NULL, simple_dialog(ESD_TYPE_WARN, NULL,
"The file to which the capture would be saved (\"%s\")" "The file to which the capture would be saved (\"%s\")"
"could not be opened: %s.", capfile_name, strerror(errno)); "could not be opened: %s.", capfile_name, strerror(errno));
return; return;
} }
close_cap_file(&cf, info_bar); close_cap_file(&cfile, info_bar);
g_assert(cf.save_file == NULL); g_assert(cfile.save_file == NULL);
cf.save_file = capfile_name; cfile.save_file = capfile_name;
if (sync_mode) { /* do the capture in a child process */ if (sync_mode) { /* do the capture in a child process */
int fork_child; int fork_child;
@ -193,9 +193,9 @@ do_capture(char *capfile_name)
char *filterstring; char *filterstring;
#endif #endif
sprintf(ssnap,"%d",cf.snap); /* in lieu of itoa */ sprintf(ssnap,"%d",cfile.snap); /* in lieu of itoa */
sprintf(scount,"%d",cf.count); sprintf(scount,"%d",cfile.count);
sprintf(save_file_fd,"%d",cf.save_file_fd); sprintf(save_file_fd,"%d",cfile.save_file_fd);
#ifdef _WIN32 #ifdef _WIN32
/* Create a pipe for the child process */ /* Create a pipe for the child process */
@ -203,9 +203,9 @@ do_capture(char *capfile_name)
if(_pipe(sync_pipe, 512, O_BINARY) < 0) { if(_pipe(sync_pipe, 512, O_BINARY) < 0) {
/* Couldn't create the pipe between parent and child. */ /* Couldn't create the pipe between parent and child. */
error = errno; error = errno;
unlink(cf.save_file); unlink(cfile.save_file);
g_free(cf.save_file); g_free(cfile.save_file);
cf.save_file = NULL; cfile.save_file = NULL;
simple_dialog(ESD_TYPE_WARN, NULL, "Couldn't create sync pipe: %s", simple_dialog(ESD_TYPE_WARN, NULL, "Couldn't create sync pipe: %s",
strerror(error)); strerror(error));
return; return;
@ -214,16 +214,16 @@ do_capture(char *capfile_name)
/* Convert pipe write handle to a string and pass to child */ /* Convert pipe write handle to a string and pass to child */
itoa(sync_pipe[WRITE], sync_pipe_fd, 10); itoa(sync_pipe[WRITE], sync_pipe_fd, 10);
/* Convert filter string to a quote delimited string */ /* Convert filter string to a quote delimited string */
filterstring = g_new(char, strlen(cf.cfilter) + 3); filterstring = g_new(char, strlen(cfile.cfilter) + 3);
sprintf(filterstring, "\"%s\"", cf.cfilter); sprintf(filterstring, "\"%s\"", cfile.cfilter);
filterstring[strlen(cf.cfilter) + 2] = 0; filterstring[strlen(cfile.cfilter) + 2] = 0;
/* Spawn process */ /* Spawn process */
fork_child = spawnlp(_P_NOWAIT, ethereal_path, CHILD_NAME, "-i", cf.iface, fork_child = spawnlp(_P_NOWAIT, ethereal_path, CHILD_NAME, "-i", cfile.iface,
"-w", cf.save_file, "-W", save_file_fd, "-w", cfile.save_file, "-W", save_file_fd,
"-c", scount, "-s", ssnap, "-c", scount, "-s", ssnap,
"-Z", sync_pipe_fd, "-Z", sync_pipe_fd,
strlen(cf.cfilter) == 0 ? (const char *)NULL : "-f", strlen(cfile.cfilter) == 0 ? (const char *)NULL : "-f",
strlen(cf.cfilter) == 0 ? (const char *)NULL : filterstring, strlen(cfile.cfilter) == 0 ? (const char *)NULL : filterstring,
(const char *)NULL); (const char *)NULL);
g_free(filterstring); g_free(filterstring);
/* Keep a copy for later evaluation by _cwait() */ /* Keep a copy for later evaluation by _cwait() */
@ -233,9 +233,9 @@ do_capture(char *capfile_name)
if (pipe(sync_pipe) < 0) { if (pipe(sync_pipe) < 0) {
/* Couldn't create the pipe between parent and child. */ /* Couldn't create the pipe between parent and child. */
error = errno; error = errno;
unlink(cf.save_file); unlink(cfile.save_file);
g_free(cf.save_file); g_free(cfile.save_file);
cf.save_file = NULL; cfile.save_file = NULL;
simple_dialog(ESD_TYPE_WARN, NULL, "Couldn't create sync pipe: %s", simple_dialog(ESD_TYPE_WARN, NULL, "Couldn't create sync pipe: %s",
strerror(error)); strerror(error));
return; return;
@ -257,12 +257,12 @@ do_capture(char *capfile_name)
close(1); close(1);
dup(sync_pipe[WRITE]); dup(sync_pipe[WRITE]);
close(sync_pipe[READ]); close(sync_pipe[READ]);
execlp(ethereal_path, CHILD_NAME, "-i", cf.iface, execlp(ethereal_path, CHILD_NAME, "-i", cfile.iface,
"-w", cf.save_file, "-W", save_file_fd, "-w", cfile.save_file, "-W", save_file_fd,
"-c", scount, "-s", ssnap, "-c", scount, "-s", ssnap,
"-m", medium_font, "-b", bold_font, "-m", medium_font, "-b", bold_font,
(cf.cfilter == NULL)? 0 : "-f", (cfile.cfilter == NULL)? 0 : "-f",
(cf.cfilter == NULL)? 0 : cf.cfilter, (cfile.cfilter == NULL)? 0 : cfile.cfilter,
(const char *)NULL); (const char *)NULL);
snprintf(errmsg, sizeof errmsg, "Couldn't run %s in child process: %s", snprintf(errmsg, sizeof errmsg, "Couldn't run %s in child process: %s",
ethereal_path, strerror(errno)); ethereal_path, strerror(errno));
@ -287,15 +287,15 @@ do_capture(char *capfile_name)
/* Close the save file FD, as we won't be using it - we'll be opening /* Close the save file FD, as we won't be using it - we'll be opening
it and reading the save file through Wiretap. */ it and reading the save file through Wiretap. */
close(cf.save_file_fd); close(cfile.save_file_fd);
if (fork_child == -1) { if (fork_child == -1) {
/* We couldn't even create the child process. */ /* We couldn't even create the child process. */
error = errno; error = errno;
close(sync_pipe[READ]); close(sync_pipe[READ]);
unlink(cf.save_file); unlink(cfile.save_file);
g_free(cf.save_file); g_free(cfile.save_file);
cf.save_file = NULL; cfile.save_file = NULL;
simple_dialog(ESD_TYPE_WARN, NULL, "Couldn't create child process: %s", simple_dialog(ESD_TYPE_WARN, NULL, "Couldn't create child process: %s",
strerror(error)); strerror(error));
return; return;
@ -315,9 +315,9 @@ do_capture(char *capfile_name)
and report the failure. and report the failure.
XXX - reap the child process and report the status in detail. */ XXX - reap the child process and report the status in detail. */
close(sync_pipe[READ]); close(sync_pipe[READ]);
unlink(cf.save_file); unlink(cfile.save_file);
g_free(cf.save_file); g_free(cfile.save_file);
cf.save_file = NULL; cfile.save_file = NULL;
simple_dialog(ESD_TYPE_WARN, NULL, "Capture child process died"); simple_dialog(ESD_TYPE_WARN, NULL, "Capture child process died");
return; return;
} }
@ -328,9 +328,9 @@ do_capture(char *capfile_name)
Close the read side of the sync pipe, remove the capture file, Close the read side of the sync pipe, remove the capture file,
and report the failure. */ and report the failure. */
close(sync_pipe[READ]); close(sync_pipe[READ]);
unlink(cf.save_file); unlink(cfile.save_file);
g_free(cf.save_file); g_free(cfile.save_file);
cf.save_file = NULL; cfile.save_file = NULL;
simple_dialog(ESD_TYPE_WARN, NULL, simple_dialog(ESD_TYPE_WARN, NULL,
"Capture child process sent us a bad message"); "Capture child process sent us a bad message");
return; return;
@ -339,7 +339,7 @@ do_capture(char *capfile_name)
} }
if (byte_count == 0) { if (byte_count == 0) {
/* Success. Open the capture file, and set up to read it. */ /* Success. Open the capture file, and set up to read it. */
err = start_tail_cap_file(cf.save_file, is_tempfile, &cf); err = start_tail_cap_file(cfile.save_file, is_tempfile, &cfile);
if (err == 0) { if (err == 0) {
/* We were able to open and set up to read the capture file; /* We were able to open and set up to read the capture file;
arrange that our callback be called whenever it's possible arrange that our callback be called whenever it's possible
@ -357,22 +357,22 @@ do_capture(char *capfile_name)
GDK_INPUT_READ|GDK_INPUT_EXCEPTION, GDK_INPUT_READ|GDK_INPUT_EXCEPTION,
cap_file_input_cb, cap_file_input_cb,
NULL, NULL,
(gpointer) &cf, (gpointer) &cfile,
NULL); NULL);
#endif #endif
} else { } else {
/* We weren't able to open the capture file; complain, and /* We weren't able to open the capture file; complain, and
close the sync pipe. */ close the sync pipe. */
simple_dialog(ESD_TYPE_WARN, NULL, simple_dialog(ESD_TYPE_WARN, NULL,
file_open_error_message(err, FALSE), cf.save_file); file_open_error_message(err, FALSE), cfile.save_file);
/* Close the sync pipe. */ /* Close the sync pipe. */
close(sync_pipe[READ]); close(sync_pipe[READ]);
/* Don't unlink the save file - leave it around, for debugging /* Don't unlink the save file - leave it around, for debugging
purposes. */ purposes. */
g_free(cf.save_file); g_free(cfile.save_file);
cf.save_file = NULL; cfile.save_file = NULL;
} }
} else { } else {
/* Failure - the child process sent us a message indicating /* Failure - the child process sent us a message indicating
@ -398,9 +398,9 @@ do_capture(char *capfile_name)
close(sync_pipe[READ]); close(sync_pipe[READ]);
/* Get rid of the save file - the capture never started. */ /* Get rid of the save file - the capture never started. */
unlink(cf.save_file); unlink(cfile.save_file);
g_free(cf.save_file); g_free(cfile.save_file);
cf.save_file = NULL; cfile.save_file = NULL;
} }
} }
} else { } else {
@ -412,16 +412,16 @@ do_capture(char *capfile_name)
} }
if (capture_succeeded) { if (capture_succeeded) {
/* Capture succeeded; read in the capture file. */ /* Capture succeeded; read in the capture file. */
if ((err = open_cap_file(cf.save_file, is_tempfile, &cf)) == 0) { if ((err = open_cap_file(cfile.save_file, is_tempfile, &cfile)) == 0) {
/* Set the read filter to NULL. */ /* Set the read filter to NULL. */
cf.rfcode = NULL; cfile.rfcode = NULL;
err = read_cap_file(&cf); err = read_cap_file(&cfile);
} }
} }
/* We're not doing a capture any more, so we don't have a save /* We're not doing a capture any more, so we don't have a save
file. */ file. */
g_free(cf.save_file); g_free(cfile.save_file);
cf.save_file = NULL; cfile.save_file = NULL;
} }
} }
@ -453,7 +453,7 @@ cap_timer_cb(gpointer data)
gtk_timeout_remove(cap_timer_id); gtk_timeout_remove(cap_timer_id);
/* And call the real handler */ /* And call the real handler */
cap_file_input_cb((gpointer) &cf, 0, 0); cap_file_input_cb((gpointer) &cfile, 0, 0);
/* Return false so that the timer is not run again */ /* Return false so that the timer is not run again */
return FALSE; return FALSE;
@ -693,7 +693,7 @@ capture(void)
ld.go = TRUE; ld.go = TRUE;
ld.counts.total = 0; ld.counts.total = 0;
ld.max = cf.count; ld.max = cfile.count;
ld.linktype = WTAP_ENCAP_UNKNOWN; ld.linktype = WTAP_ENCAP_UNKNOWN;
ld.sync_packets = 0; ld.sync_packets = 0;
ld.counts.sctp = 0; ld.counts.sctp = 0;
@ -709,7 +709,7 @@ capture(void)
ld.pdh = NULL; ld.pdh = NULL;
/* Open the network interface to capture from it. */ /* Open the network interface to capture from it. */
pch = pcap_open_live(cf.iface, cf.snap, 1, CAP_READ_TIMEOUT, err_str); pch = pcap_open_live(cfile.iface, cfile.snap, 1, CAP_READ_TIMEOUT, err_str);
if (pch == NULL) { if (pch == NULL) {
/* Well, we couldn't start the capture. /* Well, we couldn't start the capture.
@ -727,19 +727,19 @@ capture(void)
goto error; goto error;
} }
if (cf.cfilter) { if (cfile.cfilter) {
/* A capture filter was specified; set it up. */ /* A capture filter was specified; set it up. */
if (pcap_lookupnet (cf.iface, &netnum, &netmask, err_str) < 0) { if (pcap_lookupnet (cfile.iface, &netnum, &netmask, err_str) < 0) {
snprintf(errmsg, sizeof errmsg, snprintf(errmsg, sizeof errmsg,
"Can't use filter: Couldn't obtain netmask info (%s).", err_str); "Can't use filter: Couldn't obtain netmask info (%s).", err_str);
goto error; goto error;
} }
if (pcap_compile(pch, &cf.fcode, cf.cfilter, 1, netmask) < 0) { if (pcap_compile(pch, &cfile.fcode, cfile.cfilter, 1, netmask) < 0) {
snprintf(errmsg, sizeof errmsg, "Unable to parse filter string (%s).", snprintf(errmsg, sizeof errmsg, "Unable to parse filter string (%s).",
pcap_geterr(pch)); pcap_geterr(pch));
goto error; goto error;
} }
if (pcap_setfilter(pch, &cf.fcode) < 0) { if (pcap_setfilter(pch, &cfile.fcode) < 0) {
snprintf(errmsg, sizeof errmsg, "Can't install filter (%s).", snprintf(errmsg, sizeof errmsg, "Can't install filter (%s).",
pcap_geterr(pch)); pcap_geterr(pch));
goto error; goto error;
@ -753,7 +753,7 @@ capture(void)
" that Ethereal doesn't support."); " that Ethereal doesn't support.");
goto error; goto error;
} }
ld.pdh = wtap_dump_fdopen(cf.save_file_fd, WTAP_FILE_PCAP, ld.pdh = wtap_dump_fdopen(cfile.save_file_fd, WTAP_FILE_PCAP,
ld.linktype, pcap_snapshot(pch), &err); ld.linktype, pcap_snapshot(pch), &err);
if (ld.pdh == NULL) { if (ld.pdh == NULL) {
@ -774,11 +774,11 @@ capture(void)
if (err < 0) { if (err < 0) {
sprintf(errmsg, "The file to which the capture would be" sprintf(errmsg, "The file to which the capture would be"
" saved (\"%s\") could not be opened: Error %d.", " saved (\"%s\") could not be opened: Error %d.",
cf.save_file, err); cfile.save_file, err);
} else { } else {
sprintf(errmsg, "The file to which the capture would be" sprintf(errmsg, "The file to which the capture would be"
" saved (\"%s\") could not be opened: %s.", " saved (\"%s\") could not be opened: %s.",
cf.save_file, strerror(err)); cfile.save_file, strerror(err));
} }
break; break;
} }
@ -994,7 +994,7 @@ capture(void)
simple_dialog(ESD_TYPE_WARN, NULL, simple_dialog(ESD_TYPE_WARN, NULL,
"The file to which the capture was being" "The file to which the capture was being"
" saved (\"%s\") could not be closed: %s.", " saved (\"%s\") could not be closed: %s.",
cf.save_file, wtap_strerror(err)); cfile.save_file, wtap_strerror(err));
break; break;
} }
} }
@ -1008,13 +1008,13 @@ capture(void)
error: error:
/* We can't use the save file, and we have no wtap_dump stream /* We can't use the save file, and we have no wtap_dump stream
to close in order to close it, so close the FD directly. */ to close in order to close it, so close the FD directly. */
close(cf.save_file_fd); close(cfile.save_file_fd);
/* We couldn't even start the capture, so get rid of the capture /* We couldn't even start the capture, so get rid of the capture
file. */ file. */
unlink(cf.save_file); /* silently ignore error */ unlink(cfile.save_file); /* silently ignore error */
g_free(cf.save_file); g_free(cfile.save_file);
cf.save_file = NULL; cfile.save_file = NULL;
if (capture_child) { if (capture_child) {
/* This is the child process for a sync mode capture. /* This is the child process for a sync mode capture.
Send the error message to our parent, so they can display a Send the error message to our parent, so they can display a

3
file.c
View File

@ -1,7 +1,7 @@
/* file.c /* file.c
* File I/O routines * File I/O routines
* *
* $Id: file.c,v 1.189 2000/05/19 23:06:06 gram Exp $ * $Id: file.c,v 1.190 2000/06/27 04:35:44 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org> * By Gerald Combs <gerald@zing.org>
@ -174,6 +174,7 @@ open_cap_file(char *fname, gboolean is_tempfile, capture_file *cf)
sizeof(frame_data), sizeof(frame_data),
FRAME_DATA_CHUNK_SIZE * sizeof(frame_data), FRAME_DATA_CHUNK_SIZE * sizeof(frame_data),
G_ALLOC_AND_FREE); G_ALLOC_AND_FREE);
g_assert(cf->plist_chunk);
return (0); return (0);

View File

@ -1,7 +1,7 @@
/* globals.h /* globals.h
* Global defines, etc. * Global defines, etc.
* *
* $Id: globals.h,v 1.17 2000/01/25 04:31:16 guy Exp $ * $Id: globals.h,v 1.18 2000/06/27 04:35:45 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org> * By Gerald Combs <gerald@zing.org>
@ -76,7 +76,7 @@
extern FILE *data_out_file; extern FILE *data_out_file;
extern packet_info pi; extern packet_info pi;
extern capture_file cf; extern capture_file cfile;
extern guint main_ctx, file_ctx; extern guint main_ctx, file_ctx;
extern gchar comp_info_str[256]; extern gchar comp_info_str[256];
extern gchar *ethereal_path; extern gchar *ethereal_path;

View File

@ -1,7 +1,7 @@
/* capture_dlg.c /* capture_dlg.c
* Routines for packet capture windows * Routines for packet capture windows
* *
* $Id: capture_dlg.c,v 1.26 2000/06/15 08:02:42 guy Exp $ * $Id: capture_dlg.c,v 1.27 2000/06/27 04:35:57 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org> * By Gerald Combs <gerald@zing.org>
@ -160,8 +160,8 @@ capture_prep_cb(GtkWidget *w, gpointer d)
if_cb = gtk_combo_new(); if_cb = gtk_combo_new();
if (if_list != NULL) if (if_list != NULL)
gtk_combo_set_popdown_strings(GTK_COMBO(if_cb), if_list); gtk_combo_set_popdown_strings(GTK_COMBO(if_cb), if_list);
if (cf.iface) if (cfile.iface)
gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(if_cb)->entry), cf.iface); gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(if_cb)->entry), cfile.iface);
else if (if_list) else if (if_list)
gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(if_cb)->entry), if_list->data); gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(if_cb)->entry), if_list->data);
gtk_box_pack_start(GTK_BOX(if_hb), if_cb, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(if_hb), if_cb, FALSE, FALSE, 0);
@ -179,8 +179,8 @@ capture_prep_cb(GtkWidget *w, gpointer d)
gtk_widget_show(count_lb); gtk_widget_show(count_lb);
count_list = g_list_append(count_list, count_item1); count_list = g_list_append(count_list, count_item1);
if (cf.count) { if (cfile.count) {
snprintf(count_item2, 15, "%d", cf.count); snprintf(count_item2, 15, "%d", cfile.count);
count_list = g_list_append(count_list, count_item2); count_list = g_list_append(count_list, count_item2);
} }
@ -204,7 +204,7 @@ capture_prep_cb(GtkWidget *w, gpointer d)
gtk_widget_show(filter_bt); gtk_widget_show(filter_bt);
filter_te = gtk_entry_new(); filter_te = gtk_entry_new();
if (cf.cfilter) gtk_entry_set_text(GTK_ENTRY(filter_te), cf.cfilter); if (cfile.cfilter) gtk_entry_set_text(GTK_ENTRY(filter_te), cfile.cfilter);
gtk_object_set_data(GTK_OBJECT(filter_bt), E_FILT_TE_PTR_KEY, filter_te); gtk_object_set_data(GTK_OBJECT(filter_bt), E_FILT_TE_PTR_KEY, filter_te);
gtk_box_pack_start(GTK_BOX(filter_hb), filter_te, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(filter_hb), filter_te, TRUE, TRUE, 0);
gtk_widget_show(filter_te); gtk_widget_show(filter_te);
@ -235,7 +235,7 @@ capture_prep_cb(GtkWidget *w, gpointer d)
gtk_box_pack_start(GTK_BOX(caplen_hb), snap_lb, FALSE, FALSE, 6); gtk_box_pack_start(GTK_BOX(caplen_hb), snap_lb, FALSE, FALSE, 6);
gtk_widget_show(snap_lb); gtk_widget_show(snap_lb);
adj = (GtkAdjustment *) gtk_adjustment_new((float) cf.snap, adj = (GtkAdjustment *) gtk_adjustment_new((float) cfile.snap,
MIN_PACKET_SIZE, WTAP_MAX_PACKET_SIZE, 1.0, 10.0, 0.0); MIN_PACKET_SIZE, WTAP_MAX_PACKET_SIZE, 1.0, 10.0, 0.0);
snap_sb = gtk_spin_button_new (adj, 0, 0); snap_sb = gtk_spin_button_new (adj, 0, 0);
gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (snap_sb), TRUE); gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (snap_sb), TRUE);
@ -437,12 +437,12 @@ capture_prep_ok_cb(GtkWidget *ok_bt, gpointer parent_w) {
g_free(if_name); g_free(if_name);
return; return;
} }
if (cf.iface) if (cfile.iface)
g_free(cf.iface); g_free(cfile.iface);
cf.iface = g_strdup(if_name); cfile.iface = g_strdup(if_name);
g_free(if_text); g_free(if_text);
/* XXX - don't try to get clever and set "cf.filter" to NULL if the /* XXX - don't try to get clever and set "cfile.filter" to NULL if the
filter string is empty, as an indication that we don't have a filter filter string is empty, as an indication that we don't have a filter
and thus don't have to set a filter when capturing - the version of and thus don't have to set a filter when capturing - the version of
libpcap in Red Hat Linux 6.1, and versions based on later patches libpcap in Red Hat Linux 6.1, and versions based on later patches
@ -451,10 +451,10 @@ capture_prep_ok_cb(GtkWidget *ok_bt, gpointer parent_w) {
no filter is set, which means no packets arrive as input on that no filter is set, which means no packets arrive as input on that
socket, which means Ethereal never sees any packets. */ socket, which means Ethereal never sees any packets. */
filter_text = gtk_entry_get_text(GTK_ENTRY(filter_te)); filter_text = gtk_entry_get_text(GTK_ENTRY(filter_te));
if (cf.cfilter) if (cfile.cfilter)
g_free(cf.cfilter); g_free(cfile.cfilter);
g_assert(filter_text != NULL); g_assert(filter_text != NULL);
cf.cfilter = g_strdup(filter_text); cfile.cfilter = g_strdup(filter_text);
save_file = gtk_entry_get_text(GTK_ENTRY(file_te)); save_file = gtk_entry_get_text(GTK_ENTRY(file_te));
if (save_file && save_file[0]) { if (save_file && save_file[0]) {
@ -465,13 +465,13 @@ capture_prep_ok_cb(GtkWidget *ok_bt, gpointer parent_w) {
save_file = NULL; save_file = NULL;
} }
cf.count = atoi(gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(count_cb)->entry))); cfile.count = atoi(gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(count_cb)->entry)));
cf.snap = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(snap_sb)); cfile.snap = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(snap_sb));
if (cf.snap < 1) if (cfile.snap < 1)
cf.snap = WTAP_MAX_PACKET_SIZE; cfile.snap = WTAP_MAX_PACKET_SIZE;
else if (cf.snap < MIN_PACKET_SIZE) else if (cfile.snap < MIN_PACKET_SIZE)
cf.snap = MIN_PACKET_SIZE; cfile.snap = MIN_PACKET_SIZE;
sync_mode = GTK_TOGGLE_BUTTON (sync_cb)->active; sync_mode = GTK_TOGGLE_BUTTON (sync_cb)->active;

View File

@ -1,7 +1,7 @@
/* color_dlg.c /* color_dlg.c
* Definitions for dialog boxes for color filters * Definitions for dialog boxes for color filters
* *
* $Id: color_dlg.c,v 1.2 2000/02/12 08:42:26 guy Exp $ * $Id: color_dlg.c,v 1.3 2000/06/27 04:35:58 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org> * By Gerald Combs <gerald@zing.org>
@ -95,7 +95,7 @@ color_display_cb(GtkWidget *w, gpointer d)
reactivate_window(colorize_win); reactivate_window(colorize_win);
} else { } else {
/* Create a new "Colorize Display" dialog. */ /* Create a new "Colorize Display" dialog. */
colorize_win = colorize_dialog_new(cf.colors); colorize_win = colorize_dialog_new(cfile.colors);
} }
} }
@ -575,7 +575,7 @@ color_ok_cb (GtkButton *button,
gpointer user_data) gpointer user_data)
{ {
/* colorize list */ /* colorize list */
colorize_packets(&cf); colorize_packets(&cfile);
/* Destroy the dialog box. */ /* Destroy the dialog box. */
gtk_widget_destroy(colorize_win); gtk_widget_destroy(colorize_win);
@ -596,7 +596,7 @@ static void
color_apply_cb (GtkButton *button, color_apply_cb (GtkButton *button,
gpointer user_data) gpointer user_data)
{ {
colorize_packets(&cf); colorize_packets(&cfile);
} }
/* Create an "Edit color filter" dialog for a given color filter, and /* Create an "Edit color filter" dialog for a given color filter, and
@ -916,17 +916,17 @@ edit_color_filter_ok_cb (GtkButton *button,
colorf->fg_color = new_fg_color; colorf->fg_color = new_fg_color;
colorf->bg_color = new_bg_color; colorf->bg_color = new_bg_color;
gtk_clist_set_foreground(GTK_CLIST(color_filters), gtk_clist_set_foreground(GTK_CLIST(color_filters),
cf.colors->row_selected, &new_fg_color); cfile.colors->row_selected, &new_fg_color);
gtk_clist_set_background(GTK_CLIST(color_filters), gtk_clist_set_background(GTK_CLIST(color_filters),
cf.colors->row_selected, &new_bg_color); cfile.colors->row_selected, &new_bg_color);
if(colorf->c_colorfilter != NULL) if(colorf->c_colorfilter != NULL)
dfilter_destroy(colorf->c_colorfilter); dfilter_destroy(colorf->c_colorfilter);
colorf->c_colorfilter = compiled_filter; colorf->c_colorfilter = compiled_filter;
/* gtk_clist_set_text frees old text (if any) and allocates new space */ /* gtk_clist_set_text frees old text (if any) and allocates new space */
gtk_clist_set_text(GTK_CLIST(color_filters), gtk_clist_set_text(GTK_CLIST(color_filters),
cf.colors->row_selected, 0, filter_name); cfile.colors->row_selected, 0, filter_name);
gtk_clist_set_text(GTK_CLIST(color_filters), gtk_clist_set_text(GTK_CLIST(color_filters),
cf.colors->row_selected, 1, filter_text); cfile.colors->row_selected, 1, filter_text);
/* Destroy the dialog box. */ /* Destroy the dialog box. */
gtk_widget_destroy(dialog); gtk_widget_destroy(dialog);

View File

@ -1,7 +1,7 @@
/* display_opts.c /* display_opts.c
* Routines for packet display windows * Routines for packet display windows
* *
* $Id: display_opts.c,v 1.7 2000/05/08 05:51:37 guy Exp $ * $Id: display_opts.c,v 1.8 2000/06/27 04:35:59 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org> * By Gerald Combs <gerald@zing.org>
@ -65,7 +65,7 @@
#include "ui_util.h" #include "ui_util.h"
#include "dlg_utils.h" #include "dlg_utils.h"
extern capture_file cf; extern capture_file cfile;
extern GtkWidget *packet_list; extern GtkWidget *packet_list;
/* Display callback data keys */ /* Display callback data keys */
@ -247,7 +247,7 @@ display_opt_ok_cb(GtkWidget *ok_bt, gpointer parent_w) {
gtk_widget_destroy(GTK_WIDGET(parent_w)); gtk_widget_destroy(GTK_WIDGET(parent_w));
change_time_formats(&cf); change_time_formats(&cfile);
} }
static void static void
@ -281,7 +281,7 @@ display_opt_apply_cb(GtkWidget *ok_bt, gpointer parent_w) {
E_DISPLAY_IP_DSCP_KEY); E_DISPLAY_IP_DSCP_KEY);
g_ip_dscp_actif = (GTK_TOGGLE_BUTTON (button)->active); g_ip_dscp_actif = (GTK_TOGGLE_BUTTON (button)->active);
change_time_formats(&cf); change_time_formats(&cfile);
} }
static void static void
@ -289,7 +289,7 @@ display_opt_close_cb(GtkWidget *close_bt, gpointer parent_w) {
if (timestamp_type != prev_timestamp_type) { if (timestamp_type != prev_timestamp_type) {
timestamp_type = prev_timestamp_type; timestamp_type = prev_timestamp_type;
change_time_formats(&cf); change_time_formats(&cfile);
} }
gtk_grab_remove(GTK_WIDGET(parent_w)); gtk_grab_remove(GTK_WIDGET(parent_w));

View File

@ -1,7 +1,7 @@
/* file_dlg.c /* file_dlg.c
* Dialog boxes for handling files * Dialog boxes for handling files
* *
* $Id: file_dlg.c,v 1.24 2000/06/02 03:35:39 gram Exp $ * $Id: file_dlg.c,v 1.25 2000/06/27 04:36:00 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org> * By Gerald Combs <gerald@zing.org>
@ -197,7 +197,7 @@ file_open_ok_cb(GtkWidget *w, GtkFileSelection *fs) {
} }
/* Try to open the capture file. */ /* Try to open the capture file. */
if ((err = open_cap_file(cf_name, FALSE, &cf)) != 0) { if ((err = open_cap_file(cf_name, FALSE, &cfile)) != 0) {
/* We couldn't open it; don't dismiss the open dialog box, /* We couldn't open it; don't dismiss the open dialog box,
just leave it around so that the user can, after they just leave it around so that the user can, after they
dismiss the alert box popped up for the open error, dismiss the alert box popped up for the open error,
@ -211,7 +211,7 @@ file_open_ok_cb(GtkWidget *w, GtkFileSelection *fs) {
/* Attach the new read filter to "cf" ("open_cap_file()" succeeded, so /* Attach the new read filter to "cf" ("open_cap_file()" succeeded, so
it closed the previous capture file, and thus destroyed any it closed the previous capture file, and thus destroyed any
previous read filter attached to "cf"). */ previous read filter attached to "cf"). */
cf.rfcode = rfcode; cfile.rfcode = rfcode;
/* Set the global resolving variable */ /* Set the global resolving variable */
resolv_cb = gtk_object_get_data(GTK_OBJECT(w), E_FILE_RESOLVE_KEY); resolv_cb = gtk_object_get_data(GTK_OBJECT(w), E_FILE_RESOLVE_KEY);
@ -221,7 +221,7 @@ file_open_ok_cb(GtkWidget *w, GtkFileSelection *fs) {
gtk_widget_hide(GTK_WIDGET (fs)); gtk_widget_hide(GTK_WIDGET (fs));
gtk_widget_destroy(GTK_WIDGET (fs)); gtk_widget_destroy(GTK_WIDGET (fs));
err = read_cap_file(&cf); err = read_cap_file(&cfile);
/* Save the name of the containing directory specified in the path name, /* Save the name of the containing directory specified in the path name,
if any; we can write over cf_name, which is a good thing, given that if any; we can write over cf_name, which is a good thing, given that
"get_dirname()" does write over its argument. */ "get_dirname()" does write over its argument. */
@ -269,13 +269,13 @@ file_open_destroy_cb(GtkWidget *win, gpointer user_data)
/* Close a file */ /* Close a file */
void void
file_close_cmd_cb(GtkWidget *widget, gpointer data) { file_close_cmd_cb(GtkWidget *widget, gpointer data) {
close_cap_file(&cf, info_bar); close_cap_file(&cfile, info_bar);
} }
void void
file_save_cmd_cb(GtkWidget *w, gpointer data) { file_save_cmd_cb(GtkWidget *w, gpointer data) {
/* If the file's already been saved, do nothing. */ /* If the file's already been saved, do nothing. */
if (cf.user_saved) if (cfile.user_saved)
return; return;
/* Do a "Save As". */ /* Do a "Save As". */
@ -294,7 +294,7 @@ can_save_with_wiretap(int ft)
/* To save a file with Wiretap, Wiretap has to handle that format, /* To save a file with Wiretap, Wiretap has to handle that format,
and its code to handle that format must be able to write a file and its code to handle that format must be able to write a file
with this file's encapsulation type. */ with this file's encapsulation type. */
return wtap_dump_can_open(ft) && wtap_dump_can_write_encap(ft, cf.lnk_t); return wtap_dump_can_open(ft) && wtap_dump_can_write_encap(ft, cfile.lnk_t);
} }
/* Generate a list of the file types we can save this file as. /* Generate a list of the file types we can save this file as.
@ -325,7 +325,7 @@ set_file_type_list(GtkWidget *option_menu)
/* Check all file types. */ /* Check all file types. */
index = 0; index = 0;
for (ft = 0; ft < WTAP_NUM_FILE_TYPES; ft++) { for (ft = 0; ft < WTAP_NUM_FILE_TYPES; ft++) {
if (filtered || ft != cf.cd_t) { if (filtered || ft != cfile.cd_t) {
/* Filtered, or a different file type. We have to use Wiretap. */ /* Filtered, or a different file type. We have to use Wiretap. */
if (!can_save_with_wiretap(ft)) if (!can_save_with_wiretap(ft))
continue; /* We can't. */ continue; /* We can't. */
@ -396,7 +396,7 @@ file_save_as_cmd_cb(GtkWidget *w, gpointer data)
/* Default to saving all packets, in the file's current format. */ /* Default to saving all packets, in the file's current format. */
filtered = FALSE; filtered = FALSE;
filetype = cf.cd_t; filetype = cfile.cd_t;
file_save_as_w = gtk_file_selection_new ("Ethereal: Save Capture File As"); file_save_as_w = gtk_file_selection_new ("Ethereal: Save Capture File As");
gtk_signal_connect(GTK_OBJECT(file_save_as_w), "destroy", gtk_signal_connect(GTK_OBJECT(file_save_as_w), "destroy",
@ -463,7 +463,7 @@ file_save_as_ok_cb(GtkWidget *w, GtkFileSelection *fs) {
/* Write out the packets (all, or only the ones that are currently /* Write out the packets (all, or only the ones that are currently
displayed) to the file with the specified name. */ displayed) to the file with the specified name. */
save_cap_file(cf_name, &cf, filtered, filetype); save_cap_file(cf_name, &cfile, filtered, filetype);
/* If "save_cap_file()" saved the file name we handed it, it saved /* If "save_cap_file()" saved the file name we handed it, it saved
a copy, so we should free up our copy. */ a copy, so we should free up our copy. */
@ -487,9 +487,9 @@ file_reload_cmd_cb(GtkWidget *w, gpointer data) {
filter_te = gtk_object_get_data(GTK_OBJECT(w), E_DFILTER_TE_KEY); filter_te = gtk_object_get_data(GTK_OBJECT(w), E_DFILTER_TE_KEY);
if (cf.dfilter) if (cfile.dfilter)
g_free(cf.dfilter); g_free(cfile.dfilter);
cf.dfilter = g_strdup(gtk_entry_get_text(GTK_ENTRY(filter_te))); cfile.dfilter = g_strdup(gtk_entry_get_text(GTK_ENTRY(filter_te)));
/* If the file could be opened, "open_cap_file()" calls "close_cap_file()" /* If the file could be opened, "open_cap_file()" calls "close_cap_file()"
to get rid of state for the old capture file before filling in state to get rid of state for the old capture file before filling in state
@ -499,21 +499,21 @@ file_reload_cmd_cb(GtkWidget *w, gpointer data) {
a temporary file, mark it as not being a temporary file, and then a temporary file, mark it as not being a temporary file, and then
reopen it as the type of file it was. reopen it as the type of file it was.
Also, "close_cap_file()" will free "cf.filename", so we must make Also, "close_cap_file()" will free "cfile.filename", so we must make
a copy of it first. */ a copy of it first. */
filename = strdup(cf.filename); filename = strdup(cfile.filename);
is_tempfile = cf.is_tempfile; is_tempfile = cfile.is_tempfile;
cf.is_tempfile = FALSE; cfile.is_tempfile = FALSE;
if (open_cap_file(filename, is_tempfile, &cf) == 0) if (open_cap_file(filename, is_tempfile, &cfile) == 0)
read_cap_file(&cf); read_cap_file(&cfile);
else { else {
/* The open failed, so "cf.is_tempfile" wasn't set to "is_tempfile". /* The open failed, so "cfile.is_tempfile" wasn't set to "is_tempfile".
Instead, the file was left open, so we should restore "cf.is_tempfile" Instead, the file was left open, so we should restore "cfile.is_tempfile"
ourselves. ourselves.
XXX - change the menu? Presumably "open_cap_file()" will do that; XXX - change the menu? Presumably "open_cap_file()" will do that;
make sure it does! */ make sure it does! */
cf.is_tempfile = is_tempfile; cfile.is_tempfile = is_tempfile;
} }
/* "open_cap_file()" made a copy of the file name we handed it, so /* "open_cap_file()" made a copy of the file name we handed it, so
we should free up our copy. */ we should free up our copy. */

View File

@ -1,7 +1,7 @@
/* find_dlg.c /* find_dlg.c
* Routines for "find frame" window * Routines for "find frame" window
* *
* $Id: find_dlg.c,v 1.10 2000/05/08 04:53:20 guy Exp $ * $Id: find_dlg.c,v 1.11 2000/06/27 04:36:00 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org> * By Gerald Combs <gerald@zing.org>
@ -112,7 +112,7 @@ find_frame_cb(GtkWidget *w, gpointer d)
gtk_widget_show(filter_bt); gtk_widget_show(filter_bt);
filter_te = gtk_entry_new(); filter_te = gtk_entry_new();
if (cf.sfilter) gtk_entry_set_text(GTK_ENTRY(filter_te), cf.sfilter); if (cfile.sfilter) gtk_entry_set_text(GTK_ENTRY(filter_te), cfile.sfilter);
gtk_object_set_data(GTK_OBJECT(filter_bt), E_FILT_TE_PTR_KEY, filter_te); gtk_object_set_data(GTK_OBJECT(filter_bt), E_FILT_TE_PTR_KEY, filter_te);
gtk_box_pack_start(GTK_BOX(filter_hb), filter_te, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(filter_hb), filter_te, TRUE, TRUE, 0);
gtk_widget_show(filter_te); gtk_widget_show(filter_te);
@ -124,14 +124,14 @@ find_frame_cb(GtkWidget *w, gpointer d)
forward_rb = dlg_radio_button_new_with_label_with_mnemonic(NULL, "_Forward", forward_rb = dlg_radio_button_new_with_label_with_mnemonic(NULL, "_Forward",
accel_group); accel_group);
gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(forward_rb), !cf.sbackward); gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(forward_rb), !cfile.sbackward);
gtk_box_pack_start(GTK_BOX(direction_hb), forward_rb, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(direction_hb), forward_rb, TRUE, TRUE, 0);
gtk_widget_show(forward_rb); gtk_widget_show(forward_rb);
backward_rb = dlg_radio_button_new_with_label_with_mnemonic( backward_rb = dlg_radio_button_new_with_label_with_mnemonic(
gtk_radio_button_group(GTK_RADIO_BUTTON(forward_rb)), gtk_radio_button_group(GTK_RADIO_BUTTON(forward_rb)),
"_Backward", accel_group); "_Backward", accel_group);
gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(backward_rb), cf.sbackward); gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(backward_rb), cfile.sbackward);
gtk_box_pack_start(GTK_BOX(direction_hb), backward_rb, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(direction_hb), backward_rb, TRUE, TRUE, 0);
gtk_widget_show(backward_rb); gtk_widget_show(backward_rb);
@ -210,13 +210,13 @@ find_frame_ok_cb(GtkWidget *ok_bt, gpointer parent_w)
/* /*
* Remember the filter. * Remember the filter.
*/ */
if (cf.sfilter) if (cfile.sfilter)
g_free(cf.sfilter); g_free(cfile.sfilter);
cf.sfilter = g_strdup(filter_text); cfile.sfilter = g_strdup(filter_text);
cf.sbackward = GTK_TOGGLE_BUTTON (backward_rb)->active; cfile.sbackward = GTK_TOGGLE_BUTTON (backward_rb)->active;
if (!find_packet(&cf, sfcode)) { if (!find_packet(&cfile, sfcode)) {
/* We didn't find the packet. */ /* We didn't find the packet. */
simple_dialog(ESD_TYPE_WARN, NULL, "No packet matched that filter."); simple_dialog(ESD_TYPE_WARN, NULL, "No packet matched that filter.");
return; return;

View File

@ -1,7 +1,7 @@
/* goto_dlg.c /* goto_dlg.c
* Routines for "go to frame" window * Routines for "go to frame" window
* *
* $Id: goto_dlg.c,v 1.6 2000/05/02 08:04:31 guy Exp $ * $Id: goto_dlg.c,v 1.7 2000/06/27 04:36:01 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org> * By Gerald Combs <gerald@zing.org>
@ -150,7 +150,7 @@ goto_frame_ok_cb(GtkWidget *ok_bt, gpointer parent_w)
return; return;
} }
switch (goto_frame(&cf, fnumber)) { switch (goto_frame(&cfile, fnumber)) {
case NO_SUCH_FRAME: case NO_SUCH_FRAME:
simple_dialog(ESD_TYPE_WARN, NULL, "There is no frame with that frame number."); simple_dialog(ESD_TYPE_WARN, NULL, "There is no frame with that frame number.");

View File

@ -1,6 +1,6 @@
/* main.c /* main.c
* *
* $Id: main.c,v 1.122 2000/06/24 05:06:29 guy Exp $ * $Id: main.c,v 1.123 2000/06/27 04:36:01 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org> * By Gerald Combs <gerald@zing.org>
@ -119,7 +119,7 @@
FILE *data_out_file = NULL; FILE *data_out_file = NULL;
packet_info pi; packet_info pi;
capture_file cf; capture_file cfile;
GtkWidget *top_level, *packet_list, *tree_view, *byte_view, GtkWidget *top_level, *packet_list, *tree_view, *byte_view,
*prog_bar, *info_bar, *tv_scrollw, *pkt_scrollw; *prog_bar, *info_bar, *tv_scrollw, *pkt_scrollw;
static GtkWidget *bv_scrollw; static GtkWidget *bv_scrollw;
@ -207,7 +207,7 @@ follow_stream_cb( GtkWidget *w, gpointer data ) {
gtk_entry_set_text(GTK_ENTRY(filter_te), follow_filter); gtk_entry_set_text(GTK_ENTRY(filter_te), follow_filter);
/* Run the display filter so it goes in effect. */ /* Run the display filter so it goes in effect. */
filter_packets(&cf, follow_filter); filter_packets(&cfile, follow_filter);
/* the data_out_file should now be full of the streams information */ /* the data_out_file should now be full of the streams information */
fclose( data_out_file ); fclose( data_out_file );
@ -692,7 +692,7 @@ match_selected_cb(GtkWidget *w, gpointer data)
break; break;
#endif #endif
default: default:
c = cf.pd + finfo_selected->start; c = cfile.pd + finfo_selected->start;
buf = g_malloc0(32 + finfo_selected->length * 3); buf = g_malloc0(32 + finfo_selected->length * 3);
ptr = buf; ptr = buf;
@ -720,7 +720,7 @@ match_selected_cb(GtkWidget *w, gpointer data)
gtk_entry_set_text(GTK_ENTRY(filter_te), buf); gtk_entry_set_text(GTK_ENTRY(filter_te), buf);
/* Run the display filter so it goes in effect. */ /* Run the display filter so it goes in effect. */
filter_packets(&cf, buf); filter_packets(&cfile, buf);
/* Don't g_free(buf) here. filter_packets() will do it the next time it's called */ /* Don't g_free(buf) here. filter_packets() will do it the next time it's called */
} }
@ -796,7 +796,7 @@ filter_activate_cb(GtkWidget *w, gpointer data)
/* GtkCombos don't let us get at their list contents easily, so we maintain /* GtkCombos don't let us get at their list contents easily, so we maintain
our own filter list, and feed it to gtk_combo_set_popdown_strings when our own filter list, and feed it to gtk_combo_set_popdown_strings when
a new filter is added. */ a new filter is added. */
if (filter_packets(&cf, g_strdup(s))) { if (filter_packets(&cfile, g_strdup(s))) {
li = g_list_first(filter_list); li = g_list_first(filter_list);
while (li) { while (li) {
if (li->data && strcmp(s, li->data) == 0) if (li->data && strcmp(s, li->data) == 0)
@ -827,7 +827,7 @@ filter_reset_cb(GtkWidget *w, gpointer data)
gtk_entry_set_text(GTK_ENTRY(filter_te), ""); gtk_entry_set_text(GTK_ENTRY(filter_te), "");
} }
filter_packets(&cf, NULL); filter_packets(&cfile, NULL);
} }
/* GTKClist compare routine, overrides default to allow numeric comparison */ /* GTKClist compare routine, overrides default to allow numeric comparison */
@ -842,7 +842,7 @@ packet_list_compare(GtkCList *clist, gconstpointer ptr1, gconstpointer ptr2)
double num1 = atof(text1); double num1 = atof(text1);
double num2 = atof(text2); double num2 = atof(text2);
gint col_fmt = cf.cinfo.col_fmt[clist->sort_column]; gint col_fmt = cfile.cinfo.col_fmt[clist->sort_column];
if ((col_fmt == COL_NUMBER) || (col_fmt == COL_REL_TIME) || (col_fmt == COL_DELTA_TIME) || if ((col_fmt == COL_NUMBER) || (col_fmt == COL_REL_TIME) || (col_fmt == COL_DELTA_TIME) ||
((col_fmt == COL_CLS_TIME) && (timestamp_type == RELATIVE)) || ((col_fmt == COL_CLS_TIME) && (timestamp_type == RELATIVE)) ||
@ -898,12 +898,12 @@ static void
packet_list_select_cb(GtkWidget *w, gint row, gint col, gpointer evt) { packet_list_select_cb(GtkWidget *w, gint row, gint col, gpointer evt) {
blank_packetinfo(); blank_packetinfo();
select_packet(&cf, row); select_packet(&cfile, row);
} }
static void static void
packet_list_unselect_cb(GtkWidget *w, gint row, gint col, gpointer evt) { packet_list_unselect_cb(GtkWidget *w, gint row, gint col, gpointer evt) {
unselect_packet(&cf); unselect_packet(&cfile);
} }
static void static void
@ -917,34 +917,34 @@ tree_view_select_row_cb(GtkCTree *ctree, GList *node, gint column, gpointer user
finfo_selected = finfo; finfo_selected = finfo;
packet_hex_print(GTK_TEXT(byte_view), cf.pd, cf.current_frame->cap_len, packet_hex_print(GTK_TEXT(byte_view), cfile.pd, cfile.current_frame->cap_len,
finfo->start, finfo->length, cf.current_frame->flags.encoding); finfo->start, finfo->length, cfile.current_frame->flags.encoding);
} }
static void static void
tree_view_unselect_row_cb(GtkCTree *ctree, GList *node, gint column, gpointer user_data) tree_view_unselect_row_cb(GtkCTree *ctree, GList *node, gint column, gpointer user_data)
{ {
finfo_selected = NULL; finfo_selected = NULL;
packet_hex_print(GTK_TEXT(byte_view), cf.pd, cf.current_frame->cap_len, packet_hex_print(GTK_TEXT(byte_view), cfile.pd, cfile.current_frame->cap_len,
-1, -1, cf.current_frame->flags.encoding); -1, -1, cfile.current_frame->flags.encoding);
} }
void collapse_all_cb(GtkWidget *widget, gpointer data) { void collapse_all_cb(GtkWidget *widget, gpointer data) {
if (cf.protocol_tree) if (cfile.protocol_tree)
collapse_all_tree(cf.protocol_tree, tree_view); collapse_all_tree(cfile.protocol_tree, tree_view);
} }
void expand_all_cb(GtkWidget *widget, gpointer data) { void expand_all_cb(GtkWidget *widget, gpointer data) {
if (cf.protocol_tree) if (cfile.protocol_tree)
expand_all_tree(cf.protocol_tree, tree_view); expand_all_tree(cfile.protocol_tree, tree_view);
} }
void resolve_name_cb(GtkWidget *widget, gpointer data) { void resolve_name_cb(GtkWidget *widget, gpointer data) {
if (cf.protocol_tree) { if (cfile.protocol_tree) {
int tmp = g_resolving_actif; int tmp = g_resolving_actif;
g_resolving_actif = 1; g_resolving_actif = 1;
gtk_clist_clear ( GTK_CLIST(tree_view) ); gtk_clist_clear ( GTK_CLIST(tree_view) );
proto_tree_draw(cf.protocol_tree, tree_view); proto_tree_draw(cfile.protocol_tree, tree_view);
g_resolving_actif = tmp; g_resolving_actif = tmp;
} }
} }
@ -1001,7 +1001,7 @@ void
set_plist_sel_browse(gboolean val) set_plist_sel_browse(gboolean val)
{ {
if (finfo_selected) if (finfo_selected)
unselect_packet(&cf); unselect_packet(&cfile);
/* Yeah, GTK uses "browse" in the case where we do not, but oh well. I think /* Yeah, GTK uses "browse" in the case where we do not, but oh well. I think
* "browse" in Ethereal makes more sense than "SINGLE" in GTK+ */ * "browse" in Ethereal makes more sense than "SINGLE" in GTK+ */
@ -1116,8 +1116,9 @@ file_quit_cmd_cb (GtkWidget *widget, gpointer data)
which we'd call here, and another routine that which we'd call here, and another routine that
calls that routine and also cleans up the UI, which calls that routine and also cleans up the UI, which
we'd call elsewhere? */ we'd call elsewhere? */
close_cap_file(&cf, info_bar); close_cap_file(&cfile, info_bar);
fprintf( stderr, "file_quit_cmd_cb: About to call gtk_main_quit()\n");
/* Exit by leaving the main loop, so that any quit functions /* Exit by leaving the main loop, so that any quit functions
we registered get called. */ we registered get called. */
gtk_main_quit(); gtk_main_quit();
@ -1231,29 +1232,29 @@ main(int argc, char *argv[])
} }
/* Initialize the capture file struct */ /* Initialize the capture file struct */
cf.plist = NULL; cfile.plist = NULL;
cf.plist_end = NULL; cfile.plist_end = NULL;
cf.wth = NULL; cfile.wth = NULL;
cf.filename = NULL; cfile.filename = NULL;
cf.user_saved = FALSE; cfile.user_saved = FALSE;
cf.is_tempfile = FALSE; cfile.is_tempfile = FALSE;
cf.rfcode = NULL; cfile.rfcode = NULL;
cf.dfilter = NULL; cfile.dfilter = NULL;
cf.dfcode = NULL; cfile.dfcode = NULL;
#ifdef HAVE_LIBPCAP #ifdef HAVE_LIBPCAP
cf.cfilter = g_strdup(EMPTY_FILTER); cfile.cfilter = g_strdup(EMPTY_FILTER);
#endif #endif
cf.iface = NULL; cfile.iface = NULL;
cf.save_file = NULL; cfile.save_file = NULL;
cf.save_file_fd = -1; cfile.save_file_fd = -1;
cf.snap = WTAP_MAX_PACKET_SIZE; cfile.snap = WTAP_MAX_PACKET_SIZE;
cf.count = 0; cfile.count = 0;
cf.cinfo.num_cols = prefs->num_cols; cfile.cinfo.num_cols = prefs->num_cols;
cf.cinfo.col_fmt = (gint *) g_malloc(sizeof(gint) * cf.cinfo.num_cols); cfile.cinfo.col_fmt = (gint *) g_malloc(sizeof(gint) * cfile.cinfo.num_cols);
cf.cinfo.fmt_matx = (gboolean **) g_malloc(sizeof(gboolean *) * cf.cinfo.num_cols); cfile.cinfo.fmt_matx = (gboolean **) g_malloc(sizeof(gboolean *) * cfile.cinfo.num_cols);
cf.cinfo.col_width = (gint *) g_malloc(sizeof(gint) * cf.cinfo.num_cols); cfile.cinfo.col_width = (gint *) g_malloc(sizeof(gint) * cfile.cinfo.num_cols);
cf.cinfo.col_title = (gchar **) g_malloc(sizeof(gchar *) * cf.cinfo.num_cols); cfile.cinfo.col_title = (gchar **) g_malloc(sizeof(gchar *) * cfile.cinfo.num_cols);
cf.cinfo.col_data = (gchar **) g_malloc(sizeof(gchar *) * cf.cinfo.num_cols); cfile.cinfo.col_data = (gchar **) g_malloc(sizeof(gchar *) * cfile.cinfo.num_cols);
/* Assemble the compile-time options */ /* Assemble the compile-time options */
snprintf(comp_info_str, 256, snprintf(comp_info_str, 256,
@ -1309,7 +1310,7 @@ main(int argc, char *argv[])
break; break;
case 'c': /* Capture xxx packets */ case 'c': /* Capture xxx packets */
#ifdef HAVE_LIBPCAP #ifdef HAVE_LIBPCAP
cf.count = atoi(optarg); cfile.count = atoi(optarg);
#else #else
capture_option_specified = TRUE; capture_option_specified = TRUE;
arg_error = TRUE; arg_error = TRUE;
@ -1320,9 +1321,9 @@ main(int argc, char *argv[])
break; break;
case 'f': case 'f':
#ifdef HAVE_LIBPCAP #ifdef HAVE_LIBPCAP
if (cf.cfilter) if (cfile.cfilter)
g_free(cf.cfilter); g_free(cfile.cfilter);
cf.cfilter = g_strdup(optarg); cfile.cfilter = g_strdup(optarg);
#else #else
capture_option_specified = TRUE; capture_option_specified = TRUE;
arg_error = TRUE; arg_error = TRUE;
@ -1334,7 +1335,7 @@ main(int argc, char *argv[])
break; break;
case 'i': /* Use interface xxx */ case 'i': /* Use interface xxx */
#ifdef HAVE_LIBPCAP #ifdef HAVE_LIBPCAP
cf.iface = g_strdup(optarg); cfile.iface = g_strdup(optarg);
#else #else
capture_option_specified = TRUE; capture_option_specified = TRUE;
arg_error = TRUE; arg_error = TRUE;
@ -1377,7 +1378,7 @@ main(int argc, char *argv[])
break; break;
case 's': /* Set the snapshot (capture) length */ case 's': /* Set the snapshot (capture) length */
#ifdef HAVE_LIBPCAP #ifdef HAVE_LIBPCAP
cf.snap = atoi(optarg); cfile.snap = atoi(optarg);
#else #else
capture_option_specified = TRUE; capture_option_specified = TRUE;
arg_error = TRUE; arg_error = TRUE;
@ -1423,7 +1424,7 @@ main(int argc, char *argv[])
break; break;
case 'W': /* Write to capture file FD xxx */ case 'W': /* Write to capture file FD xxx */
#ifdef HAVE_LIBPCAP #ifdef HAVE_LIBPCAP
cf.save_file_fd = atoi(optarg); cfile.save_file_fd = atoi(optarg);
#else #else
capture_option_specified = TRUE; capture_option_specified = TRUE;
arg_error = TRUE; arg_error = TRUE;
@ -1463,7 +1464,7 @@ main(int argc, char *argv[])
if (start_capture) { if (start_capture) {
/* We're supposed to do a live capture; did the user specify an interface /* We're supposed to do a live capture; did the user specify an interface
to use? */ to use? */
if (cf.iface == NULL) { if (cfile.iface == NULL) {
/* No - pick the first one from the list of interfaces. */ /* No - pick the first one from the list of interfaces. */
if_list = get_interface_list(&err, err_str); if_list = get_interface_list(&err, err_str);
if (if_list == NULL) { if (if_list == NULL) {
@ -1480,12 +1481,12 @@ main(int argc, char *argv[])
} }
exit(2); exit(2);
} }
cf.iface = g_strdup(if_list->data); /* first interface */ cfile.iface = g_strdup(if_list->data); /* first interface */
free_interface_list(if_list); free_interface_list(if_list);
} }
} }
if (capture_child) { if (capture_child) {
if (cf.save_file_fd == -1) { if (cfile.save_file_fd == -1) {
/* XXX - send this to the standard output as something our parent /* XXX - send this to the standard output as something our parent
should put in an error message box? */ should put in an error message box? */
fprintf(stderr, "%s: \"-W\" flag not specified\n", CHILD_NAME); fprintf(stderr, "%s: \"-W\" flag not specified\n", CHILD_NAME);
@ -1495,22 +1496,22 @@ main(int argc, char *argv[])
#endif #endif
/* Build the column format array */ /* Build the column format array */
for (i = 0; i < cf.cinfo.num_cols; i++) { for (i = 0; i < cfile.cinfo.num_cols; i++) {
cf.cinfo.col_fmt[i] = get_column_format(i); cfile.cinfo.col_fmt[i] = get_column_format(i);
cf.cinfo.col_title[i] = g_strdup(get_column_title(i)); cfile.cinfo.col_title[i] = g_strdup(get_column_title(i));
cf.cinfo.fmt_matx[i] = (gboolean *) g_malloc0(sizeof(gboolean) * cfile.cinfo.fmt_matx[i] = (gboolean *) g_malloc0(sizeof(gboolean) *
NUM_COL_FMTS); NUM_COL_FMTS);
get_column_format_matches(cf.cinfo.fmt_matx[i], cf.cinfo.col_fmt[i]); get_column_format_matches(cfile.cinfo.fmt_matx[i], cfile.cinfo.col_fmt[i]);
if (cf.cinfo.col_fmt[i] == COL_INFO) if (cfile.cinfo.col_fmt[i] == COL_INFO)
cf.cinfo.col_data[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_INFO_LEN); cfile.cinfo.col_data[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_INFO_LEN);
else else
cf.cinfo.col_data[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_LEN); cfile.cinfo.col_data[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_LEN);
} }
if (cf.snap < 1) if (cfile.snap < 1)
cf.snap = WTAP_MAX_PACKET_SIZE; cfile.snap = WTAP_MAX_PACKET_SIZE;
else if (cf.snap < MIN_PACKET_SIZE) else if (cfile.snap < MIN_PACKET_SIZE)
cf.snap = MIN_PACKET_SIZE; cfile.snap = MIN_PACKET_SIZE;
rc_file = (gchar *) g_malloc(strlen(get_home_dir()) + strlen(RC_FILE) + 4); rc_file = (gchar *) g_malloc(strlen(get_home_dir()) + strlen(RC_FILE) + 4);
sprintf(rc_file, "%s/%s", get_home_dir(), RC_FILE); sprintf(rc_file, "%s/%s", get_home_dir(), RC_FILE);
@ -1546,7 +1547,7 @@ main(int argc, char *argv[])
gtk_widget_show(top_level); gtk_widget_show(top_level);
set_menus_for_capture_file(FALSE); set_menus_for_capture_file(FALSE);
cf.colors = colfilter_new(); cfile.colors = colfilter_new();
/* If we were given the name of a capture file, read it in now; /* If we were given the name of a capture file, read it in now;
we defer it until now, so that, if we can't open it, and pop we defer it until now, so that, if we can't open it, and pop
@ -1562,12 +1563,12 @@ main(int argc, char *argv[])
} }
} }
if (!rfilter_parse_failed) { if (!rfilter_parse_failed) {
if ((err = open_cap_file(cf_name, FALSE, &cf)) == 0) { if ((err = open_cap_file(cf_name, FALSE, &cfile)) == 0) {
/* "open_cap_file()" succeeded, so it closed the previous /* "open_cap_file()" succeeded, so it closed the previous
capture file, and thus destroyed any previous read filter capture file, and thus destroyed any previous read filter
attached to "cf". */ attached to "cf". */
cf.rfcode = rfcode; cfile.rfcode = rfcode;
err = read_cap_file(&cf); err = read_cap_file(&cfile);
/* Save the name of the containing directory specified in the /* Save the name of the containing directory specified in the
path name, if any; we can write over cf_name, which is a path name, if any; we can write over cf_name, which is a
good thing, given that "get_dirname()" does write over its good thing, given that "get_dirname()" does write over its
@ -1577,7 +1578,7 @@ main(int argc, char *argv[])
last_open_dir = s; last_open_dir = s;
} else { } else {
dfilter_destroy(rfcode); dfilter_destroy(rfcode);
cf.rfcode = NULL; cfile.rfcode = NULL;
} }
} }
} }
@ -1706,7 +1707,7 @@ create_main_window (gint pl_size, gint tv_size, gint bv_size, e_prefs *prefs)
gtk_widget_show(pkt_scrollw); gtk_widget_show(pkt_scrollw);
gtk_paned_add1(GTK_PANED(u_pane), pkt_scrollw); gtk_paned_add1(GTK_PANED(u_pane), pkt_scrollw);
packet_list = gtk_clist_new_with_titles(cf.cinfo.num_cols, cf.cinfo.col_title); packet_list = gtk_clist_new_with_titles(cfile.cinfo.num_cols, cfile.cinfo.col_title);
gtk_container_add(GTK_CONTAINER(pkt_scrollw), packet_list); gtk_container_add(GTK_CONTAINER(pkt_scrollw), packet_list);
set_plist_sel_browse(prefs->gui_plist_sel_browse); set_plist_sel_browse(prefs->gui_plist_sel_browse);
@ -1721,18 +1722,18 @@ create_main_window (gint pl_size, gint tv_size, gint bv_size, e_prefs *prefs)
GTK_SIGNAL_FUNC(packet_list_select_cb), NULL); GTK_SIGNAL_FUNC(packet_list_select_cb), NULL);
gtk_signal_connect(GTK_OBJECT(packet_list), "unselect_row", gtk_signal_connect(GTK_OBJECT(packet_list), "unselect_row",
GTK_SIGNAL_FUNC(packet_list_unselect_cb), NULL); GTK_SIGNAL_FUNC(packet_list_unselect_cb), NULL);
for (i = 0; i < cf.cinfo.num_cols; i++) { for (i = 0; i < cfile.cinfo.num_cols; i++) {
if (get_column_resize_type(cf.cinfo.col_fmt[i]) != RESIZE_MANUAL) if (get_column_resize_type(cfile.cinfo.col_fmt[i]) != RESIZE_MANUAL)
gtk_clist_set_column_auto_resize(GTK_CLIST(packet_list), i, TRUE); gtk_clist_set_column_auto_resize(GTK_CLIST(packet_list), i, TRUE);
/* Right-justify the packet number column. */ /* Right-justify the packet number column. */
if (cf.cinfo.col_fmt[i] == COL_NUMBER) if (cfile.cinfo.col_fmt[i] == COL_NUMBER)
gtk_clist_set_column_justification(GTK_CLIST(packet_list), i, gtk_clist_set_column_justification(GTK_CLIST(packet_list), i,
GTK_JUSTIFY_RIGHT); GTK_JUSTIFY_RIGHT);
/* Save static column sizes to use during a "-S" capture, so that /* Save static column sizes to use during a "-S" capture, so that
the columns don't resize during a live capture. */ the columns don't resize during a live capture. */
cf.cinfo.col_width[i] = gdk_string_width(pl_style->font, cfile.cinfo.col_width[i] = gdk_string_width(pl_style->font,
get_column_longest_string(get_column_format(i))); get_column_longest_string(get_column_format(i)));
} }
gtk_widget_set_usize(packet_list, -1, pl_size); gtk_widget_set_usize(packet_list, -1, pl_size);

View File

@ -3,7 +3,7 @@
* *
* Copyright 2000, Jeffrey C. Foster <jfoste@woodward.com> * Copyright 2000, Jeffrey C. Foster <jfoste@woodward.com>
* *
* $Id: packet_win.c,v 1.8 2000/05/19 23:06:32 gram Exp $ * $Id: packet_win.c,v 1.9 2000/06/27 04:36:03 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org> * By Gerald Combs <gerald@zing.org>
@ -109,9 +109,9 @@ void new_window_cb(GtkWidget *w){
/* data from the packet_list GtkCList */ /* data from the packet_list GtkCList */
/* Find what row this packet is in. */ /* Find what row this packet is in. */
row = gtk_clist_find_row_from_data(GTK_CLIST(packet_list), row = gtk_clist_find_row_from_data(GTK_CLIST(packet_list),
cf.current_frame); cfile.current_frame);
g_assert(row != -1); g_assert(row != -1);
for( i = 0; i < cf.cinfo.num_cols; ++i){ for( i = 0; i < cfile.cinfo.num_cols; ++i){
if ( gtk_clist_get_text(GTK_CLIST( packet_list), if ( gtk_clist_get_text(GTK_CLIST( packet_list),
row, i, &TextPtr)){ row, i, &TextPtr)){
@ -166,14 +166,14 @@ create_new_window ( char *Title, gint tv_size, gint bv_size){
/* Allocate data structure to represent this window. */ /* Allocate data structure to represent this window. */
DataPtr = (struct PacketWinData *) g_malloc(sizeof(struct PacketWinData)); DataPtr = (struct PacketWinData *) g_malloc(sizeof(struct PacketWinData));
DataPtr->cap_len = cf.current_frame->cap_len; DataPtr->cap_len = cfile.current_frame->cap_len;
DataPtr->encoding = cf.current_frame->flags.encoding; DataPtr->encoding = cfile.current_frame->flags.encoding;
memcpy(&DataPtr->pseudo_header, &cf.pseudo_header, sizeof DataPtr->pseudo_header); memcpy(&DataPtr->pseudo_header, &cfile.pseudo_header, sizeof DataPtr->pseudo_header);
DataPtr->pd = g_malloc(DataPtr->cap_len); DataPtr->pd = g_malloc(DataPtr->cap_len);
memcpy(DataPtr->pd, cf.pd, DataPtr->cap_len); memcpy(DataPtr->pd, cfile.pd, DataPtr->cap_len);
DataPtr->protocol_tree = proto_tree_create_root(); DataPtr->protocol_tree = proto_tree_create_root();
proto_tree_is_visible = TRUE; proto_tree_is_visible = TRUE;
dissect_packet(&DataPtr->pseudo_header, DataPtr->pd, cf.current_frame, dissect_packet(&DataPtr->pseudo_header, DataPtr->pd, cfile.current_frame,
DataPtr->protocol_tree); DataPtr->protocol_tree);
proto_tree_is_visible = FALSE; proto_tree_is_visible = FALSE;
DataPtr->main = main_w; DataPtr->main = main_w;

View File

@ -1,7 +1,7 @@
/* print_dlg.c /* print_dlg.c
* Dialog boxes for printing * Dialog boxes for printing
* *
* $Id: print_dlg.c,v 1.17 2000/05/08 07:13:40 guy Exp $ * $Id: print_dlg.c,v 1.18 2000/06/27 04:36:03 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org> * By Gerald Combs <gerald@zing.org>
@ -508,7 +508,7 @@ print_ok_cb(GtkWidget *ok_bt, gpointer parent_w)
gtk_widget_destroy(GTK_WIDGET(parent_w)); gtk_widget_destroy(GTK_WIDGET(parent_w));
/* Now print the packets */ /* Now print the packets */
if (!print_packets(&cf, &print_args)) { if (!print_packets(&cfile, &print_args)) {
if (print_args.to_file) if (print_args.to_file)
simple_dialog(ESD_TYPE_WARN, NULL, simple_dialog(ESD_TYPE_WARN, NULL,
file_write_error_message(errno), print_args.dest); file_write_error_message(errno), print_args.dest);
@ -590,8 +590,8 @@ file_print_packet_cmd_cb(GtkWidget *widget, gpointer data) {
print_args.print_summary = FALSE; print_args.print_summary = FALSE;
print_args.print_hex = FALSE; print_args.print_hex = FALSE;
print_args.expand_all = TRUE; print_args.expand_all = TRUE;
proto_tree_print(TRUE, &print_args, (GNode*) cf.protocol_tree, cf.pd, proto_tree_print(TRUE, &print_args, (GNode*) cfile.protocol_tree, cfile.pd,
cf.current_frame, fh); cfile.current_frame, fh);
print_finale(fh, prefs.pr_format); print_finale(fh, prefs.pr_format);
close_print_dest(print_args.to_file, fh); close_print_dest(print_args.to_file, fh);
} }

View File

@ -1,7 +1,7 @@
/* packet.c /* packet.c
* Routines for packet disassembly * Routines for packet disassembly
* *
* $Id: packet.c,v 1.94 2000/05/31 05:07:57 guy Exp $ * $Id: packet.c,v 1.95 2000/06/27 04:35:45 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org> * By Gerald Combs <gerald@zing.org>
@ -96,7 +96,7 @@
#include "plugins.h" #include "plugins.h"
extern capture_file cf; extern capture_file cfile;
static int proto_frame = -1; static int proto_frame = -1;
static int hf_frame_arrival_time = -1; static int hf_frame_arrival_time = -1;

View File

@ -1,7 +1,7 @@
/* summary.c /* summary.c
* Routines for capture file summary info * Routines for capture file summary info
* *
* $Id: summary.c,v 1.17 2000/04/13 20:39:18 gram Exp $ * $Id: summary.c,v 1.18 2000/06/27 04:35:46 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org> * By Gerald Combs <gerald@zing.org>
@ -71,31 +71,31 @@ summary_fill_in(summary_tally *st)
st->filtered_count = 0; st->filtered_count = 0;
/* initialize the tally */ /* initialize the tally */
if (cf.plist != NULL) { if (cfile.plist != NULL) {
first_frame = cf.plist; first_frame = cfile.plist;
st->start_time = secs_usecs(first_frame->abs_secs,first_frame->abs_usecs); st->start_time = secs_usecs(first_frame->abs_secs,first_frame->abs_usecs);
st->stop_time = secs_usecs(first_frame->abs_secs,first_frame->abs_usecs); st->stop_time = secs_usecs(first_frame->abs_secs,first_frame->abs_usecs);
cur_glist = cf.plist; cur_glist = cfile.plist;
for (i = 0; i < cf.count; i++) { for (i = 0; i < cfile.count; i++) {
cur_frame = cur_glist; cur_frame = cur_glist;
tally_frame_data(cur_frame, st); tally_frame_data(cur_frame, st);
cur_glist = cur_glist->next; cur_glist = cur_glist->next;
} }
} }
st->filename = cf.filename; st->filename = cfile.filename;
st->file_length = cf.f_len; st->file_length = cfile.f_len;
st->encap_type = cf.cd_t; st->encap_type = cfile.cd_t;
st->snap = cf.snap; st->snap = cfile.snap;
st->elapsed_time = secs_usecs(cf.esec, cf.eusec); st->elapsed_time = secs_usecs(cfile.esec, cfile.eusec);
st->packet_count = cf.count; st->packet_count = cfile.count;
st->drops = cf.drops; st->drops = cfile.drops;
st->iface = cf.iface; st->iface = cfile.iface;
st->dfilter = cf.dfilter; st->dfilter = cfile.dfilter;
#ifdef HAVE_LIBPCAP #ifdef HAVE_LIBPCAP
st->cfilter = cf.cfilter; st->cfilter = cfile.cfilter;
#else #else
st->cfilter = NULL; st->cfilter = NULL;
#endif #endif

View File

@ -1,6 +1,6 @@
/* tethereal.c /* tethereal.c
* *
* $Id: tethereal.c,v 1.30 2000/06/15 07:49:25 guy Exp $ * $Id: tethereal.c,v 1.31 2000/06/27 04:35:46 guy Exp $
* *
* Ethereal - Network traffic analyzer * Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org> * By Gerald Combs <gerald@zing.org>
@ -117,7 +117,7 @@ static void wtap_dispatch_cb_print(u_char *, const struct wtap_pkthdr *, int,
static gchar *col_info(frame_data *, gint); static gchar *col_info(frame_data *, gint);
packet_info pi; packet_info pi;
capture_file cf; capture_file cfile;
FILE *data_out_file = NULL; FILE *data_out_file = NULL;
guint main_ctx, file_ctx; guint main_ctx, file_ctx;
ts_type timestamp_type = RELATIVE; ts_type timestamp_type = RELATIVE;
@ -194,29 +194,29 @@ main(int argc, char *argv[])
} }
/* Initialize the capture file struct */ /* Initialize the capture file struct */
cf.plist = NULL; cfile.plist = NULL;
cf.plist_end = NULL; cfile.plist_end = NULL;
cf.wth = NULL; cfile.wth = NULL;
cf.filename = NULL; cfile.filename = NULL;
cf.user_saved = FALSE; cfile.user_saved = FALSE;
cf.is_tempfile = FALSE; cfile.is_tempfile = FALSE;
cf.rfcode = NULL; cfile.rfcode = NULL;
cf.dfilter = NULL; cfile.dfilter = NULL;
cf.dfcode = NULL; cfile.dfcode = NULL;
#ifdef HAVE_LIBPCAP #ifdef HAVE_LIBPCAP
cf.cfilter = g_strdup(""); cfile.cfilter = g_strdup("");
#endif #endif
cf.iface = NULL; cfile.iface = NULL;
cf.save_file = NULL; cfile.save_file = NULL;
cf.save_file_fd = -1; cfile.save_file_fd = -1;
cf.snap = WTAP_MAX_PACKET_SIZE; cfile.snap = WTAP_MAX_PACKET_SIZE;
cf.count = 0; cfile.count = 0;
cf.cinfo.num_cols = prefs->num_cols; cfile.cinfo.num_cols = prefs->num_cols;
cf.cinfo.col_fmt = (gint *) g_malloc(sizeof(gint) * cf.cinfo.num_cols); cfile.cinfo.col_fmt = (gint *) g_malloc(sizeof(gint) * cfile.cinfo.num_cols);
cf.cinfo.fmt_matx = (gboolean **) g_malloc(sizeof(gboolean *) * cf.cinfo.num_cols); cfile.cinfo.fmt_matx = (gboolean **) g_malloc(sizeof(gboolean *) * cfile.cinfo.num_cols);
cf.cinfo.col_width = (gint *) g_malloc(sizeof(gint) * cf.cinfo.num_cols); cfile.cinfo.col_width = (gint *) g_malloc(sizeof(gint) * cfile.cinfo.num_cols);
cf.cinfo.col_title = (gchar **) g_malloc(sizeof(gchar *) * cf.cinfo.num_cols); cfile.cinfo.col_title = (gchar **) g_malloc(sizeof(gchar *) * cfile.cinfo.num_cols);
cf.cinfo.col_data = (gchar **) g_malloc(sizeof(gchar *) * cf.cinfo.num_cols); cfile.cinfo.col_data = (gchar **) g_malloc(sizeof(gchar *) * cfile.cinfo.num_cols);
/* Assemble the compile-time options */ /* Assemble the compile-time options */
snprintf(comp_info_str, 256, snprintf(comp_info_str, 256,
@ -278,7 +278,7 @@ main(int argc, char *argv[])
case 'f': case 'f':
#ifdef HAVE_LIBPCAP #ifdef HAVE_LIBPCAP
capture_filter_specified = TRUE; capture_filter_specified = TRUE;
cf.cfilter = g_strdup(optarg); cfile.cfilter = g_strdup(optarg);
#else #else
capture_option_specified = TRUE; capture_option_specified = TRUE;
arg_error = TRUE; arg_error = TRUE;
@ -298,7 +298,7 @@ main(int argc, char *argv[])
break; break;
case 'i': /* Use interface xxx */ case 'i': /* Use interface xxx */
#ifdef HAVE_LIBPCAP #ifdef HAVE_LIBPCAP
cf.iface = g_strdup(optarg); cfile.iface = g_strdup(optarg);
#else #else
capture_option_specified = TRUE; capture_option_specified = TRUE;
arg_error = TRUE; arg_error = TRUE;
@ -315,7 +315,7 @@ main(int argc, char *argv[])
break; break;
case 's': /* Set the snapshot (capture) length */ case 's': /* Set the snapshot (capture) length */
#ifdef HAVE_LIBPCAP #ifdef HAVE_LIBPCAP
cf.snap = atoi(optarg); cfile.snap = atoi(optarg);
#else #else
capture_option_specified = TRUE; capture_option_specified = TRUE;
arg_error = TRUE; arg_error = TRUE;
@ -341,7 +341,7 @@ main(int argc, char *argv[])
exit(0); exit(0);
break; break;
case 'w': /* Write to capture file xxx */ case 'w': /* Write to capture file xxx */
cf.save_file = g_strdup(optarg); cfile.save_file = g_strdup(optarg);
break; break;
case 'V': /* Verbose */ case 'V': /* Verbose */
verbose = TRUE; verbose = TRUE;
@ -371,7 +371,7 @@ main(int argc, char *argv[])
"tethereal: Capture filters were specified both with \"-f\" and with additional command-line arguments\n"); "tethereal: Capture filters were specified both with \"-f\" and with additional command-line arguments\n");
exit(2); exit(2);
} }
cf.cfilter = get_args_as_string(argc, argv, optind); cfile.cfilter = get_args_as_string(argc, argv, optind);
#else #else
capture_option_specified = TRUE; capture_option_specified = TRUE;
#endif #endif
@ -386,22 +386,22 @@ main(int argc, char *argv[])
print_usage(); print_usage();
/* Build the column format array */ /* Build the column format array */
for (i = 0; i < cf.cinfo.num_cols; i++) { for (i = 0; i < cfile.cinfo.num_cols; i++) {
cf.cinfo.col_fmt[i] = get_column_format(i); cfile.cinfo.col_fmt[i] = get_column_format(i);
cf.cinfo.col_title[i] = g_strdup(get_column_title(i)); cfile.cinfo.col_title[i] = g_strdup(get_column_title(i));
cf.cinfo.fmt_matx[i] = (gboolean *) g_malloc0(sizeof(gboolean) * cfile.cinfo.fmt_matx[i] = (gboolean *) g_malloc0(sizeof(gboolean) *
NUM_COL_FMTS); NUM_COL_FMTS);
get_column_format_matches(cf.cinfo.fmt_matx[i], cf.cinfo.col_fmt[i]); get_column_format_matches(cfile.cinfo.fmt_matx[i], cfile.cinfo.col_fmt[i]);
if (cf.cinfo.col_fmt[i] == COL_INFO) if (cfile.cinfo.col_fmt[i] == COL_INFO)
cf.cinfo.col_data[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_INFO_LEN); cfile.cinfo.col_data[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_INFO_LEN);
else else
cf.cinfo.col_data[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_LEN); cfile.cinfo.col_data[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_LEN);
} }
if (cf.snap < 1) if (cfile.snap < 1)
cf.snap = WTAP_MAX_PACKET_SIZE; cfile.snap = WTAP_MAX_PACKET_SIZE;
else if (cf.snap < MIN_PACKET_SIZE) else if (cfile.snap < MIN_PACKET_SIZE)
cf.snap = MIN_PACKET_SIZE; cfile.snap = MIN_PACKET_SIZE;
dissect_init(); /* Init anything that needs initializing */ dissect_init(); /* Init anything that needs initializing */
@ -412,14 +412,14 @@ main(int argc, char *argv[])
exit(2); exit(2);
} }
} }
cf.rfcode = rfcode; cfile.rfcode = rfcode;
if (cf_name) { if (cf_name) {
err = open_cap_file(cf_name, FALSE, &cf); err = open_cap_file(cf_name, FALSE, &cfile);
if (err != 0) { if (err != 0) {
dissect_cleanup(); dissect_cleanup();
exit(2); exit(2);
} }
err = load_cap_file(&cf, out_file_type); err = load_cap_file(&cfile, out_file_type);
if (err != 0) { if (err != 0) {
dissect_cleanup(); dissect_cleanup();
exit(2); exit(2);
@ -430,7 +430,7 @@ main(int argc, char *argv[])
do we have support for live captures? */ do we have support for live captures? */
#ifdef HAVE_LIBPCAP #ifdef HAVE_LIBPCAP
/* Yes; did the user specify an interface to use? */ /* Yes; did the user specify an interface to use? */
if (cf.iface == NULL) { if (cfile.iface == NULL) {
/* No - pick the first one from the list of interfaces. */ /* No - pick the first one from the list of interfaces. */
if_list = get_interface_list(&err, err_str); if_list = get_interface_list(&err, err_str);
if (if_list == NULL) { if (if_list == NULL) {
@ -447,7 +447,7 @@ main(int argc, char *argv[])
} }
exit(2); exit(2);
} }
cf.iface = g_strdup(if_list->data); /* first interface */ cfile.iface = g_strdup(if_list->data); /* first interface */
free_interface_list(if_list); free_interface_list(if_list);
} }
capture(packet_count, out_file_type); capture(packet_count, out_file_type);
@ -485,7 +485,7 @@ capture(int packet_count, int out_file_type)
ld.pdh = NULL; ld.pdh = NULL;
/* Open the network interface to capture from it. */ /* Open the network interface to capture from it. */
ld.pch = pcap_open_live(cf.iface, cf.snap, 1, 1000, err_str); ld.pch = pcap_open_live(cfile.iface, cfile.snap, 1, 1000, err_str);
if (ld.pch == NULL) { if (ld.pch == NULL) {
/* Well, we couldn't start the capture. /* Well, we couldn't start the capture.
@ -500,19 +500,19 @@ capture(int packet_count, int out_file_type)
goto error; goto error;
} }
if (cf.cfilter) { if (cfile.cfilter) {
/* A capture filter was specified; set it up. */ /* A capture filter was specified; set it up. */
if (pcap_lookupnet (cf.iface, &netnum, &netmask, err_str) < 0) { if (pcap_lookupnet (cfile.iface, &netnum, &netmask, err_str) < 0) {
snprintf(errmsg, sizeof errmsg, snprintf(errmsg, sizeof errmsg,
"Can't use filter: Couldn't obtain netmask info (%s).", err_str); "Can't use filter: Couldn't obtain netmask info (%s).", err_str);
goto error; goto error;
} }
if (pcap_compile(ld.pch, &cf.fcode, cf.cfilter, 1, netmask) < 0) { if (pcap_compile(ld.pch, &cfile.fcode, cfile.cfilter, 1, netmask) < 0) {
snprintf(errmsg, sizeof errmsg, "Unable to parse filter string (%s).", snprintf(errmsg, sizeof errmsg, "Unable to parse filter string (%s).",
pcap_geterr(ld.pch)); pcap_geterr(ld.pch));
goto error; goto error;
} }
if (pcap_setfilter(ld.pch, &cf.fcode) < 0) { if (pcap_setfilter(ld.pch, &cfile.fcode) < 0) {
snprintf(errmsg, sizeof errmsg, "Can't install filter (%s).", snprintf(errmsg, sizeof errmsg, "Can't install filter (%s).",
pcap_geterr(ld.pch)); pcap_geterr(ld.pch));
goto error; goto error;
@ -520,14 +520,14 @@ capture(int packet_count, int out_file_type)
} }
ld.linktype = wtap_pcap_encap_to_wtap_encap(pcap_datalink(ld.pch)); ld.linktype = wtap_pcap_encap_to_wtap_encap(pcap_datalink(ld.pch));
if (cf.save_file != NULL) { if (cfile.save_file != NULL) {
/* Set up to write to the capture file. */ /* Set up to write to the capture file. */
if (ld.linktype == WTAP_ENCAP_UNKNOWN) { if (ld.linktype == WTAP_ENCAP_UNKNOWN) {
strcpy(errmsg, "The network you're capturing from is of a type" strcpy(errmsg, "The network you're capturing from is of a type"
" that Tethereal doesn't support."); " that Tethereal doesn't support.");
goto error; goto error;
} }
ld.pdh = wtap_dump_open(cf.save_file, out_file_type, ld.pdh = wtap_dump_open(cfile.save_file, out_file_type,
ld.linktype, pcap_snapshot(ld.pch), &err); ld.linktype, pcap_snapshot(ld.pch), &err);
if (ld.pdh == NULL) { if (ld.pdh == NULL) {
@ -557,11 +557,11 @@ capture(int packet_count, int out_file_type)
if (err < 0) { if (err < 0) {
sprintf(errmsg, "The file to which the capture would be" sprintf(errmsg, "The file to which the capture would be"
" written (\"%s\") could not be opened: Error %d.", " written (\"%s\") could not be opened: Error %d.",
cf.save_file, err); cfile.save_file, err);
} else { } else {
sprintf(errmsg, "The file to which the capture would be" sprintf(errmsg, "The file to which the capture would be"
" written (\"%s\") could not be opened: %s.", " written (\"%s\") could not be opened: %s.",
cf.save_file, strerror(err)); cfile.save_file, strerror(err));
} }
break; break;
} }
@ -581,7 +581,7 @@ capture(int packet_count, int out_file_type)
#endif #endif
/* Let the user know what interface was chosen. */ /* Let the user know what interface was chosen. */
printf("Capturing on %s\n", cf.iface); printf("Capturing on %s\n", cfile.iface);
inpkts = pcap_loop(ld.pch, packet_count, capture_pcap_cb, (u_char *) &ld); inpkts = pcap_loop(ld.pch, packet_count, capture_pcap_cb, (u_char *) &ld);
pcap_close(ld.pch); pcap_close(ld.pch);
@ -589,8 +589,8 @@ capture(int packet_count, int out_file_type)
return TRUE; return TRUE;
error: error:
g_free(cf.save_file); g_free(cfile.save_file);
cf.save_file = NULL; cfile.save_file = NULL;
fprintf(stderr, "tethereal: %s\n", errmsg); fprintf(stderr, "tethereal: %s\n", errmsg);
if (ld.pch != NULL) if (ld.pch != NULL)
pcap_close(ld.pch); pcap_close(ld.pch);
@ -612,12 +612,12 @@ capture_pcap_cb(u_char *user, const struct pcap_pkthdr *phdr,
whdr.len = phdr->len; whdr.len = phdr->len;
whdr.pkt_encap = ld->linktype; whdr.pkt_encap = ld->linktype;
args.cf = &cf; args.cf = &cfile;
args.pdh = ld->pdh; args.pdh = ld->pdh;
if (ld->pdh) { if (ld->pdh) {
wtap_dispatch_cb_write((u_char *)&args, &whdr, 0, NULL, pd); wtap_dispatch_cb_write((u_char *)&args, &whdr, 0, NULL, pd);
cf.count++; cfile.count++;
printf("\r%u ", cf.count); printf("\r%u ", cfile.count);
fflush(stdout); fflush(stdout);
} else { } else {
wtap_dispatch_cb_print((u_char *)&args, &whdr, 0, NULL, pd); wtap_dispatch_cb_print((u_char *)&args, &whdr, 0, NULL, pd);