-const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.93 2009/03/18 21:46:26 fabiankeil Exp $";
+const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.96 2009/04/17 11:38:28 fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/loadcfg.c,v $
*
* Revisions :
* $Log: loadcfg.c,v $
+ * Revision 1.96 2009/04/17 11:38:28 fabiankeil
+ * Add and use parse_forwarder_address() to reduce code duplication.
+ *
+ * Revision 1.95 2009/04/17 11:34:34 fabiankeil
+ * Style cosmetics for the IPv6 code.
+ *
+ * Revision 1.94 2009/04/17 11:27:49 fabiankeil
+ * Petr Pisar's privoxy-3.0.12-ipv6-3.diff.
+ *
* Revision 1.93 2009/03/18 21:46:26 fabiankeil
* Revert the last commit as there's a better way.
*
break;
}
}
-#ifdef HAVE_GETADDRINFO
+#ifdef HAVE_RFC2553
else
{
cur_acl->wildcard_dst = 1;
}
-#endif /* def HAVE_GETADDRINFO */
+#endif /* def HAVE_RFC2553 */
/*
* Add it to the list. Note we reverse the list to get the
if (strcmp(p, ".") != 0)
{
- cur_fwd->forward_host = strdup(p);
-
- if (*cur_fwd->forward_host == '[' &&
- NULL != (p = strchr(cur_fwd->forward_host, ']')))
- {
- *p++ = '\0';
- memmove(cur_fwd->forward_host, cur_fwd->forward_host + 1,
- (size_t) (p - cur_fwd->forward_host));
- if (*p == ':')
- {
- cur_fwd->forward_port = atoi(++p);
- }
- }
- else if (NULL != (p = strchr(cur_fwd->forward_host, ':')))
- {
- *p++ = '\0';
- cur_fwd->forward_port = atoi(p);
- }
-
- if (cur_fwd->forward_port <= 0)
- {
- cur_fwd->forward_port = 8000;
- }
+ cur_fwd->forward_port = 8000;
+ parse_forwarder_address(p, &cur_fwd->forward_host,
+ &cur_fwd->forward_port);
}
/* Add to list. */
/* Parse the SOCKS proxy host[:port] */
p = vec[1];
+ /* XXX: This check looks like a bug. */
if (strcmp(p, ".") != 0)
{
- cur_fwd->gateway_host = strdup(p);
-
- if (*cur_fwd->gateway_host == '[' &&
- NULL != (p = strchr(cur_fwd->gateway_host, ']')))
- {
- *p++ = '\0';
- memmove(cur_fwd->gateway_host, cur_fwd->gateway_host + 1,
- (size_t) (p - cur_fwd->gateway_host));
- if (*p == ':')
- {
- cur_fwd->gateway_port = atoi(++p);
- }
- }
- else if (NULL != (p = strchr(cur_fwd->gateway_host, ':')))
- {
- *p++ = '\0';
- cur_fwd->gateway_port = atoi(p);
- }
-
- if (cur_fwd->gateway_port <= 0)
- {
- cur_fwd->gateway_port = 1080;
- }
+ cur_fwd->gateway_port = 1080;
+ parse_forwarder_address(p, &cur_fwd->gateway_host,
+ &cur_fwd->gateway_port);
}
/* Parse the parent HTTP proxy host[:port] */
if (strcmp(p, ".") != 0)
{
- cur_fwd->forward_host = strdup(p);
-
- if (*cur_fwd->forward_host == '[' &&
- NULL != (p = strchr(cur_fwd->forward_host, ']')))
- {
- *p++ = '\0';
- memmove(cur_fwd->forward_host, cur_fwd->forward_host + 1,
- (size_t) (p - cur_fwd->forward_host));
- if (*p == ':')
- {
- cur_fwd->forward_port = atoi(++p);
- }
- }
- else if (NULL != (p = strchr(cur_fwd->forward_host, ':')))
- {
- *p++ = '\0';
- cur_fwd->forward_port = atoi(p);
- }
-
- if (cur_fwd->forward_port <= 0)
- {
- cur_fwd->forward_port = 8000;
- }
+ cur_fwd->forward_port = 8000;
+ parse_forwarder_address(p, &cur_fwd->forward_host,
+ &cur_fwd->forward_port);
}
/* Add to list. */
/* Parse the SOCKS proxy host[:port] */
p = vec[1];
- cur_fwd->gateway_host = strdup(p);
-
- if (*cur_fwd->gateway_host == '[' &&
- NULL != (p = strchr(cur_fwd->gateway_host, ']')))
- {
- *p++ = '\0';
- memmove(cur_fwd->gateway_host, cur_fwd->gateway_host + 1,
- (size_t) (p - cur_fwd->gateway_host));
- if (*p == ':')
- {
- cur_fwd->gateway_port = atoi(++p);
- }
- }
- else if (NULL != (p = strchr(cur_fwd->gateway_host, ':')))
- {
- *p++ = '\0';
- cur_fwd->gateway_port = atoi(p);
- }
-
- if (cur_fwd->gateway_port <= 0)
- {
- cur_fwd->gateway_port = 1080;
- }
+ cur_fwd->gateway_port = 1080;
+ parse_forwarder_address(p, &cur_fwd->gateway_host,
+ &cur_fwd->gateway_port);
/* Parse the parent HTTP proxy host[:port] */
p = vec[2];
if (strcmp(p, ".") != 0)
{
- cur_fwd->forward_host = strdup(p);
-
- if (*cur_fwd->forward_host == '[' &&
- NULL != (p = strchr(cur_fwd->forward_host, ']')))
- {
- *p++ = '\0';
- memmove(cur_fwd->forward_host, cur_fwd->forward_host + 1,
- (size_t) (p - cur_fwd->forward_host));
- if (*p == ':')
- {
- cur_fwd->forward_port = atoi(++p);
- }
- }
- else if (NULL != (p = strchr(cur_fwd->forward_host, ':')))
- {
- *p++ = '\0';
- cur_fwd->forward_port = atoi(p);
- }
-
- if (cur_fwd->forward_port <= 0)
- {
- cur_fwd->forward_port = 8000;
- }
+ cur_fwd->forward_port = 8000;
+ parse_forwarder_address(p, &cur_fwd->forward_host,
+ &cur_fwd->forward_port);
}
/* Add to list. */
break;
}
}
-#ifdef HAVE_GETADDRINFO
+#ifdef HAVE_RFC2553
else
{
cur_acl->wildcard_dst = 1;
}
-#endif /* def HAVE_GETADDRINFO */
+#endif /* def HAVE_RFC2553 */
/*
* Add it to the list. Note we reverse the list to get the
if ( NULL != config->haddr )
{
- if (*config->haddr == '[' && NULL != (p = strchr(config->haddr, ']')) &&
- p[1] == ':' && 0 < (config->hport = atoi(p + 2)))
+ if ((*config->haddr == '[')
+ && (NULL != (p = strchr(config->haddr, ']')))
+ && (p[1] == ':')
+ && (0 < (config->hport = atoi(p + 2))))
{
- *p='\0';
- memmove((void *) config->haddr, config->haddr + 1,
- (size_t) (p - config->haddr));
+ *p = '\0';
+ memmove((void *)config->haddr, config->haddr + 1,
+ (size_t)(p - config->haddr));
}
- else if (NULL != (p = strchr(config->haddr, ':')) &&
- 0 < (config->hport = atoi(p + 1)))
+ else if (NULL != (p = strchr(config->haddr, ':'))
+ && (0 < (config->hport = atoi(p + 1))))
{
*p = '\0';
}
- else
+ else
{
log_error(LOG_LEVEL_FATAL, "invalid bind port spec %s", config->haddr);
/* Never get here - LOG_LEVEL_FATAL causes program exit */
Local Variables:
tab-width: 3
end:
-
- vim:softtabstop=3 shiftwidth=3
*/