aboutsummaryrefslogtreecommitdiffstats
path: root/capture_sync.c
AgeCommit message (Collapse)AuthorFilesLines
2006-02-12At least on UN*X, the first argument - argv[0] - is supposed to be theGuy Harris1-4/+7
name of the program as used to run it (command name/path name). Pass that - otherwise, we pass "-i" as argv[0], and dumpcap ignores it and treats the capture device as the first argument and doesn't handle it correctly (i.e., it doesn't capture on that device). svn path=/trunk/; revision=17277
2006-02-12Distinguish between pipe_read_block() returning 0 (EOF) or a negativeGuy Harris1-2/+10
value (error reading). svn path=/trunk/; revision=17276
2006-02-12Instead of using (commented-out) g_warning() calls to log errors readingGuy Harris1-9/+26
and writing the sync pipe, using g_log() calls at the G_LOG_LEVEL_DEBUG or G_LOG_LEVEL_WARNING levels, so we can get at them if necessary. Add some messages for errors for which we had no logging. svn path=/trunk/; revision=17275
2006-02-12add a minor commentUlf Lamping1-0/+1
svn path=/trunk/; revision=17270
2006-02-12Add a routine to attempt to get the absolute pathname of the executableGuy Harris1-4/+2
file, strip off the last component to get the pathname of the directory containing the executable file, and save it for future use. On Windows, you can get that from the OS, but, on UN*X, you have to look at argv[0] and derive the absolute path from that (argv[0] is not guaranteed to be an absolute path, or even a path at all). (In addition, if you're running from the build directory, you might have to strip off a ".libs/" added to argv[0] as an artifact of the libtoolizing script.) Use that in the About dialog, and use it to construct the path of dumpcap. Don't put quotes into the path of dumpcap; you don't have to quote strings with spaces in them when handing them to execvp and, in fact, you *mustn't* quote them, as the quotes will be treated as part of the pathname. svn path=/trunk/; revision=17267
2006-02-12Fix up indentation.Guy Harris1-6/+2
svn path=/trunk/; revision=17262
2006-02-12we still need sync_pipe_errmsg_to_parent() for the *NIX buildUlf Lamping1-0/+12
svn path=/trunk/; revision=17260
2006-02-11the point of no return ...Ulf Lamping1-164/+117
using dumpcap as the capture child for Ethereal. dumpcap is a plain console application now, even for Win32 (so no WinMain, create_console and special piping stuff reguired). The undocumented command line option -Z will switch dumpcap into "child mode", using binary instead of plain text output messages to communicate with a parent Ethereal. Ethereal's main.c no longer needs to distinguish between child mode or not, so some simplifying here. capture_sync.c has to call dumpcap in a "hidden window" mode using CreateProcess instead of spawnvp, otherwise an uggly console window would appear. The handles created by _pipe doesn't seem to be inheritable for this function, using CreatePipe instead. The file capture_loop.c is only needed by dumpcap, removed from Ethereal link objects. Some debugging aid added and other minor cleanup done. svn path=/trunk/; revision=17256
2006-02-10only a backup, nothing changed for now.Ulf Lamping1-2/+50
second try to bring dumpcap to life. Currently it's working, but the child (dumpcap) will show an annoying Win32 console window while running. svn path=/trunk/; revision=17239
2005-12-15remove the setting of no longer required command line options:Ulf Lamping1-14/+18
-H (Hide capture info dialog) -m (font to use) svn path=/trunk/; revision=16807
2005-12-13we don't use the command line option -W any longer, remove it from a commentUlf Lamping1-1/+0
svn path=/trunk/; revision=16786
2005-12-04move the complete functionality of the capture info dialog from ↵Ulf Lamping1-18/+1
capture_loop.c to capture_info.c and call it from capture.c (instead of capture_loop.c). This way, the capture child don't need to now any of the packet_counter things (no epan/packet.h and all alike). Currently the capture_info code will always open another wiretap file instance to build it's own counter values. This isn't optimized for now (next step: use data from cf_continue_tail() somehow). svn path=/trunk/; revision=16669
2005-12-03add missing functions (to complete/cleanup of interface):Ulf Lamping1-7/+3
capture_input_drops capture_input_error_message and move the functionality from capture_sync.c to capture.c (just where it belongs) svn path=/trunk/; revision=16663
2005-12-03precise some pipe message commentsUlf Lamping1-2/+6
svn path=/trunk/; revision=16660
2005-11-18Make the message length in the sync pipe message header 3 bytes ofGuy Harris1-18/+29
binary data, so the maximum message length can be up to 2^24-1. Add a #define for that message size, and have it be 4096, for now, as that was the size of the buffer used to read sync pipe messages. Clean up white space. When displaying an error message from the capture child, don't use it as a format string - it could conceivably contain "%"s. Instead, format it with "%s". svn path=/trunk/; revision=16541
2005-11-06replace *a lot* of file related calls by their GLib counterparts. This is ↵Ulf Lamping1-19/+11
necessary for the switch to GTK 2.6 (at least on WIN32). to do this, I've added file_util.h to wiretap (would file_compat.h be a better name?), and provide compat_macros like eth_open() instead of open(). While at it, move other file related things there, like #include <io.h>, definition of O_BINARY and alike, so it's all in one place. deleted related things from config.h.win32 As of these massive changes, I'm almost certain that this will break the Unix build. I'll keep an eye on the buildbot so hopefully everything is working again soon. svn path=/trunk/; revision=16403
2005-10-07fix Ethereal so command line capture parameter will work with kilobytes (again)Ulf Lamping1-2/+0
remove Byte(s) from the dropdown list of filesizes, this doesn't make sense replace 1000 with 1024, as all (modern?) file managers are based on 1024 bytes for a kilobyte (the old KB vs. KiB controversy) svn path=/trunk/; revision=16149
2005-08-20capture_sync.c(290) : warning C4090: 'function' : different 'const' qualifiersUlf Lamping1-4/+4
capture_sync.c(290) : warning C4022: 'g_realloc' : pointer mismatch for actual parameter 1 capture_sync.c(431) : warning C4090: 'function' : different 'const' qualifiers capture_sync.c(431) : warning C4022: 'g_free' : pointer mismatch for actual parameter 1 capture_sync.c(442) : warning C4090: 'function' : different 'const' qualifiers capture_sync.c(442) : warning C4022: 'g_free' : pointer mismatch for actual parameter 1 capture_sync.c(549) : warning C4090: 'function' : different 'const' qualifiers capture_sync.c(549) : warning C4022: 'g_free' : pointer mismatch for actual parameter 1 svn path=/trunk/; revision=15487
2005-08-14Some 'no previous declararion' warning fixesJörg Mayer1-1/+1
svn path=/trunk/; revision=15355
2005-08-08various code cleanup:Ulf Lamping1-33/+19
-use g_snprintf instead of sprintf and snprintf -use g_strdup_printf where appropriate -remove #include "snprintf.h" (as only g_snprintf should be used) -replace some more alloc/realloc/calloc/free with their glib pendants svn path=/trunk/; revision=15264
2005-08-06Last set of char -> const char trivial warning fixes.Jörg Mayer1-6/+6
svn path=/trunk/; revision=15244
2005-05-30fix #148: (win32 only) use command line parameter -B to set capture buffer sizeUlf Lamping1-0/+5
svn path=/trunk/; revision=14484
2005-05-26some cleanup of capture error notification handlingUlf Lamping1-6/+10
svn path=/trunk/; revision=14441
2005-05-26use the log features of the GLib to have verbose output of the capturing ↵Ulf Lamping1-4/+26
engine, e.g. GLib provides different domains for different submodules. Output more verbose than warning level will be disabled by default (just like before). use the console_log_handler in main.c for win32 AND unix now Currently use the log for the capturing engine (only), as I desperately needed a log output for debugging. svn path=/trunk/; revision=14438
2005-05-25forgot to init savefilestring = NULL;Ulf Lamping1-0/+1
svn path=/trunk/; revision=14435
2005-05-25fix #199: encapsulate capture filename, to avoid problems with spaces in the ↵Ulf Lamping1-5/+16
filename (win32 only) svn path=/trunk/; revision=14432
2005-04-30(hopefully) removed various gcc warningsUlf Lamping1-2/+1
svn path=/trunk/; revision=14241
2005-04-12capture engine: Ulf Lamping1-46/+34
add a new feature to clear the currently captured packets and restart the capture with the previous parameters various code cleanup and minor bugfixes Win32: use millisecond resolution in capture_loop, to smooth screen update a bit (500ms instead of 1000ms) svn path=/trunk/; revision=14059
2005-04-12it should now be possible to use "Update packets in real time" even if used ↵Ulf Lamping1-198/+151
with one of the "Multiple files" option. If this is used together with an option where input files changes too fast (e.g. new file every second), capturing will be (hopefully) stopped. I've replaced the former capture pipe message format into a somewhat more general format to remove a lot of confusion. svn path=/trunk/; revision=14054
2005-04-11various capture code cleanup and fixes: Ulf Lamping1-61/+54
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
2005-04-10Win32 only bugfix: as using TerminateProcess is the brute force way and ↵Ulf Lamping1-21/+55
sometimes clipped packets in the middle, now using a pipe called signal_pipe from the parent to the child for this. On unix we're using kill() for this, which simply signals the child, but this isn't available on win32. svn path=/trunk/; revision=14040
2005-04-10refactoring of the capture startup (while the capture parent waits for the ↵Ulf Lamping1-81/+104
child to start) svn path=/trunk/; revision=14038
2005-04-10Clean up white space, and tweak a comment slightly ("message" in theGuy Harris1-6/+6
error message case referred to the error message text, not the message on the pipe). svn path=/trunk/; revision=14035
2005-03-28some minor changesUlf Lamping1-1/+1
svn path=/trunk/; revision=13962
2005-03-28bugfixes: bring non real-time captures back to former behaviour, other minor ↵Ulf Lamping1-1/+1
fixes svn path=/trunk/; revision=13961
2005-03-28remove capture_child flag from capture_opts as it's no longer requiredUlf Lamping1-3/+0
svn path=/trunk/; revision=13954
2005-03-28a lot more capture engine code cleanupUlf Lamping1-150/+31
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
2005-03-28major capture engine rework: use two task model for EVERY capture modeUlf Lamping1-17/+48
rework of the -b command line parameter (for Ethereal and Tethereal) svn path=/trunk/; revision=13949
2005-02-28Another step towards using the parent/child mode for ALL captures.Ulf Lamping1-71/+94
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
2005-02-24if capture filename passed to parent, save it. Will currently take no effect.Ulf Lamping1-3/+11
svn path=/trunk/; revision=13487
2005-02-23pass child capture filename to parent process (name currently unused) and ↵Ulf Lamping1-8/+58
some fork_child cleanup svn path=/trunk/; revision=13482
2005-02-13change nmake makefiles in /trunk and /trunk/epan so thatLars Roland1-4/+0
object code for libethereal.dll isn't generated by the makefile in /trunk. Having no code in /trunk linked into libethereal.dll anymore, the definition of the macro _NEED_VAR_IMPORT_ can be moved from various source files in /trunk to /trunk/Makefile.nmake . So do that, too. svn path=/trunk/; revision=13389
2005-02-07when building the argv string, use save_file_fd_str instead of save_file_fd ↵Ulf Lamping1-3/+3
to avoid confusion with the capture_opts field svn path=/trunk/; revision=13343
2005-02-07In the child process, capture_opts->fork_child is 0, not -1, so, in thatGuy Harris1-14/+21
case, don't attempt to send a signal to the child. Expand a comment. svn path=/trunk/; revision=13333
2005-02-07Declare "cf_callback_t" before using it in a further declaration.Guy Harris1-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
2005-02-06Get rid of a few cf_get_ references missed by the previous checkin.Guy Harris1-2/+2
svn path=/trunk/; revision=13325
2005-02-06another two steps towards privilege seperation:Ulf Lamping1-4/+4
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
2005-02-05rename kill_capture_child to capture_kill_child to have a common prefixUlf Lamping1-1/+1
split drag and drop support out of main.c into new file drag_and_drop.c, to reduce the size of main.c a bit. Hopefully this won't break unix builds because of missing #include's, I will keep an eye on the buildbot svn path=/trunk/; revision=13308
2005-02-05minor enhancements to Guy's last updateUlf Lamping1-3/+3
svn path=/trunk/; revision=13304
2005-02-05Put "cf_status_t" back.Guy Harris1-6/+6
svn path=/trunk/; revision=13303