[settings] Re-add "uristring" setting type
authorMichael Brown <mcb30@ipxe.org>
Tue, 25 Aug 2015 11:33:40 +0000 (12:33 +0100)
committerMichael Brown <mcb30@ipxe.org>
Tue, 25 Aug 2015 12:31:46 +0000 (13:31 +0100)
commitba3695353add020b686547699ba5e259c339bfa6
treed400084f87152adbbbc7dbca3140c1c2789c03b0
parent4e03af8ec2d497e725566a91fd5c19dd604c18a6
[settings] Re-add "uristring" setting type

Commit 09b057c ("[settings] Remove "uristring" setting type") removed
support for URI-encoded settings via the "uristring" setting type, on
the basis that such encoding was no longer necessary to avoid problems
with the command line parser.

Other valid use cases for the "uristring" setting type do exist: for
example, a password containing a '/' character expanded via

  chain http://username:${password:uristring}@server.name/boot.php

Restore the existence of the "uristring" setting, avoiding the
potentially large stack allocations that were used in the old code
prior to commit 09b057c ("[settings] Remove "uristring" setting
type").

Requested-by: Robin Smidsrød <robin@smidsrod.no>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/core/settings.c
src/core/uri.c
src/include/ipxe/uri.h
src/net/tcp/httpcore.c
src/tests/settings_test.c