2004-04-01  Balazs Scheidler  <bazsi@bzorp.balabit>

         * http.c (http_fetch_response): assume server version is HTTP/0.9
	when the request was HTTP/0.9 (fixes #3321)

2003-10-17  Balazs Scheidler  <bazsi@bzorp.balabit>

	* http.c: HTTP/1.0 was erroneously accepting proxy requests even
	if it was not permitted

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

	* httphdr.c: Doesn't allow infine number of bad headers.

	* http.c: Doesn't allow infinte empty lines.

	* http.c: Doesn't use %c format string in strftime, because of an
	ugly warning.

2003-07-07  Balazs Scheidler  <bazsi@balabit.balabit>

	* http.c (http_handle_connect): fixed race between the proxy
	writing the '200 Connection established' and the already started
	plug proxy

2003-07-02  Balazs Scheidler  <bazsi@balabit.balabit>

	 * http.c (http_proess_response): assume connection-close when 1.0
        request was received and the response does not include a
        connection header (fixes: #1490)

2003-04-30  Balazs Scheidler  <bazsi@balabit.balabit>

	* http.c: escape HTML special characters in error messages (to
	avoid XSS)

2003-04-29  Balazs Scheidler  <bazsi@balabit.balabit>

	* http.c: added a set of error messages (it was sometimes not
	clear why a given HTTP response was rejected)

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

	* http.h: Set buffer size to 64K.

2003-01-02  Balazs Scheidler  <bazsi@balabit.balabit>

	* httphdr.c (http_destroy_headers): new function,
	http.c: correctly free headers between kept alive requests

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

	* http.c: added inband authentication (fixes bugzilla id: 192)

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

	* http.c, httpfltr.c, httpmisc.c, httphdr.c: updated messages to
	conform to the latest logging spec

	* http.c: Z_VAR_TYPE_CUSTOM expects a free pointer as well (core
	change)

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

	* Http.py: added a section to the docstring on different request
	types (proxy and server)

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

	* Http.py: documented error_files_directory

	* http.c: implemented error_files_directory attribute, which
	points to the directory containing error file templates

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

	* Http.py: fixed python docstrings for the following attributes:
	request, request_header, response, response_header, error_status

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

	* http.c: fixed access permissions for the following registered
	attributes: default_port, max_keepalive_requests, max_body_length,
	max_chunk_length, timeout

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

	* httpmisc.c: check URL consistency even if request_url_* is not
	referenced from policy (try to split to parts, and fail if not
	successful)

	* httphdr.c (http_init_headers): new function, initializes a
	HttpHeader struct,
	(http_header_equal, http_header_hash): new functions, make
	HttpHeaders case insensitive

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

	* http.c: test the return value of http_write against
	G_IO_STATUS_*, it used to return gboolean but not any more, handle
	EOF while reading data from not kept-alive connections

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

	* Http.py: removed type argument from __init__

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

	* http.c: changed ZR_SPROXY to ZR_PROXY

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

	* httpfltr.c (http_transfer_filter_copy): http_read doesn't return
	boolean, so test it against G_IO_STATUS_NORMAL

	* http.c (http_read): handle G_IO_STATUS_EOF, and do not report it
	as an error

2002-07-31  Balazs Scheidler  <bazsi@balabit.balabit>

	* http.c: specify Z_VAR_GET_CONFIG | Z_VAR_SET_CONFIG bits for
	error_status

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

	* http.h: changed all limit attributes to guint instead of gint to avoid signedness issues

	* http.c, httpfltr.c: added max_chunk_length attribute, and
	implemented its behaviour (limits the maximal chunk size)

2002-05-02  Balazs Scheidler  <bazsi@balabit.balabit>

        * http.c, Http.py: added permit_unicode_url attribute to allow %u
	style unicode characters in requests (defaults to FALSE)

        * httpmisc.c (http_check_url): added permit_unicode parameter

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

	* httphdr.c: fixed a couple of bugs in HTTP header fetching, added
	support for continuation lines

2002-04-25  Balazs Scheidler  <bazsi@balabit.balabit>

	* http.c, httpfltr.c: complete rework of header processing, we now
	have a hashtable and a list, lot's of changes,
	header order should not be changed from now on

	* httphdr.c: new file

2002-04-24  Balazs Scheidler  <bazsi@balabit.balabit>

	* httpfltr.c: readd Content-Length and Transfer-Encoding fields
	during old-style (non-stackable) transfer, store expect_data in
	self->expect_data

2002-04-19  Balazs Scheidler  <bazsi@balabit.balabit>

	* httpfltr.c: added support for max_body_length in blocking code

	* http.h: added HTTP log classes here

	* http.c: forward ported changes from the 1.4.x branch,
	(http_config_set_defaults): initialize max_body_length to 0,
	removed initializing url_* variables, as they became variables
	calculated on-the-fly, initialize error_silent to FALSE
	(http_query_url): new function, calculates request_url_*
	attributes on-the-fly
	(http_register_vars): register max_body_length, changed
	request_url_* variables to Z_VAR_TYPE_CUSTOM, register
	error_silent
	(http_error_message): changed error message to "Error encountered"
	instead of "Proxy error encountered", do not display error
	message, once error_silent is set
	(http_filter_headers): append a CRLF to the end of headers
	(http_fetch_headers): be more liberal when strict_header_checking
	is FALSE, append CRLF to the end of headers
	(http_assign_connection_hdr_value): new function, called to assign
	the value of a connection header based on self->connection_mode
	(http_request_filter_connection_header): removed Host header
	processing (it is done later)
	(http_filter_request): truncate error message if no error
	occurred, readded filtering of http headers here (it was moved to
	later in processing earlier but that wasn't good because header
	processing functions were called too late)
	(http_rewrite_host_header): new function, to rewrite the host
	header,
	(http_copy_request): removed assignment of values to
	request_url_*, they are calculated on-the-fly, call
	http_rewrite_host_header instead of doing header filtering
	(http_fetch_response): process 102 responses (FIXME: should be
	sent to the client)
	(http_response_filter_connection_header): do header rewriting by
	invoking http_assign_connection_hdr_value()
	(http_filter_response): added a missing z_policy_unlock() call
	(http_handle_connect): fixed a problem parent_proxy problem (if
	truncated if the previous server name was shorter than the parent
	proxy name)
	(http_main): do not ask for connection keep-alive if the number of
	requests is over limit

	* configure.in: bumped version number to 1.5.0

2002-02-12  Balazs Scheidler  <bazsi@balabit.balabit>

        * http.c (http_filter_request): added a missing z_policy_unlock()

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

	* http.c (http_fetch_headers): check if readline returns ST_EOF
	and accept the server response silently in this case

	* http.c (http_filter_headers): check if eol == NULL

2002-01-12  Balazs Scheidler  <bazsi@balabit.balabit>

	* httpfltr.c: new non-blocking code is commented out as long as we
	don't move to libglib 2.0, since we need to poll data buffered in
	readlines, a conditional define is used to select which code is
	used

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

	* http.c: moved error class constants to http.h,
	
	(http_config_set_defaults): initialized new variable
	self->transfer_encoding, initialized self->poll,
	
	(http_read, http_write): changed to return an error code instead
	gboolean. Fixed checking the return value of z_stream_read, it
	returns a GIOError not an ST_ style error code.
	
	(various places): changed self->proto_version to be a side
	specific array
	(http_data_transfer): moved to httpfltr.c
	
	(http_parse_version): new argument, side,
	
	(http_request_filter_connection_header,
	http_response_filter_connection_header): drop Content-Length and
	Transfer-Encoding and store their value in self

	* httpfltr.c (http_data_transfer): split to http_data_transfer and
	http_data_transfer_setup,

	completely reimplemented http_data_transfer to be fully
	non-blocking, and allowing stacked proxies

	* http.h: cleaned up request and response flag constants, various
	new fields in HttpProxy, primarily state variables for the new
	non-blocking data transfer

	* httpproto.c: modified according to the new response flag constants

2002-01-04  Balazs Scheidler  <bazsi@balabit.balabit>

	* http.c: if parent proxy is set, do not verify the target port in
	the set of permitted ports (e.g. parent_proxy_port is
	automatically allowed),
	(http_handle_connect): support CONNECT method when parent_proxy is set

2001-12-20  Balazs Scheidler  <bazsi@balabit.hu>

	* http.c: fixed a typo in an error message

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

 	* http.c (http_proxy_free): free old_auth_header and error_headers
 	since they are not exported to pyvars, thus not freed
 	automatically

2001-10-31  Balazs Scheidler  <bazsi@balabit.balabit>

	* httpfltr.c: removed MOZILLA_HACK

2001-09-26  Balazs Scheidler  <bazsi@balabit.balabit>

	* http.c (http_register_vars): transparent_server_request access
	rights changed to allow write access

2001-09-10  Balazs Scheidler  <bazsi@balabit.balabit>

	* http.c (http_proxy_free): don't free exported variables, they are
	freed by pyvars automatically

2001-09-03  Balazs Scheidler  <bazsi@balabit.balabit>

	* http.c (http_filter_request): parsing HTTP_REQ_REJECT failed
	because PyArg_Parse doesn't like optional arguments within parens,
	changed to PyArg_ParseTuple,
	(http_connect_server): implemented self->target_port_range checking

2001-08-30  Balazs Scheidler  <bazsi@balabit.balabit>

	* http.c: my previous change (dated 08-27) caused two filtering
	being done on request headers. fixed.

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

	* http.c (http_copy_request): moved processing the Host header
	here, because if request_url is changed during policy call,
	bad Host header was sent (it was not rewritten)

2001-08-24  Balazs Scheidler  <bazsi@balabit.balabit>

	* http.c (http_fetch_response): do not accept HTTP/0.9 replies 
	as the second and further requests

2001-08-22  Balazs Scheidler  <bazsi@balabit.balabit>

	* httpmisc.c (http_check_url): allow '%%' sequences in the URL

2001-08-21  Balazs Scheidler  <bazsi@balabit.balabit>

	* Http.py: changed docstrings

	* http.c: reworked attribute names, added max_hostname_length

2001-08-17  Balazs Scheidler  <bazsi@balabit.balabit>

        * http.c: set error_info prior to calling the policy handler, and
	let it modify its contents (it is propagated to the real response)
	
2001-08-02  Balazs Scheidler  <bazsi@balabit.balabit>

	* httpproto.c: fix response table to allow responses for
	401, caused IE to hang.

2001-07-30  Balazs Scheidler  <bazsi@balabit.balabit>

	* http.c: implemented strict_header_checking attribute, if
	require_host_header is TRUE and HTTP/0.9 is in use we display an
	error message, because 0.9 can't transfer headers
 
2001-06-22  Balazs Scheidler  <bazsi@balabit.hu>

	* Http.py: added HttpProxyURIFilter class for URL screening

2001-06-13  Balazs Scheidler  <bazsi@balabit.hu>

	* http.c (http_log_headers): new function for logging
	request/response headers, prefilter header log is done prior to
	process_request

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

	* http.c, Http.py: changed constants to the new naming scheme
	
2001-05-29  Balazs Scheidler  <bazsi@balabit.hu>

	* http.c: added dimhash support for response processing

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

	* http.c: exported max_url_length attribute, changed logging so that
	the request details come at verbosity=6

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

	* http.h, Http.py: synced Http specific policy constants to match
	values with Z_*

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

	* http.c: exported kept_alive_requests variable

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

	* http.c: suppress error message to the client when reading from
	the client failed, this supresses many "Broken pipe" errors in the log

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

	* http.c: the timeout error message is displayed only _if_ the
	first client request timed out, kept alive requests are closed
	silently instead

	* messages/clienttimeout.html, servertimeout.html: new files

        * http.c (http_process_request): fixed a possible bug affecting
	requests without host header (increased the size of a buffer),
	(http_fetch_headers): added some error messages when the
	connection is dropped,
	(http_process_request): added cache_object:// to the set of
	allowed protocols in URIs
	(http_fetch_request): added support for request_timeout which
	specifies the time the is required to send its request
	(http_register_vars): request_timeout added
	(http_config_set_defaults): request_timeout added, default value
	of timeout changed to 300000

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

	* Http.py: added type argument for connect_proxy

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

	* httpproto.c: added WebDAV extensions

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

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

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

	* http.c: fixed a Content-Length parsing problem, IIS sometimes adds
	trailing spaces

	* messages/serversyntax.html: fixed typo

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

	* configure.in: bumped version number to 1.0.0

	* *.c: adapted to the new logging macros

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

	* tests/http_split_url: new test program for testing the named function

	* httpmisc.c: implemented username & password parsing in URLs

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

	* http.c: don't set server address in transparent mode,
	new variable permit_null_response, exported to Python,
	fixed rewrite_host_header processing

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

	* http.c (http_config_set_defaults): changed default,
	rewrite_host_header defaults to TRUE,
	require_host_header defaults to TRUE, exported to Python

	* http.h: new attribute require_host_header added

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

	* http.c (http_thread): shut down the session if either config()
	or startup() raised an exception,
	exported auth_realm variable

	* http.h: new field auth_realm containing authentication realm

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

	* http.c (http_enable_inband_auth) new function exported to python
	to enable inband authentication,
	(http_process_request): support for user authentication,
	(http_error_message): support for error_headers

	* http.h: new field in HttpProxy auth containing a pointer to the
	authorization database, new field error_headers to be appended to
	error responses

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

	* http.c (http_copy_request): if sending the request fails for
	more than 4 times, report it as a connection error, instead of 
	client syntax error

2001-02-23  Szalay Attila  <sasa@balabit.hu>

	* http.c (http_copy_request): Bugfix. Return FALSE after 4 conection
	attempts

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

	* httpfltr.c: removed some old debug messages

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

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

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

	* http.c: Write debug messages to log, when enter and leave from a
	function.

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

	* http specific ChangeLog started
