"ssn_range" needs to be a copy of "global_ssn_range", so that it's not
[obnox/wireshark/wip.git] / FAQ
diff --git a/FAQ b/FAQ
index 408995890bbeb93dff3f842e9ebd3fc7b71ae9ef..851dbaf4ae436721da94f8cd0bf52a1858daefe9 100644 (file)
--- a/FAQ
+++ b/FAQ
@@ -13,16 +13,22 @@ General Questions:
 
    1.1 Where can I get help?
 
-   1.2 What protocols are currently supported?
+   1.2 How much does Ethereal cost?
 
-   1.3 Are there any plans to support {your favorite protocol}?
+   1.3 Can I use Ethereal commercially?
 
-   1.4 Can Ethereal read capture files from {your favorite network
+   1.4 Can I use Ethereal as part of my commercial product?
+
+   1.5 What protocols are currently supported?
+
+   1.6 Are there any plans to support {your favorite protocol}?
+
+   1.7 Can Ethereal read capture files from {your favorite network
    analyzer}?
 
-   1.5 What devices can Ethereal use to capture packets?
+   1.8 What devices can Ethereal use to capture packets?
 
-   1.6 How do you pronounce Ethereal? Where did the name come from?
+   1.9 How do you pronounce Ethereal? Where did the name come from?
 
 Downloading Ethereal:
 
@@ -47,7 +53,7 @@ Building Ethereal:
      dftest_DEPENDENCIES was already defined in condition TRUE, which
      implies condition HAVE_PLUGINS_TRUE
 
-   when I try to build Ethereal from CVS or a CVS snapshot?
+   when I try to build Ethereal from SVN or a SVN snapshot?
 
    4.3 The link fails with a number of "Output line too long." messages
    followed by linker errors. 
@@ -57,9 +63,6 @@ Building Ethereal:
    4.5 The build fails on Windows because of conflicts between winsock.h
    and winsock2.h. 
 
-   4.6 I'm trying to build Ethereal 0.10.0a on Windows; why is the the
-   build failing with an error saying it can't find "Makefile.nmake"?
-
 Using Ethereal:
 
    5.1 When I use Ethereal to capture packets, I see only packets to and
@@ -117,59 +120,66 @@ Using Ethereal:
    5.16 When I run Ethereal on Solaris 8, it dies with a Bus Error when I
    start it.
 
-   5.17 When I run Tethereal with the "-x" option, it crashes with an
-   error "** ERROR **: file print.c: line 691 (print_line): should not be
-   reached".
+   5.17 When I run Ethereal, I get an error 
 
-   5.18 When I run Ethereal on Windows NT, it dies with a Dr. Watson
+     Gtk-CRITICAL **: file gtkwindow.c: line 3107 (gtk_window_resize):
+     assertion `height > 0' failed.
+
+   5.18 When I run Tethereal with the "-x" option, it crashes with an
+   error 
+
+     "** ERROR **: file print.c: line 691 (print_line): should not be
+     reached.
+
+   5.19 When I run Ethereal on Windows NT, it dies with a Dr. Watson
    error, reporting an "Integer division by zero" exception, when I start
    it.
 
-   5.19 When I try to run Ethereal, it complains about
+   5.20 When I try to run Ethereal, it complains about
    sprint_realloc_objid being undefined.
 
-   5.20 I'm running Ethereal on Linux; why do my time stamps have only
+   5.21 I'm running Ethereal on Linux; why do my time stamps have only
    100ms resolution, rather than 1us resolution?
 
-   5.21 I'm capturing packets on {Windows 95, Windows 98, Windows Me};
+   5.22 I'm capturing packets on {Windows 95, Windows 98, Windows Me};
    why are the time stamps on packets wrong? 
 
-   5.22 When I try to run Ethereal on Windows, it fails to run because it
+   5.23 When I try to run Ethereal on Windows, it fails to run because it
    can't find packet.dll.
 
-   5.23 I'm running Ethereal on Windows NT/2000/XP/Server; my machine has
+   5.24 I'm running Ethereal on Windows NT/2000/XP/Server; my machine has
    a PPP (dial-up POTS, ISDN, etc.) interface, and it shows up in the
    "Interface" item in the "Capture Options" dialog box. Why can no
    packets be sent on or received from that network while I'm trying to
    capture traffic on that interface?
 
-   5.24 I'm running Ethereal on Windows 95/98/Me, on a machine with more
+   5.25 I'm running Ethereal on Windows 95/98/Me, on a machine with more
    than one network adapter of the same type; Ethereal shows all of those
    adapters with the same name, but I can't use any of those adapters
    other than the first one.
 
-   5.25 I'm running Ethereal on Windows, and I'm not seeing any traffic
+   5.26 I'm running Ethereal on Windows, and I'm not seeing any traffic
    being sent by the machine running Ethereal.
 
-   5.26 I'm trying to capture traffic but I'm not seeing any.
+   5.27 I'm trying to capture traffic but I'm not seeing any.
 
-   5.27 I have an XXX network card on my machine; if I try to capture on
+   5.28 I have an XXX network card on my machine; if I try to capture on
    it, my machine crashes or resets itself. 
 
-   5.28 My machine crashes or resets itself when I select "Start" from
+   5.29 My machine crashes or resets itself when I select "Start" from
    the "Capture" menu or select "Preferences" from the "Edit" menu. 
 
-   5.29 Does Ethereal work on Windows Me? 
+   5.30 Does Ethereal work on Windows Me? 
 
-   5.30 Does Ethereal work on Windows XP? 
+   5.31 Does Ethereal work on Windows XP? 
 
-   5.31 Why doesn't Ethereal correctly identify RTP packets? It shows
+   5.32 Why doesn't Ethereal correctly identify RTP packets? It shows
    them only as UDP.
 
-   5.32 Why doesn't Ethereal show Yahoo Messenger packets in captures
+   5.33 Why doesn't Ethereal show Yahoo Messenger packets in captures
    that contain Yahoo Messenger traffic?
 
-   5.33 Why do I get the error 
+   5.34 Why do I get the error 
 
      Gdk-ERROR **: Palettized display (256-colour) mode not supported on
      Windows.
@@ -177,32 +187,38 @@ Using Ethereal:
 
    when I try to run Ethereal on Windows?
 
-   5.34 When I capture on Windows in promiscuous mode, I can see packets
+   5.35 When I capture on Windows in promiscuous mode, I can see packets
    other than those sent to or from my machine; however, those packets
    show up with a "Short Frame" indication, unlike packets to or from my
    machine. What should I do to arrange that I see those packets in their
    entirety? 
 
-   5.35 I'm capturing packets on a machine on a VLAN; why don't the
+   5.36 I'm capturing packets on a machine on a VLAN; why don't the
    packets I'm capturing have VLAN tags? 
 
-   5.36 How can I capture raw 802.11 packets, including non-data
+   5.37 How can I capture raw 802.11 packets, including non-data
    (management, beacon) packets? 
 
-   5.37 I'm trying to capture 802.11 traffic on Windows; why am I not
+   5.38 How do I capture on an 802.11 device in monitor mode on Linux?
+
+   5.39 How do I capture on an 802.11 device in monitor mode on FreeBSD?
+
+   5.40 How do I capture on an 802.11 device in monitor mode on NetBSD?
+
+   5.41 I'm trying to capture 802.11 traffic on Windows; why am I not
    seeing any packets? 
 
-   5.38 I'm trying to capture 802.11 traffic on Windows; why am I seeing
+   5.42 I'm trying to capture 802.11 traffic on Windows; why am I seeing
    packets received by the machine on which I'm capturing traffic, but
    not packets sent by that machine? 
 
-   5.39 How can I capture packets with CRC errors? 
+   5.43 How can I capture packets with CRC errors? 
 
-   5.40 How can I capture entire frames, including the FCS? 
+   5.44 How can I capture entire frames, including the FCS? 
 
-   5.41 Ethereal hangs after I stop a capture. 
+   5.45 Ethereal hangs after I stop a capture. 
 
-   5.42 How can I search for, or filter, packets that have a particular
+   5.46 How can I search for, or filter, packets that have a particular
    string anywhere in them? 
 
 General Questions
@@ -213,9 +229,47 @@ General Questions
    Subscription information and archives for all of Ethereal's mailing
    lists can be found at http://www.ethereal.com/lists
 
-   Q 1.2: What protocols are currently supported?
+   Q 1.2: How much does Ethereal cost?
+
+   A: Ethereal is "free software"; you can download it without paying any
+   license fee. The version of Ethereal you download isn't a "demo"
+   version, with limitations not present in a "full" version; it is the
+   full version.
+
+   The license under which Ethereal is issued is the GNU General Public
+   License. See the GNU GPL FAQ for some more information.
+
+   Q 1.3: Can I use Ethereal commercially?
+
+   A: Yes, if, for example, you mean "I work for a commercial
+   organization; can I use Ethereal to capture and analyze network
+   traffic in our company's networks or in our customer's networks?"
+
+   If you mean "Can I use Ethereal as part of my commercial product?",
+   see the next entry in the FAQ.
 
-   A: There are currently 500 supported protocols and media, listed
+   Q 1.4: Can I use Ethereal as part of my commercial product?
+
+   A: As noted, Ethereal is licended under the GNU General Public
+   License. The GPL imposes conditions on your use of GPL'ed code in your
+   own products; you cannot, for example, make a "derived work" from
+   Ethereal, by making modifications to it, and then sell the resulting
+   derived work and not allow recipients to give away the resulting work.
+   You must also make the changes you've made to the Ethereal source
+   available to all recipients of your modified version; those changes
+   must also be licensed under the terms of the GPL. See the GPL FAQ for
+   more details; in particular, note the answer to the question about
+   modifying a GPLed program and selling it commercially, and the
+   question about linking GPLed code with other code to make a
+   proprietary program.
+
+   You can combine a GPLed program such as Ethereal and a commercial
+   program as long as they communicate "at arm's length", as per this
+   item in the GPL FAQ.
+
+   Q 1.5: What protocols are currently supported?
+
+   A: There are currently 530 supported protocols and media, listed
    below. Descriptions can be found in the ethereal(1) man page.
 
             3GPP2 A11
@@ -247,6 +301,7 @@ General Questions
             ANSI IS-637-A (SMS) Teleservice Layer
             ANSI IS-637-A (SMS) Transport Layer
             ANSI IS-683-A (OTA (Mobile))
+            ANSI IS-801 (Location Services (PLD))
             ANSI Mobile Application Part
             AOL Instant Messenger
             ARCNET
@@ -256,6 +311,7 @@ General Questions
             ATM LAN Emulation
             ATM OAM AAL
             AVS WLAN Capture header
+            AX/4000 Test Block
             Ad hoc On-demand Distance Vector Routing Protocol
             Address Resolution Protocol
             Aggregate Server Access Protocol
@@ -272,6 +328,7 @@ General Questions
             Async data over ISDN (V.120)
             Authentication Header
             BACnet Virtual Link Control
+            BEA Tuxedo
             BSS GPRS Protocol
             BSSAP/BSAP
             Banyan Vines ARP
@@ -287,6 +344,7 @@ General Questions
             Bearer Independent Call Control
             Bi-directional Fault Detection Control Message
             Blocks Extensible Exchange Protocol
+            Blubster/Piolet MANOLITO Protocol
             Boardwalk
             Boot Parameters
             Bootstrap Protocol
@@ -314,6 +372,7 @@ General Questions
             Compuserve GIF
             Connectionless Lightweight Directory Access Protocol
             Cross Point Frame Injector
+            Cryptographic Message Syntax
             DCE Distributed Time Service Local Server
             DCE Distributed Time Service Provider
             DCE Name Service
@@ -354,7 +413,9 @@ cies
             DCOM Remote Activation
             DEC Spanning Tree Protocol
             DFS Calls
+            DHCP Failover
             DHCPv6
+            DICOM
             DNS Control Program Server
             Data
             Data Link SWitching
@@ -364,10 +425,12 @@ cies
             Distance Vector Multicast Routing Protocol
             Distcc Distributed Compiler
             Distributed Checksum Clearinghouse Protocol
+            Distributed Network Protocol 3.0
             Domain Name Service
             Dynamic DNS Tools Protocol
             Echo
             Encapsulating Security Payload
+            Endpoint Name Resolution Protocol
             Enhanced Interior Gateway Routing Protocol
             EtherNet/IP (Industrial Protocol)
             Ethernet
@@ -406,6 +469,7 @@ cies
             Generic Security Service Application Program Interface
             Gnutella Protocol
             H225
+            H235-SECURITY-MESSAGES
             H245
             H4501
             HP Extended Local-Link Control
@@ -413,7 +477,6 @@ cies
             Hummingbird NFS Daemon
             HyperSCSI
             Hypertext Transfer Protocol
-            IAX2
             ICQ Protocol
             IEEE 802.11 Radiotap Capture header
             IEEE 802.11 wireless LAN
@@ -443,6 +506,7 @@ cies
             Intel ANS probe
             Intelligent Platform Management Interface
             Inter-Access-Point Protocol
+            Inter-Asterisk eXchange v2
             InterSwitch Message Protocol
             Interbase
             Internet Cache Protocol
@@ -482,6 +546,7 @@ cies
             Linux cooked-mode capture
             Local Management Interface
             LocalTalk Link Access Protocol
+            Logical Link Control GPRS
             Logical-Link Control
             Lucent/Ascend debug output
             MDS Header
@@ -495,6 +560,7 @@ cies
             MTP 2 User Adaptation Layer
             MTP 3 User Adaptation Layer
             MTP2 Peer Adaptation Layer
+            Media Type
             Media Type: message/http
             Message Transfer Part Level 2
             Message Transfer Part Level 3
@@ -502,7 +568,11 @@ cies
             Microsoft Directory Replication Service
             Microsoft Distributed File System
             Microsoft Distributed Link Tracking Server Service
+            Microsoft Encrypted File System Service
+            Microsoft Eventlog Service
             Microsoft Exchange MAPI
+            Microsoft File Replication Service
+            Microsoft File Replication Service API
             Microsoft Local Security Architecture
             Microsoft Local Security Architecture (Directory Services)
             Microsoft Messenger Service
@@ -525,6 +595,7 @@ cies
             MultiProtocol Label Switching Header
             Multicast Router DISCovery protocol
             Multicast Source Discovery Protocol
+            Multiprotocol Label Switching Echo
             MySQL Protocol
             NFSACL
             NFSAUTH
@@ -561,6 +632,7 @@ cies
             OpenBSD Packet Filter log file, pre 3.4
             Optimized Link State Routing Protocol
             PC NFS
+            PKCS#1
             POSTGRESQL
             PPP Bandwidth Allocation Control Protocol
             PPP Bandwidth Allocation Protocol
@@ -575,17 +647,20 @@ cies
             PPP MPLS Control Protocol
             PPP Multilink Protocol
             PPP Multiplexing
+            PPP OSI Control Protocol
             PPP Password Authentication Protocol
             PPP VJ Compression
             PPP-over-Ethernet Discovery
             PPP-over-Ethernet Session
             PPPMux Control Protocol
             Packed Encoding Rules (ASN.1 X.691)
+            PacketCable
             Point-to-Point Protocol
             Point-to-Point Tunnelling Protocol
             Portmap
             Post Office Protocol
             Pragmatic General Multicast
+            Precision Time Protocol (IEEE1588)
             Prism
             Privilege Server operations
             Protocol Independent Multicast
@@ -609,6 +684,7 @@ cies
             Radius Protocol
             Raw packet data
             Real Time Streaming Protocol
+            Real-Time Publish-Subscribe Wire Protocol
             Real-Time Transport Protocol
             Real-time Transport Control Protocol
             Registry Server Attributes Manipulation Interface
@@ -649,6 +725,7 @@ cies
             Session Initiation Protocol
             Session Initiation Protocol (SIP as raw text)
             Short Message Peer to Peer
+            Signaling Compression
             Signalling Connection Control Part
             Signalling Connection Control Part Management
             Simple Mail Transfer Protocol
@@ -663,6 +740,7 @@ cies
             Spanning Tree Protocol
             Spnego
             Stream Control Transmission Protocol
+            Subnetwork Dependent Convergence Protocol
             Symantec Enterprise Firewall
             Synchronous Data Link Control (SDLC)
             Syslog message
@@ -694,6 +772,7 @@ cies
             WAP Session Initiation Request
             Web Cache Coordination Protocol
             WebSphere MQ
+            WebSphere MQ Programmable Command Formats
             Wellfleet Breath of Life
             Wellfleet Compression
             Wellfleet HDLC
@@ -706,6 +785,10 @@ cies
             X.25
             X.25 over TCP
             X.29
+            X.509 Authentication Framework
+            X.509 Certificate Extensions
+            X.509 Information Framework
+            X.509 Selected Attribute Types
             X11
             Xyplex
             Yahoo Messenger Protocol
@@ -717,16 +800,17 @@ cies
             Zebra Protocol
             Zone Information Protocol
             eDonkey Protocol
+            giFT Internet File Transfer
             iSCSI
             iSNS
 
-   Q 1.3: Are there any plans to support {your favorite protocol}?
+   Q 1.6: Are there any plans to support {your favorite protocol}?
 
    A: Support for particular protocols is added to Ethereal as a result
    of people contributing that support; no formal plans for adding
    support for particular protocols in particular future releases exist.
 
-   Q 1.4: Can Ethereal read capture files from {your favorite network
+   Q 1.7: Can Ethereal read capture files from {your favorite network
    analyzer}?
 
    A: Support for particular protocols is added to Ethereal as a result
@@ -751,7 +835,7 @@ cies
    Note that there is no guarantee that we will be able to
    reverse-engineer a capture file format.
 
-   Q 1.5: What devices can Ethereal use to capture packets?
+   Q 1.8: What devices can Ethereal use to capture packets?
 
    A: Ethereal can read live data from Ethernet, Token-Ring, FDDI, serial
    (PPP and SLIP) (if the OS on which it's running allows Ethereal to do
@@ -792,7 +876,7 @@ cies
    other applications or equipment, even if it cannot itself capture on
    those network types.
 
-   Q 1.6: How do you pronounce Ethereal? Where did the name come from?
+   Q 1.9: How do you pronounce Ethereal? Where did the name come from?
 
    A: The English pronunciation can be found in Merriam-Webster's online
    dictionary at
@@ -801,8 +885,8 @@ cies
    According to the book "Computer Networks" by Andrew Tannenbaum,
    Ethernet was named after the "luminiferous ether" which was once
    thought to carry electromagnetic radiation. Taking that into
-   consideration, Ethereal seemed like an appropriate name for an
-   Ethernet analyzer.
+   consideration, Ethereal seemed like an appropriate name for something
+   that started out as an Ethernet analyzer.
 
 Downloading Ethereal
 
@@ -869,7 +953,7 @@ Building Ethereal
      dftest_DEPENDENCIES was already defined in condition TRUE, which
      implies condition HAVE_PLUGINS_TRUE
 
-   when I try to build Ethereal from CVS or a CVS snapshot?
+   when I try to build Ethereal from SVN or a SVN snapshot?
 
    A: You probably have automake 1.5 installed on your machine (the
    command automake --version will report the version of automake on your
@@ -920,16 +1004,6 @@ Building Ethereal
    Note that the installed version of the developer's pack should be the
    same version as the version of WinPcap you have installed.
 
-   Q 4.6: I'm trying to build Ethereal 0.10.0a on Windows; why is the the
-   build failing with an error saying it can't find "Makefile.nmake"?
-
-   A: There was a bug in the 0.10.0a distribution that caused
-   "tools\Makefile.nmake" not to be in the source code release. You can
-   download it with the URL
-   http://www.ethereal.com/cgi-bin/viewcvs.cgi/*checkout*/ethereal/tools/
-   Makefile.nmake?rev=1.5. Put it into "tools\Makefile.nmake" and try the
-   build again.
-
 Using Ethereal
 
    Q 5.1: When I use Ethereal to capture packets, I see only packets to
@@ -956,31 +1030,10 @@ Using Ethereal
    to a single port so that you can plug your analyzer into that single
    port to sniff all traffic. You would have to check the documentation
    for the switch to see if this is possible and, if so, to see how to do
-   this. See, for example:
-     * this documentation from Cisco on the Switched Port Analyzer (SPAN)
-       feature on Catalyst switches;
-     * documentation from HP on how to set "monitoring"/"mirroring" on
-       ports on the console for HP Advancestack Switch 208 and 224;
-     * the "Network Monitoring Port Features" section of chapter 6 of
-       documentation from HP for HP ProCurve Switches 1600M, 2424M,
-       4000M, and 8000M;
-     * the "Switch Port-Mirroring" section of chapter 6 of documentation
-       from Extreme Networks for their Summit 200 switches;
-     * the documentation on "Configuring Port Mirroring and Monitoring"
-       in Foundry Networks' documentation for their FastIron Edge
-       Switches;
-     * the documentation on "Configuring Port Mirroring and Monitoring"
-       in Foundry Networks' documentation for their BigIron MG8 Layer 3
-       Switches;
-     * the "Port Monitor" subsection of the "Status Monitor and
-       Statistics" section of the documentation from Foundry Networks for
-       their EdgeIron 4802F and 10GC2F switches;
-     * the "Configuring Port Mirroring" section of chapter 3 of the
-       documentation from Foundry Networks for their EdgeIron 24G,
-       2402CF, and 4802CF switches;
-     * the documentation on "Configuring Port Mirroring and Monitoring"
-       in Foundry Networks' documentation for their other switches and
-       metro routers.
+   this. See the switch reference page on the Ethereal Wiki for
+   information on some switches. (Note that it's a Wiki, so you can
+   update or fix that information, or add additional information on those
+   switches or information on new switches, yourself.)
 
    Note also that many firewall/NAT boxes have a switch built into them;
    this includes many of the "cable/DSL router" boxes. If you have a box
@@ -1147,11 +1200,28 @@ Using Ethereal
 
    If the attempt to capture on it succeeds, the interface is somehow not
    being reported by the mechanism Ethereal uses to get a list of
-   interfaces; please report this to ethereal-dev@ethereal.com giving
-   full details of the problem, including
+   interfaces. Try listing the interfaces with WinDump; see the WinDump
+   Web site or the local mirror of the WinDump Web site for information
+   on using WinDump.
+
+   You would run WinDump with the -D flag; if it lists the interface,
+   please report this to ethereal-dev@ethereal.com giving full details of
+   the problem, including
      * the operating system you're using, and the version of that
        operating system;
-     * the type of network device you're using.
+     * the type of network device you're using;
+     * the output of WinDump.
+
+   If WinDump does not list the interface, this is almost certainly a
+   problem with one or more of:
+     * the operating system you're using;
+     * the device driver for the interface you're using;
+     * the WinPcap library and/or the WinPcap device driver;
+
+   so first check the WinPcap FAQ, the local mirror of that FAQ, or the
+   Wiretapped.net mirror of that FAQ, to see if your problem is mentioned
+   there. If not, then see the WinPcap support page (or the local mirror
+   of that page) - check the "Submitting bugs" section.
 
    If you are having trouble capturing on a particular network interface,
    first try capturing on that device with WinDump; see the WinDump Web
@@ -1460,33 +1530,42 @@ Using Ethereal
    Similar problems may exist with older versions of GTK+ for earlier
    versions of Solaris.
 
-   Q 5.17: When I run Tethereal with the "-x" option, it crashes with an
-   error "** ERROR **: file print.c: line 691 (print_line): should not be
-   reached".
+   Q 5.17: When I run Ethereal, I get an error
+
+     Gtk-CRITICAL **: file gtkwindow.c: line 3107 (gtk_window_resize):
+     assertion `height > 0' failed.
 
-   A: This is a bug in Ethereal 0.10.0a, which is fixed in the Ethereal
-   CVS tree and will thus be fixed in the next release. To work around
-   the bug, don't use "-x" unless you're also using "-V"; note that "-V"
-   produces a full dissection of each packet, so you might not want to
-   use it.
+   A: This is a bug in Ethereal 0.10.5 and 0.10.5a, which is fixed in
+   Ethereal 0.10.6 and later releases.
 
-   To get a fixed version, either build the current CVS version from
-   anonymous CVS or a nightly CVS snapshot, or apply to tethereal.c in
+   Q 5.18: When I run Tethereal with the "-x" option, it crashes with an
+   error
+
+     "** ERROR **: file print.c: line 691 (print_line): should not be
+     reached.
+
+   A: This is a bug in Ethereal 0.10.0a, which is fixed in 0.10.1 and
+   later releases. To work around the bug, don't use "-x" unless you're
+   also using "-V"; note that "-V" produces a full dissection of each
+   packet, so you might not want to use it.
+
+   To get a fixed version, either build the current SVN version from
+   anonymous SVN or a nightly SVN snapshot, or apply to tethereal.c in
    the 0.10.0a source tarball the changes between the broken and the
    fixed versions, which you can download with the URL
    http://www.ethereal.com/cgi-bin/viewcvs.cgi/ethereal/tethereal.c.diff?
    r2=1.211&r1=1.210&diff_format=u and (re-)build from source. It might
-   be easier to get the CVS version than to get the patch and apply it to
+   be easier to get the SVN version than to get the patch and apply it to
    the 0.10.0a source tarball, but it's probably easier to build from the
-   source tarball than from the CVS version, as you'll need to have more
-   tools and make more steps to generate from the CVS version some files
+   source tarball than from the SVN version, as you'll need to have more
+   tools and make more steps to generate from the SVN version some files
    that are bundled with the source tarball.
 
    Note that to build from the 0.10.0a source tarball on Windows with
    Microsoft Visual C++, you will need to get a file that was missing
    from the 0.10.0a source tarball; see the FAQ for that problem.
 
-   Q 5.18: When I run Ethereal on Windows NT, it dies with a Dr. Watson
+   Q 5.19: When I run Ethereal on Windows NT, it dies with a Dr. Watson
    error, reporting an "Integer division by zero" exception, when I start
    it.
 
@@ -1494,7 +1573,7 @@ Using Ethereal
    VGA driver; if that's not the correct driver for your video card, try
    running the correct driver for your video card.
 
-   Q 5.19: When I try to run Ethereal, it complains about
+   Q 5.20: When I try to run Ethereal, it complains about
    sprint_realloc_objid being undefined.
 
    A: Ethereal can only be linked with version 4.2.2 or later of UCD
@@ -1504,7 +1583,7 @@ Using Ethereal
    the older version, and fails. You will have to replace that version of
    UCD SNMP with version 4.2.2 or a later version.
 
-   Q 5.20: I'm running Ethereal on Linux; why do my time stamps have only
+   Q 5.21: I'm running Ethereal on Linux; why do my time stamps have only
    100ms resolution, rather than 1us resolution?
 
    A: Ethereal gets time stamps from libpcap/WinPcap, and libpcap/WinPcap
@@ -1530,13 +1609,13 @@ Using Ethereal
    have to run a standard kernel from kernel.org in order to get
    high-resolution time stamps.
 
-   Q 5.21: I'm capturing packets on {Windows 95, Windows 98, Windows Me};
+   Q 5.22: I'm capturing packets on {Windows 95, Windows 98, Windows Me};
    why are the time stamps on packets wrong?
 
    A: This is due to a bug in WinPcap. The bug should be fixed in WinPcap
    3.0.
 
-   Q 5.22: When I try to run Ethereal on Windows, it fails to run because
+   Q 5.23: When I try to run Ethereal on Windows, it fails to run because
    it can't find packet.dll.
 
    A: In older versions of Ethereal, there were two binary distributions
@@ -1553,7 +1632,7 @@ Using Ethereal
    Web site, the local mirror of the WinPcap Web site, or the
    Wiretapped.net mirror of the WinPcap site.
 
-   Q 5.23: I'm running Ethereal on Windows NT/2000/XP/Server; my machine
+   Q 5.24: I'm running Ethereal on Windows NT/2000/XP/Server; my machine
    has a PPP (dial-up POTS, ISDN, etc.) interface, and it shows up in the
    "Interface" item in the "Capture Options" dialog box. Why can no
    packets be sent on or received from that network while I'm trying to
@@ -1567,7 +1646,7 @@ Using Ethereal
    Preferences" dialog box, but this may mean that outgoing packets, or
    incoming packets, won't be seen in the capture.
 
-   Q 5.24: I'm running Ethereal on Windows 95/98/Me, on a machine with
+   Q 5.25: I'm running Ethereal on Windows 95/98/Me, on a machine with
    more than one network adapter of the same type; Ethereal shows all of
    those adapters with the same name, but I can't use any of those
    adapters other than the first one.
@@ -1578,7 +1657,7 @@ Using Ethereal
    capture only on the first such interface; Ethereal is a
    libpcap/WinPcap-based application.
 
-   Q 5.25: I'm running Ethereal on Windows, and I'm not seeing any
+   Q 5.26: I'm running Ethereal on Windows, and I'm not seeing any
    traffic being sent by the machine running Ethereal.
 
    A: If you are running some form of VPN client software, it might be
@@ -1595,7 +1674,7 @@ Using Ethereal
    requested that the interface run promiscuously; try turning
    promiscuous mode off.
 
-   Q 5.26: I'm trying to capture traffic but I'm not seeing any.
+   Q 5.27: I'm trying to capture traffic but I'm not seeing any.
 
    A: Is the machine running Ethereal sending out any traffic on the
    network interface on which you're capturing, or receiving any traffic
@@ -1611,7 +1690,7 @@ Using Ethereal
    Otherwise, on Windows, see the response to this question and, on a
    UNIX-flavored OS, see the response to this question.
 
-   Q 5.27: I have an XXX network card on my machine; if I try to capture
+   Q 5.28: I have an XXX network card on my machine; if I try to capture
    on it, my machine crashes or resets itself.
 
    A: This is almost certainly a problem with one or more of:
@@ -1629,7 +1708,7 @@ Using Ethereal
        Linux distribution, report the problem to whoever produces the
        distribution).
 
-   Q 5.28: My machine crashes or resets itself when I select "Start" from
+   Q 5.29: My machine crashes or resets itself when I select "Start" from
    the "Capture" menu or select "Preferences" from the "Edit" menu.
 
    A: Both of those operations cause Ethereal to try to build a list of
@@ -1638,20 +1717,20 @@ Using Ethereal
    or, for Windows, WinPcap bug that causes the system to crash when this
    happens; see the previous question.
 
-   Q 5.29: Does Ethereal work on Windows Me?
+   Q 5.30: Does Ethereal work on Windows Me?
 
    A: Yes, but if you want to capture packets, you will need to install
    the latest version of WinPcap, as 2.02 and earlier versions of WinPcap
    didn't support Windows Me. You should also install the latest version
    of Ethereal as well.
 
-   Q 5.30: Does Ethereal work on Windows XP?
+   Q 5.31: Does Ethereal work on Windows XP?
 
    A: Yes, but if you want to capture packets, you will need to install
    the latest version of WinPcap, as 2.2 and earlier versions of WinPcap
    didn't support Windows XP.
 
-   Q 5.31: Why doesn't Ethereal correctly identify RTP packets? It shows
+   Q 5.32: Why doesn't Ethereal correctly identify RTP packets? It shows
    them only as UDP.
 
    A: Ethereal can identify a UDP datagram as containing a packet of a
@@ -1684,7 +1763,7 @@ Using Ethereal
    both the source and destination ports of the packet should be
    dissected as some particular protocol.
 
-   Q 5.32: Why doesn't Ethereal show Yahoo Messenger packets in captures
+   Q 5.33: Why doesn't Ethereal show Yahoo Messenger packets in captures
    that contain Yahoo Messenger traffic?
 
    A: Ethereal only recognizes as Yahoo Messenger traffic packets to or
@@ -1694,7 +1773,7 @@ Using Ethereal
    Messenger packets (even if the TCP segment also contains the beginning
    of another Yahoo Messenger packet).
 
-   Q 5.33: Why do I get the error
+   Q 5.34: Why do I get the error
 
      Gdk-ERROR **: Palettized display (256-colour) mode not supported on
      Windows.
@@ -1713,7 +1792,7 @@ Using Ethereal
    of that toolkit that supports 256-color mode; upgrade to the current
    version of Ethereal if you want to run on a display in 256-color mode.
 
-   Q 5.34: When I capture on Windows in promiscuous mode, I can see
+   Q 5.35: When I capture on Windows in promiscuous mode, I can see
    packets other than those sent to or from my machine; however, those
    packets show up with a "Short Frame" indication, unlike packets to or
    from my machine. What should I do to arrange that I see those packets
@@ -1723,7 +1802,7 @@ Using Ethereal
    running on the network interface on which you're capturing; turn it
    off on that interface.
 
-   Q 5.35: I'm capturing packets on a machine on a VLAN; why don't the
+   Q 5.36: I'm capturing packets on a machine on a VLAN; why don't the
    packets I'm capturing have VLAN tags?
 
    A: You might be capturing on what might be called a "VLAN interface" -
@@ -1739,13 +1818,24 @@ Using Ethereal
    the VLAN, but on the interface corresponding to the physical network
    device, if possible.
 
-   Q 5.36: How can I capture raw 802.11 packets, including non-data
+   Q 5.37: How can I capture raw 802.11 packets, including non-data
    (management, beacon) packets?
 
-   A: That would require that your 802.11 interface run in the mode
-   called "monitor mode" or "RFMON mode". Not all operating systems
-   support that and, even on operating systems that do support it, not
-   all drivers, and thus not all cards, support it.
+   A: That depends on the operating system on which you're running, and
+   on the 802.11 interface on which you're capturing.
+
+   This would probably require that you capture in promiscuous mode or in
+   the mode called "monitor mode" or "RFMON mode". On some platforms, or
+   with some cards, this might require that you capture in monitor mode -
+   promiscuous mode might not be sufficient. If you want to capture
+   traffic on networks other than the one with which you're associated,
+   you will have to capture in monitor mode.
+
+   Not all operating systems support capturing non-data packets and, even
+   on operating systems that do support it, not all drivers, and thus not
+   all interfaces, support it. Even on those that do, monitor mode might
+   not be supported by the operating system or by the drivers for all
+   interfaces.
 
    NOTE: an interface running in monitor mode will, on most if not all
    platforms, not be able to act as a regular network interface; putting
@@ -1759,43 +1849,37 @@ Using Ethereal
    for a long time trying to resolve the name because it will not be able
    to communicate with any DNS or NIS servers.
 
-   Cisco Aironet cards:
-
-   The only platforms that allow Ethereal to capture raw 802.11 packets
-   on Cisco Aironet cards are:
-     * Linux, with a 2.4.6 or later kernel;
-     * FreeBSD 4.6 or later, as the driver in FreeBSD 4.5 has bugs that
-       cause packets not to be captured correctly, and the driver in
-       releases prior to 4.5 didn't support capturing raw packets.
+   There are FAQ items below with information on capturing in monitor
+   mode on Linux, FreeBSD, and NetBSD.
 
-   On FreeBSD, the ancontrol utility must be used. The command
+   On Windows, you will not be able to capture in monitor mode on any
+   interfaces, and you might not be able to capture in promiscuous mode,
+   either. You might have some success in promiscuous mode with Centrino
+   interfaces, although you will need Ethereal 0.10.6 or later in order
+   to have the non-data packets recognized and properly dissected.
 
-ancontrol -i anN -M flag
+   You will not be able to capture in monitor mode on any other platforms
+   (including Mac OS X). You might be able to capture in promiscuous
+   mode, but this won't capture non-data packets.
 
-   is used to enable or disable monitor mode. If flag is 0, monitor mode
-   will be turned off; otherwise, flag should be the sum of:
-     * 1, to turn monitor mode on;
-     * 2, if you want to capture traffic from any BSS rather than just
-       the BSS with which the card is associated;
-     * 4, if you want to see beacon packets (capturing beacon packets
-       increases the CPU requirements of capturing).
+   Q 5.38: How do I capture on an 802.11 device in monitor mode on Linux?
 
-   Don't add 8 in; Ethereal currently doesn't support the full Aironet
-   header.
+   A: Whether you will be able to capture in monitor mode depends on the
+   card and driver you're using. See this page of Linux 802.11b
+   information for details on 802.11b wireless cards, including
+   information on the chips they use, and see this page of Linux
+   802.11b+/a/g information for details on 802.11b+, 802.11a, and 802.11g
+   wireless cards, including information on the chips they use.
 
-   On Linux with the driver in the 2.4.6 through 2.4.19 kernel, you will
-   need to do
-
-echo "Mode: rfmon">/proc/driver/aironet/ethN/Config
-
-   if your Aironet card is ethN. To capture traffic from any BSS rather
-   than just the BSS with which the card is associated, do
-
-echo "Mode: y">/proc/driver/aironet/ethN/Config
-
-   and to return to the normal mode, do
+   Cisco Aironet cards:
 
-echo "Mode: ess">/proc/driver/aironet/ethN/Config
+   On Linux with the driver in the 2.4.6 through 2.4.19 kernel:
+    1. Put the card into monitor mode with the command echo "Mode: rfmon"
+       >/proc/driver/aironet/interface/Config. If you want to capture
+       traffic for any BSS rather than just the BSS with which the card
+       is associated, use "Mode: y" rather than "Mode: rfmon".
+    2. When the capture completes, turn off monitor mode with the command
+       echo "Mode: ess" >/proc/driver/aironet/interface/Config.
 
    On Linux with the driver in the 2.4.20 or later kernel, or with the
    CVS drivers from the airo-linux SourceForge site, you will have to
@@ -1815,14 +1899,12 @@ echo "Mode: ess">/proc/driver/aironet/ethN/Config
    dependency checking so that they will install Ethereal even though a
    newer version of libpcap is installed.
 
-   Cards using the Prism II chip set (see this page of Linux 802.11
-   information for details on wireless cards, including information on
-   the chips they use):
+   Cards using the Prism II chip set:
 
    You can capture raw 802.11 packets with Prism II cards on Linux
    systems with the 0.1.14-pre6 or later version of the linux-wlan-ng
    drivers (see the linux-wlan page, and the linux-wlan-ng tarball
-   directory).
+   directory), or with the hostap driver for Prism II/2.5/3.
 
    Those require either Solomon Peachy's patch to libpcap 0.7.1 (see his
    libpcap-0.7.1-prism.diff file, or his RPMs of that version of
@@ -1836,21 +1918,36 @@ echo "Mode: ess">/proc/driver/aironet/ethN/Config
    you install the libpcap-0.7.1-1prism.i386.rpm RPM, as it might install
    a libpcap shared library in place of the one on your system.
 
-   You may have to run a command to put the interface into monitor mode,
-   or to change other interface settings, and you might have to capture
-   on a wlanN interface rather than a ethN interface, in order to capture
-   raw 802.11 packets. The interface settings are available in your
-   wlan-ng.conf file. See the wlan-ng FAQ for additional information.
-
-   On other platforms, capturing raw 802.11 packets on Prism II cards is
-   not currently supported.
+   With the linux-wlan-ng driver, you should:
+    1. Put the card into monitor mode with the command wlanctl-ng
+       interface lnxreq_wlansniffer enable=true. You should request
+       802.11 headers by adding to that command the option
+       prismheader=true or, if supported, wlanheader=true; the latter
+       might require libpcap 0.8.1 or later. You can also set the channel
+       to monitor by adding the argument channel=channel_number to that
+       command.
+    2. When the capture completes, turn off monitor mode with the command
+       wlanctl-ng interface enable=false. You might also have to turn
+       802.11 headers off with prismheader=false or wlanheader=false.
+
+   See the wlan-ng FAQ for additional information, although note that it
+   does not appear to be up-to-date.
+
+   With the hostap driver, you should:
+    1. Put the card into monitor mode with the command iwpriv interface
+       monitor mode, where mode is 2 or 3 (mode 3 would require libpcap
+       0.8.1 or later).
+    2. When the capture completes, turn off monitor mode with the command
+       iwpriv interface monitor 0.
 
    Orinoco Silver and Gold cards:
 
-   On Linux systems, there are patches on the Orinoco Monitor Mode Patch
-   Page that should allow you to do capture raw 802.11 packets. You will
-   have to determine which version of the driver you have, and select the
-   appropriate patch.
+   On Linux systems, the current version of the SourceForge orinoco_cs
+   driver should support monitor mode. There also exist patches to
+   earlier versions of the Orinoco driver, on the Orinoco Monitor Mode
+   Patch Page, to add support for monitor mode. You will have to
+   determine which version of the driver you have, and select the
+   appropriate patch, if one is necessary.
 
    Note that the page indicates that not all versions of the Orinoco
    firmware support this patch. It says, for some versions of the patch,
@@ -1868,26 +1965,25 @@ echo "Mode: ess">/proc/driver/aironet/ethN/Config
    check the version of the Orinoco drivers that shipped with your kernel
    by examining the first few lines of the orinoco.c file.
 
-   The Orinoco patches require either Solomon Peachy's patch to libpcap
-   0.7.1 (see his libpcap-0.7.1-prism.diff file, or his RPMs of that
-   version of libpcap), or the current CVS version of libpcap, which
-   includes his patch (download it from the "Current Tar files" section
-   of the tcpdump.org Web site). If you apply his patches to libpcap
-   0.7.1 and rebuild and install libpcap, or if you build and install the
-   current CVS version of libpcap, you would have to rebuild Ethereal
-   from source, linking it with that new version of libpcap; an Ethereal
-   binary package would not work. Ethereal binary packages might work if
-   you install the libpcap-0.7.1-1prism.i386.rpm RPM, as it might install
-   a libpcap shared library in place of the one on your system.
-
-   On other platforms, capturing raw 802.11 packets on Orinoco cards is
-   not currently supported.
-
-   Cards with the Atheros Communications AR5000 or AR5001 chipsets:
-
-   You can capture raw 802.11 packets with AR5K cards on Linux systems
-   with the v5_ar5k drivers. You will need the Linux wireless-tools
-   version 25 or higher to put the card into monitor mode.
+   The Orinoco patches and SourceForge driver require either Solomon
+   Peachy's patch to libpcap 0.7.1 (see his libpcap-0.7.1-prism.diff
+   file, or his RPMs of that version of libpcap), or the current CVS
+   version of libpcap, which includes his patch (download it from the
+   "Current Tar files" section of the tcpdump.org Web site). If you apply
+   his patches to libpcap 0.7.1 and rebuild and install libpcap, or if
+   you build and install the current CVS version of libpcap, you would
+   have to rebuild Ethereal from source, linking it with that new version
+   of libpcap; an Ethereal binary package would not work. Ethereal binary
+   packages might work if you install the libpcap-0.7.1-1prism.i386.rpm
+   RPM, as it might install a libpcap shared library in place of the one
+   on your system.
+
+   With a driver that supports monitor mode, you should:
+    1. Put the card into monitor mode with the command iwpriv interface
+       monitor mode channel_number, where mode is 1 or 2, and
+       channel_number is the number of the channel to monitor.
+    2. When the capture completes, turn off monitor mode with the command
+       iwpriv interface monitor 0.
 
    Cards with the Texas Instruments ACX100 chipset:
 
@@ -1895,19 +1991,81 @@ echo "Mode: ess">/proc/driver/aironet/ethN/Config
    with the ACX100 OSS drivers available from the ACX100 wireless network
    driver project SourceForge site.
 
-   Other 802.11 interfaces:
+   With that driver:
 
-   With other 802.11 interfaces, no platform allows Ethereal to capture
-   raw 802.11 packets, as far as we know. If you know of other 802.11
-   interfaces that are supported (note that there are many "Prism II
-   cards", so your card might be a Prism II card), please let us know,
-   and include URLs for sites containing any necessary patches to add
-   this support.
+    1. Put the card into monitor mode with the command iwpriv interface
+       monitor 2 channel_number, where channel_number is the number of
+       the channel to monitor.
+    2. When the capture completes, turn off monitor mode with the command
+       iwpriv interface monitor 0.
 
-   On platforms that don't allow Ethereal to capture raw 802.11 packets,
-   the 802.11 network will appear like an Ethernet to Ethereal.
+   Cards with Atheros Communications chipsets:
 
-   Q 5.37: I'm trying to capture 802.11 traffic on Windows; why am I not
+   You can capture raw 802.11 packets with AR5K cards on Linux systems
+   with the v5_ar5k or madwifi drivers. For the v5ar5k driver you will
+   need the Linux wireless-tools version 25 or higher to put the card
+   into monitor mode. If you're using the madwifi driver, you can put the
+   card into monitor mode using iwconfig interface mode monitor, followed
+   by iwconfig interface channel channel to select a channel (if needed).
+
+   Other cards:
+
+   It might be possible to capture in monitor mode on other cards. If so,
+   please supply us with information on how to do so, so that we can
+   incorporate that information into this FAQ in the future.
+
+   Q 5.39: How do I capture on an 802.11 device in monitor mode on
+   FreeBSD?
+
+   A: On FreeBSD 5.2 and later, you should be able to capture in monitor
+   mode on 802.11 interfaces supported by the wi and acx drivers, if
+   Ethereal is linked with libpcap 0.8.1 or later, and on 802.11
+   interfaces supported by the an driver, if Ethereal is linked with
+   libpcap 0.7.1 or later.
+
+   For cards supported by the wi and acx drivers, you should:
+    1. Put the card into monitor mode with the command ifconfig interface
+       monitor. You can also set the channel to monitor by adding the
+       argument channel channel_number to that command.
+    2. When you start the capture, in Ethereal select "802.11" as the
+       "Link-layer header type", and in Tethereal add the command-line
+       argument -y 802.11.
+    3. When the capture completes, turn off monitor mode with the command
+       ifconfig interface -monitor.
+
+   For cards supported by the an driver, you should:
+    1. Put the card into monitor mode with the command ancontrol -i
+       interface -M flag, where flag should be the sum of:
+          + 1, to turn monitor mode on;
+          + 2, if you want to capture traffic from any BSS rather than
+            just the BSS with which the card is associated;
+          + 4, if you want to see beacon packets (capturing beacon
+            packets increases the CPU requirements of capturing).
+    2. When the capture completes, turn off monitor mode with the command
+       ancontrol -i interface -M 0.
+
+   Don't add 8 in to flag; Ethereal currently doesn't support the full
+   Aironet header.
+
+   On FreeBSD 4.6 through 5.1, you should be able to capture in monitor
+   mode on 802.11 interfaces supported by the an driver, but not on any
+   other interfaces; see the instructions for FreeBSD 5.2 or later for
+   those cards.
+
+   In FreeBSD 4.5 and earlier, you will not be able to capture in monitor
+   mode on 802.11 interfaces (no drivers supported it prior to 4.5, and
+   in 4.5 the an driver had bugs that caused packets not to be captured
+   correctly).
+
+   Q 5.40: How do I capture on an 802.11 device in monitor mode on
+   NetBSD?
+
+   A: On NetBSD 2.0-beta and later, you should be able to capture in
+   monitor mode on 802.11 interfaces supported by the wi and acx drivers,
+   if Ethereal is linked with libpcap 0.8.1 or later. The instructions
+   are the same as for FreeBSD 5.2 and later.
+
+   Q 5.41: I'm trying to capture 802.11 traffic on Windows; why am I not
    seeing any packets?
 
    A: At least some 802.11 card drivers on Windows appear not to see any
@@ -1917,14 +2075,14 @@ echo "Mode: ess">/proc/driver/aironet/ethN/Config
    Ethernet traffic and won't include any management or control frames,
    but that's a limitation of the card drivers.
 
-   Q 5.38: I'm trying to capture 802.11 traffic on Windows; why am I
+   Q 5.42: I'm trying to capture 802.11 traffic on Windows; why am I
    seeing packets received by the machine on which I'm capturing traffic,
    but not packets sent by that machine?
 
    A: This appears to be another problem with promiscuous mode; try
    turning it off.
 
-   Q 5.39: How can I capture packets with CRC errors?
+   Q 5.43: How can I capture packets with CRC errors?
 
    A: Ethereal can capture only the packets that the packet capture
    library - libpcap on UNIX-flavored OSes, and the WinPcap port to
@@ -1958,9 +2116,9 @@ echo "Mode: ess">/proc/driver/aironet/ethN/Config
    question) and you're using Ethereal 0.9.15 and later, in which case
    Ethereal will check the CRC and indicate whether it's correct or not.
 
-   Q 5.40: How can I capture entire frames, including the FCS?
+   Q 5.44: How can I capture entire frames, including the FCS?
 
-   A: Ethereal can't capture any data that the packet capture library -
+   A: Ethereal can only capture data that the packet capture library -
    libpcap on UNIX-flavored OSes, and the WinPcap port to Windows of
    libpcap on Windows - can capture, and libpcap/WinPcap can capture only
    the data that the OS's raw packet capture mechanism (or the WinPcap
@@ -1990,7 +2148,7 @@ echo "Mode: ess">/proc/driver/aironet/ethN/Config
    thinks there is, will display it as such, and will check whether it's
    the correct CRC-32 value or not.
 
-   Q 5.41: Ethereal hangs after I stop a capture.
+   Q 5.45: Ethereal hangs after I stop a capture.
 
    A: The most likely reason for this is that Ethereal is trying to look
    up an IP address in the capture to convert it to a name (so that, for
@@ -2060,7 +2218,7 @@ echo "Mode: ess">/proc/driver/aironet/ethN/Config
    contains sensitive information (e.g., passwords), then please do not
    send it.
 
-   Q 5.42: How can I search for, or filter, packets that have a
+   Q 5.46: How can I search for, or filter, packets that have a
    particular string anywhere in them?
 
    A: If you want to do this when capturing, you can't. That's a feature
@@ -2087,4 +2245,4 @@ echo "Mode: ess">/proc/driver/aironet/ethN/Config
    For corrections/additions/suggestions for this web page (and not
    Ethereal support questions), please send email to
    ethereal-web[AT]ethereal.com .
-   Last modified: Tue, April 20 2004.
+   Last modified: Sat, September 25 2004.