Ethereal-cvs: [ethereal-cvs] cvs commit: ethereal capture.c globals.h capture.h

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

From: Guy Harris <guy@xxxxxxxxxxxx>
Date: Thu, 30 Sep 1999 01:49:59 -0500 (CDT)
guy         1999/09/30 01:49:57 CDT

  Modified files:
    .                    capture.c globals.h capture.h 
  Log:
  Add a new global flag "capture_child", which is TRUE if we're a child
  process for a sync mode or fork mode capture.
  
  Have that flag control whether we do things that *only* the parent or
  *only* the child should do, rather than basing it solely on the setting
  of "sync_mode" or "fork_mode" (or, in the case of stuff done in the
  child process either in sync mode or fork mode, rather than basing it on
  the setting of those flags at all).
  
  Split "do_capture()" into a "run_capture()" routine that starts a
  capture (possibly by forking off and execing a child process, if we're
  supposed to do sync mode or fork mode captures), and that assumes the
  file to which the capture is to write has already been opened and that
  "cf.save_file_fd" is the file descriptor for that file, and a
  "do_capture()" routine that creates a temporary file, getting an FD for
  it, and calls "run_capture()".
  
  Use "run_capture()", rather than "capture()", for "-k" captures, so that
  it'll do the capture in a child process if "-S" or "-F" was specified
  ("do_capture()" won't do because "-k" captures should write to the file
  specified by the "-w" flag, not some random temporary file).
  
  For child process captures, however, just use "capture()" - the child
  process shouldn't itself fork off a child if we're in sync or fork mode,
  and should just write to the file whose file descriptor was specified by
  the "-W" flag on the command line.
  
  All this allows you to do "ethereal -S -w <file> -i <interface> -k" to
  start a sync mode capture from the command line.
  
  Revision  Changes    Path
  1.74      +38 -20    ethereal/capture.c
  1.9       +2 -2      ethereal/globals.h
  1.17      +9 -1      ethereal/capture.h