It's been a while since we've had a stable release but at last
Glype 1.0 is available for
download.
You may also have noticed a few changes to the website. There's a new wiki for documentation and the main site has been revamped and updated. The plan is to introduce an automated themes section as well, for easier sharing and downloading of glype themes. Your glype forums account will keep you logged in on all sections of the website - including granting permission to edit the docs wiki.
It's likely there will be a few kinks in the new system so please bear with us if anything breaks down and I'll try to get it sorted as soon as possible.
_________________________________________________
Going back to the proxy script, the 1.0 Final has been in the works for a while now so if you've been keeping up with the pre-releases, there's nothing else new here. For everyone else, the 1.0 release notes are below.
About
The 1.0 thread is a complete rewrite of the 0.X thread to be better structured, more logical and easier to follow and maintain. It's also fixed a number of limitations and bugs from the old thread. The parsing functions have been extensively benchmarked for the best balance between speed and compatibility. And of course, a couple of new features have been added for a better browsing experience and simpler customization.
_________________________________________________
Changes
There have been many, many changes since the last stable release. These notes do not include bugfixes made during the 0.6 thread but will briefly mention the new features that were incorporated at that time.
New Features
- Server load limiting option. The script checks the current server load every minute and if it's above the set limit, stops fetching pages.
- Added server-side cookie storage as an option. Not recommended but if you do have problems with an excessively large Cookie: request header, this is a solution.
- Maintenance can be scheduled to run periodically without setting up a cron job. The maintenance script will automatically clear out all cached files, all old cookie files (if using that option) and log files that are more than X days old. The maintenance script is executed every Y hours, as specified in the settings file.
- Added a /tmp/ directory. Upload all the files, set the /tmp directory to be writable and ALL options instantly work without further permissions needing to be set. Admittedly, in previous versions the only writable folders we needed were for logging and caching but now we use the temp directory a lot more (i.e. for all the above features!)
- Cookie domains, names and values can now be encoded. This increases the time it takes to find relevant cookies since all have to be decoded before examining the domain to know if we want to send it. Unless you are very concerned about anonymity, this probably isn't worth the extra time.
- More formats of IP address ranges are now accepted. The script now only checks the IP address once per session (unless it changes) which allows us to spend much more time doing the check. It's now feasible to accept IP address ranges in any format (within reason). Currently supported formats are:
- 127.0.0.1
- 127.0.0.1-127.0.0.5
- 192.168.17.1/16
- 189.128/11
- 127.0.0.1/255.255.255.255
Enhanced functionality
- Fixed the forwarding of multipart forms to work correctly and added support for file uploads.
- Added a number of cURL performance related options to browse.php. These are hardcoded into browse.php and can be adjusted if you want to spend time trying out new configurations. These options include a max number of connections cURL should make to target servers, the DNS cache timeout and speed limits (aborts the transfer if going too slowly to free up resources).
- "Accept" headers are now forwarded to the target server. These should help get content in the desired language if the proxy server is located in a foreign country.
- The script now follows the Netscape specification with regard to multiple cookies with the same name and same domain but different paths. Before, it would only have sent the name=value of the more complete path match but now it sends both, as per the spec. It also obeys the Max-Age attribute as described in RFC2109.
- Increased flexibility of plugins - the plugin is now loaded much earlier into the script to give more flexibility over the code that runs before the request. There's also a new "preRequest()" hook that will be run immediately before the request (where plugins used to be loaded) if the new point of entry causes problems.
- Downloads can now be resumed (subject to the "resume transfers" option).
- Error handling has been updated. If cURL encounters an error, the script redirects back to the index page and displays the error message there instead. The error message also includes a link to reload the requested page. An array of "friendly" error messages has been added to the /includes/init.php to be displayed on mouseover to explain any HTTP errors which the user may not necessarily understand.
- The need for javascript parsing is substantially reduced by overriding native javascript functions in our proxy 'injected' javascript. Although this is not entirely cross-browser compatible, the overriding functions are tested on first load and the ability of your browser is sent back to the script. The script then makes any changes server-side that can't be accomplished client-side. Essentially this means that the work that the server needs to do will depend on the browser that is requesting the page. Everything that can be done client-side is done in Firefox 3. I've only tested with Firefox 3 and Internet Explorer 7.
Miscellaneous
- New default theme! All templates (including the framedForm) have been updated. Added back is the "banned.page.php" template that is shown when the visitor is in a blocked IP range. The theme itself has been renamed from "glype" as in old versions to "default".
- New format for the settings file. Instead of constants we use a $CONFIG array now. Constants were the obvious choice when the values would never change. Now with plugins, it's more sensible to use variables.
- Removed options:
- Encode Index - much more efficient and cross-browser to only encode the relevant parts manually
- Site Name - this has been moved out of the settings file and into the theme config file
- Log Until X
Extras
- The script now comes with a stock privacy policy, terms of use and disclaimer.
- The Manage Cookies page is back and works as in the old versions. It lists the proxified cookies and lets you delete them.
- New at 1.0 is the Edit Browser page/feature that lets you choose a custom user-agent and referrer. You can also tunnel through another proxy server (HTTP or SOCKS5 - not another web proxy).
- Admin tool for easy proxy management.
_________________________________________________
Compatibility
-
Themes: there is a new format for theme tags now: <!--[tag_name]-->. As you might recognise, it's missing the "glype:" from previous versions. For the time being, this is backwards compatible and either format will work but any new themes wishing to be forward-compatible should use the new format.
-
Settings: as already mentioned, the settings file is completely different so old settings files will not work.
-
Plugins: plugin compatibility completely depends on what code is in the plugin - some will work without any changes, others will need updating.
_________________________________________________
Notes
-
Important! The new /tmp/ directory will, by default, create potentially sensitive files below your webroot (logs and cookie data, if cookies are stored server-side). The script creates a .htaccess file in directories where access from the internet should be blocked but obviously that will only work if you're running Apache. The best option would be to set the temp directory above your webroot to prevent unauthorised access, then create a new cache folder below the webroot.
_________________________________________________
Preview
Proxy |
Control Panel
_________________________________________________
Download
The package is available in the
downloads section.
_________________________________________________
Configuration
Upload the admin.php tool from the /extras/ folder to your root proxy folder. Run it in your browser and follow the instructions. Alternatively, manually edit the /includes/settings.php file.
_________________________________________________
Feedback
Please post bug reports in the
appropriate forum.