From 22fba83df2daf4002d6a17ecf8873e61c5c34cbb Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Sun, 6 Dec 2009 13:03:05 +0100 Subject: upstream: add upstream list parameter to upstream_add() to abstract it from the concrete list in the config struct. Michael --- src/conf.c | 6 +++--- src/upstream.c | 9 +++++---- src/upstream.h | 3 ++- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/conf.c b/src/conf.c index 973dc84..abb6201 100644 --- a/src/conf.c +++ b/src/conf.c @@ -802,11 +802,11 @@ static HANDLE_FUNC (handle_upstream) if (match[9].rm_so != -1) { domain = get_string_arg (line, &match[9]); if (domain) { - upstream_add (ip, port, domain); + upstream_add (ip, port, domain, &conf->upstream_list); safefree (domain); } } else { - upstream_add (ip, port, NULL); + upstream_add (ip, port, NULL, &conf->upstream_list); } safefree (ip); @@ -822,7 +822,7 @@ static HANDLE_FUNC (handle_upstream_no) if (!domain) return -1; - upstream_add (NULL, 0, domain); + upstream_add (NULL, 0, domain, &conf->upstream_list); safefree (domain); return 0; diff --git a/src/upstream.c b/src/upstream.c index 20fb439..cfab56f 100644 --- a/src/upstream.c +++ b/src/upstream.c @@ -119,7 +119,8 @@ fail: /* * Add an entry to the upstream list */ -void upstream_add (const char *host, int port, const char *domain) +void upstream_add (const char *host, int port, const char *domain, + struct upstream **upstream_list) { struct upstream *up; @@ -129,7 +130,7 @@ void upstream_add (const char *host, int port, const char *domain) } if (!up->domain && !up->ip) { /* always add default to end */ - struct upstream *tmp = config.upstream_list; + struct upstream *tmp = *upstream_list; while (tmp) { if (!tmp->domain && !tmp->ip) { @@ -148,8 +149,8 @@ void upstream_add (const char *host, int port, const char *domain) } } - up->next = config.upstream_list; - config.upstream_list = up; + up->next = *upstream_list; + *upstream_list = up; return; diff --git a/src/upstream.h b/src/upstream.h index 327a114..1d4edc8 100644 --- a/src/upstream.h +++ b/src/upstream.h @@ -40,7 +40,8 @@ struct upstream { }; #ifdef UPSTREAM_SUPPORT -extern void upstream_add (const char *host, int port, const char *domain); +extern void upstream_add (const char *host, int port, const char *domain, + struct upstream **upstream_list); struct upstream *upstream_get (char *host); #endif /* UPSTREAM_SUPPORT */ -- cgit v1.2.3