diff options
author | Lars Wirzenius <liw@liw.fi> | 2013-02-09 10:44:03 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2013-02-09 10:44:03 +0000 |
commit | 2f35fb1fd3888bf84f586b093b450b26af86c8df (patch) | |
tree | b08345f2c183f142fe8e91ff548afdd4706b29da /summainlib.py | |
parent | f1bf6c79cfba0117a0f4cf94b851200b079447a9 (diff) | |
download | summain-2f35fb1fd3888bf84f586b093b450b26af86c8df.tar.gz |
Encode binary xattr values
Diffstat (limited to 'summainlib.py')
-rw-r--r-- | summainlib.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/summainlib.py b/summainlib.py index 07895e1..e148760 100644 --- a/summainlib.py +++ b/summainlib.py @@ -14,6 +14,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. +import base64 import grp import hashlib import hmac @@ -220,7 +221,14 @@ class FilesystemObject(object): def _compute_xattrs(self): # pragma: no cover if len(self._xattrs) == 0: return '' - parts = [' %s=%s' % (k, self._xattrs[k]) for k in self._xattrs] + + def quote(s): + if s.isalnum(): + return '"%s"' % s + else: + return '0s' + base64.urlsafe_b64encode(s) + + parts = [' %s=%s' % (k, quote(self._xattrs[k])) for k in self._xattrs] return '\n' + '\n'.join(parts) def format_time(self, secs, nsecs): |