aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorMichael Brown <mcb30@ipxe.org>2023-02-28 17:46:13 +0000
committerMichael Brown <mcb30@ipxe.org>2023-03-01 12:20:02 +0000
commit96bb6ba441653a30729ade38dc6c23bc9e2d2339 (patch)
tree9a1023d23aabdb096ac7a3d0df5554fbf40d73f7 /src/core
parent33cb56cf1b7a7138542fe18fd86898fdca2e8f0a (diff)
downloadipxe-96bb6ba441653a30729ade38dc6c23bc9e2d2339.zip
ipxe-96bb6ba441653a30729ade38dc6c23bc9e2d2339.tar.gz
ipxe-96bb6ba441653a30729ade38dc6c23bc9e2d2339.tar.bz2
[params] Allow for arbitrary HTTP request headers to be specified
Extend the request parameter mechanism to allow for arbitrary HTTP headers to be specified via e.g.: params param --header Referer http://www.example.com imgfetch http://192.168.0.1/script.ipxe##params Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/core')
-rw-r--r--src/core/params.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/core/params.c b/src/core/params.c
index 23206be..58c829f 100644
--- a/src/core/params.c
+++ b/src/core/params.c
@@ -123,10 +123,12 @@ struct parameters * create_parameters ( const char *name ) {
* @v params Parameter list
* @v key Parameter key
* @v value Parameter value
+ * @v flags Parameter flags
* @ret param Parameter, or NULL on failure
*/
struct parameter * add_parameter ( struct parameters *params,
- const char *key, const char *value ) {
+ const char *key, const char *value,
+ unsigned int flags ) {
struct parameter *param;
size_t key_len;
size_t value_len;
@@ -147,11 +149,14 @@ struct parameter * add_parameter ( struct parameters *params,
param->key = key_copy;
strcpy ( value_copy, value );
param->value = value_copy;
+ param->flags = flags;
/* Add to list of parameters */
list_add_tail ( &param->list, &params->entries );
- DBGC ( params, "PARAMS \"%s\" added \"%s\"=\"%s\"\n",
- params->name, param->key, param->value );
+ DBGC ( params, "PARAMS \"%s\" added \"%s\"=\"%s\"%s%s\n",
+ params->name, param->key, param->value,
+ ( ( param->flags & PARAMETER_FORM ) ? " (form)" : "" ),
+ ( ( param->flags & PARAMETER_HEADER ) ? " (header)" : "" ) );
return param;
}