2013-06-25 Bjoern Schilberg Bumped version to 1.2.1. * M packaging/Windows/Makefile: Adjust version numbers. * M inteproxy/main.py: Changed inteproxy_version to "1.2.1". * M doc/InteProxy-en.odt, M doc/InteProxy-de.odt: Adapted the documentation for the new 1.2.1. 2013-06-26 Bernhard Herzog * inteproxy/proxycore.py (InteProxyHTTPRequestHandler.handle_proxy_request): If compression was requested by InteProxy itself, make sure the response is decompressed before trying to run the fees dialog. This still leaves the case of compression requested by InteProxy's client, but at least now it's not worse than before the compression feature was introduced to InteProxy. * test/test_inteproxy.py (TestInteProxyCompressedCapabilities): New. Test case for compressed GetCapabilities response due to InteProxy requesting compression. (deflate): New. Helper function to compress a string as required for the deflate Content-Encoding. 2013-06-26 Bernhard Herzog * inteproxy/httpmessage.py (HTTPResponseMessage.read): Omit the amount parameter entirely when calling the underlying body stream's read method in the case where the caller of HTTPResponseMessage.read wants to read all the contents of the body because there does not seem to be a value usable as the amount parameter in this case that is understood by all the file-like types we may encounter. See the comment for more details. Fixes geospatial/issue617 2013-06-25 Bjoern Schilberg Bumped version to 1.2.0. * packaging/Windows/Makefile: Adjust version numbers. * doc/InteProxy-en.odt, doc/InteProxy-de.odt: Adapted the documentation for the new 1.2.0. * M packaging/Windows/inteproxy-installer.nsi, M inteproxy/gtkapp.py, M po/de.po: Adjusted date string to 2013. 2012-03-28 Andre Heinecke * M inteproxy/proxycore.py, M inteproxy/config.py, M inteproxy/main.py, M inteproxy.cfg: Add configuration option do_certificate_validation to explicitly enable SSL Certificate validation. Default is not to validate the certificates. 2012-03-02 Andre Heinecke * A test/decompressstream.py: Added test for decompressed reading * M inteproxy/decompressstream.py: Fix reading of the complete stream after starting to read small chunks. * M inteproxy/proxycore.py: Remove the response parameter again for the transfer_data functions. 2012-02-29 Andre Heinecke * M inteproxy/proxycore.py: Remove decompressed_read method. Remove method get_decompress_object * M inteproxy/httpmessage.py: Added do_decompress method to httpresponse to select decompression of the response. Read does now create a decompression object if necessary to decompress the input stream of the response. * A inteproxy/decompressstream.py: Add decompress stream class to wrap around an input stream for decompressed reading. 2012-02-24 Andre Heinecke * M inteproxy/proxycore.py: Add method decompressed_read to read decompressed data from a compressed response and use it where data from a httpresponse is read. * M test/test_inteproxy.py: Disable test in TestInteProxyCompressedConnection for handling an invalid compressed response, as InteProxy will now crash in that case. * M inteproxy/httpmessage.py: Add decompressor parameter to read_entire_message to decompress the body with it. 2012-02-24 Andre Heinecke * M inteproxy/proxycore.py: Add exception handling to compression, return raw data if it can not be decompressed. Change decompressed read to allow chained read wrappers * M test/test_inteproxy.py: Add test to TestInteProxyCompressedConnection for handling an invalid compressed response 2012-02-23 Andre Heinecke * M inteproxy/httpmessage.py: Remove compression handling but still use the read function of HTTPMessage for reading the entire body. * M inteproxy/proxycore.py: Move compression handling into the proxycore. Add method get_decompress_object to select the correct decompression algorithm and Only do decompression if the client has not requested a compressed response or if we need to rewrite urls. 2012-02-23 Andre Heinecke * M inteproxy/httpmessage.py: Only decompress responses, remove the Content Encoding header, decide compression on inititalization of a httpresponse. 2012-02-23 Andre Heinecke * M test/test_inteproxy.py: Add TestInteProxyCompressedConnection to test messages with content-encoding deflate and gzip 2012-02-22 Andre Heinecke * M inteproxy/proxycore.py: Add Accept-Encoding header to http_request 2012-02-22 Andre Heinecke * M inteproxy/httpmessage.py: Added support for decompressing HTTPMessages on read 2012-01-21 Bjoern Schilberg * M setup.py: Adjusted setup.py for distributing InteProxy with Python 2.7 under Windows. 2012-01-21 Bjoern Schilberg * A packaging/Windows/README_Python-2.7.txt: Added a new Windows packaging README for distributing InteProxy Desktop with Python 2.7. * D packaging/Windows/README.txt, A packaging/Windows/README_Python-2.4.txt: Moved Windows packaging readme to README_Python-2.4.txt. 2012-01-21 Bjoern Schilberg * M packaging/Windows/inteproxy-installer.nsi, M inteproxy/gtkapp.py, M po/de.po: Adjusted date string to 2012. 2012-01-12 Bjoern Schilberg * doc/InteProxy-en.odt, doc/InteProxy-de.odt: Fixed date string. 2012-01-12 Sascha L. Teichmann * inteproxy/proxycore.py, test/test_chunkedwriter.py: Replaced if/else with Python 2.4 compatible constructs. 2012-01-11 Bjoern Schilberg Bumped version to 1.1.0. * packaging/Windows/Makefile: Adjust version numbers. * inteproxy/main.py: Changed inteproxy_version to "1.1.0". * doc/InteProxy-en.odt, doc/InteProxy-de.odt: Adapted the documentation for the new 1.1.0. 2012-01-11 Bjoern Schilberg Preparation for the InteProxy Desktop release 1.0.4. * packaging/Windows/Makefile: Adjust version numbers. * inteproxy/main.py: Changed inteproxy_version to "1.0.4". * doc/InteProxy-en.odt, doc/InteProxy-de.odt: Adapted the documentation for the new 1.0.4. 2012-01-05 Sascha L. Teichmann * test/test_chunkedwriter.py: New. Unit tests for the chunkedwriter module. 2012-01-03 Sascha L. Teichmann * inteproxy/proxycore.py: Fixed: If a response is rewritten in the none chunk case the value of Content-Length changes. So this header can only be written out if the replacement is already done to determine the correct size. 2012-01-03 Sascha L. Teichmann * inteproxy/chunkedwriter.py, inteproxy/transcoder.py, inteproxy/proxycore.py: Added doc strings. 2012-01-02 Sascha L. Teichmann * inteproxy/proxycore.py(wrap_read_write_debug): Forgot self. 2011-12-25 Sascha L. Teichmann * inteproxy/proxycore.py: Call the new rewrite/chunking code if the incoming resonse uses transfer encoding chunked and URL rewriting is active. Otherwise the old code path is used. Needs testing! 2011-12-23 Sascha L. Teichmann * inteproxy/proxycore.py(ransfer_chunked_rewrite): Fixed indentation problem (c&p mistake). 2011-12-23 Sascha L. Teichmann * inteproxy/proxycore.py(transfer_chunked_rewrite): Use rfind() instead of find() to break input into lesser fragments. This improves the performance a lot! 2011-12-23 Sascha L. Teichmann * inteproxy/proxycore.py(transfer_chunked_rewrite): Added method to stream the data from incoming response to the output in chunks transcoding the URLs on the run. TODO: Integrate it. 2011-12-23 Sascha L. Teichmann * inteproxy/chunkedwriter.py(ChunkedTransferEncodingWriter): New. Added class to write HTTP chunked transfer encoding. Useful if the input is given as short byte arrays to be aggregated into chunks of given a size which are streamed out. 2011-12-23 Sascha L. Teichmann * inteproxy/transcoder.py: Refactored a bit. Introduced function url_rewriter which returns a function which can be used to do url rewriting for a given string. Useful when rewriting is called more than once. 2011-06-16 Bjoern Schilberg * M server/doc/source/gettingStarted.rstr: s/Getting Started/Schnelleinstieg * M server/doc/source/versionsgeschichte.rst: s/November/Juni 2011-06-16 Bjoern Schilberg * M server/doc/source/versionsgeschichte.rst: Adapted version history for version 1.0.4. 2011-06-16 Bjoern Schilberg * M server/doc/source/versionsgeschichte.rst: Removed unrelated InteProxy Server stuff from version history. 2011-06-16 Bjoern Schilberg * M server/doc/source/konfiguration.rst, M server/doc/source/download.rst: Adjusted windows server paths. 2011-06-16 Bjoern Schilberg * M server/conf/inteproxy-rewrite.conf: Adjusted inteproxy-rewrite.conf. Harmonization of the example and the output of create-rewrite-rules.py. 2011-06-16 Bjoern Schilberg * M server/conf/inteproxy.conf, M server/conf/inteproxy-WindowsServer2003.conf: Added ProxyRemote directive. 2011-06-16 Bjoern Schilberg * M server/conf/inteproxy.conf, M server/conf/inteproxy-WindowsServer2003.conf: Added comment for required modules. Commented all platform-specific modules configurations files. 2011-06-15 Bjoern Schilberg * M server/conf/inteproxy.conf, M server/conf/inteproxy-WindowsServer2003.conf: Added and changed FilterProvider to provide rewriting of different content-types and/or compressed Capabilities documents. 2011-06-15 Bjoern Schilberg * M server/conf/inteproxy.conf, M server/conf/inteproxy-WindowsServer2003.conf: Changed version numbers to 1.0.4. 2011-06-15 Bjoern Schilberg * M server/conf/platform-suse.conf, M server/conf/platform-debian.conf, M server/conf/platform-WindowsServer2003.conf: Added missing modules. Avoided loading of already loaded modules with the help of the Directive. 2011-06-15 Bjoern Schilberg * M server/doc/source/konfigurationsdateiVirtualHost.rst: Highlited important text passage. Adjust syntax higlighting. 2011-06-15 Bjoern Schilberg * M server/doc/source/konfigurationsdateiVirtualHost.rst, M server/doc/source/konfiguration.rst, M server/doc/source/conf.py, M server/doc/source/download.rst: Changed version numbers to 1.0.4. 2011-05-27 Stephan Holl * conf.py: some PDF-formatting, removing empty pages 2011-05-27 Stephan Holl * konfigurationsdateiVirtualHost.rst, konfiguration.rst, konfigurationsdateiInteProxy.rst, proxyRemote.rst, anforderungen.rst, versionsgeschichte.rst, ersterTest.rst: Added some wording, fixed some information. Better readable now howfully. 2011-05-27 Bjoern Schilberg * M server/doc/source/installApache.rst, M server/doc/source/konfigurationsdateiVirtualHost.rst, M server/doc/source/konfiguration.rst, M server/doc/source/gettingStarted.rst, M server/doc/source/konfigurationsdateiInteProxy.rst, M server/doc/source/proxyRemote.rst, M server/doc/source/ersterTest.rst, M server/doc/source/vorraussetzungen.rst, M server/doc/source/download.rst: Fixed typos and wording. * D server/doc/source/installationWindowsServer2003.rst, D server/doc/source/installationDebian.rst, D server/doc/source/installationSUSE.rst: Deleted separated installation manuals. They are now consolidated. 2011-05-26 Bjoern Schilberg * M server/doc/source/installApache.rst, A server/doc/source/konfiguration.rst, M server/doc/source/gettingStarted.rst, M server/doc/source/konfigurationsdateiInteProxy.rst, M server/doc/source/proxyRemote.rst, M server/doc/source/anforderungen.rst, M server/doc/source/linkliste.rst, A server/doc/source/vorraussetzungen.rst, M server/doc/source/index.rst, M server/doc/source/download.rst: Revised version. 2011-05-26 Bjoern Schilberg * M server/doc/source/installApache.rst, M server/doc/source/konfigurationsdateiVirtualHost.rst, M server/doc/source/einfuehrung.rst, M server/doc/source/gettingStarted.rst, M server/doc/source/konfigurationsdateiInteProxy.rst, M server/doc/source/proxyRemote.rst, M server/doc/source/ersterTest.rst: Fixed typos and wording. 2011-05-25 Bjoern Schilberg * A server/doc/source/installApache.rst, M server/doc/source/konfigurationsdateiVirtualHost.rst, A server/doc/source/gettingStarted.rst, M server/doc/source/konfigurationsdateiInteProxy.rst, M server/doc/source/proxyRemote.rst, M server/doc/source/anforderungen.rst, A server/doc/source/images/more.png, M server/doc/source/ersterTest.rst, M server/doc/source/index.rst, M server/doc/source/download.rst: Update InteProxy Server documentation according to the wishes of the users. 2011-04-08 Stephan Holl * server/doc/source/installationWindowsServer2003.rst, server/doc/source/proxyRemote.rst, server/doc/source/anforderungen.rst: Added more concrete hints about the needed apache-versions. Added a hint about the inclusion of ProxyRemote to other servers. 2011-04-08 Stephan Holl * doc/Makefile: added latexpdf-target to build PDF-document by default * doc/README.txt: added documentation of latexpdf-make-target 2011-02-17 Bernhard Herzog * test/test_config.py (TestReadConfigHttpProxySpecialChars): New test case for usernames and passwords with special characters like backslashes and percent signs. 2010-11-18 Ingo Weinzierl * create-rewrite-rules.py: Changed the regular expression that is used to create the substitute rule. The url in the substitute rule needs to end with a quote. This prevents ignoring the rest of the line when the first matching url is found. 2010-11-03 Bjoern Schilberg * website/index-de.htm4, website/index.htm4: Updated file paths with the files from InteProxy Server release 1.0.3. 2010-11-03 Bjoern Schilberg * server/conf/inteproxy-WindowsServer2003.conf, server/doc/source/installationWindowsServer2003.rst, server/doc/source/konfigurationsdateiVirtualHost.rst, server/doc/source/versionsgeschichte.rst, server/doc/source/installationDebian.rst, server/doc/source/conf.py: Updated file paths and version numbers for the next InteproxyServer release 1.0.3. 2010-11-03 Bjoern Schilberg * server/conf/inteproxy.conf, server/conf/platform-suse.conf, server/doc/source/installationSUSE.rst: Adapted for OpenSUSE 11.3 2010-11-03 Bjoern Schilberg * server/conf/inteproxy-rewrite.conf: Adjustment of the substitute directive for correct rewriting of URLs in GetCapabilites responses. 2010-10-13 Bjoern Schilberg * test/test_create_rewrite_rules.py: Adapt test to delimiter change in substitution_rule in create-rewrite-rules.py (rev280). 2010-10-11 Ingo Weinzierl * inteproxy/proxycore.py: Validate remote certificates when an ssl connection is created (requires python >= 2.6, otherwise no validation takes place) using pythons ssl module. If the validation failes, a popup dialog is opened with the error/warning. If the user accepts the certificate, the ssl connection is created, otherwise a HTML error code 502 is returned. 2010-10-11 Ingo Weinzierl * inteproxy/certificatedialog.py: New module to handle errors/warnings that occured while certificate validation. * inteproxy/app.py: New abstract method 'run_certificate_dialog'. * inteproxy/gtkapp.py: Implementation of 'run_certificate_dialog' - displays a popup window showing an error/warning. The user needs to accept or reject the requested action in the popup. * po/de.po: String, used in the certificate dialog. 2010-09-30 Bjoern Schilberg * create-rewrite-rules.py: Adapt delimiter in substitution_rule to be able to use hyphenated urls in rewriting server responses. 2010-09-22 Ingo Weinzierl * inteproxy/httpconnection.py(extract_identities_from_certificate): Extract identities from certificate based on rfc2818. (create_url_regex): Creates regular expressions that can be used to match domains that might contain wildcards. (is_remote_domain_valid): Function that helps to validate remote urls based on the identities in a certificate. (connect_ssl): New parameters that are required to verify remote server certificates. * test/test_sslvalidation.py: New. Some testcases for ssl hostname validation. 2010-09-21 Ingo Weinzierl * inteproxy.cfg: Introduced a new parameter that defines the path to a file that contains certification authority certificates - used to validate remote serverrs. * inteproxy/config.py: Read the new parameter mentioned above. * inteproxy/main.py (run_server): Insert the new parameter cacerts into MasterWorkerServer that makes it available when ssl connections are created. * inteproxy/proxycore.py (MasterWorkerServer, get_cacert_path): Added cacert_path property to the constructor and getter method to retrieve this path. 2010-09-21 Ingo Weinzierl Some refactoring * inteproxy/proxycore.py (open_http_connection): Renamed this method into 'perform_http_request' and moved the http and https connection into own methods 'open_http_connection' and open_https_connection'. 2010-10-29 Bjoern Schilberg * website/index-de.htm4, website/index.htm4: Updated file paths with the files from InteProxy Desktop release 1.0.3. 2010-10-29 Bjoern Schilberg * doc/InteProxy-en.odt, doc/InteProxy-de.odt: Added a note for using secured WFS-serivces with InteproxyDesktop. 2010-10-28 Bjoern Schilberg * packaging/Windows/Makefile: Adjust version numbers. * inteproxy/main.py: Changed inteproxy_version to "1.0.3". * doc/InteProxy-en.odt, doc/InteProxy-de.odt: Adapted the documentation for the new 1.0.3. 2010-09-20 Bernhard Herzog * inteproxy/proxyconnection.py: Removed. It's no longer used. 2010-09-20 Bernhard Herzog Make inteproxy/proxyconnection.py completely obsolete. * inteproxy/httpconnection.py (parse_netloc, default_ports): Copied here from inteproxy/proxyconnection.py. They were the last things defined in that module that were actually still used. * inteproxy/proxycore.py: Import parse_netloc from httpconnection. 2010-09-20 Bernhard Herzog * inteproxy/proxyconnection.py (HTTPSProxyConnection): Removed. Not used anymore. 2010-09-20 Bernhard Herzog * inteproxy/transcoder.py (OWSProxyPOSTTranscoder.wfs_root_elements): Add GetFeatureWithLock operation 2010-09-17 Bernhard Herzog * inteproxy/transcoder.py (OWSProxyPOSTTranscoder.convert_request): Fix doc-string. 2010-09-17 Bernhard Herzog * inteproxy/transcoder.py (OWSProxyPOSTTranscoder.wfs_root_elements): New. Moved from convert_request to class scope. Add the root element names of the rest of the WFS requests. (OWSProxyPOSTTranscoder.convert_request): Use wfs_root_elements. 2010-09-17 Bernhard Herzog * inteproxy/config.py, inteproxy/gtkapp.py, inteproxy/main.py, inteproxy/transcoder.py: Remove unused imports 2010-09-03 Bjoern Schilberg * website/index-de.htm4, website/index.htm4: Updated file paths with the files from InteProxy Server release 1.0.2. 2010-09-03 Bernhard Herzog * test/test_create_rewrite_rules.py (TestCreateRewriteRules.run_test): Provide the --server-prefix option when running create-rewrite-rules.py. (TestCreateRewriteRules.test_create_rewrite_rules_no_wild_cards) (TestCreateRewriteRules.test_create_rewrite_rules_wild_cards) (TestCreateRewriteRules.test_create_rewrite_rules_wild_cards_special_characters) (TestCreateRewriteRules.test_create_rewrite_rules_port): Adapt test to the InteProxy-Server URL rewriting changes. 2010-09-03 Bjoern Schilberg * server/conf/inteproxy-WindowsServer2003.conf: Added Apache FilterProvider and FilterChain Directives for URL rewriting. Changed version numbers in path directives. * server/conf/platform-WindowsServer2003.conf: Added filter_module and substitute_module for URL rewriting. * server/doc/source/installationWindowsServer2003.rst: Changed version numbers in path directives. * server/doc/source/konfigurationsdateiVirtualHost.rst: Changed version numbers in path directives. * server/doc/source/URLrewriting.rst: Added new chapter for URL rewriting of WMS capabilities responses. * server/doc/source/proxyRemote.rst: Changed the documentation where the ProxyRemote directive should be placed. Added a hint for which Apache version should be used. * server/doc/source/versionsgeschichte.rst: Added note to new version 1.0.2. * server/doc/source/installationSUSE.rst: Changed version numbers in path directives. * server/doc/source/installationDebian.rst: Changed version numbers in path directives. * server/doc/source/conf.py: Changed version and release to 1.0.2. * server/doc/source/index.rst: Added link to URLrewriting.rst * doc/source/linkliste.rst: Added links to mod_filter and mod_substitute, sorted link list. * doc/source/anforderungen.rst: Added optional requirements and sorted the list. 2010-08-23 Bernhard Herzog Implement URL rewriting in capabilities responses in InteProxy Server * create-rewrite-rules.py (create_config_parser): New option --server-prefix to specify the URL prefix of the inteproxy to use when rewriting server responses (rule_for_owsproxy): Extend to also return the regular expression to use when looking for URLs to rewrite in server responses (substitution_rule): Create the apache Substitute rule for response rewriting. (create_rewrite_rules): Extend to also generate substitution rules (main): Pass the server prefix to create_rewrite_rules. * server/conf/inteproxy.conf: Define a filter chain for the URL rewriting in capabilities responses * server/README.txt: Adapt to URL rewriting changes 2010-08-05 Bjoern Schilberg * server/doc/source/index.rst,server/doc/source/proxyRemote.rst: Added documentation for ProxyRemote configuration. 2010-05-27 Bjoern Schilberg * website/index-de.htm4: Link corrected. 2010-05-27 Bjoern Schilberg * website/index-de.htm4, website/index.htm4: Updated file paths with the files from release 1.0.1. 2010-05-26 Bjoern Schilberg * packaging/Windows/Makefile: Adjust version numbers. * packaging/Windows/inteproxy-installer.nsi: Adjust authors and Copyright year * inteproxy/main.py: Changed inteproxy_version to "1.0.1" * inteproxy/gtkapp.py: Changed copyright to 2006 - 2010 * po/de.po: Changed msgid and msgstr to Copyright to 2006 - 2010 * packaging/Windows/README.txt: py2exe: Ignore the warning about ssl, but be careful in the future, debug to be sure. More detailed build step instruction for build step 2.1. * doc/InteProxy-de.odt, doc/InteProxy-en.odt: Adapted the documentation for the new 1.0.1 release. Added Info in 4.2 Configuration file for the show_terms_dialog option. 2010-05-21 Ingo Weinzierl * inteproxy/config.py: Wrapped a line that was longer than 80 characters. 2010-05-21 Ingo Weinzierl * inteproxy.cfg: Replaced wrong value for 'show_terms_dialog' option with a valid one. 2010-05-21 Ingo Weinzierl * inteproxy.cfg: Activated the [inteproxy] section in this config file to prevent the case that the user uncomments the 'show_terms_dialog' option and forgets to uncomment the [inteproxy] line. 2010-05-20 Ingo Weinzierl * inteproxy.cfg: Added a 'show_terms_dialog' option to suppress an upcoming popup that contains information about fees and access constraints. Possible values for this option are "true", "yes" and "1" to show the popup - "false", "no" and "0" to suppress the popup. * inteproxy/config.py: Added the 'show_terms_dialog' option and implemented a function to convert strings into boolean. * inteproxy/main.py: Instantiate the inteproxy server with the option to suppress the popup dialog showing fees and access constraints. * inteproxy/proxycore.py: Show fees and access constraints only, if the option 'show_terms_dialog' is True - which is the default. 2010-05-20 Ingo Weinzierl * inteproxy/feesdialog.py: Improved the GetCapabilites URL checking. The parameters of a WMS request might be case insensitive according to the WMS spec. A GetCapabilities request without uppercase 'REQUEST' will now be detected as GetCapabilites request as well. (see issue1217 at http://wald.intevation.org/projects/inteproxy for the bug report) 2010-05-11 Bjoern Schilberg * website/index.htm4, website/index-de.htm4: Adapting Links for the InteProxy Server Documentation release 1.0.1. 2010-05-11 Bjoern Schilberg * server/doc/source/conf.py: Set version and release to 1.0.1. Changed latex_font_size to 10pt. Added options for PDF output with rst2pdf * server/doc/source/versionsgeschichte.rst: Added new version to version history * server/conf/inteproxy-WindowsServer2003.conf: Added inteproxy configuration for Windows Server 2003 * server/conf/platform-WindowsServer2003.conf: Added platform configuration for inteproxy configuration for Windows Server 2003 * server/conf/inteproxy-rewrite.conf: Added an example inteproxy rewrite rule file. * server/doc/Makefile: add new build option, to build pdf directly with rst2pdf 2010-05-10 Bjoern Schilberg * server/doc/source/installationWindowsServer2003.rst: Added documentation for Windows Server 2003 (SP2) installation. * server/doc/source/index.rst: Added documentation for Windows Server 2003 (SP2) to index page. * server/conf/inteproxy-WindowsServer2003.conf: Added inteproxy configuration for Apache 2.0.59 / Windows Server 2003 (SP2). * server/conf/platform-WindowsServer2003.conf: Added platform configuration for inteproxy virtual host on Apache 2.0.59 / Windows Server 2003 (SP2) * server/doc/source/anforderungen.rst: Note: Apache module mod_authz_host only available since Apache >= 2.1 * server/doc/README.txt: New section for checking links added. 2010-03-22 Stephan Holl * website/index.htm4, website/index-de.htm4: Included the correct links for the InteProxy-Server-Packages 2010-03-22 Stephan Holl * HowTo-Release.txt: some more hints 2010-03-22 Bjoern Schilberg * website/index.htm4, website/index-de.htm4: Adapting Links for the InteProxy Server release. 2010-03-19 Bjoern Schilberg * server/conf/inteproxy.conf, server/doc/source/index.rst, server/doc/source/installationDebian.rst, server/doc/source/installationSUSE.rst, server/doc/source/konfigurationsdateiVirtualHost.rst: Adapted path in InteProxy server configuration file and documentation to the new release. 2010-03-19 Bjoern Schilberg * HowTo-Release.txt: Added "HowTo make a new InteProxy Server release". 2010-03-19 Bjoern Schilberg * server/conf/httpd.conf, server/conf/platform-debian.conf, server/conf/platform-standalone-debian.conf: Change configuration files, to avoid conflicts between the standalone apache configuration file and the debian apache configuration file. 2010-03-19 Bjoern Schilberg * server/doc/source/installationDebian.rst, server/doc/source/installationSUSE.rst: Added forgotten path. 2010-03-19 Stephan Holl Some fixes, typos for the documentation * server/doc/source/einfuehrung.rst, server/doc/source/konfigurationsdateiInteProxy.rst, server/doc/source/installationSUSE.rst, server/doc/source/installationDebian.rst, server/doc/source/ersterTest.rst, server/doc/source/index.rst, server/doc/source/download.rst: some typos, corrections for the InteProxy Server documentation 2009-12-10 Stephan Holl * inteproxy.cfg: removed old (harmless) config-entries and added LGNs www.geobasisdaten.niedersachsen.de/mapgate 2010-03-19 Bjoern Schilberg * server/doc/source/conf.py: Added latex_additional_files to sphinx conf. To copy the InteProxy logo to the build directory when building LaTeX output. 2010-03-19 Bjoern Schilberg * doc/InteProxy-Server.WorkFlow-de.odg, doc/InteProxy-Server.WorkFlow-de.png, server/doc/source/images/InteProxy-Server-WorkFlow-de.png: Created new InteProxy server workflow graphic (german) and added graphic to the InteProxy server documentation. 2010-03-19 Bjoern Schilberg * server/doc/README.txt: Added README for how to compile the InteProxy Server documentation. 2010-03-18 Bjoern Schilberg * server/doc/source/einfuehrung.rst, server/doc/source/konfigurationsdateiInteProxy.rst, server/doc/source/konfigurationsdateiVirtualHost.rst: Syntax highlighting for configuration files turned on. Added worflow graphic to introduction. 2010-03-18 Bjoern Schilberg * server/doc/source/installationDebian.rst, server/doc/source/installationSUSE.rst, server/doc/source/konfigurationsdateiInteProxy.rst, server/doc/source/konfigurationsdateiVirtualHost.rst: Corrected spelling, some typos and formatting stuff. 2010-03-18 Bjoern Schilberg * server/doc, server/doc/Makefile, server/doc/make.bat, server/doc/source, server/doc/source/_static, server/doc/source/_templates, server/doc/source/anforderungen.rst, server/doc/source/conf.py, server/doc/source/download.rst, server/doc/source/einfuehrung.rst, server/doc/source/ersterTest.rst, server/doc/source/images, server/doc/source/images/InteProxy-logo.png, server/doc/source/images/intevation-logo-150ppi.png, server/doc/source/index.rst, server/doc/source/installationDebian.rst, server/doc/source/installationSUSE.rst, server/doc/source/konfigurationsdateiInteProxy.rst, server/doc/source/konfigurationsdateiVirtualHost.rst, server/doc/source/linkliste.rst, server/doc/source/versionsgeschichte.rst: Added InteProxy Server sphinx documentation. 2010-03-18 Bjoern Schilberg * server/conf/inteproxy.conf: Adapted path to configuration files. 2010-03-18 Bjoern Schilberg * inteproxy_server, server: Renamed directory inteproxy_server to server. 2010-03-18 Bjoern Schilberg * create-rewrite-rules.py, inteproxy_server/create-rewrite-rules.py: Moved create-rewrite-rules script back, because of hardwired inteproxy python dependencies. 2010-03-18 Bjoern Schilberg * inteproxy_server/conf/platform-suse.conf: Apache Modules configuration for automatic import of needed modules for the VirtualHost for openSuSE 10.3. 2010-03-18 Bjoern Schilberg * inteproxy_server/conf/inteproxy.conf: Apache 2 VirtualHost configuration for Debian Lenny and openSuSE 10.3 2010-03-18 Bjoern Schilberg * apache, create-rewrite-rules.py, inteproxy_server, inteproxy_server/create-rewrite-rules.py: Restructuring directory layout. Moved server stuff to its own directory. 2010-02-12 Hans Plum * website/index.htm4, website/index-de.htm4i: Adapting Links for 1.0.0 Windows installer after release. 2009-12-10 Stephan Holl * website/index-de.htm4, website/index.htm4: Updated file paths with the files from release 1.0.0. 2009-12-10 Stephan Holl * HowTo-Release.txt: added comment for tagging-command. 2009-12-10 Stephan Holl * packaging/Windows/README.txt: Some more concrete hints for building the windows-installer. 2009-12-08 Stephan Holl Preparation for the release 1.0.0. * apache/README.txt: added some requirements for InteProxy Server installation (in preparation for 1.0.0) * doc/InteProxy-de.odt, doc/InteProxy-en.odt: updated documentation to the current state. Remove part of InteProxy Server again and put the relevant parts into apache/README.txt. Updated change-History at the end of the documents. * packaging/Windows/Makefile, inteproxy/main.py: updated to Version-number 1.0.0 and release-Date 20091210 (this is also done in the documents). 2009-12-08 Stephan Holl * packaging/Windows/installer-options.ini: setting the Desktop-Link as default. 2009-12-02 Stephan Holl * doc/InteProxy-de.odt: Updated the german documentation with all new features since the last release. See Version-History of this document for details. 2009-12-02 Stephan Holl * packaging/Windows/inteproxy-installer.nsi: Updated Copyright. renamed package to 'InteProxy Desktop' * inteproxy/gtkapp.py: Updated Copyright. Added Version-number to title-bar. * po/de.po: Updated translations because of the Copyright-changes. 2009-12-02 Stephan Holl * demo.cfg: renamed to inteproxy.cfg, since this is the default-config file. * inteproxy.cfg: New. renamed from demo.cfg. Added another secured URL to show that the list must be indented to work properly. * demo-credentials.cfg: removed from the repository, because it is not needed anymore since rev206. * apache/README.txt: updated the usage of create-rewrite-rules.py. 2009-11-26 Bernhard Herzog The regular expressions used when looking for URLs to rewrite when the --rewrite-urls option is used match too much. It could happen that if one line contained several URLs that had to be rewritten, that the regular expression that matched the first URL actually matched that URL and the entire rest of the line, so that the rest of line would not be processed any further, leaving the other URLs in their original, non-rewritten form. Now the character set used for the wild-cards is much more restricted, which should solve the problem. * inteproxy/transcoder.py (TranscoderMap.add_rule): Restrict the set of characters matched by the wild-cards by excluding those listed as excluded in URIs in RFC 2396. * test/test_inteproxy.py (TestInteProxyURLRewriting.test_httpproxy_url_rewriting_with_long_lines): New. Test-case for url replacing in long lines that contain multiple URLs that need to be rewritten. 2009-09-15 Bernhard Herzog Add some tests with actual HTTPS servers and HTTPS proxies. The tests require Python 2.6 because SSL server support was add in 2.6. When run with Python 2.5 the tests are omitted. * test/test_inteproxy.py (ServerTest): Extend to optionally support an upstream HTTPS proxy (TestInteProxyOWSProxy): New. Tests with an origin server that uses HTTPS (TestInteProxyOWSProxyWithAuthenticatingHTTPSProxy): Tests with an upstream HTTPS proxy * test/serversupport.py (HTTPSServer): New. HTTP_S server. Requires Python 2.6 to work. (CONNECTRequestHandler): New. Request handler to implement the HTTP CONNECT method with authentication (start_copy_thread): New. Helper function for CONNECTRequestHandler 2009-09-15 Bernhard Herzog * inteproxy/proxycore.py (InteProxyHTTPRequestHandler.create_proxy_headers): New method to help construct proxy authentication headers (InteProxyHTTPRequestHandler.open_http_connection): Use the httpconnection module to establish connections. * inteproxy/httpconnection.py: New module with a more modular way to create HTTP connections. Will hopefully make the complicated code in inteproxy/proxyconnection.py obsolete 2009-09-15 Bernhard Herzog * inteproxy/httpserver.py: Adapt to changes in Python 2.6. 2.6 introduced its own method of shutting down the socket server which interferes with InteProxy's approach and leads to dead locks. The new code works with Python 2.6 and older versions. 2009-09-11 Bernhard Herzog * inteproxy/transcoder.py (IdentityTranscoder.__init__): Fix typo in doc-string 2009-09-11 Bernhard Herzog * inteproxy/transcoder.py (TranscoderMap.add_rule): Add the port number to the hostname pattern if the rule has a port number. (TranscoderMap.lookup): Rename host->netloc because it also may contain the port number * test/test_transcoder_map.py (TestTranscoderMapWithPorts): New. Class for rules with port numbers 2009-09-11 Bernhard Herzog * test/test_transcoder_map.py (TestTranscoderMapNoWildcards.config_contents) (TestTranscoderMapWithPathWildcards.config_contents) (TestTranscoderMapWithHostWildcards.config_contents): Convert config to new format 2009-09-11 Bernhard Herzog * demo.cfg: Update the inteproxy part to the new syntax and document it. The geobasisdaten.niedersachsen.de URLs are left in the still supported old format for now. 2009-09-11 Bernhard Herzog * inteproxy/transcoder.py (IdentityTranscoder.__init__): New parameter and instance variable rule to hold the inteproxy rule for which the transcoder was instantiated. (IdentityTranscoder.get_password): If the rule already has the credentials, return those instead of the trying to get the password from elsewhere (HTTPSTranscoder.__init__): Add the rule parameter (TranscoderMap.lookup): Now returns the rule instead of the transcoder class (TranscoderMap.get_transcoder): Do the transcoder class lookup here and pass the rule to the transcoder * test/test_owsproxy_post_transcoder.py, test/test_owsproxy_get_transcoder.py: Adapt to transcoder changes. No need for special transcoder classes with predefined passwords anymore since the base classes can handle this now. 2009-09-11 Bernhard Herzog * create-rewrite-rules.py: Substantial changes to adapt to the new features: credentials and wild-card patterns in the config file. Since the credentials are now in the main configuration file, the separate credentials file is not used anymore. * test/test_create_rewrite_rules.py: New. Test cases for the create-rewrite-rules.py script * test/support.py (FileTestMixin.check_file_contents): Add helper method to check file contents 2009-09-11 Bernhard Herzog * test/test_transcoder_map.py (TestTranscoderMapWithPathWildcards.test_get_transcoder_http_proxy) (TestTranscoderMapWithHostWildcards.test_get_transcoder_http_proxy): Add some more corner cases: check that the patterns are matched agains the entire hostname or path and not just a prefix 2009-09-11 Bernhard Herzog * test/test_transcoder_map.py (TestTranscoderMapNoWildcards.test_lookup): Removed this test for an internal method that is adequately tested indirectly anyway. 2009-09-11 Bernhard Herzog * test/support.py (FileTestMixin): Upgrade to a newer version of FileTestMixin. This one uses test specific directory for all files created by a test case and has better documentation. 2009-09-10 Bernhard Herzog * inteproxy/transcoder.py (TranscoderMap.add_rule) (TranscoderMap.lookup): Store the actual InteProxyRule in the list of rules, not just the scheme 2009-09-10 Bernhard Herzog * inteproxy/transcoder.py (TranscoderMap.add_host, TranscoderMap.add_hosts): Removed. These methods are now unused. 2009-09-10 Bernhard Herzog * test/test_transcoder_map.py (TranscoderMapTest.setUp): Use the new TranscoderMap functions 2009-09-10 Bernhard Herzog * test/test_inteproxy.py (ServerTest.create_transcoder_map): Use lists of inteproxy-urls instead of tuples of strings to describe he rules (TestInteProxyURLRewriting.transcoder_definitions): convert the rules to inteproxy urls 2009-09-10 Bernhard Herzog * inteproxy/transcoder.py (TranscoderMap.add_rule, TranscoderMap.add_rules): New. Replacements for add_host and add_hosts (TranscoderMap.__init__): Rename instance variable hosts to rules. (TranscoderMap.lookup, TranscoderMap.rewrite_urls) (TranscoderMap.add_host): Adapt to instance variable change. * create-rewrite-rules.py (read_transcoder_map), inteproxy/main.py (run_server): Use the new TranscoderMap functions 2009-09-10 Bernhard Herzog * inteproxy/config.py (read_config): Rename the config object's hosts attribute to rules to better reflect its new contents * inteproxy/main.py (run_server), create-rewrite-rules.py (read_transcoder_map), test/test_transcoder_map.py (TranscoderMapTest.setUp), test/test_config.py (TestReadConfigProxyAndOldHosts.test_readconfig) (TestReadConfigNewHosts.test_readconfig): Adapt to hosts->rules renaming 2009-09-10 Bernhard Herzog * inteproxy/config.py (read_config): Minor cleanups 2009-09-10 Bernhard Herzog * inteproxy/config.py (HostEntry, InteProxyRule): Replace HostEntry with the more elaborate class InteProxyRule which can handle more parts of an url (parse_inteproxy_url): New. Creates an InteProxyRule from an InteProxy URL (host_desc): In InteProxyRule the classname is called scheme (read_config): Parse the inteproxy-rules section. Use InteProxyRule when parsing the old host sections * inteproxy/transcoder.py (TranscoderMap.add_hosts): Adapt to new InteProxyRule class * test/test_config.py (TestReadConfigProxyAndOldHosts.test_readconfig): Adapt to InteProxyRule class (TestReadConfigNewHosts): Test for the new inteproxy-rules section * test/test_inteproxy_url.py: New. testcases for the inteproxy url parser 2009-09-10 Bernhard Herzog * inteproxy/transcoder.py: Remove unused import 2009-09-10 Bernhard Herzog * inteproxy/transcoder.py (pattern_to_regex): New. Create regular expressions for wild-card patterns (TranscoderMap.__init__): Adapt to wild-card patterns. A simple dictionary mapping (host, path) pairs to classnames doesn't work anymore. Use a list of tuples with regular expression objects and the class name. (TranscoderMap.add_host, TranscoderMap.lookup) (TranscoderMap.rewrite_urls): Adapt to new internal representation. Implement the pattern matching * test/test_transcoder_map.py (TranscoderMapTest): New base class for transcoder map tests. (TestTranscoderMapNoWildcards, TestTranscoderMap): Renamed TestTranscoderMap to TestTranscoderMapNoWildcards and use the new base class (TestTranscoderMapWithHostWildcards) (TestTranscoderMapWithPathWildcards): New classes for transcoder map tests with wild-cards. * test/test_inteproxy.py (TestInteProxyURLRewriting.test_httpproxy_url_rewriting_with_patterns) (TestInteProxyURLRewriting.test_httpproxy_url_rewriting_with_host_patterns): New. Test cases for url-rewriting with wild-cards in the host configuration 2009-09-01 Bernhard Herzog * test/test_transcoder_map.py (TestTranscoderMap.setUp) (TestTranscoderMap.test_lookup) (TestTranscoderMap.test_get_transcoder_http_proxy) (TestTranscoderMap.test_get_transcoder_inteproxy_style): Use the newer way to read the configuration * inteproxy/transcoder.py (TranscoderMap.read_config): Remove this unused method. 2009-03-26 Bernhard Herzog * apache/README.txt: New. README file for the apache version of InteProxy * apache/conf/httpd.conf, apache/conf/platform-debian.conf: New. Default apache configuration with the debian specific part in platform-debian.conf. * demo-credentials.cfg: New. Example configuration file for predefined credentials. * create-rewrite-rules.py: New. Script to create Apache RewriteRule directives from InteProxy configuration. * inteproxy/resources.py (default_credentials_file): New. Returns the default credentials file name. 2009-03-12 Bernhard Herzog Some more debug log improvements: httplibs debug output is activated whenever InteProxy is run with --debug-level > 1 and it's produced for all http requests, not just the https proxy ones. * inteproxy/proxycore.py (InteProxyHTTPRequestHandler.open_http_connection): Set the connection's debug level if InteProxy's debug level > 1. This will prodcue more low-level debug information from http lib, so that it's possible to see exactly what http sends to the server- * inteproxy/proxyconnection.py: Do not set debug_level here. Use the value of the base class instead 2009-03-11 Bernhard Herzog Make connections via https-proxy more correct. * inteproxy/proxycore.py (InteProxyHTTPRequestHandler.open_http_connection): Pass the Host header explicitly to make sure it always refers to the real remote host (connections using the HTTP CONNECT method omitted it under some circumstances but Host is required in HTTP/1.1 requests). * inteproxy/proxyconnection.py (parse_netloc): New method to parse the netloc into host and port (HTTPSProxyConnection.putrequest): Omit scheme and host from the url used in the actual request. Check parameters more thoroughly and only accept callers that want to specify their own Host header. (HTTPSProxyConnection.connect): Adapt to some changes in putrequest 2009-03-11 Bernhard Herzog * test/test_inteproxy.py: Doc-string and minor formatting fixes 2009-03-11 Bernhard Herzog Better logging of httplib debug output: * inteproxy/main.py (DebugLogOut): Helper class to redirect sys.stdout to stdout and stderr for debuggig purposes (setup_logging): If InteProxy is started with debug-level >= 2, use DebugLogOut to have anything written to sys.stdout also written to stderr. This will make debug output from httplib, which is written to stdout, end up in the InteProxy log. 2009-03-10 Bernhard Herzog * HowTo-Release.txt: Add note about updating the copyright notice and translations 2009-03-10 Bernhard Herzog * inteproxy/app.py (InteProxyApplication): Fix typos in doc string 2008-12-19 Stephan Holl * packaging/OpenSuSE10.2/inteproxy-opensuse-10.2.spec: New. New RPM-SPEC-file for OpenSuSE 10.2. 2008-12-05 Stephan Holl * website/pix/favicon.ico: added favicon for the website 2008-12-05 Stephan Holl * demo.cfg: added example-section how to use the InteProxy-upstream-proxy-configuration 2008-11-28 Bernhard Herzog * inteproxy/httpmessage.py (HTTPMessage.debug_log_message): Avoid writing authorization credentials into log files 2008-11-26 Bernhard Herzog * inteproxy/proxycore.py (InteProxyHTTPRequestHandler.open_http_connection): Strip Proxy-Authenticate headers from the response. They must not be sent to the InteProxy client * test/test_inteproxy.py (AuthenticatingProxyRequestHandler.handle_proxy_request): Send a Proxy-Authenticate header when authentication fails (TestInteProxyWithExtraProxyWithIncorrectAuthentication.test): Also test whether the Proxy-Authenticate header was removed by InteProxy 2008-11-26 Bernhard Herzog * inteproxy/proxycore.py (InteProxyHTTPRequestHandler.open_http_connection): Add some comments 2008-11-26 Bernhard Herzog * inteproxy/proxycore.py (InteProxyHTTPRequestHandler.open_http_connection): Handle case where an upstream proxy returns a 407 response (Proxy Authentication Required) by converting it to 502 (Bad Gateway). * test/test_inteproxy.py (TestInteProxyWithExtraProxyWithAuthentication.test): Test whether InteProxy handles 407 responses from upstream proxies by returning 502 itself. 2008-11-26 Bernhard Herzog * inteproxy/proxycore.py (InteProxyHTTPRequestHandler.handle_proxy_request) (InteProxyHTTPRequestHandler.open_http_connection): Move debug print of the response into open_http_connection. 2008-11-25 Bernhard Herzog * inteproxy/proxycore.py (InteProxyHTTPRequestHandler.handle_proxy_request): Fix typo in comment 2008-11-25 Bernhard Herzog * inteproxy/proxycore.py (InteProxyHTTPRequestHandler.open_http_connection): Fix doc-string 2008-11-25 Bernhard Herzog * inteproxy/proxycore.py (InteProxyHTTPRequestHandler.open_http_connection): Add a Proxy-Authorization header if the proxy descripion has a username and password. * test/test_inteproxy.py (TestInteProxyWithExtraProxyWithAuthentication.test): New. Test authorizatin at a remote proxy (AuthenticatingProxyRequestHandler): Helper class that implements a proxy that requires authentication 2008-11-25 Bernhard Herzog * test/test_inteproxy.py (ServerTest.setUp) (ServerTest.create_http_proxy) (TestInteProxyWithExtraProxy.create_http_proxy): Prepare for tests for authentication at remote proxies by having create_http_proxy return username and password too 2008-11-25 Bernhard Herzog * test/test_inteproxy.py: Rearrange imports a little so that they succeed if ony the test_inteproxy tests are run 2008-11-25 Bernhard Herzog * inteproxy/proxycore.py (InteProxyHTTPRequestHandler.open_http_connection): Refactor to reduce code duplication 2008-11-25 Bernhard Herzog * inteproxy/proxycore.py (MasterWorkerServer.__init__): Rename the proxy parameters and instance variables. Their values are no longer strings with urls but objects with attributes. (InteProxyHTTPRequestHandler.open_http_connection): Adapt to the server attribute renaming and new proxy description objects * inteproxy/main.py (handle_proxy_config): New. Handles proxy configuration which may now come from a config file and from environment variables. (run_server): Read the configuration file using inteproxy.config.read_config and pass it's hosts settings to the transcoder map. Also, use handle_proxy_config to create the proxy settings to pass to the server object. * inteproxy/transcoder.py (TranscoderMap.add_hosts): New. Adds host description from a list of objects as returned by the inteproxy.config module * test/test_inteproxy.py (ServerTest.setUp): Adapt to proxy config changes 2008-11-25 Bernhard Herzog * inteproxy/config.py: New module to read the config file. The config file now contains optional proxy settings * test/test_config.py: New. Test cases for the config file reading code * test/filesupport.py: New. Support code for tests involving files. * test/support.py (AttributeTestMixin): New mixin to help test attributes of an object. 2008-09-30 Bernhard Herzog * website/index-de.htm4, website/index.htm4: Updated Intevation's address 2008-09-22 Emanuel Schuetze * packaging/Windows/inteproxy-installer.nsi: Add custom plugin dir. * packaging/Windows/plugins, packaging/Windows/plugins/ExecDos.dll: Add missing ExecDos plugin file. 2008-08-28 Stephan Holl * doc/InteProxy-de.odt: added screenshots for the installation-process, added table of figures 2008-07-14 Stephan Holl * website/index-de.htm4, website/index.htm4: updated URLs and links to the new release 0.4.1 2008-07-14 Stephan Holl * packaging/Windows/inteproxy-installer.nsi: added --rewrite-urls as default. 2008-07-14 Stephan Holl Release-preparations for 0.4.1 * doc/InteProxy-[en|de].odt: updated version-number * inteproxy/main.py, packaging/Windows/Makefile: adopted the version-number to 0.4.1 2008-07-14 Emanuel Schuetze * packaging/Windows/inteproxy-installer.nsi: Allow installation for limited user. Remove non-administrator warning. Changed default instDir. Changed HKLM to HKCU. 2008-07-11 Stephan Holl * demo.cfg: inserted secured WMS-services from LGN to the default configuration 2008-07-04 Bernhard Herzog * inteproxy/gtkapp.py (InteProxyApplication.__init__): Workaround a problem with the keyboard focus on WindowsXP. See the comment for details. Cures the symptom of bug #616. 2008-06-27 Bernhard Herzog * inteproxy/transcoder.py (TranscoderMap.rewrite_urls): Also rewrite remote HTTPS-URLs * test/test_inteproxy.py (TestInteProxyURLRewriting.test_httpproxy_url_rewriting_https_urls): New test for rewriting HTTPS URLs. 2008-06-23 Stephan Holl * website/index.htm4, website/index-de.htm4: updated with new release 0.4.0 2008-06-20 Emanuel Schuetze * packaging/Windows/inteproxy-installer.nsi: Add non-administrator warning for uninstallation. Set correct 'all users' folder for uninstall. 2008-06-20 Stephan Holl * packaging/Windows/Makefile: Adopted the release-date * ChangeLog: added entries from last 2 commits. 2008-06-19 Emanuel Schuetze * packaging/Windows/inteproxy-installer.nsi: Set folder/links for 'all users'. Set correct multilanguage links for user manual. 2008-06-19 Emanuel Schuetze * packaging/Windows/Makefile: Change correct version format for VIProductVersion (needs integer only) 2008-06-19 stephan.holl@intevation.de * packaging/Windows/inteproxy-installer.nsi: Fixed hardcoded version-numbers for PDF-links * ChangeLog: fixed wrong formatting of my last commit 2008-06-19 Stephan Holl Preparations for the 0.4.0 release (website-links need to be updated after the new release has been uploaded to wald to get the correct link) * inteproxy/main.py, packaging/Windows/Makefile: adopted the version-number to 0.4.0 * doc/InteProxy-en.odt, doc/InteProxy-de.odt: Added description for new URL-parameter --rewrite-urls, removed parameter --allow-shutdown, adopted the version-number to 0.4.0 and the release-date to 20.06.2008 * HowTo-Release.txt: updated the new packaging-pathes 2008-06-16 Bernhard Herzog * inteproxy/proxycore.py: Pass the response's version through to the client instread of assuming it's the same as the request version. Update the comment. 2008-06-13 Bernhard Herzog Remove support for the SHUTDOWN HTTP Method. It was inherited from an earlier project where it was used by test cases, but it was never used in InteProxy. * inteproxy/main.py (run_server): Remove support for the --allow-shutdown command line argument * inteproxy/proxycore.py (InteProxyHTTPRequestHandler.do_SHUTDOWN) (InteProxyHTTPRequestHandler.allow_shutdown): Removed. 2008-06-13 Bernhard Herzog * inteproxy/main.py (run_server): Add command line options --rewrite-urls to turn on url rewriting 2008-06-12 Bernhard Herzog * inteproxy/proxycore.py (InteProxyHTTPRequestHandler.rewrite_urls): New method to rewrite URLs in response bodies (InteProxyHTTPRequestHandler.handle_proxy_request): Call rewrite_urls on the response. (MasterWorkerServer.__init__): New parameter and attribute: rewrite_urls. If true, the request handler should rewrite the URLs * inteproxy/transcoder.py (TranscoderMap.rewrite_urls): Actual URL rewriting. It's a method of the transcoder map because that's where the information about the remote hosts is stored. * test/test_inteproxy.py (ServerTest.create_transcoder_map): New method to create a transcoder map (ServerTest.setUp): Extend to create transcoder maps. (TestInteProxyURLRewriting): New. Some URL rewriting tests 2008-06-12 Bernhard Herzog * inteproxy/httpmessage.py: New module with abstractions of http messages. * inteproxy/transcoder.py (TranscoderRequest): Removed. superseded by HTTPRequestMessage * inteproxy/proxycore.py (InteProxyHTTPRequestHandler.handle_proxy_request): Adapt to http message objects (InteProxyHTTPRequestHandler.read_client_request): Return a HTTPRequestMessage instead of a TranscoderRequest (InteProxyHTTPRequestHandler.open_http_connection): Return the response as a HTTPResponseMessage instead of a httplib response object (InteProxyHTTPRequestHandler.handle_response): Adapt to the http message objects. No longer accepts the response_read parameter * inteproxy/feesdialog.py (handle_fees_and_access_constraints): Adapt to the http message objects. No need to return the read method anymore. * test/test_owsproxy_post_transcoder.py (TestOWSProxyPOSTTranscoder.create_transcoder_request) (TestOWSProxyPOSTTranscoder.create_request): Rename create_transcoder_request to create_request and use a HTTPRequestMessage instead of a TranscoderRequest. Update callers 2008-06-12 Bernhard Herzog * inteproxy/proxycore.py (InteProxyHTTPRequestHandler.open_http_connection): Handle URLs with query and fragment parts correctly * test/test_inteproxy.py (TestInteProxy.test_httpproxy_with_query_and_fragment): New test case for URLs with query and fragment parts. 2008-06-12 Bernhard Herzog * test/test_inteproxy.py (ServerTest.remote_contents) (TestInteProxy.remote_contents) (TestInteProxyWithExtraProxy.remote_contents): Move the actual contents from ServerTest to the test classes 2008-06-12 Bernhard Herzog Use httplib instead of urllib2. This makes the code much simpler and we can remove the various workarounds that were added to make urllib2 less intelligent. * inteproxy/proxycore.py (InteProxyHTTPRequestHandler.open_http_connection): New method that opens a http connection using httplib and the proxies defined by the server object, if any. (InteProxyHTTPRequestHandler.handle_proxy_request): Use open_http_connection and do not use urllib2 anymore. (InteProxyHTTPRequestHandler.handle_response): Adapt to httplib response objects (MasterWorkerServer.__init__): Instead of urllib2 openers, takes http_proxy and https_proxy urls as parameters now and makes them available as instance variables * inteproxy/main.py (HTTPRedirectHandler, eat_https_proxy_envvar) (build_opener): Removed. Only needed for urllib2 (run_server): Instead of the urllib2 openers, pass the proxy urls to the MasterWorkerServer * inteproxy/proxyconnection.py (ProxyHTTPConnection) (ProxyHTTPSConnection, ProxyHTTPS10Connection, ConnectHTTPHandler) (ConnectHTTPSHandler, ConnectHTTPS10Handler): Removed. Only needed for urllib2 (HTTPSProxyConnection): New. Connection class for use with httplib that uses the proxy's CONNECT method for connections. * inteproxy/feesdialog.py (handle_fees_and_access_constraints): Adapt to httplib * test/test_inteproxy.py (ServerTest.create_http_proxy): New method to be implemented by derived classes that need additional upstream http proxies (ServerTest.setUp): Allo self.create_http_proxy to create a http proxy whose url is passed to the MasterWorkerServer (ServerTest.tearDown): Stop the proxy server if one was created (TestInteProxyWithExtraProxy): New class with test for an InteProxy that uses another upstrean http proxy to access servers 2008-06-11 Jan-Oliver Wagner * inteproxy.iss: Removed. This was the InnoSetup Windows Installer build script. This has been replaced by NSIS routine in packaging/Windows. * rpm/: Removed. It was empty now. 2008-06-11 Jan-Oliver Wagner * rpm/inteproxy-sles9.spec: Removed. Moved to packaging/SLES9. * packaging/SLES9/inteproxy-sles9.spec: New. Previously in rpm/. * packaging/Windows/license.txt, packaging/Windows/inteproxy-installer.nsi, packaging/Windows/installer-options.ini, packaging/Windows/geninputfiles.sh, packaging/Windows/InteProxy-logo.bmp, packaging/Windows/README.txt, packaging/Windows/Makefile: New. NSIS installer build routine. * HowTo-Release.txt: Moved Windows part to packaging/Windows/README.txt. 2008-06-11 Jan-Oliver Wagner * packaging/: New Directory for any packaging related files. * packaging/SLES9/: New Directory for SLES9 packaging. * packaging/Windows/: New Directory for Windows packaging. 2008-06-11 Bernhard Herzog Make the transcoder map an attribute of the server object. There's no need for a global transcoder map anymore * inteproxy/transcoder.py (transcoder_map): Removed. There is no longer a global transcoder map * inteproxy/proxycore.py (MasterWorkerServer.__init__): New parameter and instance variable transcoder_map for the request handlers to find the transcoders (InteProxyHTTPRequestHandler.handle_proxy_request): Use the server's transcoder_map instead of the global one * inteproxy/main.py (run_server): Create a new transcoder map instead of simply populating the global one and pass the transcoder map to the MasterWorkerServer * test/test_inteproxy.py (ServerTest.setUp): Pass a new empty transcoder map to the MasterWorkerServer 2008-06-10 Bernhard Herzog * test/test_inteproxy.py: New. Functional tests for InteProxy * test/runtests.py (main): Remove proxy environment variables. They may interfere with the InteProxy tests. 2008-06-10 Bernhard Herzog * test/serversupport.py, test/test_httpserver.py: New files. Support code for test cases that run http servers and test cases for the support code and inteproxy.httpserver. 2008-06-10 Bernhard Herzog Move the http openers from the request handler class to the server instance. * inteproxy/proxycore.py (MasterWorkerServer.__init__): New arguments http11_opener and http10_opener that should be used to open HTTP/1.1 and HTTP/1.0 connections (InteProxyHTTPRequestHandler.handle_proxy_request): Use the server's http11_opener and http10_opener instead of expecting the openers as attributes of self or the class * inteproxy/main.py (run_server): Pass the httpopener and http10opener to the ServerClass instead of the setting them as attributes of HandlerClass 2008-06-02 Bernhard Herzog * inteproxy/transcoder.py (TranscoderRequest.debug_log_request), inteproxy/proxycore.py (InteProxyHTTPRequestHandler.read_client_request): Fix NameErrors when processing POST requests. 2008-05-16 Bernhard Reiter * inteproxy/main.py(build_opener()): Removed debug print statement. 2008-05-16 Bernhard Reiter Now the inteproxy-build-in method for SSL Connect proxies is also used in case of HTTP/1.0. * inteproxy/proxycore.py: Removed classes HTTP10HTTPSConnection() and HTTP10HTTPSHandler again. They are not needed for this level and might be added to proxyconnection.py in the future. (class InteProxyHTTPRequestHandler): New variables for urllib2.OpenDirector instances. (handle_proxy_request()): Using new OpenDirector variables to "open". * inteproxy/proxyconnection.py: New classes: ProxyHTTPS10Connection(), ConnectHTTPS10Handler(). * inteproxy/main.py: New functions build_opener() and eat_https_proxy_envvar() to replace now removed setup_urllib2(). Rational: We can only eat the environment variable ones. (run_server()): Using the new functions to set the openers for the HandlerClass. 2008-05-16 Bernhard Reiter * inteproxy/proxycore.py(handle_proxy_request()): Adding the urllib2.ProxyHandler to the used Handlers for the HTTP 1.0 case. 2008-05-15 Bernhard Reiter Changed behaviour: When asked as HTTP 1.0 by the client, we also ask HTTP 1.0 to the server. This prevents Transfer-Encoding: chunked, which an HTTP 1.0 might not be able to handle. * inteproxy/proxycore.py(handle_proxy_request()): Also logging the http protocol version of the received request. * inteproxy/proxycore.py: New classes HTTP10HTTPSConnection and HTTP10HTTPSHandler used by handle_proxy_request() now when self.request_version == "HTTP/1.0". 2008-04-17 Jan-Oliver Wagner * website/Makefile: fix for user name 2008-04-17 Jan-Oliver Wagner * HowTo-Release.txt: More fixes and added item on homepage update. * website/index.htm4, website/index-de.htm4: Updated with new release 0.3.1. 2008-04-17 Jan-Oliver Wagner Doing the 0.3.1 release. * inteproxy.iss, inteproxy/main.py: Raised version number tp 0.3.1. * doc/InteProxy-en.odt, doc/InteProxy-de.odt: Updating according to changes since 0.3.0 and prepared for 0.3.1 release. * HowTo-Release.txt: A bit abstracted. 2008-04-16 Bernhard Herzog * inteproxy/main.py: Use the https_proxy only for HTTPS connections. For HTTP connections, use http_proxy, which is automatically handled by urllib2. 2008-02-27 Jan-Oliver Wagner * website/Makefile: Fixed dependency. 2008-02-27 Jan-Oliver Wagner * website/template_header.m4: Fixed a typo. 2008-02-27 Jan-Oliver Wagner * website/index.htm4, website/index-de.htm4: Updated with new release 0.3.0. 2008-02-27 Jan-Oliver Wagner Doing the 0.3.0 release. * inteproxy.iss, inteproxy/main.py: Raised version number tp 0.3.0. 2008-02-27 Jan-Oliver Wagner * doc/InteProxy-en.odt, doc/InteProxy-de.odt: Updating according to changes since 0.2.0 and prepared for 0.3.0 release. 2008-02-26 Bernhard Herzog * inteproxy/gtkapp.py (run_password_dialog): Make sure the dialog is always on top on windows. Fixes bug #243. 2008-02-22 Bernhard Herzog * inteproxy/transcoder.py (OWSProxyGETTranscoder.convert_request): New method to work around a problem with OWSProxy. See doc-string for details. 2008-02-21 Bernhard Herzog * inteproxy/proxycore.py (InteProxyHTTPRequestHandler.handle_proxy_request): Handle urllib2.URLError exceptions raised by urllib2.urlopen. These are more low-level than the already handled HTTPError exceptions. This avoids exceptions in cases where the client requests /favicon.ico from InteProxy using InteProxy directly as a HTTP-server 2008-02-21 Bernhard Herzog Some refactoring * inteproxy/proxycore.py (InteProxyHTTPRequestHandler.handle_proxy_request) (InteProxyHTTPRequestHandler.handle_response): Move some of the response handling code in handle_proxy_request into the new method handle_response 2008-02-14 Bernhard Herzog Implement http basic auth * inteproxy/transcoder.py (BasicAuthTranscoder): New class to handle HTTP basic authentication (create_transcoder_map): Register BasicAuthTranscoder * test/test_transcoder_map.py (TestTranscoderMap.test_lookup) (TestTranscoderMap.test_get_transcoder_http_proxy) (TestTranscoderMap.test_get_transcoder_inteproxy_style): Add Basic Authorization tests * demo.cfg: Add note about basicauth class 2008-02-14 Bernhard Herzog Make the transcoders more flexible in what they can change in a request * inteproxy/transcoder.py (TranscoderRequest): New class to represent a request (IdentityTranscoder.convert_body): Removed. Use convert_request instead (IdentityTranscoder.convert_request): New. Replaces convert_body and works on a whole request instead of just the body (OWSProxyPOSTTranscoder.convert_body) (OWSProxyPOSTTranscoder.convert_request): Renamed from convert_body to convert_request and adapted accordingly * inteproxy/proxycore.py (InteProxyHTTPRequestHandler.handle_proxy_request): Adapt to the transcoder changes (InteProxyHTTPRequestHandler.read_client_request): New. Read the client request and return it as a TranscoderRequest instance * test/test_owsproxy_post_transcoder.py (TestOWSProxyPOSTTranscoder.create_transcoder_request): New. Helper method to instantiate a TranscoderRequest (TestOWSProxyPOSTTranscoder.test_username_password_substitution): Adapt to transcoder changes 2008-02-14 Bernhard Herzog * inteproxy/proxycore.py (InteProxyHTTPRequestHandler.handle_proxy_request): Remove the method parameter. Its value is always the same as self.command and handle_proxy_request takes all other information about the request from instance variables anyway. Update the doc-string (InteProxyHTTPRequestHandler.do_GET) (InteProxyHTTPRequestHandler.do_POST): Adapt to handle_proxy_request changes 2008-02-05 Bernhard Herzog * inteproxy/feesdialog.py (handle_fees_and_access_constraints): Only attempt to handle the response if the request was successful. Trying to parse error responses as a GetCapabilities XML structure won't work. 2007-10-23 Bernhard Herzog * demo.cfg: Explain how to deal with multiple server on the same remote host to avoid problems that can occur with multiple sections with the same name 2007-08-31 Jan-Oliver Wagner * HowTo-Release.txt: Optimized tar-archive creation. 2007-06-06 Jan-Oliver Wagner * HowTo-Release.txt: Added note on tagging releases. 2007-05-18 Stephan Holl * website/index.htm4, website/index-de.htm4: updated links to Release 0.2.0 2007-05-18 Jan-Oliver Wagner Release 0.2.0. * HowTo-Release.txt: Various additional steps for Windows Installer creation. * setup.py: extend setup rules to consider some Windows specific issues. * doc/InteProxy-de.odt, doc/InteProxy-en.odt: Finally the real date of release. 2007-05-18 Bernhard Herzog * inteproxy/main.py (setup_language): New function to set locale environment variables for gettext if they're not set yet. Improves locale handling on windows. (run_server): call setup_language 2007-05-16 Bernhard Herzog * inteproxy/resources.py (default_config_file): New function to determine the name of the default configuration file. * inteproxy/main.py (run_server): Use the new default_config_file function. 2007-05-16 Bernhard Herzog * inteproxy/resources.py (in_py2exe): New function to determine whether the program is running in a py2exe generated execitable * inteproxy/main.py (setup_logging): New function to setup logging. (run_server): Call setup_logging to initialize the logging and do it immediately after reading the config file, to avoid logging info to end up in the wrong place. 2007-05-16 Jan-Oliver Wagner Preparing 0.2.0 release. * HowTo-Release.txt: Updated especially the Windows Installer part. * inteproxy.iss, inteproxy/main.py: Increase version to 0.2.0. * doc/InteProxy-de.odt, doc/InteProxy-en.odt: Final typos, added date of release. 2007-05-16 Bernhard Herzog * inteproxy/resources.py (share_dir): When running InteProxy as an exectuable created with py2exe, determine the value of share_dir relative to the filename of the executable. 2007-05-16 Stephan Holl * doc/InteProxy-de.odt: typos * doc/InteProxy-en.odt: Updated english version to get it in parallel with german as well. Introducing layout and formatting from german version 2007-05-16 Jan-Oliver Wagner * doc/InteProxy-de.odt: Some fixes/typos here and there. 2007-05-14 Stephan Holl * doc/InteProxy-de.odt: Updated documentation for upcoming release: - added parts GUI, HTTP-webproxy, I18N, AccessConstraints/Fees, Bugfixes, Typos. needs some review, also translation into english needs to be done. 2007-05-10 Bernhard Herzog Reworked the way other threads open dialogs to make it work properly on windows. * inteproxy/gtkapp.py (InteProxyApplication.__init__): Initialize the gtk threads acquire the gtk lock here. See updated class doc-string for some more details. (InteProxyApplication.run): gtk.gdk.threads_init() moved to __init__ (InteProxyApplication.get_password) (InteProxyApplication.run_fees_dialog): Use call_in_gtk_thread to run the dialogs. (InteProxyApplication.is_gtk_thread): New method to determine whether a thread is the gtk thread. (InteProxyApplication.call_in_gtk_thread): New method to run a callback in the gtk thread. Used to run dialogs in the gtk thread. The method returns when the callback has returned in the gtk thread. 2007-05-10 Bernhard Herzog * inteproxy/resources.py (gettext): Handle case where the translation cannot be loaded. 2007-05-08 Bernhard Herzog * inteproxy/InteProxy-icon.png, inteproxy/InteProxy-logo.png, share/images/InteProxy-icon.png, share/images/InteProxy-logo.png: Moved the images to share/images. * inteproxy/resources.py (share_dir): Name of the share subdirectory determined at import time from the filename of the resources module (gettext): Use the share_dir variable (image_filename): Return image filenames relative to share_dir/images now. 2007-05-08 Bernhard Herzog * inteproxy/gtkapp.py (image_filename), inteproxy/resources.py (image_filename): Moved from gtkapp to resources 2007-05-08 Bernhard Herzog * inteproxy/gtkapp.py (InteProxyTextView.__init__): Add Tag "bold" (InteProxyMainWindow.__init__): Rephrase the text in the main window * po/de.po: Updated. 2007-05-08 Bernhard Herzog * po/de.po: New. German translations * po/Makefile: New. Commands to manage translations * po/README: New. Notes aout translations in InteProxy * inteproxy/resources.py: New. Provides acces to resources bundled with inteproxy. For now only implements translations. * inteproxy/gtkapp.py (InteProxyApplication), inteproxy/getpassword.py (get_password_with_cache): Internationalization of strings 2007-05-07 Bernhard Herzog * inteproxy/gtkapp.py, inteproxy/getpassword.py: Mark strings for translation 2007-05-07 Bernhard Herzog * inteproxy/feesdialog.py (handle_fees_and_access_constraints): Remove the little test exececuted when the module is run as a script. It doesn't work anymore and the dialog is now in gtkapp.py anyway. 2007-05-07 Bernhard Herzog * inteproxy/main.py (setup_urllib2): Do not instantiate a urllib2.HTTPBasicAuthHandler. Now InteProxy passes 401 responses ("Unauthorized") through to the client. (IntePasswordManager): Removed because it's no longer used. 2007-05-07 Bernhard Herzog * inteproxy/gtkapp.py (InteProxyTextView.__init__): Add two new default tags: "title" and "heading" (run_fees_dialog): Replace the label widgets with one InteProxyTextView instance. 2007-05-07 Bernhard Herzog * inteproxy/gtkapp.py (InteProxyTextView) (InteProxyMainWindow.__init__): Move some of the TextView initialization into the separate new class InteProxyTextView. 2007-05-04 Bernhard Herzog Fix for issue #369 * inteproxy/main.py (HTTPRedirectHandler): New. A HTTPRedirectHandler for urllib2 that switches off redirection handling. (setup_urllib2): Install HTTPRedirectHandler too. 2007-05-04 Bernhard Herzog * inteproxy/main.py (setup_urllib2): Build a list of handlers incrementatlly so that we can call build_opener in once place instead of two. 2007-05-02 Bernhard Herzog * inteproxy/feesdialog.py (handle_fees_and_access_constraints): Keep a copy of the response data around, so that it's passed to the caller properly. 2007-05-02 Bernhard Herzog * inteproxy/feesdialog.py: Remove special case for missing title. It should alway be present and it would make more sense to handle this case in the caller. 2007-05-02 Bernhard Herzog * inteproxy/transcoder.py (OWSProxyGETTranscoder.get_url): Only modify the URL if the user didn't cancel the username/password dialog 2007-05-02 Bernhard Herzog * inteproxy/getpassword.py (get_password_with_cache): Only add username/password to the cache if the user didn't cancel. 2007-05-02 Bernhard Herzog * inteproxy/gtkapp.py (StatusIcon.__init__) (InteProxyApplication.__init__): Move the logic that makes the status icon optional from InteProxyApplication to the StatusIcon, making InteProxyApplication a little simpler. (InteProxyApplication.__init__): Wait until the StatusIcon is actually shown before deciding whether to remove menu items and show the main window immediately. (StatusIcon.is_embedded, InteProxyApplication.hide_main_window): Adapt to the changed logic. 2007-05-02 Bernhard Herzog * inteproxy/gtkapp.py (InteProxyApplication.__init__): If no status icon is shown hide the File/Close menu item because it would hide the window, leaving the user without a way to quit InteProxy. (StatusIcon.is_embedded): New. Delegates to gtk.StatusIcon.is_embedded 2007-05-02 Bernhard Herzog * inteproxy/app.py: Remove unused imports 2007-05-02 Bernhard Herzog * inteproxy/main.py (run_server): Import the gtkapp module in the main function to avoid loading it when running test cases. Otherwise the gtk module will be loaded which requires a working X server connection. 2007-05-02 Bernhard Herzog * inteproxy/feesdialog.py (run_fees_dialog): Moved to gtkapp.py. * inteproxy/gtkapp.py (run_fees_dialog): Copy of feesdialog.run_fees_dialog, but changed to assume that gtk is available. * inteproxy/app.py (InteProxyApplication.run_fees_dialog): Turned into an abstract method 2007-04-30 Bernhard Herzog * inteproxy/getpassword.py: Remove top-level test code that runs the password dialog. 2007-04-30 Bernhard Herzog * inteproxy/getpassword.py (getpassword): Moved to gtkapp.py. * inteproxy/gtkapp.py (run_password_dialog): Copy of getpassword.getpassword, but changed to include a doc-string and the correct return value when the dialog is cancelled. (InteProxyApplication.get_password): Overwrite the inherited method to vall run_password_dialog. * inteproxy/app.py (InteProxyApplication.get_password): Turned into an abstract method 2007-04-30 Bernhard Herzog * inteproxy/gtkapp.py (run_about_dialog): New. Convenience function to run gtk.AboutDialog with properties given as keyword arguments. (InteProxyApplication.run_about_dialog): Use the new run_about_dialog function to run the dialog. Now the dialog shows the logo, version, copyright information and the web site URL. 2007-04-30 Bernhard Herzog * inteproxy/gtkapp.py (load_image): New. Loads an image as a pixbuf (InteProxyMainWindow.__init__): Use load_image to load the logo 2007-04-30 Bernhard Herzog * inteproxy/InteProxy-logo.png: New. InteProxy logo. * inteproxy/proxycore.py (MasterWorkerServer.get_inteproxy_url): New method to return the url of the inteproxy * inteproxy/gtkapp.py (image_filename): New. Determines the filename of image files bundled with inteproxy. (InteProxyMainWindow.__init__): Better content for the main window: the InteProxy logo and a hint about the usage as an HTTP proxy including the proxy URL. 2007-04-27 Bernhard Herzog * inteproxy/getpassword.py: Remove the code for the non-gtk user interface: (getpassword_pywin, getpassword_tty): removed. 2007-04-26 Bernhard Herzog * inteproxy/app.py: New. Base application class. * inteproxy/gtkapp.py: New. GTK based application with mainwindow and status icon * inteproxy/main.py (the_application): New. Global variable to hold the application object (run_server): Instantiate the gtk InteProxyApplication and run it. * inteproxy/getpassword.py (get_password_with_cache): Ask for the password via the application. * inteproxy/feesdialog.py (handle_fees_and_access_constraints): Run the dialog via the application * inteproxy/httpserver.py (ServerThread): New. Class to run the proxy server in a separate thread. * inteproxy/InteProxy-icon.png: New. Status icon. * inteproxy/proxycore.py: Tweak import statements because of newly introduced circular imports. 2007-04-24 Bernhard Herzog * InteProxy.py, inteproxy/main.py: Move practically everything from InteProxy.py to the new file inteproxy/main.py. InteProxy.py now only imports a function from inteproxy.main and calls it. 2007-04-24 Bernhard Herzog * inteproxy/proxycore.py: New. Core classes and functions of InteProxy. * InteProxy.py (MasterWorkerServer, InteProxyHTTPRequestHandler) (log_date_time_string): Moved to inteproxy/proxycore.py 2007-04-24 Bernhard Herzog * inteproxy/httpserver.py: New. Move parts of InteProxy.py here to form a new base class for HTTP servers that can be run in a thread and stopped from other threads. * InteProxy.py (MasterWorkerServer): Derive from inteproxy.httpserver.HTTPServer (MasterWorkerServer.serve_forever, MasterWorkerServer.server_close): Removed. They're in the base classe now. 2007-04-24 Stephan Holl * rpm/inteproxy-sles9.spec: Updated to reflect the backported python2.4-packages. created a wrapper-script to run from whithin the path. 2007-04-23 Bernhard Herzog * inteproxy/feesdialog.py: New. Dialog for fees and access constraints and code to extract the information from a GetCapabilities response. * InteProxy.py (InteProxyHTTPRequestHandler.handle_proxy_request): Show the feesdialog when appropriate 2007-04-23 Bernhard Herzog * inteproxy, inteproxy/__init__.py: New. Introduce inteproxy package for better code organisation * getpassword.py, proxyconnection.py, threadpool.py, transcoder.py: Moved to the new inteproxy package * InteProxy.py, test/test_owsproxy_get_transcoder.py, test/test_owsproxy_post_transcoder.py, test/test_threadpool.py, test/test_transcoder_map.py: Adapt to code reorganization 2007-04-20 Stephan Holl * website/index-de.htm4: german translation finished 2007-04-20 Stephan Holl * website/index.htm4: typos, small corrections * website/template_header.m4: added logic to switch lang also for workflow-subtext/headline * website/Makefile: added clean target 2007-04-20 Jan-Oliver Wagner * website/index.htm4: Some Typos fixed, clean-ups. 2007-04-20 Stephan Holl * website/pix/InteProxy-WorkFlow-de.png, pix/InteProxy-WorkFlow-en_small.png, pix/InteProxy-WorkFlow-en.png: New. workflow-graphics for website * pix/InteProxy-logo.png: shrinked * index.htm4: addded english texts, links * template_header.m4: added div for workflow, footer * inteproxy.css: changed color schema to grey/blue 2007-04-20 Stephan Holl * rpm/inteproxy-sles9.spec: New. added SPEC-file to build inteproxy-0.1.2-RPMs on SLES9 2007-04-19 Jan-Oliver Wagner * website/website, website/index.htm4, website/inteproxy.css, website/index-de.htm4, website/Makefile, website/template.m4, website/template_header.m4, website/pix, website/pix/InteProxy-logo.png: New. Coarse skeleton for a website. 2007-04-19 Jan-Oliver Wagner * doc/InteProxy-de.odt: Proof-reading and various small improvements. 2007-04-18 Bernhard Herzog * threadpool.py: New. Simple thread pool class to replace the global queue and worker thread function in InteProxy.py * test/test_threadpool.py: New. Tests for the thread pool * InteProxy.py (the_queue, worker_thread): Removed. The functionality is now in threadpool.py (MasterWorkerServer.__init__): New. Extend base class method to initialize a thread pool (MasterWorkerServer.process_request): Handle requests with the thread pool (run_server): Adapt to MasterWorkerServer and thread pool changes. 2007-04-18 Bernhard Herzog * InteProxy.py (InteProxyHTTPRequestHandler): Fix debug level comment. 2007-04-18 Stephan Holl * doc/InteProxy-de.odt: changed the URL for OL app to demo.intevation.org, some typos, fixes 2007-04-17 Stephan Holl * doc/InteProxy-de.odt: updated docs with scenario of adding secure to webmap-clients, Niedersachsenviewer Plus, OpenLayers 2007-04-17 Bernhard Herzog * getpassword.py: Add new window system "gtk". gtk is the default now. Also, the getpassword module can be run directly as a script now, to test the default dialog. (getpassword_gtk): New. Implements a simple password dialog using gtk 2007-04-17 Jan-Oliver Wagner * doc/InteProxy-logo.svg, InteProxy-logo.png: New. The logo of InteProxy. 2007-04-17 Bernhard Herzog * InteProxy.py (run_server): Use an absolute filename for the default config file, so that it must be in the same directory as InteProxy.py and we don't accidentally pick up other config files if InteProxy is started with a different working directory. 2007-04-12 Stephan Holl * InteProxy-de.odt/InteProxy-en.odt: Update of documentation + Adding header/footer/pagenumbers + Describing all calling-parameter-options + Adding section about configuration-file + describing scenario how to use InteProxy as webproxy _and_ OWSProxy + text-cosmetics 2007-04-12 Bernhard Herzog * InteProxy.py: Import getpassword to make http basic authentication work again. 2007-04-11 Bernhard Herzog * test/test_transcoder_map.py (TestTranscoderMap.test_get_transcoder_http_proxy) (TestTranscoderMap.test_get_transcoder_inteproxy_style): New. Tests for the get_transcoder method. (TestTranscoderMap.test, TestTranscoderMap.test_lookup): Renamed the test method to test_lookup. 2007-04-11 Bernhard Herzog * transcoder.py (TranscoderMap.get_transcoder, get_transcoder): Turn the get_transcoder function into a method of TranscoderMap. * InteProxy.py (InteProxyHTTPRequestHandler.handle_proxy_request): get_transcoder is now a method of the transcoder map. 2007-04-11 Bernhard Herzog * transcoder.py (get_transcoder): Simplify the logic. We only need to special case the "old" inteproxy style 2007-04-11 Bernhard Herzog * transcoder.py (get_transcoder): Make "http" the default scheme for the old InteProxy case, so that inteproxy by default simply forwards the requests. 2007-04-05 Bernhard Herzog * transcoder.py (TranscoderMap): Add a doc-string 2007-04-05 Bernhard Herzog * test/test_transcoder_map.py: New. Test cases for the TranscoderMap * test/support.py: New. Support code for test cases 2007-04-05 Bernhard Herzog * transcoder.py (create_transcoder_map): New. Creates the default transcoder map 2007-04-05 Bernhard Herzog * transcoder.py (IdentityTranscoder): Turn it into a new-style class (HTTPSTranscoder.__init__): Use super to call the base class constructor 2007-04-05 Bernhard Herzog * transcoder.py (IdentityTranscoder): Fix doc-string 2007-04-05 Bernhard Herzog * InteProxy.py (run_server): Add command line option --config-file with default inteproxy.cfg. Read the transcoder configuration from the file specified with this option. * transcoder.py (HTTPSTranscoder): New base class for the OWSProxy transcoders. HTTPSTranscoder turns all URLs into https urls. (TranscoderMap): New class for the transcoder_map. This takes care of the lookup and can read a config file. (transcoder_map): Is now a TranscoderMap instance. (get_transcoder): Uses transcoder_map directly now. Also no longer hard-wires conversion to https urls. (lookup_transcoder): removed again. It functionality is now part of transcoder_map * demo.cfg: New. Example configuration. 2007-04-05 Bernhard Herzog * InteProxy.py (InteProxyHTTPRequestHandler.transfer_data.limit_length): If debug level is less than two, limit the length of the debug output with the actual data transferred. When all the data is shown the other usually more interesting debug information is easily overlooked. 2007-04-05 Bernhard Herzog First step towards http proxy. InteProxy can be used as a http proxy now as well (it still supports the old mode at the same time). This implements part of feature request #349 * transcoder.py (lookup_transcoder): New method extracted from get_transcoder to handle the actual transcoder lookup. (get_transcoder): Handles the case when InteProxy is used as an HTTP Proxy. 2007-04-04 Bernhard Herzog * InteProxy.py (run_server): The default value of the debug level is now 0 instead of None 2007-03-29 Jan-Oliver Wagner Preparing release 0.1.2. * doc/InteProxy-en.odt, doc/InteProxy-de.odt: Updated and added title page, table of contents, workflow figure, version history. Raised version to 0.1.2. * doc/InteProxy-WorkFlow-en.odg: New. English translation of the german version. * HowTo-Release.txt: New. Describes roughly how to make a new InteProxy release. * InteProxy.py, inteproxy.iss: Raised version to 0.1.2. 2007-02-13 Jan-Oliver Wagner * doc/InteProxy-WorkFlow-de.odg: New. Figure that illustrates the work flow for InteProxy. 2007-02-08 Bernhard Herzog * transcoder.py (OWSProxyPOSTTranscoder.convert_body): Handle WFS Transaction in the same way as GetFeature. Based on a patch by Stephan Holl 2007-02-08 Bernhard Herzog * InteProxy.py (InteProxyHTTPRequestHandler.handle_proxy_request): Set the protocol version of the InteProxyHTTPRequestHandler to the version used in the request. Ideally it should be set to the version of the reply received from the remote host. But that's not possible to implement with urllib2. See the comments in the code. Fixes issue #271. 2007-02-08 Bernhard Herzog * InteProxy.py (run_server): New option --workers to specify the number of the worker threads. Default is 5. run_server now starts the requested number of threads. * getpassword.py (get_password_with_cache): Access the password cache in a thread-safe way. 2007-02-08 Bernhard Herzog * test/runtests.py, test/test_owsproxy_post_transcoder.py, test/test_owsproxy_get_transcoder.py: New files with the beginnings of a test suite. 2007-02-08 Bernhard Herzog * transcoder.py (OWSProxyGETTranscoder.get_url): Quote username and password properly. 2007-02-07 Bernhard Herzog * getpassword.py: Remove unused import 2007-02-07 Bernhard Herzog * transcoder.py: New module for classes that are used to modify http requests * InteProxy.py (InteProxyHTTPRequestHandler.handle_proxy_request): Use a transcoder to convert urls and -- this is new -- also the body of the request if there is one. (InteProxyHTTPRequestHandler.convert_url): Removed. The functionality of this method is now in the transcoder module 2007-02-07 Bernhard Herzog * getpassword.py: New module for the password handling code. * InteProxy.py: Move the password handling into a separate module. (InteProxyHTTPRequestHandler.convert_url): Use the new getpassword module 2007-01-30 Bernhard Herzog * InteProxy.py (getpassword_crt, getpassword_tty): renamed getpassword_crt to getpassword_tty. "tty" is a better term for the terminal "window system" than "crt" 2007-01-30 Bernhard Herzog * InteProxy.py (InteProxyHTTPRequestHandler.handle_proxy_request): Read the client request body before the new https request for the actual server is created. This will make it easier to deal with cases wehre the body has to be modified. 2007-01-30 Bernhard Herzog Add a --debug-level option. * InteProxy.py (InteProxyHTTPRequestHandler.debug_level): New class variable indicating the debug level. (InteProxyHTTPRequestHandler.handle_proxy_request) (InteProxyHTTPRequestHandler.transfer_data): log debug information (InteProxyHTTPRequestHandler.log_debug): New method to actually log the debug message if debug_level > 0 (setup_urllib2): New parameter debuglevel which is passed through to the various http handlers to activate their debug output. (run_server): New command line option --debug-level to set the debug level. 2007-01-26 Bernhard Herzog * InteProxy.py (InteProxyHTTPRequestHandler.handle_proxy_request): Fix typo in comment 2006-12-04 Jan-Oliver Wagner * InteProxy.py, inteproxy.iss: Updating version number to 0.1.1. 2006-12-04 Jan-Oliver Wagner * doc/InteProxy-de.odt, doc/InteProxy-en.odt: Updated and extended documentation for upconing 0.1.1 release. 2006-11-16 Thomas Arendsen Hein * InteProxy.py (setup_urllib2): Use proxyconnection module when https_proxy environment variable is set. 2006-11-16 Thomas Arendsen Hein * proxyconnection.py (ConnectHTTPHandler, ConnectHTTPSHandler): Set proxy via ConnectHTTPHandler/ConnectHTTPSHandler, this fixes redirections and makes setting the proxy easier. Taken from Norm Petterson's comment on 2005-05-04: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/456195 2006-11-16 Thomas Arendsen Hein * proxyconnection.py (ProxyHTTPConnection.request): "int(port)" instead of just "port", so passing ports really works "rest or '/'" instead of "url" to make HTTP/1.0-only servers happy (__main__): use sys.argv for passing URL and proxy:port for tests. 2006-11-16 Thomas Arendsen Hein * proxyconnection.py: New. urrlib2 opener for SSL proxy (CONNECT) 2006-11-16 Jan-Oliver Wagner * InteProxy.py (inteproxy_version): New. Version string. (setup_urllib2): Replaced HTTPHandler by ProxyHandler to make InteProxy use Proxies properly. (run_server): Print out version at startup. 2006-11-13 Jan-Oliver Wagner * inteproxy.iss: Updated to 0.1. 2006-11-13 Jan-Oliver Wagner Updated documentation. * doc/InteProxy-de.odt: Updated and extended. * doc/InteProxy-en.odt: New. English version. 2006-11-13 Jan-Oliver Wagner * InteProxy.py (pw_cache): Added global password Cache. (InteProxyHTTPRequestHandler.convert_url): Added use of password cache. 2006-11-01 Jan-Oliver Wagner * doc/InteProxy-de.odt: New. German user documentation for InteProxy. 2006-11-01 Jan-Oliver Wagner * setup.py: New. Setup rule for py2exe. * inteproxy.iss: New. InnoSetup setup file for InteProxy. 2006-10-31 Jan-Oliver Wagner * InteProxy.py (InteProxyHTTPRequestHandler.convert_url): Added mandatory user authentication dialog and adding the authentication data in the deegree OWS-Proxy syntax to the proxied URL. * ChangeLog: Started.