2008-08-20  Hendrik Scholz  <hscholz@raisdorf.net>

	* Makefile:
	* Makefile.BSD:
	* test_headers.c (test_headers):
	* transport_udp.c (udp_send):

	- allow easier compilation on Linux by default
	  use Makefile.BSD for *BSD
	- fix NULL pointer error
	- fix bracket error preventing messages from being sent

2007-11-03  Hendrik Scholz  <hscholz@raisdorf.net>

	* config.h:
	* listener.c: (listener_start):
	* smap.c: (main):
	* transport_tcp.c: (tcp_setup_sender):
	* transport_udp.c: (udp_send):

	- bump version to 0.6.0
	- document functions
	- re-introduce TCP flags

2007-10-23  Hendrik Scholz  <hscholz@raisdorf.net>

	* fingerprint.db:
	* test_via.c:

	- new Samsung SMT-G32xx firmware fingerprint

2007-10-21  Hendrik Scholz  <hscholz@raisdorf.net>

	* stats.c: (stats_dump):

	- add SIP enabled percentage to stats

2007-10-20  Hendrik Scholz  <hscholz@raisdorf.net>

	* ack.c: (ack_o_matic):
	* listener.c: (listener_start):
	* smap.c: (main_sighandler), (main):

	- terminate smap on Ctrl-C again
	- do not raise NOTICE style warning when receiving out of context
	  responses

2007-10-14  Hendrik Scholz  <hscholz@raisdorf.net>

	* config.h:
	* fingerprint.c: (fingerprint_info):
	* listener.c: (listener_start):
	* prototypes.h:
	* scan.c: (scan_do):
	* sip.c: (sip_getcseqmethod):
	* state.c: (state_add), (state_lookup_by_callid),
	(state_lookup_task_by_callid):

	- add test type to callid state entry
	- (re)add response code for all tests to fingerprint
	- new sip_getcesqmethod() helper which might be used for better matching

2007-10-07  Hendrik Scholz  <hscholz@raisdorf.net>

	* smap.c:
	* tasks.c: (task_list), (task_get_by_id), (task_get_by_target),
	(task_list_append), (task_add), (task_destroy):
	* worker.c: (worker_start):

	- first commit in smap-ng branch
	- add tasklock mutex to task related actions
	- minor fixes

2007-05-24  Hendrik Scholz  <hscholz@raisdorf.net>

	* fingerprint.db:
	* test_accept.c:
	* test_allow.c:
	* test_headers.c:
	* test_supported.c:
	* test_via.c:

	- fingerprint update

2007-05-23  Hendrik Scholz  <hscholz@raisdorf.net>

	* fingerprint.db:
	* test_headers.c:
	* test_via.c:

	- add Asterisk SVN fingerprint
	- normalize debug output

2007-05-21  Hendrik Scholz  <hscholz@raisdorf.net>

	* smap.c: (targets):

	- actually use port supplied in IP:port tuple instead of default port

2007-05-15  Hendrik Scholz  <hscholz@raisdorf.net>

	* Makefile:
	* config.h:
	* fingerprint.c: (fingerprint_init), (fingerprint_info),
	(fingerprint_lookup), (fingerprint_loaddb):
	* fingerprint.db:
	* prototypes.h:
	* scan.c: (scan_host):
	* test_headers.c: (test_headers):
	* test_via.c:

	- add Via header checks (preliminary version)

2007-05-14  Hendrik Scholz	<hscholz@raisdorf.net>

	* Makefile:
	* ack.c: (ack_o_matic):
	* localip.c:
	* prototypes.h:
	* response.c: (response_reason):
	* smap.c:
	* transport_udp.c: (udp_test):

	- automatic ifaddrs.h detection on Linux
	- normalize response_reason() prototype
	- close() raw socket only if opened before

2007-05-14  Hendrik Scholz  <hscholz@raisdorf.net>

	* Makefile:
	* ack.c: (ack_o_matic):
	* config.h:
	* fingerprint.db:
	* prototypes.h:
	* randomizer.c: (randomizer):
	* request.c: (request_generate):
	* scan.c: (scan_host):
	* sip.c: (sip_getheaderp), (sip_getcseq):
	* smap.c: (usage), (targets):
	* transport_udp.c: (udp_test):

	- include ACK-o-matic by default (ACKs send for responses from UAS)
	- introduce random branches on requests
	- SIP protocol helpers to retrieve various headers and values
	- CLI can now handle IP:port tuples for easier invocation

2007-05-11  Hendrik Scholz  <hscholz@raisdorf.net>

	* config.h:

	- 0.5.0 release

2007-05-10 Hendrik Scholz <hscholz@raisdorf.net>

	* fingerprint.c: (fingerprint_info), (fingerprint_loaddb),
	(fingerprint_getvalue):
	* fingerprint.db:
	* test_accept.c: (test_accept):
	* test_allow.c:
	* test_headers.c: (test_headers):
	* test_supported.c: (test_supported):

	- enhance fingerprint output
	- add more fingerprints

2007-05-10  Hendrik Scholz <hscholz@raisdorf.net>

	* Makefile:
	* TODO:
	* config.h:
	* fingerprint.c: (fingerprint_init), (fingerprint_info),
	(fingerprint_lookup), (fingerprint_loaddb):
	* fingerprint.db:
	* prototypes.h:
	* request.c: (request_generate):
	* scan.c: (scan_host):
	* smap.c: (main):
	* stun.c: (stun_getip):
	* test_accept.c: (test_accept):
	* test_allow.c:
	* test_headers.c:

	- add Accept: header tests (Attn: still needs updated fingerprints)
	- bump version to 0.5.0-pre1
	- use new freenet STUN server IP address

2007-05-10  Hendrik Scholz  <hscholz@raisdorf.net>

	* ack.c: (ack_needed), (ack_send):
	* fingerprint.db:
	* prototypes.h:
	* scan.c: (scan_host):
	* test_headers.c:
	* transport_udp.c: (udp_test):

	- add fingerprints
	- add empty ACK framework
	- various small bits

2006-10-10  Hendrik Scholz  <hscholz@raisdorf.net>

	* config.h:
	* fingerprint.db:
	* stun.h:
	* transport_tls.c: (tcp_syn), (tls_test):

	- allow compilation on Linux

2006-09-12  Hendrik Scholz  <hscholz@raisdorf.net>

	* Makefile:
	* helpers.c:
	* localip.c:
	* prototypes.h:

	- fix compilation issues on current OpenBSD (tested on 4.0 CVS/amd64)
	  and FreeBSD (6.1-STABLE/i386)

2006-09-03  Hendrik Scholz  <hscholz@raisdorf.net>

	* config.h:
	* smap.c: (main):
	* stun.c: (stun_getip):
	* transport_tcp.c: (tcp_test):
	* transport_tls.c: (tcp_syn), (tls_test):
	* transport_udp.c: (udp_test):

	- prepare for TLS import
	- cleanup port 5060 vs. DEFAULT_SIP_PORT usage

2006-08-27  Hendrik Scholz  <hscholz@raisdorf.net>

	* Makefile:
	* README:
	* config.h:
	* localip.c:
	* prototypes.h:
	* scan.c: (scan_host):
	* smap.c: (usage), (main):
	* stun.c: (stun_build_request), (stun_getip):
	* stun.h:

	- bump to version 0.4.1
	- add stun.[ch] trivial STUN client for local IP determination
	- use STUN to obtain local IP by default
	- timeout CLI option is now -w (as in wait) instead of -t
	- added -u CLI option to enforce UDP transport
	- added -t CLI option to enforce TCP transport

2006-08-17  Hendrik Scholz  <hscholz@raisdorf.net>

	* config.h:
	* localip.c: (get_localip):

	- FreeBSD compile fix for localip

2006-08-13  Hendrik Scholz  <hscholz@raisdorf.net>

	* config.h:
	* fingerprint.db:
	* localip.c: (filter_localip), (get_localip):
	* prototypes.h:
	* request.c: (request_generate):
	* scan.c: (scan_host):
	* test_headers.c:
	* transport_tcp.c: (tcp_test):
	* transport_udp.c: (udp_test):

	- update kphone fingerprint
	- local IP detection further improved. This might eventually be
	  backed up by STUN
	- ignore local IPs from 127 and 224 prefixes for signaling
	- request.c: signaling now contains correct protocol

2006-08-08  Hendrik Scholz  <hscholz@raisdorf.net>

	* Makefile:
	* config.h:
	* localip.c: (get_localip):
	* smap.c: (main):

	- add an ioctl() based method to obtain local IP. Tested on Linux and
	  FreeBSD

2006-08-04  Hendrik Scholz  <hscholz@raisdorf.net>

	* Makefile:
	* TODO:
	* config.h:
	* helpers.c: (sighandler):
	* prototypes.h:
	* scan.c: (scan_host):
	* smap.c: (main):
	* transport_tcp.c: (tcp_test):
	* transport_udp.c: (udp_test):

	- move transport protocol dependent functions from scan.c
	  to transport_*.c
	- add SIGINT sighandler to return statistics before shutting down
	  use case: user presses Ctrl-C while smap is scanning a network

2006-08-04  Hendrik Scholz  <hscholz@raisdorf.net>

	* fingerprint.db:
	* localip.c: (get_localip):
	* smap.c: (main):

	- update Asterisk 1.2.7 fingerprint
	- add more checks to get_localip()
	- don't print usage when resolving hosts failed

2006-08-04  Hendrik Scholz  <hscholz@raisdorf.net>

	* fingerprint.db:
	* scan.c: (scan_dotest):
	* smap.c: (main):

	- add Asterisk 1.0.7 fingerprint by Michael Prokop
	- fix main program return codes (to be checked) as suggested by Michael
	- fix rawsocket usage for !root users (found by Michael)

2006-08-02  Hendrik Scholz  <hscholz@raisdorf.net>

	* TODO:
	* config.h:
	* fingerprint.c: (fingerprint_init), (fingerprint_info),
	(fingerprint_lookup), (fingerprint_loaddb):
	* randomizer.c: (randomizer):
	* request.c: (request_generate):
	* scan.c:

	- add SIP PING (fwmiller ping 03 draft) method
	- randomize CSeq within small boundries

2006-07-31  Hendrik Scholz  <hscholz@raisdorf.net>

	* scan.c: (scan_host):

	- set icmp to 0 in case of error so statistics are correct

2006-07-30  Hendrik Scholz  <hscholz@raisdorf.net>

	* fingerprint.c: (fingerprint_info):
	* fingerprint.db:
	* request.c: (request_generate):
	* test_allow.c:
	* test_headers.c:

	- fingerprint.db update. Retest of already known devices

2006-07-30  Hendrik Scholz  <hscholz@raisdorf.net>

	* stats.c: (stats_dump):

	- suppress ICMP statistics when ICMP tests didn't happen
	  (upon request of user or due to lack of root privileges)

2006-07-30  Hendrik Scholz  <hscholz@raisdorf.net>

	* Makefile:
	* README:
	* config.h:
	* fingerprint.c: (fingerprint_info), (fingerprint_lookup),
	(fingerprint_loaddb):
	* fingerprint.db:
	* message.c:
	* prototypes.h:
	* randomizer.c: (randomizer):
	* request.c: (request_generate):
	* response.c: (response_reason), (response_getcallid):
	* scan.c: (scan_dotest):
	* sip.c:
	* smap.c: (usage), (main):

	- bump version to 0.4.0
	- match Call-ID on resonses. This eats retransmissions from previous
	  tests which tend to hit us when we are reusing port 5060
	- move SIP request related stuff from message.c to request.c
	- more verbose fingerprint output when debug is on
	- added command line option -o for shorter fingerprinting output
	- update fingerprint.db: use ignore instead of NR where applicable


2006-07-17  Hendrik Scholz  <hscholz@raisdorf.net>

	* config.h:
	* helpers.c: (set_timeout):
	* icmpping.c: (icmpping):
	* prototypes.h:
	* scan.c: (scan_host), (scan_dotest):
	* smap.c: (main):

	- use setsockopt() for ICMP ping
	- reduce default verbosity for 'error' messages
	- set select() timeout using set_timeout() function

2006-07-17  Hendrik Scholz  <hscholz@raisdorf.net>

	* fingerprint.db:
	* smap.c: (usage):
	* test_allow.c:
	* test_headers.c:

	- remove -f command line option for now
	- add Siemens SX541 fingerprint

2006-07-15  Hendrik Scholz  <hscholz@raisdorf.net>

	* README:
	* RESULTS:
	* config.h:
	* fingerprint.db:
	* message.c: (message_generate):
	* scan.c: (scan_dotest):
	* test_allow.c:
	* test_headers.c:

	- 0.3.4 release
	- update README
	- add SJphone fingerprint
	- add brackets to SIP messages in message.c
	- try to obtain port 5060 locally to really catch all messages from
	  broken clients

2006-07-15  Hendrik Scholz  <hscholz@raisdorf.net>

	* fingerprint.db:
	* message.c: (message_generate):
	* test_allow.c:
	* test_headers.c:

	- add Twinkle fingerprint
	- add linphone fingerprint

2006-07-14  Hendrik Scholz  <hscholz@raisdorf.net>

	* RESULTS:
	* fingerprint.db:
	* test_allow.c:
	* test_headers.c:

	- add Snom 200 fingerprint

2006-07-11  Hendrik Scholz  <hscholz@raisdorf.net>

	* fingerprint.db:

	- add new FRITZ!Box fingerprint

2006-07-09  Hendrik Scholz  <hscholz@raisdorf.net>

	* RESULTS:
	* config.h:
	* fingerprint.c: (fingerprint_init), (fingerprint_info):
	* fingerprint.db:
	* message.c: (message_generate):
	* scan.c: (scan_host):
	* test_allow.c: (test_allow):
	* test_headers.c: (test_headers):
	* test_supported.c: (test_supported):

	- add new SIP_INVITE test
	- fingerprint.db update: 29 fingerprints total
	- minor debugging fixes in test_*.c

2006-07-05  Hendrik Scholz  <hscholz@raisdorf.net>

	* fingerprint.c: (fingerprint_lookup), (fingerprint_loaddb):
	* fingerprint.db:
	* scan.c: (scan_dotest):
	* test_allow.c:
	* test_headers.c:
	* test_supported.c: (test_supported):

	- look for fingerprint.db in multiple directories
		- /usr/local/share/smap
		- /usr/share/smap
		- current working directory
	- add two Cisco AS5400 fingerprints
	- update scan engine to work properly on Linux (local port stuff)
	- test_supported.c: check length when checking to select only
	  full matches

2006-07-05  Hendrik Scholz  <hscholz@raisdorf.net>

	* Makefile:
	* config.h:
	* helpers.c:
	* prototypes.h:
	* scan.c: (scan_dotest):

	- add helpers.c which as of now only contains our own implementation
	  of strnstr() taken from FreeBSD.
	  I had to take this step as Linux and OpenBSD don't have strnstr()
	- allow compilation on Linux


2006-07-05  Hendrik Scholz  <hscholz@raisdorf.net>

	* TODO:
	* prototypes.h:
	* smap.c: (main):

	- update TODO
	- use randomizer_init() instead of plain srandom()

2006-07-05  Hendrik Scholz  <hscholz@raisdorf.net>

	* config.h:
	* fingerprint.db:
	* scan.c: (scan_host), (scan_dotest):
	* smap.c: (main):
	* test_headers.c: (test_headers):

	- bugfix: don't try ICMP ping or rawsocket stuff if geteuid() != 0
	- bugfix: update Asterisk PBX fingerprint
	- bugfix: prevent crash if raw socket couldn't be obtained

2006-07-05  Hendrik Scholz  <hscholz@raisdorf.net>

	* Makefile:
	* TODO:
	* config.h:
	* fingerprint.c: (fingerprint_init), (fingerprint_info),
	(fingerprint_lookup), (fingerprint_loaddb):
	* fingerprint.db:
	* message.c: (message_generate):
	* prototypes.h:
	* scan.c: (scan_host):
	* test_allow.c: (test_allow):
	* test_headers.c: (test_headers):
	* test_supported.c: (test_supported):

	- bump SMAP_VERSION to 0.3.3
	- add SIP_PRACK test
	- add header order/existance test (test_headers.c)
	- add SIP_TMP as scratchpad for new test development (to be removed
	  some time soonish)

2006-07-05  Hendrik Scholz  <hscholz@raisdorf.net>

	* Makefile:
	* config.h:
	* fingerprint.c: (fingerprint_init), (fingerprint_info),
	(fingerprint_lookup), (fingerprint_loaddb), (fingerprint_dumpdb):
	* fingerprint.db:
	* prototypes.h:
	* scan.c: (scan_host):
	* sip.c: (sip_getheader):
	* test_supported.c: (test_supported):

	- add preliminary support to fingerprint Supported headers
	  we still have to find a useful SIP request that triggers
	  a response including Supported
	- scan.c: stdout output is written in one line allowing easier
	  integration of debug output
	- sip.c: terminate headers found in sip_getheader() with \0

2006-07-05  Hendrik Scholz  <hscholz@raisdorf.net>

	* fingerprint.db:
	* smap.c: (main):
	* test_allow.c:

	- enable fingerprinting when in learning mode
	- add Gizmo Project softclient to fingerprint.db/Allow header list

2006-07-04  Hendrik Scholz  <hscholz@raisdorf.net>

	* RESULTS:
	* TODO:
	* config.h:
	* fingerprint.c: (fingerprint_init), (fingerprint_info),
	(fingerprint_headers), (fingerprint_lookup), (fingerprint_loaddb),
	(fingerprint_free), (fingerprint_destroydb),
	(fingerprint_getvalue):
	* fingerprint.db:
	* prototypes.h:
	* scan.c: (scan_host), (scan_dotest):
	* sip.c: (sip_getheader):
	* smap.c: (usage), (main):
	* test_allow.c: (test_allow):

	- add more TODOs and RESULTSs
	- introduce fingerprint learning mode (-l)
	- eventually compare fingerprints against database
	- store User-Agent and Server headers for debug/final output
	- add many more fingerprints (we are now at 18)
	- clean up sip.c (more work to do)
	- add more Allow headers to test_allow.c

2006-07-03  Hendrik Scholz  <hscholz@raisdorf.net>

	* error.c: (error):
	* icmpping.c: (icmp_message_str), (icmpping):
	* prototypes.h:
	* scan.c: (scan_dotest):

	- error.c: flush stdout and stderr
	- icmpping.c: add ICMP message string mapping function
	- add interpretation of ICMP error messages while scanning in scan_dotest()

2006-07-02  Hendrik Scholz  <hscholz@raisdorf.net>

	* Makefile:
	* fingerprint.db:
	* scan.c: (scan_dotest):

	- fix compilation with raw sockets turned off
	- enable raw sockets by default
	- add some more fingerprints to database

2006-07-02  Hendrik Scholz  <hscholz@raisdorf.net>

	* Makefile:
	* config.h:
	* fingerprint.db:
	* icmpping.c: (icmpping):
	* message.c: (message_generate):
	* prototypes.h:
	* scan.c: (scan_dotest):
	* smap.c: (main):

	- add localip.c, a helper to obtain the local IP address for SIP
	  signalling, i.e. in Via headers
	- add optional -DRAW_SOCKET CFLAG to Makefile
	- new fingerprint: Cisco 79x0
	- add trailing CRLF to all SIP messages
	- use IP address in SIP messages instead of domain where possible
	- message.c: remove old SIP_* messages
	- scan.c: some remodeling has been done
	  We now open three sockets to capture every single SIP message
	  and ICMP packet possible.
	  Cisco 79x0 phones made this a moral imperative due to changed
	  source ports on outbound messages.
	- add support for optional raw sockets in for scan_host()

2006-07-02  Hendrik Scholz  <hscholz@raisdorf.net>

	* Makefile:
	* config.h:
	* error.c: (error):
	* fingerprint.c: (fingerprint_init), (fingerprint_info),
	(fingerprint_loaddb), (fingerprint_dumpdb):
	* fingerprint.db:
	* prototypes.h:
	* response.c:
	* scan.c: (scan_host), (scan_dotest):
	* smap.c: (main):
	* test_allow.c:

	- reorder source files in Makefile, remove smap.o from smap target
	- add stddef.h to config.h (needed for offsetof())
	- bump SMAP_VERSION to 0.3.2
	- update fingerprint.db
	- reorder prototypes.h (High-Fidelity goes source code ;)
	- scan_host() now accumulates fingerprint information in fp structure
	- test_allow() can differ between different AVM FBF versions

2006-07-02  Hendrik Scholz  <hscholz@raisdorf.net>

	* TODO:
	* config.h:
	* fingerprint.c: (fingerprint_init), (fingerprint_info),
	(fingerprint_lookup), (fingerprint_loaddb), (fingerprint_dumpdb),
	(fingerprint_destroydb), (fingerprint_getvalue):
	* prototypes.h:
	* scan.c: (scan_host), (scan_dotest):
	* smap.c: (main):
	* test_allow.c:

	- add fingerprinting database implementation and small sample database
	- revamp scan_host() to allow multiple checks per host
	- Attn: scan_host() does not update the stats properly
	- add kphone to Allow-Header list

2006-07-01  Hendrik Scholz  <hscholz@raisdorf.net>

	* config.h:
	* fingerprint.c: (fingerprint_init), (fingerprint_info):
	* icmpping.c: (icmpping):
	* scan.c: (scan_host):
	* sip.c: (sip_parse):
	* test_allow.c: (test_allow):

	- straighten fingerprint output to not interfere with debug output

2006-07-01  Hendrik Scholz  <hscholz@raisdorf.net>

	* Makefile:
	* README:
	* config.h:
	* fingerprint.c: (fingerprint_init), (fingerprint_info),
	(fingerprint_lookup):
	* message.c: (message_generate):
	* prototypes.h:
	* randomizer.c: (randomizer_init), (randomizer):
	* response.c: (response_reason):
	* scan.c: (scan_host):
	* sip.c:
	* smap.c: (targets):
	* stats.c: (stats_init), (stats_dump):
	* test_allow.c: (test_allow):

	- add PRNG function in randomizer.c
	- add HAVE_RANDOM switch to Makefile (better than rand() on *BSD)
	- add Allow header analyzer
	- add fingerprinting framework
	- add Reason code parser to response.c

2006-07-01  Hendrik Scholz  <hscholz@raisdorf.net>

	* TODO:
	* scan.c: (scan_host):

	- fix small bug in visuals

2006-07-01  Hendrik Scholz  <hscholz@raisdorf.net>

	* Makefile:
	* config.h:
	* icmpping.c: (icmp_in_cksum), (icmpping):
	* prototypes.h:
	* scan.c: (scan_host):
	* smap.c: (usage), (main):

	- add ICMP ping check before doing fingerprinting
	  much like nmap (-P0 option)
	- bump SMAP_VERSION to 0.3.1
	- create config.flags infrastructure for future extensions

2006-06-25  Hendrik Scholz  <hscholz@raisdorf.net>

	* sip.c: (sip_generate):

	- replace freenet.de with -d command line option

2006-06-17  Hendrik Scholz  <hscholz@raisdorf.net>

	* .cvsignore:
	* TODO:
	* config.h:
	* scan.c: (scan_host):
	* sip.c: (sip_generate):
	* smap.c: (usage), (main):

	- introduce -f cli switch to scan hosts with a custom SIP request from
	  a local file
	- scan.c: cleanup debugging code
	- sip.c: add SIP CANCEL and BYE request templates

2006-03-27  Hendrik Scholz  <hscholz@raisdorf.net>

	* README:
	* config.h:
	* sip.c: (sip_generate), (sip_printheader):
	* smap.c: (usage), (main):

	- add README
	- minor cosmetic changes
	- allow warning-less compilation on OpenBSD

2006-03-27  Hendrik Scholz  <hscholz@raisdorf.net>

	* Makefile:
	* TODO:
	* config.h:
	* prototypes.h:
	* scan.c: (scan_host):
	* sip.c: (sip_generate), (sip_parse), (sip_printheader):
	* smap.c: (usage), (targets), (main):
	* stats.c: (stats_init), (stats_dump):

	- initial import

