diff options
-rw-r--r-- | utils/nsurl.h | 18 | ||||
-rw-r--r-- | utils/nsurl/nsurl.c | 13 |
2 files changed, 31 insertions, 0 deletions
diff --git a/utils/nsurl.h b/utils/nsurl.h index 054baf26b..bc6e910a6 100644 --- a/utils/nsurl.h +++ b/utils/nsurl.h @@ -181,6 +181,24 @@ 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 * * \param url 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 @@ -316,6 +316,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) { nserror err; |