privoxy.git
10 years agoAdd Ian to the team
Ian Silvester [Mon, 5 Mar 2012 00:37:40 +0000 (00:37 +0000)]
Add Ian to the team

10 years agoAdd Ian to the team
Fabian Keil [Sun, 4 Mar 2012 11:55:42 +0000 (11:55 +0000)]
Add Ian to the team

10 years agoBump copyright
Fabian Keil [Sun, 4 Mar 2012 11:54:22 +0000 (11:54 +0000)]
Bump copyright

10 years agoUpdate 'Signals' section, the only explicitly handled signals are SIGINT, SIGTERM...
Fabian Keil [Sun, 4 Mar 2012 11:54:00 +0000 (11:54 +0000)]
Update 'Signals' section, the only explicitly handled signals are SIGINT, SIGTERM and SIGHUP

10 years agoReplace strdup() calls with strdup_or_die() calls where it's safe and simplifies...
Fabian Keil [Sun, 4 Mar 2012 11:53:26 +0000 (11:53 +0000)]
Replace strdup() calls with strdup_or_die() calls where it's safe and simplifies the code

10 years agoAdd strdup_or_die() which will allow to simplify code paths were strdup() failures...
Fabian Keil [Sun, 4 Mar 2012 11:52:45 +0000 (11:52 +0000)]
Add strdup_or_die() which will allow to simplify code paths were strdup() failures don't need to be handled gracefully

10 years agoUse privoxy_tolower() instead of vanilla tolower() with manual casting of the argument
Fabian Keil [Sun, 4 Mar 2012 11:51:49 +0000 (11:51 +0000)]
Use privoxy_tolower() instead of vanilla tolower() with manual casting of the argument

10 years agoRename ijb_foo macros to privoxy_foo
Fabian Keil [Sun, 4 Mar 2012 11:51:25 +0000 (11:51 +0000)]
Rename ijb_foo macros to privoxy_foo

10 years agoRelocate ijb_isdigit()'s definition to project.h
Fabian Keil [Sun, 4 Mar 2012 11:50:32 +0000 (11:50 +0000)]
Relocate ijb_isdigit()'s definition to project.h

10 years agoRephrase a comment
Fabian Keil [Sun, 4 Mar 2012 11:49:44 +0000 (11:49 +0000)]
Rephrase a comment

10 years agoRelocate ijb_isupper()'s definition to project.h and get the ijb_tolower() definition...
Fabian Keil [Sun, 4 Mar 2012 11:49:24 +0000 (11:49 +0000)]
Relocate ijb_isupper()'s definition to project.h and get the ijb_tolower() definition from there, too

10 years agoShorten bindup()
Fabian Keil [Sun, 4 Mar 2012 11:48:54 +0000 (11:48 +0000)]
Shorten bindup()

10 years agoFix hash_string()'s description
Fabian Keil [Sun, 4 Mar 2012 11:48:34 +0000 (11:48 +0000)]
Fix hash_string()'s description

As far as Privoxy is concerned the function only has
one use case. Whether or not it's anyone's favorite
is not particularly important.

Also the documented return code type didn't match reality.

10 years agoRemove the ijb_isupper() and ijb_tolower() macros which aren't used in this file
Fabian Keil [Sun, 4 Mar 2012 11:47:54 +0000 (11:47 +0000)]
Remove the ijb_isupper() and ijb_tolower() macros which aren't used in this file

10 years agoChange the hashes used in load_config() to unsigned int
Fabian Keil [Sun, 4 Mar 2012 11:47:21 +0000 (11:47 +0000)]
Change the hashes used in load_config() to unsigned int

That's what hash_string() actually returns and using
a potentiallly larger type is at best useless.

On my FreeBSD amd64 system this reduces the size of the
binary by only 128 bytes, but with a compiler that sucks
harder at optimization it could be a bit more.

10 years agoShorten zalloc()'s description to the part that makes sense (to me)
Fabian Keil [Sun, 4 Mar 2012 11:41:57 +0000 (11:41 +0000)]
Shorten zalloc()'s description to the part that makes sense (to me)

10 years agoLet enlist_unique_header() verify that the caller didn't pass a header containing...
Fabian Keil [Sun, 4 Mar 2012 11:41:32 +0000 (11:41 +0000)]
Let enlist_unique_header() verify that the caller didn't pass a header containing either \r or \n

10 years agoIn socks5_connect(), do not try to print a negative number ...
Fabian Keil [Wed, 29 Feb 2012 19:35:11 +0000 (19:35 +0000)]
In socks5_connect(), do not try to print a negative number ...

... of socks response bytes if the read() for the socks5
negotiation failed completely.

It's an API violation and can trigger an assert() in
debug builds with "debug 2" enabled. Except for the
assert(), log_error() already handled negative %N values
gracefully so this commit only makes a difference for
debug builds.

10 years agoTurn family mismatches in match_sockaddr() into fatal errors
Fabian Keil [Wed, 29 Feb 2012 19:34:04 +0000 (19:34 +0000)]
Turn family mismatches in match_sockaddr() into fatal errors

10 years agoRename action_name's member takes_value to value_type as it isn't used as boolean
Fabian Keil [Wed, 29 Feb 2012 19:33:07 +0000 (19:33 +0000)]
Rename action_name's member takes_value to value_type as it isn't used as boolean

10 years agoUse an enum for the type of the action value.
Fabian Keil [Wed, 29 Feb 2012 19:31:12 +0000 (19:31 +0000)]
Use an enum for the type of the action value.

10 years agoBlock 'optimize.indieclick.com/' and 'optimized-by.rubiconproject.com/'
Fabian Keil [Wed, 29 Feb 2012 19:28:14 +0000 (19:28 +0000)]
Block 'optimize.indieclick.com/' and 'optimized-by.rubiconproject.com/'

10 years agoFix spelling of 'unknown' in default_exports()
Fabian Keil [Sat, 31 Dec 2011 14:54:28 +0000 (14:54 +0000)]
Fix spelling of 'unknown' in default_exports()

Seen in Roland's 29_typos.dpatch.

10 years agoFix 'resource' spelling in the code as well
Fabian Keil [Sat, 31 Dec 2011 14:54:05 +0000 (14:54 +0000)]
Fix 'resource' spelling in the code as well

10 years agoFix 'resource' spelling in the documentation
Fabian Keil [Sat, 31 Dec 2011 14:53:47 +0000 (14:53 +0000)]
Fix 'resource' spelling in the documentation

Seen in Roland's 29_typos.dpatch.

10 years agoRemove a duplicated dot in a comment
Fabian Keil [Sat, 31 Dec 2011 14:53:18 +0000 (14:53 +0000)]
Remove a duplicated dot in a comment

10 years agoRedirect requests for http://config.privoxy.org/.* to http://www.privoxy.org/config/
Fabian Keil [Sat, 31 Dec 2011 14:52:48 +0000 (14:52 +0000)]
Redirect requests for config.privoxy.org/.* to http://privoxy.org/config/

config.privoxy.org used to be a separate server that was
administrated by Andreas, but will be relocated to the SF
webserver after the domain transfer is done.

Note that the things SF calls VHOSTS all point to the
same root directory, so we can't use a dedicated .htaccess
file for config.privoxy.org.

10 years agoAdjust attribution and fix the URL of this file on the server
Fabian Keil [Sat, 31 Dec 2011 14:51:51 +0000 (14:51 +0000)]
Adjust attribution and fix the URL of this file on the server

10 years agoManually bump the copyright range to 2011
Fabian Keil [Sat, 31 Dec 2011 14:51:15 +0000 (14:51 +0000)]
Manually bump the copyright range to 2011

10 years agoDitch the already-dead update_action_bits_for_all_tags()
Fabian Keil [Sat, 31 Dec 2011 14:50:20 +0000 (14:50 +0000)]
Ditch the already-dead update_action_bits_for_all_tags()

10 years agoFix grammar in get_action_token()'s description
Fabian Keil [Sat, 31 Dec 2011 14:49:58 +0000 (14:49 +0000)]
Fix grammar in get_action_token()'s description

10 years agoFix the description of create_forged_referrer()
Fabian Keil [Sat, 31 Dec 2011 14:49:39 +0000 (14:49 +0000)]
Fix the description of create_forged_referrer()

10 years agoBump copyright. There were various significant changes in 2010 and 2011.
Fabian Keil [Sat, 31 Dec 2011 14:49:07 +0000 (14:49 +0000)]
Bump copyright. There were various significant changes in 2010 and 2011.

10 years agoDrop the 'Functions declared include:' comment sections
Fabian Keil [Sat, 31 Dec 2011 14:47:45 +0000 (14:47 +0000)]
Drop the 'Functions declared include:' comment sections

They tend to be incomplete, incorrect and out of date
and the benefit seems questionable.

10 years agoBump version to 3.0.20 UNRELEASED
Fabian Keil [Sat, 31 Dec 2011 14:43:40 +0000 (14:43 +0000)]
Bump version to 3.0.20 UNRELEASED

10 years agoIf NI_MAXSERV isn't defined, define it to 32
Fabian Keil [Sat, 31 Dec 2011 14:43:20 +0000 (14:43 +0000)]
If NI_MAXSERV isn't defined, define it to 32

This is the workaround Lee used to be able to
compile with --disable-ipv6-support on Windows.

10 years agoSeveral changes from Debian package 3.0.12 to 3.0.19-1.
Roland Rosenfeld [Tue, 27 Dec 2011 14:55:07 +0000 (14:55 +0000)]
Several changes from Debian package 3.0.12 to 3.0.19-1.

10 years agoRebuild with the updated list of developers
Fabian Keil [Mon, 26 Dec 2011 18:43:50 +0000 (18:43 +0000)]
Rebuild with the updated list of developers

10 years agoMove Mark and Gerry to the list of former team members
Fabian Keil [Mon, 26 Dec 2011 18:41:54 +0000 (18:41 +0000)]
Move Mark and Gerry to the list of former team members

10 years agoUpdate for 3.0.19, keeping the changes from 3.0.18
Fabian Keil [Mon, 26 Dec 2011 18:30:22 +0000 (18:30 +0000)]
Update for 3.0.19, keeping the changes from 3.0.18

10 years agoRebuild for 3.0.19 stable
Fabian Keil [Mon, 26 Dec 2011 17:07:01 +0000 (17:07 +0000)]
Rebuild for 3.0.19 stable

10 years agoBump entities for 3.0.19
Fabian Keil [Mon, 26 Dec 2011 17:05:40 +0000 (17:05 +0000)]
Bump entities for 3.0.19

10 years agoBump included version to 3.0.19
Fabian Keil [Mon, 26 Dec 2011 17:04:50 +0000 (17:04 +0000)]
Bump included version to 3.0.19

10 years agoImport ChangeLog entries for 3.0.19, keeping the ones for 3.0.18 for now
Fabian Keil [Mon, 26 Dec 2011 17:04:19 +0000 (17:04 +0000)]
Import ChangeLog entries for 3.0.19, keeping the ones for 3.0.18 for now

10 years agoAdd changes for 3.0.19
Fabian Keil [Mon, 26 Dec 2011 17:03:58 +0000 (17:03 +0000)]
Add changes for 3.0.19

10 years agoChange CODE_STATUS to stable
Fabian Keil [Mon, 26 Dec 2011 17:03:31 +0000 (17:03 +0000)]
Change CODE_STATUS to stable

10 years agoBump copyright range
Fabian Keil [Mon, 26 Dec 2011 17:03:08 +0000 (17:03 +0000)]
Bump copyright range

10 years agoClarify an error message in remove_chunked_transfer_coding()
Fabian Keil [Mon, 26 Dec 2011 17:02:54 +0000 (17:02 +0000)]
Clarify an error message in remove_chunked_transfer_coding()

10 years agoPrevent an integer overflow in remove_chunked_transfer_coding() that would cause...
Fabian Keil [Mon, 26 Dec 2011 17:02:24 +0000 (17:02 +0000)]
Prevent an integer overflow in remove_chunked_transfer_coding() that would cause a segfault

It could be triggered by malicious web servers if Privoxy was
configured to filter the response and running on a platform
where SIZE_T_MAX isn't larger than UINT_MAX, which probably
includes most 32-bit systems.

On those platforms, all Privoxy versions before 3.0.19 appear
to be affected. Releases before 2.9.14 don't really count, though,
as they don't even try to sanity check the chunk size and thus
have bigger issues.

To be on the safe side, this bug should be presumed to allow
code execution as proving that it doesn't seems unrealistic.

10 years agoTry to be less misleading in the downgrade-http-version description
Fabian Keil [Mon, 26 Dec 2011 17:01:29 +0000 (17:01 +0000)]
Try to be less misleading in the downgrade-http-version description

10 years agoDo not expect a response from the SOCKS4/4A server until it got something to respond to
Fabian Keil [Sat, 24 Dec 2011 15:28:45 +0000 (15:28 +0000)]
Do not expect a response from the SOCKS4/4A server until it got something to respond to

Hohoho.

Fixes #3459781 reported by qqqqqw and tracked down by Lee.
Regression introduced in 3.0.18 by the usual suspect.

10 years agoFix an off-by-one in an error message about connect failures
Fabian Keil [Sat, 10 Dec 2011 17:26:30 +0000 (17:26 +0000)]
Fix an off-by-one in an error message about connect failures

10 years agoRemove an obsolete part of the receive_client_request() description
Fabian Keil [Sat, 10 Dec 2011 17:26:11 +0000 (17:26 +0000)]
Remove an obsolete part of the receive_client_request() description

If the client connects and doesn't say anything,
the connection will timeout.

10 years agoUpdate CODE_STATUS description
Fabian Keil [Sat, 10 Dec 2011 17:25:37 +0000 (17:25 +0000)]
Update CODE_STATUS description

Setting the version to 0.0.0 between releases makes no
sense to me, and we haven't done that for a while now.

10 years agoBump version to 3.0.19 UNRELEASED
Fabian Keil [Sat, 10 Dec 2011 17:19:55 +0000 (17:19 +0000)]
Bump version to 3.0.19 UNRELEASED

10 years agoUse a variable for the webserver root directory and update the path
Fabian Keil [Sun, 20 Nov 2011 17:17:56 +0000 (17:17 +0000)]
Use a variable for the webserver root directory and update the path

Sourceforge changed it which broke various web-related targets.

10 years agoLast minute ChangeLog changes that didn't make it into the tarball
Fabian Keil [Sun, 20 Nov 2011 17:17:17 +0000 (17:17 +0000)]
Last minute ChangeLog changes that didn't make it into the tarball

10 years agoUpdate for the 3.0.18 release
Fabian Keil [Sun, 20 Nov 2011 12:50:48 +0000 (12:50 +0000)]
Update for the 3.0.18 release

10 years agoUpdate ChangeLog. Once more, with feeling.
Fabian Keil [Sun, 20 Nov 2011 12:43:38 +0000 (12:43 +0000)]
Update ChangeLog. Once more, with feeling.

10 years agoFix spelling
Fabian Keil [Sun, 20 Nov 2011 12:42:43 +0000 (12:42 +0000)]
Fix spelling

10 years agoDocument the +fast-redirects{} HTTP response splitting fix
Fabian Keil [Sun, 20 Nov 2011 12:41:22 +0000 (12:41 +0000)]
Document the +fast-redirects{} HTTP response splitting fix

10 years agoRebuild for 3.0.18
Fabian Keil [Sat, 19 Nov 2011 15:20:45 +0000 (15:20 +0000)]
Rebuild for 3.0.18

10 years agoRebuild with recent changes
Fabian Keil [Sat, 19 Nov 2011 15:18:48 +0000 (15:18 +0000)]
Rebuild with recent changes

10 years agoUpdate ChangeLog
Fabian Keil [Sat, 19 Nov 2011 15:18:02 +0000 (15:18 +0000)]
Update ChangeLog

10 years agoUpdated contributor list
Fabian Keil [Sat, 19 Nov 2011 15:16:37 +0000 (15:16 +0000)]
Updated contributor list

10 years agoPromote a couple of general changes to bug fixes. Various cosmetical changes.
Fabian Keil [Sat, 19 Nov 2011 15:12:54 +0000 (15:12 +0000)]
Promote a couple of general changes to bug fixes. Various cosmetical changes.

10 years agoImport new contributors with real names from the ChangeLog
Fabian Keil [Sat, 19 Nov 2011 15:08:00 +0000 (15:08 +0000)]
Import new contributors with real names from the ChangeLog

10 years agoRevert the previous commit as it was a duplicate.
Fabian Keil [Sat, 19 Nov 2011 14:44:01 +0000 (14:44 +0000)]
Revert the previous commit as it was a duplicate.

10 years agoRemove an incorrect string termination attempt
Fabian Keil [Fri, 18 Nov 2011 23:53:26 +0000 (23:53 +0000)]
Remove an incorrect string termination attempt

It could cause segmentations faults when Privoxy was compiled
without RFC2553 support as *port[NI_MAXSERV - 1] isn't actually
the last position in the allocated memory region.

Given that snprintf() already produces a proper string
the attempt can simply be discarded. The bug was introduced
in 1.105 and is thus not relevant for the ChangeLog.

10 years agoUpdate ChangeLog
Fabian Keil [Fri, 18 Nov 2011 16:49:29 +0000 (16:49 +0000)]
Update ChangeLog

10 years agoReplace 'service' with the less ambiguous 'Privoxy installation'
Fabian Keil [Fri, 18 Nov 2011 16:49:05 +0000 (16:49 +0000)]
Replace 'service' with the less ambiguous 'Privoxy installation'

10 years agoRefer to the ChangeLog without going into details and don't mention a specific release
Fabian Keil [Fri, 18 Nov 2011 16:48:29 +0000 (16:48 +0000)]
Refer to the ChangeLog without going into details and don't mention a specific release

The file should now be "timeless".

While at it, downgrade the 'Important Changes' section to 'Changes'.

10 years agoDitch the unused map_copy_parameter_url()
Fabian Keil [Fri, 18 Nov 2011 16:47:08 +0000 (16:47 +0000)]
Ditch the unused map_copy_parameter_url()

10 years agoFormatting changes and minor fixes
Fabian Keil [Mon, 14 Nov 2011 16:51:24 +0000 (16:51 +0000)]
Formatting changes and minor fixes

10 years agoFix an uagen change. The generated Firefox version is 8.0 not 9.0
Fabian Keil [Mon, 14 Nov 2011 16:51:01 +0000 (16:51 +0000)]
Fix an uagen change. The generated Firefox version is 8.0 not 9.0

10 years agoFirst rebuild for 3.0.18 stable
Fabian Keil [Sun, 13 Nov 2011 17:06:49 +0000 (17:06 +0000)]
First rebuild for 3.0.18 stable

The diff is yet again a bit bloated because apparently
the trailing white-space cleanup wasn't finished.

10 years agoBump entities for 3.0.18 stable
Fabian Keil [Sun, 13 Nov 2011 17:03:54 +0000 (17:03 +0000)]
Bump entities for 3.0.18 stable

10 years agoImport the first ChangeLog draft for 3.0.18 stable
Fabian Keil [Sun, 13 Nov 2011 17:02:59 +0000 (17:02 +0000)]
Import the first ChangeLog draft for 3.0.18 stable

10 years agoAdd another closing listitem tag in create_listitem_markup()
Fabian Keil [Sun, 13 Nov 2011 17:00:54 +0000 (17:00 +0000)]
Add another closing listitem tag in create_listitem_markup()

It's a mystery why nobody missed it earlier.

10 years agoFirst ChangeLog draft for 3.0.18
Fabian Keil [Sun, 13 Nov 2011 16:58:20 +0000 (16:58 +0000)]
First ChangeLog draft for 3.0.18

It's unfinished but can already be used for doc building experiments.

And the fact that this took hours is another sign that the
release is long overdue.

10 years agoBump generated Firefox version to 8.0
Fabian Keil [Sun, 13 Nov 2011 16:55:32 +0000 (16:55 +0000)]
Bump generated Firefox version to 8.0

10 years agoHighlight: No server or forwarder response received on socket 8. Closing client socke...
Fabian Keil [Sun, 13 Nov 2011 16:54:10 +0000 (16:54 +0000)]
Highlight: No server or forwarder response received on socket 8. Closing client socket 10 without sending data.

10 years agoChange CODE_STATUS to stable
Fabian Keil [Sun, 13 Nov 2011 16:53:45 +0000 (16:53 +0000)]
Change CODE_STATUS to stable

10 years agoRephrase the donations section some more
Fabian Keil [Sun, 13 Nov 2011 16:53:24 +0000 (16:53 +0000)]
Rephrase the donations section some more

Mention that the domain is now sponsored by Mythic Beasts Ltd
and make it clear that asking questions about donations is
possible, too.

10 years agoNote that donations for Privoxy are currently only tax-deductible in the US
Fabian Keil [Sun, 13 Nov 2011 16:50:34 +0000 (16:50 +0000)]
Note that donations for Privoxy are currently only tax-deductible in the US

As it turns out tax-deductible donations in a few other western
countries are theoretically possible through partner organizations
but aren't available out of the box.

10 years agoAccept and highlight: Percent-encoding redirect URL: http://www.example.org/\x02
Fabian Keil [Sat, 12 Nov 2011 12:56:42 +0000 (12:56 +0000)]
Accept and highlight: Percent-encoding redirect URL: example.org/\x02

10 years agoIn get_last_url(), do not claim to look for unencoded redirects when we aren't
Fabian Keil [Sat, 12 Nov 2011 12:56:21 +0000 (12:56 +0000)]
In get_last_url(), do not claim to look for unencoded redirects when we aren't

10 years agoHighlight: Didn't receive data in time: a.fsdn.com:443
Fabian Keil [Sat, 12 Nov 2011 12:55:46 +0000 (12:55 +0000)]
Highlight: Didn't receive data in time: a.fsdn.com:443

10 years agoSync config.guess and config.sub with upstream 2011-11-11/386c7218162c145f5f9e1ff7f55...
Fabian Keil [Sat, 12 Nov 2011 12:55:20 +0000 (12:55 +0000)]
Sync config.guess and config.sub with upstream 2011-11-11/386c7218162c145f5f9e1ff7f558a3fbb66c37c5

10 years agoFix a subtle race condition between prepare_csp_for_next_request() and sweep()
Fabian Keil [Sun, 6 Nov 2011 11:58:51 +0000 (11:58 +0000)]
Fix a subtle race condition between prepare_csp_for_next_request() and sweep()

A thread preparing itself for the next client request
could briefly appear to be inactive.

If all other threads were already using more recent files,
the thread could get its files swept away under its feet,
later on causing an 'invalid read of size 1' when the file
name was logged in any_loaded_file_changed().

I've only seen it while stress testing in valgrind while
touching action files in a loop. It's unlikely to have
caused any actual problems in the real world.

10 years agoRemove a noisy log message in any_loaded_file_changed()
Fabian Keil [Sun, 6 Nov 2011 11:53:15 +0000 (11:53 +0000)]
Remove a noisy log message in any_loaded_file_changed()

10 years agoAssert that a percent-encoded URL no longer requires percent-encoding
Fabian Keil [Sun, 6 Nov 2011 11:52:36 +0000 (11:52 +0000)]
Assert that a percent-encoded URL no longer requires percent-encoding

10 years agoChange url_code_map[] from an array of pointers to an array of arrays
Fabian Keil [Sun, 6 Nov 2011 11:51:57 +0000 (11:51 +0000)]
Change url_code_map[] from an array of pointers to an array of arrays

It removes an unnecessary layer of indirection and on
my 64bit system reduces the size of the binary by 2k.

At least in theory it should be more cache-efficient as well
but given that this is not a hot code path I couldn't be
bothered to run micro benchmarks.

10 years agoIn get_last_url(), do not bother trying to decode URLs that do not contain at least...
Fabian Keil [Sun, 6 Nov 2011 11:50:15 +0000 (11:50 +0000)]
In get_last_url(), do not bother trying to decode URLs that do not contain at least one '%' sign

It reduces the log noise and a number of unnecessary memory allocations.

10 years agoReimplement segment splitting in get_last_url() by using ssplit()
Fabian Keil [Sun, 6 Nov 2011 11:48:23 +0000 (11:48 +0000)]
Reimplement segment splitting in get_last_url() by using ssplit()

It's available on all platforms and doesn't require locking.

While at it, properly detect URLs that are concatenated together
without separator again. All the redirect regression tests should
work now.

10 years agoAdd two redirect tests with incorrectly encoded URLs
Fabian Keil [Sun, 6 Nov 2011 11:46:58 +0000 (11:46 +0000)]
Add two redirect tests with incorrectly encoded URLs

10 years agoAdd a couple of additional +fast-redirects{} tests
Fabian Keil [Sun, 6 Nov 2011 11:46:36 +0000 (11:46 +0000)]
Add a couple of additional +fast-redirects{} tests

Some of them currently don't work due to a recent regression.

10 years agoProperly deal with FEATURE_TOGGLE being disabled
Fabian Keil [Sun, 6 Nov 2011 11:45:51 +0000 (11:45 +0000)]
Properly deal with FEATURE_TOGGLE being disabled

10 years agoIf the redirect URL contains characters RFC 3986 doesn't permit, encode them
Fabian Keil [Sun, 6 Nov 2011 11:45:28 +0000 (11:45 +0000)]
If the redirect URL contains characters RFC 3986 doesn't permit, encode them

10 years agoAdd percent_encode_url()
Fabian Keil [Sun, 6 Nov 2011 11:44:56 +0000 (11:44 +0000)]
Add percent_encode_url()

Percent-encodes characters in URLs RFC 3986 doesn't permit.