-const char filters_rcs[] = "$Id: filters.c,v 1.162 2011/12/26 17:02:54 fabiankeil Exp $";
+const char filters_rcs[] = "$Id: filters.c,v 1.167 2012/03/04 11:51:25 fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/filters.c,v $
*
* Purpose : Declares functions to parse/crunch headers and pages.
- * Functions declared include:
- * `acl_addr', `add_stats', `block_acl', `block_imageurl',
- * `block_url', `url_actions', `domain_split',
- * `filter_popups', `forward_url', 'redirect_url',
- * `ij_untrusted_url', `intercept_url', `pcrs_filter_respose',
- * `ijb_send_banner', `trust_url', `gif_deanimate_response',
- * `execute_single_pcrs_command', `rewrite_url',
- * `get_last_url'
*
* Copyright : Written by and Copyright (C) 2001-2011 the
* Privoxy team. http://www.privoxy.org/
const char filters_h_rcs[] = FILTERS_H_VERSION;
-/* Fix a problem with Solaris. There should be no effect on other
- * platforms.
- * Solaris's isspace() is a macro which uses it's argument directly
- * as an array index. Therefore we need to make sure that high-bit
- * characters generate +ve values, and ideally we also want to make
- * the argument match the declared parameter type of "int".
- */
-#define ijb_isdigit(__X) isdigit((int)(unsigned char)(__X))
-
typedef char *(*filter_function_ptr)();
static filter_function_ptr get_filter_function(const struct client_state *csp);
static jb_err remove_chunked_transfer_coding(char *buffer, size_t *size);
if (network->ss_family != netmask->ss_family)
{
/* This should never happen */
- log_error(LOG_LEVEL_ERROR,
- "Internal error at %s:%llu: network and netmask differ in family",
- __FILE__, __LINE__);
- return 0;
+ assert(network->ss_family == netmask->ss_family);
+ log_error(LOG_LEVEL_FATAL, "Network and netmask differ in family.");
}
sockaddr_storage_to_ip(network, &network_addr, &addr_len, &network_port);
#else
(csp->ip_addr_long & acl->src->mask) == acl->src->addr
#endif
- )
+ )
{
if (dst == NULL)
{
((dst->addr & acl->dst->mask) == acl->dst->addr)
&& ((dst->port == acl->dst->port) || (acl->dst->port == 0))
#endif
- )
+ )
{
if (acl->action == ACL_PERMIT)
{
if ((p = strchr(acl_spec, '/')) != NULL)
{
*p++ = '\0';
- if (ijb_isdigit(*p) == 0)
+ if (privoxy_isdigit(*p) == 0)
{
freez(acl_spec);
return(-1);
#else
(masklength > 32)
#endif
- )
+ )
{
freez(acl_spec);
return(-1);
}
if ((new_url != NULL)
- && ( (new_url != subject)
+ && ( (new_url != subject)
|| (0 == strncmpic(subject, "http://", 7))
|| (0 == strncmpic(subject, "https://", 8))
- ))
+ ))
{
/*
* Return new URL if we found a redirect
string_append(&new_entry, csp->http->hostport);
path = csp->http->path;
- if ( (path[0] == '/')
+ if ((path[0] == '/')
&& (path[1] == '~')
&& ((path_end = strchr(path + 2, '/')) != NULL))
{
size = (size_t)(csp->iob->eod - csp->iob->cur);
- if ( (NULL == (in = (struct binbuffer *)zalloc(sizeof *in )))
- || (NULL == (out = (struct binbuffer *)zalloc(sizeof *out))) )
+ if ( (NULL == (in = (struct binbuffer *)zalloc(sizeof *in)))
+ || (NULL == (out = (struct binbuffer *)zalloc(sizeof *out))))
{
log_error(LOG_LEVEL_DEANIMATE, "failed! (no mem)");
return NULL;