modified files:
--------------
Added four new files in newly created proxy directory.
LSL Support for new application is added in lslproto.h
Analysing of IP_PACKET is done in iprx.c
Functions are added in tcputil.c udprx.c and wanconf.c

iprx.c
iptx.c
tcputl.c
udprx.c
wanconf.c
lslproto.h
vnvram.h


Sachin, 23rd Dec, 1997
        Made changes to reset the idle timer of even the control connection
descriptor if there is data on the data connection.

Sachin, 09/01/1998
------------------
        FTP to not always use the same port if it is the same workstation.
But control and data connections are made sure to use the WAN port.
        While reading the applications, just set the same_port_required
        field to FALSE for FTP.
. Introduced Load balancing thru' a symbol in KPPP.H
. The number_of_connections field, that was being neglected is taken care of now.
. The policy on whether to use the dial-triggered port or some active port
  is decided based on the application. In case of WEB, while we trigger the
  dialing of a fresh port, we use an existing active port. In case of FTP,
  we go ahead and use the dial-triggered port.


TODO List :
----------
        Places where you have NUMBER_OF_PROXY_PORTS, change it to
some nvram variable that gives the number of wan ports.

Jo : fixes for Link control, initial need to dial out and passive ftp
----------------------------------------------------------------------
* c:\rtrware\applicat\proxy\pr_timer.c in process_total_number_of
_hosts_and_trigger , do_not_allocate_this_port check has been introduced.
This is for link control problem.

* In proxyrb.c ( proxy_RB_demo_search function, if Tree == NULL condition
  has not been checked due to which proxy used to crash if proxy application
  entries are zero ).

* Initial need to dial out:
---------------------------
** Initial need to dial out set to false & if demand given to trigger for 
the first time to dial is other than icmp.(ping)
*** Changes in proxy.c in get_least_loaded_port.Check for is_triggering_is_needed
is introduced there.

* Link control problem : 
------------------------
** Based on configured number of connections & hosts, when to bring up port
2 & 3 of wan & when not to bring them & thru which port, the connections
should go thru, if any demand comes from the client.
*** changes in proxy.c,
					pr_init.c,
					pr_util.c,
					pr_timer.c,
					linkctrb.c files.
*** Link control based on connections -> For icmp requests, no. of 
    connections are not incremented & while bringing the port down also, 
    not decrementing the connections if protocol is ICMP.
*** Link control based on hosts -> resetting the link control timer 
    for each & every packet so that if no packet is being detected on
    the particular client continuously for say some 3 minutes ( max link
    ctrl time) then no. of hosts can be decremented.
*** While bringing down the port ( ppp_port_down_by_no_demand, ip_port_down)
    deleting the connections & hosts going thru that particular port.          

If pasv ftp, ctrl connection not being associated with data connection &
so if the file transfer goes beyond the idle timeout time, ctrl connection
descriptor will be deleted & so after the file transfer is completed, it
searches for the ctrl conn descriptor, to close that file transfer & it
fails.

Fix : Now, even for pasv ftp, ctrl connection is being associated with the
corresponding data connection & so whenever any packet comes in that
data connection, both ctrl conn as well as data conn, idle_timer has
been re-initialized.

Modified files : proxy.c, proxyrb1.c, pr_util.c, pr_timer.c,
					  kproxy.h, vproxstr.h, proip.h
 
Proxy.c
-------
1. In get_free_proxy_server_info_ptr, destination_port has been added to each
   & every new ptr_proxy_info.
2. For each & every new ptr_proxy_info, proxy_rb_pasv_ftp_ctrl_client_descriptor
   _search function is being called.It's prototype is also being declared in 
	this file.
3. In process_proxy_response_packet, while calling, add_passive_port_to_
   application, its return type is changed from void to USHORT & the same
	pasv_port has been updated in ptr_proxy_info_ptr.

Proxyrb1.c
----------
1. proxy_rb_pasv_ftp_ctrl_client_descriptor_search function has been introduced,
   in which if the client_ip_address, destination_address & the dest_port of
   the new descriptor matching with already existing descriptor's 
	client_ip_addr, destination_address & pasv_port, then that matching 
   descriptor is nothing but the ftp_command_descriptor for this data_descriptor
	& so association has to be made for both for its command & data descriptor,
	resp.

vproxstr.h
----------
In proxy_server_info struct var, one USHORT pasv_port has been introduced newly.

pr_util.c
---------
The function add_passive_port_to_application_list return type has been modified
from void to USHORT.The same change has been done in proip.h file.
																	  -------
In pptp.c, in check_for_pptp_client_packet_and_process & also in check_for
_pptp_server_packet_and_process, while getting destination & source port of
the packet rxed, by calling the function, get_tcp_port_number_from_ip_packet,
source port has to be passed as pass_by reference & not as pass_by_value.

Jo 15/03/99 : Fix is done for the same above bug in pptp.c as well as in 
	      check_for_pptp_server_packet_and_process, the checking condition 
	      of "if ( source_port != PPTP_APPLICATION_PORT ), return;" has 
	      been introduced correctly.

Jo 20/04/99 : commented out anything related to PROXY_RB_STATISTICS during memory optimization
	      using #if PROXY_RB_STATISTICS
	      Changed files linkctrb.c, proxyrb.c, proxyrb1.c, proxyrb2.c

Jo 08/06/99 : Added new ports for VOIP
	      Changed files proxy.c, proxy.h

Jo 09/08/99 : Added for Static routes Feature
	      Changed files pr_util.c, proip.h, proxy.c	
				      
Jo 23/09/99 : Added for configurable FTP control and Data ports. FTP ports can be configured 
	      instead of always using ports 20 amd 21.
	      Changed files pr_init.c, proxy.c, pr_util.c, vproxstr.h	

Jo 23/09/99 : Added to fix Initial Need To Dial Out problem when port type is Proxy/RAS
	      Changed files pr_timer.c, pr_util.c, proxy.c

Jo 23/09/99 : proxy.c Fix 
	      1. Last allocated port has to be assigned only for Internet 
	         ports and not for Intranet ports

	      2. To prevent NAT with 0.0.0.0 or 0.0.0.1 or 0.0.0.2
	         or 0.0.0.3 as destination addr as these addresses are for our 
	         internal use to replace with wan interface addr dynamically & not 
	         for the usage of internet clients. 
		 Added function get_static_or_dynamic_mapped_local_address_from_interface_address ()
		 to support 0.0.0.1/2/3 addresses internally and to 
		 be replaced later by WAN interface address.

-----------------------------------------------------------------------------
          Name of Engineer : Jyothi
                      Date : 02 Dec 1999
            Files modified : kproxy.h, vproxstr.h, pr_init.c, pr_util.c, pr_timer.c
Problem/change description : If for some reason, a specific domain name filter
			     is not resolved for the first time, we were not
			     trying it repeatedly. Fix - We will try to resolve 
			     all the unresolved domain name filters for specific 
			     number of times. Right now, it is 20 times.		

-----------------------------------------------------------------------------

