-const char urlmatch_rcs[] = "$Id: urlmatch.c,v 1.71 2012/06/08 15:15:11 fabiankeil Exp $";
+const char urlmatch_rcs[] = "$Id: urlmatch.c,v 1.72 2012/07/23 12:42:53 fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/urlmatch.c,v $
* 1 : http = pointer to the http structure to hold elements.
*
* Returns : JB_ERR_OK on success
- * JB_ERR_MEMORY on out of memory
* JB_ERR_PARSE on malformed command/URL
* or >100 domains deep.
*
size_t size;
char *p;
- http->dbuffer = strdup(http->host);
- if (NULL == http->dbuffer)
- {
- return JB_ERR_MEMORY;
- }
+ http->dbuffer = strdup_or_die(http->host);
/* map to lower case */
for (p = http->dbuffer; *p ; p++)
* protocol are acceptable.
*
* Returns : JB_ERR_OK on success
- * JB_ERR_MEMORY on out of memory
* JB_ERR_PARSE on malformed command/URL
* or >100 domains deep.
*
/*
* Save our initial URL
*/
- http->url = strdup(url);
- if (http->url == NULL)
- {
- return JB_ERR_MEMORY;
- }
-
+ http->url = strdup_or_die(url);
/*
* Check for * URI. If found, we're done.
*/
if (*http->url == '*')
{
- if (NULL == (http->path = strdup("*"))
- || NULL == (http->hostport = strdup("")))
- {
- return JB_ERR_MEMORY;
- }
+ http->path = strdup_or_die("*");
+ http->hostport = strdup_or_die("");
if (http->url[1] != '\0')
{
return JB_ERR_PARSE;
char *url_noproto;
char *url_path;
- buf = strdup(url);
- if (buf == NULL)
- {
- return JB_ERR_MEMORY;
- }
+ buf = strdup_or_die(url);
/* Find the start of the URL in our scratch space */
url_noproto = buf;
* https URL in and it's parsed by the function. (When the
* URL is actually retrieved, SSL hides the path part).
*/
- http->path = strdup(http->ssl ? "/" : url_path);
+ http->path = strdup_or_die(http->ssl ? "/" : url_path);
*url_path = '\0';
- http->hostport = strdup(url_noproto);
+ http->hostport = strdup_or_die(url_noproto);
}
else
{
* Repair broken HTTP requests that don't contain a path,
* or CONNECT requests
*/
- http->path = strdup("/");
- http->hostport = strdup(url_noproto);
+ http->path = strdup_or_die("/");
+ http->hostport = strdup_or_die(url_noproto);
}
freez(buf);
-
- if ((http->path == NULL)
- || (http->hostport == NULL))
- {
- return JB_ERR_MEMORY;
- }
}
if (!host_available)
char *host;
char *port;
- buf = strdup(http->hostport);
- if (buf == NULL)
- {
- return JB_ERR_MEMORY;
- }
+ buf = strdup_or_die(http->hostport);
/* check if url contains username and/or password */
host = strchr(buf, '@');
http->port = (http->ssl ? 443 : 80);
}
- http->host = strdup(host);
+ http->host = strdup_or_die(host);
freez(buf);
-
- if (http->host == NULL)
- {
- return JB_ERR_MEMORY;
- }
}
#ifdef FEATURE_EXTENDED_HOST_PATTERNS
* 2 : http = pointer to the http structure to hold elements
*
* Returns : JB_ERR_OK on success
- * JB_ERR_MEMORY on out of memory
* JB_ERR_CGI_PARAMS on malformed command/URL
* or >100 domains deep.
*
memset(http, '\0', sizeof(*http));
- buf = strdup(req);
- if (buf == NULL)
- {
- return JB_ERR_MEMORY;
- }
+ buf = strdup_or_die(req);
n = ssplit(buf, " \r\n", v, SZ(v));
if (n != 3)
/*
* Copy the details into the structure
*/
- http->cmd = strdup(req);
- http->gpc = strdup(v[0]);
- http->ver = strdup(v[2]);
+ http->cmd = strdup_or_die(req);
+ http->gpc = strdup_or_die(v[0]);
+ http->ver = strdup_or_die(v[2]);
freez(buf);
- if ( (http->cmd == NULL)
- || (http->gpc == NULL)
- || (http->ver == NULL))
- {
- return JB_ERR_MEMORY;
- }
-
return JB_ERR_OK;
}
if (NULL != p)
{
*p++ = '\0';
- url->port_list = strdup(p);
- if (NULL == url->port_list)
- {
- return JB_ERR_MEMORY;
- }
+ url->port_list = strdup_or_die(p);
}
else
{
* 2 : host_pattern = Host pattern to parse.
*
* Returns : JB_ERR_OK - Success
- * JB_ERR_MEMORY - Out of memory
* JB_ERR_PARSE - Cannot parse regex
*
*********************************************************************/
/*
* Split domain into components
*/
- url->dbuffer = strdup(host_pattern);
- if (NULL == url->dbuffer)
- {
- free_url_spec(url);
- return JB_ERR_MEMORY;
- }
+ url->dbuffer = strdup_or_die(host_pattern);
/*
* Map to lower case
* are lost forever.
*
* Returns : JB_ERR_OK - Success
- * JB_ERR_MEMORY - Out of memory
* JB_ERR_PARSE - Cannot parse regex (Detailed message
* written to system log)
*
memset(url, '\0', sizeof(*url));
/* Remember the original specification for the CGI pages. */
- url->spec = strdup(buf);
- if (NULL == url->spec)
- {
- return JB_ERR_MEMORY;
- }
+ url->spec = strdup_or_die(buf);
/* Is it a tag pattern? */
if (0 == strncmpic(url->spec, "TAG:", 4))
{
char *min, *max, *next, *portlist_copy;
- min = portlist_copy = strdup(portlist);
+ min = portlist_copy = strdup_or_die(portlist);
/*
* Zero-terminate first item and remember offset for next
return JB_ERR_PARSE;
}
- *hostname = strdup(address);
- if (NULL == *hostname)
- {
- return JB_ERR_MEMORY;
- }
+ *hostname = strdup_or_die(address);
if ((**hostname == '[') && (NULL != (p = strchr(*hostname, ']'))))
{