diff options
author | Michael Adam <obnox@samba.org> | 2009-12-06 13:03:05 +0100 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2009-12-07 00:22:28 +0100 |
commit | 22fba83df2daf4002d6a17ecf8873e61c5c34cbb (patch) | |
tree | 518c7012e9ed421bc42f5bfdbf02286de03935a4 /src | |
parent | fd987e97f035e3567e9db18ad233e604c9d78ed1 (diff) |
upstream: add upstream list parameter to upstream_add()
to abstract it from the concrete list in the config struct.
Michael
Diffstat (limited to 'src')
-rw-r--r-- | src/conf.c | 6 | ||||
-rw-r--r-- | src/upstream.c | 9 | ||||
-rw-r--r-- | src/upstream.h | 3 |
3 files changed, 10 insertions, 8 deletions
@@ -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 */ |