aboutsummaryrefslogtreecommitdiffstats
path: root/file.h
Commit message (Collapse)AuthorAgeFilesLines
* show the number of packets captured, if "Update list of packets ..." isn't usedUlf Lamping2006-01-221-1/+10
| | | | svn path=/trunk/; revision=17071
* add two new callbacks:Ulf Lamping2005-09-201-0/+2
| | | | | | | | | | cf_cb_file_closing (called before closing a capture file) cf_cb_file_closed will be called afterwards, but both only if a file is really closed as cf_close is called more often ... If we are closing large capture files (~20MB), the screen looks ugly while the file is closed. Change this so the screen will immediately go back to initial state and a dialog (without buttons) is shown that the file is currently closed. As the operation which takes most of the time to close the file is a single eth_clist_clear call, we can't use a progress bar here. cf_cb_live_capture_stopping: called when the user wants to stop the capture (toolbar or menu clicked). At least on Win32, the time between this and the actual stop completed can be noticeable (1-2 seconds), so the user doesn't know if the button press did anything at all. Do something similar as above, show a dialog box without buttons to inform that the close is in progress. svn path=/trunk/; revision=15891
* added compression support for capture file output. The Save/As dialog now ↵Ulf Lamping2005-09-141-1/+2
| | | | | | | | | | | | | | | | has a checkbox "Compress with gzip" currently limited to Ethereal and all the variants of libpcap filetypes only. We might want to add output compression support to the other tools as well (tethereal, mergecap, ...). We might also want to add support for the other filetypes, but this is only possible if the filetype functions doesn't use special output operations like fseek. One bug is still left: if the input and output filetypes while saving are the same, Ethereal currently optimizes this by simply copy the binary file instead of using wiretap (so it will be faster but it will ignore the compress setting). Don't know a good workaround for this, as I don't know a way to find out if the input file is currently compressed or not. One idea might be to use a heuristic on the filesize (compared to the packet size summmary). Another workaround I see is to remove this optimization, which is of course not the way I like to do it ... svn path=/trunk/; revision=15804
* Have cf_retap_packets() take an argument that indicates whether toGuy Harris2005-09-141-1/+2
| | | | | | | generate columns; use cf_retap_packets instead of cf_redissect_packets() when running taps (the general flow graph stat uses the Info column). svn path=/trunk/; revision=15793
* the capture child might not respond shortly after bringing it up (especially ↵Ulf Lamping2005-05-251-0/+1
| | | | | | | | it will block, if no input coming from an input capture pipe (e.g. mkfifo) is coming in) to prevent problems, bring the main GUI into "capture mode" right after successfully spawn/exec the capture child, without waiting for any response from it svn path=/trunk/; revision=14436
* statusbar changes:Ulf Lamping2005-04-181-1/+2
| | | | | | | -show the current capture file size, if capturing in real time mode. -move the packet "Drops" count (if available) from file to packets statusbar part svn path=/trunk/; revision=14130
* various capture code cleanup and fixes: Ulf Lamping2005-04-111-1/+0
| | | | | | | | | | | | display filename in statusbar while capturing print_usage banner fixed cf_cb_live_capture_prepare no longer needed rename sync_pipe_do_capture -> sync_pipe_start bugfix: sync_pipe_input_wait_for_start replaced by former implementation fix cleanup of old file in capture_input_new_file fix a tempfile detection bug (named file showed up as tempfile after capture) svn path=/trunk/; revision=14053
* fix statusbar messages by splitting into update and fixed messages between ↵Ulf Lamping2005-04-101-2/+4
| | | | | | capture and main svn path=/trunk/; revision=14044
* a lot more capture engine code cleanupUlf Lamping2005-03-281-0/+5
| | | | | | | | | most notably: - moved opening of safe_file to the capture child (capture_loop.c) - removed save_file_fd from capture_opts (no longer need to have it global) svn path=/trunk/; revision=13953
* from Stefano Pettini: add CSV export function, similar to PSML exportUlf Lamping2005-03-111-0/+9
| | | | svn path=/trunk/; revision=13724
* Another step towards using the parent/child mode for ALL captures.Ulf Lamping2005-02-281-0/+16
| | | | | | This is currently still disabled, as we cannot pass all required capture flags to the child process (lack of command line parameters). svn path=/trunk/; revision=13558
* Have "cf_merge_files()" take a pointer-to-pointer-to-char as the outputGuy Harris2005-02-171-4/+4
| | | | | | | | | file name argument; if the pointed-to pointer is null, it opens a temporary file, and sets that pointer to a mallocated copy of the pathname of the temporary file. It no longer needs a file descriptor as an argument. svn path=/trunk/; revision=13419
* fix a capture bug if the capture filter wasn't valid to get back to "empty" ↵Ulf Lamping2005-02-081-0/+1
| | | | | | | | state. instead of already invoking cf_cb_live_capture_started in capture.c, I've introduced the new event cf_cb_live_capture_prepare which only has to set the main windows title and nothing more. svn path=/trunk/; revision=13355
* Make Ethereal and Tethereal compile if we're building without libpcap.Guy Harris2005-02-071-0/+2
| | | | svn path=/trunk/; revision=13346
* Move the code to set the title on a window when a capture is in progressGuy Harris2005-02-071-0/+3
| | | | | | | | | | to the "start live capture" callback, and call that from "do_capture()". When opening a capture file, don't pop up the "What do you want to do?" pane when closing any existing file you have open, as we're just going to put the regular view up right after that. svn path=/trunk/; revision=13332
* Declare "cf_callback_t" before using it in a further declaration.Guy Harris2005-02-071-1/+1
| | | | | | | | | Mark the "func" argument to "cf_callback_remove()" as unused. Get rid of the "iface" argument to "cf_start_tail()", as it's no longer used. svn path=/trunk/; revision=13331
* Instead of calling each single thing when doing/finish a file operation, ↵Ulf Lamping2005-02-071-0/+23
| | | | | | | | | | | | file.c shouldn't call all the GUI related functions itself, instead throwing some kind of Events to it's caller(s). I've implemented a very simple callback mechanism which provides exactly this. I've tried GHook from GLib before, but this doesn't seem to be the right thing, as it's too inflexible for the purpose here. So I've implemented a callback function in main.c which receives all "events" and spreads them to menu, statusbar and itself. I would see this implementation as a prototype which may need improvements. Please comment the changes. svn path=/trunk/; revision=13330
* another two steps towards privilege seperation:Ulf Lamping2005-02-061-17/+1
| | | | | | | | | move another two capture related fields (iface and cfilter) from cfile to capture_opts also move the handling of capture related command line options from main.c to capture.c, that way a future privilege seperated capture program can use the same code to parse it's command line than Ethereal. It might be even possible to share this parser code even with Tethereal, didn't took a closer look at this. svn path=/trunk/; revision=13320
* fix a commentUlf Lamping2005-02-051-1/+1
| | | | svn path=/trunk/; revision=13306
* minor enhancements to Guy's last updateUlf Lamping2005-02-051-4/+6
| | | | svn path=/trunk/; revision=13304
* Put "cf_status_t" back.Guy Harris2005-02-051-13/+18
| | | | svn path=/trunk/; revision=13303
* make some string parameters const, as they are not changed insideUlf Lamping2005-02-051-4/+4
| | | | svn path=/trunk/; revision=13298
* Instead of having a single enumerated type for status return values fromGuy Harris2005-02-041-28/+33
| | | | | | | | | cf_ functions, have separate ones for different classes of routines, and use gboolean when the return value is just "success" or "failure" - that way you don't get compiler warnings if a case statement isn't handling a particular status value if the routine in question won't return it. svn path=/trunk/; revision=13293
* huge cleanup of capture file API (functions in file.c/file.h).Ulf Lamping2005-02-041-61/+337
| | | | | | | | This includes: all functions in file.h now have a cf_ prefix, will have doxygen tags, will have the capture_file *cf as the first parameter and I tried to generalize the return values for non trivial functions. Hopefully, I didn't introduced any new bugs, as I had to change a lot of files... svn path=/trunk/; revision=13289
* remove #include "globals.h" and access to global cfile, use access functions ↵Ulf Lamping2005-02-041-0/+1
| | | | | | and capture_opts instead svn path=/trunk/; revision=13284
* remove #include "globals.h" and access to global cfile, use access functions ↵Ulf Lamping2005-02-041-0/+2
| | | | | | and capture_opts instead svn path=/trunk/; revision=13283
* (some) redesign of capture data structures.Ulf Lamping2005-02-041-0/+4
| | | | | | | don't use global cfile at all but only an untpyed handle to call the cf_... functions in file.c move the save_file member from capture_file to capture_opts, as it's only used while capturing and while preparing it svn path=/trunk/; revision=13276
* "gtk_entry_get_text()" returns a "const char *" - assign the result toGuy Harris2004-12-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | one. "get_basename()" doesn't modify its argument, and its callers don't modify the substring pointed to by the result, so make it take a "const char *" as an argument and return a "const char *". "find_last_pathname_separator()" doesn't modify its argument, so make it a "const char *" - but some of its callers pass a non-"const" "char *" and modify the result, so don't make its return value a "const char *". And, as none of its callers are outside "filesystem.c", make it static. In "about_folders_page_new()", have separate variables for pathnames returned as "const char *" (which are cached by the routine that returns them, so you can't modify them - and can't free them, so get rid of the commented-out "g_free()" calls for them) and pathnames returned as "char *" (which are allocated anew for each call, and can be modified, but have to be freed). Clean up white space. svn path=/trunk/; revision=12881
* Get rid of merge_n_files() - it's only called in one place now, andGuy Harris2004-10-271-2/+2
| | | | | | absorbing its logic into "cf_merge_files()" simplifies things a bit. svn path=/trunk/; revision=12421
* Change some of the merge.c APIs to return more information on failure,Guy Harris2004-10-271-0/+4
| | | | | | | | | | | | | and use that information to provide better error messages. Have "merge_open_outfile()" do all the work of filling in the merge_out_file_t structure, with the values to use passed as arguments. Get rid of some structure members that used to be used solely to pass information to "merge_open_outfile()". Add a "cf_merge_files()" routine to do the merging and reporting of errors. svn path=/trunk/; revision=12420
* Trivial warning fixJörg Mayer2004-10-011-1/+1
| | | | svn path=/trunk/; revision=12170
* The packet range stuff knows about capture_file structures, so it'sGuy Harris2004-09-041-1/+1
| | | | | | | | | really more of an Ethereal/Tethereal component than a libethereal component (nothing else in libethereal knows about capture files); move it back out of libethereal. (The range stuff doesn't; we leave it in libethereal.) svn path=/trunk/; revision=11898
* Rename "range.c" and "range.h" to "packet-range.c" and "packet-range.h";Guy Harris2004-09-041-1/+1
| | | | | | | | | | | they should ultimately be split into files with routines that handle ranges, which are just subsets of [0,2^32), and packet ranges, which are subsets of the packet list, possibly specified by a range. Move them into epan, so they can be used by, for example, utilities that handle ranges, such editcap. svn path=/trunk/; revision=11890
* Move the guts of gtk/file_dlg.c:goto_framenum_cb() toGerald Combs2004-09-021-0/+1
| | | | | | file.c:goto_framenum(), where all of the other goto_ routines live. svn path=/trunk/; revision=11887
* Move the file-reloading code from gtk/file_dlg.c to file.c.Gerald Combs2004-08-251-0/+1
| | | | svn path=/trunk/; revision=11823
* Set the svn:eol-style property on all text files to "native", so thatGuy Harris2004-07-181-1/+1
| | | | | | | | | they have LF at the end of the line on UN*X and CR/LF on Windows; hopefully this means that if a CR/LF version is checked in on Windows, the CRs will be stripped so that they show up only when checked out on Windows, not on UN*X. svn path=/trunk/; revision=11400
* Make the "human-readable text vs. PSML vs. PDML" choice separate fromGuy Harris2004-07-081-1/+4
| | | | | | | | | | the "text vs. PostScript" choice. The "text vs. PostScript" choice should probably ultimately be done with a generic set of print methods, to handle various platform-native print mechanisms more cleanly (and perhaps the dialog box code for "export as {PDML,PSML}" should be separate from the "export as text"/"print" dialog). svn path=/trunk/; revision=11342
* Don't refer to "auto_scroll_live" if HAVE_LIBPCAP isn't defined - andGuy Harris2004-03-081-3/+1
| | | | | | | | put the definition of it back under HAVE_LIBPCAP and don't add an extra declaration in "file.h", as there's no longer code that needs to refer to it if HAVE_LIBPCAP isn't defined. svn path=/trunk/; revision=10350
* This makes ethereal compile again when configured --without-pcapJörg Mayer2004-03-081-1/+3
| | | | | | | | | I don't know whether this is the optimal patch, but it does the job. file.h: extern declaration of auto_scroll_live file.c: always declare auto_scroll_live svn path=/trunk/; revision=10347
* Add a "force" argument to "filter_packets()" andGuy Harris2004-02-231-2/+2
| | | | | | | | | "main_filter_packets()", to force the filtering to be done even if the filter is the same as the current one; this is necessary in order to make sure "Follow TCP Stream" gets the packets processed even if you're filtering the stream that's currently filtered in. svn path=/trunk/; revision=10209
* Have the Wiretap open, read, and seek-and-read routines return, inGuy Harris2004-01-251-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | addition to an error code, an error info string, for WTAP_ERR_UNSUPPORTED, WTAP_ERR_UNSUPPORTED_ENCAP, and WTAP_ERR_BAD_RECORD errors. Replace the error messages logged with "g_message()" for those errors with g_strdup()ed or g_strdup_printf()ed strings returned as the error info string, and change the callers of those routines to, for those errors, put the info string into the printed message or alert box for the error. Add messages for cases where those errors were returned without printing an additional message. Nobody uses the error code from "cf_read()" - "cf_read()" puts up the alert box itself for failures; get rid of the error code, so it just returns a success/failure indication. Rename "file_read_error_message()" to "cf_read_error_message()", as it handles read errors from Wiretap, and have it take an error info string as an argument. (That handles a lot of the work of putting the info string into the error message.) Make some variables in "ascend-grammar.y" static. Check the return value of "erf_read_header()" in "erf_seek_read()". Get rid of an unused #define in "i4btrace.c". svn path=/trunk/; revision=9852
* There's no need to keep a "FILE *" for the file being printed to in aGuy Harris2004-01-251-2/+7
| | | | | | | | | | | | | | | | | | | "capture_file" structure. Keep it locally, instead. Check for errors when printing packets. Report failure to open a print destination and failure to write to a print destination differently. Don't have the "print preamble" and "print final" routines return success/failure indications - revert to the old scheme where they didn't, and have the callers use "ferror()" to check for errors. Report write errors when printing dissections in Tethereal. Report print errors as errors, not warnings. svn path=/trunk/; revision=9828
* As with "cf_open_error_message()"/"file_open_error_message()", so withGuy Harris2004-01-241-2/+1
| | | | | | | | | | | | | | | "cf_write_error_message()"/"file_write_error_message()". Use "file_open_error_message()" instead of "cf_open_error_message()" in some places we missed in the previous checkin. Catch ENOSPC and EDQUOT in "file_open_error_message()". Use "file_open_error_message()" rather than "file_write_error_message()" to report errors when creating the file to which we're saving the "Follow TCP Stream" data. svn path=/trunk/; revision=9823
* Add a new "file_open_error_message()" routine in "epan/filesystem.c", toGuy Harris2004-01-241-2/+1
| | | | | | | | | | | | | | | | translate UNIX errno values to a somewhat friendly message format string. Rename "file_open_error_message()" in "file.c" to "cf_open_error_message()", make "cf_open_error_message()" use the new "file_open_error_message()" for UNIX errno values, have "do_capture()" in "capture.c" use "file_open_error_message()" to report errors from "open()", and make "cf_open_error_message()" static as nothing outside "file.c" uses it. Do similar stuff in "tethereal.c". svn path=/trunk/; revision=9821
* a.) saving GTK1 and GTK2 fontnames in different preference setting, to ↵Ulf Lamping2004-01-201-1/+4
| | | | | | | | | | | | | prevent problems when switching between GTK1 and GTK2 ethereal versions b.) added new feature "Edit->Go To First Packet" "Edit->Go To Last Packet" with corresponding menu and toolbar items c.) added new feature "View->Zoom In" / "View->Zoom Out" / View->Normal Size" with corresponding menu and toolbar items This feature will act as a "size offset" to the current fontsize, so that the packet list/tree view/... will have a larger/smaller font size. The value is stored inside the recent file. d.) Win32 only: Try to get the win32 system font and fontsize at program startup and show the menus/dialogs and such with the same font and fontsize like other win32 windows. This makes the program make a *lot* more feel like a normal win32 program. svn path=/trunk/; revision=9753
* Add a routine "retap_packet()" that runs through all packets, dissectingGuy Harris2004-01-131-1/+2
| | | | | | | | | | | | | | | | | them and running all taps on them, but not reconstructing the packet list. Use that in the IO-stat tap rather than "redissect_packet()"; the latter does more work and redraws the display, neither of which are necessary. Call the filter callback when the Calc field is changed, to redraw the graphs; that change also fixes things so that it's called when the Filter field is changed. Rename the "filter_button" member of an io_stat_graph_t to "filter_field", as it's not the "Filter:" button, it's the text field containing the filter expression. svn path=/trunk/; revision=9659
* From Dick Gooris (and me :-)Ulf Lamping2003-12-291-2/+3
| | | | | | | more ways to choose which packets can be saved, in the save(as) dialog box svn path=/trunk/; revision=9476
* Make "finfo_selected" a member of a "capture_file" structure rather thanGuy Harris2003-09-241-2/+2
| | | | | | an independent global variable. svn path=/trunk/; revision=8524
* Rename various capture file routines to have names starting with "cf_".Guy Harris2003-09-151-10/+10
| | | | svn path=/trunk/; revision=8479
* Add a routine to return the display name for a "capture_file" structure,Guy Harris2003-09-151-1/+2
| | | | | | | rather than constructing that name when a capture file is opened and putting a pointer to it in that structure. svn path=/trunk/; revision=8476