Re: [MERGE] Address Alex and Amos' comments.

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Wed, 03 Sep 2008 22:10:41 +1200

Benno Rice wrote:
> Address Alex and Amos' comments.
>
<snip>

> /*
> + * Test if a URL is relative.
> + *
> + * RFC 2396, Section 5 (Page 17) implies that in a relative URL, a '/' will
> + * appear before a ':'.
> + */
> +bool
> +urlIsRelative(const char *url)
> +{
> + const char *p;
> +
> + if (url == NULL) {
> + return (false);
> + }
> + if (*url == '\0') {
> + return (false);
> + }

Those can deflate down to:
   if(url == NULL || *url == '\0')
       return false;

> +
> + for (p = url; *p != '\0' && *p != ':' && *p != '/'; p++);
> +
> + if (*p == ':') {
> + return (false);
> + }
> + return (true);
> +}
> +
> +/*
> + * Convert a relative URL to an absolute URL using the context of a given
> + * request.
> + *
> + * It is assumed that you have already ensured that the URL is relative.
> + *
> + * If NULL is returned it is an indication that the method in use in the
> + * request does not distinguish between relative and absolute and you should
> + * use the url unchanged.
> + *
> + * If non-NULL is returned, it is up to the caller to free the resulting
> + * memory using safe_free().
> + */
> +char *
> +urlMakeAbsolute(const HttpRequest * req, const char *relUrl)
> +{
> +
> + if (req->method.id() == METHOD_CONNECT) {
> + return (NULL);
> + }
> +
> + char *urlbuf = (char *)xmalloc(MAX_URL * sizeof(char));

FYI, in pedantic C++ this is:

   char *urlbuf = static_cast<char*>( xmalloc(MAX_URL * sizeof(char)) );

to show that its a cast we need and not to be 'cleaned' away.
No requirement to use it though.

bb:approve

since style fixes are only style.

Amos

-- 
Please use Squid 2.7.STABLE4 or 3.0.STABLE8
Received on Wed Sep 03 2008 - 10:10:43 MDT

This archive was generated by hypermail 2.2.0 : Wed Sep 03 2008 - 12:00:04 MDT