2004-07-26  Philippe Biondi  <phil@secdev.org> 0.9.17beta
        * added ScapyPcapWriter class (William McVey)
	* do not need to be named 'scapy.py' anymore
	* use of PacketList() for rdpcap() and sniff()
	* fixed a bug in StrFixedLenField
	* early IKE and ISAKMP support

2004-07-16  Philippe Biondi  <phil@secdev.org>
	*  small fix on bootpd

2004-07-10  Philippe Biondi  <phil@secdev.org>
	* finished testing ethertype in supersockets to decide wether or not to apply BPF filters
	* do not apply any BPF filter if ethertype is given to a supersocket (so that ARP requests will work
	  whatever the conf.except_filter value is)

2004-07-09  Philippe Biondi  <phil@secdev.org>
	* changed the header and blocked the licence to GPLv2 only
	* added an independant routing table (conf.route) and methods to manipulate it
	* tweaked results stats

2004-07-06  Philippe Biondi  <phil@secdev.org>
	* wrapper classes for results presentations and manipulation
	* sndrcv() retry auto adjustment when giving a negative value

2004-07-05  Philippe Biondi  <phil@secdev.org>
	* added retry option to sndrcv()
	* improved debug class
	* added ottl() and hops() methods for IPTools class
	* improved UDP and ICMP summary()

2004-06-07  Philippe Biondi  <phil@secdev.org>
        * fix again TCP.answers() and TCPerror.answers()
	* fixed conf.checkIPsrc behaviour of answers() and hashret() for TCP/UDP/TCPerror/UDPerror
	* added conf.debug_match to keep track of unanswered packets in debug.sent and debug.recv
	* added LEIntField and StrFixedLenField
	* added partial PrismHeader support

2004-04-29  Philippe Biondi  <phil@secdev.org>

	* fixed fragment()

2004-03-31  Philippe Biondi  <phil@secdev.org>
	* fix nmap fingerprint db parsing to handle the new format (Jochen Bartl)

2004-03-23  Philippe Biondi  <phil@secdev.org>
	* Support for reading big endian pcap files (Pekka Pietikainen)

2004-02-28  Philippe Biondi  <phil@secdev.org>
	* got rid of some future warnings (N. Bareil <nbareil@mouarf.org>)
	* improved BitField() for arbitrary length bit fields (N. Bareil <nbareil@mouarf.org>)
	* NTP protocol (N. Bareil <nbareil@mouarf.org>)

2004-02-22  Philippe Biondi  <phil@secdev.org>
	* scapy.py: added first sketch of a bootp daemon: bootpd()

2004-01-26  Philippe Biondi  <phil@secdev.org>  0.9.16beta
	* added more text for DNS codes

2004-01-15  Philippe Biondi  <phil@secdev.org>
	* fixed the case where IP field is a list of nets
	* randomize IPID in traceroute() to work better with conf.checkIPsrc=0
	* added make_tex_table() and make_lined_table()
	* added IPID_count() to identify machines with their IPID
	* added sport and dport args to fragleak()

2004-01-11  Philippe Biondi  <phil@secdev.org>
	* srploop() and srloop() improvements
	* srloop() and srploop() improvements
	* added srloop() and srploop() functions

2004-01-09  Philippe Biondi  <phil@secdev.org>
	* improved send() and sendp() with parameters loop and verbose
	* fixed ARP opcodes values
	* added RARP and IARP req/resp description in ARP operation Enum field

2003-12-19  Philippe Biondi  <phil@secdev.org>
	* added checkIPID and checkIPsrc options in conf to recognize IP in ICMP errors 
	  from broken IP stacks (see conf.__doc__)
	* changed default TCP source port to 20 (Muahahahah!)
	* tweaked TCP summary
	* changed default UDP source and destination ports to 53
	* created import_hexcap() to copy-paste an hexcap from tcpdump -xX, and get a string to 
	  feed IP() or ARP() or whatever
	* created make_table() to present results in a table from a list, and functions that 
	  map the list to x,y and z=f(x,y).

2003-10-30  Philippe Biondi  <phil@secdev.org>
	* little enhancements to the DNS packets
	* added dyndns_add() and dyndns_del() (rfc2136)
	* fixed a format string error (3 times)

2003-10-16  biondi  <biondi@deneb>
	* redesign summary() method
	* fixed Dot11 addresses fields

2003-10-15  biondi  <biondi@deneb>
	* caching format size (calcsize()) in Field main class
	* allow first packet desassembly to fail in SuperSockets, falling back to Raw
	* added error handling and magic checks for rdpcap()

2003-10-02  Phil  <pbi@rigel> 0.9.15beta
	* small fix for p0f_base
	* lazy loading for p0f, queso and nmap knowledge databases
	* added a LongField
	* added classes and bonds for 802.11
	* added error handling and magic checks for rdpcap()

2003-09-12  Phil  <pbi@rigel>
	* had Dot11 working
	* added summary() method to Packet objects
	* added SNAP protocol
	* catched broken pipe exception when shild die in sndrcv()
	* fixed default L2socket type in srp() and srp1() (ETH_P_ALL)
	* fixed format string in attach_filter()

2003-09-10  Phil  <pbi@rigel>
	* fixed the fact that bpf filters were generated in cooked mode, and thus did not work
	* filter on socket type ETH_P_ARP instead of using a bpf filter for ARP replies
	* fixed the way of handling the SuperSocket close.
	* uniformised the naming for interface parameter : iface instead of iff
	* fixed the FutureWarning for long integers
	* fixed a typo in 3 format strings (%*i instead of %i)

2003-07-20  Phil  <pbi@rigel>
	* added "-i any" for tcpdump to compile filters even if they don't work on main interface
	* put PPP special case before layer 2 general case in a super socket
	* added th filter parameter to L3RawSocket
	* added a special case in getmacbyip() when loopback interface is concernet
	* added value for RAWIP linktype in pcap capture files

2003-06-25  Philippe Biondi  <pbi@deneb.intranet.cartel-info.fr> 0.9.14beta
	* tried to avoid the "import scapy". completer does not work well anymore, 
	  and performance is the same
	* fixed a regression in L3PacketSocket for ppp links

2003-05-31  biondi  <biondi@deneb>
	* more tweaks on Packet.sprintf(). Added __doc__.
	* small tweaks in Packet.sprintf()

2003-05-16  Philippe Biondi  <pbi@deneb.intranet.cartel-info.fr> 0.9.13beta
	* fixed verbose parameter in nmap_fp()
	* small enhancements in self-documentation
	* added early experiemental support for BOOTP and 802.11
	* added workarround python bug 643005 (socket.inet_aton("255.255.255.255"))
	* use answers() method instead of operator
	* added hashret() method : returns a hash that is invariant for a packet and its reply
	* use hashret() in sndrcv() for dramatic improvements for matching replies on big set of packets
	* change report_ports() to return a string instead of printing
	* improved the __repr__() method of Packet class

2003-05-12  Philippe Biondi  <pbi@deneb.intranet.cartel-info.fr>
	* added minttl parameter to traceroute()

2003-05-06  Philippe Biondi  <pbi@deneb.intranet.cartel-info.fr>
	* Improved random number object (thanks to O. Poyen)
	* fixed a name overlap on "type" in L2ListenSocket and L3PacketSocket (thanks to E. M. Hopper)
	* externalized conversion from probes to signature with nmap_probes2sig() use probe results from, say, a pcap file

2003-04-27  Philippe Biondi  <pbi@deneb.intranet.cartel-info.fr> 0.9.12beta
	* Fixed long int conversion in attach_filter()
	* rectification in SetGen to unroll Gen instances in lists
	* Completed DNS types and qtypes names
	* Small tuning in nmap_match_one_sig()
	* Parallelized nmap_sig()

2003-04-24  Philippe Biondi  <pbi@deneb.intranet.cartel-info.fr>
	* removed 4 byte IP string autorecognition. Never used and broken for 4 byte names
	* added "islist" flag to fields to distinguish a list value from a list of values
	* changed TCP options from dict to list to preserve order and redundancy
	* added conf.except_filter, to have every command ignore your own traffic (BPF filter)
	* worked in progress for nmap OS fingerprint. Added PU test. Fixed other tests.
	* added nmap_sig2txt() to transform a signature to its text form, suitable for nmap base

2003-04-23  Philippe Biondi  <pbi@deneb.intranet.cartel-info.fr>
	* small fixes in init_queso()
	* experimental support of nmap fingerprinting (not complete yet)

2003-04-22  Philippe Biondi  <pbi@deneb.intranet.cartel-info.fr> 0.9.11beta
	* fixed bug in getmacbyip() using dnet module
	* deactivated getmacbyip() using dnet module because it did not resolve unknown IPs
	* added some commands listed by lsc()
	* some getattr/setattr/delattr enhancements
	* added experimental support for QueSO OS fingerprinting. Has someone a *recent* database ?

2003-04-18  Philippe Biondi  <pbi@deneb.intranet.cartel-info.fr>
	* improved the completer to complete with protocol fields
	* small fix in get_working_if()

2003-04-16  Philippe Biondi  <pbi@deneb.intranet.cartel-info.fr>
	* added option to choose to include padding or not
	* added L2dnetSocket()
	* improved arping()

2003-04-16  Philippe Biondi  <pbi@deneb.intranet.cartel-info.fr> 0.9.10.2beta
	* fixed the case when the history file does not exist
	
2003-04-14  Philippe Biondi  <pbi@deneb.intranet.cartel-info.fr> 0.9.10beta
	* added L3pcapListenSocket
	* fixed L3ListenSocket to use ETH_P_ALL instead of ETH_P_IP by default
	* reworked L3dnetSocket
	* added completion (rlcompleter) and history support
	* bugfixed the close() method of some supersockets

2003-04-13  biondi  <biondi@deneb>
	* added get_working_if()
	* use get_working_if() for default interface
	* add DNS layer (do not compress when assemble, answers() is missing)
	* added EnumField
	* used EnumField for ARP(), ICMP(), IP(), EAPOL(), EAP(),...

2003-04-11  Philippe Biondi  <pbi@deneb.intranet.cartel-info.fr>
	* better integration of libpcap and libdnet, if available
	* some tweaks about supersockets close() and __del__() (not satisfied)
	* added L3dnetSocket, that use libdnet and libpcap if available
	* fixed a regression in bitfield dissection
	* tweaked and fixed a lot of small things arround supersockets

2003-04-10  Philippe Biondi  <pbi@deneb.intranet.cartel-info.fr>
	* clean session only if it is to be saved
	* forgot to give its name to Padding class
	* fixed the NoPayload comparison tests so that they work on reloaded sessions
	* Prepared the configuration of L2/L3 supersockets

2003-04-08  Philippe Biondi  <pbi@deneb.intranet.cartel-info.fr>
	* little fix in L2ListenSocket.__del__()
	* added doc and options in Conf class
	* added promisc support for L3PacketSocket, so that you can get answers to spoofed packets
	* added extract_padding() method to UDP

2003-04-08  Philippe Biondi  <pbi@deneb.intranet.cartel-info.fr> 0.9.9beta
	* use cPickle instead of pickle (quicker and works with __getattr__() recursion)
	* small fixes on send() and sendp()
	* EAPOL overload Ether dst with PAE_GROUP_ADDR
	* tuning in ports_report()
	* tuning in fragleak

2003-04-08  Philippe Biondi  <pbi@deneb.intranet.cartel-info.fr> 0.9.9beta
	* use cPickle instead of pickle (quicker and works with __getattr__() recursion)
	* small fixes on send() and sendp()
	* EAPOL overload Ether dst with PAE_GROUP_ADDR
	* tuning in ports_report()
	* tuning in fragleak

2003-04-07  Philippe Biondi  <pbi@deneb.intranet.cartel-info.fr>
	* uses /usr/bin/env invocation
	* catch error during payload dissection and consider payload as raw data
	* srp() becomes srp1() and sr() equivalent for L2 is called srp()
	* hastype() Packet methods renamed to haslayer()
	* added getlayer() Packet method
	* added padding detection for layers that have a length field
	* added fragment() that fragment an IP packet
	* added report_ports() to scan a machine and output LaTeX report

2003-04-01  Philippe Biondi  <pbi@deneb.intranet.cartel-info.fr>
	* added FlagsField(), used for TCP and IP
	* rfc3514 compliance

2003-03-28  Philippe Biondi  <pbi@deneb.intranet.cartel-info.fr>
	* Added pkt2uptime() : uses TCP timestamp to predict when 
	  the machine was booted

2003-03-27  Philippe Biondi  <pbi@deneb.intranet.cartel-info.fr>
	* fixed sprintf() regression to use attributes from a packet that 
	  are not fields (eg: payload)

2003-03-27  Philippe Biondi  <biondi@cartel-securite.fr> 0.9.8beta
	* Release 0.9.8
	* add filter support for sr(), sr1() and srp()
	* use filters for getmacbyip() and traceroute() for better reliability under heavy load
	* better timeout management in sndrcv
	* bugfixed sys.exit() imbrication issues
	* some self documentation
	* added lsc()command

2003-03-26  Philippe Biondi  <biondi@cartel-securite.fr>
	* Added IPTool class, to add commands like whois() to IP layer.
	* Have unknown class attributes be asked to payload before raising an exception.
	* More powerful sprintf format string : %[fmt[r],][cls[:nb].]field% where fmt is a classic one, r can be
	  appended for raw substitution (ex: IP.flags=0x18 instead of SA), nb is the number of the layer we want
	  (ex: for IP/IP packets, IP:2.src is the src of the upper IP layer). 
	  Special case : "%.time" is the creation time.
	  Ex : p.sprintf("%.time% %-15s,IP.src% -> %-15s,IP.dst% %IP.chksum% %03xr,IP.proto% %r,TCP.flags%")
	* Added creation time packet. Supported by read/write pcap.
	* Added the NoPayload terminal class

	
2003-03-22  Philippe Biondi  <biondi@cartel-securite.fr> 0.9.7beta
	* bugfixed choice of interface in sniff parameter
	* bugfixed choice of interface in sniff parameter
	* bugfixed some inconsistencies for fields representation 
	* bugfixed TCPOptionsField default value
	* added conf.promisc 
	* added rdpacp() and wrpcap() to read and write pcap capture files

2003-03-19  Philippe Biondi  <biondi@cartel-securite.fr> 0.9.6beta
	* added the configuration engine
	* added a sprintf() method to Packet class
	* added bpf filter support
	
2003-03-18  Philippe Biondi  <biondi@cartel-securite.fr> 0.9.5beta
        * fixed IP answer() method for empty payloads
	* fixed some L2 recognition problems
	* fixed ARP stack behaviour for IPs not in neighbourhood
	
2003-03-15  Philippe Biondi  <biondi@cartel-securite.fr> 0.9.4beta
	* added p0f()
	* added promisc mode support
	
2003-03-14  Philippe Biondi  <biondi@cartel-securite.fr> 0.9.3beta
	* bugfixed the algo that choose the good interface for ARP requests
	* bugfixed sniff() to use ETH_P_ALL (promisc support still lacks)
	* fixed the case when the p0f signature file is not found
	* added the TCPFlagField
	* added the TCPOptionsField
	
2003-03-14  Philippe Biondi  <biondi@cartel-securite.fr> 0.9.2beta
	* bugfix: made the payload recursion in __iter__ be implicit
	* renamed and improved supersockets
	* added L2ListenSocket supersocket
	* added sniff()
	* added usage
	* added the display() method
	* ls() can take a packet class as argument and show fields, types and default values

2003-03-14  Philippe Biondi  <biondi@cartel-securite.fr> 0.9.1beta
	* Modified the ARP hwsrc field to automatically take the
	  interface MAC address by default. This corrects the fact
 	  that ARP requets done by the cache ARP poisonned our own IP!


2003-03-13  Philippe Biondi  <biondi@cartel-securite.fr> 0.9beta
	* Initial public release of v0.9beta
