summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2009-12-06 13:03:05 +0100
committerMichael Adam <obnox@samba.org>2009-12-07 00:22:28 +0100
commit22fba83df2daf4002d6a17ecf8873e61c5c34cbb (patch)
tree518c7012e9ed421bc42f5bfdbf02286de03935a4 /src
parentfd987e97f035e3567e9db18ad233e604c9d78ed1 (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.c6
-rw-r--r--src/upstream.c9
-rw-r--r--src/upstream.h3
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 */