summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorViktor Szakats <commit@vsz.me>2021-02-19 13:57:19 +0000
committerViktor Szakats <commit@vsz.me>2021-02-19 13:57:19 +0000
commit44872aefc2d54f297caf2b0cc887df321bc9d791 (patch)
tree077ea6159543fffdaf7b224014a30088dcdcf5ae /src
parent70472a44deaff387cf8c8c197e04f3add2a96e2e (diff)
downloadcurl-44872aefc2d54f297caf2b0cc887df321bc9d791.tar.gz
http: add support to read and store the referrer header
- add CURLINFO_REFERER libcurl option - add --write-out '%{referer}' command-line option - extend --xattr command-line option to fill user.xdg.referrer.url extended attribute with the referrer (if there was any) Closes #6591
Diffstat (limited to 'src')
-rw-r--r--src/tool_writeout.c1
-rw-r--r--src/tool_writeout.h3
-rw-r--r--src/tool_xattr.c9
3 files changed, 8 insertions, 5 deletions
diff --git a/src/tool_writeout.c b/src/tool_writeout.c
index e914dfa7b..529677818 100644
--- a/src/tool_writeout.c
+++ b/src/tool_writeout.c
@@ -83,6 +83,7 @@ static const struct writeoutvar variables[] = {
{"proxy_ssl_verify_result", VAR_PROXY_SSL_VERIFY_RESULT,
CURLINFO_PROXY_SSL_VERIFYRESULT, writeLong},
{"redirect_url", VAR_REDIRECT_URL, CURLINFO_REDIRECT_URL, writeString},
+ {"referer", VAR_REFERER, CURLINFO_REFERER, writeString},
{"remote_ip", VAR_PRIMARY_IP, CURLINFO_PRIMARY_IP, writeString},
{"remote_port", VAR_PRIMARY_PORT, CURLINFO_PRIMARY_PORT, writeLong},
{"response_code", VAR_HTTP_CODE, CURLINFO_RESPONSE_CODE, writeLong},
diff --git a/src/tool_writeout.h b/src/tool_writeout.h
index 2cf7d012a..b8f51ffaa 100644
--- a/src/tool_writeout.h
+++ b/src/tool_writeout.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -54,6 +54,7 @@ typedef enum {
VAR_REDIRECT_COUNT,
VAR_REDIRECT_TIME,
VAR_REDIRECT_URL,
+ VAR_REFERER,
VAR_REQUEST_SIZE,
VAR_SCHEME,
VAR_SIZE_DOWNLOAD,
diff --git a/src/tool_xattr.c b/src/tool_xattr.c
index b6a00cb01..08e92fa50 100644
--- a/src/tool_xattr.c
+++ b/src/tool_xattr.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -44,9 +44,10 @@ static const struct xattr_mapping {
/* mappings proposed by
* https://freedesktop.org/wiki/CommonExtendedAttributes/
*/
- { "user.xdg.origin.url", CURLINFO_EFFECTIVE_URL },
- { "user.mime_type", CURLINFO_CONTENT_TYPE },
- { NULL, CURLINFO_NONE } /* last element, abort loop here */
+ { "user.xdg.referrer.url", CURLINFO_REFERER },
+ { "user.xdg.origin.url", CURLINFO_EFFECTIVE_URL },
+ { "user.mime_type", CURLINFO_CONTENT_TYPE },
+ { NULL, CURLINFO_NONE } /* last element, abort here */
};
/* returns TRUE if a new URL is returned, that then needs to be freed */