2004-03-11  Balazs Scheidler  <bazsi@bzorp.balabit>

	* ftp.c (ftp_data_{client|server}_accepted): check if the client
	is already connected and indicate our non-interest in the
	connection,
	(ftp_data_reset): protect z_sockaddr_unref with self->lock as it
	causes a race condition (2.1 backport, fixes #3216)

2004-02-23  SZALAY Attila  <sasa@balabit.hu>

	* ftp.c (ftp_data_client_accepted): - || -
        (ftp_data_server_accepted): destroy connection data inside
	lock. Bug: #3027

2003-10-28  Szalay Attila  <sasa@mochrul.balabit>

	* ftpcmd.c (ftp_command_parse_PASS): Accept PASS command in
	conversation state.

2003-09-29  Szalay Attila  <sasa@mochrul.balabit>

	* ftp.c (ftp_data_start_proxy): check if self->command_desc is NULL

	* ftp.c (ftp_data_start_proxy): Bugfix. Unlock Thread lock when
	error occured.

2003-09-16  Szalay Attila  <sasa@mochrul.balabit>

	* ftp.c (ftp_proxy_free): Backported bugfix. Unref server and
	client side local socket address.

2003-09-04  Szalay Attila  <sasa@mochrul.balabit>

	* Ftp.py: Bugfix. Call AbstractFtpProxy functions, not derived
	classes's.

2003-08-18  Szalay Attila  <sasa@mochrul.balabit>

	* ftp.c: Fix various memleaks.

2003-07-29  Szalay Attila  <sasa@mochrul.balabit>

	* ftpcmd.c: use sizeof instead of hardwired buffer sizes

	* ftpcmd.c: Bugfix. Lock Python interpreter before getting Python
	variable.

2003-06-30  Szalay Attila  <sasa@mochrul.balabit>

	* ftp.c (ftp_config_set_defaults): Bugfix. Set data_port_max instead of double set data_port_min.

2003-06-13  Szalay Attila  <sasa@mochrul.balabit>

	* ftpcmd.c (ftp_command_parse_EPRT): Move string vector freeing after the last using of them.

2003-04-29  Szalay Attila  <sasa@mochrul.balabit>

	* ftpcmd.c (ftp_command_parse_noarg): Accept argumentless commands (i.e : PWD) after PORT or PASV command.

2003-02-10  Szalay Attila  <sasa@balabit.hu>

	* ftp.c (ftp_data_server_accepted): Bugfix. Check if accept is
	success.

2002-11-22  Balazs Scheidler  <bazsi@balabit.balabit>

	* ftp.c: changed connect timeout from 60 seconds to -1, thus the
	poll timeout will be effective (defaults to 5 minutes)

	* ftp.c: instead of using a private requestStack() callback to
	push the data proxy, use Proxy.stackProxy, and fetch
	self.data_proxy directly, fixed two memory leaks (the python
	streams were not unrefed after passing to Python)

	* Ftp.py: removed requestStack() function, removed
	stopDataConnection function, renamed session.stop to
	session.ftp_data_stop, and initialized this value in __startup__,
	this session variable is removed in __destroy__ to avoid circular
	references

2002-11-15  Szalay Attila  <sasa@balabit.hu>

	* Changes in testcases.txt reflect to proxy changes.

	* ftpcmd.c (ftp_command_answer_PORT): Bugfix. Accept 5XX answers.

2002-11-14  Balazs Scheidler  <bazsi@balabit.balabit>

	* ftp.c (ftp_connect_server_event): return gboolean instead of
	void,
	(ftp_server_stream_init): return gboolean instead of void,
	(ftp_client_stream_init): return gboolean instead of void all
	three functions above return FALSE to indicate failure, this is
	handled by all invocations, and the connection is terminated
	accordingly

2002-11-13  Balazs Scheidler  <bazsi@balabit.balabit>

	* Ftp.py: added rejected OPTS command to default policy

2002-11-11  Balazs Scheidler  <bazsi@balabit.balabit>

	* ftp.c: adapted to the new z_proxy_get_addresses

2002-11-06  Balazs Scheidler  <bazsi@balabit.balabit>

	* ftp.c: adapted to changed z_proxy_get_addresses implementation

2002-10-31  Szalay Attila  <sasa@balabit.hu>

	* ftp.c: Bugfix. Passive ftp work correctly.

2002-10-21  Balazs Scheidler  <bazsi@balabit.balabit>

	* ftp.c (ftp_connect_server_event): instead of private hacking to
	get client & server ip address, use z_proxy_get_addresses

	* Ftp.py: bounceCheck() removed from docstring, and created a real
	bounceCheck() function, which strictly checks FTP bounce

	* ftp.c: changed z_stream_set_callback invocations to include a
	destroy_notify argument

2002-09-18  Szalay Attila  <sasa@balabit.hu>

	* Some changes needed by new accept and connect.

2002-08-28  Balazs Scheidler  <bazsi@balabit.balabit>

	* Ftp.py: removed type argument from FtpProxy.__init__

2002-08-27  Balazs Scheidler  <bazsi@balabit.balabit>

	* ftp.c: changed ZR_SPROXY to ZR_PROXY

2002-08-26  Balazs Scheidler  <bazsi@balabit.balabit>

	* ftp.c: changed Z_TYPE_METHOD invocation to supply proxy instance
	as argument

2002-07-18  Szalay Attila  <sasa@balabit.hu>

	* Handle EPSV and EPRT command. It's till doesn't handle all
	variant, but basically work.

2002-06-27  Szalay Attila  <sasa@balabit.hu>

	* ftpcmd.c (ftp_command_answer_path): Set ftp_state back to
	Conversation mode if data connection is ended. Close: #700

2002-06-26  Balazs Scheidler  <bazsi@balabit.balabit>

	* ftp.c: changed z_stream_set_way to z_stream_set_cond

2002-06-17  Szalay Attila  <sasa@balabit.hu>

	* Bugfix. Change data_state inside the lock.

2002-06-13  Szalay Attila  <sasa@balabit.hu>

	* ftp.c (ftp_data_next_step): Set FTP_CLIENT_CONNECT_START when
	client connection is started. Close: #667

2002-06-10  Balazs Scheidler  <bazsi@balabit.balabit>

	* Ftp.py: use client_dest.ip instead of client_local.ip

2002-06-07  Szalay Attila  <sasa@balabit.hu>

	* ftp.c (ftp_command_parse): Bugfix. Log if connection aborted
	due to a unknown command. Close: #657

2002-05-02  Szalay Attila  <sasa@balabit.hu>

	* Bugfix: Write "timed out" message when conenction timed out.

2002-04-24  Szalay Attila  <sasa@balabit.hu>

	* New accepted command ACCT

	* Finish eliminating poll creates and destroyes.

2002-04-23  Szalay Attila  <sasa@balabit.hu>

	* Start to eliminate poll creates and destroys.

2001-10-08  Szalay Attila  <sasa@balabit.hu>

	* ftp.c (ftp_listen_both_side): Use timout in poll.

2001-09-06  Szalay Attila  <sasa@balabit.hu>

	* ftp.c: Kill a few memory leak.

2001-08-06  Szalay Attila  <sasa@balabit.hu>

	* ftp.c (ftp_stream_client_init): Drop the connection, when input
	line is too long.

2001-08-03  Szalay Attila  <sasa@balabit.hu>

	* ftpolicy.c (ftp_policy_answer_hash_do): Bugfix. Answer is not
	mandatory when reject.

	* Few bug fixed. (STRU command, 421 answer, etc.)

2001-07-24  Szalay Attila  <sasa@balabit.hu>

	* Add testcases.txt

2001-07-17  Szalay Attila  <sasa@balabit.hu>

	* ftpcmd.c (ftp_command_answer_PASV): Bugfix. request_param ->
	answer_param

	* ftp.c (ftp_command_write_setup): Bugfix. Now handle correctly
	when command have not parameters.

2001-06-28  Szalay Attila  <sasa@balabit.hu>

	* Now use DimHash for answer.

	* Change constan names, to be policy comforn.

2001-05-30  Szalay Attila  <sasa@balabit.hu>

	* ftp.c (ftp_command_process): Put error answer setting before
	ftp_policy_command_hash_do

2001-05-28  Szalay Attila  <sasa@balabit.hu>

	* Rename some policy constans.

2001-05-15  Szalay Attila  <sasa@balabit.hu>

	* ftpcmd.c (ftp_command_parse_string): Enable some command in
	FTP_STATE_DATA state.

2001-04-27  Szalay Attila  <sasa@balabit.hu>

	* ftp.c (ftp_proto_nt_client_to_proxy): New parameter in
	non-transparent mode. Now possible to connect other than port 21.

	* Bugfix: Doesn't drop connection if a RETR can't start.

2001-04-18  Balazs Scheidler  <bazsi@balabit.hu>

	* *.c: added trace messages, fixed some code formatting inconsitencies

2001-04-17  Balazs Scheidler  <bazsi@balabit.hu>

	* ftp.c (ftp_data_wakeup): increment refcounter of Py_None when
	returning it (caused a hard to trace SIGSEGV)

	* Ftp.py: added type argument to data_proxy creation

2001-04-10  Szalay Attila  <sasa@balabit.hu>

	* ftp.c (zorp_module_init): Change proxy type to ZR_SPROXY.

2001-04-04  Balazs Scheidler  <bazsi@balabit.hu>

	* configure.in: bumped version number to 1.0.0

2001-03-21  Szalay Attila  <sasa@balabit.hu>

	* Ftp.py (FtpProxy.loadAnswers): Put answers 213, 550 for SIZE and MDTM

2001-03-05  Balazs Scheidler  <bazsi@balabit.hu>

	* Ftp.py: import os for os.close() used in bounce attack check

2001-02-19  Balazs Scheidler  <bazsi@balabit.hu>

	* Ftp.py: call self.session.stop() from __destroy__() instead of
	shutdown()

2001-01-29  Balazs Scheidler  <bazsi@balabit.hu>

	* ftp.c: removed some log messages

	* Ftp.py: merged FtpDataConnect into FtpProxy to avoid a circular
	reference,
	use __destroy__ to call resetData to close pending data connections

	* Ftp.py (FtpDataConnect.__init__): removed unused session parameter,
	removed unused self.localsa attribute initialization

2001-01-25  Szalay Attila  <sasa@balabit.hu>

	* configure.in: Bugfix. Zorp now compile when not installed before.

	* ftp.c (ftp_listen_both_side): Bugfix. If error occured, and poll not
	exists when we call 'em, doesn't go endless loop.

	* New ChangeLog for ftp.