1 From 2c968b81d9d9c4025379242b5f560aab441e1430 Mon Sep 17 00:00:00 2001
2 From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= <grawity@gmail.com>
3 Date: Sat, 7 Dec 2013 20:45:00 +0200
4 Subject: [PATCH] Set the 'user.xdg.origin.url' xattr for downloaded files
9 src/url.c | 20 ++++++++++++++++++++
11 4 files changed, 28 insertions(+)
13 diff --git a/src/ftp.c b/src/ftp.c
14 index 1902242..eeffd88 100644
17 @@ -1299,6 +1299,8 @@ Error in server response, closing control connection.\n"));
21 + set_xa (u, fileno(fp));
23 if (passed_expected_bytes)
25 print_length (passed_expected_bytes, restval, true);
26 diff --git a/src/http.c b/src/http.c
27 index 53c9818..c99c417 100644
30 @@ -3123,6 +3123,8 @@ read_header:
34 + set_xa (u, fileno(fp));
36 err = read_response_body (hs, sock, fp, contlen, contrange,
37 chunked_transfer_encoding,
38 u->url, warc_timestamp_str,
39 diff --git a/src/url.c b/src/url.c
40 index df63e1c..b41d5ac 100644
43 @@ -37,6 +37,7 @@ as that of the covered work. */
47 +#include <attr/xattr.h>
51 @@ -2200,6 +2201,25 @@ are_urls_equal (const char *u1, const char *u2)
52 return (*p == 0 && *q == 0 ? true : false);
56 +set_xa (const struct url *origin, int fd)
61 + url = url_string(origin, URL_AUTH_HIDE);
62 + res = fsetxattr(fd, XA_ORIGIN, url, strlen(url), 0);
65 + if (errno == ENOTSUP)
68 + logprintf (LOG_NOTQUIET, "fsetxattr: %s\n", strerror (errno));
75 /* Debugging and testing support for path_simplify. */
77 diff --git a/src/url.h b/src/url.h
78 index b1c46c1..72234e9 100644
81 @@ -132,4 +132,8 @@ bool schemes_are_similar_p (enum url_scheme a, enum url_scheme b);
83 bool are_urls_equal (const char *u1, const char *u2);
85 +#define XA_ORIGIN "user.xdg.origin.url"
87 +int set_xa (const struct url *, int);