From add6dcc0158526bde3cb0785083c0761153fad57 Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Thu, 9 Aug 2018 15:35:24 +0100 Subject: nsurl: Add variant of nsurl_access for logging. --- utils/nsurl.h | 18 ++++++++++++++++++ utils/nsurl/nsurl.c | 13 +++++++++++++ 2 files changed, 31 insertions(+) (limited to 'utils') diff --git a/utils/nsurl.h b/utils/nsurl.h index 054baf26b..bc6e910a6 100644 --- a/utils/nsurl.h +++ b/utils/nsurl.h @@ -180,6 +180,24 @@ bool nsurl_has_component(const nsurl *url, nsurl_component part); const char *nsurl_access(const nsurl *url); +/** + * Variant of \ref nsurl_access for logging. + * + * \param url NetSurf URL to retrieve a string pointer for. + * \return the required string + * + * This will not necessarily return the actual nsurl's URL, but something + * that is suitable for recording to logs. E.g. URLs with the `data` scheme + * will return a simple place holder, to avoid repeatedly dumping loads of data. + * + * The returned string is owned by the NetSurf URL object. It will die + * with the NetSurf URL object. Keep a reference to the URL if you need it. + * + * The returned string has a trailing '\0'. + */ +const char *nsurl_access_log(const nsurl *url); + + /** * Get a UTF-8 string (for human readable IDNs) from a NetSurf URL object * diff --git a/utils/nsurl/nsurl.c b/utils/nsurl/nsurl.c index 8c769cfff..f197d6dde 100644 --- a/utils/nsurl/nsurl.c +++ b/utils/nsurl/nsurl.c @@ -315,6 +315,19 @@ const char *nsurl_access(const nsurl *url) } +/* exported interface, documented in nsurl.h */ +const char *nsurl_access_log(const nsurl *url) +{ + assert(url != NULL); + + if (url->components.scheme_type == NSURL_SCHEME_DATA) { + return "[data url]"; + } + + return url->string; +} + + /* exported interface, documented in nsurl.h */ nserror nsurl_get_utf8(const nsurl *url, char **url_s, size_t *url_l) { -- cgit v1.2.3