/* 3/6/2024 */

DONE   * Upgrade PCAP code to use non-deprecated function, available on the newer versions of PCAP
DONE       * Allow port file override via commmand line option       
  
/* 9/1/2023 */

       * PING'ing localhost doesn't work (because ethernet sniffed by default instead of loopback)
DONE   * Allow port ranges in ports file, not just one port, and have scanner check for duplicates
       * STDIN and file list functionality working with fork() only, without fork prescanic errors with too many files open
       * Use /etc/services to for a description of successful connection on port
/* 4.21.2013 */

	* SCAN PORTS 1-1000

/* 1.31.2011 */
	* FIX dns_talk crashing, it's been disabled for now.
	* Add more ports/protocols
DONE	* Config file for database name, user, and password info

/* 11.22.99: FEATURE FREEZE */

The TODO is no longer valid until I do some cleaning. 
The code and functions will be renamed/rewritten for more modular
stuff.

DONE	* Anonymous login's via ftp protocol. /* DIRECTORY LISTING? */
DONE	* use the SYST command for operating system detection.
	* Config file support.
DONE	* Command line argument parsing. optarg().
DONE	* multiple host scanning, with fork capability. (ip file, stdin)
DONE	* OS detection
    * Add TCP Options to the packets sent out for OS detection
DONE    * Ping reply's
	* MORE PROTOCOLS(!)
	* make more use of tcp_current.time int for talking to protocols.
DONE	* output to file, or stdout, an option?
DONE	* make sure 'connection closed by peer' is detected, so we can see tcpwrappers 
DONE	* i_readline just isn't efficient.  too many syscalls (read()). either fix i_readline, or dont use it.
DONE	* quick glance: old_state should be part of a tcp struct, or else its pointless
DONE	* add a millisecond (100ms?) timeout to select() to save on CPU usage.
DONE	* a i_getlocalip(char *device) call?
DONE	* move libinet to a simple net.c file full of useful functions.
DONE	* re-do soon-to-be net.c functions so that they use libnet
DONE	* make sure successful connections are reported, even if no data is found.
DONE	* get_device_ip() needs error checking
DONE	* in many places, inet_ntoa and inet_addr are called when not truely needed, a standard way of maintaining ip's is needed. Make it so: u_long ip's are stored, and whenever an IP needs printed or saved, call inet_addr.
DONE	* output.c should just use a generic fprintf method that writes to an open fd, or just to stdout, or both. (ie, dont use printf)
DONE	* dont need victim->tcp_previous (YES YOU DO, HEH)
    * end the scan when all data is collected (instead of just timing out)
    * detect BO (+ Bo2k?)
DONE    * timestamp the scans
    * antisniff work arounds?
DONE    * WEIRD ASS BUG in forward_lookup() of net.c, try and find a proper fix. 
DONE    * a function that goes through every 'char *' in victim and free()'s
	it after we're done with victim.  then free() victim. (only needed
	for multiple host scanning with 1 process.)
DONE    * get del_victim() to free tcp_* shit correctly 
    * trouble getting telnet banner from nebula.diginix.net
DONE    * add a loop to send_raw_packet of net.c so that packets may be 
	sent more than once, if specified in the arguments.
DONE    * when i only use 1 port (chaging [1]=0) in net.c, it seg faults. why?
    * alright, use memcpy or bcopy, PICK ONE AND STICK WITH IT!
    * use del_tcp() to free() everything in victim and then free(victim)
DONE    * since a non-root user wouldn't beable to send ping packets or 
	do OS checking, put NA instead of UNKNOWN, that way we know
	that user wuz unable to check on that host 
DONE    * SYN stuff, ez cheezy
    * Function name standardization
    * in sock_status(), put the MSG_PEEK stuff even before the select()
	shit.
DONE    * change int to char where possible, to save on memory consumption.
DONE    * Stealth mode shouldn't do reverse IP look ups either
    * DNS integration!
PROTOCOLS TO COME: smb(139),dns(53),tftp(69),sunrpc(111),auth(113),irc,mount?  

