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.